模型 / 数据集
ymcui/Chinese-LLaMA-Alpaca-3 avatar
ymcui/Chinese-LLaMA-Alpaca-3

Chinese-LLaMA-Alpaca-3:中文 Llama-3 的三次迭代与它的边界

中文羊驼大模型三期项目 (Chinese Llama-3 LLMs) developed from Meta Llama 3

1,981 个 Star170 个 ForkPythonApache-2.0
GitHub

秒懂

它是什么?
这个项目把 Meta Llama 3 通过中文增量预训练和指令精调变成可用的中文模型,并开源了训练脚本与指令数据。但它同时暴露出一个现实:8B 规模、8K 上下文、以及 v1/v2/v3 三个指令版本之间的取舍,决定了它适合谁、不适合谁。
适合谁用?
如果你的目标是中文问答、写作或对话,并且希望拿到一个可以直接微调的 8B 权重,优先从 Llama-3-Chinese-8B-Instruct-v3 开始,它由 inst-v1、inst-v2 与 inst-meta 融合后再用约 5K 条指令数据精调,README 明确建议无特殊偏好时选 v3。如果你需要超长上下文、需要商用闭源分发,或者只需要一个纯英文模型,这个项目不是合适的选择:原生窗口只有 8K,许可证是 Apache-2.0 但基座来自 Meta Llama 3,落地前必须核对 Meta 的 Llama 3 许可条款与自身用途是否匹配。
能商用吗?
可以。Apache-2.0 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
还在维护吗?
在维护。仓库最近一次提交在 150 天前。
用什么语言写的?
主要是 Python(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决的是中文能力,而不是中文词表

Meta Llama 3 的词表从上一代的 32K 扩到 128K,并改成 BPE。很多中文适配项目的默认动作是继续扩词表,这个项目没有这么做。README 给出的理由是:初步实验发现 Llama-3 词表在维基百科数据上的编码效率约为中文 LLaMA-2 扩充词表的 95%,差距不大,因此结合在中文 Mixtral 上的经验,决定不对词表做额外扩充。

这个选择省掉了重新初始化 embedding 和 lm-head 的麻烦,也意味着中文能力的提升主要来自数据而非词表结构。项目的做法是:基座模型用约 120GB 无标注中文通用语料做增量预训练,指令模型用约 500 万条有标注指令数据精调。训练方式是 LoRA 加上全量的 embedding 与 lm-head。对使用者来说,这决定了模型不是从零学中文,而是在保留原版英文能力的前提下补中文,代价是中文的绝对水平受 8B 参数量限制。

基座与 Instruct 的分工,以及 v1 到 v3 的路线差异

项目把模型分成两类。Llama-3-Chinese-8B 是基座模型,训练类型是 Causal-LM,不需要输入模板,适用场景是文本续写,也就是给定上文让模型生成下文。Llama-3-Chinese-8B-Instruct 是指令模型,必须套用 Llama-3-Instruct 模板,适用问答、写作、聊天和交互。README 写得很直接:如需聊天交互,请选择 Instruct 版。

Instruct 有三个版本,路线并不相同。v1 从原版 Meta-Llama-3-8B 出发,先做 120G 中文语料预训练,再用 500 万指令数据精调。v2 跳过预训练,直接在 Meta-Llama-3-8B-Instruct 上用 500 万条指令数据精调。v3 则是把 inst-v1、inst-v2 和 inst-meta 做模型融合,再用约 5K 条指令数据精调。README 中中文能力一栏给出的数字是 v1 为 49.3 / 51.5,v2 为 51,v3 的具体数值在提供的材料中被截断,无法确认。

这里有个值得注意的取舍:v2 放弃了中文增量预训练,直接依赖 Meta 的 instruct 版本;v3 用融合把两条路线的结果合并。如果你的中文任务对预训练语料的领域分布敏感,v1 和 v2 的差异会直接体现在输出风格上,而不是只体现在分数上。

8K 上下文与 GQA:能力边界写在架构里

Llama-3 把原生上下文窗口从二代的 4K 提到 8K,这个项目沿用这一设置,基座和 Instruct 都标注为支持 8K。README 提到用户可以通过 PI、NTK、YaRN 等方法扩展长上下文,但这些是外部手段,仓库本身没有提供开箱即用的长上下文版本。

如果你的场景是长文档问答、多轮长对话或代码库级别的理解,8K 是硬约束。把 8K 的模型硬拉到 32K 需要额外的位置编码改造和对应长度的数据,这不是改一个配置键就能完成的事。

架构上另一个变化是分组查询注意力(GQA),它来自 Llama-2 的大参数量版本,目的是提升效率。对推理部署来说,GQA 影响的是 KV cache 的显存占用和吞吐,而不是能力上限。这一点在本地部署时比在评测表上更明显。

从权重到本地运行:README 给出的路径

仓库的定位是模型加脚本,不是推理框架。README 列出支持的运行方式包括 transformers、llama.cpp、text-generation-webui、vLLM 和 Ollama,并且提供了用个人电脑 CPU 或 GPU 做量化和本地部署的教程。权重发布在 Hugging Face 的 hfl 组织下,同时也在 ModelScope、wisemodel 上提供,另有一个 Hugging Face Spaces 在线 Demo。

指令模型必须套用 Llama-3-Instruct 模板,README 特别指出这套模板与 Llama-2-chat 不兼容。这是实际部署里最容易出错的地方:如果你沿用旧的对话模板,模型不会报错,但输出质量会下降,而且这种下降很难归因。基座模型则完全不需要模板。

训练侧,v1.1 版本加入了预训练脚本和指令精调脚本,用户可以根据需要进一步训练或微调。项目还开源了 alpaca_zh_51k、stem_zh_instruction、ruozhiba_gpt4(4o/4T)等指令精调数据。具体的启动命令、配置键名和参数在提供的材料中没有展开,需要查阅仓库内的脚本和 wiki 才能确认,这里不做推测。

什么时候它不该出现在你的技术选型里

第一个明确的失败场景是长上下文。8K 之上没有官方支持,靠 PI、NTK、YaRN 自行扩展属于研究性工作,需要重新训练或至少做位置插值校准,不是部署层面的开关。

第二个是参数量。全部模型都是 8B,没有更大的版本。如果你的任务需要复杂推理、多步工具调用或高质量代码生成,8B 的天花板会先于你的需求出现,这时候换更大的基座比在这个项目上继续精调更划算。

第三个是英文为主的场景。项目的中文能力来自增量预训练,英文能力继承自 Llama 3,但精调数据以中文指令为主。纯英文任务直接用 Meta 原版 Llama 3 更直接,也少一层版本管理的负担。

还有一个容易被忽略的点:Instruct 的三个版本发布时间集中在 2024 年 4 月底到 5 月底,间隔很短。选版本时不能只看版本号,v3 是融合加少量精调的产物,它的行为可能和 v2 的纯指令精调路线不同。README 建议无明确偏好时优先 v3,但如果你的任务在 v2 上表现更好,没有理由为了版本号而升级。

同类路线里,它与 Chinese-LLaMA-Alpaca-2 的分工

最直接的可比对象是同一个作者的前作 Chinese-LLaMA-Alpaca-2。两者最大的方法差异在词表:二代对词表做了扩充,三代放弃扩充,改用原版 128K 词表。这个差别会传导到整个工作流。二代因为改了词表,tokenizer 与上游不一致,任何基于原版 Llama 的工具链都需要适配;三代沿用原版词表,权重可以直接放进支持 Llama-3 的推理框架里,llama.cpp、vLLM、Ollama 这些工具不需要为中文做特殊处理。

上下文长度也是分水岭:二代是 4K,三代是 8K。注意力机制上三代引入 GQA。

如果你的存量系统建在二代上,迁移到三代不是换个权重文件那么简单:对话模板从 Llama-2-chat 换成 Llama-3-Instruct,两者不兼容;词表变了,任何依赖 token 计数的截断逻辑都要重新校准。反过来说,如果你的项目还没开始,三代在工具链兼容性上的优势是实打实的。

维护成本、许可证与需要先核实的事

仓库本身是 Apache-2.0,代码和脚本的使用门槛不高。但模型权重不是同一回事:基座来自 Meta Llama 3,README 中所有基座模型都明确标注为从原版 Meta-Llama-3-8B 或 Meta-Llama-3-8B-Instruct 初始化。这意味着实际部署时,Meta 的 Llama 3 许可条款会叠加在仓库的 Apache-2.0 之上,两者对商用、分发和衍生模型命名的要求可能不同。这不是法律意见,具体条款需要自行核对,尤其是涉及对外提供服务或再分发权重的场景。

维护成本方面,最近一次 release 是 2024 年 5 月 30 日的 v3.0,仓库的最后推送时间显示为 2026 年 4 月,但提供的材料里没有对应这段时间的发布说明,因此无法判断期间是否有实质性更新。项目结构是模型权重加训练脚本,没有常驻服务组件,所以不存在需要持续运维的进程;成本主要落在版本跟进上:一旦你基于某个 Instruct 版本做了精调,上游发布新版本时,是否跟进取决于你的任务在旧版本上是否已经够用。

落地前建议先确认三件事:目标权重在 Hugging Face 或 ModelScope 上是否可下载、Llama-3-Instruct 模板在你的推理框架里是否被正确实现、以及你的用途是否落在 Meta Llama 3 许可允许的范围内。这三点任何一条不成立,后面的精调工作都没有意义。

编辑结论

如果你的目标是中文问答、写作或对话,并且希望拿到一个可以直接微调的 8B 权重,优先从 Llama-3-Chinese-8B-Instruct-v3 开始,它由 inst-v1、inst-v2 与 inst-meta 融合后再用约 5K 条指令数据精调,README 明确建议无特殊偏好时选 v3。如果你需要超长上下文、需要商用闭源分发,或者只需要一个纯英文模型,这个项目不是合适的选择:原生窗口只有 8K,许可证是 Apache-2.0 但基座来自 Meta Llama 3,落地前必须核对 Meta 的 Llama 3 许可条款与自身用途是否匹配。动手前先在 Hugging Face 或 ModelScope 下载权重并跑通官方 Demo 的对话模板,确认 8K 上下文和 Llama-3-Instruct 模板在你的推理栈里能正常工作,再决定是否投入精调。

官方来源

  1. Issues
  2. License: Apache-2.0
  3. README
  4. Releases
  5. ymcui/Chinese-LLaMA-Alpaca-3 on GitHub
社区笔记

社区笔记