初识LLM优化

创建于2025年3月22日, 更新于2025年3月22日

在构建生产级LLM应用时,优化模型性能是必经之路。本文从提示词工程、模型微调和检索增强生成(RAG)​三个维度,结合技术原理与实践案例,探讨如何系统性提升LLM的垂直领域表现。

提示词工程

提示词是用户与LLM交互的核心媒介,其设计直接影响模型输出的精准度。

​结构化提示词设计

  • 字符串模版(角色、问题、目标、补充要求)
  • 对话模版:通过对话形式的语境让大模型继续对话

优化技巧:​MMR

MMR(max marginal relevance 最大边缘相关性)是一种基于信息检索的多样性筛选算法,可在长文本场景下,通过多样性筛选保留关键信息。

提示词存储方式

  • F-string
  • jinji2
  • 分层提示词(角色和性格、行为、不允许)
  • 序列化(json、yaml、txt)

微调

当提示词工程触及性能天花板时,微调(Fine-tuning)成为突破瓶颈的关键。

微调分类

  • 指令微调:数据集字段(input、output、instruction) 场景:智能教育、智能办公、智能翻译、数据分析
  • 对话微调:通过对话形式的数据集指导大模型 场景:智能客服系统、聊天机器人、语言助手
  • 领域适配:领域数据集(input、output、instruction、domain) 场景:医疗适配领域、法律适配领域、金融适配领域
  • 文本分类:将输入的内容贴上标签,数据集(text、label) 场景:情感分析、内容审核、新闻分类、意图识别
  • 模型推理:有推理过程的数据集
  • 强化学习:给模型的输出进行打分、归类(好与不好)等操作,再把这个打分数据集输入给大模型
  • 多模态微调:前提是预训练模型需要有多模态能力

微调参数

  • 训练轮数:复习次数
  • 学习率:学习方法的调整幅度
  • 批量大小:一次处理的题目数量(数量少学习得更深入,数量多学习的更快)

数据集格式

  • Alpaca :通用数据集格式。
  • Share GPT:适用于多轮对话、数据调用场景。

数据集分类

  • 训练集:模型学习规律核心资料。
  • 验证集:检测模型举一反三能力,过程中调整学习方法。
  • 测试集:评估模型真实水平。
  • 完整集:训练集 + 验证集 + 测试集。常规情况:70%训练集 + 15%验证集 + 15%测试集;小数据场景:80%训练集 + 10%验证集 + 10%测试集。

知识蒸馏

概念:当部署大模型成本较高时,用小模型来代替大模型。用大模型产出的数据集来训练小模型的过程称为知识蒸馏。

工具

  • colab:google线上python执行平台
  • jupyter:开源python执行平台,在本地运行
  • unsloth:大模型微调工具
  • nomic:向量化工具
  • hugging face:大模型开源平台

RAG

RAG(检索增强生成)通过外挂知识库弥补模型静态知识的局限性,尤其在需要实时数据支持的场景中不可或缺。

文档切割步骤

  1. 将文档切割成小的、有意义的块。
  2. 将小块组合成大块。
  3. 达到一定大小后,创建与下一个块重叠的部分。

切割分类

  • 按字符切割
  • 按代码切割
  • 按token切割

向量数据库

  • Milvus
  • Faiss
  • Pinecone
  • Chroma
  • LanceDB

工具

  • doctran:开发工具,用于文档总结、精炼、翻译。

检索优化

  • 多重查询:把一个问题扩展成多个,同时进行向量匹配,取重叠部分
  • 上下文压缩:压缩器会把检索出来的内容交给大模型进行内容筛选
  • mmr:最大边缘相关性检索
  • 相似性打分检索
  • lost in the middle,当文本被索引时,中间部分检索性能会下降,所以要把相关性高的文本放在两边。

博客目录

提示词工程
微调
RAG