谈谈ChatGPT的低成本“平替”实现路线(1)

简介: 谈谈ChatGPT的低成本“平替”实现路线

谈谈ChatGPT的低成本“平替”实现路线

技术琐话 2023-04-06 08:33 发表于四川

以下文章来源于老刘说NLP,作者刘焕勇

当前,一日如一月,甚至一年,从数据、架构、模型三个方面全面井喷。如何快速、低成本的实现一个“可平替”【实际上并不现实,尤其是在比如编程、数学题等任务上】的chatgpt,成为大家落地的重要探索方向。

实际上,尤其针对中文市场,目前已经出现基于一些开源预训练大语言模型(如BLOOM、LAMMA、GLM等),使用由ChatGPT生产的数据(不包含任何其他数据),并加持LORA模型进行加速组成的研发范式。

老刘将这种研发范式归为一下三个模块。

其中:

语言模型:解决基座问题,目前包括llama,bloom,glm等,但这些都存在版权问题,开源协议规定禁止商用;

指令微调数据:解决所需要的对齐sft数据,根据场景指定,包括alpaca、belle、guanaco等百万级微调数据,

微调加速:解决的是低资源下的训练问题,贫民玩法,其中热度最高的为LoRA是一种以极低资源微调大模型的方法,其来自于论文LoRA: Low-Rank Adaptation of Large Language Models。

由于meta-llama的小参数以及论文中的高性能介绍,目前已经出现系列的变体。

最近,由于关于llama\alpaca类项目井喷,名字十分混乱,让人难以理解,为了更好的理解这些概念,本文主要介绍其中的几个代表性项目,从数据、模两个角度对llama、Stanford Alpaca、BELLE、Chinese-LLaMA-Alpaca等进行介绍,供大家一起参考。

从中我们可以看到,其中三块的内容都需要大量的投入,尤其是目前指令微调数据上,很依赖alpaca以及chatgpt的self-instruct数据,而这些数据并不干净,最近的分析表明,它非常以美国为中心(https://github.com/gururise/AlpacaDataCleaned)。

长路漫漫,更需摸清方向。


老刘说NLP

老刘,刘焕勇,NLP开源爱好者与践行者。主页:https://liuhuanyong.github.io。老刘说NLP,将定期发布语言资源、工程实践、技术总结等内容,欢迎关注。

281篇原创内容

公众号

一、模型基座-LLaMA: Open and Efficient Foundation Language Models

Facebook Meta AI最新提出的语言模型LLaMA,该模型声称以更小的体积,在多数任务上超越了GPT-3的性能。

模型相关项目已经开源:https://github.com/facebookresearch/llama

论文地址:https://scontent-tpe1-1.xx.fbcdn.net/v/t39.8562-6/333078981_693988129081760_4712707815225756708_n.pdf

二、指令微调-Stanford Alpaca: A Strong, Replicable Instruction-Following Model

stanford_alpaca,一个强大、可复制的指令对齐模型,该模型从Meta的LLaMA 7B模型进行了微调。我们在使用text-davinci-003以自我指导风格生成的52K指令后续演示上训练羊驼模型。在自学评估集中,羊驼表现出许多类似于OpenAI的text-davinci-003的行为,但也出人意料地小,易于/廉价复制。

博客(https://crfm.stanford.edu/2023/03/13/alpaca.html)中介绍到,在学术预算下训练高质量的指导跟踪模型有两个重要挑战:强大的预训练语言模型和高质量的指导跟踪数据。第一个挑战通过最近发布的Meta的新LLaMA模型来解决。对于第二个挑战,self-instruct论文建议使用现有的强语言模型来自动生成指令数据。特别是,羊驼是一种语言模型,使用从LLaMA 7B模型的监督学习,从OpenAI的文本davinci-003生成的52K指令进行后续训练。

如上图所示,对于数据,首先通过自学方法生成了后续指导演示。从自学种子集的175个人工编写的指令-输出对开始。然后,提示text-davinci-003使用种子集作为上下文示例生成更多指令。通过简化生成pipeline,改进了自我指导方法,并显著降低了成本。我们的数据生成过程产生了52K个独特的指令和相应的输出,使用OpenAI API的成本不到500美元。

配备此指令跟踪数据集,然后使用Hugging Face的训练框架微调了LLaMA模型,利用了完全分片数据并行和混合精度训练等技术。在初始运行中,在8个80GB A100上微调7B LLaMA模型花了3个小时,这在大多数云计算提供商中花费不到100美元。

地址:https://github.com/tatsu-lab/stanford_alpaca

不过,羊驼仅用于学术研究,禁止任何商业用途。这一决定有三个因素:首先,羊驼是基于LLaMA的,它拥有非商业许可证,因此我们必然会继承这一决定。其次,指令数据基于OpenAI的text-davinci-003,其使用条款禁止开发与OpenAI竞争的模型。最后还没有设计足够的安全措施,因此羊驼还没有准备好用于一般用途。

2、开放数据

alpaca_data.json包含我们用于微调羊驼模型的52K指令跟踪数据。此JSON文件是字典列表,每本字典都包含以下字段:

instruction:str,描述模型应该执行的任务。52K的每个指令都是独一无二的。  
input:str,任务的可选上下文或输入。例如,当指令是“总结以下文章”时,输入是文章。大约40%的例子有输入。  
output:str,由text-davinci-003生成的指令的答案。

在生成该数据时,在一项初步研究中,发现该52K数据比自学发布的数据要多样化得多。如下图所示:内圈代表指令的根动词,外圈代表直接后接对象。

三、多语种指令微调-Guanaco: A Multilingual Instruction-Following Language Model Based on LLaMA 7B

Guanaco是一个根据Meta的LLaMA 7B模型训练的指令对齐语言模型。在羊驼模型的原始52K数据的基础上,我们额外添加了534,530个条目,涵盖英语、日语、德语、简体中文、繁体中文(台湾)、繁体中文(香港)以及各种语言和语法任务。通过用这些丰富的数据重新培训和优化模型,Guanaco在多语言环境中展示了出色的性能和潜力。

地址:https://github.com/Guanaco-Model/Guanaco-Model.github.io

1、模型介绍

Guanaco模型旨在很好地处理指导后续问答任务和持续对话,根据Meta的LLaMA 7B模型训练形成指令对齐语言模型。

Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.
### Instruction:
{instruction}
### Input:
{input}
### Response:

2、数据开放

Guanaco模型的数据集旨在增强多语言能力并解决各种语言任务。它以羊驼模型的175项任务为基础,以不同语言重写种子任务,并添加专门为英语语法分析、自然语言理解、跨语言自我意识和显式内容识别而设计的新任务。该数据集共有534,530个条目,以6000美元的低成本生成。

地址:https://huggingface.co/datasets/JosephusCheung/GuanacoDataset

四、 中文指令微调-BELLE: Be Everyone's Large Language model Engine

1、模型介绍

本项目目标是促进中文对话大模型开源社区的发展,愿景做能帮到每一个人的LLM Engine。现阶段本项目基于一些开源预训练大语言模型(如BLOOM、LAMMA等),针对中文做了优化,模型调优仅使用由ChatGPT生产的数据(不包含任何其他数据)。

该项目参考Stanford Alpaca 生成的中文数据集1M + 0.5M,提供了基于BLOOMZ-7B1-mt优化后的模型:BELLE-7B-0.2M,BELLE-7B-0.6M,BELLE-7B-1M,BELLE-7B-2M

采取了不同大小规模(20万、60万、100万和200万样本)的指令学习的数据集训练模型,基于BLOOMZ-7B1-mt训练调优后的模型,现已开放:

项目地址:https://github.com/LianjiaTech/BELLE

以Bloomz-7b1-mt为基础,我们评估了不同数量的instruction tuning数据,对模型效果的影响。总的来说,提升数据量能持续带来效果的提升,但是在不同类型的任务上表现有所不同。

在Extract, Classification, Closed QA, 和Summarization任务上,增加数据能持续带来效果的提升,还未达到瓶颈。在Translation, Rewrite, 和Brainstorming任务上,几十万的数据量就能获得较好的效果。

在Math, Code, 和COT任务上,模型效果较差,而且增加数据量已经无法带来效果的提升。

https://github.com/LianjiaTech/BELLE/blob/main/assets/model_compare.jpg

=

2、开放数据

1)zh_seed_tasks.jsonl:包含175个种子任务。

{
"id": "seed_task_8",
"name": "english_haiku_generation",
"instruction": "请以下面词语为主题写一首诗",
"instances": [{"input": "夏天", "output": "不但春妍夏亦佳,随缘花草是生涯。\n鹿葱解插纤长柄,金凤仍开最小花。"}], "is_classification": false
}
{
"id": "seed_task_38",
"name": "synonym_generation",
"instruction": "给出下面词语的同义词",
"instances": [{"input": "惊人地", "output": "令人惊奇地,令人惊讶地,意外地,难以置信地,不可思议地"}], 
"is_classification": false
}

地址:https://github.com/LianjiaTech/BELLE/blob/main/zh_seed_tasks.json

2)0.5M生成的数据 :为了方便模型训练,huggingface开源数据将原始生成文件中的"instruction"、"input"字段合并成"input"字段,"output"字段修改为"target"字段。

{
  "instruction": "给定一个文字输入,将其中的所有数字加1。\n“明天的会议在9点开始,记得准时到达。”\n",
  "input": "",
  "output": "“明天的会议在10点开始,记得准时到达。”"
}

地址:https://huggingface.co/datasets/BelleGroup/train_0.5M_CN

3)1M生成的数据:生成方式与0.5M数据集相同,在后处理中去掉了一些质量不高的数据,例如自称GPT模型的数据、由于input不完善导致模型无法回答的数据,以及指令是中文但input或target是英文的数据。

地址:https://huggingface.co/datasets/BelleGroup/train_1M_CN


相关文章
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
高中教师养出40亿美元超级独角兽,发布ChatGPT最大平替
高中教师养出40亿美元超级独角兽,发布ChatGPT最大平替
|
11月前
|
人工智能 语音技术 开发者
真·ChatGPT平替:无需显卡,MacBook、树莓派就能运行LLaMA
真·ChatGPT平替:无需显卡,MacBook、树莓派就能运行LLaMA
280 0
|
11月前
|
SQL 人工智能 算法
Meta开源的ChatGPT平替到底好不好用?测试结果、加料改装方法已出炉,2天5.2k星
Meta开源的ChatGPT平替到底好不好用?测试结果、加料改装方法已出炉,2天5.2k星
137 0
|
11月前
|
机器学习/深度学习 存储 自然语言处理
笔记本就能玩的ChatGPT平替,附完整版技术报告
笔记本就能玩的ChatGPT平替,附完整版技术报告
|
11月前
|
Web App开发 机器学习/深度学习 物联网
ChatGPT平替「小羊驼」Mac可跑!2行代码单GPU,UC伯克利再发70亿参数开源模型
ChatGPT平替「小羊驼」Mac可跑!2行代码单GPU,UC伯克利再发70亿参数开源模型
305 0
|
11月前
|
JSON 编解码 自然语言处理
谈谈ChatGPT的低成本“平替”实现路线(2)
谈谈ChatGPT的低成本“平替”实现路线
720 0
|
1月前
|
人工智能 算法 异构计算
ChatGPT一年电费2亿元,AI咋这么费电?
【2月更文挑战第24天】ChatGPT一年电费2亿元,AI咋这么费电?
38 1
ChatGPT一年电费2亿元,AI咋这么费电?
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
2023年度AI盘点 AIGC|AGI|ChatGPT|人工智能大模型
2023年度AI盘点 AIGC|AGI|ChatGPT|人工智能大模型
|
2月前
|
人工智能 机器人 Go
飞书+ChatGPT搭建智能AI助手,无公网ip实现公网访问飞书聊天界面
飞书+ChatGPT搭建智能AI助手,无公网ip实现公网访问飞书聊天界面
140 0
|
1月前
|
机器学习/深度学习 人工智能
看看OpenAI(ChatGPT)怎么回答马斯克呼吁停止ai研究的?
看看OpenAI(ChatGPT)怎么回答马斯克呼吁停止ai研究的?
22 1