共计 10882 个字符,预计需要花费 28 分钟才能阅读完成。
随着 ChatGPT 的迅速出圈,减速了大模型时代的改革。对于以 Transformer、MOE 构造为代表的大模型来说,传统的单机单卡训练模式必定不能满足上千(万)亿级参数的模型训练,这时候咱们就须要解决内存墙和通信墙等一系列问题,在单机多卡或者多机多卡进行模型训练。
最近一段时间,我也在摸索大模型相干的一些技术,上面做一个简略的总结。
大模型技术交换群
写在后面,我创立了一个大模型学习交换群,供大家一起学习交换大模型相干的最新技术,可加我微信(lgd215666835)进群(加微信请备注来意,如:进大模型学习交换群 +segmentfault)。
GPU 集群
因为目前只有 3 台 A800 GPU 服务器(共 24 卡)。基于目前现有的一些 AI 框架和大模型,无奈充分利用 3 台服务器。比方:OPT-66B 一共有 64 层 Transformer,当应用 Alpa 进行流水线并行时,通过流水线并行对模型进行切分,要么应用 16 卡,要么应用 8 卡,没法间接应用 24 卡,因而,GPU 服务器最好是购买偶数台(如:2 台、4 台、8 台)。
具体的硬件配置如下:
- CPUs: 每个节点具备 1TB 内存的 Intel CPU,物理 CPU 个数为 64,每颗 CPU 核数为 16。
- GPUs: 24 卡 A800 80GB GPUs,每个节点 8 个 GPU(3 个节点)。
目前应用 Huggingface Transformers 和 DeepSpeed 进行通过数据并行进行训练(pretrain),单卡能够跑三百亿参数(启用 ZeRO- 2 或 ZeRO-3),如 OPT-30B,具体训练教程参考官网样例。
应用 Alpa 进行流水线并行和数据并行进行训练(fine tuning)时,应用了 3 台共 24 卡(PP:12,DP:2)进行训练 OPT-30B,具体训练教程参考官网样例。然而进行模型训练之前须要先进行模型格局转换,将 HF 格局转换为 Alpa 格局的模型文件,具体请参考官网代码。如果不想转换,官网也提供了转换好的模型格局,具体请参考文档:Serving OPT-175B, BLOOM-176B and CodeGen-16B using Alpa。
大模型算法
模型构造:
目前支流的大模型都是 Transformer、MOE 构造为根底进行构建,如果说 Transformer 构造使得模型冲破到上亿参数量,MoE 稠密混合专家构造使模型参数量产生进一步冲破,达到数万亿规模。
大模型算法:
下图具体展现了 AI 大模型的倒退历程:
能够说,Transformer 创始了继 MLP、CNN 和 RNN 之后的第四大类模型。而基于 Transformer 构造的模型又能够分为 Encoder-only、Decoder-only、Encoder-Decoder 这三类。
- 仅编码器架构(Encoder-only):自编码模型(毁坏一个句子,而后让模型去预测或填补),更善于了解类的工作,例如:文本分类、实体辨认、要害信息抽取等。典型代表有:Bert、RoBERTa 等。
- 仅解码器架构(Decoder-only):自回归模型(将解码器本人以后步的输入退出下一步的输出,解码器交融所有曾经输出的向量来输入下一个向量,所以越往后的输入思考了更多输出),更善于生成类的工作,例如:文本生成。典型代表有:GPT 系列、LLaMA、OPT、Bloom 等。
- 编码器 - 解码器架构(Encoder-Decoder):序列到序列模型(编码器的输入作为解码器的输出),次要用于基于条件的生成工作,例如:翻译,概要等。典型代表有:T5、BART、GLM 等。
大语言模型
目前业界能够下载到的一些大语言模型:
- ChatGLM-6B:中英双语的对话语言模型。
- GLM-10B/130B:双语(中文和英文)双向浓密模型。
- OPT-2.7B/13B/30B/66B:Meta 开源的预训练语言模型。
- LLaMA-7B/13B/30B/65B:Meta 开源的根底大语言模型。
- Alpaca(LLaMA-7B):斯坦福提出的一个弱小的可复现的指令追随模型,种子工作都是英语,收集的数据也都是英文,因而训练进去的模型未对中文优化。
- BELLE(BLOOMZ-7B/LLaMA-7B/LLaMA-13B):本我的项目基于 Stanford Alpaca,针对中文做了优化,模型调优仅应用由 ChatGPT 生产的数据(不蕴含任何其余数据)。
- Bloom-7B/13B/176B:能够解决 46 种语言,包含法语、汉语、越南语、印度尼西亚语、加泰罗尼亚语、13 种印度语言(如印地语)和 20 种非洲语言。其中,Bloomz 系列模型是基于 xP3 数据集微调。举荐用于英语的提醒(prompting);Bloomz-mt 系列模型是基于 xP3mt 数据集微调。举荐用于非英语的提醒(prompting)。
- Vicuna(7B/13B):由 UC Berkeley、CMU、Stanford 和 UC San Diego 的钻研人员创立的 Vicuna-13B,通过在 ShareGPT 收集的用户共享对话数据中微调 LLaMA 取得。其中,应用 GPT-4 进行评估,发现 Vicuna-13B 的性能在超过 90% 的状况下实现了与 ChatGPT 和 Bard 相匹敌的能力;同时,在 90% 状况下都优于 LLaMA 和 Alpaca 等其余模型。而训练 Vicuna-13B 的费用约为 300 美元。不仅如此,它还提供了一个用于训练、服务和评估基于大语言模型的聊天机器人的开放平台:FastChat。
- Baize:白泽是在 LLaMA 上训练的。目前包含四种英语模型:白泽 -7B、13B、30B(通用对话模型)以及一个垂直畛域的白泽 - 医疗模型,供钻研 / 非商业用途应用,并打算在将来公布中文的白泽模型。白泽的数据处理、训练模型、Demo 等全副代码曾经开源。
- LLMZoo:来自香港中文大学和深圳市大数据研究院团队推出的一系列大模型,如:Phoenix(凤凰)和 Chimera 等。
-MOSS:由复旦 NLP 团队推出的 MOSS 大语言模型。
20230325(过后官网还未开源训练代码,目前间接基于官网的训练代码即可):
前两天测试了 BELLE,对中文的成果感觉还不错。具体的模型训练(预训练)办法可参考 Hugingface Transformers 的样例,SFT(指令精调)办法可参考 Alpaca 的训练代码。
从下面能够看到,开源的大语言模型次要有三大类:GLM 衍生的大模型(wenda、ChatSQL 等)、LLaMA 衍生的大模型(Alpaca、Vicuna、BELLE、Phoenix、Chimera 等)、Bloom 衍生的大模型(Bloomz、BELLE、Phoenix 等)。
| 模型 | 训练数据量 | 模型参数 | 训练数据范畴 | 词表大小 |
| ———- | ————– | —— | — | — |
| LLaMA | 1T~1.4T tokens(其中,7B/13B 应用 1T,33B/65B 应用 1.4T) | 7B~65B | 以英语为次要语言的拉丁语系 | 32000 |
| ChatGLM-6B | 约 1T tokens | 6B | 中文、英语 | 130528 |
| Bloom | 1.6TB 预处理文本,转换为 350B 惟一 tokens | 300M~176B | 46 种自然语言,13 种编程语言 | 250680 |
从表格中能够看到,对于像 ChatGLM-6B、LLaMA、Bloom 这类大模型,要保障基座模型有比拟好的成果,至多须要保障上千亿、万亿级的 Token 量。
目前来看,LLaMA 无疑是其中最闪亮的星。然而国内对于 LLaMA 比拟大的一个争执就是 LLaMA 是以英语为次要语言的拉丁语系上进行训练的,LLaMA 词表中的中文 token 比拟少(只有几百个),需不需要裁减词表?如果不裁减词表,中文成果会不会比拟差?
- 如果不裁减词表,对于中文成果怎么样?依据 Vicuna 官网的报告,通过 Instruction Turing 的 Vicuna-13B 曾经有十分好的中文能力。
- LLaMA 需不需要裁减词表?依据 Chinese-LLaMA-Alpaca 和 BELLE 的报告,裁减中文词表,能够晋升中文编解码效率以及模型的性能。然而扩词表,相当于从头初始化开始训练这些参数。如果想达到比拟好的性能,须要比拟大的算力和数据量。同时,Chinese-LLaMA-Alpaca 也指出在进行第一阶段预训练(解冻 transformer 参数,仅训练 embedding,在尽量不烦扰原模型的状况下适配新增的中文词向量)时,模型收敛速度较慢。如果不是有特地富余的工夫和计算资源,倡议跳过该阶段。因而,尽管扩词表看起来很迷人,然而实际操作起来,还是很有难度的。
上面是 BELLE 针对是否裁减词表,数据品质、数据语言散布、数据规模对于模型性能的比照:
其中,BELLE-0.5M-CLEAN是从 230 万指令数据中荡涤失去 0.5M 数据(蕴含单轮和多轮对话数据)。LLaMA-7B-EXT 是针对 LLaMA 做了中文词表裁减的预训练模型。
上面是 Chinese-LLaMA-Alpaca 针对中文 Alpaca-13B、中文 Alpaca-Plus-7B、中文 Alpaca-Plus-13B 的成果比照:
其中,Plus 系列 Alpaca 是在原版 LLaMA 的根底上裁减了中文词表,应用了 120G 中文通用纯文本数据进行二次预训练。
因而,如果既想要中文词表,又没有很大的算力,那倡议间接应用 ChatGLM-6B 或者应用 BELLE 和 Chinese-LLaMA-Alpaca 进行中文词表裁减后训练好的模型作为 Base 模型。
多模态大模型
目前业界能够下载到的一些多模态大模型:
- MiniGPT-4:沙特阿拉伯阿卜杜拉国王科技大学的钻研团队开源。
- LLaVA:由威斯康星大学麦迪逊分校,微软研究院和哥伦比亚大学独特出品。
- VisualGLM-6B:开源的,反对 图像、中文和英文 的多模态对话语言模型,语言模型基于 ChatGLM-6B,具备 62 亿参数;图像局部通过训练 BLIP2-Qformer 构建起视觉模型与语言模型的桥梁,整体模型共 78 亿参数。
分布式并行及显存优化技术
并行技术:
- 数据并行(如:PyTorch DDP)
- 模型 / 张量并行(如:Megatron-LM(1D)、Colossal-AI(2D、2.5D、3D))
- 流水线并行(如:GPipe、PipeDream、PipeDream-2BW、PipeDream Flush(1F1B))
- 多维混合并行(如:3D 并行(数据并行、模型并行、流水线并行))
- 主动并行(如:Alpa(主动算子内 / 算子间并行))
- 优化器相干的并行(如:ZeRO(零冗余优化器,在执行的逻辑上是数据并行,但能够达到模型并行的显存优化成果)、PyTorch FSDP)
显存优化技术:
- 重计算(Recomputation):Activation checkpointing(Gradient checkpointing),实质上是一种用工夫换空间的策略。
- 卸载(Offload)技术:一种用通信换显存的办法,简略来说就是让模型参数、激活值等在 CPU 内存和 GPU 显存之间左右横跳。如:ZeRO-Offload、ZeRO-Infinity 等。
混合精度(BF16/FP16):升高训练显存的耗费,还能将训练速度晋升 2 - 4 倍。
- BF16 计算时可防止计算溢出,呈现 Inf case。
- FP16 在输出数据超过 65506 时,计算结果溢出,呈现 Inf case。
分布式训练框架
如何抉择一款分布式训练框架?
- 训练老本:不同的训练工具,训练同样的大模型,老本是不一样的。对于大模型,训练一次动辄上百万 / 千万美元的费用。适合的老本始终是正确的抉择。
- 训练类型:是否反对数据并行、张量并行、流水线并行、多维混合并行、主动并行等
- 效率:将一般模型训练代码变为分布式训练所需编写代码的行数,咱们心愿越少越好。
- 灵活性:你抉择的框架是否能够跨不同平台应用?
常见的分布式训练框架:
- 第一类:深度学习框架自带的分布式训练性能。如:TensorFlow、PyTorch、MindSpore、Oneflow、PaddlePaddle 等。
- 第二类:基于现有的深度学习框架(如:PyTorch、Flax)进行扩大和优化,从而进行分布式训练。如:Megatron-LM(张量并行)、DeepSpeed(Zero-DP)、Colossal-AI(高维模型并行,如 2D、2.5D、3D)、Alpa(主动并行)等
目前训练超大规模语言模型次要有两条技术路线:
- TPU + XLA + TensorFlow/JAX:由 Google 主导,因为 TPU 和自家云平台 GCP 深度绑定
- GPU + PyTorch + Megatron-LM + DeepSpeed:由 NVIDIA、Meta、MicroSoft 大厂加持,社区气氛沉闷,也更受到大家欢送。
参数高效微调(PEFT)技术
在面对特定的上游工作时,如果进行 Full FineTuning(即对预训练模型中的所有参数都进行微调),太过低效;而如果采纳固定预训练模型的某些层,只微调靠近上游工作的那几层参数,又难以达到较好的成果。
PEFT 技术旨在 通过最小化微调参数的数量和计算复杂度,来进步预训练模型在新工作上的性能,从而缓解大型预训练模型的训练老本。这样一来,即便计算资源受限,也能够利用预训练模型的常识来迅速适应新工作,实现高效的迁徙学习。因而,PEFT 技术能够在进步模型成果的同时,大大缩短模型训练工夫和计算成本,让更多人可能参加到深度学习钻研中来。
- Prefix Tuning:与 full fine-tuning 更新所有参数的形式不同,该办法是在输出 token 之前结构一段工作相干的 virtual tokens 作为 Prefix,而后训练的时候只更新 Prefix 局部的参数,而 Transformer 中的其余局部参数固定。该办法其实和结构 Prompt 相似,只是 Prompt 是人为结构的“显式”的提醒, 并且无奈更新参数,而 Prefix 则是能够学习的“隐式”的提醒。
同时,为了避免间接更新 Prefix 的参数导致训练不稳固的状况,他们在 Prefix 层后面加了 MLP 构造(相当于将 Prefix 合成为更小维度的 Input 与 MLP 的组合后输入的后果),训练实现后,只保留 Prefix 的参数。 - Prompt Tuning:该办法能够看作是 Prefix Tuning 的简化版本,只在输出层退出 prompt tokens,并不需要退出 MLP 进行调整来解决难训练的问题。随着预训练模型参数量的减少,Prompt Tuning 的办法会迫近 fine-tuning 的后果。
- P-Tuning:该办法的提出次要是为了解决这样一个问题:大模型的 Prompt 结构形式重大影响上游工作的成果。P-Tuning 将 Prompt 转换为能够学习的 Embedding 层,并用 MLP+LSTM 的形式来对 prompt embedding 进行一层解决。
P-Tuning v2:让 Prompt Tuning 可能在不同参数规模的预训练模型、针对不同上游工作的后果上都达到匹敌 Fine-tuning 的后果。相比 Prompt Tuning 和 P -tuning 的办法,P-Tuning v2 办法在多层退出了 Prompts tokens 作为输出,带来两个方面的益处:
- 带来更多可学习的参数(从 P -tuning 和 Prompt Tuning 的 0.1% 减少到 0.1%-3%),同时也足够参数高效。
- 退出到更深层构造中的 Prompt 能给模型预测带来更间接的影响。
- Adapter Tuning:该办法设计了 Adapter 构造(首先是一个 down-project 层将高维度特色映射到低维特色,而后过一个非线形层之后,再用一个 up-project 构造将低维特色映射回原来的高维特色;同时也设计了 skip-connection 构造,确保了在最差的状况下可能进化为 identity),并将其嵌入 Transformer 的构造外面,在训练时,固定住原来预训练模型的参数不变,只对新增的 Adapter 构造进行微调。同时为了保障训练的高效性(也就是尽可能少的引入更多参数)。
- LoRA:在波及到矩阵相乘的模块,引入 A、B 这样两个低秩矩阵模块去模仿 full fine-tuning 的过程,相当于只对语言模型中起关键作用的低秩实质维度进行更新。
典型利用:
- ChatGLM-Tuning:一种平价的 chatgpt 实现计划,基于清华的 ChatGLM-6B + LoRA 进行 finetune。
- Alpaca-Lora:应用低秩自适应(LoRA)复现斯坦福羊驼的后果。Stanford Alpaca 是在 LLaMA 整个模型上微调,而 Alpaca-Lora 则是利用 Lora 技术,在解冻原模型 LLaMA 参数的状况下,通过往模型中退出额定的网络层,并只训练这些新增的网络层参数。因为这些新增参数数量较少,这样不仅微调的老本显著降落,还能取得和全模型微调相似的成果。
- BLOOM-LORA:因为 LLaMA 的限度,咱们尝试应用 Alpaca-Lora 从新实现 BLOOM-LoRA。
PEFT 实现:
- PEFT:Huggingface 推出的 PEFT 库。
- unify-parameter-efficient-tuning:一个参数高效迁徙学习的对立框架。
高效微调技术目前存在的两个问题:
相比全参数微调,高效微调技术目前存在的两个问题:
- 推理速度会变慢
- 模型精度会变差
影响大模型性能的次要因素
OpenAI 的论文 Scaling Laws for Neural Language Models 中列举了影响模型性能最大的三个因素:计算量 、 数据集大小 、 模型参数量。也就是说,当其余因素不成为瓶颈时,计算量、数据集大小、模型参数量这 3 个因素中的单个因素指数减少时,loss 会线性的降落。
除了以上的因素之外,还有一个比拟大的影响因素就是 数据品质 。在微软的论文Instruction Tuning with GPT-4 中指出,同样基于 LLaMA 模型,应用 GPT3 和 GPT4 产生的数据,对模型进行 Instruction Turing,能够看到 GPT4 的数据微调过的模型成果远远好于 GPT3 数据微调的模型,可见数据品质带来的影响。同样的,Vicuna(7B/13B)的 Instruction Turing 中,也对 shareGPT 的数据做了很粗疏的荡涤工作。
掂量大模型程度
要评估一个大型语言模型的程度,能够从以下几个维度提出具备代表性的问题。
- 理解能力:提出一些须要深刻了解文本的问题,看模型是否能精确答复。
- 语言生成能力:让模型生成一段无关特定主题的文章或故事,评估其生成的文本在构造、逻辑和语法等方面的品质。
- 知识面广度:请模型答复对于不同主题的问题,以测试其对不同畛域的常识把握水平。这能够是对于迷信、历史、文学、体育或其余畛域的问题。一个优良的大语言模型应该能够答复各种畛域的问题,并且准确性和深度都很高。
- 适应性:让模型解决各种不同类型的工作,例如:写作、翻译、编程等,看它是否能灵便应答。
- 长文本了解:提出一些须要解决长文本的问题,例如:提供一篇文章,让模型总结出文章的要点,或者请模型创作一个故事或一篇文章,让其有一个残缺的情节,并且不要呈现显著的逻辑矛盾或故事构造上的谬误。一个好的大语言模型应该可能以一个连贯的形式讲述一个故事,让读者沉迷其中。
- 长文本生成:请模型创作一个故事或一篇文章,让其有一个残缺的情节,并且不要呈现显著的逻辑矛盾或故事构造上的谬误。一个好的大语言模型应该可能以一个连贯的形式讲述一个故事,让读者沉迷其中。
- 多样性:提出一个问题,让模型给出多个不同的答案或解决方案,测试模型的创造力和多样性。
- 情感剖析和推断:提供一段对话或文本,让模型剖析其中的情感和态度,或者推断角色间的关系。
- 情感表白:请模型生成带有情感色调的文本,如形容某个场景或事件的情感、形容一个人物的情感状态等。一个优良的大语言模型应该可能精确地捕获情感,将其表达出来。
- 逻辑推理能力:请模型答复须要进行推理或逻辑剖析的问题,如概率或逻辑推理等。这能够帮忙判断模型对推理和逻辑思考的能力,以及其在解决逻辑问题方面的准确性。例如:“所有的动物都会呼吸。狗是一种动物。那么狗会呼吸吗?”
- 问题解决能力:提出理论问题,例如:数学题、编程问题等,看模型是否能给出正确的解答。
- 道德和伦理:测试模型在解决无关道德和伦理问题时的体现,例如:“在什么状况下扯谎是能够承受的?”
- 对话和聊天:请模型进行对话,以测试其对自然语言解决的把握水平和能力。一个优良的大语言模型应该可能精确地答复问题,并且可能了解人类的语言表达形式。
大模型评估办法:
- 人工评估:LIMA、Phoenix
- 应用 GPT-4 的反馈进行主动评估:Vicuna、Phoenix、Chimera、BELLE
- 指标评估(BLEU-4、ROUGE 分数):ChatGLM-6B;对于像 ROUGE- L 分数的指标评估,有些中央称其为非天然指令评估(Unnatural Instruction Evaluation)。
大模型评估工具:
- Open AI evals
大模型推理减速
模型推理作为模型投产的最初一公里,须要确保模型精度的同时谋求极致的推理性能。相比传统模型来说,大模型面临着更多的挑战。
以后优化模型最次要技术手段概括来说有以下三个层面:
- 算法层面:蒸馏、量化
- 软件层面:计算图优化、模型编译
- 硬件层面:FP8(NVIDIA H 系列 GPU 开始反对 FP8,兼有 fp16 的稳定性和 int8 的速度)
推理减速框架:
FasterTransformer:英伟达推出的 FasterTransformer 不批改模型架构而是在计算减速层面优化 Transformer 的 encoder 和 decoder 模块。具体包含如下:
- 尽可能多地交融除了 GEMM 以外的操作
- 反对 FP16、INT8、FP8
- 移除 encoder 输出中无用的 padding 来缩小计算开销
TurboTransformers:腾讯推出的 TurboTransformers 由 computation runtime 及 serving framework 组成。减速推理框架实用于 CPU 和 GPU,最重要的是,它能够无需预处理便可解决变长的输出序列。具体包含如下:
- 与 FasterTransformer 相似,它交融了除 GEMM 之外的操作以缩小计算量
- smart batching,对于一个 batch 内不同长度的序列,它也最小化了 zero-padding 开销
- 对 LayerNorm 和 Softmax 进行批处理,使它们更适宜并行计算
- 引入了模型感知分配器,以确保在可变长度申请服务期间内存占用较小
教训与教训
教训:
- 对于同一模型,抉择不同的训练框架,对于资源的耗费状况可能存在显著差别(比方应用 Huggingface Transformers 和 DeepSpeed 训练 OPT-30 绝对于应用 Alpa 对于资源的耗费会低不少)。
- 进行大模型模型训练时,先应用小规模模型(如:OPT-125m/2.7b)进行尝试,而后再进行大规模模型(如:OPT-13b/30b…)的尝试,便于呈现问题时进行排查。目前来看,业界也是基于绝对较小规模参数的模型(6B/7B/13B)进行的优化,同时,13B 模型通过指令精调之后的模型成果曾经可能达到 GPT4 的 90% 的成果。
教训:
- 针对已有的环境进行分布式训练环境搭建时,肯定要留神之前环境的 python、pip、virtualenv、setuptools 的版本。不然创立的虚拟环境即便指定对了 Python 版本,也可能会遇到很多装置依赖库的问题(GPU 服务器可能拜访外网的状况下,倡议应用 Docker 相对来说更不便)。
- 遇到须要降级 GLIBC 等底层库须要降级的提醒时,肯定要谨慎,不要轻易降级,否则,可能会造成零碎宕机或很多命令无奈操作等状况。
大模型实际文章
上面是最近大模型实际过程中的一些文章,配套代码搁置在 GitHub:llm-action
LLM 训练:
LLM | 预训练 / 微调 /RLHF… | 参数 | 教程 | 代码 |
---|---|---|---|---|
Alpaca | full fine-turning | 7B | 从 0 到 1 复现斯坦福羊驼(Stanford Alpaca 7B) | N/A |
Alpaca | lora | 7B | 1. 足够惊艳,应用 Alpaca-Lora 基于 LLaMA(7B)二十分钟实现微调,成果比肩斯坦福羊驼 <br/>2. 应用 LoRA 技术对 LLaMA 65B 大模型进行微调及推理 | 配套代码 |
BELLE(LLaMA-7B/Bloomz-7B1-mt) | full fine-turning | 7B | 1. 基于 LLaMA-7B/Bloomz-7B1-mt 复现开源中文对话大模型 BELLE 及 GPTQ 量化 <br/>2. BELLE(LLaMA-7B/Bloomz-7B1-mt)大模型应用 GPTQ 量化后推理性能测试 | N/A |
ChatGLM | lora | 6B | 从 0 到 1 基于 ChatGLM-6B 应用 LoRA 进行参数高效微调 | N/A |
ChatGLM | full fine-turning/P-Tuning v2 | 6B | 应用 DeepSpeed/P-Tuning v2 对 ChatGLM-6B 进行微调 | N/A |
Vicuna | full fine-turning | 7B | 大模型也内卷,Vicuna 训练及推理指南,成果碾压斯坦福羊驼 | N/A |
OPT | RLHF | N/A | 1. 一键式 RLHF 训练 DeepSpeed Chat(一):实践篇 <br/>2. 一键式 RLHF 训练 DeepSpeed Chat(二):实际篇 | N/A |
MiniGPT-4 | full fine-turning | 7B | 大杀器,多模态大模型 MiniGPT- 4 入坑指南 | N/A |
Chinese-LLaMA-Alpaca | lora(预训练 + 微调) | 7B | 应用 LoRA 技术对 LLaMA 65B 大模型进行微调及推理 | 配套代码 |
LLM 推理:
- 大模型的好搭档,浅析推理减速引擎 FasterTransformer
- 模型推理服务化框架 Triton 保姆式教程(一):疾速入门
- 模型推理服务化框架 Triton 保姆式教程(二):架构解析
- 模型推理服务化框架 Triton 保姆式教程(三):开发实际
LLM 微调技术:
对于一般公众来说,进行大模型的预训练或者全量微调遥不可及。由此,催生了各种参数高效微调技术,让科研人员或者一般开发者有机会尝试微调大模型。
因而,该技术值得咱们进行深入分析其背地的机理,本系列大体分七篇文章进行解说。
- 大模型参数高效微调技术原理综述(一)- 背景、参数高效微调简介
- 大模型参数高效微调技术原理综述(二)-BitFit、Prefix Tuning、Prompt Tuning
- 大模型参数高效微调技术原理综述(三)-P-Tuning、P-Tuning v2
- 大模型参数高效微调技术原理综述(四)-Adapter Tuning 及其变体
- 大模型参数高效微调技术原理综述(五)-LoRA、AdaLoRA、QLoRA
- 大模型参数高效微调技术原理综述(六)-MAM Adapter、UniPELT
- 大模型参数高效微调技术原理综述(七)- 最佳实际、总结
结语
实际出真知,以上是这段时间进行大模型实际的一点点总结,写的有一些主观和全面,后续会继续更新本人钻研大模型取得的一些认知和实践经验。