大语言模型优化方法简介:Prompt、RAG、Fine-tuning

GPT、LLama、Gemini等大语言模型虽展现出强大能力,但在实际应用中仍有问题,例如在准确性、知识更新速度和答案透明度方面,仍存在挑战。

论文“Retrieval-Augmented Generation for Large Language Models: A Survey(面向大语言模型的检索增强生成技术:调查)
https://arxiv.org/abs/2312.10997 对解决这些问题的模型优化方法做了分类,如下图:

图:模型优化方法的比较,两个坐标轴分别是:对外部知识的需求和模型的适配复杂度。

附:这篇论文的中文翻译推荐看宝玉翻译的版本:
https://baoyu.io/translations/ai-paper/2312.10997-retrieval-augmented-generation-for-large-language-models-a-survey

一、Prompt Engineering 提示词工程

提示词工程可以分三个层次:

  • 标准提示词
  • Few-shot 少量示例提示词,通过提供少量的示例来让模型回答的更精准。
  • XoT 提示词,例如 CoT(思维链),ToT(思维树),参看 使用思维链写Prompt

下面是一个 Few-shot prompt的示例:

A “whatpu” is a small, furry animal native to Tanzania. An example of a sentence that uses
the word whatpu is:
“whatpu”是坦桑尼亚的一种小型毛茸茸的动物。一个使用whatpu这个词的句子的例子是:

We were traveling in Africa and we saw these very cute whatpus.
我们在非洲旅行时看到了这些非常可爱的whatpus。

To do a “farduddle” means to jump up and down really fast. An example of a sentence that uses the word farduddle is:
“farduddle”是指快速跳上跳下。一个使用farduddle这个词的句子的例子是:

输出:

When we won the game, we all started to farduddle in celebration.
当我们赢得比赛时,我们都开始庆祝跳跃。

二、RAG 检索增强生成

检索增强生成(Retrieval-Augmented Generation, RAG) 特指一种模式:模型在回答问题或生成文本时,首先从广阔的文档库中寻找相关信息。然后,模型使用这些找到的信息来生成回答或文本,从而提高其预测的准确度。

论文中把RAG分成三种范式:

  • Naive RAG 朴素RAG, 添加相关上下文
  • Advanced RAG 高级RAG,在索引/检索前/检索后做优化
  • Modular RAG 模块化RAG,有机组合多种模块

下图是三种RAG范式的比较

2.1、Naive RAG 朴素RAG

Naive RAG 的准备流程如下:

  • 将文本分割成小块;
  • 然后使用某种 Transformer Encoder 模型将这些小块转换为向量;
  • 把这些向量汇总到一个索引中;

在使用时,创建一个针对大语言模型的提示,指导模型根据我们在搜索步骤中找到的上下文回答用户的查询。

下面是一个RAG例子,中文的prompt在注释里:

def question_answering(context, query):
    # 请回答后面用三个反引号 ```{query}```包围的问题,
    # 回答时参考用三个反引号 ```{context}```包围的参考信息。
    # 如果提供的上下文中没有相关信息,尝试自己回答,但要告诉用户你没有相关的上下文作为回答的依据。
    # 回答要简洁,输出的答案少于80个token。
    prompt = f"""
Give the answer to the user query delimited by triple backticks ```{query}```\
using the information given in context delimited by triple backticks ```{context}```.\
If there is no relevant information in the provided context, try to answer yourself,
but tell user that you did not have any relevant context to base your answer on.
Be concise and output the answer of size less than 80 tokens.
"""

    response = get_completion(instruction, prompt, model="gpt-3.5-turbo")
    answer = response.choices[0].message["content"]
    return answer

这种原始RAG在三个方面面临挑战:检索质量、回应生成质量和增强过程。

挑战1:检索质量

该方面的问题多方面。最主要的问题是低精度,即检索集中的文档块并不都与查询内容相关,这可能导致信息错误或不连贯。

其次是低召回率问题,即未能检索到所有相关的文档块,使得大语言模型无法获取足够的背景信息来合成答案。

此外,过时信息也是一个挑战,因为数据冗余或过时可能导致检索结果不准确。

挑战2:回应生成质量:

这方面的问题同样多样。最突出的问题是制造错误信息,即模型在缺乏足够上下文的情况下虚构答案

另一个问题是回答不相关,即模型生成的答案未能针对查询问题。

进一步来说,生成有害或偏见性回应也是一个问题。

挑战3:增强过程:

最终,增强过程面临几个重要挑战。特别重要的是,如何将检索到的文段的上下文有效融入当前的生成任务。如果处理不得当,生成的内容可能显得杂乱无章。当多个检索到的文段包含相似信息时,冗余和重复成为问题,这可能导致生成内容的重复。

此外,如何判断多个检索到的文段对生成任务的重要性或相关性非常有挑战性,增强过程需要恰当地评估每个文段的价值。检索到的内容可能具有不同的写作风格或语调,增强过程需调和这些差异,以确保最终输出的一致性。

最后,生成模型可能会过度依赖于增强信息,导致生成的内容仅是重复检索到的信息,而缺乏新的价值或综合信息

2.2、Advanced RAG 高级RAG

为了克服 Naive RAG 的局限性,高级 RAG 进行了针对性的改进。


比起 Naive RAG,增加了下面优化:

  • “Pre-Retrieval”(检索前)优化,例如:细粒度数据清洗、添加文件结构以及查询重写/澄清等。
  • “Post-Retrieval”(检索后)优化,从向量数据库检索后的优化,例如:重排序、过滤和提示压缩等。

2.3、Modular RAG 模块化RAG

高级 RAG 的实现比较复杂,因为需要额外开发很多功能,模块化 RAG 将这些功能模块解耦,并将其作为一个独立的模块,这样大大降低实现的复杂性,提升灵活性、效率、可扩展性。

具体来说,包含下面这些模块和模式:

2.3.1、Modules 新模块
  • 图中外层包括“Search 搜索”、“Predict 预测”、“Memory 记忆”、“Criticize 评估”、“Demonstrate 验证”、“Fusion 对齐” 这六个模块。
  • 内层是包括“Retrieve 检索”、“Rerank 重排序”、“Rewrite 重写”和“Read 阅读”过程的RAG(检索增强生成)模块。
2.3.2、Patterns 新模式

涉及多种信息处理流程,这些显示了系统处理信息并响应用户查询的不同路径。

  • Navie RAG : Retrieve 检索 → Read 阅读
  • Advanced RAG : Rewrite 重写 → Retrieve 检索 → Rerank 重排序 → Read 阅读
  • DSP : Demonstrate 验证 → Search 搜索 → Predict 预测
  • ITER - RETGEN : Retrieve 检索 → Read 阅读 → Retrieve 检索 → Read 阅读

三、Fine-tuning 微调

比RAG更复杂的就是微调了,微调方法是为了提高模型在特定任务上的表现,根据关注的焦点不同,分三种:

  • 检索器微调专注于改进信息查找过程,
  • 生成器微调专注于改进输出的质量,
  • 协同微调则旨在优化这两个组件之间的协作。

3.1、Retriever Fine-tuning(检索器微调)

检索器是指模型中用来从大量数据中检索信息的部分,通常用于处理需要查找和利用外部知识的任务,如问答系统。

微调检索器就是对这部分模型进行特殊训练,使其更擅长从数据集中找到相关信息。

举个例子,就像在图书馆中训练一个图书管理员,使其更快地找到你需要的书。

3.2、Generator Fine-tuning(生成器微调):

生成器是模型中负责产生响应或输出的部分,如文本生成模型中创建新文本的部分。

微调生成器意味着特别训练这个部分,使其在产生输出时更准确、更符合目标任务的要求。

例如,如果你想让模型写诗,你会特别训练它理解和使用诗歌的结构和韵律。

3.3、Collaborative Fine-tuning(协同微调)

这是一种更复杂的微调方法,涉及到模型中的检索器和生成器同时被调整,以更好地协同工作完成任务。

在协同微调过程中,检索器和生成器相互学习,以提高整体性能。检索器提供的信息可以帮助生成器产生更准确的输出,而生成器的需求可以引导检索器寻找更相关的信息。

可以想象成一个团队工作的情况,团队中的每个成员(检索器和生成器)都在相互学习,以更好地协作完成任务。

四、总结

大型语言模型(如GPT、LLama、Gemini)在准确性、知识更新速度和答案透明度方面存在挑战,常用的解决优化方法:Prompt Engineering(提示词工程)、Retrieval-Augmented Generation(RAG,检索增强生成)和Fine-tuning(微调)。每种方法都有不同的层次和特点。

Prompt Engineering:通过使用标准提示词、Few-shot提示词和XoT提示词(如CoT和ToT),来提高模型的回答精准度。

RAG:模型首先从文档库中寻找相关信息,然后使用这些信息来生成回答或文本。RAG分为三种类型:

  • Naive RAG:添加相关上下文。
  • Advanced RAG:在索引/检索前后进行优化。
  • Modular RAG:组合多种模块。

Fine-tuning:涉及检索器微调、生成器微调和协同微调,旨在提高模型在特定任务上的表现。检索器微调专注于改进信息查找过程,生成器微调专注于改进输出质量,协同微调则优化这两个组件间的协作。

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

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

事实上,抢你饭碗的不是AI,而是会利用AI的人。

科大讯飞、阿里、华为等巨头公司发布AI产品后,很多中小企业也陆续进场!超高年薪,挖掘AI大模型人才! 如今大厂老板们,也更倾向于会AI的人,普通程序员,还有应对的机会吗?

与其焦虑……

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高。

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

一、LLM大模型经典书籍

AI大模型已经成为了当今科技领域的一大热点,那以下这些大模型书籍就是非常不错的学习资源。

在这里插入图片描述

二、640套LLM大模型报告合集

这套包含640份报告的合集,涵盖了大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(几乎涵盖所有行业)

在这里插入图片描述

三、LLM大模型系列视频教程

在这里插入图片描述

四、LLM大模型开源教程(LLaLA/Meta/chatglm/chatgpt)

在这里插入图片描述

LLM大模型学习路线

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。

  • 内容

    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。

  • 内容

    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.3 流水线工程
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。

  • 内容

    • L3.1 Agent模型框架
    • L3.2 MetaGPT
    • L3.3 ChatGLM
    • L3.4 LLAMA
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。

  • 内容

    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

这份 LLM大模型资料 包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)👈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值