我们一起读起来!!!了解过往「历史文献」的方法和不足之处,追寻「最前沿」的文献和技术。
「标题」:Alpaca: A Strong, Replicable Instruction-Following Model
「时间」:2023
1 遇到问题
例如:LLaMA模型
在 2048 x A100 80GB 的服务器上, 训练 65B 的模型可以达到 380 tokens/sec/GPU, 训练 1.4T 个 tokens 大概需要 1.4e12 / (380 * 60 * 60 * 24 * 2048) = 20.82 天
LLaMA模型训练是需要大量的算力。
「问题来了」,是否有采用较小的算力也能达到LLMs大模型的同样的效果?
Alpaca为什么也叫做羊驼呢?因为它是基于大羊驼LLaMA微调训练而来的呀
Alpaca 模型是
根据 Self-Instruct 技术生成的 52K 指令
该数据在 7B LLaMA 模型上进行微调
2 解决方案
1)网络结构
同LLaMA1模型一样。
Llama 1 模型架构:
采用标准Transformer 架构
采用 RMSNorm 应用预归一化
采用 SwiGLU 激活函数
采用旋转位置嵌入RoPE。
模型尺寸:7B、13B、33B、65B
2)训练细节
第一步:self-instruct
从self-instruct种子集合中生成175个由人类撰写的指令-输出pair对。
然后提示text-davinci-003使用上下文实例中的种子集合,生成更多的指令。通过简化生成过程,对self-instruct方法进行了改进,显著降低了成本。
上述的数据生产过程产生了52K条独特的指令及其对应的输出,使用OpenAI的API,花费不足500美元。
生成数据集
绘图的内圈代表指令的根动词,外圈代表直接宾语。
alpaca_data.json 包含我们用于微调 Alpaca 模型的 52K 指令跟踪数据。
这个JSON文件是一个字典列表,每个字典包含以下字段:
instruction: str,描述模型应执行的任务。每条 52K 指令都是唯一的。
input: str,任务的可选上下文或输入。例如,当指令是“总结以下文章”时,输入是文章。大约 40% 的示例有输入
output: str,指令的答案由 生成text-davinci-003
第二步:微调
以下超参数对 LLaMA-7B 和 LLaMA-13B 进行微调:
在我们的初始运行中,在 8 个 80GB A100 上微调 7B LLaMA 模型需要 3 个小时,这对于大多数云计算提供商而言成本不到 100 美元。
3 实验结论
1)对比试验
对 text-davinci-003 和 Alpaca 7B 进行了盲法成对比较,发现这两个模型具有非常相似的性能:
Alpaca 在与 text-davinci-003 的比较中以 90 比 89 获胜。
2)交互式
交互方式测试了 Alpaca 模型,发现 Alpaca 在多种输入上的表现通常与 text-davinci-003 类似。
3)局限性
Alpaca的一些局限性,包括幻觉、毒性以及偏见。幻觉似乎是羊驼的常见出错模式。
例如,Alpaca错误地说坦桑尼亚的首都是达累斯萨拉姆(达累斯萨拉姆是坦桑尼亚最大的城市)(达累斯萨拉姆曾经是首都,但在1974年,被Dodoma取代了)。
4 Pascal曰
1)LLMs语言大模型的按照历史规律应该往小型化,算力廉价化方向发展。
针对人群:
不知道如何「入门算法 「,对于」初学者」这里有完整的学习路径图(历史中「经典」模型文献和论文复现),完成后将成为合格「初级算法工程师」。
不知道「行业解决方案」,对于「算法工程师」这里有具体的行业中落地方案和呈现出商业价值,阅读后提供新的解决方法想法和成为「算法专家」。
蓦然回首,自己从算法(数学)专业学习以及工作已十年有余。
同时希望大家成为算法经历者、分享者和创造者。
入群
领取专属 10元无门槛券
私享最新 技术干货