通往 LLM 算法工程师之路

由于近一年多 LLM 发展非常迅猛,市面上 LLM 课程也是五花八门,于是本文按照下面的学习路径整理 LLM 算法工程师 应该具备的技术栈。

Github地址: https://github.com/mlabonne/llm-course

1. LLM 架构

  1. 编码器-解码器Transformer架构:更具体地说是 decoder only 的Transformer 架构,这是 LLMs 的基础,几乎所有的生成大语言模型都会用到这个架构。

  2. Tokenization:了解如何将原始文本数据转换为模型可以理解的格式

  3. 注意力机制:掌握注意力机制背后的理论,包括自注意力和缩放点积注意力,这使模型在生成输出时能够专注于输入的不同部分。

  4. 文本生成:了解模型生成输出序列的不同方式。常见的策略包括贪心解码(greedy decoding), 束搜索(beam search), top-k 采样 和 nucleus sampling(top-p sampling)。

2. 如何准备训练数据集

  1. Alpaca-like数据集:使用OpenAI API(GPT)从头开始生成合成数据。您可以指定seed和系统提示以创建多样化的数据集。

  2. 高级技术:学习如何使用Evol-Instruct改进现有数据集,以及如何生成像Orca和phi-1论文中那样的高质量合成数据。

  3. 数据过滤:传统的技术包括正则表达式、删除近似重复项、专注于具有大量token的答案等。

  4. 提示模板:没有真正标准的格式化说明和答案的方式,这就是为什么了解不同的聊天模板(如ChatML、Alpaca等)很重要的原因。

3. 预训练模型

预训练是一个非常漫长且昂贵的过程,对大多数人来说可以不把重点放在这方面。但是了解预训练都干什么还是有必要的,只是不需要进行实际操作。

  1. 数据pipeline:预训练需要大规模的数据集(例如,Llama 2是在2万亿个token上进行训练的),这些数据集需要进行过滤、Tokenization,并与预定义的词汇表合并。

  2. 因果语言建模:学习因果语言建模与掩码语言建模的区别,以及在这种情况下使用的损失函数。为了进行高效的预训练,还需要了解Megatron-LM / gpt-neox。

  3. 缩放定律:缩放定律介绍如何基于模型大小、数据集大小以及用于训练的计算量来预测模型性能。

  4. 高性能计算:如果要从头搭建自己的LLM(硬件、分布式工作负载等),那么关于HPC的知识还是很重要的。

4. 有监督微调

预训练模型仅在 next-token prediction 任务上进行训练,这就是为什么它们有时候比较蠢或者说容易产生幻觉的原因。有监督微调可以对它们进行调整以适应指令。此外,它允许我们在任何数据上进行微调(私有数据,GPT-4未见过的数据等),并且无需支付像OpenAI的API费用即可调用。

  1. 全参微调:全参微调是指对模型中的所有参数进行重新训练。当然啦,代价高昂,但会产生更好的结果。

  2. LoRA:一种基于低秩适配器的参数高效技术(PEFT)。我们不训练所有参数,而是训练适配器。

  3. QLoRA:另一种基于LoRA的PEFT,它还将模型的权重量化为4比特,并引入了分页优化器来管理内存峰值。将其与Unsloth结合使用,可以在Colab上运行。

  4. Axolotl:一个用户友好且功能强大的微调工具,广泛用于许多最先进的开源模型中。

  5. DeepSpeed:针对多GPU和多节点场景的LLM的高效预训练和微调框架(在Axolotl中有实现)。

5. 基于人工反馈的强化学习(RLHF)

在监督微调之后,RLHF技术可以对LLM的答案进行优化调整,给出与期望更相符的答案。其思想是从人类反馈中学习偏好,这可以减少偏差、审查模型。与SFT相比,它更为复杂,通常被视为可选步骤。

  1. 偏好数据集:这些数据集通常包含带有某种排序的多个答案,这使其比指令数据集更难创建。

  2. 近端策略优化:该算法利用一个奖励模型,预测给定文本是否被打更高的分。然后,利用基于KL散度的惩罚优化SFT模型。

  3. 直接偏好优化:DPO通过将其重新构建为分类问题简化了该过程。它使用一个参考模型而不是奖励模型(无需训练),并且只需要一个超参数,使其更加稳定和高效。

6. 模型评估

评估LLM是大模型工作流中被经常忽视的一个环节,它耗时且可靠性一般。我们的下游任务决定了我们想要评估的指标,但始终要记住古德哈特定律:“当一个指标成为目标时,它就不再是一个好的指标。”

  1. 传统指标:像perplexity和BLEU分数这样的指标不像以前那样流行,因为它们在大多数情况表现不好。但我们还是得学习和了解一下。

  2. 一般基准:基于语言模型评估测试框架,Open LLM排行榜是通用LLM(如ChatGPT)的主要基准。还有其他流行的基准,如BigBench、MT-Bench等。

  3. 任务特定的基准:摘要、翻译和问答等任务有专门的评价体系、指标甚至子领域(医学、金融等),例如:生物医学问答的PubMedQA。

  4. 人类评估:最可靠的评估是用户接受率。如果您想知道一个模型的表现如何,最简单但最可靠的方法是自己使用它。

7. 量化

量化是使用较低精度将模型的权重(和激活)压缩的过程。例如,使用16比特存储的权重可以转换为4比特表示。这种技术已经变得越来越重要,因为可以减少与LLM相关的计算和内存成本。

  1. 基本技术:了解不同的精度级别(FP32、FP16、INT8等),以及如何使用absmax和 zero-point技术执行naive 量化。

  2. GGUF和llama.cpp:最初设计是在CPU上运行,llama.cpp和GGUF格式已成为在消费级硬件上运行LLM最流行工具。

  3. GPTQ和EXL2:GPTQ和更具体地说是EXL2格式提供了令人难以置信的速度,但只能在GPU上运行。模型还需要很长时间才能被量化。

  4. AWQ:这种新格式比GPTQ更准确(困惑度更低),但使用的VRAM要多得多,并不一定更快。

8. 发展趋势

  1. 位置嵌入:了解LLM如何编码位置,特别是像RoPE这样的相对位置编码方案。通过YaRN(通过 temperature factor乘以注意力矩阵)或ALiBi(基于 token distance的注意力惩罚)来扩展上下文长度。

  2. 模型合并:合并已训练的模型已成为创建性能良好的模型而无需任何微调的流行方法。流行的mergekit库实现了最流行的合并方法,如SLERP、DARE和TIES。

  3. 专家混合:Mixtral通过其出色的性能重新流行了MoE架构。与此同时,一种名为frankenMoE的类型出现在开源社区中,通过合并Phixtral等模型,这是一种更便宜且性能良好的选项。

  4. 多模态模型:这些模型(如CLIP、Stable Diffusion或LLaVA)使用统一的嵌入空间处理多种类型的输入(文本、图像、音频等),这解锁了诸如文本到图像等强大应用。

结语

大模型发展日新月异,本文仅梳理成为大模型算法工程师一些典型的技术,期望帮助大家在通往 LLM 算法工程师的道路上走的更扎实。

如何学习大模型 AGI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

-END-


👉AGI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉AGI大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉AGI大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值