Yi 开源双语大模型从 0 到 1:安装、推理到微调的完整新手教程
【免费下载链接】YiA series of large language models trained from scratch by developers @01-ai项目地址: https://gitcode.com/GitHub_Trending/yi/Yi
Yi 是 01.AI 从零训练(非 Llama 衍生品)的开源中英双语大语言模型系列,覆盖 6B / 9B / 34B 多种规格,配套官方的推理、微调、量化代码和多模态版本,让个人开发者和中小团队也能在自有硬件上跑起来一个表现不俗的开源 LLM。
- 规格齐全:Yi-6B / 9B / 34B,另有 200K 长上下文版本和多模态的 Yi-VL 版本
- 部署门槛低:4-bits 量化版最低 4GB 显存即可运行,消费级显卡甚至 MacBook 都能跑
- 兼容主流生态:沿用 Llama 架构,transformers、Docker、llama.cpp 等工具开箱即用
- 官方工具链:仓库自带推理 demo、SFT 微调脚本、AWQ/GPTQ 量化脚本
- 许可友好:代码与权重均为 Apache 2.0,可免费用于个人、学术和商业场景
能力版图:Yi 仓库里都有什么
| 能力 | 对应入口 | 关键特性 | 备注 |
|---|---|---|---|
| Base 文本续写 | demo/text_generation.py | 支持流式输出、多卡张量并行 | 续写模式,非对话模式 |
| Chat 对话推理 | demo/web_demo.py | 一行命令起 Web 聊天界面,可调系统提示、温度等 | 仅 Chat 模型支持 |
| 长上下文 | Yi-6B-200K / Yi-34B-200K | 200K token 上下文(约 40 万汉字) | 34B-200K 需 4 x A800 级别显存 |
| 多模态视觉问答 | VL/single_inference.py、VL/cli.py | Yi-VL-6B / 34B,支持命令行、Web demo、OpenAI 风格 API | 发布时 MMMU / CMMMU 基准第一(2024 年 1 月) |
| 量化压缩 | quantization/ 下 AWQ、GPTQ 脚本 | 后训练量化,4-bits 版最低 4GB 显存 | 精度会下降几个百分点 |
| SFT 微调 | finetune/scripts/ 下run_sft_Yi_6b.sh等 | 官方微调 + 评估脚本,支持自定义 jsonl 数据 | 6B 建议 4 卡 x 60GB+,34B 全参需 8 x 80GB |
| 本地 CPU/低功耗推理 | llama.cpp + GGUF 权重(仓库提供教程) | MacBook Pro(16GB / M2 Pro)可跑 2-bit 量化版 | 参考 docs/README_llama.cpp.md |
跑通最小闭环:3 步拿到第一条模型回复
先说结论:有 A800(80GB)级别的卡,走 pip / Docker 路线;只有 MacBook 这类设备,直接走 llama.cpp + GGUF 量化权重。官方给出的学习路径选择图如下:
第 1 步:拿到代码并装依赖(需 Python 3.10+)
git clone https://gitcode.com/GitHub_Trending/yi/Yi cd Yi pip install -r requirements.txt也可以用官方 Docker 镜像替代本地环境:
docker run -it --gpus all -v <your-model-path>:/models ghcr.io/01-ai/yi:latest第 2 步:下载模型权重。模型托管在 Hugging Face、ModelScope(魔搭)、WiseModel 等平台,选对应规格下载即可(如Yi-6B-Chat,小显存选 4-bits 量化版)。
第 3 步:写一个最小推理脚本,保存为quick_start.py并运行:
from transformers import AutoModelForCausalLM, AutoTokenizer model_path = '<your-model-path>' # 替换为本地模型路径 tokenizer = AutoTokenizer.from_pretrained(model_path, use_fast=False) model = AutoModelForCausalLM.from_pretrained( model_path, device_map="auto", torch_dtype="auto" ).eval() # 走 chat 模板,把 "hi" 发给模型 messages = [{"role": "user", "content": "hi"}] input_ids = tokenizer.apply_chat_template( messages, tokenize=True, add_generation_prompt=True, return_tensors="pt") output_ids = model.generate(input_ids.to("cuda")) response = tokenizer.decode(output_ids[0][input_ids.shape[1]:], skip_special_tokens=True) print(response) # 例如: Hello! How can I assist you today?python quick_start.py跑通后你就完成了 Yi 部署的最小闭环 🚀 后面所有玩法都是在这个基础上加功能。
实战示例:从 Web 界面到多模态
场景 1:一条命令拉起 Web 聊天界面
适合想快速演示或给团队试用 Chat 模型的情况。注意Web demo 只支持 Chat 模型(Base 模型不行):
python demo/web_demo.py -c <你的模型路径>命令执行完按控制台提示的网址访问浏览器即可。Base 模型想体验多卡推理的话,用张量并行脚本(2 卡示例,来自 demo/README.md):
torchrun --nproc_per_node 2 text_generation_tp.py \ --model 01-ai/Yi-6B --max-tokens 512 --streaming场景 2:用 Yi-VL 做多模态图片问答
Yi-VL(视觉语言模型)能"看图说话"。先按 VL/README.md 装好 VL 依赖,然后用仓库自带的示例图提问:
cd VL export PYTHONPATH=$PYTHONPATH:$(pwd) pip install -r requirements.txt CUDA_VISIBLE_DEVICES=0 python single_inference.py \ --model-path path-to-yi-vl-model \ --image-file images/cats.jpg \ --question "Describe the cats and what they are doing in detail."上面这条命令做的事:加载 Yi-VL 权重,把cats.jpg和问题一起喂给模型,得到一段对图中三只猫行为的详细描述。想要持续对话,把入口换成 VL/cli.py;想对外提供服务,用 VL/openai_api.py 起一个 OpenAI 风格的 API。
场景 3:量化与微调,把模型"改小"或"改专"
- 量化:显存不够时把模型压成低位。官方脚本支持 AWQ 和 GPTQ 两种方式,例如:
python quantization/awq/quant_autoawq.py \ --model /base_model --output_dir /quantized_model --trust_remote_code更细的参数说明看 quantization/awq/README.md 和 quantization/gptq/README.md。
- 微调:用官方 SFT 脚本在自有数据上训练(数据为
prompt+chosen两字段的 jsonl,示例见 finetune/yi_example_dataset/):
bash finetune/scripts/run_sft_Yi_6b.sh # 微调 bash finetune/scripts/run_eval.sh # 对比微调前后效果微调的完整流程(含 Docker 方式、硬件配置建议)在 finetune/README.md 里。
选型前必须知道的边界与限制
先给结论:要中文场景、要代码数学能力、要在消费级显卡上跑,Yi 值得用;要单机跑 200K 长文本、或追求极致稳定的确定性输出,要先掂量硬件和预期。
显存要求(推理最低显存):
| 模型 | 最低显存 | 参考 GPU 配置 |
|---|---|---|
| Yi-6B-Chat | 15 GB | 1 x RTX 3090 / 4090 |
| Yi-6B-Chat-4bits | 4 GB | 1 x RTX 3060 / 4060 |
| Yi-9B | 20 GB | 1 x RTX 4090 |
| Yi-34B-Chat | 72 GB | 1 x A800 80GB 或 4 x RTX 4090 |
| Yi-34B-Chat-4bits | 20 GB | 1 x RTX 3090 / 4090 |
| Yi-34B-200K | 200 GB | 4 x A800 80GB |
已知限制,官方 FAQ 里明说的:
- ⚠️ Chat 模型训练时鼓励回复多样化,副作用是幻觉、重新生成不一致、长推理中误差累积的概率更高,建议调低温度 / top_p / top_k 来换一致性
- 量化版 benchmark 会有几个百分点的性能下降,逻辑推理类任务对这点差异尤其敏感
- 34B 全参数微调需要 8 x 80GB 显卡(LoRA 类低资源方案成本低得多)
- 默认上下文 4K,200K 是单独的 200K 版本模型,不是免费送的
性能底牌:官方基准中 Yi-34B-Chat 在 MMLU、CMMLU、BBH、GSM8k 等主流开源模型对比里处于第一梯队,Yi-34B 曾在 Hugging Face Open LLM Leaderboard 与 C-Eval 上登顶(数据截至 2023 年底)。
延伸阅读
- 完整中文文档:README_CN.md
- 推理示例(含张量并行):demo/
- 多模态 Yi-VL 文档:VL/README.md
- 微调指南:finetune/README.md
- 量化脚本说明:quantization/awq/README.md、quantization/gptq/README.md
- llama.cpp 本地部署教程:docs/README_llama.cpp.md
- 社区教程与最佳实践合集(RAG、Function Calling、Ollama 等):Cookbook/README.md
【免费下载链接】YiA series of large language models trained from scratch by developers @01-ai项目地址: https://gitcode.com/GitHub_Trending/yi/Yi
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考