一、Prompt Engineering
概念:通过设计和优化输入提示(Prompt)来有效引导AI模型生成准确、相关且符合需求的输出的技术。
快速构建应用和性能基准
提示词作为人机交互的API接口,其结构化设计直接影响大模型输出的精度与适用性。通过科学的Prompt Engineering进行LLM性能调优,开发者能够以极低学习曲线挖掘模型的潜在能力。
相较于模型微调或架构改造等复杂方案,这种基于自然语言指令的优化范式不仅实施门槛大幅降低,其边际成本优势更使其成为工业落地的优选策略。
在提升大型语言模型效能的过程中,提示词工程的首要任务是通过快速构建应用原型形成基础参照系。该原型不仅可作为功能验证的初始样本,更重要的是能建立明确的性能基线指标,为后续的模型调优、算法改进等优化措施提供可量化的对比依据。
在使用提示词工程构建好应用之后,要进一步提高模型的性能可以考虑添加外部辅助工具、添加参考内容等手段,这就涉及到RAG、Agents等相关技术。
鉴于提示词工程对LLM的核心作用,在实际应用过程中,使用RAG、微调或其他高级技术之后也应该再次优化提示词,提示词工程贯穿LLM性能优化的过程始终。
在使用提示词工程的时候,要遵循四项核心原则:编写清晰的指令、将复杂任务分解为简单任务、给LLM一定的时间空间思考、系统的测试性能变化。
这些原则看似简单,但实践起来却不容易,要提高提示词技巧应该多学多练。需要的可以踢我。
做好模型的性能评估
只有清晰地了解了模型性能,才能判断各项改进操作是否有效,以下是评估模型性能的一些方法。
外包人工注释:俗称"花钱买判断",这种原始模式在AI数据领域痛点明显。不仅每单标注成本高企、交付龟速,更因不同标注员的理解偏差导致结果像开盲盒,品控成了老大难问题!
内部人工审核:通过组织内部人员对算法生成内容开展多维度审查,能有效把控合规性与精准度,但存在响应延迟和跨部门协作资源占用问题。
基于模型的评估:借助高阶大语言模型(如GPT-4)构建自动化评估框架,通过语义理解与推理能力对系统输出进行多维量化分析。随着通用领域基座模型在认知智能层面的持续突破,这种新型评估范式在信效度指标上已接近人类专家评审水平。
基于代码的评估:编写一套评估自定义的规则,以评估型输出的特定方面。
准确度指标:如果目标明确,F1、精确度、召回率等数据集指标可以客观地衡量模型的准确性。
终端用户反馈和A/B测试:终端用户反馈是产品优化的核心参考依据!这类反馈不仅涵盖用户明确表达的诉求意见,更包含其在使用过程中产生的行为轨迹数据。
例如当用户主动点击重新生成按钮时,实际上是通过操作行为传递对当前结果的不认可;而反复追问相似问题的操作模式,则隐含着产品功能或信息呈现方式存在优化空间。这些由真实使用场景沉淀的数据,往往比问卷调研更能精准反映用户需求痛点。
这些评估方法各有优缺点,通常最好的方法是将几种方法相结合,全面了解模型的性能和需要改进的地方,从而构建适合自身业务的模型性能评估框架。
提示词工程的局限性
提示词工程技术在应用层面呈现鲜明的双面性特征。其优势体现在:技术门槛较低,支持敏捷试错与快速迭代;部署成本低廉,开发周期短促,可助力开发者快速搭建MVP(最小可行性产品)原型,配合效果评估体系,可为后续模型优化提供可靠的性能基准线。
但需正视其固有局限:知识更新滞后,模型难以实时吸收领域新知识;面对多模态复杂任务时,输出质量易受prompt设计细微偏差影响,难以保持逻辑连贯性;Token消耗量居高不下,长文本生成场景存在算力资源浪费的硬性约束。这些特性决定了其更适合轻量化需求场景的技术落地。
如果想要可靠的解决这些问题,提示工程无能为力,只能依赖其他技术,要实现稳定可靠的引入新知识,我们可以使用 RAG(知识检索增强)技术。要实现更稳定的风格和结构,降低token消耗,则可以对模型进行微调。
二、RAG
概念:RAG(检索增强生成)是一种结合信息检索与文本生成的技术,通过先检索外部知识再生成回答,提升语言模型的准确性和相关性。
RAG过程
一个典型的知识问答的RAG的流程为:
第一步:建立一个领域知识库,例如将世界旅游景点文档Embedding后得到知识库;
第二步:用户可输入问题,如:中国有哪些旅游景点?(Question);
第三步:基于用户问题检索世界旅游景点知识库(KnowledgeBase);
第四步:从知识库中检索得到答案,然后将答案与提示词组装起来:“基于提供的知识回答用户问题:【用户问题:中国有哪些旅游景点?】【知识:xxxxxx】”;
第五步:将组装好的提示词输入大模型,大模型再做出相应的回答。总结一下,依据用户输入检索知识,然后构造Prompt,Prompt 输入模型得到结果。当然,更进阶的RAG不仅仅调整输入Prompt,甚至也能用模型输出信息。
高性能RAG架构本质上是以知识检索为基石的智能化系统,其运行机制虽沿袭了传统检索系统的核心框架,但通过与大语言模型的深度耦合实现了质的跨越。
在实际工程实践中,研发团队可通过语义重排序(Semantic Reranking)、多模态分类引擎以及嵌入向量微调(Embedding Vector Fine-tuning)等多维技术策略进行系统优化。
无论采用Hybrid Search混合检索还是基于图神经网络的增强算法,这类系统的技术演进始终锚定在知识检索的效率与精度双重维度——即如何在低延迟条件下实现检索结果与用户意图的精准对齐。
这种特性使得现代RAG系统既能继承传统IR系统的高效性,又能通过大规模预训练语言模型突破语义理解的边界。
如同限时解谜游戏中的线索拼图,RAG系统面临着双重挑战:如何在有限时间内实现跨知识库的精准定位(横向检索),以及在单一知识库内完成高效内容挖掘(纵向检索),这两大维度共同构成了评估检索效率的核心指标。
虽然RAG机制为生成式模型注入了动态知识更新的活力,但其作为独立模块的架构特性也意味着可能产生系统性偏差,这要求我们必须建立完善的评估体系来持续监测其知识检索的准确性和可靠性。
RAG评估
在构建知识增强型大语言模型系统时,检索模块的有效性直接影响最终输出的可靠性。当检索系统返回低质量或无关的知识数据时,不仅会导致大模型生成错误信息,更可能引发事实性谬误的连锁反应。
为此,建立科学的评估体系需遵循双重路径:一方面通过困惑度、事实准确率等指标量化生成内容质量,另一方面采用查准率、查全率、知识覆盖率等维度评估检索系统效能。
这种分层评估机制既能诊断检索环节的瓶颈,又能有效区分知识获取与知识应用两个阶段的性能表现,为系统优化提供精准的改进方向。
需要进行RAG评估的时候,可以从模型角度及检索角度这两个进行评估。
模型角度(generation)
回答真实性:模型结果真实性多高,少一些模型幻觉回答相关度:结果和问题有多相关,不能南辕北辙检索角度(retrieval)
召回率(recall):相关信息有多少包含在返回的检索内容里,越全越好
准确率(precision):返回的检索内容中有用信息占比多少,越多越好
虽然检索增强生成(RAG)技术存在应用边界,但它在解决上下文依赖性任务时就是一个强大的工具。该机制通过构建动态知识接口,使大语言模型能够突破训练数据边界获取实时资讯,有效补充模型预训练阶段缺失的领域背景知识。
这种技术路径尤其适用于时效性敏感的专业场景(如金融分析、医疗诊断),当系统需要调用非结构化数据中的关键证据时,基于文档检索的上下文锚定可降低67%以上的虚构内容生成概率(根据Google Research 2024年基准测试数据),显著提升知识密集型任务的输出可靠性。
RAG的局限性:这门技术适合打造专才,不适合打造通才。虽然能够为模型提供新的信息、专有领域知识,但并不适合为模型提供通用领域的知识。
怎么样才能让LLM模型保持稳定的风格或结构输出,降低token消耗等。也就是在Prompt工程局限性的后两点,则需要利用微调技术解决。
三、Fine-tuning(微调)
概念:Fine-tuning(微调)是通过在预训练模型的基础上,针对特定任务的数据进一步调整模型参数,使其适应新任务或改进性能的迁移学习方法,让AI大模型按照要求输出期望结果。
从参数规模的角度,大模型的微调可以分成两条技术路线:全量微调FFT及PEFT。
全量微调FFT(Full Fine Tuning):对全量的模型参数进行全量的训练
PEFT(Parameter-Efficient FineTuning):只对部分模型参数进行训练从成本和效果的角度综合考虑,PEFT是目前业界比较流行的微调方案
微调是在较小的、特定领域的数据集撒谎给你继续LLM的训练流程,这可以通过调整模型本身的参数,而不是像提示词工程和RAG那样仅仅更改提示词来大幅提高模型在特定任务中的性能,可以把微调的这个过程想象成:把通用工具打磨成精密仪器的过程。
微调的两大好处是什么?
提高模型在特定任务中的性能:微调意味着你可以输入更多的示例,可以在数以百万计的数据上进行微调。虽然经过微调的模型可能会失去一些通用性,但对于其特定任务而言,它会有更好的表现。
提高模型效率:提升LLM应用程序的效率意味着更低的延迟和更低的成本。实现这一优势有两种方法。通过专门化模型,您可以使用更小的模型。此外,由于只对输入输出对进行训练,而不是对完整的提示及其任何提示工程技巧和提示进行训练因此你可以舍弃示例或指令,这可以进一步改善延迟和成本。
微调该如何做
为了使微调达到最佳效果,应该从明确的目标和相关的高质量数据集开始,使用能体现所需输出类型的数据进行微调。此外,迭代测试也至关重要,需要从小的、渐进的变化开始,并在下一步进行前对结果评估。
为了使微调达到最佳效果,应该从明确的目标和相关的高质量数据集开始,使用能体现所需输出类型的数据进行微调。此外,迭代测试也至关重要,需要从小的、渐进的变化开始,并在下一步进行前对结果评估。
对于OpenAl模型:微调包括使用其提供的API工具在我们的数据集上进一步训练模型。在进行微调训练时需要调整各种超参数并监控模型的性能,以找到适合特定用例的最佳设置。
对于开源的LLM:微调可能需要更多的实践工作,包括设置训练环境、管理数据流,还可能需要直接调整模型架构。
微调也有局限性
对于需要快速迭代新用例的场景,微调所起的作用较小。要实现微调功能,需要创建一个大型训练数据集,其中需包含数百个优质示例。然后,按照格式要求将数据集整理成适当的格式,并启动微调自定义LLM的训练任务,评估微调性能。
为了实现良好的微调,还需要建立一个模型改进工作流程,在流程中不断监控模型性能变化,获得反馈,并依据反馈不断改进模型。
通过记录所有生成的模型,以及评分指标(隐性和显性用户的反馈,以及人类和人工智能的评估),从而为下一版本创建的训练数据集进行调整。
另外,许多LLMOps平台也能自动收集和显示最佳数据,让我们只需点击几下就能对模型进行微调。
总结:提示词工程、RAG 和微调等方式,在优化LLM的性能时,都是可以叠加使用的。
“RAG+微调”的这种双重方法充分利用了微调(针对特定任务的性能) 和 RAG(动态、上下文丰富的信息检索)的优势,使LLM应用程序的性能更强。