文章主题:

666AI工具大全,助力做AI时代先行者!

llm-course在上次介绍(北方的郎:llm-course,狂飙13.5K Star,GitHub上最全的开源大模型教程)后又有了更新,增加了新的章节包括“LLM工程师”等部分,Star也狂飙到了25K。

GitHub地址:

https://github.com/mlabonne/llm-course

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

为了方便大家使用,翻译成了中文:

LLM 基础知识

添加图片注释,不超过 140 字(可选)

1. 机器学习数学

在掌握机器学习之前,了解支持这些算法的基本数学概念非常重要。

线性代数:这对于理解许多算法至关重要,尤其是深度学习中使用的算法。关键概念包括向量、矩阵、行列式、特征值和特征向量、向量空间和线性变换。微积分:许多机器学习算法涉及连续函数的优化,这需要了解导数、积分、极限和级数。多变量微积分和梯度的概念也很重要。概率和统计:这些对于理解模型如何从数据中学习并做出预测至关重要。关键概念包括概率论、随机变量、概率分布、期望、方差、协方差、相关性、假设检验、置信区间、最大似然估计和贝叶斯推理。

资源:

3Blue1Brown – 线性代数的本质:一系列视频,为这些概念提供了几何直观。StatQuest 与 Josh Starmer – 统计基础知识:为许多统计概念提供简单明了的解释。Aerin 女士的 AP 统计直觉:提供每个概率分布背后的直觉的中等文章列表。沉浸式线性代数:线性代数的另一种视觉解释。Khan Academy – 线性代数:非常适合初学者,因为它以非常直观的方式解释了概念。可汗学院 – 微积分:一门涵盖微积分所有基础知识的互动课程。可汗学院 – 概率与统计:以易于理解的格式提供材料。

2. 用于机器学习的Python

Python 是一种强大而灵活的编程语言,由于其可读性、一致性和强大的数据科学库生态系统,特别适合机器学习。

Python基础知识:Python编程需要很好地理解基本语法、数据类型、错误处理和面向对象编程。数据科学库:包括熟悉用于数值运算的 NumPy、用于数据操作和分析的 Pandas、用于数据可视化的 Matplotlib 和 Seaborn。数据预处理:这涉及特征缩放和标准化、处理缺失数据、异常值检测、分类数据编码以及将数据拆分为训练集、验证集和测试集。机器学习库:熟练使用 Scikit-learn(一个提供多种监督和非监督学习算法的库)至关重要。了解如何实现线性回归、逻辑回归、决策树、随机森林、k 最近邻 (K-NN) 和 K 均值聚类等算法非常重要。PCA 和 t-SNE 等降维技术也有助于可视化高维数据。

资源:

Real Python:综合资源,包含针对初学者和高级 Python 概念的文章和教程。freeCodeCamp – 学习 Python:长视频,完整介绍了 Python 中的所有核心概念。Python 数据科学手册:免费的数字书籍,是学习 pandas、NumPy、Matplotlib 和 Seaborn 的绝佳资源。freeCodeCamp – 适合所有人的机器学习:为初学者介绍不同的机器学习算法。Udacity – 机器学习简介:免费课程,涵盖 PCA 和其他几个机器学习概念。

3. 神经网络

神经网络是许多机器学习模型的基本组成部分,特别是在深度学习领域。为了有效地利用它们,全面了解它们的设计和机制至关重要。

基础知识:这包括理解神经网络的结构,例如层、权重、偏差和激活函数(sigmoid、tanh、ReLU 等)训练和优化:熟悉反向传播和不同类型的损失函数,例如均方误差 (MSE) 和交叉熵。了解各种优化算法,例如梯度下降、随机梯度下降、RMSprop 和 Adam。过度拟合:了解过度拟合的概念(模型在训练数据上表现良好,但在未见过的数据上表现不佳)并学习各种正则化技术(dropout、L1/L2 正则化、早期停止、数据增强)来防止过度拟合。实现多层感知器 (MLP):使用 PyTorch 构建 MLP,也称为全连接网络。

资源:

3Blue1Brown – 但什么是神经网络?:该视频直观地解释了神经网络及其内部工作原理。freeCodeCamp – 深度学习速成课程:该视频有效地介绍了深度学习中所有最重要的概念。Fast.ai – 实用深度学习:为具有编码经验、想要了解深度学习的人设计的免费课程。Patrick Loeber – PyTorch 教程:为初学者学习 PyTorch 的系列视频。

4.自然语言处理(NLP)

NLP 是人工智能的一个令人着迷的分支,它弥合了人类语言和机器理解之间的差距。从简单的文本处理到理解语言的细微差别,NLP 在翻译、情感分析、聊天机器人等许多应用中发挥着至关重要的作用。

文本预处理:学习各种文本预处理步骤,例如分词(将文本分割成单词或句子)、词干提取(将单词还原为其词根形式)、词形还原(与词干提取类似,但考虑上下文)、停用词删除等。特征提取技术:熟悉将文本数据转换为机器学习算法可以理解的格式的技术。主要方法包括词袋 (BoW)、词频-逆文档频率 (TF-IDF) 和 n-gram。词嵌入:词嵌入是一种词表示形式,允许具有相似含义的词具有相似的表示形式。主要方法包括 Word2Vec、GloVe 和 FastText。递归神经网络 (RNN):了解 RNN 的工作原理,RNN 是一种设计用于处理序列数据的神经网络。探索 LSTM 和 GRU,这两种能够学习长期依赖关系的 RNN 变体。

资源:

RealPython – NLP with spaCy in Python:有关 Python 中用于 NLP 任务的 spaCy 库的详尽指南。Kaggle – NLP 指南:一些笔记本和资源,用于 Python 中 NLP 的实践解释。Jay Alammar – Word2Vec 插图:了解著名的 Word2Vec 架构的一个很好的参考。Jake Tae – PyTorch RNN from Scratch:在 PyTorch 中实用且简单地实现 RNN、LSTM 和 GRU 模型。colah 的博客 – Understanding LSTM Networks:一篇关于 LSTM 网络更具理论性的文章。

‍ LLM科学家

本课程的这一部分重点学习如何使用最新技术构建最好的LLM。

添加图片注释,不超过 140 字(可选)

1. LLM架构

虽然不需要深入了解 Transformer 架构,但深入了解其输入(令牌)和输出(logits)非常重要。普通的注意力机制是另一个需要掌握的关键组成部分,稍后会介绍它的改进版本。

高级视图:重新审视编码器-解码器 Transformer 架构,更具体地说,是仅解码器的 GPT 架构,该架构在每个现代 LLM 中都使用。标记化:了解如何将原始文本数据转换为模型可以理解的格式,这涉及将文本拆分为标记(通常是单词或子词)。注意力机制:掌握注意力机制背后的理论,包括自注意力和缩放点积注意力,这使得模型在产生输出时能够关注输入的不同部分。文本生成:了解模型生成输出序列的不同方式。常见的策略包括贪婪解码、波束搜索、top-k 采样和核采样。

参考资料

Jay Alammar绘制的 Transformer 插图:Transformer 模型的直观解释。Jay Alammar 的GPT-2 插图:比上一篇文章更重要,它重点关注 GPT 架构,与 Llama 非常相似。Brendan Bycroft 的LLM 可视化:以令人难以置信的 3D 可视化方式呈现 LLM 内部发生的情况。nanoGPT,作者:Andrej Karpathy:一段 2 小时长的 YouTube 视频,用于从头开始重新实现 GPT(针对程序员)。注意力?注意力!作者:Lilian Weng:以更正式的方式介绍关注的必要性。LLM中的解码策略:提供代码和对生成文本的不同解码策略的直观介绍。

2. 构建指令数据集

虽然从维基百科和其他网站找到原始数据很容易,但很难在野外收集成对的指令和答案。与传统机器学习一样,数据集的质量将直接影响模型的质量,这就是为什么它可能是微调过程中最重要的组成部分。

Alpaca-like 数据集:使用 OpenAI API (GPT) 从头开始生成合成数据。您可以指定种子和系统提示来创建多样化的数据集。高级技术:了解如何使用Evol-Instruct改进现有数据集,如何生成Orca和phi-1论文中的高质量合成数据。过滤数据:传统技术涉及正则表达式、删除近似重复项、关注具有大量标记的答案等。提示模板:没有真正的标准方法来格式化说明和答案,这就是为什么了解不同的聊天模板很重要,例如ChatML、Alpaca等。

参考资料

为指令调整准备数据集,作者:Thomas Capelle:探索 Alpaca 和 Alpaca-GPT4 数据集以及如何格式化它们。生成临床指导数据集作者:Solano Todeschini:有关如何使用 GPT-4 创建综合指导数据集的教程。用于新闻分类的 GPT 3.5,作者:Kshitiz Sahay:使用 GPT 3.5 创建指令数据集来微调 Llama 2 的新闻分类。用于微调 LLM 的数据集创建:包含一些过滤数据集和上传结果的技术的笔记本。Matthew Carrigan 的聊天模板:Hugging Face 关于提示模板的页面

3. 预训练模型

预训练是一个非常漫长且成本高昂的过程,这就是为什么这不是本课程的重点。对预培训期间发生的情况有一定程度的了解是很好的,但不需要实践经验。

数据管道:预训练需要巨大的数据集(例如,Llama 2使用 2 万亿个标记进行训练),需要对这些数据集进行过滤、标记化并与预定义的词汇进行整理。因果语言建模:了解因果语言建模和屏蔽语言建模之间的区别,以及本例中使用的损失函数。为了进行高效的预训练,请了解有关Megatron-LM或gpt-neox的更多信息。缩放法则:缩放法则根据模型大小、数据集大小和用于训练的计算量描述预期的模型性能。高性能计算:超出了本文的范围,但如果您打算从头开始创建自己的LLM(硬件、分布式工作负载等),那么更多有关 HPC 的知识是基础。

参考资料

LLMDataHub,作者:Junhao Zhu:用于预训练、微调和 RLHF 的精选数据集列表。通过 Hugging Face从头开始​​训练因果语言模型:使用 Transformers 库从头开始预训练 GPT-2 模型。TinyLlama,作者:Zhang 等人:查看此项目,可以很好地了解 Llama 模型是如何从头开始训练的。Hugging Face 的因果语言建模:解释因果语言建模和屏蔽语言建模之间的区别以及如何快速微调 DistilGPT-2 模型。怀旧学者对Chinchilla 的疯狂暗示:讨论缩放定律并解释它们对LLM的一般意义。BigScience 的BLOOM:概念页面,描述了如何构建 BLOOM 模型,其中包含有关工程部分和遇到的问题的大量有用信息。Meta 的OPT-175 日志:研究日志显示出了什么问题以及什么是正确的。如果您计划预训练非常大的语言模型(在本例中为 175B 参数),则非常有用。LLM 360:开源LLM框架,包含培训和数据准备代码、数据、指标和模型。

4. 监督微调

预训练模型仅针对下一个标记预测任务进行训练,这就是为什么它们不是有用的助手。SFT 允许您调整它们以响应指令。此外,它允许您根据任何数据(私有数据、GPT-4 无法看到的数据等)微调您的模型并使用它,而无需支付 OpenAI 等 API 的费用。

全微调:全微调是指训练模型中的所有参数。这不是一种有效的技术,但它会产生稍微好一点的结果。LoRA:一种基于低阶适配器的参数高效技术(PEFT)。我们不训练所有参数,而是只训练这些适配器。QLoRA:另一种基于 LoRA 的 PEFT,它还将模型的权重量化为 4 位,并引入分页优化器来管理内存峰值。将其与Unsloth结合使用,可以在免费的 Colab 笔记本上高效运行。Axolotl:一种用户友好且功能强大的微调工具,用于许多最先进的开源模型。DeepSpeed:针对多 GPU 和多节点设置的 LLM 的高效预训练和微调(在 Axolotl 中实现)。

参考资料

Alpin的新手 LLM 培训指南:概述微调 LLM 时要考虑的主要概念和参数。Sebastian Raschka 的LoRA 见解:有关 LoRA 以及如何选择最佳参数的实用见解。您自己的 Llama 2 模型:有关如何使用 Hugging Face 库微调 Llama 2 模型的实践教程。填充大型语言模型作者:Benjamin Marie:为因果LLM填充训练示例的最佳实践LLM 微调初学者指南:有关如何使用 Axolotl 微调 CodeLlama 模型的教程。

5. 根据人类反馈进行强化学习

经过监督微调后,RLHF 是用于使 LLM 的答案与人类期望保持一致的一个步骤。这个想法是从人类(或人工)反馈中学习偏好,这可用于减少偏见、审查模型或使它们以更有用的方式行事。它比 SFT 更复杂,并且通常被视为可选的。

偏好数据集:这些数据集通常包含具有某种排名的多个答案,这使得它们比指令数据集更难生成。近端策略优化:该算法利用奖励模型来预测给定文本是否被人类排名较高。然后使用该预测来优化 SFT 模型,并根据 KL 散度进行惩罚。直接偏好优化:DPO 通过将其重新定义为分类问题来简化该过程。它使用参考模型而不是奖励模型(无需训练),并且只需要一个超参数,使其更加稳定和高效。

参考资料

Ayush Thakur 的《使用 RLHF 培训LLM简介》:解释为什么 RLHF 对于减少LLM的偏见和提高绩效是可取的。Hugging Face 的插图 RLHF:RLHF 简介,包括奖励模型训练和强化学习微调。StackLLaMA by Hugging Face:使用 Transformer 库有效地将 LLaMA 模型与 RLHF 对齐的教程。LLM 培训:RLHF 及其替代方案,作者:Sebastian Rashcka:RLHF 流程和 RLAIF 等替代方案的概述。使用 DPO 微调 Mistral-7b:使用 DPO 微调 Mistral-7b 模型并重现NeuralHermes-2.5 的教程。

六、评价

评估LLM是管道中被低估的部分,既耗时又不可靠。您的下游任务应该决定您想要评估的内容,但请始终记住古德哈特定律:“当一项措施成为目标时,它就不再是一个好的措施。”

传统指标:像困惑度和 BLEU 分数这样的指标并不像以前那么受欢迎,因为它们在大多数情况下都存在缺陷。了解它们以及何时应用它们仍然很重要。通用基准:基于语言模型评估工具,开放 LLM 排行榜是通用 LLM(如 ChatGPT)的主要基准。还有其他流行的基准测试,如BigBench、MT-Bench等。特定于任务的基准:摘要、翻译和问答等任务有专用的基准、指标,甚至子领域(医学、金融等),例如用于生物医学问答的PubMedQA 。人工评价:最可靠的评价是用户的接受率或人工的比较。如果你想知道一个模型表现是否良好,最简单但最可靠的方法就是自己使用它。

参考资料

Hugging Face 的固定长度模型的困惑:使用 Transformer 库实现它的代码的困惑概述。BLEU 风险自负,作者:Rachael Tatman:BLEU 分数及其许多问题的概述和示例。Chang 等人的LLM评估调查:关于评估内容、评估地点以及如何评估的综合论文。lmsys 的Chatbot Arena 排行榜:基于人类进行的比较的通用 LLM 的 Elo 评级。

7. 量化

量化是使用较低精度转换模型权重(和激活)的过程。例如,使用 16 位存储的权重可以转换为 4 位表示。这项技术对于降低LLM相关的计算和内存成本变得越来越重要。

基本技术:学习不同级别的精度(FP32、FP16、INT8 等)以及如何使用 absmax 和零点技术执行简单量化。GGUF 和 llama.cpp : llama.cpp和 GGUF 格式最初设计用于在 CPU 上运行,现已成为在消费级硬件上运行 LLM 的最流行工具。GPTQ 和 EXL2:GPTQ,更具体地说,EXL2格式提供了令人难以置信的速度,但只能在 GPU 上运行。模型也需要很长时间才能量化。AWQ:这种新格式比 GPTQ 更准确(更低的复杂性),但使用更多的 VRAM,并且不一定更快。

参考资料

量化简介:量化概述、absmax 和零点量化以及 LLM.int8() 和代码。使用 llama.cpp 量化 Llama 模型:有关如何使用 llama.cpp 和 GGUF 格式量化 Llama 2 模型的教程。使用 GPTQ 进行 4 位 LLM 量化:有关如何使用 GPTQ 算法和 AutoGPTQ 来量化 LLM 的教程。ExLlamaV2:运行 LLM 最快的库:有关如何使用 EXL2 格式量化 Mistral 模型并使用 ExLlamaV2 库运行它的指南。了解 FriendliAI 的激活感知权重量化:AWQ 技术及其优势概述。

8. 新趋势

位置嵌入:了解 LLM 如何编码位置,尤其是RoPE等相对位置编码方案。实现YaRN(将注意力矩阵乘以温度因子)或ALiBi(基于 token 距离的注意力惩罚)来扩展上下文长度。模型合并:合并经过训练的模型已成为创建高性能模型而无需任何微调的流行方式。流行的mergekit库实现了最流行的合并方法,例如 SLERP、DARE和TIES。专家混合:Mixtral凭借其出色的性能重新流行了 MoE 架构。与此同时,通过合并Phixtral等模型,OSS 社区中出现了一种 FrankenMoE ,这是一种更便宜且高性能的选择。多模态模型:这些模型(如CLIP、Stable Diffusion或LLaVA)使用统一的嵌入空间处理多种类型的输入(文本、图像、音频等),从而解锁文本到图像等强大的应用程序。

参考资料

Extending the RoPE by EleutherAI:总结不同位置编码技术的文章。Rajat Chawla 的《理解 YaRN》:YaRN 简介。使用 mergekit 合并 LLM:有关使用 mergekit 进行模型合并的教程。Hugging Face解释了专家的混合:关于 MoE 及其工作方式的详尽指南。大型多模态模型,作者:Chip Huyen:多模态系统概述和该领域的最新历史。

LLM 工程师

本课程的这一部分重点学习如何构建可在生产中使用的由 LLM 支持的应用程序,重点是增强模型和部署它们。

添加图片注释,不超过 140 字(可选)

1. 运行LLM

由于硬件要求较高,运行LLM可能很困难。根据您的用例,您可能只想通过 API(如 GPT-4)使用模型或在本地运行它。无论如何,额外的提示和指导技术可以改进和限制应用程序的输出。

LLM API:API 是部署 LLM 的便捷方法。这个空间分为私有LLM(OpenAI、Google、Anthropic、Cohere等)和开源LLM(OpenRouter、Hugging Face、Together AI等)。开源LLM:Hugging Face Hub是寻找LLM的好地方。您可以直接在Hugging Face Spaces中运行其中一些,或者在LM Studio等应用程序中本地下载并运行它们,或者通过 CLI 使用llama.cpp或Ollama运行它们。提示工程:常见技术包括零样本提示、少样本提示、思维链和 ReAct。它们与较大的模型配合得更好,但也可以适应较小的模型。结构化输出:许多任务需要结构化输出,例如严格的模板或 JSON 格式。LMQL、Outlines、Guidance等库可用于指导生成并尊重给定的结构。

参考资料

Nisha Arya 的使用 LM Studio 在本地运行LLM:有关如何使用 LM Studio 的简短指南。DAIR.AI 的提示工程指南:带有示例的提示技术的详尽列表Outlines – 快速入门:Outlines 支持的引导生成技术列表。LMQL – 概述:LMQL 语言简介。

2. 构建向量存储

创建向量存储是构建检索增强生成 (RAG) 管道的第一步。加载、分割文档,并使用相关块来生成向量表示(嵌入),并将其存储起来以供将来在推理过程中使用。

摄取文档:文档加载器是方便的包装器,可以处理多种格式:PDF、JSON、HTML、Markdown 等。它们还可以直接从某些数据库和 API(GitHub、Reddit、Google Drive 等)检索数据。分割文档:文本分割器将文档分解为更小的、具有语义意义的块。与其在n 个字符后分割文本,不如按标题或递归方式分割文本,并使用一些附加元数据。嵌入模型:嵌入模型将文本转换为向量表示。它允许对语言有更深入、更细致的理解,这对于执行语义搜索至关重要。向量数据库:向量数据库(如Chroma、Pinecone、Milvus、FAISS、Annoy等)旨在存储嵌入向量。它们能够根据向量相似性高效检索与查询“最相似”的数据。

参考资料

LangChain – 文本分割器:LangChain 中实现的不同文本分割器的列表。Sentence Transformers 库:流行的嵌入模型库。MTEB Leaderboard:嵌入模型的排行榜。Moez Ali 的前 5 个矢量数据库:最好和最流行的矢量数据库的比较。

3. 检索增强生成

借助 RAG,LLM可以从数据库中检索上下文文档,以提高答案的准确性。RAG 是一种无需任何微调即可增强模型知识的流行方法。

Orchestrators:Orchestrators(如LangChain、LlamaIndex、FastRAG等)是流行的框架,用于将您的 LLM 与工具、数据库、内存等连接起来并增强他们的能力。检索器:用户指令未针对检索进行优化。可以应用不同的技术(例如,多查询检索器、HyDE等)来重新表述/扩展它们并提高性能。记忆:为了记住之前的说明和答案,LLM 和 ChatGPT 等聊天机器人会将此历史记录添加到其上下文窗口中。该缓冲区可以通过汇总(例如,使用较小的 LLM)、向量存储 + RAG 等来改进。评估:我们需要评估文档检索(上下文精度和召回率)和生成阶段(可信度和答案相关性)。可以使用Ragas和DeepEval工具进行简化。

参考资料

Llamaindex – 高级概念:构建 RAG 管道时需要了解的主要概念。Pinecone – 检索增强:检索增强过程概述。LangChain – RAG 问答:构建典型 RAG 管道的分步教程。LangChain – 内存类型:不同类型内存及其相关用途的列表。RAG 管道 – 指标:用于评估 RAG 管道的主要指标的概述。

4.高级RAG

现实应用程序可能需要复杂的管道,包括 SQL 或图形数据库,以及自动选择相关工具和 API。这些先进技术可以改进基准解决方案并提供附加功能。

查询构造:传统数据库中存储的结构化数据需要特定的查询语言,如SQL、Cypher、元数据等。我们可以通过查询构造将用户指令直接翻译为查询来访问数据。代理和工具:代理通过自动选择最相关的工具来提供答案来增强LLM。这些工具可以像使用 Google 或 Wikipedia 一样简单,也可以像 Python 解释器或 Jira 一样复杂。后处理:处理输入到 LLM 的输入的最后一步。它通过重新排序、RAG 融合和分类增强了检索到的文档的相关性和多样性。

参考资料

LangChain – 查询构造:关于不同类型的查询构造的博客文章。LangChain – SQL:关于如何使用 LLM 与 SQL 数据库交互的教程,涉及文本到 SQL 和可选的 SQL 代理。Pinecone – LLM 代理:介绍不同类型的代理和工具。LLM Powered Autonomous Agents作者:Lilian Weng:有关 LLM 代理的更多理论文章。LangChain – OpenAI 的 RAG:OpenAI 采用的 RAG 策略概述,包括后处理。

5. 推理优化

文本生成是一个成本高昂的过程,需要昂贵的硬件。除了量化之外,还提出了各种技术来最大化吞吐量并降低推理成本。

Flash Attention:优化注意力机制,将其复杂度从二次型转变为线性型,加快训练和推理速度。键值缓存:了解键值缓存以及多查询注意(MQA)和分组查询注意(GQA)中引入的改进。推测性解码:使用小型模型生成草稿,然后由较大模型进行审查以加快文本生成速度。

参考资料

GPU Inference by Hugging Face:解释如何优化 GPU 上的推理。Databricks 的LLM 推理:如何在生产中优化 LLM 推理的最佳实践。Optimizing LLMs for Speed and Memory by Hugging Face:解释优化速度和内存的三种主要技术,即量化、Flash Attention 和架构创新。Assisted Generation by Hugging Face:HF 版本的推测解码,这是一篇有趣的博客文章,介绍了它如何使用代码来实现。

6. 部署LLM

大规模部署 LLM 是一项工程壮举,可能需要多个 GPU 集群。在其他场景中,可以以低得多的复杂度来实现演示和本地应用程序。

本地部署:隐私是开源 LLM 相对于私有 LLM 的一个重要优势。本地 LLM 服务器(LM Studio、Ollama、oobabooga、kobold.cpp等)利用这一优势来支持本地应用程序。演示部署: Gradio和Streamlit等框架有助于构建应用程序原型并共享演示。您还可以轻松地在线托管它们,例如使用Hugging Face Spaces。服务器部署:大规模部署 LLM 需要云(另请参阅SkyPilot)或本地基础设施,并且通常利用优化的文本生成框架,如TGI、vLLM等。边缘部署:在受限环境中, MLC LLM和mnn-llm等高性能框架可以在 Web 浏览器、Android 和 iOS 中部署 LLM。

参考资料

Streamlit – 构建基本的 LLM 应用程序:使用 Streamlit 制作基本的类似 ChatGPT 的应用程序的教程。HF LLM 推理容器:使用 Hugging Face 的推理容器在 Amazon SageMaker 上部署 LLM。Philschmid 博客,作者:Philipp Schmid:有关使用 Amazon SageMaker 部署 LLM 的高质量文章集。优化延迟,作者:Hamel Husain:TGI、vLLM、CTranslate2 和 mlc 在吞吐量和延迟方面的比较。

7. LLM安全

除了与软件相关的传统安全问题之外,LLM由于其培训和提示方式而具有独特的弱点。

提示技巧:与提示工程相关的不同技术,包括提示注入(劫持模型答案的附加指令)、数据/提示泄漏(检索其原始数据/提示)和越狱(制作提示以绕过安全功能)。后门:攻击向量可以通过毒害训练数据(例如,使用虚假信息)或创建后门(在推理过程中改变模型行为的秘密触发器)来针对训练数据本身。防御措施:保护您的 LLM 应用程序的最佳方法是针对这些漏洞进行测试(例如,使用红队和像garak这样的检查)并在生产中观察它们(使用像langfuse这样的框架)。

参考资料

HEGO Wiki 的OWASP LLM Top 10:LLM 应用程序中发现的 10 个最严重漏洞的列表。Joseph Thacker 的《Prompt Injection Primer》:专门为工程师提供的快速注入简短指南。LLM Security by @llm_sec:与 LLM 安全相关的广泛资源列表。Microsoft 的红队LLM:有关如何与LLM进行红队合作的指南。

致谢 该路线图的灵感来自 Milan Milanović 和 Romano Roth 的出色DevOps 路线图。 特别感谢:

Thomas Thelen 激励我制定路线图André Frade 对初稿的贡献和审查Dino Dunn 提供有关 LLM 安全性的资源

免责声明:我不隶属于此处列出的任何来源。

AI时代,掌握AI大模型第一手资讯!AI时代不落人后!

免费ChatGPT问答,办公、写作、生活好得力助手!

扫码右边公众号,驾驭AI生产力!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注