查看原文
其他

卷起来了!中文 LLaMA2 的一些工作

黄文灏 Founder Park 2023-09-17
本文作者:
黄文灏,北京大学博士,前智源研究院创新应用实验室负责人。
知乎原文链接:
https://zhuanlan.zhihu.com/p/647388816
LLaMA2 放出来以后,中文开源社区就开始了如火如荼的本地化工作。
LLaMA2 模型放出来当天就出现了一堆占坑的工作,点进去一看都是空 repo。不过好在大家效率极高,卷得飞起。这两天,把几个相关工作都玩了一下,整体来看都还是不错的。
LLaMA2 很强的英文基础能力,加上很少的中文数据和不友好的 tokenizer 给了做中文 SFT 和中文 continue pretraining 的同学们很大的机会,同时给 from scratch 训练的一些玩家会带来不小的挑战。
下面记录几个用过感觉还不错的工作。

Chinese-LLaMA2-7b from LinkSoul

github.com/LinkSoul-AI/Chinese-Llama-2-7b
和这个工作的几位作者很熟,也给他们打过不少 call。不过他们的手速还是震惊到我了。
当大家都在开 repo 占坑的时候,作者的千万数据 instruction tuning 就已经完成了,在 LLaMA2 开源当天其实就玩到了这个支持中文的 model,而且中文能力正经不错。
同时,团队非常落地,没有执着于刷榜和 pr,而是相继推出了非常实用的 docker 一键部署、4bit 量化、API 服务,用户社区也是非常积极,很多问题都能第一时间得到解答。
作者的主要贡献是通过 instruction tuning 的方法使模型具备了很好的指令跟随的能力,同时通过大量的中文指令数据的训练,模型的中文能力得到了很好的提高。
和 Alpaca,Vicuna 等工作不同,作者使用将近 1000w 条指令数据进行指令微调,将提高中文能力和指令微调两个任务统一完成。而且 1000w 条指令数据全部开源!稍微有点资源的人都可以用这样的方式去试一试。地址在:
huggingface.co/datasets/LinkSoul/instruction_merge_set
仔细查看开源指令数据集可以看到作者合并了大量开源的指令微调数据集,同时对格式做了很好的处理。而且仔细看代码,会发现作者用了 System Message 的方法进行微调。微调时中英数据集比例保持了差不多 1:1 的关系。这些细节上都可以看出作者对指令微调有很深的理解,工作做得非常细致,值得所有其他做指令微调的团队学习。
用 OpenCompass 简单测了一下 MMLU 和 CMMLU,整体表现还是 OK 的。

有点遗憾的是作者没有扩充中文词表并做 continue pre-training,所以没有很好地解决 LLaMA2 的中文 tokenizer 性能不佳的问题。
另外有一个值得思考的问题是,有没有可能通过指令微调的方式让模型增加知识,把中文最重要的知识通过指令的方式喂给模型。同时配上例如 Flan 这样的英文指令数据。模型可以用大量的指令微调数据同时进行知识学习和指令学习。COIG-PC 数据集里面基于各类中文 NLP 任务整理了几亿条指令数据,应该是可以完成这一任务的。
huggingface.co/datasets/BAAI/COIG-PC

Llama2-Chinese-7B from FlagAlpha

github.com/FlagAlpha/Llama2-Chinese
名字和第一个也太相似了,我好几次都傻傻分不清楚。
这个是 Github 上目前看 LLaMA2 汉化 star 最高的 repo,社区运营也做得非常出色。不过,看了一下整个 repo,大量都是 LLaMA2 原始模型下载和评测的内容,感觉像是个资源整合站,很多汉化工作的细节讲的不是很清楚。
这个工作最不一样的点就是做了 continue pretraining,而且用的数据也算是比较丰富的,应该是能够大幅提升模型的中文知识水平。
不过,作者没有介绍 continue pretraining 的时候有没有配相应的英文数据,中英数据的配比大概是多少,如果配比不佳的话很有可能影响模型的英文能力。同样遗憾的是作者做了 continue pretraining 却没有括词表,LLaMA2 原来的 tokenizer 对 1 个中文字大约是用 3 个 token 来表示,对输入的 context window 和输出的 output_length 都是很大的影响。
最后,有一个不是很明确的是,该工作的 PR 稿写的是用 200B token 从头预训练。我的理解是 continue pretraining,不知道是我理解有误还是表述不准确。
整体来说,能在 10 天左右的时间完成 13B 模型在 200B 数据上的 continue pretraing,同时维护一个十分活跃的社区是非常值得欣赏的一件事情。

Yayi from Wenge

github.com/wenge-research/YaYi
从介绍(介绍真的是少)来看,用了百万级领域指令微调数据,但只开放了 5w(差评)。
看了下评测,安全性有上升,但是 MMLU 下降了,估计是微调的时候没有第一个工作做得细致,可以学习一下。


Linly

https://github.com/CVI-SZU/Linlygithub.com/CVI-SZU/Linly
这个是一个老项目了。
相信玩 LLaMA 和 Falcon 汉化的应该都看过他们的工作。扩词表,中英增量预训练,中英指令微调,该做的都做了。从评测上看,英文能力保持的还不错,中文能力还是有显著提升的,LLaMA2 也比 LLaMA 和 Falcon 有了一些提升。这个路径是最稳妥的路径,但是个人感觉数据配比上中文还是过多了点(准确地说是英文配的太少了),可能再调调会有更好的结果。


对未来的期待

其实对 LLaMA2 的汉化本来就没有抱太大期。不过,大家卷的速度的确让我很惊讶。而且还是有一些有趣的事情的。比如:
  • 已知 LLaMA2 对于 from scratch 做中文大模型的像 ChatGLM,Baichuan,Intern-LM 没什么多大提升。对于做 continue pretraining 和 instruction tuning 的同学,LLaMA2 给了大家一个不错的基座,对大家有不少的提升。很好奇,两者能不能做到很接近。
  • 以及前面提到的很想看看有没有可能通过超大规模的指令微调补充中文知识,我的理解只要补充知识类的就可以,中文 cc 可能都不是很必须。
  • 7B 和 13B 的看烦了,谁能做个 70B 的汉化,看看涌现的翻译能力对汉化的影响到底怎样。


如果你关注大模型领域,欢迎扫码加入我们的大模型交流群,来一起探讨大模型时代的共识和认知,跟上大模型时代的这股浪潮。



更多阅读
无法想象全闭源的世界:AGI 大会上的开源讨论

周鸿祎的大模型产品方法论:企业的5个痛点和垂直大模型的6个趋势

傅盛的AI-Native创业思考:所有创业者都要相信,这就是最好的时代

百川智能王小川:大模型创业100天,我确认找到了属于我的「无人区」
深度解读AI Agents:OpenAI研究多年,可能会改变互联网的软件终极形态
分享一篇10年前刷屏的文章:《创业的心理代价》
创业者深度解读苹果Vision Pro,XR行业的未来在哪里?
闭门交流纪要:大模型在机器人领域的应用探讨

转载原创文章请添加微信:geekparker

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存