Copilot平替?本地部署DeepSeek-Coder V2并接入到VS Code

news/2025/3/15 17:06:15/文章来源:https://www.cnblogs.com/muzhy/p/18773904

什么是 DeepSeek-Coder V2

DeepSeek-Coder-V2是DeepSeek团队推出的基于MoE架构的智能代码模型,支持338中编程语言,几乎覆盖所有主流和小众编程语言,一次能处理长达128K的代码文件。

Github 开源仓库地址:https://github.com/deepseek-ai/DeepSeek-Coder-V2

用过DeepSeek很多,但是已经有了DeepSeek-r1,为什么还要DeepSeek-Coder 呢?

原因当然是本地部署满血版DeepSeek-r1的成本太高,蒸馏版的DeepSeek-r1在代码辅助方面的功能相比DeepSeek-Coder 优势并不明显(具体看多少参数的蒸馏版),而DeepSeek-Coder-V2的部署成本更低。

针对代码辅助的场景,通过减少模型能力以降低部署成本并进行针对性优化至少在目前的阶段是比价合理的做法。

DeepSeek-Coder-V2于其他模型能力对比,可以看见性能是可以挤进第一梯队的

本地部署DeepSeek-Coder-V2

安装ollama

要部署DeepSeek-Coder-V2可以通过ollama进行安装
从官网下载 https://ollama.com/download 对应操作系统的安装包后双击安装即可。

安装ollama之后,可以在命令行执行

ollama 

检查是否安装完成

以Windows为例,安装ollama之后,下载的模型文件默认是存放到C:\Users\%UserName%\.ollama
如果需要修改模型文件的位置,需要添加环境变量OLLAMA_MODELS,将路径设置为要保存模型的路径。

修改环境变量之后需要重新打开命令行窗口,否则环境环境变量可能不生效。可以在命令行窗口执行

$Env:OLLAMA_MODELS

检查修改的环境变量是否生效

下载DeepSeek-Coder-V2模型


deepseek-coder-v2有16b和236b两个版本,对于我羸弱的PC而言,只能跑得动16b的。

在命令行执行

ollama pull deepseek-coder-v2

下载模型文件,如果需要下载236b版本的执行

ollama pull deepseek-coder-v2:236b

也可以执行ollama run deepseek-coder-v2下载模型并启动,不过个人更喜欢分步骤操作。

下载完成后可以运行

ollama ls

查看已经下载了的模型文件

运行DeepSeek-Coder-V2

执行

ollama run deepseek-coder-v2:16b

运行deepseek-coder-v2:16b,下载236b版本的根据执行ollama ls后列出来的模型名修改命令

运行DeepSeek-Coder-V2最好是有8G的显存,如果显存不够的话,可能会导致需要使用CPU运行模型进行推理,用CPU运行的话速度会慢很多
启动模型之后,可以执行ollama ps查看正在运行的模型

> ollama ps
NAME                     ID              SIZE     PROCESSOR          UNTIL             
deepseek-coder-v2:16b    63fb193b3a9b    10 GB    29%/71% CPU/GPU    4 minutes from now

受限于我本机羸弱的性能,只有8G 的显存,模型并不能完全装入到显存中,不过就个人使用体验感觉已经够用了。

执行了ollama run之后其实已经可以在命令行发送消息使用deepseek-coder-v2了

>>> who are youI am DeepSeek Coder, an intelligent assistant developed by China's DeepSeek
company, designed to provide services such as information retrieval,
conversational interaction, and answering questions through natural language
processing and machine learning technologies.

接入VS Code

使用ollama运行模型,默认会监听11434端口,本机程序可以通过11434端口调用模型API。
要在VS Code中使用deepseek-coder-v2就需要访问这个端口,如果需要在其他机器访问则需要把端口暴露出去,不在本文的内容之内。

VS Code上有很多插件可以使用,如ContinueCodeGPT,我是使用Continue接入大模型的

安装Continue之后,需要修改.continue/config.json文件接入部署在本地的大模型

{
  "models": [
    {
      "title": "DeepSeek Coder v2",
      "model": "deepseek-coder-v2:16b",
      "provider": "ollama",
      "apiBase": "http://localhost:11434"
    }
  ],
  "tabAutocompleteModel": {
    "title": "deepseek-coder-v2",
    "provider": "ollama",
    "model": "deepseek-coder-v2:16b"
  },
  "contextProviders": [
    {
      "name": "codebase",
      "params": {}
    }
  ],
  ...
}

需要在models中添加部署的deepseek-coder-v2的配置,代码自动补全需要添加tabAutocompleteModel

配置完成之后就可以在VS Code中使用了。

代码补全功能在写代码的时候会提示,如果需要让AI添加/修改代码,可以选中所需要的代码,然后按ctrl+I,在聊天框中输入想要AI做的工作后就可以了。

更多关于Continue的操作可以查看官方文档

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/899276.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Builder-公用组建封装和 按引用传递 改变数据

@Entry@Componentstruct BuilderPage { // 组建内的 @Builder compButtonBuilder(icon:Resource,text:string,callback:()=>void){ Button() { Row({ space: 10 }) { Image(icon) .width(25) .height(25) Text(text) .f…

【第 8 期】搜索客 Meetup - Elasticsearch 的一些“双刃剑”特性

本次活动由 搜索客社区、极限科技(INFINI Labs) 联合举办,活动邀请到 INFINI Labs 搜索运维专家 金端 来分享 Elasticsearch 中一些典型的“双刃剑”特性,以及如何在实际使用中权衡和应对。欢迎预约直播观看 ~ 活动主题:Elasticsearch 的一些“双刃剑”特性 活动时间:202…

clion/idea/pycharm项目配置

环境搭建与配置 pycharm篇 markdown as root idea篇 clion篇构建 cmake -S src -B build $CMAKE_OPTIONS 编译 cmake --build 配置deployment,cmake(cmake配置编译目录,引用环境变量,cmake环境变量引用$CMAKE_OPTIONS) ccache配置 ccache弄一个gcc和g++的软链,放在PATH最…

web68笔记(+禁用print_r、highlight)

web68 打开就直接说 Warning: highlight_file() has been disabled for security reasons in /var/www/html/index.php on line 19 猜跟之前代码一致,加了过滤 然后这⾥还把print_r给禁了,⽤var_dump()吧 c=var_dump(scandir("/")); 还是在跟⽬录 flag.txt 既然hig…

健身相关

后仰?10次 如何管理自己的症状 急性期https://new.qq.com/rain/a/20210819A094EC00犀牛数据地点+纳税排名

文本弹窗选择

@Entry@Componentstruct TextPickerDialogPage { fruits: string[] = [苹果, 橘子, 香蕉, 鸭梨, 西瓜] @State selectedIndex: number = 0 build() { Column({ space: 50 }) { Text(this.fruits[this.selectedIndex]) .fontWeight(FontWeight.Bold) .…

AP csa FRQ Q1 Past Paper 五年真题汇总 2023-2019

Author(wechat): bigshuang2020 ap csa tutor, AP计算机科学a老师 国际教育编程老师, 擅长答疑讲解,带学生实践学习。热爱创作,作品:ap csa原创教案,真题梳理汇总,FRQ专题冲刺。2023 FRQ Question 1 This question involves the appointmentBook class, which provides me…

自带弹窗-》删除功能提示

@Entry@Componentstruct AlertDialogPage { build() { Column() { Button(删除) .backgroundColor(Color.Red) .onClick(() => { AlertDialog.show( { title: 删除该记录?, //弹窗标题 message: 删除…

ASE90N25-ASEMI工业电机专用ASE90N25

ASE90N25-ASEMI工业电机专用ASE90N25编辑:ll ASE90N25-ASEMI工业电机专用ASE90N25 型号:ASE90N25 品牌:ASEMI 封装:TO-247 批号:最新 最大漏源电流:90A 漏源击穿电压:250V RDS(ON)Max:26mΩ 引脚数量:3 沟道类型:N沟道MOS管、中低压MOS管 漏电流:ua 特性:N沟道MO…

温度转化和蟒蛇绘制

蟒蛇绘制 import turtle turtle.setup(650,360,600,200) turtle.penup() turtle.fd(-250) turtle.pendown() turtle.pensize(25) turtle.pencolor("pink") turtle.seth(-40) for i in range(4): turtle.circle(40,80) turtle.circle(-40,80) turtle.circle(40,80/2) …

Java面向对象编程(OOP)

面向过程&面向对象 面向过程思想:步骤清晰简单,第一步该做什么,第二步该做什么... 适合处理一些较为简单的问题 线性思维面向对象四思想:物以类聚,分类的思维模式,思考问题首要解决问题需要哪些分类,然后对这些分类进行单独思考,最后才对某个分类下的细节进行面向过…

第二章作业

由于一至三题只存了源代码,自己写的没有保存,所以仅以截图展示。四至八题则采取代码和截图一起的方式展示。 2.4 import turtle turtle.setup(650,360,800,200) turtle.penup() turtle.fd(-250) turtle.pendown() turtle.pensize(25) turtle.seth(-40) colors = ["blue&…