中国电信解锁万亿参数大模型:TeleAI的创新与突破
首个由万卡集群训练出来的万亿参数大模型,已被一家央企解锁。
具体而言,为了推动纯国产人工智能的探索,带来这条新路径的正是中国电信人工智能研究院(TeleAI)。
该研究院由中国电信集团的CTO、首席科学家兼院长李学龙教授带领的团队完成了这一壮举。根据了解,训练过程中使用的万卡集群由天翼云上海临港国产万卡算力池提供,基于天翼云自研的“息壤一体化智算服务平台”和电信人工智能公司自研的“星海AI平台”的支持,可以实现万亿参数的稳定训练,平均每周仅有1.5次训练中断,集群训练的稳定性达到了国际领先水平。
此外,TeleAI还开源了由国产深度学习框架训练的千亿参数大模型——星辰语义大模型TeleChat2-115B。TeleChat是央企中首个开源的系列语义大模型,而TeleChat2-115B则在TeleChat的基础上,通过对训练数据量、数据质量、配比和模型架构等多个维度的优化,取得了更为显著的效果提升!在九月份的C-Eval评测Open Access模型综合榜单中,TeleChat2-115B以86.9分的成绩,一举夺得了榜单第一!
这已经不是TeleAI第一次在权威榜单中高居榜首了。早在今年5月份时,其TeleChat系列模型的逻辑推理能力便在OpenCompass测试榜单中取得了开源大模型的第一名。
具体到应用方面,星辰语义大模型在长文本写作方面采用了“大纲写作+正文写作”的模式,更加贴近用户的习惯。
据了解,它还采用逐段生成文本的方式,这有利于实现超长文章的写作。
即使面对超长会议,星辰语义大模型也能够轻松实现实时纪要生成,在准确性、完整性、幻觉问题、逻辑性以及规范性等多个方面都能呈现高质量的结果。
对于大型电子报表,星辰语义大模型支持报表生成、报表问数、报表摘要以及报表对应报告的风格化仿写等功能,能够轻松处理百万行数据!
那么,万卡万参是如何练成的呢?
需要明确的一点是,实现万卡万参并非易事,尤其是实现全国产化的难度显而易见。首先的难点便是提升万卡集群的性能和稳定性。为了提升训练性能,TeleAI采用了多维混合并行的技术,可以通过设置不同的并行模式,实现数据并行、模型并行和流水线并行的自动混合使用,支持万亿模型在万卡集群上的高效分布式训练。在此次训练中,还采用了以下关键技术以进一步提升训练性能:
-
多副本并行:通过将输入模型的数据按照batch size维度进行切分,使得底层在通信时,另一副本进行计算操作,无需等待,从而显著提升模型性能。
-
通信优化:通过通信融合和通信子图提取与复用等技术,减少通信耗时,提升训练性能。
-
DryRun仿真:无需真正执行计算,而是在小集群上分析计算图,识别性能瓶颈,如算子融合、显存使用和数据流的效率问题,提前为万卡集群的运行提供优化配置。
-
灵活重计算配置:结合DryRun的显存使用分析,通过计算选重、通信选重、指定选重等多种配置,在满足单卡显存限制的情况下,找到显存和计算的最优平衡点,以实现性能的最大化。
最终,国产算力万卡集群的性能超过对应GPU的93%以上。此外,为了提升训练的稳定性,TeleAI通过上线训练集群断点续训、CCAE集群监控并快速隔离故障节点、多级存储优化等方法,达成了集群98%的稳定可用性,断点续训成功率超过90%,单次断点续训的时长约为15分钟。
其次的挑战在于训练万亿参数的大模型。在进行超大参数模型训练过程中,TeleAI通过大量小模型的训练,对Scaling Law(尺度定律)展开探索,分析每个模型的噪声空间,并构造正激励噪声来强化训练过程中的噪声管理。正激励噪声作为训练超大参数模型的核心技术,帮助研究人员确定最优模型结构,从而提高模型的整体能力与鲁棒性。
为此,TeleAI采用了“四步走”策略:
-
在模型构建方面,利用多项技术进行优化。首先,在位置编码方面,采用Rotary Embedding的编码方法,该方法具备出色的位置外推性,并能够与attention计算加速技术良好配合,从而大幅提升模型的训练速度。
-
其次,在激活函数层面,选用SwiGLU激活函数替代GELU激活函数。实验表明,SwiGLU相较于其他激活函数,拥有更好的模型拟合效果。
-
在层标准化环节,运用基于RMSNorm的Pre-Normalization。实验发现,该算法在训练进程中具有更佳的稳定性。
-
将词嵌入层(embedding)与输出lm head层参数解耦,实验表明,这样能够增强训练的稳定性和收敛性。
-
最后,在大参数模型(TeleChat2-115B)上应用GQA,有助于提高模型的训练和推理性能。GQA能大幅降低模型推理过程中的显存使用量,显著提升模型的外推长度和推理性能。
在基础训练数据构建方面,TeleAI在工程实践中借助多级先导模型展开细致的追随训练以及数据调整实验,对数据清洗及数据混合策略的有效性进行了充分评估和验证。
其一,在数据清洗方面,运用语种识别、数据去重、文本格式规范化、无关内容过滤、低质内容过滤等手段来提升预训练数据的质量。同时,建设多模态结构化文档解析工具,有效提取公式和表格内容。实验发现,经过数据清洗后,模型训练损失更低,学习速度更快,能够节约43%的训练时间。
其二,在数据混合方面,采用在线领域采样权重调整算法。在先导模型训练过程中,根据不同数据集的样本损失分布动态更新采样权重,进而获得效果最优的数据混合策略。在模型训练初期,还会根据评测指标变化情况持续调整配比方案。实验表明,增加中文数据比例、增大数学与题库数据比例,有助于提升模型的文本理解和考试能力。
其三,在数据合成方面,针对数学、代码等特定领域任务,梳理细粒度的知识点体系,并构建复杂指令,让大模型生成知识密度高的合成数据,例如试题解析过程、代码功能解释和代码调用关系等。
接下来是SFT(模型微调)专项优化
在低质量过滤方面,运用模型困惑度(PPL)、指令追随难度(IFD)以及可学习度(Learnability)等指标来衡量单条样本的回答难度,进而自动筛选并过滤掉文本格式规范性差、答案标注错误的样本。
对于高质量构建,将SFT划分为逻辑、认知、理解三个能力维度及二十多个子类。通过预先制定的标准评测集,定向筛选出对单项能力指标提升影响最大的高质量数据。
同时,提出基于黄金模板构建问答数据的两阶段标注方案,从规范性、新颖性、逻辑性、丰富性、完整性等维度总结每类问题的最佳模板,再依据模板标注符合要求的最佳答案。
在效果选择上,基于模型困惑度指标,能够快速评估不同版本的模型在小规模验证集上的拟合程度,从而挑选出表现较好的版本,以此降低计算成本。
然后是偏好对齐
为最大程度确保指令数据的全面性与均衡性,TeleAI分类并收集了涵盖总共300个类别的指令数据集。同时,为获取更高质量的指令数据,运用聚类和中心选择算法,从中挑选出具有代表性的指令。
随后,TeleAI将来自不同训练阶段、不同参数大小的TeleChat系列模型的回复,按照安全性、事实性、流畅性等多个维度,归为高质量、中质量、低质量三个不同标签,形成pair-wise数据用于奖励模型的训练。
DPO算法因工程实现简便、易于训练而被广泛应用,在TeleChat训练阶段也采用了这一策略。在数据构建阶段,TeleAI使用指令数据对当前Chat模型进行10至15次推理采样,并利用奖励模型对每个回复进行打分。
TeleAI采用West-of-N的方式构建pair数据,即将模型回答的最高分作为chosen response,最低分作为rejected response,以此确保pair数据具有较强的偏好差别。
在训练阶段,除了使用常规的DPO损失函数外,TeleAI还通过实验发现,引入对chosen response的NLL Loss(负对数似然损失),能够有效稳定DPO训练的效果,防止chosen response的概率降低。
最后,便是基于知识图谱降低语义大模型的事实类幻觉
具体而言,TeleAI是基于图谱结构化信息表示,将知识引入到问题提示中:根据与查询n-gram相似度检索候选实体,随后以此为基础进行随机游走,并计算游走路径与用户原始问题的相关性,选择top路径内容扩充至用户原始问题。以上便是TeleAI“炼”万卡万参的关键过程。
不过现在还有一个问题值得探讨:
为什么中国电信人工智能研究院能够做到这一点?
其实TeleAI在大模型上的布局并非一蹴而就,而是经过了长时间的打磨。
首先,在态度上给予了高度重视。
除了星辰AI大模型之外,在去年11月举行的数字科技生态大会上,TeleAI还发布了12个行业大模型,并推出了“星辰MaaS生态服务平台”,以实现定制化服务。
这一切,都是基于中国电信历经十年的AI能力建设。
其次,有人才的支撑才会有行业大牛的助力。
为了搭建星辰AI大模型,中国电信迅速组建了一支近800人的研发团队。团队成员来自国内外顶尖高校,诸如清华、北大、斯坦福和哥伦比亚等,平均年龄为31.79岁。
这批优秀人才帮助中国电信在对内对外业务中取代外部算法能力,实现核心算法能力的自主可控。
在广泛吸纳基础人才的同时,中国电信也拥有一批行业大牛。其中,去年年底全职加盟中国电信集团担任CTO和首席科学家的李学龙便是其中之一。
作为AI领域的Fellow大满贯选手,李学龙创新性地提出噪声分析是解决大模型等一系列人工智能问题的核心关键,他将这一思想引入到万卡万参项目中,也将带领中国电信人工智能研究院继续开展基础和前沿研究。
在TeleAI成立之际,便围绕“人”、“工”两大要素进行重点打造。
据了解,TeleAI现已引入多位海外TOP高校的教授、国内知名企业的CTO或科学家、科研机构的青年人才以及拥有高影响力开源成果的天才学生。
此外,不仅限于AI和大模型,中国电信在多个技术领域进行了投入,并取得了同行业中的优势,这也正是“工”为基所体现的方面。
例如在量子通信领域,中国电信不久前发布了具备“量子优越性”能力的“天衍”量子计算云平台,此前还开通了国内规模最大、用户最多、应用最全的量子保密通信城域网,并主导制定了中央企业首个牵头立项的7项量子通信行业标准(含团标)中的5项。
再例如在新一代信息通信技术上,中国电信实现了“手机直连卫星”的全面商用,并发布了全球首个支持消费级5G终端直连卫星双向语音和短信的运营级产品。
由此可见,中国电信早已不是大家眼中的传统运营商,在前沿技术上的投入,远比我们认知的要深得多。
这也就不难理解,为什么TeleAI能够率先实现万卡万参。
相关文章:
中国电信解锁万亿参数大模型:TeleAI的创新与突破
首个由万卡集群训练出来的万亿参数大模型,已被一家央企解锁。 具体而言,为了推动纯国产人工智能的探索,带来这条新路径的正是中国电信人工智能研究院(TeleAI)。 该研究院由中国电信集团的CTO、首席科学家兼院长李学龙…...
戴尔PowerEdge R840服务器亮黄灯 不开机
最近接修到一台东莞用户的DELL PowerEdge R840 服务器因为意外断电后,无法正常开机的问题, 大概故障现象是 插上电源线 按卡机按钮无响应,无法开机,无显示输出,工程师到现场检修,经过idrac中日志分析&#…...
【前端安全】js逆向之微信公众号登录密码
❤️博客主页: iknow181 🔥系列专栏: 网络安全、 Python、JavaSE、JavaWeb、CCNP 🎉欢迎大家点赞👍收藏⭐评论✍ 随着发展,越来越多的登录页面添加了密码加密的措施,使得暴力破解变得不在简单&a…...
C# 泛型使用案例_C# 泛型使用整理
一、系统自带常用的泛型 1.字典,集合 //字典 Dictionary<string, int> dic new Dictionary<string, int>(); //泛型集合 List<int> list new List<int>(); 2.泛型委托,输入参数,输出参数 //泛型 委托---输出参…...
Docker 安装 Citus 单节点集群:全面指南与详细操作
Docker 安装 Citus 单节点集群:全面指南与详细操作 文章目录 Docker 安装 Citus 单节点集群:全面指南与详细操作一 服务器资源二 部署图三 安装部署1 创建网络2 运行脚本1)docker-compose.cituscd1.yml2)docker-compose.cituswk1.…...
Arthas redefine(加载外部的.class文件,redefine到JVM里 )
文章目录 二、命令列表2.2 class/classloader相关命令2.2.3 redefine(加载外部的.class文件,redefine到JVM里 )举例1:加载新的代码,jad/mc 命令使用举例2:上传 .class 文件到服务器的技巧 本人其他相关文章…...
C++教程(三):c++常用的配置文件类型
目录 1. INI 文件 2. JSON 文件 3. YAML 文件 4. XML 文件 5. TOML 文件 6. 二进制配置文件(Protocol Buffers, MessagePack, Avro 等) 总结 在 C 项目中,常用的配置文件类型有多种选择,具体选择取决于项目的复杂性、可读性…...
Arduino Uno控制雨滴传感器模块的设计方案
以下是Arduino Uno控制雨滴传感器模块的设计方案: 一、硬件准备: 1. Arduino Uno 开发板一块。 2. 雨滴传感器模块一个。 3. 杜邦线若干。 4. 9V直流电源一个。 二、硬件连接: 1. 将Arduino Uno板的Vin引脚、GND引脚分别连接到9V直流电…...
华为常见命令手册
常见命令 display ip interface brief —> 查看设备上的每个接口的IP地址【地址/掩码/状态】 display interface gi0/0/0 → 查看该接口的MAC 地址 ipconfig → 查看 PC 上面的 IP地址 display arp → 查看设备的 ARP 表 arp -a → 查看 PC 上面的 ARP 表 display m…...
TinyAP:使用TinyML对抗Wi-Fi攻击的智能接入点
论文标题: 英文:TinyAP: An intelligent Access Point to combat Wi-Fi attacks using TinyML中文:TinyAP:使用TinyML对抗Wi-Fi攻击的智能接入点 作者信息: Anand Agrawal 和 Rajib Ranjan Maiti,来自印…...
grafana频繁DataSourceError问题
背景 随着 Grafana 数据量的不断增加,逐渐暴露出以下问题: Grafana 页面加载缓慢;Grafana 告警频繁出现 DatasourceError 错误。 对于第一个问题,大家可以参考这篇文章:Grafana 加载缓慢的解决方案。 不过…...
python-ds:Python 中的数据结构库(适用于面试的数据结构和算法合集)
在软件开发中,数据结构是组织和存储数据的方式,对算法的效率和程序的性能至关重要。Python 提供了许多内置的数据结构,但在一些复杂的应用场景中,原生数据结构可能无法满足特定需求。这时,一个功能强大、易于使用的数据…...
AccessoriesqueryController
目录 1、 AccessoriesqueryController 1.1、 库存配件查询 1.2、 查询仓库 1.2.1、 //把数据库数据加到表格:跟默认然一行数据进行合并 1.3、 /// 查询 1.3.1、 配件编码查询 1.3.2、 配件名称查询 1.3.3、 配件类型查询 AccessoriesqueryControlle…...
M3u8视频由手机拷贝到电脑之后,通过potplayer播放报错找不到文件地址怎么解决?
该文章前面三节主要介绍M3u8视频是什么,视频播放错误(找不到地址)的解决方法在后面 M3U8是一种多媒体播放列表文件格式,主要用于流媒体播放。 一、文件格式特点 1. 文本文件:M3U8是一个采用 UTF-8 编码的文本文件,这意味着它可…...
【分布式微服务云原生】windows+docker+mysql5.7.44一主一从主从复制
目录 1. 主库设置2. 从库设置3. 验证主从复制内容汇总表格 摘要: 在Windows系统上通过Docker部署MySQL主从复制,以下是详细的步骤和命令,帮助你设置一主一从的MySQL复制环境。 1. 主库设置 步骤1:运行MySQL主库容器 docker run …...
鸿蒙NEXT开发-界面渲染(条件和循环)(基于最新api12稳定版)
注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…...
TypeScript 设计模式之【状态模式】
文章目录 状态模式:优雅切换的交通信号灯状态模式的奥秘状态模式有什么利与弊?如何使用状态模式来优化你的系统代码实现案例状态模式的主要优点状态模式的主要缺点状态模式的适用场景总结 状态模式:优雅切换的交通信号灯 当你站在繁忙的十字路口&#…...
MongoDB 聚合管道
参考: 聚合管道 - MongoDB 手册 v7.0 介绍 聚合管道由一个或多个处理文档的阶段组成: 每个阶段对输入文档执行一个操作。例如,某个阶段可以过滤文档、对文档进行分组并计算值。 从一个阶段输出的文档将传递到下一阶段。 一个聚合管道可以返回针对文档…...
python-patterns:Python 设计模式大全
python-patterns 是一个开源的 Python 项目,它提供了各种经典的设计模式的 Python 实现。设计模式是一种针对常见软件设计问题的可复用解决方案,通过使用设计模式,开发者可以编写出结构更加合理、易于维护和扩展的代码。 Python 是一门动态语…...
Nginx编译所需基本库pcre、zlib、openssl
一、基本库介绍 pcre:(Perl Compatible Regular Expressions) 是一个用 C 语言编写的正则表达式库,用于进行文本匹配和搜索。它提供了与 Perl 正则表达式兼容的功能,并且广泛用于许多不同的软件项目中,如网…...
C#进阶:探索嵌套类、匿名类及对象初始化器的强大运用
在C#中,嵌套类、匿名类以及对象初始化器是几种强大的特性,它们可以极大地提高代码的可读性和灵活性。下面分别介绍这些特性的运用。 1. 嵌套类 嵌套类是指定义在另一个类内部的类。内部类可以访问其外围类的所有成员(包括私有成员ÿ…...
匈牙利算法模板
P3386 【模板】二分图最大匹配 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路:最模板的一集.还未匹配则匹配,否则之前一个给现在这个让位置. int n,m,e; vector<int> vct[505]; int match[505]; bool vis[505]; bool mark[505][505]; bool dfs(int s)…...
ubuntu 安装harbor
#安装包 wget https://github.com/goharbor/harbor/releases/download/v2.10.3/harbor-offline-installer-v2.10.3.tgz wget https://github.com/goharbor/harbor/releases/download/v2.10.3/harbor-offline-installer-v2.10.3.tgz.asc#导入签名公钥 gpg --keyserver hkps://ke…...
Python/大数据/机器识别毕业设计选题题目推荐
基于Python和Diango在线购物商城系统报告文档指导搭建视频 基于深度学习的人脸识别与管理系统,Python实现 基于Python/机器学习链家网新房数据可视化及预测系统 Python豆瓣电影情感分析推荐系统爬虫可视化,过滤算法 基于python的django框架生鲜商城管…...
基于Python的人工智能应用案例系列(17):LSTM正弦波预测
概述 本案例展示了如何使用LSTM(长短期记忆网络)来预测正弦波序列的未来值。由于正弦波具有周期性,传统的神经网络难以准确预测其上升或下降趋势,而LSTM则能够通过学习值的模式来进行更精准的预测。本案例将训练LSTM模型并预测正弦…...
Python空间地表联动贝叶斯地震风险计算模型
🎯要点 使用贝叶斯推断模型兼顾路径和场地效应,量化传统地理统计曲线拟合技术。使用破裂和场地特征等地质信息以及事件间残差和事件内残差描述数学模型模型使用欧几里得距离度量、角距离度量和土壤差异性度量确定贝叶斯先验分布和后验分布参数ÿ…...
虚幻引擎-设置UI自适应屏幕大小
在游戏中,如果想实现不同分辨率下,都可以支持当前的UI界面布局,都需要用到锚点功能。 虚幻引擎中的UI锚点(Anchor)是指控件在屏幕或父物体上的固定点,用于确定控件的位置和布局。 锚点的作用是确保UI元…...
C++继承的三种方式[ACCESS]
C继承的定义 两个类的继承关系在派生类中声明,派生类定义使用以下语法: class DerivedClass: [ACCESS] BaseClass{ /…/ }; 冒号(:)后的[ACCESS]是继承的最高权限级别符,可以是以下三个值(存取权限级别&am…...
idea 同一个项目不同模块如何设置不同的jdk版本
在IntelliJ IDEA中,可以为同一个项目中的不同模块设置不同的JDK版本。这样做可以让你在同一个项目中同时使用多个Java版本,这对于需要兼容多个Java版本的开发非常有用。以下是设置步骤: 打开项目设置: 在IDEA中,打开你…...
1-仙灵之谜(区块链游戏详情介绍)
1-仙灵之谜(区块链游戏详情介绍) 前言(该游戏仅供娱乐)正文 前言(该游戏仅供娱乐) 依稀记得本科那会儿参加了一个区块链实验室,那时每周末大家都会爬山或者抽出一下午讨论区块链以及未来&#x…...
番禺区建设局网站/seo招聘职责
通过Flash的正弦函数可以模拟钟摆: 1、新建一fla文件,命名钟摆.fla 2、F9,在帧上添加脚本,如下: var mc:Sprite new Sprite ;addChild(mc);mc.graphics.lineStyle(3,0xff0066);mc.graphics.moveTo(0,0);mc.graphics.…...
http网站跳转怎么做/专业网络推广公司
PDC(专业开发人员会议)一直是由微软的高级开发者和架构师作为参与者,以便了解未来的微软平台和技术,PDC 2010,您将可以获得关于微软下一代云服务、Windows Phone 7、工具和技术、Internet Explorer 9 和游戏平台的第一手内容,PDC …...
网站怎么做自动回复的客服/市场调研报告word模板
Java 8 C# 6 Swift 变量 类型 变量名; 类型 变量名; var 变量名 : 类型; 变量(类型推断) N/A var 变量名初值; var 变量名初值; 常量 final 类型 常量名初值; readonly 类型 常量名初值; let 常量名 : 类型 初值; 基本类型 int short long byte doub…...
外包商网站怎么做/百度识图扫一扫入口
开发需求 微信小程序已经是非常火了,而且学习也比较容易,但是对于初学者来说还是一件比较伤脑筋的事,接下来给大家分享一下小程序搜索的思路。 流程 1、表单(输入框、提交按钮、提交的name值)2、接收表单数据(js获取表…...
东莞网站建设制作厂/seo优化推广
目录 一、目的--设计原则解决的问题 二、设计原则 2.1 原则概念 2.2 开闭原则 2.3 迪米特法则 2.4 合成复用原则 2.5 依赖倒置原则 一、目的--设计原则解决的问题 支持可维护性的同时,提高系统的可复用性,达到高内聚,低耦合目的。 二…...
做校园二手交易网站的目的/seo搜索优化专员
在numpy中,使用等号()直接赋值返回的是一个视图,属于浅拷贝;要完整的拷贝一个numpy.ndarray类型的数据的话,只能调用copy()函数 # coding utf-8 import numpy as np t np.zeros(24).reshape(4, 6) t1 t …...