大语言模型是如何训练出来的?
近期听了不少与AI相关的播客,有理想转型AI的分享,有Character.ai出来同事的分享等,结合对Transformer架构的理解尝试大致还原大语言模型的训练过程。不过,当我这样的“中国大妈”也能够大致琢磨明白大语言模型是如何训练出来的时候,大语言模型的神话大概见顶了吧。^-^当然,与底座大模型相比,基于大语言模型的应用前景更为广阔。
1. 语料集,李想提到理想做LLM底座模型用的都是公开语料集,合理推测比如Kaggle上、各家提供框架的公司(TensorFlow、PyTorch、PaddlePaddle等)都开放了不少语料集,比如raw.githubusercontent.com/karpathy/char-rnn/master/data/tinyshakespeare/input.txt就有莎士比亚所有文章的内容。仔细研究应该能够整理出所有可用的公开语料集。
2. 对数据做进一步处理并基于Transfomer模型(编码器、解码器、注意力机制)进行大模型预训练。
3. 因为是基于概率的模型,预训练出来的大语言模型一般不能够满足用户像文心一言、ChatGPT对话的体验,比如用户如果输入“今天星期几”,按照概率大语言模型应该输出的是“?”,但显然这并不符合用户的期望。要基于高质量的预料来对预训练出来的模型进行微调或者说后训练。
4. 后训练的方法应该有不少技巧,一种朴素的思路是将处理好的高质量语料对预训练大模型神经网络的较高层的节点参数进行重新训练以优化模型。高质量语料需要搜集,也有专门的公司负责清洗和销售,OpenAI之前传出的是在肯尼亚有数千人帮助标注预料应该就是在准备高质量语料。
5. 如果要达到文心一言和ChatGPT的水平还需要进一步优化,一种优化是根据用户的输入调用多个模型同时协同合作,最基本的比如用户上传一张图片先调用OCR模型识别文字后再调用大语言模型进行处理。另一种优化是通过编程来进行提示词优化、加入更多的Context信息(比如用户问今天有什么大事发生,聊天机器人先调用网络搜索来汇总信息后再通过大语言模型输出)。
6. 大语言模型进一步优化的空间一个是原始的训练语料上有优化空间。现在的说法是所谓互联网的数据已经用完了,这个说法不准确,互联网每天会产生EB级别的数据,大语言模型训练级别估计在PB级别,不可能用完互联网数据。大语言模型使用的语料合理猜测包括所有的人类书本数据、所有GitHub等代码库的代码数据、Facebook等社交媒体上的带用户反馈(喜欢、踩)标注的数据、新闻网站数据、博客数据、论文数据等。企业内部的数据肯定拿不到,加了限制爬取的数据大概率也拿不到,网站放到历史库的数据大多也拿不到,社交媒体、新闻网站、博客等等数据拿的很可能也不全,所以如何在原始语料上进行优化肯定是有空间。
7. 大语言模型另外优化的空间还有强化学习、多模态等。