Open R1:如何在本地使用 OlympicCoder 进行编码
过去几年,大家一直在使用 Claude 和 OpenAI 作为编码助手,但如果你关注 Open R1 等开源项目的发展,就会发现它们的吸引力有所不同。如果我们看一下下面 LiveCodeBench 上的评估,可以看到 7B 参数的变体性能优于 Claude 3.7 Sonnet 和 GPT-4o。这些模型是许多工程师在 Cursor 和 VSCode 等应用中日常使用的工具。
评估固然很棒,但我想亲自动手感受一下提交代码的过程!这篇博文将重点介绍如何将这些模型集成到你的 IDE 中。我们将设置 OlympicCoder 7B,这是两个 OlympicCoder 变体中较小的一个,并且我们会使用量化版本以实现最佳的本地推理性能。以下是我们即将使用的技术栈:
- OlympicCoder 7B。来自 LMStudio 社区的 4 位 GGUF 版本。
- LM Studio:一个简化 AI 模型运行的工具
- Visual Studio Code (VS Code)
- Continue:一个用于本地模型的 VS Code 扩展
需要强调的是,我们选择这个技术栈完全是为了简单。你可能想尝试更大的模型和/或不同的 GGUF 文件,甚至可以试试像 llama.cpp 这样的替代推理引擎。
1. 安装 LM Studio
LM Studio 就像一个 AI 模型的控制面板。它与 Hugging Face Hub 集成,可以拉取模型,帮你找到合适的 GGUF 文件,并提供一个 API,让其他应用程序可以与模型交互。
简而言之,它让你无需任何复杂的设置就能下载和运行它们。
- 访问 LM Studio 网站:打开你的网页浏览器,访问 https://lm-studio.cn/download。
- 选择你的操作系统:点击对应你电脑(Windows、Mac 或 Linux)的下载按钮。
- 安装 LM Studio:运行下载的文件并按照说明操作。就像安装任何其他程序一样。
2. 获取 OlympicCoder 7B
我们需要的 GGUF 文件托管在 Hub 上。我们可以使用“Use this model”(使用此模型)按钮,从 Hub 在 LMStudio 中打开模型。
这将链接到 LMStudio 应用程序并在你的机器上打开它。你只需要选择一个量化版本。我选择了 Q4_K_M
,因为它在大多数设备上都能表现良好。如果你的计算资源更充足,可以尝试一下 Q8_*
的选项。
如果你想跳过 UI,也可以通过命令行使用 LMStudio
加载模型。
lms get lmstudio-community/OlympicCoder-7B-GGUF
lms load olympiccoder-7b
lms server start
3. 将 LM Studio 连接到 VS Code
这是重要的部分。我们现在需要将 VS Code 与 LMStudio 提供的模型集成。
- 在 LM Studio 中,在“Developer”(开发者)选项卡上激活服务器。这将在
https://:1234/v1
处公开端点。
- 安装 VS Code 扩展以连接到我们的本地服务器。我选择了 Continue.dev,但也有其他选择。
- 在 VSCode 中,转到“Extensions”(扩展)视图(点击左侧边栏的方块图标,或按 Ctrl+Shift+X / Cmd+Shift+X)。
- 搜索“Continue”并安装“Continue Dev”的扩展。
- 在 Continue.dev 中配置一个新模型
- 打开 Continue 选项卡,在模型下拉菜单中,选择“add new chat model”(添加新的聊天模型)。
- 这将打开一个 json 配置文件。你需要指定模型名称,例如 olympiccoder-7b。
🚀 你拥有了一个本地编码助手!
通过这种设置,vscode 中的大多数核心 AI 功能都可用,例如:
- 代码补全:开始输入,AI 会建议如何完成你的代码。
- 生成代码:让它编写一个函数或一整个代码块。例如,你可以(在注释或聊天窗口中,取决于扩展)输入:// 用 JavaScript 编写一个反转字符串的函数
- 解释代码:选择一些代码,让 AI 解释它的作用。
- 重构代码:让 AI 使你的代码更简洁或更高效。
- 编写测试:让 AI 为你的代码创建单元测试。
🏋️♀️ OlympicCoder 的风格是什么?
OlympicCoder 不是 Claude。它在基于竞赛编程挑战的 CodeForces-CoTs 数据集上进行了优化。这意味着你不应期望它非常友好和善于解释。相反,卷起袖子,准备好迎接一个毫不留情、准备处理难题的竞赛程序员。
你可能需要将 OlympicCoder 与其他模型结合使用,以获得全面的编码体验。例如,如果你想从二分搜索中榨取毫秒级性能,可以试试 OlympicCoder。如果你想设计一个面向用户的 API,那就选择 Claude-3.7-sonnet 或 Qwen-2.5-Coder。
后续步骤
- 在下面的评论中分享你最喜欢的生成结果
- 从 Hub 尝试另一个 OlympicCoder 的变体。
- 根据你的硬件试验不同的量化类型。
- 在 LM Studio 中尝试多个模型,体验不同的编码风格!查看模型目录 https://lm-studio.cn/models
- 尝试其他具有智能体功能的 VS Code 扩展,如 Cline