Optuna MCP Server是一个基于Model Context Protocol (MCP)的服务器,它借助Optuna实现自动化优化与分析,能有效提升工作效率,为用户提供便捷的优化解决方案。
Optuna MCP Server在多个场景中都能发挥重要作用,以下是一些具体的使用场景示例:
更多详细信息,请查看示例部分。
Optuna MCP服务器可以使用uv或Docker进行安装。下面以Claude Desktop作为示例MCP客户端,介绍如何安装Optuna MCP服务器。
在开始安装过程之前,请先从Astral安装uv。
然后,将Optuna MCP服务器配置添加到MCP客户端。若要将其添加到Claude Desktop中,请依次点击Claude > 设置 > 开发者 > 编辑配置 > claude_desktop_config.json,并添加以下内容:
{
"mcpServers": {
"Optuna": {
"command": "uvx",
"args": [
"optuna-mcp"
]
}
}
}
此外,你可以使用--storage参数指定Optuna存储,以持久化结果:
{
"mcpServers": {
"Optuna": {
"command": "uvx",
"args": [
"optuna-mcp",
"--storage",
"sqlite:///optuna.db"
]
}
}
}
添加完成后,请重新启动Claude Desktop应用程序。有关Claude Desktop的更多信息,请查看快速入门页面。
你也可以使用Docker运行Optuna MCP服务器。请确保你的机器上已经安装并运行了Docker。
{
"mcpServers": {
"Optuna": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--net=host",
"-v",
"/PATH/TO/LOCAL/DIRECTORY/WHICH/INCLUDES/DB/FILE:/app/workspace",
"optuna/optuna-mcp:latest",
"--storage",
"sqlite:////app/workspace/optuna.db"
]
}
}
}
Optuna MCP提供了以下工具,具体而言,它提供了Optuna的基本功能,如研究(Study)、试验(Trial)、可视化(Visualization)和仪表盘(Dashboard)。由于MCP客户端了解工具列表和每个工具的详细信息,用户无需记忆这些细节。
study_name : 研究名称(字符串,必需)。directions : 优化方向(由字面字符串minimize/maximize组成的列表,可选)。name : 采样器名称(字符串,必需)。metric_names : 每个目标的指标名称列表(字符串列表,必需)。search_space : Optuna的搜索空间(字典,必需)。trial_number : 试验编号(整数,必需)。values : 试验结果(浮点数或浮点数列表,必需)。trial_number : 试验编号(整数,必需)。key : 用户属性的键(字符串,必需)。value : 用户属性的值(任意类型,必需)。trial_number : 试验编号(整数,必需)。target : 指定要显示的值的索引(整数,可选)。target_name : 要在轴标签上显示的目标名称(字符串,可选)。reference_point : 用于计算超体积的参考点列表(浮点数列表,必需)。target_names : 用作轴标题的目标名称列表(字符串列表,可选)。include_dominated_trials : 包含所有被支配试验的目标值的标志(布尔值,可选)。targets : 指定要显示的目标值的索引列表(整数列表,可选)。params : 要可视化的参数列表(字符串列表,可选)。target : 指定要显示的值的索引(整数,必需)。target_name : 要在颜色条上显示的目标名称(字符串,必需)。params : 要可视化的参数列表(字符串列表,可选)。target : 指定要显示的值的索引(整数,必需)。target_name : 要在轴标签和图例上显示的目标名称(字符串,必需)。params : 要可视化的参数列表(字符串列表,可选)。target : 指定要显示的值的索引(整数,必需)。target_name : 要在轴标签上显示的目标名称(字符串,必需)。params : 要可视化的参数列表(字符串列表,可选)。target : 指定要显示的值的索引(整数/空,可选)。target_name : 要在图例上显示的目标名称(字符串,必需)。target : 指定要显示的值的索引(整数,必需)。target_name : 要在轴标签上显示的目标名称(字符串,必需)。params : 要可视化的参数列表(字符串列表,可选)。target : 指定要显示的值的索引(整数,必需)。target_name : 要在颜色条上显示的目标名称(字符串,必需)。port : 服务器端口(整数,可选,默认值:58080)。以下是一个优化二维球面函数的简单示例,同时展示了示例提示和大语言模型(LLM)响应的摘要:
| 用户提示 | Claude中的输出 |
|---|---|
| (启动Claude Desktop) | |
| 请创建一个名为"Optimize-2D-Sphere"的Optuna研究,用于最小化。 | |
| 请建议两个在[-1, 1]范围内的浮点参数x和y。 | |
| 请报告目标值x**2 + y**2。计算该值时,请使用JavaScript解释器,不要对值进行四舍五入。 | |
| 请建议另一组参数并进行评估。 | |
| 请绘制到目前为止的优化历史图。 |
你还可以通过MCP服务器启动Optuna仪表盘,以交互式方式分析优化结果。
| 用户提示 | Claude中的输出 |
|---|---|
| 请启动Optuna仪表盘。 |
默认情况下,Optuna仪表盘将在端口58080上启动。你可以在Web浏览器中访问http://localhost:58080,如下所示:
Optuna仪表盘提供了各种可视化工具,用于分析优化结果,如优化历史、参数重要性等。
此演示展示了如何使用Optuna MCP服务器自动找到最佳的FFmpeg编码参数。它优化x264编码选项,以在保证合理编码时间的同时,最大化视频质量(通过SSIM分数衡量)。
详细信息请查看examples/ffmpeg.md。
在这个示例中,我们将优化一个饼干配方,参考了题为"Bayesian Optimization for a Better Dessert"的论文。
详细信息请查看examples/cookie-recipe。
| 默认图形 | 优化后图形 |
|---|---|
此示例优化了Matplotlib配置。
详细信息请查看examples/auto-matplotlib。
本项目采用MIT许可证(请参阅LICENSE)。