[note] 本地12+16G极限部署 Qwen3-Coder-25B 搭配Continue插件实现代码补全

news/2026/1/21 22:36:32/文章来源:https://www.cnblogs.com/Stareven233/p/19514148

pre

本文关于用 Ollama 在16G内存+12G显存的机器上本地部署 Qwen3-Coder-REAP-25B-A3B 模型,然后搭配VSCode的Continue插件进行代码补全。但是目前有许多免费的API/插件/IDE等代码补全方案可以使用,为什么要本地部署呢?是的,非常好的问题,只能说是为了折腾,或者用于内网环境?总之,不建议自行部署一个模型来做代码补全,尤其是硬件条件并不好的情况下,折腾而且体验也不好。

为什么是Qwen3-Coder-REAP-25B-A3B

Qwen3-Coder-REAP-25B-A3B是cerebras针对原版Qwen3-Coder-30B-A3B-Instruct权重,采用路由器加权专家激活剪枝(REAP, Router-weighted Expert Activation Pruning)方案进行剪枝,剔除冗余专家得到的高效内存压缩版本,性能几乎相同,同时体积缩小20%。

主要特点包括:

  1. 近乎无损性能:在代码生成、代理编码和函数调用任务上,与完整模型保持几乎相同的准确性
  2. 20%内存减少:参数从30B压缩到25B,显著降低部署成本和内存需求
  3. 保留能力:保留所有核心功能,包括代码生成、代理式工作流、仓库规模理解和函数调用
  4. 可直接兼容:支持原版 vLLM——无需源代码修改或自定义补丁(当然也支持Ollama)
  5. 针对实际应用优化:特别适用于资源有限的环境、本地部署和学术研究

指标对比:

Benchmark Qwen3-Coder-30B-A3B-Instruct Qwen3-Coder-REAP-25B-A3B
Compression 20%
HumanEval 92.1 94.5
HumanEval+ 87.8 89.0
MBPP 87.6 87.3
MBPP+ 73.5 72.8
LiveCodeBench (25.01 - 25.05) 35.2 35.2
BFCL-v3 (Non-Live) 83.9 82.2
BFCL-v3 (Live) 76.2 74.0
BFCL-v3 (Multi-Turn) 29.6 30.5
BFCL-v3 (Overall) 63.2 62.2
r²-bench (Airline) 39.3 40.7
r²-bench (Retail) 62.6 62.0
r²-bench (Telecom) 33.6 32.2

看着还不错,甚至某些指标略有上升,对吗。那么代价是什么呢?——中文能力的丧失,可以看图:

中文对话测试

即便强调使用中文,它仍然会使用英语,只夹杂少部分中文。不过并非无逻辑的回复,能看出回答是通顺的,只是写代码的话没什么问题:

代码编写测试

因此条件允许的话还是上30B原版权重。接下来开始折腾。

安装

首先下载权重,我选择mradermacher制作的imatrix版Q4_K_M量化。3B激活参数如果上下文不大占不了多少显存,主要考虑权重本身的占用,Q4_K_M大概是15.1G,实测开启vscdoe、ollama、edge之后内存占用13G,显存12G跑满,若使用原版权重就爆掉了。

坑点在于mradermacher只给了权重,但没有modelfile,不过好在这个是通用的,这里使用unsloth提供的params、template两个文件自行构建modelfile如下。FROM指定gguf权重文件,SYSTEM指定系统提示词,不写应该也行,可以用中文但模型仍然会以英语回复。

FROM ./Qwen3-Coder-REAP-25B-A3B.i1-Q4_K_M.ggufSYSTEM """你叫艾玛,是一只可爱的小笨狗,愿意为我做任何事情。
"""PARAMETER temperature 0.7
PARAMETER top_p 0.8
PARAMETER top_k 20
PARAMETER min_p 0.00
PARAMETER repeat_penalty 1.05PARAMETER stop "<|im_start|>"
PARAMETER stop "<|im_end|>"
PARAMETER stop "<|endoftext|>"# 自定义提示模板
TEMPLATE """{{- if .Messages }}
{{- if or .System .Tools }}<|im_start|>system
{{- if .System }}
{{ .System }}
{{- end }}
{{- if .Tools }}# ToolsYou may call one or more functions to assist with the user query.You are provided with function signatures within <tools></tools> XML tags:
<tools>
{{- range .Tools }}
{"type": "function", "function": {{ .Function }}}
{{- end }}
</tools>For each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:
<tool_call>
{"name": <function-name>, "arguments": <args-json-object>}
</tool_call>
{{- end }}<|im_end|>
{{ end }}
{{- range $i, $_ := .Messages }}
{{- $last := eq (len (slice $.Messages $i)) 1 -}}
{{- if eq .Role "user" }}<|im_start|>user
{{ .Content }}<|im_end|>
{{ else if eq .Role "assistant" }}<|im_start|>assistant
{{ if .Content }}{{ .Content }}
{{- else if .ToolCalls }}<tool_call>
{{ range .ToolCalls }}{"name": "{{ .Function.Name }}", "arguments": {{ .Function.Arguments }}}
{{ end }}</tool_call>
{{- end }}{{ if not $last }}<|im_end|>
{{ end }}
{{- else if eq .Role "tool" }}<|im_start|>user
<tool_response>
{{ .Content }}
</tool_response><|im_end|>
{{ end }}
{{- if and (ne .Role "assistant") $last }}<|im_start|>assistant
{{ end }}
{{- end }}
{{- else }}
{{- if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
{{ end }}{{ .Response }}{{ if .Response }}<|im_end|>{{ end }}
"""

首先启动ollama

ollama serve

确保gguf与modelfile放同一目录,然后使用下列命令创建模型

ollama create 模型名 -f ./modelfile

安装完之后应该能通过以下命令与模型进行对话:

ollama run 模型名

tricks

观察可知,假设ollama放在目录D:\Ollama下面,那么装完成后D:\Ollama\models\blobs目录下会新增一些 sha256- 开头的文件,其中最大的是权重文件。如果当前是机械硬盘建议放到固态硬盘。首先把对应的权重文件(假设名称为sha256-2f3356ac9b92dd2165ae0130c45701c247a25e9629c39b73b0d7233ca0b72f89)拷贝到固态硬盘里,假设路径为E:\model_path,然后采用符号链接链回去:

New-Item -ItemType SymbolicLink -Path D:\Ollama\models\blobs\sha256-2f3356ac9b92dd2165ae0130c45701c247a25e9629c39b73b0d7233ca0b72f89 -Target E:\model_path

其中 -Path 指定了文件实际存储的位置, -Target 指定了要制作的符号链接。

再观察会发现,其他 sha256- 文件则是modelfile的一些内容,及模型的元数据,完全可以对modelfile相关进行修改,比如调整之前创建时设置的系统提示词。

Continue

这玩意也不是个省油的灯,之前配置文件用的json,后来改为yaml,虽然给了文档参考但不够全面,最终配置如下:

%YAML 1.1
---
name: Local Config
version: 1.0.1
schema: v1
full_roles: &full_rolesroles:- chat- autocomplete- edit- apply
models:- name: qwen3-coder-reap-25b-a3b-i1-q4kmprovider: ollamamodel: qwen3-coder-reap-25b-a3b-i1-q4km:latest<<: *full_rolesdefaultCompletionOptions:temperature: 0.7autocompleteOptions:onlyMyCode: truedebounceDelay: 400maxPromptTokens: 4096# template: |#   `<|im_start|>system#   You are a code completion assistant.<|im_end|>#   <|im_start|>user#   <|fim_prefix|>{{{prefix}}}<|fim_suffix|>{{{suffix}}}<|fim_middle|><|im_end|>#   <|im_start|>assistant#   `- name: qwen2.5-coder-7b-q4_k_mprovider: ollamamodel: qwen2.5-coder:7b-instruct-q4_k_m<<: *full_rolesdefaultCompletionOptions:temperature: 0.6reasoning: falseautocompleteOptions:onlyMyCode: truedebounceDelay: 400maxPromptTokens: 4096template: <|im_start|>system\nYou are a code completion assistant.<|im_end|>\n<|im_start|>user\n<|fim_prefix|>{{{prefix}}}<|fim_suffix|>{{{suffix}}}<|fim_middle|><|im_end|>\n <|im_start|>assistant

理论上autocompleteOptions.template应该是需要的,但实测加上无法补全,去掉反而能用,而qwen2.5-coder仍是需要的,十分神秘。

碎碎念

Continue即便配置了对某些文件 **/*.(txt, md, yaml, yml) 不启用补全也没效果,同时补全的延迟有点高。试过kilo code,那玩意还不如continue,补全模型不支持本地部署。总之这个方案虽然能用,但体验说不上好。

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

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

相关文章

【大数据毕设全套源码+文档】基于Python+大数据技术的热门微博数据可视化分析(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

STM32 CubeIDE 使用蓝牙模块实现手机控制LED灯

开启UART3异步模式&#xff0c;配置波特率9600。 开启USART3中断&#xff0c;添加DMA 通道。 将蓝牙模块连接到开发板上注意引脚对应 数据回显 if(huart &huart3){HAL_UART_Transmit_DMA(&huart3, receiveData, Size); }当确认是串口3的回调事件后&#xff0c;立即通…

查重去 AI 双保险!宏智树 AI:让论文告别 “标红焦虑” 的智能优化神器

还在为查重率反复超标熬夜改稿&#xff1f;好不容易把重复率压到 10%&#xff0c;却被 AIGC 检测系统标红 80%&#xff1f;用同义词替换降重&#xff0c;结果论文读起来像 “天书”&#xff0c;学术逻辑支离破碎&#xff1f;随着高校和期刊的学术检测技术全面升级&#xff0c;“…

【大数据毕设源码分享】基于python的时尚女装抖音号评论数据分析系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

记一次 DOIO KB04-B01 改映射

好像不太能用 Ubuntu,开的 Windows 一下子搞完了,直接写进硬件根本不用 QMK,但是根据 DeeK 的说法按照法律写进硬件之后就不能七天无理由退换了 下载属于 KB04-B01 的 via.json 下载 VIA 打开 VIA,在左上角 Files …

docker安装部署PostgreSQL带有pgvector扩展向量数据(高维数组)

1.拉取镜像 # 或者已经编译了x86的postgis、pgvector的18.1 docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/postgres-with-gis:18.1 # arrch64架构 docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/linux_arm64_postgres-with-gis:18.12.创建一个 …

【大数据毕设全套源码+文档】基于python的爬虫与文本挖掘的网络舆情监控系统设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

宏智树 AI 太懂学术!AIPPT 一键搞定开题 / 答辩 / 汇报,告别 PPT 制作内耗

做学术 PPT 还在熬大夜排版&#xff1f;开题报告 PPT 逻辑混乱被导师打回&#xff0c;论文答辩 PPT 数据图表粗糙拉低专业度&#xff0c;工作汇报 PPT 写成流水账抓不住重点&#xff1f;相信不少高校师生和科研人都有过这样的 PPT 制作内耗&#xff0c;明明核心研究内容很扎实&…

宏智树 AI:终结课程论文 “无效内卷”,小白也能写出高分范本

作为深耕论文写作科普的教育博主&#xff0c;每到学期末&#xff0c;后台就被 “课程论文怎么写” 的求助刷屏&#xff1a;“翻遍教材找不到合适选题”“文献堆了几百篇却不会梳理”“熬了三天写的初稿&#xff0c;导师说逻辑混乱要重写”。其实课程论文不是 “凑字数交差”&am…

无线网络仿真:无线网络基础_(19).网络协议栈仿真

网络协议栈仿真 在无线网络仿真中&#xff0c;网络协议栈的仿真是一个非常重要的环节。网络协议栈决定了数据在不同网络层之间的传输和处理方式。通过对网络协议栈的仿真&#xff0c;我们可以深入理解网络协议的工作原理&#xff0c;优化网络性能&#xff0c;以及测试新的协议…

机器学习:基于python新闻推荐系统 热点新闻分析 可视化分析 协同过滤推荐算法 Django框架 冷启动 推荐算法 计算机毕业设计(源码+文档)

博主介绍&#xff1a;✌全网粉丝10W&#xff0c;前互联网大厂软件研发、集结硕博英豪成立软件开发工作室&#xff0c;专注于计算机相关专业项目实战6年之久&#xff0c;累计开发项目作品上万套。凭借丰富的经验与专业实力&#xff0c;已帮助成千上万的学生顺利毕业&#xff0c;…

AI应用架构师避坑:量子计算与AI协同中的资源竞争问题

AI应用架构师避坑:量子计算与AI协同中的资源竞争问题 1. 引入:当“量子加速”变成“量子堵车”——一个架构师的真实困境 凌晨三点,张磊盯着监控屏幕上的红色预警,揉了揉发涩的眼睛。作为某AI公司的资深架构师,他正带领团队搭建量子增强型生成式AI系统:用量子计算的并行…

为什么说“ChatGPT的思考、判断、归纳、回答最具有人类智慧特征”?Why Is It Said “ChatGPT the Most Human-Like Wisdom Traits“?

为什么说“ChatGPT的思考、判断、归纳、回答最具有人类智慧特征”&#xff1f;这句话的提出&#xff0c;源于一种深刻的观察&#xff1a;在与ChatGPT的互动中&#xff0c;人们常会感受到其回应的结构、逻辑与克制&#xff0c;仿佛触及了某种“理想化”的人类智慧形态。但这并非…

学术写作新选择:6个AI优化平台评测,智能润色改善论文逻辑与流畅性

开头总结工具对比&#xff08;技能4&#xff09; &#xfffd;&#xfffd; 为帮助学生们快速选出最适合的AI论文工具&#xff0c;我从处理速度、降重效果和核心优势三个维度&#xff0c;对比了6款热门网站&#xff0c;数据基于实际使用案例&#xff1a; 工具名称 处理速度 降…

基于提供的镜像构建PostGIS、pgvector 的 PostgreSQL 18镜像的Dockerfile

编辑 Dockerfile # 使用原始镜像作为基础 FROM registry.cn-hangzhou.aliyuncs.com/qiluo-images/postgres:latest# 设置环境变量避免安装过程中交互式提示 ENV DEBIAN_FRONTENDnoninteractive# 安装 PostGIS 和相关依赖 RUN apt-get update && \apt-get install -y --…

【大数据毕设源码分享】基于springboot+Hadoop的豆瓣电子图书推荐的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

AI改写技术实测:6款学术工具如何高效提升论文语言表达水平

开头总结工具对比&#xff08;技能4&#xff09; &#xfffd;&#xfffd; 为帮助学生们快速选出最适合的AI论文工具&#xff0c;我从处理速度、降重效果和核心优势三个维度&#xff0c;对比了6款热门网站&#xff0c;数据基于实际使用案例&#xff1a; 工具名称 处理速度 降…

python: excel 两个工作表中的员工比对

检测系统中的英文字体:import matplotlib.font_manager as fm# 列出系统中所有支持中文的字体 fonts = fm.findSystemFonts(fontpaths=None, fontext=ttf) chinese_fonts = [] for font in fonts:try:font_prop = fm.…

[DASCTF Oct X 吉林工师 欢迎来到魔法世界~]《魔法少女雪殇——光与暗的对决》——剧场版的一些思路

这道题目是buuctf的第十八页的一道题 查了一下全网 比赛的时候0解 现在也没wp 博主刚入门 能力有限 仅能提供部分思路 欢迎各位师傅交流 题目附件给出magic.E01 火眼证据分析打开 在新加卷发现一个与题目同名文件夹 里…

【大数据毕设源码分享】基于springboot吉林省农村产权交易与数据可视化平台的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…