AI 文摘

2024年大模型还有哪些可研究的方向(SFT篇)





作者: 吃果冻不吐果冻皮 来源: 吃果冻不吐果冻皮

**【点击】加入大模型技术交流群**

原文:https://www.zhihu.com/question/637595961/answer/3437052990
AGI的本质还是期待能获得一个无所不能的大语言模型,在这一年里我也是在这个领域探索和成长。在真实的环境中发现持续提升大模型的效果并不是一件很简单的事情,其中有很多关键的挑战和值得持续研究的方向,在此给大家分享一下。

2024年大模型还有哪些可研究的方向(预训练篇)

接上一篇,本篇会列举对齐策略中SFT比较值得研究的方向和需要解决的问题。先给一个粗浅的认识,其实SFT可能是整个LLM流程中最容易做的过程,或者说是难度和收益都比较低的一个过程。尽管OpenAI建议大家只做SFT去微调模型,以及大量的公司focus在SFT数据构建上,但我个人认为,SFT里可能只起一个指令遵循的作用。除此之外,无论是知识蒸馏还是提升LLM效果都不该期待在SFT中完成。这个认知大概也是我个人在实践一年大模型效果优化中形成的。Anyway,其实SFT做指令遵循依然有很多具有挑战的问题和值得继续研究的方向。

####SFT部分

####How to construct a suitable SFT data for a specific pretrained language model ?

13. 如何选择合适的query来构造SFT数据。 假设你有一个query数据集合**,** 选择合适的query作为sft的prompt现在是SFT方向的主要工作。这个类型工作的开山鼻祖是LIMA [1],他们通过质量diversity 选择1k query集合,beat了万级别的query集合。后续有一些延续的工作。比如:

  • Embedding based method:Self-Evolved Diverse Data Sampling for Efficient Instruction Tuning [2]. 阿里的这篇论文主要从query的diversity出发,从一个子集合慢慢扩展开来到一个大query集合。他们主要靠模型内部embedding表示的距离衡量query的diversity。对于embedding based method,我个人觉得未来主要研究方向应该集中在挑选更能表示模型内部对prompt的表征的embedding,如何加入answer的embedding表征,以及如何找出更高效的挑选方法。

  • Tag based method:InsTag [3] 利用给不同的query打tag,然后从动词维度和名词维度对query数据去重。这个工作的好处就是可解释性很强,但缺点是如何收集tag,打tag以及tag的准确性问题很难保证。Instag这个工作也是focus在query的diversity。我个人觉得未来主要研究方向应该集中在Tag打标工具更能和模型本身能力结合,以及如何调整不同Tag下prompt的分布来提升模型的效果。

  • Complexity based method:对于同义的query,其实并不一定要进行语义去重,可以通过升级query complexity的方式来提升query的diversity。比较著名的是 Wizard LM[4],利用5种prompt从不同维度来升级query的complexity。但是一味对难度的升级并不能提升query的语义覆盖度,其次过高的complexity的query,如果模型pretrain本身的能力不够,反而会损害sft后模型的效果。升级难度的这一系列工作,未来的方向可能是根据模型的能力对于特定的query进行难度升级,而不是全部升级。

14. 如何为选定的query获取合适的answer? 假设已经选择好合适的query集合,如何获取相应的answer来建立合适的sft数据集。现阶段比较多的方法有三类:

  • 人工改写pretrain生成的续写结果,这个应该是原始open-ai使用的方式,但这种方式需要人工很多,现在使用的人比较少。

  • 利用GPT4生成结果,这个是现在比较多的公开dataset使用的方式,比如Wizard LM [4]等,这个方向主要研究方向还是如何提升GPT4的生成质量,来保证sft结果的正确性? 例如 Self Repair等工作 [5]。

  • 利用一些生产环境筛选pretrain生成的续写结果,这个是code,math类型sft数据的筛选方法。Code llama[6]就是采用这个方式筛选sft数据的。这个方法的未来发展方向,是如何建立多种多样的生产环境(或者global rm model 或者是更强的world model)来筛选数据。

15. 如何在公开数据的sft dataset的筛选合适模型的sft数据。

毕竟获取query和answer是一个成本极高的事情,那么如果可以从开源的一系列数据中筛选合适自己模型的sft数据会比较低成本。

Hybrid Method(混合了多种之前列举的指标和方法。) :例如 What MakeGood Data* forAlignment ? A Comprehensive Study ofAutomatic Data Selection in Instruction Tuning [7] 文章,从complexity,diversity和quality三个方向对sft数据建模,训练了多个模型对各个指标维度进行分别衡量。我觉得混合式方法一定是最终会采取的方式,那么如何高效得混合策略,将是混合方法的一个方向。 因为过复杂过重的数据筛选方式不适合实际场景。

*利用sft model和pretrain model的关系筛选模型的sft数据。 因为pretrain model和sft model我们是可以获得的,那么利用sft model和 pretrain model中prompt下answer的概率变化是可以直接建模出来的(贝叶斯学派)。那么通过这个建模可以更好的筛选sft数据,比如IFD [8] 方法。那么更好地建模pretrain model,sft data 和 sft model的关系,然后通过这个建模筛选sft data,也是一个值得研究的方向。

####How to efficiently do supervised fine-tuning ?

16. 如何混合不同的SFT数据?

  • 不同方向的sft数据混合:对于理科和文科的SFT数据混合是一个比较特殊的方向,由于第一版本的chatgpt是在codex基础上继续训练的,所以对于理科文科sft是否也应该先训理科后训文科,还是应该混合训一直是个疑问。对于这个问题已有的paper是来自于千问团队的 HOW ABILITIES IN LARGE LANGUAGE MODELS ARE AFFECTED BY SUPERVISED FINE-TUNING DATA COMPOSITION [9],他们提出数学和代码应该先训,然后在训通用sft数据的时候再加少量代码和数学的sft数据。但由于他们的base model是Llama2,其本身的数学和代码能力就不太好,所以可能结果也不solid。因此不同方向的sft数据混合仍应该继续研究

  • 不同sft数据集合的配比问题:SFT数据集以及pretrain数据集的配比问题一直有researcher在研究,但现在的pretrain数据配比过于精细化的配比也许会过于拟合benchmark。尽管sft数据配比也有此问题,但sft方向至少有一个值得研究的问题,就是难易数据的配比问题 。其中比较著名的sft数据配比的paper是skill-it [10],通过skill建模评估数据集,通过模型loss来确定各个阶段对eval数据中skill的学习情况,然后确定最终sft数据配比。但整个过程建模有些繁琐,在过大的模型,过复杂的eval set上不太实用。所以,怎么在大模型上高效地解决sft数据配比问题是一个值得研究的方向

*不同类型sft数据的互相促进关系? 尽管有很多说法,code,math会提升模型整体的推理能力。但是并没有一篇论文完整地讨论各个方向sft数据互相之间的促进减弱关系 ,因此这是一个很值得深入研究的方向。

17. 如何做SFT packing,以及不同SFT packing对模型的效果的影响?

这个方向其实看到的论文非常少。虽然现阶段为了充分利用batchsize的token计算量,SFT数据会像pretrain 数据一样,pack在一起。一般比较简单的做法,就是暴力地连接在一起,多余的数据进行截断。比较精巧的方法是block diagonal attention [11]。总体而言,sft packing对整体sft后模型效果的影响,是值得研究的方向之一。

####How to design the format of sft data ?

18. 对于不同类型的数据,什么样的data format能够激发模型更好的泛化能力?

对于math的sft数据,COT data or (detailed scratchpad data) [12] 可以更好地激发模型的数学能力。但是其余关于代码,通用类的data format并没有很多细致地研究。那么如何设计合理的sft data format来激发模型各个方向对齐后的能力,是未来值得研究的方向之一。

参考

[1] Zhou C, Liu P, Xu P, et al. Lima: Less is more for alignment[J]. Advances in Neural Information Processing Systems, 2024, 36.

[2] Wu S, Lu K, Xu B, et al. Self-evolved diverse data sampling for efficient instruction tuning[J]. arXiv preprint arXiv:2311.08182, 2023.

[3] Lu K, Yuan H, Yuan Z, et al. # InsTag: Instruction Tagging for Analyzing Supervised Fine-tuning of Large Language Models[C]//The Twelfth International Conference on Learning Representations. 2023.

[4] Xu C, Sun Q, Zheng K, et al. Wizardlm: Empowering large language models to follow complex instructions[J]. arXiv preprint arXiv:2304.12244, 2023.

[5] Olausson T X, Inala J P, Wang C, et al. Demystifying gpt self-repair for code generation[J]. arXiv preprint arXiv:2306.09896, 2023.

[6] Roziere B, Gehring J, Gloeckle F, et al. Code llama: Open foundation models for code[J]. arXiv preprint arXiv:2308.12950, 2023.

[7] Liu W, Zeng W, He K, et al. What makes good data for alignment? a comprehensive study of automatic data selection in instruction tuning[J]. arXiv preprint arXiv:2312.15685, 2023.

[8] Li M, Zhang Y, Li Z, et al. From quantity to quality: Boosting llm performance with self-guided data selection for instruction tuning[J]. arXiv preprint arXiv:2308.12032, 2023.

[9] Dong G, Yuan H, Lu K, et al. How abilities in large language models are affected by supervised fine-tuning data composition[J]. arXiv preprint arXiv:2310.05492, 2023.

[10] Chen M, Roberts N, Bhatia K, et al. Skill-it! a data-driven skills framework for understanding and training language models[J]. Advances in Neural Information Processing Systems, 2024, 36.

[11] Qiu J, Ma H, Levy O, et al. Blockwise self-attention for long document understanding[J]. arXiv preprint arXiv:1911.02972, 2019.

[12] Lee N, Sreenivasan K, Lee J D, et al. Teaching arithmetic to small transformers[J]. arXiv preprint arXiv:2307.03381, 2023.

历史文章:2024年3月大模型文章集锦

更多AI工具,参考Github-AiBard123国内AiBard123

可关注我们的公众号:每天AI新工具