v14 README
Browse files
README.md
CHANGED
|
@@ -1,7 +1,135 @@
|
|
| 1 |
---
|
| 2 |
-
language:
|
| 3 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 4 |
pipeline_tag: text-generation
|
| 5 |
tags:
|
| 6 |
-
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
+
language:
|
| 3 |
+
- zh
|
| 4 |
+
- en
|
| 5 |
+
- yue
|
| 6 |
+
license: apache-2.0
|
| 7 |
+
base_model: Qwen/Qwen3-1.7B
|
| 8 |
+
base_model_relation: finetune
|
| 9 |
+
library_name: mlx-lm
|
| 10 |
pipeline_tag: text-generation
|
| 11 |
tags:
|
| 12 |
+
- qwen3
|
| 13 |
+
- coder
|
| 14 |
+
- lora
|
| 15 |
+
- code
|
| 16 |
+
- lychee
|
| 17 |
+
- finetune
|
| 18 |
+
- multilingual
|
| 19 |
+
datasets:
|
| 20 |
+
- sahil2801/CodeAlpaca-20k
|
| 21 |
+
- shibing624/alpaca-zh
|
| 22 |
+
- tatsu-lab/alpaca
|
| 23 |
+
- hon9kon9ize/yue-alpaca-chat
|
| 24 |
---
|
| 25 |
+
|
| 26 |
+
# mlx-LycheeAI-coder-1.7b
|
| 27 |
+
|
| 28 |
+
> **当前版本:V14**(格式规范版)
|
| 29 |
+
|
| 30 |
+
**mlx-LycheeAI-coder-1.7b** 是一个基于 [Qwen3-1.7B](https://huggingface.co/Qwen/Qwen3-1.7B) 通过 **QLoRA(4-bit)微调**而来的编程助手模型。V14 版本经过十四轮增量微调,在代码能力(9 种语言)与多语言对话(中/英/粤)、情感共情、场景感知回答之间取得均衡,并实现了**可开关的思考能力**(难题自动思考、`/no_think` 直接作答、按难度调整思考深度),V14 重点规范了思考输出的标签格式。
|
| 31 |
+
|
| 32 |
+
> 🙏 **关于本项目**:这是一个**个人开发者初次尝试**的开源项目,模型由 1.7B 小参数基座微调而来,能力有限——复杂代码、多步推理可能出错,思考输出偶有格式瑕疵。它更适合作为**轻量本地助手**(简单代码、日常聊天、离线使用),不适合作为生产级编程工具。如果你需要一个「能打」的模型,建议使用更大的开源模型或商业 API。
|
| 33 |
+
|
| 34 |
+
> ⚠️ **格式说明**:本仓库提供的是 **MLX 格式**模型(`mlx` 前缀即表示此含义),仅支持在 **Apple Silicon Mac** 上通过 [MLX-LM](https://github.com/ml-explore/mlx-lm) 加载,**不兼容** HuggingFace transformers(PyTorch)、Windows/Linux、以及 Ollama(GGUF)。如需跨平台(Ollama / llama.cpp / Windows / Linux)版本,请使用 **GGUF 版**:
|
| 35 |
+
> - HuggingFace: [whcl412/LycheeAI-coder-1.7b-GGUF](https://huggingface.co/whcl412/LycheeAI-coder-1.7b-GGUF)
|
| 36 |
+
> - ModelScope: [whcl412/LycheeAI-coder-1.7b-GGUF](https://modelscope.cn/models/whcl412/LycheeAI-coder-1.7b-GGUF)
|
| 37 |
+
|
| 38 |
+
## 模型信息
|
| 39 |
+
|
| 40 |
+
| 项目 | 说明 |
|
| 41 |
+
|------|------|
|
| 42 |
+
| 基座模型 | Qwen/Qwen3-1.7B |
|
| 43 |
+
| 微调方法 | QLoRA(4-bit 量化 + LoRA,rank 16,16 层) |
|
| 44 |
+
| 训练框架 | MLX-LM(Apple Silicon) |
|
| 45 |
+
| 许可 | Apache 2.0(跟随基座) |
|
| 46 |
+
| 模型大小 | ~968MB(4-bit 量化) |
|
| 47 |
+
|
| 48 |
+
## 训练细节
|
| 49 |
+
|
| 50 |
+
- **第一轮(代码专项)**:
|
| 51 |
+
- [CodeAlpaca-20k](https://huggingface.co/datasets/sahil2801/CodeAlpaca-20k)(代码指令 3500 条,重点)
|
| 52 |
+
- 中文对话 800 条([alpaca-zh](https://huggingface.co/datasets/shibing624/alpaca-zh))
|
| 53 |
+
- 英语对话 800 条([Alpaca](https://huggingface.co/datasets/tatsu-lab/alpaca) 英文版)
|
| 54 |
+
- 粤语对话 600 条([yue-alpaca-chat](https://huggingface.co/datasets/hon9kon9ize/yue-alpaca-chat))
|
| 55 |
+
- 身份问答 24 条(中/英/粤,强化身份记忆)
|
| 56 |
+
- 共 5724 条,学习率 1e-4,batch size 2,4000 步,LoRA rank 16
|
| 57 |
+
- **第二轮(日常对话增量微调)**:
|
| 58 |
+
- 60 条日常对话(中文 32 / 英语 16 / 粤语 12),短问短答、口语化,让模型日常聊天时回复简短自然、不啰嗦
|
| 59 |
+
- 从第一轮权重续训(resume),学习率 5e-5,batch size 2,60 步
|
| 60 |
+
- **第三轮(多语言项目 + 场景感知 + emoji)**:
|
| 61 |
+
- 150 条数据:多语言小型项目 90 条(Python 20 / C 10 / C++ 10 / C# 10 / HTML 前端 10 / Java 10 / JavaScript 10 / Swift 5 / Go 5)+ 场景感知对话 60 条(简短 40 + 长篇 20,中英粤)
|
| 62 |
+
- 让模型学会「看场景决定说多说少」(日常闲聊简短带 emoji,技术/代码问题详细完整),并能写多种语言的小型项目
|
| 63 |
+
- 从第二轮权重续训(resume),学习率 5e-5,batch size 2,150 步
|
| 64 |
+
- **第四轮(情感共情 + 格式感知 + 多轮 + 复合逻辑)**:
|
| 65 |
+
- 120 条:情感共情 40 + 格式感知 21(区分「解释概念用纯文字」vs「写代码用代码块」)+ 多轮对话 10 + 复合逻辑对比 11 + 纯代码 18 + 锚点 20
|
| 66 |
+
- 修复评测反馈的四个短板(复合逻辑出错、闲聊乱用代码块、缺情感共情、缺多轮语义追踪)
|
| 67 |
+
- 从第三轮权重续训,学习率 5e-5,batch size 2,120 步
|
| 68 |
+
- **第五轮(代码正确性 + 分场合安慰)**:
|
| 69 |
+
- v6.1:133 条(正确代码 79 条覆盖 9 语言 + bug 修复 20 + 全面发展 34),提升代码正确性、减少 bug
|
| 70 |
+
- v6.2:26 条(该安慰 8 + 不该安慰 12 + 锚点 6),学会分场合安慰(明确负面情绪才安慰,中性日常简短回应)
|
| 71 |
+
- 从第四轮权重续训,学习率 5e-5
|
| 72 |
+
- **第六轮(可开关思考)**:
|
| 73 |
+
- 159 条:思考模式 80(数学/逻辑/代码调试/多步推理,assistant 输出 `<think>推理</think>` + 答案)+ 直答模式 49(`/no_think` 开头直接答)+ 锚点 30
|
| 74 |
+
- 让模型学会「可开关思考」:正常问会先思考再答,加 `/no_think` 直接答
|
| 75 |
+
- 从第五轮权重续训,学习率 5e-5,160 步
|
| 76 |
+
- **第七轮(纠偏身份过拟合 + 按难度调整思考 + 网络���语上下文)**:
|
| 77 |
+
- 100 条:常识纠偏+网络用语 25(ChatGPT=OpenAI、xswl=笑死我了 等)+ 身份 vs 常识区分 10 + 诚实兜底 6 + 按难度调整思考 30 + 网络用语上下文 10 + 锚点 15
|
| 78 |
+
- 修复「被问 XX 是什么就套身份模板」的过拟合问题,学会区分「我是谁」和「别人是谁」,并诚实说「不知道」
|
| 79 |
+
- 从第六轮权重续训,学习率 5e-5,100 步
|
| 80 |
+
- **第八轮(拉回代码能力)**:
|
| 81 |
+
- 86 条:完整代码项目 39(含 HTML 计算器完整版)+ 代码调试 15 + 难题思考 10 + 常识纠偏保留 10 + 锚点 15
|
| 82 |
+
- 修复第七轮纠偏数据(短文本过多)导致的代码能力退化
|
| 83 |
+
- 从第七轮权重续训,学习率 5e-5,90 步
|
| 84 |
+
- **第九轮(最终均衡版,V10)**:
|
| 85 |
+
- 200 条:代码 75(完整项目 45 + 调试 20 + 概念 10)+ 情感分场合 25 + 日常简短 20 + 常识百科 20 + 难题思考 15 + 多语言 15 + 网络用语 10 + 身份 10 + 诚实兜底 10
|
| 86 |
+
- 整合前八轮所有能力,做最终均衡,目标最大化 1.7B 潜力
|
| 87 |
+
- 从第八轮权重续训,学习率 5e-5,200 步
|
| 88 |
+
- **第十轮(均衡版加强思考,V11)**:
|
| 89 |
+
- 250 条:完整代码项目 50 + 代码调试 15(带思考)+ 难题思考 35(数学 20 + 逻辑 15)+ 简单题直答 25 + 情感 25 + 日常 25 + 多语言 20 + 常识 20 + 身份 15 + 网络 10 + 诚实 10
|
| 90 |
+
- 从 v10 续训,学习率 5e-5,250 步
|
| 91 |
+
- **第十一轮(思考修复版,V12)**:
|
| 92 |
+
- 150 条:真实分步推理思考题 60(数学 15 + 逻辑 15 + 代码推理 15 + 常识推理 10 + 开关演示 5)+ 锚点 90(代码 30 + 多语言 15 + 常识 12 + 日常 12 + 情感 10 + 身份 6 + 网络 3 + 诚实 2)
|
| 93 |
+
- 把思考样本占比从 V11 的 20% 提到 36.7%,修复 GGUF 版思考退化(空 `<think>` 壳)问题
|
| 94 |
+
- 从 v11 续训,学习率 5e-5,150 步
|
| 95 |
+
- **第十二轮(开关思考版,V13)**:
|
| 96 |
+
- 300 条 = 打开思考 200(数学 40 + 逻辑 30 + 代码推理 30 + 常识 20 + 日常 30 + 情感 20 + 多语言 20 + 身份诚实 10,全部带 `<think>`,按难度调深度)+ 关闭思考 100(数学 20 + 代码 20 + 日常 15 + 逻辑 10 + 情感 10 + 多语言 10 + 常识 10 + 身份 5,全部 `/no_think` 直答)
|
| 97 |
+
- 实现 A+B 思考开关:`/no_think` 显式关闭 + 按难度自动调强度;统一思考链模板「先拆 → 再推 → 给结论」;写代码先讲思路
|
| 98 |
+
- 从 v12 续训,学习率 5e-5,300 步
|
| 99 |
+
- **第十三轮(格式规范版,V14)**:
|
| 100 |
+
- 200 条 = 打开思考 130(数学 30 + 逻辑 25 + 代码推理 20 + 常识 15 + 日常 15 + 情感 10 + 多语言 10 + 身份诚实 5)+ 关闭思考 70(代码 25 + 日常 15 + 数学 10 + 多语言 8 + 情感 6 + 常识 4 + 身份 2)
|
| 101 |
+
- 重点规范思考标签格式:`<think>` 严格成对、think 内只放推理过程、答案放在 `</think>` 外,修复标签孤立/伪标记问题
|
| 102 |
+
- 从 v13 续训,学习率 5e-5,200 步
|
| 103 |
+
- **身份设定**:通过 system prompt + 身份问答样本,固定模型身份为「LycheeAI-coder-1.7b,由 Qwen3-1.7B 微调而来」
|
| 104 |
+
|
| 105 |
+
## 使用方式
|
| 106 |
+
|
| 107 |
+
### MLX-LM 加载
|
| 108 |
+
|
| 109 |
+
```python
|
| 110 |
+
from mlx_lm import load, generate
|
| 111 |
+
|
| 112 |
+
model, tokenizer = load("LycheeAI-coder-1.7b")
|
| 113 |
+
response = generate(model, tokenizer, prompt="用 Python 写一个快速排序", max_tokens=200)
|
| 114 |
+
print(response)
|
| 115 |
+
```
|
| 116 |
+
|
| 117 |
+
### 快速体验
|
| 118 |
+
|
| 119 |
+
```bash
|
| 120 |
+
mlx_lm.generate --model LycheeAI-coder-1.7b --prompt "写一个二分查找" --max-tokens 200
|
| 121 |
+
```
|
| 122 |
+
|
| 123 |
+
## 预期用途与局限
|
| 124 |
+
|
| 125 |
+
- **适用**:代码生成(9 种语言)、代码调试/修复、编程问答、日常多语言对话(中/英/粤)、情感交流、常识问答、可开关思考(难题会先思考再答)
|
| 126 |
+
- **开关思考**:正常提问会输出 `<think>` 推理过程再给答案;在提问前加 `/no_think` 可跳过思考直接回答
|
| 127 |
+
- **局限**:1.7B 参数规模有限,复杂推理、长上下文、冷门知识能力有限;深度思考能力受限于模型容量;GGUF 量化版(Ollama / llama.cpp)在长链多步推理上的准确性会略低于 MLX 版(量化损失)。
|
| 128 |
+
|
| 129 |
+
## 关注作者
|
| 130 |
+
|
| 131 |
+
📺 **Bilibili**:欢迎关注我的 B 站账号 [https://space.bilibili.com/3493128967293256](https://space.bilibili.com/3493128967293256),不定期分享 AI 模型训练与折腾记录。
|
| 132 |
+
|
| 133 |
+
## 致谢
|
| 134 |
+
|
| 135 |
+
本模型基于 [Qwen3-1.7B](https://huggingface.co/Qwen/Qwen3-1.7B) 微调,训练框架为 [MLX-LM](https://github.com/ml-explore/mlx-lm),训练数据来自 CodeAlpaca 及各开源项目。
|