复旦 北大 | 从头训练中文大模型: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扫描下方二维码免费领取==🆓

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

proteus+stm32+CubeMX+dht11+lcd1602

浅浅记录下过程遇到的问题🤡🤡🤡 1 供电网配置错误(加上就好了 新起个名也会出这个 / 电源不起名 不创建估计项目也会)没zet6的 proteus 里 固件库 账号注册半天没成 就用的stm32F103R6的然后发现单片机不输出高低电平…

数据仓库和数据仓库分层

一、数据仓库概念 数据仓库(Data Warehouse),可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业&#…

ubuntu系统搭建pytorch环境详细步骤【笔记】

实践设备:华硕FX-PRO(NVIDIA GeForce GTX 960M) 搭建PyTorch环境的详细步骤如下: 1.安装Ubuntu系统: 下载Ubuntu的镜像文件并制作启动盘。将启动盘插入计算机,启动计算机并按照提示安装Ubuntu系统。 2.…

【免费AI系统】智狐AIs:企业级AI解决方案,提升您的工作效率

今天,我将为您介绍一个创新的AI平台——智狐AIs,这是一个致力于让AI技术变得易于接触和使用的平台,它为不同层次的用户提供了一个功能强大且易于操作的交互环境。 智狐AIs:您智能生活的新伙伴 智狐AIs以其简洁而强大的设计&#…

【面试经典 150 | 数组】找出字符串中第一个匹配项的下标

文章目录 写在前面Tag题目来源解题思路方法一:find方法二:暴力匹配方法三:KMP 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,…

2024年第二十六届“华东杯”(A题)大学生数学建模挑战赛|数学建模完整代码+建模过程全解全析

当大家面临着复杂的数学建模问题时,你是否曾经感到茫然无措?作为2022年美国大学生数学建模比赛的O奖得主,我为大家提供了一套优秀的解题思路,让你轻松应对各种难题。 让我们来看看华东杯 (A题)! 问题一&a…

Vue3管理系统-路由设置+表单校验

一、配置路由规则 1.在views 下创建文件夹分类,搭好架子 2.配置路由规则 在router下Index.js import { createRouter, createWebHistory } from vue-routerconst router createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [//一级路由//这里可以…

Vue入门到关门之Vue项目工程化

一、创建Vue项目 1、安装node环境 官网下载,无脑下一步,注意别放c盘就行 Node.js — Run JavaScript Everywhere (nodejs.org) 需要两个命令 npm---->pipnode—>python 装完检查一下,hello world检测,退出crtlc 2、搭建vu…

ARM功耗管理背景及挑战

安全之安全(security)博客目录导读

uniapp 对接 Apple 登录

由于苹果要求App使用第三方登录必须要求接入Apple登录 不然审核不过 所以: 一、勾选苹果登录 二、 设置AppId Sign In Apple 设置完成重新生成描述文件 !!!!证书没关系 示例代码: async appleLogin…

JAVA面试专题-MySQL

锁 全局锁 对这个数据库实例加锁,加锁后整个实例处于只读状态,DDL和DML阻塞,DQL可以 表级锁 每次操作锁住整张表 表锁 表共享读锁(read lock):不阻塞其他客户端的读,但会阻塞写 表独占写…

kubectl_入门_Pod调整

Pod调度 在默认情况下,一个pod在哪个node节点上运行,是由scheduler组件采用相应的算法计算出来的,这个过程是不受人工控制的。 但是在实际过程中,这并不满足需求,因为很多情况下,我们想控制某些pod到达某…

第9篇:创建Nios II工程之读取Switch的值<二>

Q:上一期我们完成了Quartus硬件工程部分,本期我们创建Nios II软件工程这部分。 A:创建完BSP和Nios II Application之后,在source文件main.c中添加代码:system.h头文件中新增了Switch PIO IP的硬件信息,包括…

【学习笔记三十】EWM和PP集成的后台配置和前台演示

一、EWM和PP集成概述 在S4HANA版本中,PP模块强化了生产线的概念,并与EWM集成,使用生产供应区(PSA)的功能。PSA的基本配置包括在ERP系统中创建PSA、定义工作中心、将PSA分配给工作中心、在EWM中创建PSA、匹配ERP和EWM中…

实验14 MVC

二、实验项目内容&#xff08;实验题目&#xff09; 编写代码&#xff0c;掌握MVC的用法。【参考课本 例1 】 三、源代码以及执行结果截图&#xff1a; example7_1.jsp&#xff1a; <% page contentType"text/html" %> <% page pageEncoding "ut…

宝兰德以全栈智能运维能力为企业数字化转型保驾护航

2020年发布“十四五”规划中提出“加快数字化发展&#xff0c;建设数字中国”&#xff0c;发展数字经济成为国家战略。在数字技术创新应用和国家政策持续利好的大趋势下&#xff0c;面对全行业产业结构调整、资源环境挑战等带来的机遇和难点&#xff0c;我国千行百业的数字化转…

工业互联网通讯协议—欧姆龙(Fins tcp)

一、场景 近期公司要对欧姆龙CP系列设备的数据采集&#xff0c;于是就研究了下欧姆龙的Fins Tcp协议。 二、Fins Tcp 组成字节说明固定头446494E53 FINS对应的ASCII码的十六进制长度4后面剩余指令的长度命令4 握手固定为&#xff1a;00000000 读写固定为&#xff1a;0000000…

CentOS/Anolis的Linux系统如何通过VNC登录远程桌面?

综述 需要在server端启动vncserver&#xff0c;推荐tigervnc的server 然后再本地点来启动client进行访问&#xff0c;访问方式是IPport&#xff08;本质是传递数据包到某个ip的某个port&#xff09; 然后需要防火墙开启端口 服务器上&#xff1a;安装和启动服务 安装服务 y…

Python 可以对数据进行哪些可视化?

Python 可视化 一、条形图&#xff08;或柱状图&#xff09; 1.代码如下&#xff1a; import matplotlib.pyplot as plt import pandas as pddf pd.DataFrame({County:[America,Canada,Australia,Germany,French,China],GDP:[80,30,70,80,60,75] })plt.bar(df[County],df[G…

聊聊 ASP.NET Core 中间件(一):一个简单的中间件例子

前言&#xff1a;什么是中间件 服务器在收到 HTTP 请求后会对用户的请求进行一系列的处理&#xff0c;比如检查请求的身份验证信息、处理请求报文头、检查是否存在对应的服务器端响应缓存、找到和请求对应的控制器类中的操作方法等&#xff0c;当控制器类中的操作方法执行完成…