在 DeepSeek-R1 的本地指导下部署 DeepSeek-Coder(第 2 部分)

介绍

        欢迎阅读 DeepSeek-Coder 系列第 2 部分!如果您还没有阅读第 1 部分,我强烈建议您先阅读一下 — 它介绍了我如何选择 DeepSeek-Coder-V2 (DSC2)、基础模型和指导模型之间的区别以及量化方面的一些关键考虑因素。在这篇文章中,我们将深入探讨在 M2 MacBook Air 上本地部署 DeepSeek-Coder 的实际步骤,向您展示如何测试其编码能力,并分享一些关于体验的临别感想。

部署模型的分步指南

设置Ollama

        Ollama 是在本地机器上运行 LLM 的最简单方法之一,尤其是对于 macOS 用户而言。在开始之前,请确保您的 Homebrew 安装是最新的:

brew update

接下来,如果您尚未安装 Ollama,请通过 Homebrew 获取它: 

brew install ollama 

        如果您已经安装了 Ollama,请确保它是最新版本。早期版本存在错误,英语提示可能会收到中文响应或产生乱码文本。升级还将有助于减少重复或循环输出。 

通过 Ollama 拉取模型

安装Ollama后,在后台启动Ollama服务:

ollama serve & 

现在,拉出我决定在第 1 部分中使用的 DeepSeek-Coder 模型: 

ollama run deepseek-coder-v2:16b-lite-instruct-q4_K_M 

此特定版本的大小约为10 GB,因此下载可能需要一点时间。下载完成后,验证您的安装: 

ollama list 

        您应该会deepseek-coder-v2:16b-lite-base-q4_K_M在可用模型列表中看到。默认情况下,localhost:11434如果您想将其与 IDE 或其他前端集成,Ollama 会监听 —handy。

当您执行编码任务时,让 Ollama 在后台运行。

VSCode Continue 扩展设置

代码完成工具

        经过一些研究和测试多个选项后,我将选择范围缩小到两个:继续并坚持。

        Continue是一个专注于实时代码补全、AI 聊天和上下文代码生成的VSCode 扩展。它很轻量,擅长重构、短代码建议和快速交互,但它不能处理复杂的、项目范围的自动化。
另一方面,Cline专为更繁重的任务而设计。它可以管理文件创建、命令执行和多文件编辑——非常适合自动化整个项目。缺点是它可能会消耗更多令牌并需要更多用户交互。

为什么要继续?

        对于DSC2,我选择了Continue,因为它补充了模型在生成和理解代码方面的优势。因此,将它与更轻量的VSCode 插件配对可以使事情变得快速而简单。此外,Continue 的聊天式界面感觉很像使用在线编码助手,但没有基于云的系统的成本或隐私权衡。

在 VSCode 中安装和配置 Continue 扩展

安装“继续”

前往 VSCode 市场,搜索“继续”,然后安装。完成后,您将看到一个新的侧边栏图标。

更新配置文件

在你的 VSCode 设置(通常是一个文件)中,找到models.json部分。添加以下条目:

{
"title": "DeepSeek Coder V2 Local",
"provider": "ollama",
"model": "deepseek-coder-v2:16b-lite-instruct-q4_K_M",
"apiBase": "http://localhost:11434",
"completionOptions": {}

调整自动完成模型

        您还可以将 DeepSeek-Coder 设置为您的“tabAutocompleteModel”,这允许您使用 DSC2 在聊天模式下与其进行交互:

"tabAutocompleteModel": {
"title": "DeepSeek Coder V2",
"provider": "ollama",
"model": "deepseek-coder-v2:16b-lite-instruct-q4_K_M"

这可确保扩展知道将提示发送到何处以及如何从本地 Ollama 服务检索响应。 

完成这些更改后,请重新启动 VSCode(或重新加载窗口)以获得良好的效果。 

验证部署

打开一个新项目

启动 VSCode,安装并运行 Continue。确保 Ollama 也在后台运行。

在继续的设置或侧面板中选择模型,选择DeepSeek Coder V2作为您的活动模型。

测试简单提示

创建一个新文件 — 比如说read_csv.py— 然后输入快速注释或提示。例如:

实时观看 DSC 2 建议的代码。如果一切正常,您将看到模型在您眼前生成一个函数。

注意事项

        即使 M2 MacBook Air 配备 24GB RAM,您仍可能会偶尔遇到性能下降或内存限制。一种解决方法是将 Ollama 的使用量限制在 15GB 左右。如果您遇到系统速度变慢的情况,请考虑在 ollama ~/.ollama/config.yaml 文件中设置最大内存。 

最后的想法

        刚开始这段旅程时,我并不完全确定运行本地托管模型是否值得花费时间和精力。然而,看到 DSC2 在我的 M2 MacBook Air 上真正生成和重构代码,我感到非常兴奋。

R1 对 o1

        正如我在第 1 部分中提到的,DeepSeek-R1 的“思路链”输出确实给我留下了深刻的印象。它清楚地展示了如何将挑战分解为可管理的步骤,从而更容易迭代和改进解决方案。尽管 R1 的最终答案并非每次都完美无缺,但它的思维过程激发了大量灵感。我可以调整思路链来形成我自己的提示或补充可能被忽略的细节。

        正如我在第 1 部分中提到的,我也使用 ChatGPT o1 进行此练习并撰写此博客文章,在许多方面,它都取得了出色的成果——尤其是在撰写更易于读者阅读的文本方面。R1 的最终回复往往更有条理和结构化,即使它们可能显得有些枯燥或过于理性。

        看起来,R1 的回答虽然结构严谨、逻辑性强,但往往优先考虑清晰度和顺序,而不是参与度。即使被要求让回答对读者更具吸引力,它仍然倾向于理性、系统的方法。此外,尽管有具体说明要以段落形式撰写,但它仍然默认使用项目符号。

        对于原始编码任务,R1 的逻辑深度和“关系思维”能力十分出色。再加上其开源特性、本地部署潜力和内置网络搜索功能,意味着它提供了隐私、实用性和灵活性的独特组合,这对我这个程序员来说很有吸引力。

编码助手性能

        尽管我在本地只使用较小、量化的 DeepSeek-Coder-V2 版本,但我的编码性能已提高约 20%,文档搜索量减少了 40%。基本任务 — — 比如样板代码生成、辅助函数创建或快速调试建议,它运行得足够顺畅。

        当然,就速度或原始容量而言,这种体验无法与大规模云模式相媲美,而且我仍然会依赖 Claude 或 R1 来处理关键任务工作负载。不过,本地部署选项也有其吸引力:它私密、灵活,并且可以让您更深入地控制开发环境。

        此外,微软最近宣布Windows 11 已针对本地运行精简的 DeepSeek R1 模型进行了优化,这凸显了一种日益增长的趋势,即编码助手的本地部署不仅仅是一种新奇事物;它正在迅速成为一种可行的,甚至是主流的人工智能开发方法。

        第一个版本 DeepSeek-R1-Distill-Qwen-1.5B(来源)将在 AIToolkit for VSCode 中提供,7B(来源)和 14B(来源)版本即将推出。这些优化的模型让开发人员能够构建和部署在设备上高效运行的 AI 驱动应用程序,充分利用 Copilot+ PC 中强大的 NPU。

结论

        在这个过程中学到了很多东西——从改进提示以更好地遵循指令,到亲身进行局部推理和量化。

        如果您热衷于在完全控制的环境中尝试 AI 辅助编码,我强烈建议您尝试一下 DSC2,而我仍然会使用 Claude 执行关键任务。

感谢您的阅读,让我们努力工作,尽情玩乐,快乐编码!

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。 

### 将本地部署DeepSeek-R1 集成到 WPS 办公软件中的方法 为了将本地部署DeepSeek-R1 成功集成至 WPS 办公软件,需遵循特定的技术路径来确保两者之间的无缝协作。此过程涉及 API 的配置以及插件开发。 #### 一、准备环境 确保已成功安装并运行 DeepSeek-R1 模型于本地服务器上,并获取必要的访问凭证与接口文档[^2]。这一步骤至关重要,因为后续操作依赖于此服务端的支持。 #### 二、创建自定义加载项 利用 VBA 或 Python 编写适用于 WPS Office 的加载项程序,该程序负责调用远程 RESTful API 来交互处理文件内容。以下是通过 Python 实现的一个简单例子: ```python import requests from tkinter import Tk, filedialog def select_file(): root = Tk() root.withdraw() filepath = filedialog.askopenfilename() return filepath file_path = select_file() url = "http://localhost:8080/api/deepseek" files = {'document': open(file_path,'rb')} response = requests.post(url, files=files) print(response.text) ``` 这段代码展示了如何让用户选择要上传给 DeepSeek 处理的文档,并发送 POST 请求至指定 URL 地址完成任务提交。 #### 三、注册为宏命令或按钮事件 为了让上述脚本能够方便地被用户触发执行,在 WPS 中可以将其设置成为一个新的菜单选项或是工具栏上的快捷方式。具体做法取决于所使用的编程语言及其对应的扩展机制。 #### 四、测试验证 最后,务必进行全面的功能性和兼容性测试,确认整个流程顺畅无误后才正式投入使用。考虑到不同版本之间可能存在差异,建议针对目标环境中最常用的几个版本分别做适配工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csdn_aspnet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值