-
Yi 系列模型是 01.AI 从零训练的下一代开源大语言模型。
-
? Yi 系列模型是一个双语语言模型,在 3T 多语言语料库上训练而成,是全球最强大的大语言模型之一。Yi 系列模型在语言认知、常识推理、阅读理解等方面表现优异。例如,
-
Yi-34B-Chat 模型在 AlpacaEval Leaderboard 排名第二,仅次于 GPT-4 Turbo,超过了 GPT-4、Mixtral 和 Claude 等大语言模型(数据截止至 2024 年 1 月)。
-
Yi-34B 模型在 Hugging Face Open LLM Leaderboard(预训练)与 C-Eval 基准测试中荣登榜首,在中文和英文语言能力方面均超过了其它开源模型,例如,Falcon-180B、Llama-70B 和 Claude(数据截止至 2023 年 11 月)。
-
? (致谢 Llama )感谢 Transformer 和 Llama 开源社区,不仅简化了开发者从零开始构建大模型的工作,开发者还可以利用 Llama 生态中现有的工具、库和资源,提高开发效率。
如果你对 Yi 使用 Llama 架构及其许可使用政策感兴趣,参阅 「Yi 与 Llama 的关系」。
-
[ 返回顶部 ⬆️ ]
? 2023-11-23: 发布并开源了六大 Chat 模型。
? 2023-11-23: Yi 系列模型社区许可协议更新至 2.1 版本。
? 2023-11-08: Yi-34B-Chat 模型开始邀请测试。
? 2023-11-05: 发布并开源了 和 Base 模型。Yi-6B-200K
Yi-34B-200K
? 2023-11-02: 发布并开源了 和 模型。Yi-6B-Base
Yi-34B-Base
[ 返回顶部 ⬆️ ]
Yi 系列模型有多种参数规模,适用于不同的使用场景。你也可以对Yi模型进行微调,从而满足特定需求。
如需部署 Yi 系列模型,应确保软件和硬件满足「部署要求」.
模型 | 下载 |
---|---|
Yi-34B-聊天室 | • ? 拥抱脸 • ? ModelScope |
Yi-34B-聊天-4位 | • ? 拥抱脸 • ? ModelScope |
Yi-34B-聊天-8位 | • ? 拥抱脸 • ? ModelScope |
Yi-6B-聊天室 | • ? 拥抱脸 • ? ModelScope |
Yi-6B-聊天-4位 | • ? 拥抱脸 • ? ModelScope |
Yi-6B-Chat-8位 | • ? 拥抱脸 • ? ModelScope |
– 4-bits 系列模型由AWQ量化。
– 8-bits 系列模型由GPTQ量化。
– 所有量化模型的使用门槛较低,因此可以在消费级GPU(例如,3090、4090)上部署。
模型 | 下载 |
---|---|
易-34B | • ? 拥抱脸 • ? ModelScope |
一-34B-200K | • ? 拥抱脸 • ? ModelScope |
易-6B | • ? 拥抱脸 • ? ModelScope |
易-6B-200K | • ? 拥抱脸 • ? ModelScope |
– 200K 大约相当于 40 万个汉字。
-
Chat 和 Base 模型:
-
6B 系列模型适合个人和学术使用。
-
34B 系列模型适合个人、学术和商业用途(尤其对中小型企业友好)。34B 模型尺寸在开源社区属于稀缺的”黄金比例”尺寸,已具大模型涌现能力,适合发挥于多元场景,满足开源社区的刚性需求。
-
默认的上下文窗口是 4k tokens。
-
预训练的 tokens 数量是 3T。
-
训练数据截至 2023 年 6 月。
-
-
Chat 模型
关于 Chat 模型的局限性,参阅以下解释。⬇️
[ 返回顶部 ⬆️ ]
你可以选择一条学习路径,开始使用 Yi 系列模型。
你可以根据自身需求,选择以下方式之一,开始你的 Yi 之旅。
如果你想在本地部署 Yi 模型,
- ? ♀️ 并且你有足够的资源(例如,NVIDIA A800 80GB),你可以选择以下方式之一。
- ? ♀️ 但你的资源有限(例如,一台 MacBook Pro),你可以使用 llama.cpp。
如果你不想在本地部署 Yi 模型,你可以选择以下方式之一。
如果你想探索 Yi 的更多功能,你可以选择以下方式之一。
如果你想与 Yi 聊天,并使用更多自定义选项(例如,系统提示、温度、重复惩罚等),你可以选择以下方式之一。
-
Yi-34B-Chat-Playground (Yi 官方)
-
Yi-34B-Chat-Playground (复制,第三方网站)
以下提供了类似的用户体验,你可以选择以下方式之一,与 Yi 聊天。
-
Yi-34B-Chat(Yi 官方 – 拥抱脸)
- 不需要注册。
-
Yi-34B-Chat(Yi 官方)
[ 返回顶部 ⬆️ ]
本教程在配置为 A800(80GB) 的本地机器上运行 Yi-34B-Chat, 并进行推理。
-
确保安装了 Python 3.10 以上版本。
-
如果你想运行 Yi 系列模型,参阅「部署要求」。
如需设置环境,安装所需要的软件包,运行下面的命令。
git clone https://github.com/01-ai/Yi.git
cd yi
pip install -r requirements.txt
你可以从以下来源下载 Yi 模型。
你可以使用 Yi Chat 模型或 Base 模型进行推理。
-
创建一个名为 的文件,并将以下内容复制到该文件中。
quick_start.py
from transformers import AutoModelForCausalLM, AutoTokenizer model_path = '<your-model-path>' tokenizer = AutoTokenizer.from_pretrained(model_path, use_fast=False) # Since transformers 4.35.0, the GPT-Q/AWQ model can be loaded using AutoModelForCausalLM. model = AutoModelForCausalLM.from_pretrained( model_path, device_map="auto", torch_dtype='auto' ).eval() # Prompt content: "hi" 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) # Model response: "Hello! How can I assist you today?" print(response)
-
运行 代码。
quick_start.py
python quick_start.py
你将得到一个类似输出,如下所示。?
Hello! How can I assist you today?
步骤与「使用 Yi Chat 模型进行推理」类似。
你可以使用现有文件 text_generation.py
进行推理。
python demo/text_generation.py --model <your-model-path>
你将得到一个类似输出,如下所示。? ⬇️
[ 返回顶部 ⬆️ ]
? 教程:在本地 Docker 上运行 Yi-34B-Chat。⬇️
? 如需创建一个可以完全重现的 conda 环境锁定文件,你可以使用 工具。⬇️conda-lock
? 教程:在本地 llama.cpp 上运行 Yi-chat-6B-2bits。⬇️
[ 返回顶部 ⬆️ ]
你可以使用 Yi Chat 模型(Yi-34B-Chat)创建 Web demo。注意:Yi Base 模型(Yi-34B)不支持该功能。
第三步:启动 Web demo 服务,运行以下命令。
python demo/web_demo.py -c <你的模型路径>
命令运行完毕后,你可以在浏览器中输入控制台提供的网址,来使用 Web demo 功能。
[ 返回顶部 ⬆️ ]
bash finetune/scripts/run_sft_Yi_6b.sh
完成后,你可以使用以下命令,比较微调后的模型与 Base 模型。
bash finetune/scripts/run_eval.sh
你可以使用 Yi 6B 和 34B Base 模型的微调代码,根据你的自定义数据进行微调。⬇️
[ 返回顶部 ⬆️ ]
python quantization/gptq/quant_autogptq.py \
--model /base_model \
--output_dir /quantized_model \
--trust_remote_code
如需评估生成的模型,你可以使用以下代码。
python quantization/gptq/eval_quantized_model.py \
--model /quantized_model \
--trust_remote_code
详细的量化过程。⬇️
python quantization/awq/quant_autoawq.py \
--model /base_model \
--output_dir /quantized_model \
--trust_remote_code
如需评估生成的模型,你可以使用以下代码。
python quantization/awq/eval_quantized_model.py \
--model /quantized_model \
--trust_remote_code
详细的量化过程。⬇️
[ 返回顶部 ⬆️ ]
如果你想部署 Yi 模型,确保满足以下软件和硬件要求。
在使用 Yi 量化模型之前,确保安装以下软件。
模型 | 软件 |
---|---|
Yi 4-bits 量化模型 | AWQ 和 CUDA |
Yi 8-bits 量化模型 | GPTQ 和 CUDA |
部署 Yi 系列模型之前,确保硬件满足以下要求。
模型 | 最低显存 | 推荐GPU示例 |
---|---|---|
Yi-6B-聊天室 | 15 千兆字节 | RTX 3090 RTX 4090 A10 A30 |
Yi-6B-聊天-4位 | 4 千兆字节 | RTX 3060 RTX 4060 |
Yi-6B-Chat-8位 | 8 千兆字节 | RTX 3070 RTX 4060 |
Yi-34B-聊天室 | 72 千兆字节 | 4 x RTX 4090 A800 (80GB) |
Yi-34B-聊天-4位 | 20 千兆字节 | RTX 3090 RTX 4090 A10 A30 A100 (40GB) |
Yi-34B-聊天-8位 | 38 千兆字节 | 2 个 RTX 3090 2 个 RTX 4090 A800 (40GB) |
以下是不同 batch 使用情况下的最低显存要求。
模型 | 批次=1 | 批次=4 | 批次=16 | 批次=32 |
---|---|---|---|---|
Yi-6B-聊天室 | 12 千兆字节 | 13 千兆字节 | 15 千兆字节 | 18千兆字节 |
Yi-6B-聊天-4位 | 4 千兆字节 | 5千兆字节 | 7 千兆字节 | 10 千兆字节 |
Yi-6B-Chat-8位 | 7 千兆字节 | 8 千兆字节 | 10 千兆字节 | 14千兆字节 |
Yi-34B-聊天室 | 65 千兆字节 | 68千兆字节 | 76千兆字节 | > 80 GB |
Yi-34B-聊天-4位 | 19 千兆字节 | 20 千兆字节 | 30 千兆字节 | 40 千兆字节 |
Yi-34B-聊天-8位 | 35 千兆字节 | 37 千兆字节 | 46千兆字节 | 58 千兆字节 |
模型 | 最低显存 | 推荐GPU示例 |
---|---|---|
易-6B | 15 千兆字节 | RTX3090 RTX4090 A10 A30 |
易-6B-200K | 50 千兆字节 | A800 (80 GB) |
易-34B | 72 千兆字节 | 4 x RTX 4090 A800 (80 GB) |
一-34B-200K | 200 千兆字节 | 4 个 A800 (80 GB) |
如果你想学习如何使用 Yi 系列模型,这里有丰富的学习资源。⬇️
Yi 生态为你提供一系列工具、服务和模型,你将获得丰富的体验,最大程度提升工作工作效率。
Yi 系列模型遵循与 Llama 相同的模型架构。选择 Yi,你可以利用 Llama 生态中现有的工具、库和资源,无需创建新工具,提高开发效率。
例如,Yi 系列模型以 Llama 模型的格式保存。你可以直接使用 和 加载模型,使用以下代码。LlamaForCausalLM
LlamaTokenizer
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("01-ai/Yi-34b", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("01-ai/Yi-34b", device_map="auto")
[ 返回顶部 ⬆️ ]
? 提示
如果你开发了与 Yi 相关的服务、模型、工具、平台或其它内容,欢迎提交 PR,将你的成果展示在 Yi 生态。
为了帮助他人快速理解你的工作,建议使用的格式。
<模型名称>: <模型简介> + <模型亮点>
如果你想在几分钟内开始使用 Yi,你可以使用以下基于 Yi 构建的服务。
-
Yi-34B-Chat:你可以通过以下平台与 Yi 聊天。
- Yi-34B-聊天 |拥抱脸
- Yi-34B-聊天 |Yi Platform 注意:如需使用 Yi Platform, 你可以申请加入白名单(填写英文或中文申请表)。
-
Yi-6B-Chat (replicate):使用该工具,你可以设置自定义参数,调用 APIs 来使用 Yi-6B-Chat。
-
ScaleLLM:你可以使用该工具在本地运行 Yi 模型,根据自身偏好进行个性化设置。
如果资源有限,你可以使用 Yi 的量化模型,如下所示。
这些量化模型虽然精度降低,但效率更高,例如,推理速度更快,RAM 使用量更小。
如果你希望探索 Yi 的其它微调模型,你可以尝试以下方式。
-
TheBloke 模型:该网站提供了大量微调模型,这些微调模型基于多种大语言模型,包括 Yi 模型。
以下是 Yi 的微调模型,根据下载量排序,包括但不限于以下模型。
-
SUSTech/SUS-Chat-34B:该模型在所有 70B 以下的模型中排名第一,超越了体量是其两倍的 deepseek-llm-67b-chat。你可以在 Open LLM Leaderboard 上查看结果。
-
OrionStarAI/OrionStar-Yi-34B-Chat-Llama:该模型在 C-Eval 和 CMMLU 评估中超越了其它模型(例如,GPT-4、Qwen-14B-Chat 和 Baichuan2-13B-Chat),在 OpenCompass LLM Leaderboard 上表现出色。
-
NousResearch/Nous-Capybara-34B:该模型在 Capybara 数据集上使用 200K 上下文长度和 3 个 epochs 进行训练。
- amazing-openai-api:此工具可以将 Yi 模型 API 转换成 OpenAI API 格式。
- LlamaEdge:你可以通过该工具快速部署 Yi-34B-Chat 并开始聊天。该工具由 Rust 语言开发,使用可移植的 Wasm(WebAssembly)文件构建了一个与 OpenAI 兼容的 API 服务器。
[ 返回顶部 ⬆️ ]
Yi-34B-Chat 模型表现出色,在 MMLU、CMMLU、BBH、GSM8k 等所有开源模型的基准测试中排名第一。
测评方法与挑战 ⬇️
Yi-34B 和 Yi-34B-200K 模型在开源模型中脱颖而出,尤其在 MMLU、CMMLU、常识推理、阅读理解等方面表现卓越。
测评方法 ⬇️
答案是所有人!? ✅
关于如何使用 Yi 系列模型,参阅「许可证」。
[ 返回顶部 ⬆️ ]
我们对每位火炬手都深表感激,感谢你们为 Yi 社区所做的贡献。因为有你们,Yi 不仅是一个项目,还成为了一个充满活力的创新社区。我们由衷地感谢各位小伙伴!
Yi Readme 中文版由以下贡献者完成,排名不分先后,以用户名首字母顺序排列。
- 提示专家:@kevinhall1998
- 译员:@202030481266、@GloriaLee01、@markli404、@petter529 与 @soulteary
- 审校:@Anonymitaet、@bltcn、@Cookize、@lljzhgxd 与 @markli404
[ 返回顶部 ⬆️ ]
在训练过程中,我们使用数据合规性检查算法,最大程度地确保训练模型的合规性。由于数据复杂且语言模型使用场景多样,我们无法保证模型在所有场景下均能生成正确合理的回复。注意,模型仍可能生成有误的回复。对于任何因误用、误导、非法使用、错误使用导致的风险和问题,以及与之相关的数据安全问题,我们均不承担责任。
[ 返回顶部 ⬆️ ]
本仓库中的源代码遵循 Apache 2.0 许可证。Yi 系列模型完全开放,你可以免费用于个人用途、学术研究和商业用途。如需商用,你仅需提交申请,即能立刻自动获取 Yi 系列模型商用许可,而无需等待官方审批。所有使用必须遵守《Yi系列模型社区许可协议 2.1》。
[ 返回顶部 ⬆️ ]