训练个中文版 ChatGPT 没那么难:不用 A100,开源 Alpaca-LoRA+RTX 4090 就能搞定
机器之心报道
(资料图片仅供参考)
机器之心编辑部
Alpaca-LoRA 将微调类 ChatGPT 模型的算力需求降到了消费级,训练个自己的中文对话模型真就没那么难了。
2023 年,聊天机器人领域似乎只剩下两个阵营:「OpenAI 的 ChatGPT」和「其他」。
ChatGPT 功能强大,但 OpenAI 几乎不可能将其开源。「其他」阵营表现欠佳,但不少人都在做开源方面的努力,比如前段时间 Meta 开源的 LLaMA。
LLaMA 是一系列模型的总称,参数量从 70 亿到 650 亿不等,其中,130 亿参数的 LLaMA 模型「在大多数基准上」可以胜过参数量达 1750 亿的 GPT-3。不过,该模型并没有经过指令微调(instruct tuning),因此生成效果较差。
为了提高模型性能,来自斯坦福的研究者帮助其完成了指令微调的工作,训练了一个名为 Alpaca(羊驼)的 70 亿参数新模型(基于 LLaMA 7B)。具体来说,他们让 OpenAI 的 text-davinci-003 模型以 self-instruct 方式生成 52K 指令遵循(instruction-following)样本,以此作为 Alpaca 的训练数据。实验结果表明,Alpaca 的很多行为都与 text-davinci-003 类似。也就是说,只有 7B 参数的轻量级模型 Alpaca 性能可媲美 GPT-3.5 这样的超大规模语言模型。
对于普通研究者来说,这是一种切实可行的廉价微调方式,不过需要的运算量仍然较大(作者表示他们在 8 个 80GB A100 上微调了 3 个小时)。而且,Alpaca 的种子任务都是英语,收集的数据也都是英文,因此训练出来的模型未对中文优化。为了进一步降低微调成本,另一位来自斯坦福的研究者 —— Eric J. Wang 使用 LoRA(low-rank adaptation)技术复现了 Alpaca 的结果。具体来说,Eric J. Wang 使用一块 RTX 4090 显卡,只用 5 个小时就训练了一个和 Alpaca 水平相当的模型,将这类模型对算力的需求降到了消费级。而且,该模型可以在树莓派上运行(用于研究)。
LoRA 的技术原理。LoRA 的思想是在原始 PLM 旁边增加一个旁路,做一个降维再升维的操作,来模拟所谓的 intrinsic rank。训练的时候固定 PLM 的参数,只训练降维矩阵 A 与升维矩阵 B。而模型的输入输出维度不变,输出时将 BA 与 PLM 的参数叠加。用随机高斯分布初始化 A,用 0 矩阵初始化 B,保证训练的开始此旁路矩阵依然是 0 矩阵(引自:https://finisky.github.io/lora/)。LoRA 的最大优势是速度更快,使用的内存更少,因此可以在消费级硬件上运行。Eric J. Wang 发布的 Alpaca-LoRA 项目。项目地址:https://github.com/tloen/alpaca-lora
对于想要训练自己的类 ChatGPT 模型(包括中文版类 ChatGPT)但又没有顶级算力资源配置的研究者来说,这无疑是一大惊喜。因此,在 Alpaca-LoRA 项目问世后,围绕该项目的教程和训练成果不断涌现,本文将介绍其中的几个。
如何使用 Alpaca-LoRA 微调 LLaMA
在 Alpaca-LoRA 项目中,作者提到,为了廉价高效地进行微调,他们使用了 Hugging Face 的 PEFT。PEFT 是一个库(LoRA 是其支持的技术之一),可以让你使用各种基于 Transformer 的语言模型并使用 LoRA 对其进行微调。好处在于,它允许你在一般的硬件上廉价而有效地微调模型,并有较小的(也许是可组合的)输出。
在近期的一篇博客中,几位研究者介绍了如何使用 Alpaca-LoRA 来微调 LLaMA。
使用 Alpaca-LoRA 之前,需要具备一些先决条件。首先是 GPU 的选择,得益于 LoRA,现在你可以在 NVIDIA T4 这样低规格 GPU 或 4090 消费级 GPU 上完成微调;此外,你还需要申请 LLaMA 权重,因为其权重并不对外公开。
先决条件具备了,接下来就是如何使用 Alpaca-LoRA。首选你需要克隆 Alpaca-LoRA 存储库,代码如下:
git clone https://github.com/daanelson/alpaca-loracd alpaca-lora
unconverted-weights ├── 7B │ ├── checklist.chk │ ├── consolidated.00.pth │ └── params.json ├── tokenizer.model └── tokenizer_checklist.chk
权重存储好后,接着使用以下命令将 PyTorch checkpoint 的权重转换为 transformer 兼容的格式:
cog run python -m transformers.models.llama.convert_llama_weights_to_hf --input_dir unconverted-weights --model_size 7B --output_dir weights
得到最终的目录结构应该是这样的:
weights ├── llama-7b └── tokenizermdki
处理好上述两步,来到第三步,安装 Cog:
sudo curl -o /usr/local/bin/cog -L "https://github.com/replicate/cog/releases/latest/download/cog_$ ( uname -s ) _$ ( uname -m ) "sudo chmod +x /usr/local/bin/cog
第四步来到微调模型,默认情况下,微调脚本上配置的 GPU 功能较弱,但如果你有性能更好的 GPU,则可以在 finetune.py 中将 MICRO_BATCH_SIZE 增加到 32 或 64。此外,如果你有指令调优数据集,则可以在 finetune.py 中编辑 DATA_PATH 以指向自己的数据集。需要注意的是这一项操作应该确保数据格式与 alpaca_data_cleaned.json 相同。接下来运行微调脚本:
cog run python finetune.py
微调过程在 40GB A100 GPU 上花费 3.5 小时,对于处理能力较低的 GPU 则需要更多时间。
最后一步用 Cog 运行模型:
$ cog predict -i prompt="Tell me something about alpacas."Alpacas are domesticated animals from South America. They are closely related to llamas and guanacos and have a long, dense, woolly fleece that is used to make textiles. They are herd animals and live in small groups in the Andes mountains. They have a wide variety of sounds, including whistles, snorts, and barks. They are intelligent and social animals and can be trained to perform certain tasks.
教程作者表示,在完成以上步骤之后,大家可以继续尝试各种玩法,包括但不限于:
带上你自己的数据集,微调你自己的 LoRA,比如微调 LLaMA,让它像动漫角色一样说话。参见:https://replicate.com/blog/fine-tune-llama-to-speak-like-homer-simpson
将模型部署到云平台上;
结合其他 LoRA,比如 Stable Diffusion LoRA,把这些都用到图像领域;
使用 Alpaca 数据集(或其他数据集)微调更大的 LLaMA 模型,并查看它们的表现。这应该可以通过 PEFT 和 LoRA 实现,尽管它需要更大的 GPU。
Alpaca-LoRA 的衍生项目
尽管 Alpaca 性能可以媲美 GPT 3.5,但其种子任务都是英语,收集的数据也都是英文,因此训练出来的模型对中文并不友好。为了提升对话模型在中文上的效果,我们看看都有哪些比较好的项目。
首先是来自华中师范大学、商汤科技等机构开源的中文语言模型骆驼 ( Luotuo ) ,该项目基于 LLaMA、Stanford Alpaca、Alpaca LoRA、Japanese-Alpaca-LoRA 等完成,单卡就能完成训练部署。有意思的是,他们之所以将模型名字命名为骆驼,是因为 LLaMA(大羊驼)和 alpaca(羊驼)都属于偶蹄目 - 骆驼科。这样看来,起这个名字也在意料之中。
这个模型是在 Meta 开源的 LLaMA 基础上,参考 Alpaca 和 Alpaca-LoRA 两个项目,对中文进行了训练。
项目地址:https://github.com/LC1332/Chinese-alpaca-lora目前该项目释放了两个模型 luotuo-lora-7b-0.1、luotuo-lora-7b-0.3,还有一个模型在计划中:
下面是效果展示:不过 luotuo-lora-7b-0.1(0.1)、luotuo-lora-7b-0.3(0.3)还是有差距的,在用户询问华中师范大学地址时,0.1 回答错误:除了进行简单的对话外,还有人在保险相关领域进行了模型优化。据这位推特网友表示,借助 Alpaca-LoRA 项目,他输入了一些中文保险问答数据,最后效果也不错。具体来说,作者训练中文版 Alpaca LoRa 用了 3K 多条中文问答保险语料,实现过程使用了 LoRa 方法,并微调 Alpaca 7B 模型,耗时 240 分钟,最终 Loss 0.87 。
图源:https://twitter.com/nash_su/status/1639273900222586882以下是训练过程和结果:
测试结果表明:1. 训练语料相关内容都能有大概合理的回复,但仅限于不胡说 2. 非语料相关内容则会强行回复某个语料内的数据 3. 逻辑推理数学计算则没有这个能力。看到这个结果后网友纷纷喊要失业了:最后期待更多的中文对话模型加入进来。参考链接:https://replicate.com/blog/fine-tune-alpaca-with-lora?continueFlag=4ecae39885197a5c008faabbefb5c824
探寻隐私计算最新行业技术,「首届隐语开源社区开放日」报名启程
春暖花开之际,诚邀广大技术开发者 & 产业用户相聚活动现场,体验数智时代的隐私计算生态建设之旅,一站构建隐私计算产业体系知识:
隐私计算领域焦点之性
分布式计算系统的短板与升级策略
隐私计算跨平台互联互通
隐语开源框架金融行业实战经验
3 月 29 日,北京 · 798 机遇空间,隐语开源社区开放日,期待线下面基。
标签:

进入了发展快车道 冷链行业市场规模正在快速膨胀
2022-03-21

行业正站在风口 数字化时代在为传统的自行车产业赋能
2022-03-21

以做强实体经济支撑为重点 成都单个项目年度计划投资同比提升
2022-03-21

拥有多个国际赛事的直播版权 广州游戏电竞企业业绩向好
2022-03-21

投诉量激增 直播带货存在这么多问题的主要原因是什么?
2022-03-21

工作专班深入到各企业 春寒料峭挡不住松原市施工热情
2022-03-21

引导企业向提供“产品+服务”转变 湖南加快智能农机服务化转型
2022-03-21

创新平台建设和科技成果转化 德州加大力度重奖创新
2022-03-21

潜在风险进一步放大 商品房现房销售已是大势所趋
2022-03-21

有序复工复产 1—2月份工业经济发展新动能持续增强
2022-03-21
进入了发展快车道 冷链行业市场规模正在快速膨胀
行业正站在风口 数字化时代在为传统的自行车产业赋能
以做强实体经济支撑为重点 成都单个项目年度计划投资同比提升
拥有多个国际赛事的直播版权 广州游戏电竞企业业绩向好
投诉量激增 直播带货存在这么多问题的主要原因是什么?
工作专班深入到各企业 春寒料峭挡不住松原市施工热情
引导企业向提供“产品+服务”转变 湖南加快智能农机服务化转型
创新平台建设和科技成果转化 德州加大力度重奖创新
潜在风险进一步放大 商品房现房销售已是大势所趋
有序复工复产 1—2月份工业经济发展新动能持续增强
多层次高频调度 1至2月河北省工业运行先行指标稳中有增
以车路协同为基础 智能交通推动城市交通绿色高质量发展
人才短板成为制约产业链高质量发展的关键节点
通过技术手段整合调配供给资源 家政行业不断提质扩容
强化产业链深层次合作 加强重大装备国产化“一条龙”模式构建
如何进一步提升纳税人缴费人的减税降费获得感?
探索建设大数据及网络安全示范试点城市有哪些积极意义?
对制造业中小微企业实施缓缴税费政策有哪些积极意义?
进一步增强自我保护意识 消费者需注意辨别谨慎消费
将“走出去”变“请进来” 西安贸易产业转移承接作用不断得到增强
厦门应如何融入“数字中国”的重大战略发展大局?
江苏省如何不断满足老人日益增长的养老服务需求?
建设一体化的职业健康信息管理平台 天津职业人群保障加强
潜力持续释放 1—2月乡村消费品市场恢复略好于城镇
直接对接社会化服务 楼宇调解室将整体提升青岛劳动争议水平
成功化解纠纷11.47万件 银保监会服务质量日趋提高
春雷响百虫出 惊蛰文化在其他方面有了进一步发展
青绿山水画在古代山水画发展史上有着怎样的影响与地位?
开播即爆款 “文化类节目收视率低”这一固有印象被推翻


- 涵盖了109件真迹作品 凯斯·哈林展览将持续至6月13日
- 带有一点自信的自嘲 “隔路”是另一种味道的“凡尔赛”
- 与文渊阁前后呼应 “何以中国”特展隆重致敬文化大成
- 严重者可造成暂时性失明 享受冰雪运动要注意眼睛的健康防护
- 种类繁多让人眼花缭乱 选购牛奶时需要重点关注什么?
- 网课让孩子感到不安焦虑怎么办?八问八答回应广大家长关切
- 循环系统很容易受到刺激 “倒春寒”期间老人该如何做?
- 青少年患者睡眠问题日趋增加 9条建议为孩子助眠
- 我国肥胖人群正逐年递增 不良饮食习惯是重要诱因
- 如何减少噪声对听力的损伤?这份耳部和听力保健小贴士请收好
- 强化住房限购措施 西安限购限售范围进一步扩大
- 多种方式增加供给 进一步降低新市民和青年人的居住成本
- 预计9月下旬海口可实现安居房申请网上办理
- 政策调控力度持续升级 8月百城二手房市场均价止涨转跌
- 8月中国新房找房热度依然保持平稳 环比微涨0.2%
- 进一步加强商品房销售价格备案管理 今年全国楼市调控刷新历史纪录
- 西安第二批集中供地中28宗为现场拍卖方式出让
- 细分化需求得到释放 房屋居住的属性越发凸显
- 佛山顺德龙江近日挂牌商住地起拍价约19.88亿元
- 青岛市4宗地竞品质抽签结果出炉 地溢价均约15%
- 坚持政策支持、多方参与 浙江版保障性租赁住房明确新增比例目标
- 简化审批流程 武汉将实现房源申请配租全程网上办
- 哈尔滨新增本土确诊病例3例 活动轨迹公布
- 哈尔滨市公布3例新增本土新冠肺炎确诊病例活动轨迹
- 山东深耕文化资源 推动旅游业高质量发展
- 今年新增952件(套)!南京大屠杀再添新证
- 四川非遗传承人张雄志:巧手捏面塑 指尖传非遗
- 10月以来我国寒潮为何如此频繁?中国气象局回应
- 56位残疾人士登上黄山 互利互勉共建生活希望
- 安徽潜山两车相撞 已致8人死亡3人受伤
- 上海洋山海关首次在出口货运渠道查获夹带卷烟
- 山西忻州古城:一城风华延续千年历史文脉
- 呼伦贝尔新巴尔虎右旗公布1例无症状感染者行动轨迹
- 新增“53+1” 内蒙古累计本土确诊病例增至185例
- 昆明公安打击破坏生物多样性犯罪 抓获130名涉案嫌疑人
- 山西朔州“11·11”较大透水事故调查报告发布 对38人问责处理
- “海关国门小卫士”竞争上岗 淘汰率接近一半
- 深圳摧毁特大品牌化妆品走私网
- 28人被问责!山西石港煤业“3·25”事故调查报告公布
- 湖南韶山以河长制带动全民治水 让每一处水面“长治久清”
- 上海市奉贤区人大常委会原党组书记袁晓林被“双开”
- 民进会员谈反映社情民意信息工作:心怀大我 敢讲实情
- 80岁“留守”奶奶短视频诉孤独 千万网友心疼:我们陪您唠嗑
- 40年来为子弟兵送出1.3万余双布鞋和鞋垫的“布鞋奶奶”走了
- 当男幼师是什么体验?他们说:有委屈尴尬 但大部分是幸福
- 庐阳警方通报幼童坠亡事件:嫌疑人已被刑拘
- 内蒙古新增本土确诊病例53例、本土无症状感染者1例
- 哈尔滨市启动部分地区第一轮全员核酸检测
- 四川通江发生两车相撞事故 致3人死亡
- 11月谣言在“身边”,别信这些无稽之谈