开放代码社区 › tele-chat
tele-chat
AI/机器学习Python星辰语义大模型-TeleChat Hugging Face • MindSpore • gitee • WeChat Tech Report 模型推理和部署 2024.5.16 开源优化的12B版本chat模型 TeleChat-12B-V2 2024.3.20 开源12B版本chat模型及量化版本 2024.1.11 开源1T中文数据集 2024.1.10 开源7B版本chat模型及其量化版本 星辰语义大模型-TeleChat 星辰语义大模型TeleChat是由中电信人工智能科技有限公司研发训练的大语言模型,其中7B模型基座采用1.5万亿 Tokens中英文高质量语料进行训练,12B模型基座
仓库地址
https://gitee.com/Tele-AI/tele-chat.gitREADME
<div align="center"> <h1> 星辰语义大模型-TeleChat </h1> </div> <p align="center"> 🤗 <a href="https://huggingface.co/Tele-AI" target="_blank">Hugging Face</a> • 🏔 <a href="https://gitee.com/mindspore/mindformers/tree/dev/research/telechat" target="_blank">MindSpore</a> • 🐾 <a href="https://gitee.com/Tele-AI/tele-chat" target="_blank">gitee</a>️ • 💬 <a href="https://github.com/Tele-AI/Telechat/blob/master/images/wechat.jpg" target="_blank">WeChat</a> </p> <p align="center"> <a href="https://arxiv.org/abs/2401.03804" target="_blank"> Tech Report </a> </p> # 目录 - [模型介绍](#模型介绍) - [数据开源](#数据开源) - [效果评测](#效果评测) - [模型推理和部署](#模型推理和部署) - [模型微调](#模型微调) - [模型量化](#模型量化) - [国产化适配](#国产化适配) - [声明、协议、引用](#声明协议引用) # 最新动态 - 2024.5.16 开源优化的12B版本chat模型**TeleChat-12B-V2** - 2024.3.20 开源12B版本chat模型及量化版本 - 2024.1.11 开源1T中文数据集 - 2024.1.10 开源7B版本chat模型及其量化版本 # 模型介绍 ### 星辰语义大模型-TeleChat - 星辰语义大模型TeleChat是由中电信人工智能科技有限公司研发训练的大语言模型,其中7B模型基座采用1.5万亿 Tokens中英文高质量语料进行训练,12B模型基座采用3万亿 Tokens中英文高质量语料进行训练。 - 我们开源了对话模型**TeleChat-7B**与**TeleChat-12B**,以及其`huggingface`格式的权重文件。此外,我们还开源了7B、12B模型的int8和int4量化版本。 - **TeleChat-12B**在模型结构、训练数据、训练方法等方面进行了改进,在通用问答和知识类、代码类、数学类榜单上相比**TeleChat-7B**均有大幅提升。 - 在模型结构方面,我们使用小规模的模型尝试多种模型结构的组合,选择最优结构。相比**TeleChat-7B**模型,**TeleChat-12B**模型采用了词嵌入层与输出层解耦的结构,将词嵌入层和输出lm head层参数分开,有助于增强训练稳定性和收敛性。 - 在训练数据方面,我们收集了覆盖书籍、百科、新闻、政务、法律、医药、专利、论文、数学、代码等诸多方面的大量中英文数据;通过优化数据清洗策略大幅提升数据的文本干净度、观点无偏性、内容有效性、格式规范性。 - 在训练方法方面,我们使用科学数据配比学习与课程学习的方法,使用小参数模型在多种数据配比的数据上拟合,得到对各个数据集难度的先验估计;训练过程中每隔一段时间自动化评估当前模型在所有数据集上的loss,以及在评测集上的生成效果,动态提升较难学习的数据集权重,保证模型在各个数据集上都有较佳的拟合效果。 - **TeleChat-12B-V2**版本使用动态数据配比和课程学习的方法,针对基座模型进行了持续训练增强。其对话模型在通用能力评测上提升5.5%,其中数学能力提升24.6%、翻译能力提升9%、幻觉测试提升10.3%,安全拒识、知识问答、闲聊问答等方面也有不同程度的提升。 ### 模型结构 我们采用标准的 `Decoder-only` 结构设计了 **TeleChat** 模型,并在模型维度做了如下的一些改进: - **位置编码**:我们使用 [Rotary Embedding](https://arxiv.org/pdf/2104.09864.pdf) 的位置编码方法,该方法将相对位置信息依赖集成到 self-attention 中,并且具有较好的位置外推性。Rotary Embedding还可以较好地与Flash-Attention v2 配合使用,将模型的训练速度提升约20%。 - **激活函数**:我们使用 [SwiGLU](https://arxiv.org/pdf/2002.05202.pdf) 激活函数来替代GELU激活函数 , 为了减少计算量,将`ffn_hidden_size`设置为小于原始SwiGLU中的4倍隐藏层大小。 - **层标准化**: 基于 [RMSNorm](https://arxiv.org/abs/1910.07467) 的 Pre-Normalization。 - **词嵌入层与输出层解耦**:我们将**TeleChat-12B**的词嵌入层和输出lm head层参数分开,有助于增强训练稳定性和收敛性。 | | layer_num | hidden_size | ffn_hidden_size | head_num | tie_word_embeddings | | ---- | --------- | ----------- | --------------- | -------- | ------------------- | | 7B | 30 | 4096 | 12288 | 32 | 是 | | 12B | 38 | 5120 | 12288 | 32 | 否 | --- 我们开源的TeleChat模型: - 支持deepspeed微调,开源了基于deepspeed的训练代码,支持Zero并行显存优化,同时集成了FlashAttention2 - 多轮能力支持。开源了多轮数据构建方式,针对多轮模型训练集成了针对多轮的mask loss训练方式,更好的聚焦多轮答案,提升问答效果。 - 外推能力提升。开源了8K训练版本模型,采用NTK-aware外推和attention scaling外推方式,可以外推到96K。 - 具备较好的长文生成能力。在工作总结、工作计划、PPT大纲、申论、招标书、邮件、方案、周报、JD写作等长文写作任务上表现较好。 本次发布版本和下载链接见下表 | 模型版本 | 下载链接 | | ----------- | ------------------------------------------------------------ | | 7B-FP16 | [TeleChat-7B-FP16](https://huggingface.co/Tele-AI/Telechat-7B) | | 7B-int8 | [TeleChat-7B-int8](https://huggingface.co/Tele-AI/Telechat-7B-int8) | | 7B-int4 | [TeleChat-7B-int4](https://huggingface.co/Tele-AI/Telechat-7B-int4) | | 12B-FP16 | [TeleChat-12B-FP16](https://huggingface.co/Tele-AI/TeleChat-12B) | | 12B-int8 | [TeleChat-12B-int8](https://huggingface.co/Tele-AI/TeleChat-12B-int8) | | 12B-int4 | [TeleChat-12B-int4](https://huggingface.co/Tele-AI/TeleChat-12B-int4) | | 12B-V2-FP16 | [TeleChat-12B-V2-FP16](https://modelscope.cn/models/TeleAI/TeleChat-12B-v2/files) | **镜像下载** 为了便于大家快速上手,我们提供了可运行的环境镜像,下载地址:[镜像下载](https://cloud.189.cn/web/share?code=vQFJRf7JBfmq) (访问码:ona6) # 数据开源 ### 数据介绍 TeleChat-PTD 是由电信星辰大模型**TeleChat**预训练语料中抽取出的的综合性大规模中文数据集。数据主要来源于网页、书籍、官方媒体等。 我们使用规则+模型的方式进行了相关的过滤,并对数据进行了相似性去重,尽可能地提取出高质量地数据。 TeleChat-PTD 数据集大约公开了2.7亿条数据,数据由纯中文文本构成,原始大小约1TB,压缩后480G,共189个文件。数据集中已经去除了其它冗余信息。 ### 数据格式 数据为jsonl格式,仅有一个字段data data: 单条处理后的预训练数据 ### 数据清洗 数据清洗的工作流程主要是:规则筛选和清洗、去重、高质量数据筛选、数据安全处理这四个步骤。 - 规则筛选主要是一些通用的规则和启发式规则,例如对字数长度的筛选等等; - 去重主要使用相似度去重来将过于相似重复的数据删除; - 高质量筛选主要使用了BERT、GPT2等模型对数据进行打分筛选出高质量数据; - 数据清洗主要是针对不良数据进行了识别和去除; ### 数据下载 huggingface下载地址:[数据下载](https://huggingface.co/datasets/Tele-AI/TeleChat-PTD) 天翼云盘下载地址:[数据下载](https://cloud.189.cn/t/ia2QbaVzYf6z)(访问码:pkg8) # 效果评测 TeleChat模型相比同规模模型在评测效果方面也有较好的表现,我们的评测集涵盖了包括MMLU、C-Eval、GAOKAO、AGIEval、CMMLU、 GSM8K、MATH、HumanEval、CHID等数据集,评测能力包括了自然语言理解、知识、数学计算和推理、代码生成等 ## 评测集介绍 ### 通用能力 - MMLU 数据集是一个全面的英文评测数据集,涵盖了 57 个学科,包括人文学科、社会科学、自然科学、初等数学、美国历史、计算机科学、法律等等。 - CEVAL 数据集是一个全面的中文评估测试集,包括初中、高中、大学和专业难度级别的多项选择题,涵盖了 52 个不同的学科领域。 - CMMLU 数据集同样是一个全面的中文评估测试集,涵盖了从基础学科到高级专业水平的67个主题。 - AGIEval 数据集是一个专门为评估基础模型在难度较高的标准化考试(如大学入学考试、法学院入学考试、数学竞赛和律师资格考试)的语境中而设计的基准测试,包括中文试题和英文试题。 - GAOKAO 数据集是一个基于中国高考题构建的语言模型能力测试集,包括 1781 道客观题和 1030 道主观题。我们只保留了客观题的评测结果。 ### 推理和代码能力 - GSM8K 数据集包含了8.5K高质量的小学数学题,能够评估语言模型在数学推理能力上的表现,我们利用[官方](https://github.com/openai/grade-school-math)的评测方案在test集上进行了4-shot测试。 - MATH 数据集包含了12.5K具有挑战性的高中数学竞赛题,难度较大,对语言模型的推理能力要求较高,基于[官方](https://github.com/hendrycks/math)的评测方案,我们在test集上进行了4-shot测试。 - HumanEval 数据集是一个由openai提供的代码能力测试数据集,它由 164 个编程问题组成,要求根据给定的问题和代码模板,生成正确的代码片段,我们利用[官方](https://github.com/openai/human-eval)评测方案在test集上进行了zero-shot测试。 ### 语言理解能力 - CSL 是一个中文论文摘要关键词匹配任务,需要模型能够识别中文学术摘要与其关键词之间的匹配情况。 - CHID 是一个中文阅读理解任务,要求模型选择出最恰当的成语填补中文片段中的空缺处。 - EPRSTMT 是一个基于电子商务平台上的产品评论的二元情感分析任务。 ## 评测结果如下 | Model | MMLU | C-Eval | CMMLU | AGIEval | GAOKAO | GSM8K | MATH | HumanEval | CSL | CHID | EPRSTMT | BBH | HellaSwag | | :----------------- | :------: | :------: | :------: | :-------: | :-------: | :------: | :------: | :-------: | :-------: | :-------: | :-------: | :------: | :-------: | | | 5-shot | 5-shot | 5-shot | zero-shot | zero-shot | 4-shot | 4-shot | zero-shot | zero-shot | zero-shot | zero-shot |