2023-04-04: 为了建立自己领域的大语言模型(或者说为了加强大语言模型在自己领域的表现),而在做技术调研
2023-04-18: 其实众多微调方法或框架使用技术都类似,且有一半小羊驼模型都微调自LLaMA ,决定模型质量的因素主要是数据量、数据质量、算力成本,如果要制作自己专业领域的羊驼模型,个人认为应以LLaMA作为预训练模型,收集尽可能多的中英文语料(假设你的模型要部署到中文生产环境),对LLaMA做再训练,这一步如果效果不好,可以考虑用ChatYuan 替代,然后用Task Tuning 和专业领域数据进行微调,最后收集指令微调数据,并进行指令微调,LMFlow 和DeepSpeed-Chat 都可以成为很好的微调框架
2023-04-26: 建立自己领域的大语言模型,我们要做'Task Tuning'或许是因为我们的知识库太大,类型太庞杂,不太容易全部放进'一个prompt'中,因此要让LLM利用我们的知识,简单暴力的方法或许是微调,现在还有一种方案,是在prompt engineering上做功夫,如使用LlamaIndex或是LangChains,使得LLM与自己领域的知识库相关联,获得知识增强型的回答
一些关于大语言模型的名词和实验现象或是其他重要技术
Scaling (Training compute, FLOPs): 代表模型的规模,等于 α * model_size * training_tokens,α为系数,model_size为模型参数量,training_tokens为数据量(1000个tokens大约包含750个词语)
Scaling laws : 如果你希望提升模型的表现,就必须增大Scaling (模型大小,数据大小,计算资源大小),open ai 的gpt-4技术报告 显示,模型的表现与训练时间的关系是可预测的,也就是说,在模型刚开始训练时,就可以知道模型最终训练结束的表现
有137种能力是大Scaling才有的,而小Scaling没有,见博客 ,这种能力称为Emergent abilities,这种能力打破了Scaling laws
few-shot prompting(few-shot prompting是指给模型的输入中加入一些与当前模型要做的任务相似的例子)在小Scaling上没有什么用,但是在大Scaling上有用
RLHF对小Scaling是有害的,但对大Scaling是有益的,见论文
The Inverse Scaling Prize 提出了11种任务,这11种任务对于一般的大语言模型来说,都是随着Scaling增大,效果反而会变差的。Inverse scaling can become U-shaped 发现如果使用chain-of-thought prompting (简单来说就是在给模型的提示中加入推理,让它‘分步思考’)可以使部分任务从随着Scaling变大一直变差,变为表现成U型,意思是先变差后变好
对于哈尔滨工业大学的ChatGPT 调研报告 内容小总结: 1. 报告里提到ChatGPT在Scaling达到一定尺度的情况下,效果出现激增,打破了Scaling laws的规律(线性增强),认为是因为加入了很多代码作为训练语料,因代码语言的特性可以强化模型的推理(reason)能力,论文 发现训练数据中含有代码的模型具有很强的语言推理能力,代码预训练与思维链Chain-of-Thought(COT)表现息息相关,在预训练时使用代码数据成为越来越多研究者的共识;2. GPT式的decoder模型的预训练方法相当于是对一句话中下个词语的预测(分类),这种方式可以方便生成任意长度文本,这种方式类似Word2Vec在做词向量编码,可能其能够把不同语言的相同语义投影到高维空间中的相同位置;3. 指令精调是提示学习(Prompt Learning)的加强版,其作用在于让模型学习人类对话交互的模式(与人类行为‘对齐’),且能让他有能力泛化到没见过的分布中;4. RLHF是让模型了解人类的‘意图’,让模型的回答是人类希望看到的;5. 部署大模型的方式是模型并行、数据并行的混用;6. 提到Nvidia的Megatron-LM 和Microsoft的DeepSpeed ,应该都可以作为很好的部署框架;7. 在第四章提到巨量预训练数据集!!!;8. 提到构建指令精调数据集需要设计指令模板(针对不同任务),且覆盖不同类型的数据,逻辑推理任务标注时可以用COT,能够提高表现;9. 第五章提到评价方式,在需要评估自己的大模型时可以回来仔细参考
LlamaIndex : LlamaIndex提供了一个数据连接给LLM,包含多种数据源格式(API, PDF, docs, SQL等),为非结构化的数据源提供索引,方便用户请求并结合LLM获得数据增强的输出结果,将数据源结构化,解决LLM token输入长度限制和文本分割的问题,详见文档
LangChains : LangChains有多种功能,1.特定领域的检索增强(特定领域问答增强),也是为数据建立索引,2.优化对话记忆,建立聊天机器人,3.建立一个代理,让LLM去使用工具(包括arxiv、google search、wiki等),除此之外一些其他的应用案例,详见文档
对于Facebook的LLMsPracticalGuide 及其相关资源列表 小结: 该综述主要是在比较LLM和‘传统微调’小模型在大部分自然语言任务上的优劣势,结果表明‘传统微调’小模型在某些任务上依然是合适且具有优势的,不过在模仿人类、聊天机器人、生成、知识密集型应用等任务上,大语言模型确实具有显著优势,个人认为,从对比结果的角度,或许可以把综述里的LLM视为GPT4等千亿万亿级参数模型,而把‘传统微调’小模型视为7B、13B等小羊驼模型。一些小细节(以下用小模型代指‘传统微调’小模型): 1. LLM在只需要使用上下文知识的任务(比如阅读理解)中表现不佳;2. 在能够使用知识库检索的情况下,小模型是更好的选择;3. 实际应用中,out-of-distribution (OOD)情况较少,推荐小模型;4. 除了LoRA外,还提到了两种Parameter-Efficient Tuning技术Prefix Tuning 和P-Tuning ;5. 资源列表里给了很多预训练和fine tune用到的数据,给力!!!还列出了众多自然语言测试任务,可以做了解和参考
CLUEbenchmark发布SuperCLUE ,网页 ,一套中文通用大语言模型评价标准,目前测评了包括GPT-4、星火认知等未开源的超大LLM及ChatGLM、MOSS等开源羊驼LLM(ChatGLM-6B效果还不错,和LLMZoo得到了相似结论!!!),声称之后会开源评测数据集
2023-03-17 链家科技(Ke Technologies)发布BELLE ,目前已发布了ChatBELLE App一个支持MacOS的APP,已发布7B模型
2023-03-23 Facico(Facico是他github的名字,可以确定的是他是个中国人,其他没人肉到任何信息)发布Chinese-Vicuna ,使用BELLE 和Guanaco 数据作为训练数据,开源7B、13B模型,提到之后会增加多轮对话数据
2023-03-25 李煜东(人肉了下,发现是深圳大学博士生)发布Chinese-ChatLLaMA ,作者找来中英平行语料、中文维基、社区互动、新闻数据、科学文献等语料再进行预训练,作者还在持续收集更多中文语料数据,语料数据都开源,且还开源了33B和65B的大模型
2023-04-20 Lamini (一个公司,CEO是斯坦福的)发布lamini ,购买了他们的许可后,可以调用他们的api训练模型,不用使用自己的设备,且他们提供了一个数据生成器,可以生成用来进行指令精调的数据
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
是(训练代码没有开源)
是
是
1T、1T、1.4T、1.4T
7B、13B、33B、65B
65B用2048张A100
65B用时21天
13B版在很多测试上优于GPT3(175B)
65B版与许多当时的最优模型相比都具有竞争力,比如Chinchilla-70B和PaLM-540B
核心思想是说同样预算 的情况下,用小模型+大量数据,可以得到比大模型+少量数据更好的效果,虽然训练时间更长
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
是
是
是
43M
7B、20B
16 * A100
未知
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
仅开源微调代码
否
是
1T
6B
未知
未知
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
是
是
是
52K
7B、13B
7B用8张A100
7B用时3小时
数据来源特别有趣,是由gpt-3.5(text-davinci-003)生成的训练数据,方法改进自于论文self-instruct paper ,该论文开源代码
该研究提到,它获取数据的成本(gpt-3.5生成)小于500美元,云服务器成本小于100美元(对于大多数云服务器商来说)
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
是
是(和Alpaca训练数据相同)
是
52K
7B、13B、33B、65B
7B用1张RTX4090
7B用时几个小时
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
是
否
是
70k
Vicuna: 7B、13B, FastChat-T5: 3B
8 * A100
1天
目前开源了2种模型,Vicuna先开源,随后开源FastChat-T5
Vicuna也是一个在LLaMA的基础上微调过来的模型,微调方式改进自Alpaca,主要有以下不同:1.Alpaca输入的上下文长度是512,改为2048;2.调整训练损失为多轮对话,并单独计算每个聊天机器人输出的微调损失;3.有使用压缩显存的计算和减少训练成本的技术,见博客
对话数据处理自ShareGPT.com (这是一个gpt用户分享自己聊天对话的网站,又一个不错的数据源),不过并未分享自己处理后的数据,但是给了如何处理的代码
作者提到他们的7B模型大概花费140美元的训练费,13B是300美元
作者提到自己的13B模型已经达到了chatgpt 90%的能力水平,且和Alpaca对比生成的结果内容更丰富,结构更准确,但是和其他‘小’大模型一样,推理能力和数学能力不太行
提到一个OpenAI的API moderation 可以用来过滤到用户的不恰当输入
提供了一个在线与大语言模型对话的demo ,里面有Vicuna、Koala、Dolly、ChatGLM、Alpaca、LLaMA这几个模型
给出了一个对话平台,可以往其中添加对话机器人,目前支持多个聊天机器人,详见仓库
提供了一个验证的功能,可以用gpt4来评估模型的能力
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
是
是
是
437k
多个版本,请看报告
8 * A100
未知
微调了多个模型,最新的是微调自GPT-J的,所有都有完整的实验记录
称自己的训练数据都是干净的高质量,包括代码、故事和对话
提供了多个编译好的可执行程序,可直接在个人电脑上安装并使用
在框架中融入了langchain
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
是
否
是
未知
未知
未知
未知
ChatYuan-large-v2应该是微调自此团队的预训练模型PromptCLUE ,该预训练模型开源了代码、数据和参数(base版),数据使用1.5万亿中文token,亿级中文任务数据上完成训练,训练任务超过150+
该项目开源了他的微调代码,和微调输入的数据格式,使用起来比较方便,说的技术路线改进自ChatYuan-large-v1,没有找到ChatYuan-large-v1的相关信息
看了一下demo效果,感觉很不错
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
是
是
是
15k
12B
8 * A100
未知
Dolly是Pythia-12B 经过指令微调得到的
数据都是指令数据,数据源主要是wiki和Databricks的数千名员工生成的(可能数据质量高)
在句法复杂的提示、编程问题、数学运算、事实错误、日期和时间、开放式问题回答、幻觉、列举特定长度的列表、文体模仿、幽默感等方面表现不佳
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
是(训练代码没有开源)
是
是
预训练20G,指令精调2M、3M
7B、13B
16张A100
未知
在LLaMA的基础上再做预训练(Pre-training)并使用Alpaca指令精调(Instruction Fine-tuning)得来,特点是扩充了中文词表 ,同样使用LoRA技术
开源了两个版本,一个是基于预训练的中文LLaMA大模型,另一个是经过指令精调的中文Alpaca大模型
可用个人电脑cpu进行本地部署
作者说LLaMA模型本身中文语料就不充分,Chinese-LLaMA-Alpaca的训练数据量少,且训练时长不够,存在中文训练不充分的问题
提到并使用一个中文语料库
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
是
是
是
未知
作者训练的都是LLaMA羊驼:7B、13B、33B、65B
未知
未知
该项目是一个高效、便利的微调框架,支持所有HuggingFace中的decoder models(比如LLaMA、T5、Glactica、GPT-2、ChatGLM),同样使用LoRA技术
提供了作者训练并部署到线上的LLaMA羊驼模型给人免费试用
目前支持三种微调方式Task Tuning(加强模型在专业领域,比如医疗,上的表现)、Instruction Tuning(就是指令精调,让模型学会遵循命令行事,我们常说的利用提示语prompt调教模型就是用指令精调得到的功能),Parameter-Efficient Tuning(就是HuggingFace的PEFT)
作者运用Task Tuning(enhance a language model’s proficiency in a particular field)训练出来的LLaMA羊驼模型和ChatGPT、InstructGPT-175B等模型在医疗领域比了比,效果确实不错,并在MMLU(Massive Multitask Language Understanding)上测试了一下,发现在非领域知识回答上性能也没有太多下降
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
是
是
是
104k
7B、13B(都是LLaMA)
未知
未知
一个宣称实现了最接近原版RLHF的完整pipeline,用ColossalAI 实现,和微软的DeepSpeed应该功能接近,都是分布式框架
特别提到了用一张24G显存的卡,只要cpu内存够,就可以训练不仅是LoRA,甚至是原本微调(全部参数都参与梯度下降)的7B LLaMA,不过我看他此demo里batch size只有1...
提供的数据是中英文双语数据,共104k
目前仅支持LLaMA,正在添加其他大模型
代码仓库
数据处理代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
是
是(用的都是开源数据)
是
未知
7B、13B
8 * A100
6小时
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
是
是
是
111.5k
7B、13B、30B
1个A100
9h、16h、36h
使用LoRA技术,微调自LLaMA
使用的数据是chatgpt自己与自己对话生成的,共111.5k,这些对话的问题是从 Quora4 (知乎) 和 Stack Overflow 的,也提供了收集这些生成数据的代码
有一个专门的中文版即将开源
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
否
是
否
未知
未知
未知
未知
微软研究院发布的小羊驼模型,目前只开源了数据,数据是中英双语的,持续关注中
除了使用self-instruct tuning训练了一个小羊驼,还生成了一些比较数据(来自GPT3.5、4、OPT1.3B)来训练了一个打分模型(reward models),用这个打分模型去量化GPT4和小羊驼的差距
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
是
是
是
未知
Phoenix: 7B, Chimera: 7B、13B
未知
未知
Phoenix微调自BLOOMZ ,论文 ,是一个包含46种语言和13种程序语言的开源预训练模型
Chimera微调自LLaMA
微调数据主要是指令数据和对话,共1.58GB
提供了Phoenix、Chimera与其他LLM的对比结果:
Evaluation by GPT4, Chinese
Ratio
Phoenix-inst-chat-7b vs. ChatGPT
85.2%
Phoenix-inst-chat-7b vs. ChatGLM-6b
94.6%
Phoenix-inst-chat-7b vs. Baidu-Wenxin
96.8%
Phoenix-inst-chat-7b vs. MOSS-moon-003-sft
109.7%
Phoenix-inst-chat-7b vs. BELLE-7b-2m
122.7%
Phoenix-inst-chat-7b vs. Chinese-Alpaca-7b
135.3%
Phoenix-inst-chat-7b vs. Chinese-Alpaca-13b
125.2%
85.2%代表Phoenix-inst-chat-7b达到了ChatGPT百分之85.2的表现
Evaluation by human, Chinese
win
tie
lose
Phoenix vs. ChatGPT
12
35
53
Phoenix vs. ChatGLM-6b
36
11
53
Phoenix vs. Baidu-Wenxin
29
25
46
Phoenix vs. BELLE-7b-2m
55
31
14
Phoenix vs. Chinese-Alpaca-13b
56
31
13
Evaluation by GPT4, Chinese
Ratio
Chimera-chat-7b vs. ChatGPT
85.2%
Chimera-chat-13b vs. ChatGPT
92.6%
Chimera-inst-chat-13b vs. ChatGPT
96.6%
效果很好,感觉这个模型和ChatGLM-6b都可以作为backbone
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
是
是
是
未知
多个(见huggingface )
未知
未知
Open-Assistant是一个2022年12月就发起的项目,包括集模型微调、RLHF、推理pipeline(命令行推理CLI、搭建聊天机器人)、知识增强型(访问数据库和搜索引擎)为一体的框架,以及还在不断填充的数据集,意在构建一个私人聊天机器人
支持添加不同的预训练模型进行微调、RLHF和部署(还支持DeepSpeed),官方训练的例子是LLaMA、pythia、StableLM等
包含多个数据集,在厂库的data路径下面可以查看数据集的下载和使用方式,另外指的注意的是,发布了一个人工生成和标注的对话数据OpenAssistant Conversations (OASST1) ,包含了16万条消息和46万个人工标注评级(排序)覆盖35门语言
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
是
否
否
未知
未知
未知
未知
微软发布的微调框架,用DeepSpeed 实现了论文InstructGPT 中的监督微调、奖励函数模型微调、强化学习人类反馈(Reinforcement Learning Human Feedback, RLHF),作者说微软研发的DeepSpeed可以显著加速训练(可达15倍速度),并且还可以显著加速推理,做到高吞吐量和低延迟
目前支持以下预训练模型:
正在开发对LLaMA的支持
GPU SKUs
OPT-1.3B
OPT-6.7B
OPT-13.2B
OPT-30B
OPT-66B
Bloom-175B
1x V100 32G
1.8 days
1x A6000 48G
1.1 days
5.6 days
1x A100 40G
15.4 hrs
3.4 days
1x A100 80G
11.7 hrs
1.7 days
4.9 days
8x A100 40G
2 hrs
5.7 hrs
10.8 hrs
1.85 days
8x A100 80G
1.4 hrs($45)
4.1 hrs ($132)
9 hrs ($290)
18 hrs ($580)
2.1 days ($1620)
64x A100 80G
31 minutes
51 minutes
1.25 hrs ($320)
4 hrs ($1024)
7.5 hrs ($1920)
20 hrs ($5120)
以上RLHF训练使用了135M tokens的数据,由6个开源数据集组成rm-static 、full-hh-rlhf 、synthetic-instruct-gptj-pairwise 、rlhf-reward-datasets 、webgpt_comparisons 、SHP
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
否
否
是
800B
3B、7B、13B
未知
未知
13B的模型是微调自Vicuna-13B的,这个好像没有算在StableLM系列模型里
StableLM暂时发布了3B、7B版本,还剩15B、30B、65B、175B没发布
训练数据构建自The Pile ,数据量是The Pile的3倍,输入长度是4096 tokens
除此之外还使用了5个微调数据集: Alpaca的,gpt4all的,RyokoAI的ShareGPT52K ,Dolly的,Anthropic的HH
代码仓库
是否开源代码
是否开源训练数据
是否开源模型参数
训练数据大小
模型参数大小
训练设备
训练时长
是(未开源预训练代码)
是(还未全部开源)
是(还未全部开源)
未知
16B
未知
未知
MOSS目前开源了3个版本,moss-moon-003-base、moss-moon-003-sft和moss-moon-003-sft-plugin,另还有3个版本将在之后发布,持续关注
moss-moon-003-base是预训练模型,预训练自CodeGen ,论文 ,是在将近70B的中英文语料上预训练得到的,另外CodeGen是一个专门用来通过语言生成代码的模型,可能其代码语料充足,可能其推理能力很强
moss-moon-003-sft在moss-moon-003-base基础上经过110万多轮对话数据微调得到
moss-moon-003-sft-plugin这个比较有特色,是在moss-moon-003-base基础上经过110万多轮对话数据和30万插件增强的多轮对话数据上微调得到,在对话能力基础上还有使用搜索引擎、文生图、计算器、解方程等四种插件的能力
微调数据都还未完全开源,持续关注,数据包含:moss-002-sft-data,说的是moss-002用的,moss-002并未开源,moss-003-sft-data,刚刚提到的110万对话数据,moss-003-sft-plugin-data刚刚提到的插件增强对话数据
xxx