/Luotuo-Chinese-LLM

骆驼(Luotuo): Open Sourced Chinese Language Models. Developed by 陈启源 @ 华中师范大学 & 李鲁鲁 @ 商汤科技 & 冷子昂 @ 商汤科技

Primary LanguageJupyter NotebookApache License 2.0Apache-2.0

English | 中文 | 快速上手 | 赞助 | 赞助 | 人员和贡献 | 相关项目

骆驼(Luotuo): 开源中文大语言模型

骆驼(Luotuo)项目是由冷子昂 @ 商汤科技, 陈启源 @ 华中师范大学 以及 李鲁鲁 @ 商汤科技 发起的中文大语言模型开源项目,包含了一系列语言模型。

( 注意: 陈启源 正在寻找2024推免导师,欢迎联系 )

骆驼项目不是商汤科技的官方产品。

我们将项目命名为 骆驼 Luotuo (Camel) 主要是因为,Meta之前的项目LLaMA(驼马)和斯坦福之前的项目alpaca(羊驼)都属于偶蹄目-骆驼科(Artiodactyla-Camelidae)。而且骆驼科只有三个属,再不起这名字就来不及了。

项目重要更新 [ ... ]

[2023-4-13] 我们将在一周内发布骆驼嵌入(Luotuo-Embedding)和骆驼QA(CoQA阅读理解)

[2023-4-12] 修复骆驼说,驼铃的C模型中文文本摘要也增加了交互界面。

[2023-4-2] 我们有了第一个版本的丝绸魔法书, 其中记载了一些GPT和文心一言的魔法提示语(prompt).(阿里能不能送个测试账号)

[2023-4-1] 对于不使用colab的用户,我们增加了docker部署 并且为之编写了 教程.

[2023-3-30] 我们发布了中文摘要模型 CamelBell-C (驼铃-C), 可以在这里体验-> Open In Colab. 更多结果见 CamelBell-repo.

[2023-3-27] 我们计划训练一个Chat哈利波特, 我们仅仅完成了初步的实验并实现了0.1版本的模型, 不过模型的效果不及我们的预期, 可以查看这份报告, 我们想寻找一个 哈利波特的狂热粉丝同时又是高质量的Python程序员 来参与到项目中,可以联系我们。

快速上手

Colab链接 细节
驼铃C 文本摘要 Open In Colab 基于GLM-6B的文本摘要模型
驼铃B Chat哈利波特 - Chat哈利波特的初步汇报
驼铃A Open In Colab 通过80条语料给GLM-6B简易洗脑
骆驼0.3 Open In Colab 骆驼0.3的验证代码
骆驼说 Open In Colab 一个用Gradio写的交互对话
骆驼说(GLM) Open In Colab 中文文本摘要的Gradio交互界面

项目概览

我们强烈建议首先先在Colab测试我们的代码,再考虑本地部署。

Luotuo-Vanilla

如果你希望模型在中文上有更好的表现,建议使用 CamelBell(驼铃), 这个项目在中文基模型Chat-GLM-6B的基础上继续使用中文语料进行训练。

在驼铃-B(CamelBell-B)中我们将训练一个Chat哈利波特

CamelBell-B的输出样例 (点我)
Instruction: 斯内普和伏地魔之间是什么关系?
Answer: 斯内普和伏地魔之间是非常复杂的关系。伏地魔是斯内普的雇主,他利用斯内普来执行他的计划。斯内普一开始是斯莱特林的学生,但他后来加入了伏地魔的阵营,成为了他的追随者。斯内普和伏地魔之间的关系非常紧张,他们互相对抗,但也有一些共同的利益。

CamelBell-C (驼铃-C)是一个中文文本摘要模型 Open In Colab

CamelBell-C的输出样例 (点我)
Instruction: 请帮我总结以下内容:
Input: 
北京时间2月13日凌晨,2023年ATP250达拉斯站男单决赛。**球员吴易昺先输一盘后挽救4个赛点并兑现第5个冠军点,最终以6(4)-7/7-6(3)/7-6(12)逆转惊险击败赛会5号种子、美国大炮伊斯内尔,就此改写历史,成为公开赛年代首位夺得ATP巡回赛男单冠军的**大陆球员,并创造**大陆球员的男单最高排名!

第一盘比赛,吴易昺在第12局错过了一个盘点,并最终抢七惜败;第二盘则挽救一个赛点后抢七局3-0领先开局,且以7-6(3)扳回一盘;第三盘决胜盘,在关键的第9局15-40落后情况下凭借连续的高质量发球逆转保发,之后比赛再次进入抢七,抢七局依然胶着,吴易昺又挽救了3个赛点,并兑现了自己的第5个冠军点,就此锁定冠军!历史性一刻到来时,吴易昺瞬间躺倒在地。全场比赛,伊斯内尔轰出了44记Ace球,但最终在主场依然输给了吴易昺。

凭借具有突破意义的这一冠,吴易昺在本周入账250个积分和112125美元的冠军奖金,在周一最新一期的男单排名榜单上,创**大陆男网历史新高排名—第58位。根据比赛计划,吴易昺原本要出战本周进行的ATP250德拉海滩站,不过在达拉斯夺冠后,吴易昺因身体疲劳退出本站赛事,他的签位由幸运落败者约翰森替代。

Answer: 男子网坛历史性一刻!**小将吴易昺逆转击败赛会5号种子,成公开赛年代首个冠军。
Luotuo-Vanilla

Luotuo-Vanilla是骆驼项目的第一个github仓库, 它是在LLaMA-7B上进行微调的。骆驼项目的初始目标,是研究使用跨语言数据在进行微调时,大语言模型发生的相关现象。

测试代码 Open In Colab

一个使用Gradio搭建的交互界面 Open In Colab

我们还在完善骆驼1.0的训练数据和修复bug,并且在后续的版本中,我们将研究如何修复骆驼的Tokenizer。

骆驼0.3 的输出样例 (点我)
Input: **的首都在哪里?
Luotuo-Output: **的首都是北京。
Input: 华中师范大学在哪里
Luotuo-0.1-Output: 华中师范大学位于北京
Luotuo-0.3-Output: 华中师范大学在武汉市。
Luotuo-Vanilla

丝绸魔法书记录了大语言模型的一些魔法提示词(prompt)。我们希望有一天,骆驼项目自己训练的语言模型,也能适配很复杂任务的prompt。

Luotuo-Vanilla

Silk Road (丝绸之路) will be the model bank of project Luotuo.

赞助(Sponsorships)

Top 3 Sponsors

Time Sponsor Amount
2023/3/28 张** 2000
2023/4/6 孙** 1024
2023/4/4 王* 768

balance = 7706 now. Detailed balance see in sponsorship_and_balance.md

这原本是我们的一个作业项目,我们原本计划训练到1.0为止。但是社区的热情超过了我们的想象。如果您愿意赞助我们的项目,可以

扫描这个二维码

并且加这个支付宝账号,留下您的姓名

项目的资金流向将被公开,所有的资金将被用于数据的标注,训练算力的购买或者后续周边产品的发放。数据和算力的捐献也会一同总结在sponsorship的表格中。备用链接 二维码 , 支付宝账号

This was originally an exercise project for us, and we originally planned to train until version 1.0. However, the enthusiasm of the community exceeded our expectations. If you are willing to sponsor our project, you can scan this QR code and add this Alipay account, leaving your name.

All funds will be used for data annotation, purchase of training computing power, or distribution of subsequent peripheral products.

相关项目

我们计划在这里增加一个表格,列出所有我们已经关联,和正在following的开源项目列表。同时,非常感谢这些项目的作者对开源社区的贡献。

模型与训练 详情
ChatGLM-6B ChatGLM-6B 是清华唐杰老师实验室释放出来的中文大语言(小)模型
ptuning-v2 ptuning-v2是清华唐杰老师实验室发布对GLM的一种微调方法,实现了他们本身发布的p-tuning-v2的论文的方法
GLM-Tuning Build 这是Chengxi Guo等同学实现的GLM微调,最新的版本中同时支持了LoRA和p-tuning
Alpaca Alpaca是斯坦福在LLaMA上微调对话指令的项目,是万恶之源
Alpaca-LoRA 这个项目开启了LLaMA模型上的LoRA微调,万恶之源2
Alpaca-ChToken 复旦的Yiming Cui和Ziqing Yang修复了Alpaca的中文token问题,在原来的LLaMA英文token边上并了一个中文的token,我们想把这个项目整合到整体训练里,还没做完
BELLE-7B Open in Colab BELLE是贝壳(链家)放出来的中文大模型,我们之后会尝试在这上面做微调。在一个合适的定量benchmark建立以后,我们会对比各个单卡大模型之间的性能。
RWKV-LM RWKV也是一套语言模型的训练架构
Baize-7B 白泽是做连续对话的,他收集语料的方法很有意思,之后我们要看一下,但是白泽是在LLaMA上训练的,所以会遇到中文的问题,用到中文要换基模型。
Vicuna 同时有7B和13B,支持中文的模型,这个应该挺厉害的,而且13B用Int4能够压缩到colab使用(但是不知道int4训练会不会出事儿),之后也要试一下
数据 详情
Guanaco Guanaco是JosephusCheung制作的一套指令调优的数据集,在骆驼0.3以上版本的模型中我们使用了这个数据。
CNewSum CNewSum是字节与UCSB发布的中文摘要数据集,我们在驼铃-C模型中使用了这个数据集
Coco-CN 这是**人民大学的li-xirong等翻译的部分Coco数据集,骆驼团队正在准备用GPT翻译完整的Coco,如果你也准备翻译,可以联系我们,避免重复花钱
CoQA 基于一段文字,然后问答,是个很重要的任务。陈丹琦大佬参与做的CoQA数据集,骆驼团队正在准备用GPT增广和翻译完整的CoQA,如果你也准备翻译,可以联系我们,避免重复花钱

贡献者(Contributors)

我们会把每个贡献者的贡献记录在contributions.md,包括每个项目每个成员的具体任务分配和贡献。

这里的表格仅列出每个人的主要贡献,更具体的内容请参考contributions.md

太长不看

Contributor 1
李鲁鲁 @ 商汤科技
李鲁鲁 是骆驼项目的发起人之一
Contributor 2
冷子昂 @ 商汤科技
冷子昂 是骆驼项目的发起人之一
Contributor 3
陈启源 @ 华中师范大学
陈启源 是骆驼项目的发起人之一
Contributor 4
黄泓森 @ 华中师范大学
黄泓森 维护了docker和项目环境
Contributor 5
胡婧 @ 华中师范大学
胡婧 正在参与一些后续项目
Contributor 6
陈舒年 @ 杜克大学
陈舒年 正在参与ChatYisheng等
Contributor 5
刘思祎 @ Upenn
刘思祎 正在参与一些后续项目
Contributor 4
孙骜 @ 清华大学
孙骜 正在参与中文QA等工作
Contributor 6
黄钟健 @ 西安电子科大
黄钟健编写了Chat驼铃

Citation

Please cite the repo if you use the data or code in this repo.

@misc{alpaca,
  author={Ziang Leng, Qiyuan Chen and Cheng Li},
  title = {Luotuo: An Instruction-following Chinese Language model, LoRA tuning on LLaMA},
  year = {2023},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/LC1332/Luotuo-Chinese-LLM}},
}

回到开头

TODO and Be a Contributor

It seems that there are many follow-up tasks to be done after the basic version is completed. Many developers in the community have put forward more friendly suggestions, and I have put a longer TODO list in TODO_list.md.

inbuilding project

  • translate alpaca json data into Chinese
  • finetuning with lora(model 0.1)
  • release 0.1 model (model A)
  • model to hugging face, GUI demo
  • train lora with more alpaca data(model 0.3)
  • (In Processing) train lora with more alpaca data(model 0.9)
  • clean training code
  • write the second phase plan for Luotuo

We plan to use this Luotuo project as the git repository for the entire Chinese LLM project. After the completion of the original Luotuo: LLaMA-LoRA, it will be migrated to Luotuo-vanilla. The CamelBell, Loulan, Silk-Road and other derivative Chinese language model projects will gradually be added to the Luotuo project.

A Quick Start

Colab Link detail
CamelBell quick evaluation Open In Colab Tuoling specific Evaluation Code
A quick evaluation Open In Colab Evaluation code with standard HuggingFace pipeline
Bot with Interface Open In Colab Interactive Chatting Bot using Gradio
Training Code To be released Training code, run on colab
Data Translation Open In Colab Translation alpaca.json into Chinese