从理论到实践:RAG、Agent、微调等6种常见的大模型定制策略

大语言模型(LLM)是基于自监督学习预训练的深度学习模型,训练数据量庞大、训练时间长,并且包含大量的参数。LLM在过去两年中彻底改变了自然语言处理领域,展现了在理解和生成类人文本方面的卓越能力。

然而,这些通用模型的开箱即用性能并不总能满足特定的业务需求或领域要求。LLM单独使用时无法回答依赖于公司专有数据或封闭环境的问题,这使得它们在应用中显得相对通用。

由于从零开始训练一个LLM模型需要大量的训练数据和资源,这对于中小型团队来说基本不可行。因此,近年来开发了多种LLM定制策略,以便针对需要专业知识的不同场景调优模型。

定制策略大致可以分为两种类型:

  1. 使用冻结模型:这些技术不需要更新模型参数,通常通过上下文学习或提示工程来实现。由于它们通过改变模型的行为而不需要大量训练成本,因此具有成本效益,广泛应用于工业界和学术界,每天都有新的研究论文发表。

  2. 更新模型参数:这是一种相对资源密集的方法,需要使用为特定目的设计的自定义数据集来调优预训练的LLM。这包括如微调(Fine-Tuning)和基于人类反馈的强化学习(RLHF)这些流行的技术。

这两种定制范式进一步分化为各种专门的技术,包括LoRA微调、思维链(Chain of Thought)、检索增强生成(RAG)、ReAct和Agent框架等。每种技术在计算资源、实现复杂度和性能提升方面提供了不同的优势和权衡。

一、如何选择LLM?

定制LLM的第一步是选择合适的基础模型作为基准。例如Huggingface这些基于社区的平台,提供了由顶级公司或社区贡献的各种开源预训练模型,如Meta的Llama系列和Google的Gemini。Huggingface还提供了例如Open LLM Leaderboard这样的排行榜,可以根据行业标准的指标和任务(如MMLU)来比较LLM。

云服务提供商如AWS(亚马逊)和AI公司(如OpenAI和Anthropic)也提供访问专有模型的服务,这些通常是付费服务,且访问受限。

选择LLM时需要考虑以下几个因素:

  1. 开源模型还是专有模型:开源模型允许完全定制和自托管,但需要技术专业知识,而专有模型则提供即时访问,通常可以提供更好的响应质量,但成本较高。

  2. 任务和指标:不同的模型在不同任务上表现出色,包括问答、总结、代码生成等。通过比较基准指标并在特定领域任务上进行测试,来确定合适的模型。

  3. 架构:一般来说,仅解码器模型(如GPT系列)在文本生成方面表现更好,而编码-解码模型(如T5)在翻译任务上表现优秀。现在有更多的架构出现并展现出良好的结果,例如专家混合模型(MoE)DeepSeek。

  4. 参数数量和模型大小:较大的模型(70B-175B参数)通常提供更好的性能,但需要更多的计算资源。较小的模型(7B-13B)运行更快且更便宜,但可能在能力上有所减少。

在确定了基础LLM之后,让我们来看一下六种最常见的LLM定制策略,按资源消耗从最少到最多的顺序排列:

  1. 提示工程(Prompt Engineering)

  2. 解码与采样策略(Decoding and Sampling Strategy)

  3. 检索增强生成(Retrieval Augmented Generation)

  4. Agent

  5. 微调(Fine Tuning)

  6. 基于人类反馈的强化学习(Reinforcement Learning from Human Feedback)

二、提示工程

提示(Prompt)是发送给LLM的输入文本,用于引发AI生成的响应,它可以由指令、上下文、输入数据和输出指示符组成。

  • 指令:这是为模型如何执行任务提供的描述或指示。

  • 上下文:这是外部信息,用于指导模型在特定范围内进行响应。

  • 输入数据:这是你希望模型生成响应的输入。

  • 输出指示符:这指定了输出的类型或格式。

提示工程(Prompt Engineering)涉及有策略地设计这些提示组件,以塑造和控制模型的响应。基本的提示工程技术包括零次提示(zero shot prompting)、一次提示(one shot prompting)和少量提示(few shot prompting)。用户可以在与LLM互动时直接实现这些基本提示工程技术,从而高效地使模型的行为与新目标对齐。API实现也是一种选择。

由于提示工程的高效性和有效性,人们也探索和开发出了越来越多的用于提升提示的逻辑结构的复杂方法。

  • 思维链(Chain of Thought,CoT)要求LLM将复杂的推理任务分解为逐步的思维过程,从而提高多步骤问题的表现。每个步骤都会明确暴露其推理结果,并作为后续步骤的前置上下文,直到得出最终答案。

  • 思维树(Tree of Thought,ToT)是CoT的扩展,通过考虑多条不同的推理分支并自我评估选择,决定下一步最佳行动。它对于涉及初步决策、未来策略和多种解决方案探索的任务更为有效。

  • 自动推理和工具使用(Automatic Reasoning and Tool use,ART)在CoT的基础上构建,它解构复杂任务,并允许模型使用预定义的外部工具(如搜索和代码生成)从任务库中选择少量示例。

  • 协同推理与行动(Synergizing Reasoning and Acting,ReAct)结合了推理轨迹与行动空间,模型在行动空间中搜索,并基于环境观察确定下一步最佳行动。

像CoT和ReAct这样的技术通常与Agent工作流结合使用,以增强其能力。这些技术将在接下来的Agent部分中详细介绍。

三、解码与采样策略

解码策略可以通过推理参数(例如temperature、top_p、top_k)在模型推理时进行控制,从而决定模型响应的随机性和多样性。贪婪搜索、束搜索和采样是三种常见的自回归模型生成的解码策略。

在自回归生成过程中,LLM根据前一个token的条件,基于候选token的概率分布逐个输出token。

默认情况下,使用贪婪搜索来生成概率最高的下一个token。

与此不同,束搜索解码会考虑多个下一个最佳token的假设,并选择在整个文本序列中具有最高综合概率的假设。以下代码片段使用transformers库,在模型生成过程中指定束搜索路径的数量(例如,num_beams=5表示考虑5个不同的假设):

from transformers import AutoModelForCausalLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained(tokenizer_name)
inputs = tokenizer(prompt, return_tensors="pt")

model = AutoModelForCausalLM.from_pretrained(model_name)
outputs = model.generate(**inputs, num_beams=5)

采样策略是控制模型响应随机性的第三种方法,通过调整这些推理参数:

  1. 温度(Temperature):降低温度会使概率分布变得更加尖锐,从而增加生成高概率词语的可能性,减少生成低概率词语的可能性。当温度 = 0 时,相当于贪婪搜索(最不具创意);当温度 = 1 时,会生成最具创意的输出。

  2. Top K采样:这种方法筛选出K个最可能的下一个token,并在这些token之间重新分配概率。模型从这个筛选出的token集合中进行采样。

  3. Top P采样:与从K个最可能的token中采样不同,top-p采样从最小的token集合中选择,该集合的累积概率超过阈值p。

以下示例代码片段从累积概率大于0.95(top_p=0.95)的前50个最可能的token中进行采样(top_k=50):

sample_outputs = model.generate(
    **model_inputs,   
    max_new_tokens=40, 
    do_sample=True,   
    top_k=50, 
    top_p=0.95,
    num_return_sequences=3,
  )

四、RAG

检索增强生成(Retrieval Augmented Generation,简称RAG),最初在论文《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》中提出,已被证明是一种有前景的解决方案,能够将外部知识集成进来,并在处理领域特定或专业查询时减少常见的LLM幻觉问题。RAG允许动态地从知识领域中提取相关信息,并且通常不涉及更新LLM参数的大规模训练,使其成为一种用于将通用LLM适配到特定领域的成本效益高的策略。

RAG系统可以分为检索和生成两个阶段。

检索过程的目标是通过对外部知识进行切块、创建嵌入、索引和相似性搜索,找到与用户查询密切相关的知识库内容。

  1. 切块(Chunking):将文档划分为较小的段落,每个段落包含一个独立的信息单元。

  2. 创建嵌入(Create embeddings):嵌入模型将每个信息块压缩为向量表示。用户查询也通过相同的向量化过程转换为向量表示,这样用户查询就可以在相同的维度空间中进行比较。

  3. 索引(Indexing):这一过程将这些文本块及其向量嵌入存储为键值对,从而实现高效且可扩展的搜索功能。对于超出内存容量的大型外部知识库,向量数据库提供高效的长期存储。

  4. 相似性搜索(Similarity search):计算查询嵌入与文本块嵌入之间的相似性分数,用于搜索与用户查询高度相关的信息。

RAG系统的生成过程则将检索到的信息与用户查询结合,形成增强的查询,并将其传递给LLM,以生成丰富上下文的响应。

以下代码片段首先指定LLM和嵌入模型,然后执行步骤将外部知识库文档切块为文档集合。接着从文档创建索引,基于索引定义查询引擎,并使用用户提示查询查询引擎。

from llama_index.llms.openai import OpenAI
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.core import VectorStoreIndex
  
Settings.llm = OpenAI(model="gpt-3.5-turbo")
Settings.embed_model="BAAI/bge-small-en-v1.5"

document = Document(text="\\n\\n".join([doc.text for doc in documents]))
index = VectorStoreIndex.from_documents([document])                              
query_engine = index.as_query_engine()
response = query_engine.query(
   "Tell me about LLM customization strategies."
 )

上述示例展示了一个简单的RAG系统。基于此,改进后的高级RAG引入了预检索和后检索策略,以减少检索和生成过程之间的协同作用有限等问题。例如,重新排序技术使用能够理解双向上下文的模型对检索到的信息进行重新排序,并与知识图谱集成,用于高级查询路由。

那么,如何系统的去学习大模型LLM?

作为一名从业五年的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该从哪里入手呢?我自学没有方向怎么办?这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!这些问题啊,也不是三言两语啊就能讲明白的。

所以我综合了大模型的所有知识点,给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢,我就曾放空大脑,以一个大模型小白的角度去重新解析它,采用基础知识和实战项目相结合的教学方式,历时3个月,终于完成了这样的课程,让你真正体会到什么是每一秒都在疯狂输出知识点。

由于篇幅有限,⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》,扫码获取~
在这里插入图片描述

👉大模型学习指南+路线汇总👈

我们这套大模型资料呢,会从基础篇、进阶篇和项目实战篇等三大方面来讲解。
在这里插入图片描述
在这里插入图片描述

👉①.基础篇👈

基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程,带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门大模型。
在这里插入图片描述

👉②.进阶篇👈

接下来是进阶篇,你将掌握RAG、Agent、Langchain、大模型微调和私有化部署,学习如何构建外挂知识库并和自己的企业相结合,学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。
在这里插入图片描述

👉③.实战篇👈

实战篇会手把手带着大家练习企业级的落地项目(已脱敏),比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等,从而帮助大家更好的应对大模型时代的挑战。
在这里插入图片描述

👉④.福利篇👈

最后呢,会给大家一个小福利,课程视频中的所有素材,有搭建AI开发环境资料包,还有学习计划表,几十上百G素材、电子书和课件等等,只要你能想到的素材,我这里几乎都有。我已经全部上传到CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
在这里插入图片描述
相信我,这套大模型系统教程将会是全网最齐全 最易懂的小白专用课!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值