Yi:从零训练的双语开源大语言模型实战指南
2026/9/20 2:35:47 网站建设 项目流程

Yi:从零训练的双语开源大语言模型实战指南

【免费下载链接】YiA series of large language models trained from scratch by developers @01-ai项目地址: https://gitcode.com/GitHub_Trending/yi/Yi

Yi 是 01.AI 从零开始训练的双语(中英)开源大语言模型,覆盖 6B、9B、34B 等参数规模,并提供了 Base、Chat 以及 200K 长上下文三类变体。仓库不仅托管模型权重,还内置推理演示、SFT 微调与 AWQ/GPTQ 量化的可运行脚本。本文面向有 Python 基础、准备在本地部署或二次开发 Yi 的开发者,带你从安装一路做到微调与量化。

一、快速上手 🚀

先确认运行环境:

  • Python 3.10 及以上;
  • 资源充足(例如单卡 A800 80GB)可用 pip、Docker 或 conda-lock 方式部署;
  • 资源有限(例如 16GB 内存的 MacBook Pro)建议走 llama.cpp 量化路线。

克隆仓库并安装依赖:

git clone https://gitcode.com/GitHub_Trending/yi/Yi cd Yi pip install -r requirements.txt

模型权重与 tokenizer 可从 Hugging Face(01-ai 组织页)、ModelScope、WiseModel 三个渠道获取。装好后创建quick_start.py跑一遍聊天推理,终端出现类似Hello! How can I assist you today?的输出,即代表环境就绪。

二、能力清单 📋

模型类别覆盖型号定位关键参数
Base 模型Yi-6B / 9B / 34B预训练底座,供微调默认上下文 4K
Chat 模型Yi-6B-Chat / 34B-Chat对话推理,SFT 训练回复风格更多样
长文本模型各系列 200K 版长文档理解约 40 万汉字
量化版本4bits(AWQ)/ 8bits(GPTQ)消费级 GPU 部署3090、4090 可用
多模态Yi-VL-6B / 34B图文理解仓库VL/目录
  • 6B 系列适合个人与学术使用;9B 系列在 Yi 家族中代码与数学能力最强(由 6B 继续训练 0.8T tokens 得到);34B 系列对个人、学术和中小企业商用都友好。
  • 全量模型显存门槛较高:例如 Yi-34B-Chat 最低 72GB,Yi-34B-200K 最低 200GB;量化后显著降低,Yi-6B-Chat-4bits 最低仅需 4GB。

三、生成流程

从输入到输出的核心链路只有三步:

提示词(prompt) → AutoTokenizer 分词;Chat 模型先经 apply_chat_template 套对话模板 → model.generate() 在 GPU 上生成 → tokenizer.decode() 还原为文本回复
  • Chat 模型:输入按role/content消息列表组织,add_generation_prompt=True会自动补上生成引导。
  • Base 模型:输入为纯文本 prompt,走续写(completion)模式。
  • 超长输入可开启张量并行,把模型切分到多张卡上推理。

四、核心用法

Chat 模型本地推理

最小可运行的quick_start.py(A800 80GB 上跑 Yi-34B-Chat):

from transformers import AutoModelForCausalLM, AutoTokenizer model_path = '<your-model-path>' # 替换为你下载的权重路径 tokenizer = AutoTokenizer.from_pretrained(model_path, use_fast=False) model = AutoModelForCausalLM.from_pretrained( # transformers 4.35.0 起可直接加载 GPTQ/AWQ 量化模型 model_path, device_map="auto", torch_dtype='auto' ).eval() messages = [{"role": "user", "content": "hi"}] # 多轮对话在此追加消息 input_ids = tokenizer.apply_chat_template( conversation=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)

运行python quick_start.py即可看到模型回复。

Base 模型文本生成

仓库demo/目录自带脚本,直接调用即可:

python demo/text_generation.py --model <your-model-path> # --prompt 可更换提示词

输入超长序列时可用双卡张量并行加速,避免显存不足:

torchrun --nproc_per_node 2 \ demo/text_generation_tp.py \ --model 01-ai/Yi-6B \ --max-tokens 512 --eos-token $'\n' --streaming

Web 演示界面

仅 Chat 模型支持该功能(Base 模型不支持)。启动后按控制台输出的网址打开浏览器:

python demo/web_demo.py -c <你的模型路径>

llama.cpp 本地低配运行

适合 MacBook Pro(16GB、M2 Pro 这类设备)运行量化后的 Yi-chat-6B-2bits。前提是先装好git-lfs

# 只拉取仓库指针,再单独下载 GGUF 权重 GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/XeIaso/yi-chat-6B-GGUF git-lfs pull --include yi-chat-6b.Q2_K.gguf

编译 llama.cpp 后,终端推理:

make -j4 && ./main -m <模型文件路径>/yi-chat-6b.Q2_K.gguf -p "你的问题" -n 384 -e

也可以起一个 Web 聊天服务,浏览器访问http://0.0.0.0:8080

./server --ctx-size 2048 --host 0.0.0.0 --n-gpu-layers 64 \ --model <模型文件路径>/yi-chat-6b.Q2_K.gguf

五、进阶特性 🛠️

SFT 微调 Base 模型

  • 触发条件:拿到 Base 模型权重,并准备jsonl格式数据集,每行形如{"prompt": "Human: Who are you? Assistant:", "chosen": "I'm Yi."};示例数据在 finetune/yi_example_dataset/。
  • 硬件参考:Yi-6B 建议 4 卡、每卡显存大于 60GB;Yi-34B 建议 8 卡 80GB 节点,用CUDA_VISIBLE_DEVICES=0,1,2,3限制实际参与训练的卡数,CPU 内存大于 900GB。
  • 运行:Docker 方式挂载自定义数据后执行 SFT 脚本;本地方式可先建 conda 环境(torch==2.0.1 deepspeed==0.10 tensorboard transformers datasets sentencepiece accelerate ray==2.7)。
bash finetune/scripts/run_sft_Yi_6b.sh # 6B 约 20 分钟产出 Chat 模型 bash finetune/scripts/run_eval.sh # 对比 Base 与微调后的回复

AWQ 与 GPTQ 量化

  • 触发条件:拿到 Base 模型权重,使用 quantization/ 下的脚本;两者都属于后训练量化(PTQ),AWQ 走 INT3/INT4 权重量化,GPTQ 侧重省显存与提速。
  • 支持的入口quantization/awq/quant_autoawq.py(AWQ)、quantization/gptq/quant_autogptq.py(GPTQ),量化后用同目录的eval_quantized_model.py评估。
  • 代码片段
python quantization/awq/quant_autoawq.py \ --model /base_model --output_dir /quantized_model \ --bits 4 --group_size 128 --trust_remote_code python quantization/awq/eval_quantized_model.py \ --model /quantized_model --trust_remote_code

GPTQ 侧把脚本换成quantization/gptq/quant_autogptq.py与对应的eval_quantized_model.py即可,参数一致。量化模型部署还需安装 AWQ 或 GPTQ 的推理依赖(含 CUDA)。

Yi-VL 多模态推理

  • 触发条件:下载 Yi-VL-6B 或 Yi-VL-34B 权重,进入 VL/ 目录配置环境。
  • 支持项:单图问答(single_inference.py)、命令行对话(cli.py)、Web 演示(web_demo.py)、OpenAI 风格 API(openai_api.py)。
  • 代码片段
cd VL export PYTHONPATH=$PYTHONPATH:$(pwd) pip install -r requirements.txt CUDA_VISIBLE_DEVICES=0 python single_inference.py \ --model-path <Yi-VL 权重路径> \ --image-file images/cats.jpg \ --question "Describe the cats and what they are doing in detail."

六、目录速览

Yi/ ├── demo/ # 文本生成与 Web 演示脚本 ├── finetune/ # SFT 微调脚本、示例数据与工具模块 ├── quantization/ # AWQ / GPTQ 量化与评估脚本 ├── VL/ # Yi-VL 多模态推理:single_inference / cli / web_demo / openai_api ├── Cookbook/ # 中英文教程与 Notebook(RAG、函数调用、本地部署) ├── docs/ # llama.cpp 本地部署教程 ├── requirements.txt # 依赖清单 ├── Dockerfile # 官方镜像构建 ├── conda-lock.yml # 可复现 conda 环境 ├── LICENSE # Apache 2.0 └── MODEL_LICENSE_AGREEMENT.txt # 模型社区许可

七、延伸阅读

  • finetune/README.md:微调数据准备、硬件配置与评估的完整说明。
  • quantization/awq/README.md:AWQ 量化的逐步教程。
  • quantization/gptq/README.md:GPTQ 量化的逐步教程。
  • docs/README_llama.cpp.md:llama.cpp 本地部署量化模型的完整教程。
  • Cookbook/README_cn.md:Yi Cookbook 中文教程索引(含 RAG、函数调用、本地运行)。
  • VL/README.md:Yi-VL 多模态推理与 API 用法。
  • MODEL_LICENSE_AGREEMENT.txt:模型权重许可条款;代码遵循 LICENSE(Apache 2.0)。

性能方面可参考仓库 README 中的结论:Yi-34B-Chat 曾在 AlpacaEval 排行榜位列第二(仅次于 GPT-4 Turbo),Yi-34B 在 C-Eval 等基准上中英双语均居当时开源模型首位。更完整的训练细节与评测方法见 Yi 技术报告(arXiv:2403.04652)。

【免费下载链接】YiA series of large language models trained from scratch by developers @01-ai项目地址: https://gitcode.com/GitHub_Trending/yi/Yi

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询