6 种常见的 LLM 定制策略简要解析

从理论到实践:理解 RAG、代理(Agent)、微调(Fine-Tuning)等  

图片


为什么要定制 LLM?

大语言模型(LLM, Large Language Model)是一类基于自监督学习(Self-Supervised Learning) 预训练的深度学习模型。在训练数据、训练时间以及模型参数规模上,这类模型需要大量资源。近年来,LLM 在自然语言处理(NLP) 领域取得了革命性进展,尤其是在过去两年中,展现出了卓越的理解和生成类人文本的能力。然而,这些通用模型 的默认性能并不总是能满足特定业务需求或行业要求。

LLM 无法回答依赖于企业私有数据或封闭知识库 的问题,因此在应用上相对通用。此外,从零开始训练 LLM 对于中小型团队来说几乎不可行,因为这需要海量的训练数据和计算资源。因此,近年来涌现出了多种LLM 定制策略,以便在需要专业知识的各种场景下优化模型。

LLM 定制策略主要分为两类

  1. 使用冻结模型(Frozen Model)

    • 这类技术不需要更新模型参数,通常通过上下文学习(In-Context Learning) 或提示工程(Prompt Engineering) 来实现。

    • 由于无需进行大规模训练,成本较低,因此被广泛应用于工业界和学术界,每天都有新的研究论文发表。

  2. 更新模型参数(Updating Model Parameters)

    • 这是一种相对资源密集的做法,需要使用特定的数据集 对预训练 LLM 进行微调(Fine-Tuning)

    • 典型方法包括微调(Fine-Tuning) 和 人类反馈强化学习(RLHF, Reinforcement Learning from Human Feedback)

这两大定制范式进一步分化为多种专业化技术,包括:

  • LoRA 微调(LoRA Fine-Tuning)

  • 链式思维(Chain of Thought, CoT)

  • 检索增强生成(Retrieval Augmented Generation, RAG)

  • ReAct(Synergizing Reasoning and Acting)

  • 代理(Agent)框架

每种技术在计算资源、实现复杂性和性能提升 方面各有优劣。


如何选择 LLM?

定制 LLM 的第一步是选择合适的基础模型 作为基准。社区平台(例如 Hugging Face)提供了大量由顶级公司或社区贡献的开源预训练模型,例如:

  • Meta 的 Llama 系列

  • Google 的 Gemini

Hugging Face 还提供排行榜,例如 "Open LLM Leaderboard",通过行业标准指标(如 MMLU) 对 LLM 进行比较。

此外,云服务提供商(如 AWS)和 AI 公司(如 OpenAI 和 Anthropic)也提供专有模型(Proprietary Models),这些模型通常是付费服务,并带有访问限制。

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

  • 开源模型 vs. 专有模型

    • 开源模型:支持完全定制和自托管,但需要较高的技术能力。

    • 专有模型:提供即用型 API,通常质量更高,但成本较高

  • 任务与指标(Task & Metrics)

    • 不同模型在问答、摘要、代码生成 等任务上的表现不同。

    • 可以通过基准测试指标和领域任务测试来选择最合适的模型。

  • 架构(Architecture)

    • 仅解码架构(Decoder-Only,如 GPT):在文本生成任务 上表现更佳。

    • 编码-解码架构(Encoder-Decoder,如 T5):在翻译任务 上效果更好。

    • 专家混合(Mixture of Experts, MoE)模型(如 DeepSeek) 也正在展现良好潜力。

  • 参数规模(Number of Parameters & Size)

    • 大模型(70B-175B 参数):性能更强,但计算资源需求高。

    • 小模型(7B-13B 参数):运行更快、成本更低,但能力可能有所降低。


6 种常见的 LLM 定制策略

确定基础 LLM 之后,我们可以探索6 种最常见的 LLM 定制策略,按资源消耗从低到高排序:

  1. 提示工程(Prompt Engineering)

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

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

  4. 代理(Agent)

  5. 微调(Fine-Tuning)

  6. 人类反馈强化学习(RLHF, Reinforcement Learning from Human Feedback)


1. 提示工程(Prompt Engineering)

提示(Prompt) 是发送给 LLM 的输入文本,用于引导 AI 生成响应。提示通常包括以下四个部分:

  • 指令(Instructions):描述任务或提供执行指南。

  • 上下文(Context):提供额外信息,以限制模型的回答范围。

  • 输入数据(Input Data):具体的问题或任务输入。

  • 输出指示(Output Indicator):指定输出的格式或类型。

提示工程的核心在于优化提示的结构,以更好地控制模型输出。  

常见的提示工程技术

  • 零样本(Zero-Shot Prompting):直接输入问题,模型自行推理答案。

  • 单样本(One-Shot Prompting):提供一个示例,指导模型如何回答。

  • 少样本(Few-Shot Prompting):提供多个示例,以提高响应质量。

由于提示工程的高效性和低成本,研究人员开发了更复杂的方法,以增强提示的逻辑结构,例如:

  • 链式思维(Chain of Thought, CoT)

    • 让 LLM 将复杂推理任务拆解为多个步骤,提高连贯性和准确性。

    • 每一步输出的推理结果都会成为下一步的输入,直到得出最终答案。

  • 思维树(Tree of Thoughts, ToT)

    • 在 CoT 的基础上,探索多条推理路径,并自评选择最佳行动。

    • 适用于需要决策规划和探索多种解决方案 的任务。

  • 自动推理与工具使用(ART, Automatic Reasoning and Tool-Use)

    • 结合 CoT,并允许模型调用外部工具(如搜索、代码生成)以完成任务。

  • ReAct(Synergizing Reasoning and Acting)

    • 结合推理路径和“行动空间”,根据环境反馈动态调整模型行为。

CoT 和 ReAct 等技术通常与代理(Agent)框架结合使用,以进一步增强模型能力。

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

解码策略(Decoding Strategy) 可在推理(Inference) 阶段控制 LLM 的输出方式,影响文本的随机性和多样性。常见的解码策略包括:

(1)贪心搜索(Greedy Search)

  • 直接选择概率最高的 token 作为下一个输出。

  • 优点:计算速度快,适用于结构化任务(如填充缺失单词)。

  • 缺点:可能导致模型输出单调,缺乏创造力。

(2)束搜索(Beam Search)

  • 维护 k 个候选路径(beam size),每步选择最优的k 个 token 组合,最终选择最高概率的句子。

  • 优点:比贪心搜索更全面,适用于翻译等任务。

  • 缺点:计算量较大,仍可能生成重复文本。

(3)采样策略(Sampling Strategy)

采样策略通过调整模型推理参数 来增加生成文本的随机性和创造力。

① 温度(Temperature)
  • 降低温度(Temperature → 0):增加高概率词的选择,减少随机性(类似贪心搜索)。

  • 提高温度(Temperature → 1):增加随机性,生成更具创造性的文本。

  • 示例

    outputs = model.generate(**inputs, temperature=0.7)
    
② Top-K 采样(Top-K Sampling)
  • 仅从 K 个最可能的 token 中进行采样,忽略概率较低的 token。

  • 示例

    outputs = model.generate(**inputs, top_k=50)
    
③ Top-P 采样(Nucleus Sampling)
  • 选择累计概率大于 p 的最小 token 集合 进行采样。

  • Top-P vs. Top-K

    • Top-K 固定选择 k 个 token,可能会忽略更适合上下文的低概率 token。

    • Top-P 动态调整选择范围,更适用于灵活生成任务。

  • 示例

    outputs = model.generate(**inputs, top_p=0.95)

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

检索增强生成(RAG) 结合 LLM 与外部知识库,减少“幻觉”(hallucination)问题,提升对特定领域问题 的回答能力。

RAG 的主要流程

RAG 主要包括 “检索(Retrieval)” 和 “生成(Generation)” 两个阶段:

(1)检索阶段

  • 文档切分(Chunking):将外部知识拆分成小块。

  • 创建嵌入向量(Embeddings):将文本转换为向量表示。

  • 索引存储(Indexing):存储文本与向量,支持高效检索。

  • 相似度搜索(Similarity Search):匹配最相关的文档 以增强模型的回答。

(2)生成阶段

  • 结合检索到的信息 与 用户查询,生成更精准的答案

示例代码(RAG 实现)

from llama_index.llms.openai import OpenAI
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.core import VectorStoreIndex

# 设定 LLM & 嵌入模型
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.")
 

4. 代理(Agent)

LLM 代理(Agent) 超越了 RAG 的能力,能够自主规划任务、调用工具并维护对话状态,适用于更复杂的任务管理。

代理的核心能力

  1. 维护记忆和状态,跟踪上下文信息。

  2. 调用外部工具(如 API、数据库、计算工具)。

  3. 分解复杂任务,规划执行步骤。

  4. 与其他代理协作,形成多代理系统。

ReAct 框架(Synergizing Reasoning and Acting)

  • 结合推理(Reasoning) 和 行动(Action),让 LLM 具备决策能力

  • 由 Google Research & Princeton 提出,基于 Chain of Thought 发展而来。

示例代码(ReAct 代理实现)

from llama_index.core.agent import ReActAgent
from llama_index.core.tools import FunctionTool

# 创建代理工具
def multiply(a: float, b: float) -> float:
    return a * b
multiply_tool = FunctionTool.from_defaults(fn=multiply)

def add(a: float, b: float) -> float:
    return a + b
add_tool = FunctionTool.from_defaults(fn=add)

# 定义代理
agent = ReActAgent.from_tools([multiply_tool, add_tool], llm=llm, verbose=True)
 

5. 微调(Fine-Tuning)

微调(Fine-Tuning) 通过训练专有数据集,调整 LLM 权重,使其更符合特定任务需求。

PEFT(参数高效微调)

为了降低计算成本,研究人员提出参数高效微调(PEFT, Parameter-Efficient Fine-Tuning) 方法,例如:

  • LoRA(低秩适配):减少参数更新数量,加速微调。

  • 适配器(Adapters):添加可训练层,而不修改原模型参数。

示例代码(使用 Hugging Face 进行微调)

from transformers import TrainingArguments, Trainer

training_args = TrainingArguments(
    output_dir=output_dir,
    learning_rate=1e-5,
    eval_strategy="epoch"
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=train_dataset,
    eval_dataset=eval_dataset,
    compute_metrics=compute_metrics,
)

trainer.train()
 

6. 人类反馈强化学习(RLHF)

人类反馈强化学习(RLHF, Reinforcement Learning from Human Feedback) 通过人类偏好数据训练奖励模型,优化 LLM 的回答质量。

RLHF 训练流程

  1. 收集人类偏好数据,标注高质量回答。

  2. 训练奖励模型,预测回答的质量得分。

  3. 使用强化学习(PPO 算法)优化 LLM,提高模型对人类偏好的匹配度。

示例代码(使用 Trlx 进行 RLHF 训练)

from trl import PPOTrainer, PPOConfig, AutoModelForSeq2SeqLMWithValueHead

# 定义强化学习参数
config = PPOConfig(
    model_name=model_name,    
    learning_rate=learning_rate,
    ppo_epochs=max_ppo_epochs,
    mini_batch_size=mini_batch_size,
    batch_size=batch_size
)

# 训练 RLHF 模型
ppo_trainer = PPOTrainer(
    config=config, 
    model=ppo_model, 
    tokenizer=tokenizer, 
    dataset=dataset["train"]
)

ppo_trainer.step(query_tensors, response_tensors, rewards)
 


📌 总结:6 种 LLM 定制策略对比

下表总结了六种 LLM 定制策略的 特点、适用场景、优缺点,帮助你快速选择最适合的方案:

方法特点适用场景优点缺点
提示工程(Prompt Engineering)通过优化输入提示来调整 LLM 输出快速调整模型行为(如问答、文本摘要)易于实现,零成本依赖提示质量,无法长期记忆
解码 & 采样策略(Decoding & Sampling)调整推理参数(如温度、Top-K、Top-P)需要控制生成文本的随机性和创造力不修改模型参数,计算开销低无法改变模型知识
检索增强生成(RAG)在推理阶段动态检索外部知识需要实时访问外部数据(如企业内部知识库)降低幻觉问题,适合封闭领域依赖检索系统,查询速度可能受限
代理(Agent)具备记忆、决策和工具调用能力复杂任务管理(如多步推理、自动化工作流)任务执行灵活,可调用外部工具需要复杂的工作流设计
微调(Fine-Tuning)通过额外训练数据更新模型参数需要长期适应特定领域(如医学、法律)提高领域适应性计算成本较高,可能遗忘原始知识
人类反馈强化学习(RLHF)通过人类反馈优化模型行为需要提升模型的道德性、可控性(如减少有害内容)提高对齐性,优化人类偏好训练成本高,依赖大量标注数据

🔗 进一步阅读

如果你想更深入地研究 LLM 定制策略,可以参考以下论文和资源:

📖 提示工程

  • Chain-of-Thought Prompting: Elicits Reasoning in Large Language Models

  • Tree of Thoughts: Deliberate Problem Solving with Large Language Models

📖 解码策略

  • Text Generation Strategies: Using Different Decoding Methods for Language Generation

📖 检索增强生成(RAG)

  • Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks: Original RAG Paper

  • A Survey on RAG for Large Language Models: Comprehensive Research Overview

📖 代理(Agent)

  • NVIDIA: Introduction to LLM Agents: A Guide to Intelligent Agent Systems

📖 微调(Fine-Tuning)

  • LoRA: Low-Rank Adaptation for Efficient Fine-Tuning: Efficient Fine-Tuning Methods

📖 人类反馈强化学习(RLHF)

  • A Survey of Reinforcement Learning from Human Feedback: Comprehensive RLHF Review


🎯 结语

LLM 的定制正在快速发展,不同的应用场景适用于不同的优化方法。如果你的需求是:

  • 快速调整模型行为 👉 提示工程

  • 控制文本生成风格 👉 解码 & 采样策略

  • 减少幻觉,提高专业性 👉 RAG

  • 自动化任务 & 复杂决策 👉 代理(Agent)

  • 长期适应特定领域 👉 微调(Fine-Tuning)

  • 优化 LLM 道德性 & 可控性 👉 RLHF

希望这篇指南对你有所帮助!如果你有任何问题或想了解更多内容,欢迎继续交流!🚀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值