SambaNova和Together这2家公司于2023.05.19开源了可商用的支持多语言的微调模型BLOOMChat。
SambaNova这家公司专注于为企业和政府提供生成式AI平台,Together专注于用开源的方式打造一站式的foundation model,赋能各个行业。
OpenAI的GPT-4和Google的PaLM2对多语言的支持已经做得很不错了,但这两者都是闭源的,而开源的大语言模型主要有以下痛点无法解决:
国内很多企业和公司也在调研如何基于开源模型进行微调,打造一个支持中文的大语言模型,应用到自己的业务场景里。
由BigScience开源的Bloom基座模型是很多互联网公司的首选,因为这个模型可商用,支持包括中文在内的46种语言,而且模型参数够多,有1760亿参数。
有些公司就是直接拿基于Bloom做过微调后的Bloomz模型,来进一步微调,打造一个垂直领域的LLM。
SambaNova和Together联合开源的BLOOMChat,其目的就是打造一个开源的、支持多语言、可商用的聊天LLM,实验表明BLOOMChat对多语言的支持明显优于其它开源模型。
BLOOMChat是在SambaNova提供的AI计算平台RDUs(Reconfigurable Dataflow Units)上进行训练的。
由各个语言的native speaker来评测模型的回答效果。
对于英语、中文、法语、阿拉伯语、西班牙语、印度语这6种语言的回答效果,相比于GPT-4的54.75%胜率,BLOOMChat获得了45.25%的胜率,弱于GPT-4。
但是,与其它主流的开源聊天LLM相比,它有66%的时间表现更优。
在WMT翻译任务中同样表现出色,领先于其它基于BLOOM的微调模型和其它主流开源聊天模型。
BLOOMChat的思路来源于先前工作的启发,即在一个语言中进行指令微调可以提升多语言模型在另一种语言中的效果表现,BLOOMChat使用了包括OpenChatKit的OIG、Dolly 2.0和OASST1数据集在内的以英语为主的对话数据集来进行BLOOM(176B)的模型微调。
尽管只在英语数据集上进行了微调,作者观察到BLOOMChat在非英语场景下的聊天质量也得到了显著提高。
BLOOMChat微调的指令数据有2类。
整个微调是在SambaNova公司的RDU(Reconfigurable Dataflow Units) AI平台进行,基座模型是BLOOM-176B。
微调分2步进行:
所有数据集相关的数据和代码、微调和推理的脚本都免费开源在GitHub上,开源地址参考文末链接。
BLOOMChat团队做了3种不同场景的实验测评,评测了英语、中文、阿拉伯语、法语、西班牙语和印度语。
以OpenAssistant Conversations[1]里的22个英文问题作为基准,让其它语言的native speaker把这22个英文问题翻译为其它语言,然后找另外的native speaker来评价模型给出的回答。
评测了以下3种开源模型:
看上图就知道,BLOOMChat明显优于其它几个开源模型。
和GPT-4相比,还是略逊一筹,GPT-4在评测记录中,55%的评测记录是优于BLOOMChat的。
对BLOOMChat的回答数据,让native speaker进行评测。
上图可以看出,尽管只在英语数据集上进行了微调,但是对于每个语言的回答,超过70%都是正确或者可接受的。
对比了多个开源模型在WMT翻译任务上的表现,总体而言,BLOOMChat优于其它开源模型,但是明显弱于GPT-4。
与大多数聊天语言模型(LLM)一样,BLOOMChat也有一些局限性:
BLOOMChat是第一个完全开源、参数超千亿、专门针对多语言支持的聊天LLM。
文章和示例代码开源在GitHub: GPT实战教程[5],可以看到所有主流的开源LLM。
公众号:coding进阶。关注公众号可以获取最新GPT实战内容。
个人网站:Jincheng's Blog[6]。
知乎:无忌[7]。
[1]
OpenAssistant Conversations: https://arxiv.org/pdf/2304.07327.pdf
[2]
OpenAssistant-30B: https://huggingface.co/OpenAssistant/oasst-sft-7-llama-30b-xor
[3]
LLaMA-Adapter-V2-65B: https://github.com/ZrrSkywalker/LLaMA-Adapter/tree/main/llama_adapter_v2_chat65b
[4]
BLOOMZ (176B): https://huggingface.co/bigscience/bloomz
[5]
GPT实战教程: https://github.com/jincheng9/gpt-tutorial
[6]
Jincheng's Blog: https://jincheng9.github.io/
[7]