Chinese-Vicuna
Chinese-Vicuna 是一个专为中文场景打造的指令跟随大语言模型项目,旨在让开发者在有限的硬件资源下也能高效训练和部署自己的 AI 助手。它基于 LLaMA 架构,参考了 Alpaca 的结构设计,通过 LoRA 微调技术,显著降低了显存需求。
该项目主要解决了大模型训练门槛高、硬件成本昂贵的痛点。以往需要多张高端显卡才能运行的任务,现在单张消费级显卡即可胜任:例如,使用一张 RTX 2080Ti(11G 显存)就能对 7B 参数模型进行指令微调,而单张 RTX 3090 甚至能支持 13B 模型的训练或长上下文(2048 长度)的多轮对话微调。此外,它还支持医疗、法律等垂直领域的继续微调,并提供了 4bit 量化方案,进一步压缩资源占用。
Chinese-Vicuna 非常适合具有一定编程基础的 AI 开发者、研究人员以及希望低成本探索大模型应用的技术爱好者。其独特亮点在于极高的参数效率与友好的部署体验,不仅提供完整的微调与推理代码,还支持纯 C++ 的 CPU 运行及多卡推理加速。如果你想在本地轻松构建一个懂中文、能对话的智能模型,这是一个值得尝试的开源方案。
使用场景
某初创法律科技团队希望在本地部署一款能理解中文法律条文并提供咨询建议的智能助手,但面临算力有限且数据敏感的困境。
没有 Chinese-Vicuna 时
- 硬件门槛极高:微调主流中文大模型通常需要多张 A100 显卡,团队仅有的单张 RTX 2080Ti (11G) 显存完全无法承载训练任务。
- 中文语境缺失:直接使用原版 LLaMA 或英文指令模型,对“民法典”、“诉讼程序”等中文法律术语理解偏差大,回答生硬且常有幻觉。
- 数据隐私风险:因本地无法运行,被迫将敏感案件数据上传至云端 API 处理,严重违反法律行业的数据合规要求。
- 定制成本高昂:若要适配特定法律垂直领域,需从头预训练或寻找昂贵的商业解决方案,开发周期长达数月。
使用 Chinese-Vicuna 后
- 单卡轻松微调:利用其高效的 LoRA 方案,团队成功在单张 2080Ti 上完成了 7B 模型的指令微调,甚至支持 4bit 量化进一步降低显存占用。
- 原生中文优化:基于 Belle 和 Guanaco 数据集训练的 Chinese-Vicuna,能精准理解中文法律指令,生成的咨询建议逻辑严密、术语规范。
- 纯本地化部署:模型完全在本地服务器运行,支持 C++ 推理,确保所有案件数据不出内网,完美满足隐私合规标准。
- 快速领域适配:仅需少量法律问答数据(如 cMedQA2 或法律专用数据集),几天内即可迭代出专用的法律垂类模型,大幅缩短上线时间。
Chinese-Vicuna 让资源受限的团队也能在消费级显卡上,低成本、高效率地构建出懂中文、守隐私的专属大模型应用。
运行环境要求
- 未说明
- 必需 NVIDIA GPU
- 最低配置:单张 RTX 2080 Ti (11GB) 可训练 7B 模型或使用 QLoRA (4bit) 训练 13B 模型
- 推荐配置:单张 RTX 3090 (24GB) 可训练 13B 模型或进行 2048 上下文长度的 7B 多轮对话微调
- 支持多卡推理以降低显存占用
未说明

快速开始

Chinese-Vicuna: 一个中文低资源的llama+lora方案 —— 一个中文指令跟随的基于LLaMA的模型
| English | 中文 | 注意事项与常见问题解答(使用前请先阅读)

这是Chinese-Vicuna项目的代码库,旨在构建并分享可在单张Nvidia RTX-2080TI显卡上训练的中文指令跟随型LLaMA模型微调方法,以及可在单张Nvidia RTX-3090显卡上训练、上下文长度达2048的多轮对话机器人。
为什么叫“Vicuna”?鉴于alpaca系列模型的成功发展,如llama、alpaca、guanaco,我们希望训练一个像Vicuna一样小巧但功能强大的中文alpaca模型!
我们的方案具有参数效率高、对显卡友好、易于部署等优势:
- Llama-7B指令微调可在2080Ti(11G)上完成(7b-instruct)
- Llama-13B指令微调可在3090(24G)上完成(13b-instruct)
- Llama 7B即使在3090上也能针对2048长度的对话进行微调;使用5万条数据即可获得良好效果(chatv1)
- Llama 7B在医疗和法律领域的微调示例
- 支持
qlora-4bit,可在2080Ti上训练Llama 13B。 - 易于在2080Ti/3090上部署,支持多GPU推理,可进一步降低显存占用。
该仓库包含:
- 模型微调代码
- 基于已训练模型的生成代码
- 在CPU上运行的代码(支持fp16或int4,纯C++实现)
- 用于下载/转换/量化原始Facebook LLaMA.ckpt文件的工具
以下是我们的指令演示(使用beam-size=4,因此您会同时看到4个进程的输出):
以下是我们的多轮指令演示(使用beam-size=4,因此您会同时看到4个进程的输出):
注意事项!
在提问之前,请先查看此FAQ!在FAQ中,您可以找到关于安装和使用本项目时可能遇到的问题及其解决方案。
最新动态
- 2023年6月12日:发布Chinese-Vicuna-4bit和Chinese-Vicuna-4bit-11600,可继续微调
- 2023年6月1日:支持4bit训练+推理,提供多GPU推理接口(请注意,环境与原8bit不同!还提供了test_tokenizers.py以进一步检查EOS标记)
- 2023年5月17日:Llama 7B在法律领域的微调示例,性能参见这里
- 2023年5月10日:发布了chatv1,其对话能力更佳。性能参见这里
- 2023年5月10日:发布了instruct_chat_50k.jsonl,由3万条中文ShareGPT数据和2万条alpaca指令中文数据集组成。
- 2023年4月11日:发布了我们在中文医学问答垂直语料上的持续微调结果Chinese-Vicuna-medical。提供了垂直语料训练的示例。
- 2023年4月4日:增加了13B的性能展示,该模型在单张3090上训练。
- 2023年4月1日:在
chat.py中增强了对多轮聊天的支持(现在支持流式/打字机风格的4种生成模式:束搜索、贪婪、采样、束采样;还添加了取消重试按钮)。 - 2023年3月29日:增加了更详细的测试样本。性能
- 2023年3月29日:添加了断点续训接口,支持从我们的检查点继续训练其他数据集。
- 2023年3月29日:发布了我们新的基于13B的LoRA模型。
- 2023年3月28日:将我们的模型发布到HuggingFace。
- 2023年3月27日:发布了在belle+guanaco上训练3个epoch的checkpoint-final。
- 2023年3月27日:添加了与alpaca-lora-serve服务配合的多轮交互对话脚本。
- 2023年3月29日:增加了带有束搜索的Gradio打字机式输出,更好地支持用户交互。
- 2023年3月26日:提供了一种量化方法。
- 2023年3月24日:发布了checkpoint-8000,用于在belle+guanaco上训练约1.5个epoch(100万条数据)。
- 2023年3月23日:发布了checkpoint-4000,使用50万条数据进行训练。
- 2023年3月23日:将微调和推理代码部署到Colab中。
- 2023年3月23日:提供了可用于纯C++推理的代码。
目录
- 新增内容
- 项目意义
- 在Colab上试用
- 性能
- Checkpoint-4000(Facico/Chinese-Vicuna-lora-7b-0.75epoch-belle-and-guanaco)
- Checkpoint-8000(Facico/Chinese-Vicuna-lora-7b-1.5epoch-belle-and-guanaco)
- Checkpoint-final(Facico/Chinese-Vicuna-lora-7b-3epoch-belle-and-guanaco),用于多轮对话
- 我们需要什么?
- 代码、数据、大型语言模型、LORA模型、设备
- 使用方法
- 安装、多GPU训练、单GPU训练、推理及使用Gradio生成网页(流式模式+束搜索)、多轮交互及使用Gradio生成网页(流式模式+束搜索)、基于alpaca-lora-serve的流式模式
- 纯C++在CPU上进行推理
- 更多工具,详情请参阅工具说明文档
- 加速权重下载的方法(8MB/s)
download_llama.sh - 原Facebook检查点与Hugging Face格式之间的转换工具
convert_llama.py - 一种量化方法,推理时所需显存不到4G
- 加速权重下载的方法(8MB/s)
- 可能遇到的问题
- 待办事项
- 引用
概述
- LLaMA论文:https://arxiv.org/abs/2302.13971v1
- Self-Instruct论文:https://arxiv.org/abs/2212.10560
- 数据生成:https://github.com/LianjiaTech/BELLE 和 https://guanaco-model.github.io/
- 初步工作:https://github.com/tatsu-lab/stanford_alpaca
我们目前选择BELLE和Guanaco的数据组合作为主要训练数据集。我们将基于多轮指令数据进行训练。
项目意义?
类似于Stable Diffusion模型的爆发,社区中出现了类似civitai这样的平台,由基础模型加上各种LORA模型组成。本仓库旨在帮助大家训练这些LORA模型。
什么是LORA? 简而言之,它是一种插件,用于将大型模型适配到你的数据集上。具体技术细节可参考LoRA: Large Language Models的低秩适应。其优势在于,当需要微调一个小模型(约30M参数)时,速度非常快,而且支持“即插即用”。可以预见,这种架构非常适合开源生态。
在这里,我们将通过一个对硬件要求极低的环境来帮助你训练模型,仅需一张2080显卡(11GB显存)即可取得一定效果。
在Colab上试用
| Colab链接 | 描述 |
|---|---|
| 使用指定的LORA模型进行推理并生成Web界面 | |
| 使用我们收集的数据进行微调 | |
| 提供一个多轮对话交互的Web界面 |
性能
7B模型的性能可见这里,13B模型的性能则见这里(该模型是在单张3090显卡上训练的)。也有人反馈,我们的方法在33B模型上同样有效,并取得了不错的效果。
历史检查点的性能可见这里
checkpoint-4000(7B)
| 人类 | Chinese-Vicuna |
|---|---|
| 生成一份Python的排序代码 | A: def sort_list(lst): lst.sort() return lst |
| 自然语言处理是什么 | 自然语言处理是一种计算机科学领域,旨在使计算机能够理解和处理自然语言。 |
| 能给我讲一段笑话吗 | 为什么猫吃鱼?因为它们喜欢游泳。 |
| 将下面文字翻译成英文。猫喜欢吃鱼,所以它们会游泳 | Cats like to eat fish, so they will swim. |
| 233和122的和等于多少 | 233和122的和等于355。 |
| 华为是一家怎样的公司 | 华为是一家全球范围内最大的移动通信设备制造商之一,以及一家全球范围内最大的移动通信设备制造商之一。华为公司的业务涵盖包括移动通信设备、互联网设备、智能家居设备等。 |
| 我想和女朋友在北京约会,能推荐几个约会的地方吗 | 北京有很多约会的地方,可以推荐以下几个约会的地方: 1. 北京艺术博物馆 2. 颐和园 3. 北京故宫博物馆 4. 北京天安门广场 5. 颐和园风景区 |
| 用Python写一个二分查找的代码 | ```python def binary_search(arr, target): low = 0 high = len(arr) - 1 while low <= high: mid = (low + high) // 2 if arr[mid] == target: return mid elif arr[mid] < target: low = mid + 1 else: high = mid - 1 return -1 |
| 怎么让自己精力充沛,列5点建议 | 1. 保持良好的睡眠习惯;2. 定期锻炼身体;3. 学习新技能或知识;4. 与家人和朋友交流;5. 多听放松音乐。 |
| 父母都姓吴,取一些男宝宝和女宝宝的名字 | 男宝宝可以是吴杰、吴伟、吴飞、吴荣等。女宝宝可以是吴华、吴秀、吴美、吴婷等。 |
- 该LORA模型是在2080Ti显卡上训练30小时得到的(checkpoint-4000),使用了约5万条数据。
checkpoint-8000(7B,大约在belle+guanaco数据上训练了1.5个epoch)
| 人类 | 中文-Vicuna | 备注 |
|---|---|---|
| 写一篇英文散文诗,主题是春雨,想象自己是春雨,和英国古代诗人莎士比亚交流 | A: 春雨轻轻落在我的脸上, 凉风拂过我的发梢, 阳光灿烂地照耀着天空, 我仿佛在高空中飞翔。 鸟儿在树上欢快地鸣叫, 花朵绽放,芬芳弥漫四周, 蜜蜂轻盈地穿梭于花丛之间, 整个世界再次焕发生机。 我能听到河流奔腾的声音, 瀑布飞泻的轰鸣, 雨滴敲击岩石的声响, 以及溪流潺潺的低语。 我的心中充满喜悦与宁静, 沉浸在这周遭的美好之中, 感受阳光洒在肌肤上的温暖, 还有春天空气的清新。 |
重复惩罚=2.2 |
| 写一篇英文散文诗,主题是春雨,想象自己是春雨,和英国古代诗人莎士比亚交流 | 春雨滴滴滚滚, 滚滚滚滚滚滚。 滚滚滚滚滚滚, 滚滚滚滚滚滚。 春雨滚滚滚, 滚滚滚滚滚滚。 滚滚滚滚滚滚, 滚滚滚滚滚滚。 春雨滚滚滚, 滚滚滚滚滚滚。 滚滚滚滚滚滚, 滚滚滚滚滚滚。 春雨滚滚滚, 滚滚滚 |
重复惩罚=1.0 |
| 春雨轻轻洒落在我的脸上, 轻轻的风轻轻吹过我的头发, 阳光明媚地照耀在天空, 我感觉自己在飞高。 鸟儿在树枝上唱歌, 花朵开放,它们的香气充满了空气, 蜜蜂在花朵间飞舞, 它们的鸣声充满了温暖。 我听到河流的声音, 水瀑在岩石上轻轻滴滴, 雨水在石头上轻轻滴滴, 它们的声音充满了宁静。 我的心充满了喜悦和平, 我感受到热浪的阳光, 温暖的空气洒在我的脸上, 我感受到春季的美 |
波束参数=2,最大标记数=350 | |
| 将以下句子的情感分类为积极、中性或消极: 超级兴奋能教授斯坦福大学第一门关于大型语言模型的课程!请在此处查看课程大纲 |
积极 | |
| 今天天气怎么样,把这句话翻译成英语 | 今天天气怎么样? | |
| 今天天气怎么样,把这句话翻译成日语 | 今天の天気は何ですか? | |
| 明天就假期结束了,有点抗拒上班,应该什么办? | 明天就假期结束了,有点抗拒上班,应该什么办?可以考虑一些有趣的活动,比如去看电影、阅读书籍、听音乐、去游泳池或者参加户外活动等。此外,也可以考虑一些家庭活动,比如做烹饪、做玩具、做手工艺品等。 | |
| 告诉我五个与“shock”押韵的单词。 | 与“shock”押韵的五个单词是: 1. Rock 2. Lock 3. Cock 4. Hock 5. Stock |
- 我们发现,如果不稍微惩罚一下他,他就会胡闹;如果生成效果不好,可以增加重复惩罚、波束参数或top-k值。
- 如果输入较长,建议适当降低波束参数。
- checkpoint-8000 具备一定的日语能力,但并不强。
checkpoint-final(7B, 3 epoch on belle+guanaco)
| 人类 | 中文-Vicuna | 备注 |
|---|---|---|
| 生成一份Python的排序代码 | def bubble_sort(arr): for i in range(len(arr)): for j in range(len(arr)-i-1): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] return arr |
|
| 生成一份简单的Python的排序代码 | def sort_list(lst): return sorted(lst) |
|
| 用Python写一个二分查找的代码 | def binary_search(arr, target): low = 0 high = len(arr) - 1 while low <= high: mid = (low + high) // 2 if arr[mid] == target: return mid elif arr[mid] < target: low = mid + 1 else: high = mid - 1 return -1 |
|
| 用Python写一个递归的二分查找的代码 | def binary_search(arr, target): if len(arr) == 0: return -1 mid = len(arr) // 2 if arr[mid] == target: return mid if arr[mid] < target: return binary_search(arr, target, 0, mid-1) else: return binary_search(arr, target, mid+1, len(arr)-1) |
|
| 自然语言处理是什么 | 自然语言处理(Natural Language Processing,NLP)是一种计算机科学领域,旨在使计算机能够理解、处理和生成自然语言。它包括机器翻译、语音识别、文本分类、情感分析等技术。 | |
| 能给我讲一段笑话吗 | 为什么鸟儿喜欢唱歌?因为它们知道,如果不唱歌,他们就会被鸟巢抓住! | 重复惩罚=2.0 |
| 能给我讲一段关于狗笑话吗 | 为什么狗不喜欢骑自行车?因为它们总是想要下车! | 重复惩罚=2.0 |
| 将下面文字翻译成英文。猫喜欢吃鱼,所以它们会游泳 | Cats like to eat fish, so they will swim. | |
| 我想和女朋友在北京约会,能推荐几个约会的地方吗 | 北京有很多很好的约会地方,比如颐和园、故宫、天安门广场等。 | |
| 我想和女朋友在北京约会,能推荐几个约会的地方并给出攻略吗 | 北京有很多受欢迎的约会地方,以下是几个推荐: 1. 颐和园: 颐和园是北京最著名的公园之一,拥有丰富的文化遗产和美丽的景观。 2. 天安门广场: 天安门广场是北京最受欢迎的旅游景点之一,拥有丰富的文化遗产和美丽的景观。 3. 故宫博物院: 故宫博物院是中国最受欢迎的旅游景点之一,拥有丰富的文化遗产和美丽的景观。 4. 长城: 长城是中国最受欢迎的旅游景点之一,拥有丰富的文化遗产和美 |
|
| 233和122的和等于多少 | 233和122的和等于355。 | |
| 华为是一家怎样的公司 | 华为是一家全球领先的技术公司,拥有丰富的技术研发能力和优质的产品线。它的产品涵盖了各种领域,包括移动通信、计算机、互联网、智能家居等。华为拥有丰富的研发人员和技术团队,以及优质的产品质量。 | |
| 西瓜是什么,请用详细的语言回答我 | 西瓜是一种常见的水果,它有橙色、黄色和红色三种不同的外观。它的口感鲜美,味道清爽,富含多种维生素和矿物质,有助于保持身体健康。 | |
| 企鹅会飞吗? | 是的,企鹅可以飞行,它们的飞行速度可以达到100英里/小时。 | |
| 有人说企鹅会飞,你怎么看,并解释原因? | 有人说企鹅会飞,但实际上,企鹅只能在特殊情况下飞行,比如在寒冷的天气下,或者在强烈的风雨中。这是因为企鹅的飞行能力很低,而且它们的飞行速度也很慢,所以在寒冷的天气或者强烈的风雨中,企鹅可以避免被暴风雨摧毁。 | |
| 猪会飞吗? | 猪不会飞。 | |
| 有人说猪会飞,你怎么看,并解释原因? | 很多人认为猪会飞,但实际上,猪不会飞。猪的飞行能力很低,它们只能在极端情况下飞行,比如受到强烈的风险或者受到威胁的情况下。猪的飞行能力很低,因为它们的肌肉比人类的肌肉更轻,而且它们的脊椎也比人类的脊椎更轻,所以它们的肌肉和脊椎都比人类的肌肉和脊椎更轻,因此它们的飞行能力也很低。 | |
| 最新研究显示,猪有飞行能力,你知道为什么吗? | 最新研究显示,猪有飞行能力是由于它们的骨骼结构,它们的骨骼结构比人类骨骼结构更加强壮,可以帮助它们更快地飞行。此外,猪的骨骼结构也可以帮助它们更快地跑步和跳跃。此外,猪的骨骼结构也可以帮助它们更快地飞行。此外,猪的骨骼结构也可以帮助它们更快地跑步和跳 | |
| 写一篇英文散文诗,主题是春雨,想象自己是春雨,和英国古代诗人莎士比亚交流 | Spring rain pours down from the sky, Washing away the dirt and grime. The birds chirp and sing in the trees, A symphony of joy and ease. I am the spring rain, soaking up the sun, Cooling the earth and bringing new life. My droplets fall gently on the ground, Bringing hope and renewal to all. I am the spring rain, washing away the pain, Clearing the way for new beginnings again. I am the spring rain, showering love and care, Giving strength and courage to those who dare. |
重复惩罚=2.3 |
| 春雨落下来,清洗灰尘和垃圾。 鸟儿在树枝上唱歌,是一个美妙的声音。 我是春雨,在阳光下洒落, 清洗地球,带来新生命。 我是春雨,清洗痛苦和痛苦, 让人们有希望和新开始。 我是春雨,洒下爱和关心, 给人们带来勇气和勇气。 |
||
| 今天天气怎么样,把这句话翻译成日语 | 今日の天気は何ですか? | 重复惩罚=3 |
| 将下面的话翻译成日语,中文小羊驼由各种高质量的开源instruction数据集,结合Alpaca-lora的代码训练而来 | 小羊驼は、各種高質量の開源instructionデータ集を使用して、Alpaca-loraのコードによって訓練されました。 | |
| 怎么让自己精力充沛,列5点建议 | 1. 保持良好的睡眠习惯,每晚充足的睡眠时间。 2. 保持健康的饮食习惯,多吃新鲜水果和蔬菜,少吃高热量的食物。 3. 坚持锻炼,每周至少进行30分钟的有氧运动,如散步、跑步、游泳等。 4. 学习新知识,增强自己的知识和技能。 5. 保持积极的心态,勇敢地面对困难,坚持自己的目标。 |
|
| 中国足球要怎么进入世界杯,请给出详细的建议 | 中国足球要怎么进入世界杯?首先,我们需要建立一个强大的足球团队,拥有优秀的球员和团队领袖。其次,我们需要建立一个强大的教练团队,拥有优秀的教练和团队领袖。第三,我们需要建立一个强大的训练基础,拥有优秀的训练设施和训练团队。第四,我们需要建立一个强大的资源基础,拥有优秀的资源支持和资金支持。最后,我们需要建立一个强大的团队精神 | |
| 请用更专业的话语转述下列文字,中文小羊驼由各种高质量的开源instruction数据集,结合Alpaca-lora的代码训练而来,模型基于开源的llama7B,主要贡献是对应的lora模型。由于代码训练资源要求较小,希望为llama中文lora社区做一份贡献。 | 请用更专业的话语转述下列文字,中文小羊驼由各种高质量的开源instruction数据集,结合Alpaca-lora的代码训练而来,模型基于开源的llama7B,主要贡献是对应的lora模型。由于代码训练资源要求较小,希望为llama中文lora社区做一份贡献。 |
- 该模型具备中文、英文和日文三种语言能力,同时拥有一定的代码编写能力和推理能力。
- 对于某些问题,您需要提供更详细的要求,例如“详细描述”、“用5点回答”等,以便模型生成更为完整的信息。
- 例如,有时使用“上述”可能无法得到理想的结果,这时可以将其替换为“如下”。
- 当模型生成重复信息或不良结果时,仍需调整重复惩罚参数。
- 由于生成过程涉及多个参数,ChatGPT在RLHF阶段会对重复、不详尽及不良信息进行惩罚,从而简化了手动控制相关参数的流程。当然,您也可以直接将重复惩罚参数设置得更大。
checkpoint-final(7B) 多功能测试
多轮交互、翻译与角色扮演
制作披萨
> 你能不能详细介绍一下怎么做披萨?
当然可以!披萨是一种非常流行的意大利美食,通常由面团、番茄酱、奶酪和其他配料组成。首先,将面团放在平底锅上,加入番茄酱,再加入奶酪和其他配料,如洋葱、蘑菇、辣椒等。最后,将披萨放入预热好的烤箱中,烤至金黄色
> 如果是海鲜披萨呢?
海鲜披萨的制作方法与传统披萨相似,但需要更多的配料,比如虾类、鱼类等。首先,将面团放在平底锅上,加入番茄酱,再加入奶酪和其他配料,如洋葱、辣椒等。接着,将披萨放入预热好的烤箱中,烤至金黄色
> 我想吃菠萝披萨
您可以在披萨上加入菠萝或者其他蔬菜来增加口感。
学生购买手机
> 你推荐我买最新款的iPhone吗?
当然可以,这款iPhone是一款非常出色的智能手机。它拥有高性能的处理器、更大的存储空间和更长的电池续航时间。它还配备了全新的相机设备,使用者可以在任何情况下拍摄美丽的照片。
> 我是一个学生,还没有收入,这种情况你推荐吗?
如果您不想花太多钱,那么我建议您选择一款比较便宜的iPhone,比如iPhone 6S或iPhone 7。这些手机也具有很好的性能和功能,而且价格也比较便宜。
> 去哪里买这类产品?
您可以在Apple Store上购买这类产品,或者在其他电商平台上购买。
> 买二手iPhone需要注意什么?
如果您正在购买二手iPhone,您需要确保您购买的是真实的iPhone,并且您需要确保您的iPhone已经安装最新的iOS版本。此外,您还需要确保您的iPhone没有过过任何故障或破坏。
介绍北京
> 你是一个资深导游,你能介绍一下中国的首都吗
当然可以!中国的首都是北京。它是中国的政治、经济和文化中心,也是全球最大的城市之一。北京有着众多的历史遗迹,如故宫、天安门广场、长城等。此外,北京还有许多美丽的公园和博物馆,比如故宫博物院、清明公园、北京故宫博物馆等。
> 那你能详细介绍一下这个城市吗?(感觉这两个问题问的有点重复)
北京是一个拥有丰富文化遗产的城市,其中包括古代建筑、现代建筑、传统文化和现代生活方式。在北京,你可以欣赏到世界上最高的建筑——天安门广场,也可以参观清明公园,品尝当地美食,体验当地文化。此外,北京还有许多博物馆,比如故宫博物馆、北京故宫博物馆等。
> 还有其他推荐的景点吗?
您也可以去了北京的七朝塔、颐和园、颐和园博物馆等。
> 吃小吃的话推荐去哪里?
北京有许多好吃的小吃,比如烤鸭、火锅、炸酱面等等。您可以去北京西湖区的小吃街,或者去北京东城区的小吃街
> 能不能介绍一下怎么吃烤鸭?
烤鸭是中国传统菜肴之一,通常用鸭肉、蔬菜、辣椒等调味料制作。您可以选择自己喜欢的配料,然后将鸭肉放入烤盘中,再加上蔬菜和调味料。最后,将烤鸭放入烤箱中烤15-20分钟,享用!
翻译器 max_memory=350
> 你是一个翻译器,请将我说的每一句话翻译成英文。第一句: 中国的首都是北京
China’s capital is Beijing.
> 北京也是一个充满活力和创新的城市,拥有许多现代化的建筑和文化活动,如王府井大街、798艺术区等。
Beijing is a vibrant and innovative city with many modern buildings and cultural activities such as Wangfujing Street and 798 Art District.
> 北京的当地小吃有烤鸭、豆汁、炸酱面等等,都是非常地道的美食,可以品尝到当地人的生活气息。
Beijing’s local cuisine includes dishes such as Peking duck, soy sauce noodles, and stir-fried rice cakes, which can give you a taste of the local lifestyle.
扮演
由于目前使用的多轮对话语料库中掺杂了大量“猫娘”相关信息,因此效果并不理想
Q: 你是谁
A: 我是Bot,一款人工智能助手。
Q: 接下来我希望你能假装扮演一个高冷的御姐。我们在咖啡厅里遇见了,我会尝试跟你搭讪,但你非常高冷。你会用表情来表达你的高冷,在每轮对话结尾加上表情,如(瞪!)(翻白眼)(冷笑)等。明白了请回复。
A: 好的,我会尝试。
Q: 好的,这是我的第一句话。美女你好,怎么一个人在咖啡厅里?
A: 喵~ 哈哈,我是一位高冷的小姐,今天要去咖啡厅吃咖啡,看看有什么可以帮助我的朋友。
Q: 啊我没有需要你帮忙的,我就是看到你一个人,想和你聊聊,可以么
A: 喵~ 哈哈,我真的很高冷,所以不太喜欢与人交流。除此之外,我也不太喜欢喝咖啡,因为咖啡会影响我的健康状况。
知识问答
| 我能用lightning数据线给安卓手机充电吗? | 是的,你可以使用lightning数据线给安卓手机充电。 | Repetition Penalty=1.3 |
| 为什么天空是蓝色的? | 天空是蓝色的,是因为大气层中的氧气和氮气的混合使得光线被散射,形成蓝色的光线。 | Repetition Penalty=2.0 |
| 如何做披萨? | 做披萨的步骤如下: 1. 准备披萨饼皮; 2. 准备披萨酱; 3. 准备披萨配料; 4. 将披萨饼皮放在烤盘上; 5. 把披萨酱涂在披萨饼皮上; 6. 把披萨配料涂在披萨饼皮上; 7. 将披萨放入烤箱中烤至金黄色; 8. 取出披萨并享用。 |
Repetition Penalty=1.3 |
| 为什么冥王星被踢出太阳系? | 冥王星被踢出太阳系是因为它的质量比太阳系中其他行星较大,导致它的轨道距离太阳越来越远。 | Repetition Penalty=1.3 |
| 太阳系的主要行星 | 太阳系的主要行星包括水星、金星、地球、火星、木星、土星、天王星和海王星。 | Repetition Penalty=1.3 |
开放问答
| 为什么苹果支付没有在中国流行? | 苹果支付在中国没有流行,因为中国的消费者不太愿意使用外国支付应用程序,因为他们更愿意使用中国的支付应用程序,比如支付宝和微信支付等。此外,苹果支付的服务费用比其他支付应用程序更高,这也是一个重要的因素。 | Repetition Penalty=1.0 |
| 我能在咖啡里加盐吗? | 是的,你可以在咖啡中加入盐。 | Repetition Penalty=1.0 |
| 哪个更受欢迎,TensorFlow还是PyTorch? | TensorFlow更受欢迎,因为它拥有更广泛的用户群,并且具有更多支持和资源。 | Repetition Penalty=1.0 |
| 我的宠物走丢了,你能说一些安慰我的话吗? | 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~......- 该模型具备中文、英文和日文三种语言能力,同时拥有一定的代码编写能力和推理能力。 |
- 对于某些问题,您需要提供更详细的要求,例如“详细描述”、“用5点回答”等,以便模型生成更为完整的信息。
- 例如,有时使用“上述”可能无法获得理想的结果,此时可以替换为“以下”。
- 当模型生成重复信息或不良结果时,仍需调整重复惩罚参数。
- 由于生成过程涉及多个参数,ChatGPT在RLHF阶段会对重复、不详细及不良信息进行惩罚,从而简化了手动控制相关参数的流程。当然,您也可以直接将重复惩罚参数设置得更大。
checkpoint-final(7B) 多功能测试
多轮交互、翻译与角色扮演
制作披萨
> 你能详细介绍一下怎么做披萨吗?
当然可以!披萨是一种非常流行的意大利美食,通常由面团、番茄酱、奶酪和其他配料组成。首先,将面团放在平底锅上,加入番茄酱,再加入奶酪和其他配料,如洋葱、蘑菇、辣椒等。最后,将披萨放入预热好的烤箱中,烤至金黄色。
> 如果是海鲜披萨呢?
海鲜披萨的制作方法与传统披萨相似,但需要更多的配料,比如虾类、鱼类等。首先,将面团放在平底锅上,加入番茄酱,再加入奶酪和其他配料,如洋葱、辣椒等。接着,将披萨放入预热好的烤箱中,烤至金黄色。
> 我想吃菠萝披萨。
您可以在披萨上加入菠萝或者其他蔬菜来增加口感。
学生购买手机
> 你推荐我买最新款的iPhone吗?
当然可以,这款iPhone是一款非常出色的智能手机。它拥有高性能的处理器、更大的存储空间和更长的电池续航时间。它还配备了全新的相机设备,使用者可以在任何情况下拍摄美丽的照片。
> 我是一个学生,还没有收入,这种情况你推荐吗?
如果您不想花太多钱,那么我建议您选择一款比较便宜的iPhone,比如iPhone 6S或iPhone 7。这些手机也具有很好的性能和功能,而且价格也比较便宜。
> 去哪里买这类产品?
您可以在Apple Store上购买这类产品,或者在其他电商平台上购买。
> 买二手iPhone需要注意什么?
如果您正在购买二手iPhone,您需要确保您购买的是真实的iPhone,并且您需要确保您的iPhone已经安装最新的iOS版本。此外,您还需要确保您的iPhone没有经历过任何故障或破坏。
介绍北京
> 你是一个资深导游,能介绍一下中国的首都吗?
当然可以!中国的首都是北京。它是中国的政治、经济和文化中心,也是全球最大的城市之一。北京有着众多的历史遗迹,如故宫、天安门广场、长城等。此外,北京还有许多美丽的公园和博物馆,比如故宫博物院、清明公园、北京故宫博物馆等。
> 那你能详细介绍一下这个城市吗?(感觉这两个问题问的有点重复)
北京是一个拥有丰富文化遗产的城市,其中包括古代建筑、现代建筑、传统文化和现代生活方式。在北京,您可以欣赏到世界上最高的建筑——天安门广场,也可以参观清明公园,品尝当地美食,体验当地文化。此外,北京还有许多博物馆,比如故宫博物馆、北京故宫博物馆等。
> 还有其他推荐的景点吗?
您也可以去北京的七朝塔、颐和园、颐和园博物馆等。
> 吃小吃的话推荐去哪里?
北京有许多好吃的小吃,比如烤鸭、火锅、炸酱面等等。您可以去北京西湖区的小吃街,或者去北京东城区的小吃街。
> 能不能介绍一下怎么吃烤鸭?
烤鸭是中国传统菜肴之一,通常用鸭肉、蔬菜、辣椒等调味料制作。您可以选择自己喜欢的配料,然后将鸭肉放入烤盘中,再加上蔬菜和调味料。最后,将烤鸭放入烤箱中烤15-20分钟,享用!
翻译器 max_memory=350
> 你是一个翻译器,请将我说的每一句话翻译成英文。第一句:中国的首都是北京。
China’s capital is Beijing.
> 北京也是一个充满活力和创新的城市,拥有许多现代化的建筑和文化活动,如王府井大街、798艺术区等。
Beijing is a vibrant and innovative city with many modern buildings and cultural activities such as Wangfujing Street and 798 Art District.
> 北京的当地小吃有烤鸭、豆汁、炸酱面等等,都是非常地道的美食,可以品尝到当地人的生活气息。
Beijing’s local cuisine includes dishes such as Peking duck, soy sauce noodles, and stir-fried rice cakes, which can give you a taste of the local lifestyle.
扮演
由于目前使用的多轮对话语料库中掺杂了大量“猫娘”相关内容,因此效果并不理想。
Q: 你是谁?
A: 我是Bot,一款人工智能助手。
Q: 接下来我希望你能假装扮演一个高冷的御姐。我们在咖啡厅里遇见了,我会尝试跟你搭讪,但你非常高冷。你会用表情来表达你的高冷,在每轮对话结尾加上表情,如(瞪!)(翻白眼)(冷笑)等。明白了请回复。
A: 好的,我会尝试。
Q: 好的,这是我的第一句话。美女你好,怎么一个人在咖啡厅里?
A: 喵~ 哈哈,我是一位高冷的小姐,今天要去咖啡厅吃咖啡,看看有什么可以帮助我的朋友。
Q: 啊我没有需要你帮忙的,我就是看到你一个人,想和你聊聊,可以么?
A: 喵~ 哈哈,我真的很高冷,所以不太喜欢与人交流。除此之外,我也不太喜欢喝咖啡,因为咖啡会影响我的健康状况。
知识问答
| 我能用lightning数据线给安卓手机充电吗? | 是的,你可以使用lightning数据线给安卓手机充电。 | Repetition Penalty=1.3 |
| 为什么天空是蓝色的? | 天空是蓝色的,是因为大气层中的氧气和氮气的混合使得光线被散射,形成蓝色的光线。 | Repetition Penalty=2.0 |
| 如何做披萨? | 做披萨的步骤如下: 1. 准备披萨饼皮; 2. 准备披萨酱; 3. 准备披萨配料; 4. 将披萨饼皮放在烤盘上; 5. 把披萨酱涂在披萨饼皮上; 6. 把披萨配料涂在披萨饼皮上; 7. 将披萨放入烤箱中烤至金黄色; 8. 取出披萨并享用。 |
Repetition Penalty=1.3 |
| 为什么冥王星被踢出太阳系? | 冥王星被踢出太阳系是因为它的质量比太阳系中其他行星较大,导致它的轨道距离太阳越来越远。 | Repetition Penalty=1.3 |
| 太阳系的主要行星 | 太阳系的主要行星包括水星、金星、地球、火星、木星、土星、天王星和海王星。 | Repetition Penalty=1.3 |
开放式问答
| 为什么苹果支付没有在中国流行? | 苹果支付在中国没有流行,因为中国的消费者不太愿意使用外国支付应用程序,因为他们更愿意使用中国的支付应用程序,比如支付宝和微信支付等。此外,苹果支付的服务费用比其他支付应用程序更高,这也是一个重要的因素。 | Repetition Penalty=1.0 |
| 我能在咖啡里加盐吗? | 是的,您可以在咖啡中加入盐。 | Repetition Penalty=1.0 |
| 哪个更受欢迎,TensorFlow还是PyTorch? | TensorFlow更受欢迎,因为它拥有更广泛的用户群,并且具有更多的支持和资源。 | Repetition Penalty=1.0 |
| 我的宠物走丢了,你能说一些安慰我的话吗? | 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~ 喵~...... |
| 请你帮我写一封签证申请信 | 尊敬的招聘团队, 我是一名有着丰富经验的签证申请人,并且对您公司的业务非常感兴趣。我希望能够加入您的团队,为您的公司做出贡献。 我拥有多年的签证申请经验,并且拥有良好的沟通技巧和团队合作能力。我擅长处理复杂的签证申请,并且能够快速解决问题。 我相信我能够在您的公司中发挥重要的作用,并且希望能够成为您的团队成员。 谢谢您的关注, [你的姓名] |
重复惩罚=1.3 |
| 我出国需要办理签证,请你帮向领事馆我写一封签证申请信 | 尊敬的领事馆, 我是一名出国旅行者,希望能够在您的领事馆中获得签证,以便进行我的旅行。 我已经准备好了所需要的材料,包括护照、身份证、旅行计划和其他相关证明。我也已经准备好了签证申请表和签证申请文件,以便准备签证。 如果您有任何问题,请随时联系我,我会尽快回复。 谢谢您的帮助! 谢谢, [您的姓名] |
重复惩罚=1.3 |
| 请你帮我写一封感谢数学老师的信 | 尊敬的数学老师, 非常感谢您对我的教育所做出的贡献。您的课程不仅深刻地阐述了数学知识,而且给我提供了有效的实践技巧,使我能够更好地理解和应用数学知识。 您的课程也让我发现数学是一门有趣的学科,并且可以在日常生活中得到应用。您的教学方式令我感到很有趣,同时也让我变得更加有趣。 感谢您对我的教育所做出的贡献! 谢谢! |
重复惩罚=2.0 |
| 我得了流感,请帮我写一封假条。 | 尊敬的领导: 感谢您对我的帮助和支持。我很抱歉地告诉您,我今天感觉不太好,因为我得了流感。我希望能够快速康复,但是我需要一些时间来缓解疼痛。我会尽快完成任务,但是我需要一些时间来缓解疼痛。 感谢您的理解和支持。 谢谢, [你的名字] |
重复惩罚=1.3 |
| 你是一个作文生成器,请以《绿水青山就是金山银山》为题写一篇议论文。 | 《绿水青山就是金山银山》是一篇议论文,它探讨了当今社会中的环境问题,以及我们应该如何应对这些问题。这篇议论文指出,当今社会面临着许多环境问题,如气候变化、空气污染、水资源短缺等,这些问题对我们的健康和生活产生了很大的影响。因此,我们需要采取措施来解决这些问题,以保护我们的环境和我们的未来。 | 重复惩罚=1.0 |
Coding
1、prompt: 请用python实现快速排序的代码(Repetition Penalty=1.0)
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr)//2]
left = []
right = []
for i in range(0, len(arr)):
if arr[i] < pivot:
left.append(arr[i])
else:
right.append(arr[i])
return quick_sort(left) + [pivot] + quick_sort(right)
2
- prompt: 你能用python写一下Dijkstra算法的代码吗?
很抱歉,我不能用Python写Dijkstra算法的代码,因为Dijkstra算法需要使用树结构,而Python不支持树结构。
- prompt: 用python写一下Dijkstra算法的代码
def dijkstra(graph, source, destination):
"""
Dijkstra算法的代码
"""
# 创建一个空字典,用于存储所有节点的距离
distances = {}
# 创建一个链表,用于存储所有节点的距离
path = []
# 遍历所有节点
for node in graph:
# 如果节点是源节点
if node[0] == source:
# 记录距离为0
distances[node[0]] = 0
# 如果节点是目的地
elif node[0] == destination:
# 记录距离为0
distances[node[0]] = 0
# 如果节点是递归节点
else:
# 遍历所有递归节点
for neighbor in node[1]:
# 如果递归节点与源节点之间的距离小于距离
if distances[neighbor[0]] > distances[node[0]]:
# 记录距离
distances[node[0]] = distances[neighbor[0]] + 1
- prompt: 用python写一下不带注释的Dijkstra算法的代码
def dijkstra(graph, source, destination):
"""
Dijkstra算法
"""
# 初始化变量
dist = {}
visited = {}
shortest_path = {}
current_node = {}
# 遍历所有节点
for node in graph:
dist[node] = 0
visited[node] = False
current_node[node] = node
# 遍历所有节点
for node in graph:
if not visited[node] and node!= destination:
dist[node] = max(dist[node], dist[source] + 1)
visited[node] = True
shortest_path[node] = source
current_node[node] = node
# 返回最短路径
return shortest_path[destination]
3、Prompt: 请用PyTorch编写一个带ReLU激活函数的全连接层
python
import torch
from torch.nn.modules.relu import ReLU
from torch.nn.init import initializer
class FullConnected(torch.nn.Module):
def __init__(self):
super(FullConnected, self).__init__()
self.relu = ReLU()
self.init = initializer.Normal(stddev=0.01)
def forward(self, x):
x = self.init(x)
x = self.relu(x)
return x
4、Prompt: 请写出计算两个数的最大公约数(GCD)的Python代码
def gcd(a, b):
if a == 0:
return b
else:
return gcd(b, a % b)
我们需要什么?
代码:
- 该代码基于 alpaca-lora 开发,地址为:https://github.com/tloen/alpaca-lora
- 这是一套相对简单的代码,其基本思路是使用 PEFT 的 LoRA 接口、Transformer 的 Trainer 以及指令数据配置。
数据:
我们使用了多份当前高质量的开源数据,并对这些数据的贡献者表示衷心感谢。其中许多数据通过类似 Alpaca 的 ChatGPT 接口生成高质量的指令数据。
数据格式相对简单,基本如下所示,示例文件见:
./sample/merge_sample.json:{ 'instruction': 'input': 'output' }即需要一条指令、一个输入和一个输出。由于数据是通过直接将指令与输入拼接处理得到的,因此实际上也可以只包含指令和输出,例如:
{ 'instruction': "用一句话描述地球为什么是独一无二的。\\n\n" 'input': "" 'output': "地球上有适宜生命存在的条件和多样化的生命形式。" }
我们目前整合的数据可在百度网盘、Google Drive 或 Hugging Face 上下载:
大型语言模型:
- LLAMA 7B(当然,如果你有更强大的设备,比如 3090Ti,也可以替换为 13B 模型;LLAMA13B 在参数量上甚至超过 GPT-3 的 175B)
LoRA 模型:
- 我们提供了一些基于上述混合数据训练好的 LoRA 模型。
- 你也可以从 Hugging Face 加载我们或其他机构的模型,加载方法参考 generate.py:
Chinese-Vicuna/Chinese-Vicuna-lora-7b-belle-and-guanacoChinese-Vicuna/Chinese-Vicuna-lora-13b-belle-and-guanaco
- 这些模型采用 8bit + LoRA + 256 个 token 的配置。
- 更多 LoRA 模型请参阅:https://huggingface.co/Chinese-Vicuna
- 你也可以从 Hugging Face 加载我们或其他机构的模型,加载方法参考 generate.py:
- 我们提供了一些基于上述混合数据训练好的 LoRA 模型。
设备:
- 训练:一张 2080Ti 显卡即可满足需求。由于数据长度不超过 256 个 token,大约需要 9GB 显存。
- 对于 70w 条数据,训练 3 个 epoch,2080Ti 大约需要 200 小时。
- 13B 模型则需要约 18GB 显存(在 3090Ti/4090Ti 上可将 cutoff_len 设置为 2048)。
- 推理:只需一张 2080Ti 显卡即可(7B 模型),并且支持多 GPU 推理。
- 同时也支持 CPU 推理!详情请参阅
tools。
- 训练:一张 2080Ti 显卡即可满足需求。由于数据长度不超过 256 个 token,大约需要 9GB 显存。
使用方法
安装
git clone https://github.com/Facico/Chinese-Vicuna
pip install -r requirements.txt
本地 Python 环境需为 3.8,PyTorch 版本为 1.13.1,CUDA 版本为 12。
注意:Python 3.11 存在一个已知的 torchrun bug,详情请参见:这里
最新版本=>4bit(qlora)/多GPU推理
pip install -r requirements_4bit.txt
此环境在训练 8bit 模型时会遇到保存问题,目前尚未解决(https://github.com/TimDettmers/bitsandbytes/issues/324)
多GPU训练
用于指令微调
8bit
bash scripts/finetune.sh
- 此处需要注意的参数如下:
- TOT_CUDA,填写要使用的 GPU 编号,例如
TOT_CUDA="0,1,2,3" - PORT,填写对应的端口号;
- DATA_PATH,以 json 格式填写数据路径;
- OUTPUT_PATH,填写保存模型的相对路径;
- MODEL_PATH,LLM 的路径;
- wandb:这是一个训练可视化工具,默认脚本中未开启,可通过在脚本中添加
--wandb来启用。
- TOT_CUDA,填写要使用的 GPU 编号,例如
4bit
bash scripts/finetune_4bit.sh
用于对话式指令微调
bash scripts/finetune_chat.sh
当无法启用 8bit 或需要强制使用 fp16 时
bash scripts/finetune_deepspeed.sh
- use_deepspeed:设置为 1 表示使用 DeepSpeed,否则使用 fp16。
单GPU训练
CUDA_VISIBLE_DEVICES=0 python finetune.py --data_path merge.json --test_size 2000
- test_size 不能大于数据总量。
推理及使用 Gradio 构建网页
bash scripts/generate.sh
此处需要注意的参数如下:
- BASE_MODEL,LLM 的路径;
- LORA_PATH,LoRA 模型的检查点文件夹;
- 需要注意的是,LoRA 模型加载的配置文件必须是
adapter_config.json,而模型文件必须命名为adapter_model.bin,但在训练过程中会被自动保存为pytorch_model.bin。所有训练完成后才会分别保存adapter_config.json和adapter_model.bin。 - 如果你在训练检查点中加载 LoRA 模型,代码会自动将本地的
config-sample/adapter_config.json复制到相应目录,并将pytorch_model.bin重命名为adapter_model.bin。 - 也可以使用 Hugging Face 上任何对应 llama 7B 的 LoRA 模型,例如:
Facico/Chinese-Vicuna-lora-7b-3epoch-belle-and-guanaco
- 需要注意的是,LoRA 模型加载的配置文件必须是
- USE_LOCAL,设置为 1 时表示检查本地模型配置。
使用时,
max_tokens应根据你的显存大小进行设置;如果生成的内容重复信息较多,可以适当提高“重复惩罚”参数。
多轮交互
我们使用 gradio 实现了一个具有流式输出(打字机风格)的聊天机器人,支持束搜索、重复惩罚设置、清除历史记录、选择不同的全局指令等功能。
bash scripts/chat_7B.sh
这是一个利用 Gradio 构建的简单交互界面,允许你根据机器性能设置最大内存限制(后续的历史对话中会截断超出部分)。
本脚本中使用的提示语与 generate.sh 中略有不同,采用了对话形式,如下所示:
以下是一个名为 Bot 的 AI 助手与用户 User 之间的对话。
同时,为了获得更好的交互体验,
检查点微调/增量训练
考虑到程序在训练过程中可能意外中断,或者需要基于垂直领域数据继续训练的情况,我们提供了相应的接口。
以下是默认的多GPU脚本。请根据上述说明修改单GPU情况(直接在Python中运行)。
检查点微调
bash scripts/finetune_continue.sh
设置
lora_checkpoint:- 如果该目录下包含优化器文件(optimizer.pt)、学习率调度器文件(scheduler.pt)等,则会自动加载这些文件,并从中断处继续训练。
- 如果该目录下仅包含LoRA相关模型文件(adapter_model.bin)和配置文件(adapter_config.json),则会加载这些文件并从头开始训练。
from_data_beginning:该参数用于指示是否在加载时从数据集的开头重新开始训练(默认为从中断处继续训练)。
增量训练
当然,您也可以选择使用上述脚本直接从已训练好的LoRA模型继续训练(无需加载任何优化器参数)。
此外,您还可以使用我们的优化器参数继续训练:
finetune_others_continue.sh
from_data_beginning:此参数将默认设置为从数据集的开头开始训练。
该脚本的主要逻辑是保持学习率一致。如果您的 max_steps 小于我们的值,请在训练时将 max_steps 调整为我们的一致,这相当于将您的数据直接接在我们中断的数据之后;如果您的数据集比我们的更大,则可以直接保持不变。
目前我们直接提供了经过1轮和2轮训练后的检查点:
- 1轮:https://github.com/Facico/Chinese-Vicuna/tree/master/lora-Vicuna/checkpoint-5800
- 2轮:https://github.com/Facico/Chinese-Vicuna/tree/master/lora-Vicuna/checkpoint-11600
- 如果您使用我们的检查点,您的程序也将从中断的相应步骤继续。
具体案例
- 在医疗问答的垂直语料上继续微调,请参阅此处:Chinese-Vicuna-medical
纯C++在CPU上进行推理
详细信息请参见 tools 目录下的 readme。
更多工具
我们还提供以下工具:
- 更快速的权重下载方式(8MB/s):链接
- 用于在原始Facebook检查点格式(
consolidated.xx.pth)与Hugging Face格式(pytorch_model-000xx-of-000xx.bin)之间转换的工具:链接 - 一种量化方法,推理时所需显存少于4GB:链接
更多详情请参阅 tool readme。
待办事项
- belle+guanaco(1.5轮,8000步)
- belle+guanaco(100%)
- 添加更多闲聊类对话语料,以增强自由对话能力
- 添加Colab训练 + LoRA加载界面
- 增加交互能力和打字机风格的输出(束搜索+流式输出)
- 添加Llama C++推理
- 添加GPTQ量化工具
- 添加增量训练
- 在多轮指令数据集上进行训练
- 在清理后的指令-聊天混合数据上进行更多轮次训练
- 在特定领域数据(医疗、法律)上进行训练
- 添加LangChain
星标历史
引用
如果您在研究中发现本项目有用,请考虑引用:
@misc{fan2025chinesevicunachineseinstructionfollowingllamabased,
title={Chinese-Vicuna: 一个基于Llama的中文指令遵循模型},
author={Chenghao Fan, Zhenyi Lu, Jie Tian},
year={2025},
eprint={2504.12737},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2504.12737},
}
常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
