mlx-LycheeAI-coder-1.7b
当前版本:V13(开关思考版)
mlx-LycheeAI-coder-1.7b 是一个基于 Qwen3-1.7B 通过 QLoRA(4-bit)微调而来的编程助手模型。V13 版本经过十三轮增量微调,在代码能力(9 种语言)与多语言对话(中/英/粤)、情感共情、场景感知回答之间取得均衡,并实现了可开关的思考能力(难题自动思考、/no_think 直接作答、按难度调整思考深度)。
🙏 关于本项目:这是一个个人开发者初次尝试的开源项目,模型由 1.7B 小参数基座微调而来,能力有限——复杂代码、多步推理可能出错,思考输出偶有格式瑕疵。它更适合作为轻量本地助手(简单代码、日常聊天、离线使用),不适合作为生产级编程工具。如果你需要一个「能打」的模型,建议使用更大的开源模型或商业 API。
⚠️ 格式说明:本仓库提供的是 MLX 格式模型(mlx 前缀即表示此含义),仅支持在 Apple Silicon Mac 上通过 MLX-LM 加载,不兼容 HuggingFace transformers(PyTorch)、Windows/Linux、以及 Ollama(GGUF)。如需跨平台(Ollama / llama.cpp / Windows / Linux)版本,请使用 GGUF 版:
模型信息
| 项目 |
说明 |
| 基座模型 |
Qwen/Qwen3-1.7B |
| 微调方法 |
QLoRA(4-bit 量化 + LoRA,rank 16,16 层) |
| 训练框架 |
MLX-LM(Apple Silicon) |
| 许可 |
Apache 2.0(跟随基座) |
| 模型大小 |
~968MB(4-bit 量化) |
训练细节
- 第一轮(代码专项):
- 第二轮(日常对话增量微调):
- 60 条日常对话(中文 32 / 英语 16 / 粤语 12),短问短答、口语化,让模型日常聊天时回复简短自然、不啰嗦
- 从第一轮权重续训(resume),学习率 5e-5,batch size 2,60 步
- 第三轮(多语言项目 + 场景感知 + emoji):
- 150 条数据:多语言小型项目 90 条(Python 20 / C 10 / C++ 10 / C# 10 / HTML 前端 10 / Java 10 / JavaScript 10 / Swift 5 / Go 5)+ 场景感知对话 60 条(简短 40 + 长篇 20,中英粤)
- 让模型学会「看场景决定说多说少」(日常闲聊简短带 emoji,技术/代码问题详细完整),并能写多种语言的小型项目
- 从第二轮权重续训(resume),学习率 5e-5,batch size 2,150 步
- 第四轮(情感共情 + 格式感知 + 多轮 + 复合逻辑):
- 120 条:情感共情 40 + 格式感知 21(区分「解释概念用纯文字」vs「写代码用代码块」)+ 多轮对话 10 + 复合逻辑对比 11 + 纯代码 18 + 锚点 20
- 修复评测反馈的四个短板(复合逻辑出错、闲聊乱用代码块、缺情感共情、缺多轮语义追踪)
- 从第三轮权重续训,学习率 5e-5,batch size 2,120 步
- 第五轮(代码正确性 + 分场合安慰):
- v6.1:133 条(正确代码 79 条覆盖 9 语言 + bug 修复 20 + 全面发展 34),提升代码正确性、减少 bug
- v6.2:26 条(该安慰 8 + 不该安慰 12 + 锚点 6),学会分场合安慰(明确负面情绪才安慰,中性日常简短回应)
- 从第四轮权重续训,学习率 5e-5
- 第六轮(可开关思考):
- 159 条:思考模式 80(数学/逻辑/代码调试/多步推理,assistant 输出
<think>推理</think> + 答案)+ 直答模式 49(/no_think 开头直接答)+ 锚点 30
- 让模型学会「可开关思考」:正常问会先思考再答,加
/no_think 直接答
- 从第五轮权重续训,学习率 5e-5,160 步
- 第七轮(纠偏身份过拟合 + 按难度调整思考 + 网络用语上下文):
- 100 条:常识纠偏+网络用语 25(ChatGPT=OpenAI、xswl=笑死我了 等)+ 身份 vs 常识区分 10 + 诚实兜底 6 + 按难度调整思考 30 + 网络用语上下文 10 + 锚点 15
- 修复「被问 XX 是什么就套身份模板」的过拟合问题,学会区分「我是谁」和「别人是谁」,并诚实说「不知道」
- 从第六轮权重续训,学习率 5e-5,100 步
- 第八轮(拉回代码能力):
- 86 条:完整代码项目 39(含 HTML 计算器完整版)+ 代码调试 15 + 难题思考 10 + 常识纠偏保留 10 + 锚点 15
- 修复第七轮纠偏数据(短文本过多)导致的代码能力退化
- 从第七轮权重续训,学习率 5e-5,90 步
- 第九轮(最终均衡版,V10):
- 200 条:代码 75(完整项目 45 + 调试 20 + 概念 10)+ 情感分场合 25 + 日常简短 20 + 常识百科 20 + 难题思考 15 + 多语言 15 + 网络用语 10 + 身份 10 + 诚实兜底 10
- 整合前八轮所有能力,做最终均衡,目标最大化 1.7B 潜力
- 从第八轮权重续训,学习率 5e-5,200 步
- 第十轮(均衡版加强思考,V11):
- 250 条:完整代码项目 50 + 代码调试 15(带思考)+ 难题思考 35(数学 20 + 逻辑 15)+ 简单题直答 25 + 情感 25 + 日常 25 + 多语言 20 + 常识 20 + 身份 15 + 网络 10 + 诚实 10
- 从 v10 续训,学习率 5e-5,250 步
- 第十一轮(思考修复版,V12):
- 150 条:真实分步推理思考题 60(数学 15 + 逻辑 15 + 代码推理 15 + 常识推理 10 + 开关演示 5)+ 锚点 90(代码 30 + 多语言 15 + 常识 12 + 日常 12 + 情感 10 + 身份 6 + 网络 3 + 诚实 2)
- 把思考样本占比从 V11 的 20% 提到 36.7%,修复 GGUF 版思考退化(空
<think> 壳)问题
- 从 v11 续训,学习率 5e-5,150 步
- 第十二轮(开关思考版,V13):
- 300 条 = 打开思考 200(数学 40 + 逻辑 30 + 代码推理 30 + 常识 20 + 日常 30 + 情感 20 + 多语言 20 + 身份诚实 10,全部带
<think>,按难度调深度)+ 关闭思考 100(数学 20 + 代码 20 + 日常 15 + 逻辑 10 + 情感 10 + 多语言 10 + 常识 10 + 身份 5,全部 /no_think 直答)
- 实现 A+B 思考开关:
/no_think 显式关闭 + 按难度自动调强度;统一思考链模板「先拆 → 再推 → 给结论」;写代码先讲思路
- 从 v12 续训,学习率 5e-5,300 步
- 身份设定:通过 system prompt + 身份问答样本,固定模型身份为「LycheeAI-coder-1.7b,由 Qwen3-1.7B 微调而来」
使用方式
MLX-LM 加载
from mlx_lm import load, generate
model, tokenizer = load("LycheeAI-coder-1.7b")
response = generate(model, tokenizer, prompt="用 Python 写一个快速排序", max_tokens=200)
print(response)
快速体验
mlx_lm.generate --model LycheeAI-coder-1.7b --prompt "写一个二分查找" --max-tokens 200
预期用途与局限
- 适用:代码生成(9 种语言)、代码调试/修复、编程问答、日常多语言对话(中/英/粤)、情感交流、常识问答、可开关思考(难题会先思考再答)
- 开关思考:正常提问会输出
<think> 推理过程再给答案;在提问前加 /no_think 可跳过思考直接回答
- 局限:1.7B 参数规模有限,复杂推理、长上下文、冷门知识能力有限;深度思考能力受限于模型容量;GGUF 量化版(Ollama / llama.cpp)在长链多步推理上的准确性会略低于 MLX 版(量化损失)。
关注作者
📺 Bilibili:欢迎关注我的 B 站账号 https://space.bilibili.com/3493128967293256,不定期分享 AI 模型训练与折腾记录。
致谢
本模型基于 Qwen3-1.7B 微调,训练框架为 MLX-LM,训练数据来自 CodeAlpaca 及各开源项目。