添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
首发于 谐门武学

Alpaca-Lora:训练你自己的ChatGPT

最近在测试开源chatgpt方案的时候发现了这个alpace-lora, 确实是行。简单来说就是仍旧使用alpaca那套训练数据,仍旧基于LLaMA 7B, 但是把训练方式改成用lora训练,我测试下来V100上3个epoch(1000+ step)大概需要8个小时左右,就可以达到和alpaca差不多的效果。(但其实并不用训这么多步,感觉其实1个epoch就够用)

原仓库作者是在4090上面训的,显存也够。

仓库地址:

简易流程

可以直接看git上的文档,这里简单写下

克隆仓库

git clone <https://github.com/tloen/alpaca-lora.git>

安装依赖

pip install -r requirements.txt

训练

python finetune.py

模型默认输出在“lora-alpaca”文件夹下,可以自己改这行的路径

model.save_pretrained("lora-alpaca")

推断

python inference.py

运行这个脚本会启动一个gradio服务,作者本意是让使用者在gradio网页上进行测试,不喜欢也可以自己改回脚本测

另外要用自己训过的模型的话注意将下面这行改成模型输出路径

LORA_WEIGHTS = "tloen/alpaca-lora-7b"

数据

训练使用的数据默认在alpaca_data_cleaned.json中, 这是作者针对alpaca原始数据做了一些清洗之后的数据集,可以根据自己需要再构建新的。原始数据再alpaca_data.json

一些想法

目前我正在基于这个仓库的效果做这些实验:

  • 修改alpaca_data_cleaned, 抹除部分对话规制
  • 修改基础的LLaMA模型为其他开源语言模型来规避商业使用规制,例如gpt-neo、gpt-j等 (更新:社区已经有基于Bloom的版本了)
  • Alpaca其实有一定的中文理解能力,考虑是否能做少量修改后再训练,使其具备中文对话能力(更新: 社区已经有人做中文版本了)

其他的开源方案我其实也在看:ChatGLM天生有中文,但是没给数据集和训练代码,后面可以看看能不能复现。

openchatkit试了觉得效果不好,目前来看还是alpaca这一系测起来最方便。

多说两句,LoRA这个东西大家玩stable diffusion的一定都很熟悉,我之前看了它的论文感觉也确实很有实力。本来打算这周写下它的论文笔记的,结果光顾着玩了。这个alpaca-lora里面用到的HuggingFace新出的peft这个包就是加入了lora的成分,让大家可以在训练transformer的时候更容易的应用lora。证明社区对这个技术的未来还是十分看好的,可以大力学习一个.


更新一下刚看到社区已经有人做中文的lora并开源了,我还没来得及测,需要的朋友可以自行尝试一下

这是基于Alpaca-lora加上中文语料训练的

这是基于BLOOMZ 7B,用alpaca-lora的方法,加上中文语料训练的.

编辑于 2023-03-22 20:23 ・IP 属地新加坡

文章被以下专栏收录