码农知识堂 - 1000bd
Python
PHP
JS/TS
JAVA
C/C++
C#
GO
Kotlin
Swift
大语言模型 LLM book 笔记(一)
AI Box | 大语言模型
大语言模型LLMBook.pdf
第一部分 背景与基础知识
第一章 引言
1.1
语言模型
的发展历程
统计语言模型(Statistical Language Model, SLM)
:基于马尔可夫假设的具有固定上下文长度𝑛的统计语言模型,被称为𝑛 元(𝑛-gram)语言模型
神经语言模型(Neural Language Model, NLM)
:循环神经网络(Recurrent Neural Networks, RNN),隐特征使用词嵌入模型(Word Embedding),如word2vec
预训练语言模型(Pre-trained Language Model, PLM)
:ELMo双向LSTM,基于自注意力机制(Self-Attention)的Transformer 模型,BERT,GPT-1等
大语言模型(Large Language Model, LLM):
“扩展法则”(Scaling Law),GPT-3,PaLM,“涌现能力”(Emergent Abilities)
1.2 大语言模型的能力特点
具有较为丰富的世界知识:数据量
具有较强的通用任务解决能力:多任务学习
具有较好的复杂任务推理能力:记忆与推理
具有较强的人类指令遵循能力:提示学习
具有较好的人类对齐能力:安全性
具有可拓展的工具使用能力:搜索引擎与计算器
1.3 大语言模型关键技术概览
规模扩展
:参数、数据、算力
数据工程
:采集、清洗、配比
高效预训练
:3D 并行(数据并行、流水线并行、张量并行)、ZeRO(内存冗
余消除技术),代表框架为
DeepSpeed
和Megatron-LM
能力激发
:指令微调和提示策略(上下文学习、思维链提示)
人类对齐:
“3H对齐标准”,Helpfulness(有用性)、Honesty(诚实性)和Harmlessness(无害性),代表方法为RLHF、DPO
工具使用
:插件、计算器、搜索引擎
1.4 大语言模型对科技发展的影响
自然语言处理:从“解决特定任务”迁移到“如何进一步提升大语言模型的综合能力”
信息检索:检索增强的大语言模型以及大语言模型增强的搜索系统
计算机视觉:类ChatGPT 的视觉-语言联合对话模型,解决跨模态或多模态任务
人工智能赋能的科学研究(AI4Science):数学、化学、物理、生物等多个领域
第二章 基础介绍
2.1 大语言模型的构建过程
2.1.1 大规模预训练
预训练:
指使用与下游任务无关的大规模数据进行模型参数的初始训练,为模型参数找到一个较好的“初值点”,本质上是在做一个
世界知识的压缩
,从而能够学习到一个编码世界知识的参数模型,这个模型能够通过解压缩所需要的知识来解决真实世界的任务
流程
:**准备数据 -> 清洗 -> 词元化(Tokenization) -> 切分成批次(Batch)训练
开源模型普遍采用
2∼3T规模
的词元进行预训练,训练百亿模型至少需要百卡规模的算力集群(如A100 80G)联合训练数月时间;
难点
:数据如何进行配比、如何进行学习率的调整、如何早期发现模型的异常行为
2.1.2 指令微调与人类对齐
“指令微调”(也叫做有监督微调,Supervised Fine-tuning, SFT)
,通过使用任务输入与输出的配对数据进行模型训练,使得语言模型较好地掌握通过问答形式进行任务求解的能力,属于“模仿学习”
一般来说,
指令微调很难进行知识注入,主要起到激发作用
,数据规模仅需数千数万条即可,算力要求也小
基于人类反馈的强化学习对齐方法RLHF(Reinforcement Learning from Human Feedback)
,使用偏好排序数据训练一个符合人类价值观的
奖励模型(Reward Model)
,进行强化学习
2.2 扩展法则
2.2.1 KM扩展法则
模型规模(𝑁)、数据规模(𝐷)和计算算力(𝐶)之间的幂律关系(Power-Law Relationship)
𝐿(·) 表示用以nat(以e 为底信息量的自然对数)为单位的交叉熵损失。其中,𝑁𝑐、𝐷𝑐 和𝐶𝑐 分别表示非嵌入参数数量、训练数据数量和实际的算力开销。包括不可约损失(真实数据分布的熵)和可约损失(真实分布和模型分布之间KL 散度的估计),训练只能减少可约损失
说明:
模型性能与这三个因素之间存在着较强的依赖关系,可以近似刻画为指数关系。
2.2.2 Chinchilla 扩展法则
模型性能的幂律关系
𝐸 = 1.69,𝐴 = 406.4,𝐵 = 410.7,𝛼 = 0.34 和𝛽 = 0.28
算力资源固定情况下模型规模与数据规模的最优分配方案
其中
,𝐺 是由𝐴、𝐵、𝛼 和𝛽 计算得出的扩展系数
经验:
数据规模大概是模型参数规模的五倍(现在的工作已经远高于该比例)
2.2.3 关于扩展法则的讨论
可预测的扩展(Predictable Scaling)
:通过较小算力资源可靠地估计较大算力资源投入后的模型性能,如小模型性能或训练方法去预估大模型(配比等),大模型的早期训练性能去预估训练完成的训练性能
任务层面的可预测性:
扩展法则可预测某些任务的能力(如coding),但是有些会逆向变差或者模型大小超过规模才会出现,如以下的
涌现能力
,当模型扩展到一定规模时,模型的特定任务性能突然出现显著跃升的趋势,远超过随机水平
2.3 涌现能力
2.3.1 代表性的涌现能力
上下文学习(In-context Learning, ICL)
:在提示中为语言模型提供自然语言指令和多个任务示例(Demonstration),无需显式的训练或梯度更新,仅输入文本就能为测试样本生成预期的输出
指令遵循(Instruction Following)
:大语言模型能够按照自然语言指令来执行对应的任务,可通过指令微调(Instruction Tuning)或监督微调(Supervised Fine-tuning)
逐步推理(Step-by-step Reasoning)
:大语言模型可以利用思维链(Chain-of-Thought, CoT)提示策略来加强推理性能,在提示中引入任务相关的中间推理步骤来加强复杂任务的求解,从而获得更为可靠的答案
2.3.2 涌现能力与扩展法则的关系
扩展法则使用
语言建模损失
来衡量语言模型的整体性能,整体上展现出了较为平滑的性能提升趋势,具有较好的可预测性,但是指数形式暗示着可能存在的边际效益递减现象
涌现能力通常使用
任务性能
来衡量模型性能,整体上展现出随规模扩展的骤然跃升趋势,不具有可预测性,但是一旦出现涌现能力则意味着模型性能将会产生大幅跃升
2.4 GPT 系列模型的技术演变
2.4.1 早期探索
GPT-1:生成式预训练(Generative Pre-Training),同时期的BERT,只保留了Transformer 中的编码器,主要面向自然语言理解任务(Natural Language Understanding, NLU)
GPT-2:参数规模扩大1.5B,网络数据集WebText,无监督多任务学习范式
2.4.2 规模扩展
GPT-3:参数规模扩大175B,上下文学习few shot,建立提示学习范式
2.4.3 能力增强
代码数据训练:Codex,用GitHub代码训练
人类对齐:PPO 算法、InstructGPT的RLHF 算法
2.4.4 性能跃升
ChatGPT:对话形式训练,插件功能
GPT-4:扩展到了图文双模态,红队攻击机制
GPT-4V、GPT-4 Turbo 以及多模态支持模型:更广泛来源、更长上下文、函数调用等
第三章 大语言模型资源
3.1 公开可用的模型检查点或API
3.1.1 公开可用的通用大语言模型检查点
LLaMA、ChatGLM、Falcon、Baichuan、InternLM、Qwen、Mistral、DeepSeek LLM、Mixtral、Gemma、MiniCPM、YuLan-Chat
3.1.2 LLaMA 变体系列
基础指令:Stanford Alpaca、Vicuna
中文指令:Chinese LLaMA、Panda、Open-Chinese-LLaMA、Chinese Alpaca、YuLan-Chat
垂域指令:BenTsao(医学)、LAWGPT(法律)、TaoLi(教育)、Goat(数学)、Comucopia(金融)等
多模态指令:LLaVA 、MiniGPT4 、InstructBLIP 和PandaGPT
3.1.3 大语言模型的公共API
语言模型API:GPT-3.5 Turbo、GPT-4和GPT-4 Turbo
文本表征API:embedding 可用于聚类、稠密信息检索等多种下游任务,可以为知识检索以及检索增强生成提供支持
3.2 常用的预训练数据集
3.2.1 网页
通用网页数据:Common Crawl、C4(Colossal Clean Crawled Corpus)、CC-Stories、CC-News、REALNEWs、RedPajama-Data、RefinedWeb、WanJuan-CC、WebText、OpenWebText.
中文网页数据:ChineseWebText、WanJuan 1.0 Text、WuDaoCorpora Text、SkyPile-150B
3.2.2 书籍
BookCorpus、Project Gutenberg、arXiv Dataset、S2ORC
3.2.3 维基百科
Wikipedia
3.2.4 代码
BigQuery、The Stack、StarCoder
3.2.5 混合型数据集
The Pile、ROOTS、Dolma
3.3 常用微调数据集
3.3.1 指令微调数据集
自然语言处理任务数据集:P3(Public Pool of Prompts)、FLAN
日常对话数据集:ShareGPT、OpenAssistant、Dolly
合成数据集:Self-Instruct-52K、Alpaca-52K
3.3.2 人类对齐数据集
HH-RLHF、SHP、PKU-SafeRLHF、Stack Exchange Preferences、Sandbox Alignment Data、CValues
3.4 代码库资源
3.4.1 Hugging Face 开源社区
Transformers、Datasets、Accelerate
3.4.2 DeepSpeed
DeepSpeed-MII、DeepSpeed-Chat.
3.4.3 Megatron-LM
相关阅读:
【深入浅出设计模式--状态模式】
每日五道java面试题之spring篇(五)
2300.咒语和药水的成功对数
Netty inEventLoop方法的思想延伸
latex近日问题集锦
Linux服务器(RedHat、CentOS系)安全相关巡检shell脚本
Java—数组相关
跨局域网传数据时,你的方式真的安全吗?
深入解析Kafka消息丢失的原因与解决方案
三西格玛和六西格玛区别是什么?优思学院用一幅图告诉你
原文地址:https://blog.csdn.net/qq_56077562/article/details/141096765
最新文章
攻防演习之三天拿下官网站群
数据安全治理学习——前期安全规划和安全管理体系建设
企业安全 | 企业内一次钓鱼演练准备过程
内网渗透测试 | Kerberos协议及其部分攻击手法
0day的产生 | 不懂代码的"代码审计"
安装scrcpy-client模块av模块异常,环境问题解决方案
leetcode hot100【LeetCode 279. 完全平方数】java实现
OpenWrt下安装Mosquitto
AnatoMask论文汇总
【AI日记】24.11.01 LangChain、openai api和github copilot
热门文章
十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
奉劝各位学弟学妹们,该打造你的技术影响力了!
五年了,我在 CSDN 的两个一百万。
Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
面试官都震惊,你这网络基础可以啊!
你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
心情不好的时候,用 Python 画棵樱花树送给自己吧
通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
13 万字 C 语言从入门到精通保姆级教程2021 年版
10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系
2656653265@qq.com
京ICP备2022015340号-1
正则表达式工具
cron表达式工具
密码生成工具
京公网安备 11010502049817号