本文主要是介绍复旦 北大 | 从头训练中文大模型:CT-LLM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
引言
当前,绝大多数大模型(LLMs)基本上都是以英文语料库训练得到的,然后经过SFT来匹配不同的语种。然而,今天给大家分享的这篇文章旨在从头开始训练中文大模型,在训练过程中「主要纳入中文文本数据」,最终作者得到了一个2B规模的中文Tin LLM (CT-LLM) 。结果表明,该模型在中文任务上表现出色,且通过SFT也能很好的支持英文。
https://arxiv.org/pdf/2404.04167.pdf
背景介绍
随着人工智能的快速发展,当前大模型(LLMs)已然成为了自然语言处理的基石,它们在理解、文本生成、推理等方面展现出了杰出的能力。然而,当前的主流模型大都基于英文数据集训练得到了,并以设定了很多评估基准,尽管有研究表明,大模型在多语言上面具有一定的泛化能力,但对于英文的重视会掩盖语言固有的多样性,这也将会限制LLM的使用和创新性发展。目前,关于非英语大模型的探索仍然是一个未知的领域。
「泛化不确定性」 随着对于精通双语或多语功能的模型的需求日益增长,特别是能够适应中文语言应用的模型。为满足这种需求,人们已经采取了多种策略来增强LLMs的多语言能力,特别强调在预训练阶段加入更高比例的中文Token,或者采用监督式微调(SFT)等技术来激活大模型的中文语言功能。ChatGLM是一个早期的例子,它在预训练阶段采用了中文和英文Token的等量分布,最终形成了一个精通双语的模型。尽管如此,以中文为基础训练的LLM进行多语言泛化仍然具有不确定性。
「中文数据集缺乏」 预训练数据对于开发语言模型至关重要,它为模型学习和理解人类语言提供了基础。尽管大量的英语数据显著推动了英语大型语言模型(LLMs)的发展,但中文预训练数据的情况却呈现出巨大潜力与显著缺乏的对比。尽管中文互联网上有大量的数据可用,但中文预训练数据集相对较少,这引起了对多样性和质量的担忧。总之,现有的预训练数据集要么在数量上缺乏,要么在质量上有所妥协,这强调了探索以中文为中心的大模型预训练的重要性。这样的探索对于理解当代中文语言数据的特点和中文语言的识别应用至关重要。
基于以上考虑,「本文作者挑战以英语为中心的主流模型训练范式,考虑以中文为基础的预训练模型是否可以激活对其它语言的能力」。以中文为中心的方法如果成功,可能会显著推动语言技术的民主化,为创造反映全球语言多样性的包容性模型提供洞见。
CT-LLM预训练
CT-LLM(Chinese Tiny LLM)的预训练是非常重要的一步,它为模型提供了理解和处理中文文本的基础。
「数据准备」 作者收集了1254.68亿个token,其中包括840.48亿个中文token、314.88亿个英文token和99.3亿个代码token。这些数据来源于多样化的渠道,如Common Crawl的网络文档、学术论文、百科全书和书籍等。通过精心设计的启发式规则,对数据进行了过滤和去重,以确保数据集的质量和多样性。数据处理过程如下所示:
「模型架构」 CT-LLM的架构基于Transformer解码器,模型的关键参数设置如下所示:
为了提高模型的性能,作者采用了多头注意力机制,并引入了RoPE(Rotary Positional Embeddings)嵌入来替代绝对位置嵌入,同时在各层之间共享嵌入,以减少模型大小。此外,模型使用了SwiGLU激活函数和RMSNorm归一化处理,这些都是为了优化模型的训练和性能。
「预训练」 模型在4096个token的上下文长度上进行训练,这有助于模型捕捉长距离依赖关系。为了有效地处理大量的数据,CT-LLM使用了baichuan2分词器进行数据token化,该分词器利用SentencePiece的字节对编码(BPE)方法,并特别设计了对数字的编码方式,以增强对数值数据的处理能力。
CT-LLM微调
微调过程不仅增强了模型的语言理解能力,还通过直接从人类偏好中学习,提高了模型的实用性和安全性。
「监督微调」 为了进行监督式微调,研究者们使用了包括中文和英文数据的多种数据集。中文数据集包括CQIA、OL-CC以及从COIG-PC中采样的高质量数据。英文数据则来自OpenHermesPreferences数据集。
除此之外,根据中文数据的体量,英文数据的比例进行了调整,比例设置为1:1、2:1、4:1和8:1,同时还有只包含中文数据和只包含英文数据的配置。这样的多样性比例旨在模拟不同语言环境下的实际应用场景。
「DPO」 采用了直接偏好优化(DPO)技术,通过比较响应对的排名直接从人类偏好中学习。偏好数据集包括公开可用的数据集和LLM生成的合成数据。为了构建更高质量的偏好数据集,研究者们采用了alpaca-gpt4生成的"chosen"响应和baichuan-6B生成的"reject"响应。数据集总共包含183k个中文对和46k个英文对。
实验结果
如下图所示,CT-LLM与其他类似规模的基线模型进行了性能比较。CT-LLM在多数任务上展现出了竞争力,尤其是在中文任务上的表现尤为突出,这表明了模型在处理中文文本方面的有效性和适应性。
CT-LLM在CHC-Bench基准测试中的表现如下图所示。模型在社会理解和写作方面表现出色,这反映了其在处理与中国文化相关的语境时的强大能力。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
😝有需要的小伙伴,可以Vx扫描下方二维码免费领取==🆓
这篇关于复旦 北大 | 从头训练中文大模型:CT-LLM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!