复旦 北大 | 从头训练中文大模型:CT-LLM

news2024/11/20 14:26:39

引言

当前,绝大多数大模型(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扫描下方二维码免费领取==🆓

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1636491.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

易查分如何使用导出PDF功能?

易查分的导出PDF文件功能可以将查询结果下载到本地,也可用于打印出纸质资料。老师和学生家长都可以自主导出PDF文件,下面就来教大家如何使用此功能。 📌老师如何导出PDF? 在查询管理页,点击管理按钮-导出,可…

完美解决AttributeError: module ‘backend_interagg‘ has no attribute ‘FigureCanvas‘

遇到这种错误通常是因为matplotlib的后端配置问题。在某些环境中,尤其是在某些特定的IDE或Jupyter Notebook环境中,可能会因为后端配置不正确而导致错误。错误信息提示 module backend_interagg has no attribute FigureCanvas 意味着当前matplotlib的后…

经典网络解读——Efficientnet

论文:EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks(2019.5) 作者:Mingxing Tan, Quoc V. Le 链接:https://arxiv.org/abs/1905.11946 代码:https://github.com/tensorflow/t…

自动控制原理学习--平衡小车的控制算法(一)

基于单片机STM32的两轮平衡小车,单片机的各种IO、定时器、通讯等等一大堆要理解、编程,但这些都是琐碎的文档知识,需要花时间看各个模块的接口文档进而编程,需要良好的编程逻辑思维,去获取相关的传感模块信息&#xff…

Instal IIS on Windows Server 2022 Datacenter

和以往版本一样,没有什么不同,So easy! WinR - ServerManager.exe 打开服务器管理器,点击【添加角色和功能】,选择自己想要的角色和功能。 一、开始之前:帮助说明,点击【下一步】;…

鸿蒙原生应用元服务开发-Web加载本地页面

将本地页面文件放在应用的rawfile目录下,开发者可以在Web组件创建的时候指定默认加载的本地页面 ,并且加载完成后可通过调用loadUrl()接口变更当前Web组件的页面。 在下面的示例中展示加载本地页面文件的方法: 将资源文件放置在应用的resou…

Matlab生成txt文件导入到Vivado仿真

Matlab处理数据并将其写入txt文件 %% Txt Generate pre_RS_datadec2bin(simDataIn,8); %将数据转化为8bit的二进制 fidfopen("F:\FPGA\Xilinx_vivado\project\dvbstestbench\dbvs\matlab\pre_RS_data.txt","wt"); for i1:n*nMessages %数据…

网盘—下载文件

本文主要讲解网盘文件操作的下载文件部分,具体步骤如下: 目录 1、实施步骤 2、代码实现 2.1、添加下载文件的协议 2.2、添加下载文件函数 2.3、添加信号槽 2.4、实现槽函数 2.5、设置download状态 2.6、添加定义 2.7、服务器接收数据 2.8、添…

【docker】Docker开启远程访问

将构建的镜像自动上传到服务器。 需要开放 Docker 的端口,让我们在本地能连接上服务器的 Docker,这样,才能上传构建的镜像给 Docker。 开启远程访问 首先在服务器打开 Docker 的服务文件 vim /usr/lib/systemd/system/docker.service修改…

ubuntu下安装配置python3.11

方案1 添加仓库: $ sudo add-apt-repository ppa:deadsnakes/ppa $ sudo apt update $ sudo apt install python3.11然后查看有多少个python版本已经安装了: ls -l /usr/bin/python*python2.7,python 3.8 ,python 3.11. 然后,设置系统默认…

贪吃蛇小游戏(c语言)

1.效果展示 屏幕录制 2024-04-28 205129 2.基本功能 • 贪吃蛇地图绘制 • 蛇吃食物的功能 (上、下、左、右方键控制蛇的动作) • 蛇撞墙死亡 • 蛇撞自身死亡 • 计算得分 • 蛇身加速、减速 • 暂停游戏 3.技术要点 C语言函数、枚举、结构…

VPot-Free一款功能强大的文字转语音工具 v2306

01 软件介绍 VPot-FREE是一款功能强大的免费文字转语音工具,为用户提供了便捷的语音合成功能。无论是想将文字转化为语音进行朗读,还是将文章转为语音保存,VPot-FREE都能满足你的需求。 多种语音风格可供选择,包括男声、女声以及…

C语言-嵌入式-STM32:FreeRTOS说明和详解

Free即免费的,RTOS的全称是Real time operating system,中文就是实时操作系统。 注意:RTOS不是指某一个确定的系统,而是指一类操作系统。比如:uc/OS,FreeRTOS,RTX,RT-Thread 等这些都…

如何利用快解析远程访问NAS、FTP、Web服务

什么是内网、外网? 所谓内网就是内部建立的局域网络或办公网络。一家公司或一个家庭有多台计算机,他们利用不同网络布局将这一台或多台计算机或其它设备连接起来构成一个局部的办公或者资源共享网络,我们就称它为内部网络,也叫内…

【MySQL精炼宝库】深度解析索引 | 事务

目录 一、索引 1.1 索引(index)概念: 1.2 索引的作用: 1.3 索引的缺点: 1.4 索引的使用场景: 1.5 索引的使用: 1.6 面试题:索引底层的数据结构(核心内容): 1.7 索引列查询(主…

FSNotes for Mac v6.7.1中文激活:轻量级笔记管理工具

FSNotes for Mac,一款专为Mac用户打造的轻量级笔记管理工具,让您的笔记管理变得简单而高效。 FSNotes for Mac v6.7.1中文激活版下载 它采用Markdown文件格式,让您轻松创建和编辑富文本笔记,无需担心格式问题。同时,FS…

手写一个uart协议——rs232(未完)

先了解一下关于uart和rs232的基础知识 文章目录 一、RS232的回环测试1.1模块整体架构1.2 rx模块设计1.2.1 波形设计1.2.2代码实现与tb1.2.4 仿真 1.3 tx模块设计1.3.1波形设计 本篇内容: 一、RS232的回环测试 上位机由串口助手通过 rx 线往 FPGA 发 8 比特数据&a…

复杂度(3)

目录 1.二分查找的时间复杂度 2.斐波那契数列及其优化 3.空间复杂度 1.二分查找的时间复杂度 我们熟知的二分查找绝对是一种很厉害的算法,因为这个算法每进行一次都会砍掉一半的数据,相当于是指数级增长,假设我们刚开始的时候数据的个数是…

【对比学习】【论文翻译】Contrastive Multiview Coding

Contrastive Multiview Coding ECCV 2020 0.论文摘要和作者信息 摘要 人类通过许多感官通道观察世界,例如,由左眼观察的长波长光通道,或由右耳听到的高频振动通道。每个视图都是嘈杂和不完整的,但重要的因素,如物理…

【linux-1-Ubuntu常用命令-vim编辑器-Vscode链接ubuntu远程开发】

目录 1. 安装虚拟机Vmare和在虚拟机上安装Ubuntu系统:2. 常用的Ubuntu常识和常用命令2.1 文件系统结构2.2 常用命令2.3 vim编辑器 3. Ubuntu能联网但是ping不通电脑:4. Windows上安装VScode链接ubuntu系统,进行远程开发: 1. 安装虚…