文章目录
本文为《A Survey of Large Language Models》系列笔记的一部分,原论文链接:arxiv2303.18223
开发或复现大语言模型(LLMs)绝非易事,不仅面临技术上的诸多挑战,还需要庞大的计算资源。一种可行的方式是借鉴已有 LLM 的开发经验,并复用公开可获取的资源,以便进行增量式开发或实验研究。
本笔记将简要总结当前可公开获取的 LLM 开发资源,包括:
-
模型权重(checkpoints)或 API 接口,
-
预训练语料(corpora),
-
开发与训练相关的工具库(libraries)。
模型权重(checkpoints)和 API
模型权重(checkpoints)
LLaMA 系列模型
LLaMA 系列是当前最强的开源 LLM 之一,LLaMA-3.1 凭借更大规模、长上下文和安全增强功能,在多个任务上媲美 GPT-4 与 Claude 3.5。其训练资源规模亦达业界顶级。
LLaMA-3.1(405B)在性能上可与封闭模型如 GPT-4、GPT-4o 和 Claude 3.5 Sonnet 相抗衡,表现出色。
关于训练资源:
LLaMA(65B)使用了 2,048 张 A100-80G GPU
LLaMA-3.1(405B)则动用了超过 16,000 张 H100 GPU
Mistral
Mistral 系列涵盖从轻量高效到大规模多语言支持的多种 LLM,其中除原始Mistral外还包含多个模型:
-
Mistral NeMo(12B)
- 支持长达 128K tokens 的上下文窗口
- 使用量化感知训练(quantization-aware training)
- 支持 FP8 推理,在不损失性能的前提下提升推理效率
-
Mistral Large 2(123B)
- 是 Mistral 系列中参数量最大且最强的模型
- 支持 11 种自然语言 和超过 80 种编程语言
-
Mixtral(8×7B 和 8×22B)
- 是一种稀疏专家混合模型(SMoE),即每次推理仅激活部分参数
- 相比同等规模的密集模型,更高效且节省计算资源
Gemma
Gemma 是 Google 推出的开源 LLM 系列,聚焦轻量与高效兼顾。Gemma-2(最高达 27B)在大规模英文数据上训练,并在主流基准上表现突出,是当前热门的高性能开源模型之一。
Qwen
Qwen是由阿里云推出的开源大语言模型系列,涵盖多个版本,包括:
- Qwen:参数规模从 7B 到 72B
- Qwen1.5:从 0.5B 到 110B
- Qwen2:从 0.5B 到 72B
- Qwen2.5:从 0.5B 到 72B,是最新一代版本
其中,Qwen2.5 是当前 Qwen 系列的最新模型集,预训练语料高达 18 万亿 tokens(18T)。
相较于 Qwen2,Qwen2.5 在以下方面取得了显著提升:
- 知识保留能力增强
- 代码生成与数学推理能力大幅提升
- 指令遵循性能显著优化
- 支持长文本生成(超过 8K tokens)
- 对结构化数据(如 JSON)的理解与生成能力也有明显进展
GLM
360GLM是由三六零集团与智谱AI于2023年5月16日联合发布的千亿级参数规模大语言模型。它是一系列具备中英文双语能力的大语言模型(LLM),在多个任务上表现出色。该系列目前已经升级至第四代模型 GLM-4,其最大模型参数规模为 9B,具备出色的对话能力。
Baichuan
Baichuan(百川) 是一系列开源的中英双语大语言模型(LLM),其最新版本为 Baichuan-2。Baichuan-2 在法律、医疗等垂直领域的任务中表现出良好潜力,显示其在专业领域应用中的发展前景。
Llama 大家族
Meta AI 于 2023 年 2 月发布了 LLaMA 模型系列,包含四种参数规模:7B、13B、30B 和 65B。它在多个开源评估基准上表现出色,成为目前最受欢迎的开源语言模型之一。
大量研究者在 LLaMA 的基础上进行了指令微调(instruction tuning)或持续预训练(continual pre-training)。其中,对 LLaMA 进行指令微调已成为构建定制模型的主流方法。
在将 LLaMA 应用于非英语语言任务时,通常需要扩展词表(原始模型词表主要基于英语语料训练),或通过目标语言的指令数据或语料进行微调。
由于 LLaMA 表现优异,许多多模态模型选择将其作为基础语言模型,以实现强大的语言理解与生成能力。
其中,Vicuna 特别受欢迎,常被用于多模态模型中。
API
相比直接使用本地模型副本,API 接口为普通用户提供了更便捷的方式使用大语言模型(LLMs),无需本地部署即可调用强大的模型功能。
OpenAI GPT-3 系列的七个主要模型接口如下:
- ada
- babbage
- curie
- davinci(GPT-3 系列中最强版本)
- text-ada-001
- text-babbage-001
- text-curie-001
其中前四个(ada、babbage、curie、davinci)可在 OpenAI 的服务器上进行微调。它们分别对应以下 GPT-3 模型规模:
- babbage → GPT-3(1B 参数)
- curie → GPT-3(6.7B)
- davinci → GPT-3(175B)
常用的大语言模型预训练语料
与早期的预训练语言模型(PLMs)相比,参数数量显著增加的大型语言模型(LLMs)需要更大量的训练数据,并且这些数据需要涵盖广泛的内容领域。
语料库分为五类:网页、书籍、维基百科、代码和其他。
网页
| 名称 | 数据来源 | 体量(Token) | 多语言支持 | 是否开源 | 清洗方式 | 用途或代表模型 |
|---|---|---|---|---|---|---|
| CommonCrawl | 全网网页爬取 | PB级(原始数据) | 含多语言 | ✅(部分) | 需手动处理(如用 CCNet) | GPT-3、PaLM、其他多数模型的基础源 |
| C4(Colossal Clean Crawled Corpus) | 基于清洗后的 CommonCrawl | 多版本:en(806G)、mC4(38T)等 | ✅(mC4) | ✅ | 预处理清洗(已去噪、筛选) | T5、LaMDA、Gopher、UL2、mT5 等 |
| RedPajama-Data | CommonCrawl 子集(经过筛选) | ≈30T token(100B 文档) | ✅(英、法、西、德、意) | ✅ | 用 CCNet 清洗、去重、打标签 | 开源大模型训练数据(Hugging Face 可下载) |
| RefinedWeb | CommonCrawl(2008–2023 全量) | 总量约 5T(开源部分 600B) | 不明确(主要是英文) | ✅ | 严格筛选、去重 | Falcon 模型训练语料 |
| WebText | Reddit 上高评分链接内容 | 未公布 | 主要英文 | ❌(不开源) | 无公开详情 | GPT-2 原始训练数据 |
| OpenWebText(WebText 替代) | Reddit 高分链接(社区重建) | 与 WebText 类似(未明确) | 主要英文 | ✅ | 类似 WebText 清洗流程 | GPT-2 替代训练用开源语料 |
书籍
图书数据
BookCorpus 是早期小规模模型(如 GPT 和 GPT-2)中常用的数据集,包含超过 11,000 本书。
另一个大规模图书语料库是 Project Gutenberg,包含超过 70,000 本文学类书籍,包括小说、散文、诗歌、戏剧、历史、科学、哲学等各种类型的公共领域作品。它是目前最大的开源图书合集之一,曾被用于训练 MT-NLG 和 LLaMA 模型。
GPT-3用了Book1和Book2书籍,corpus非常大,未公布。
学术数据
arXiv 数据集 是一个包含约 170 万篇学术论文的语料库,涵盖物理、数学和计算机科学等多个领域。
S2ORC 是由 Semantic Scholar 收集的语料库,包含约 1.36 亿篇学术论文。它还发布了一个衍生数据集 peS2o,其中包含约 420 亿个tokens。
维基百科
维基百科是一个在线百科全书,包含大量高质量的文章,涵盖各种主题。这些文章大多数采用说明文风格(并附有参考资料支持),内容覆盖多个语言和学科领域。通常,经过筛选的英文版本是多数大型语言模型(如 GPT-3、LaMDA 和 LLaMA)中最常使用的版本。由于维基百科支持多种语言,因此也可用于多语言模型的训练场景。
代码
两个主要来源是:公开代码仓库(如 GitHub)和代码相关的问答平台(如 StackOverflow)。
Google 公开发布了 BigQuery 数据集,包含代码。此外,Hugging Face 收集并发布了一个名为 The Stack 的代码数据集,覆盖超过 30 种编程语言。The Stack 持续更新,目前 v1.2 版本已经扩展至 358 种编程语言。
其他
除了前面提到的各种特定类型的数据集外,研究者们还将不同类型的数据组合使用,以便更好地训练语言模型。
The Pile 是一个大规模、多样化的开源文本数据集,总量超过 800GB;ROOTS 是另一个混合数据集,由多个较小的数据集组成,总共包含 1.61TB 文本。
还有一个混合数据集是 Dolma,它包括来自 Common Crawl 的网页文本、Semantic Scholar 的学术论文、GitHub 的代码、图书、Reddit 的社交媒体内容和维基百科数据。Dolma 包含约 200TB 原始文本,总词元数达到 3 万亿。
常用微调数据集
在预训练完成之后,需要对大型语言模型(LLMs)进行进一步的微调,以提升模型能力。这一过程通常包括两个主要步骤:指令微调和对齐微调。
指令微调数据集
在预训练之后,指令微调是一种重要的方法,用于增强或激发大型语言模型(LLMs)特定的能力,例如指令跟随能力。
它有三种数据集:1)自然语言处理任务类数据集(NLP task datasets)2)日常对话类数据集(daily chat datasets)3)合成类数据集(synthetic datasets)
NLP任务类数据集
这一类数据集是在已有的自然语言处理任务数据(如文本分类、摘要等)的基础上,加入相应的自然语言任务描述进行格式化处理,转换为“指令 + 输入 + 输出”的形式,用于指令微调。在这一类别中,P3 和 FLAN 是两个被广泛使用的数据集。
日常对话数据集
这一类数据集基于真实用户对话构建,其中问题由人类提出,回答则主要由人工标注者或大型语言模型(如 ChatGPT、GPT-4)生成。ShareGPT、OpenAssistant 和 Dolly 是最常用的三个代表。
合成数据集
这类数据集通常是通过引导大型语言模型(LLMs)按预设规则或方法生成的。在这一类中,Self-Instruct-52K、Alpaca 和 Baize 是三个常用于微调LLMs的合成数据集。
对齐微调数据集
除了指令微调之外,为了使大型语言模型(LLMs)能够对齐人类的价值观和偏好(例如:有用性、诚实性和无害性),构建高质量的对齐数据集也非常重要。
| 数据集名称 | 数据规模 | 对齐目标 | 数据来源 | 每条样本的结构 | 标注者类型 | 特点/备注 |
|---|---|---|---|---|---|---|
| HH-RLHF | ~169K | Helpfulness & Harmlessness | 人工生成对话 | 用户提问 + 2 个模型回复 + 人类偏好选择 | 众包人工标注者 | 模型与人类之间真实对话,偏好选出更有用或更安全的回复 |
| SHP | ~385K | Helpfulness | Reddit 社区真实内容 | Reddit 问题/指令 + 2 条评论 + 用户偏好 | Reddit 用户投票(自然标注) | 内容真实自然,跨 18 个主题领域,如法律、烹饪等 |
| PKU-SafeRLHF | ~330K | Helpfulness & Harmlessness | 专家人工对比标注 | 问题 + 2 个回答 + 安全标签 + 偏好标签 | 专家 | 包含 14 类风险维度的安全性判断,结构更复杂 |
| Stack Exchange Preferences | ~10M | Helpfulness | Stack Overflow | 提问 + 多个回答 + 每个回答的得票数与“是否被采纳”标签 | Stack 用户(投票与采纳) | 数据规模最大,侧重技术类问答,基于社区行为生成偏好标注 |
| Sandbox Alignment Data | ~169K | Societal alignment(社会价值对齐) | 模型生成并评价 | 社会性问题 + 多个模型回答 + 其他模型打分 | 模型自己 | 由多个模型互评生成,模拟社会交互,不依赖人类标注 |
工具库资源
Transformers 是一个开源的 Python 库,用于构建基于 Transformer 架构的模型,由 Hugging Face 开发和维护。它提供了一个简单、易用的 API,便于用户使用和自定义各种预训练模型。
DeepSpeed 是由微软开发的一个深度学习优化库,兼容 PyTorch,它支持多种用于分布式训练的优化技术,例如内存优化(包括 ZeRO 技术、梯度检查点)以及流水线并行(pipeline parallelism)等。
Megatron-LM 是由 NVIDIA 开发的一个深度学习库,用于训练大规模语言模型。它同样提供了丰富的分布式训练优化技术,包括模型并行和数据并行、混合精度训练以及 FlashAttention。这些优化技术能够显著提升训练效率和速度,从而实现跨多个 GPU 的高效分布式训练。
JAX 是由 Google 开发的一个 Python 库,用于实现高性能的机器学习算法。它允许用户在数组上便捷地进行计算,并支持硬件加速(如 GPU 或 TPU)。JAX 能够在多种设备上高效计算,并提供一些重要功能,例如自动微分和即时编译。
Colossal-AI 是由 HPC-AI Tech 开发的深度学习库,用于训练大规模的人工智能模型。该库基于 PyTorch 实现,支持多种并行训练策略,并能够结合 PatrickStar 提出的方法,优化异构内存管理。
BMTrain 是由 OpenBMB 开发的一个高效分布式训练库,用于训练具有大规模参数的模型。它强调代码简洁、资源占用低、易于部署的特点。
FastMoE 是一个专门用于训练 MoE(混合专家模型) 的训练库。它基于 PyTorch 开发,在设计中兼顾了效率和易用性。
vLLM 是当前最先进的 LLM 推理/部署框架之一,特别适合需要快速响应、低资源占用和高兼容性的场景。它使得将 Hugging Face 模型部署为 ChatGPT 风格的 API 服务变得快速高效,非常适合应用落地和企业级部署需求。
DeepSpeed-MII 是一个高度工程化、适合大规模部署的推理加速工具,特别适用于希望用低成本、高性能方式运行 LLM 的团队。它集成多项底层优化技术,并支持主流开源大模型,是构建企业级大模型推理服务的理想选择之一。
DeepSpeed-Chat 是构建和训练 ChatGPT 风格模型的完整解决方案,尤其适合开发者和研究者进行 RLHF 全流程训练。它将复杂的训练任务封装为易于上手的工具,同时提供 DeepSpeed 高效的底层优化能力,大大降低了 RLHF 的技术门槛和资源成本。
1838

被折叠的 条评论
为什么被折叠?



