微信扫码
与创始人交个朋友
我要投稿
等待新的大型模型版本:但是,每个新版本也会有时间限制。
自己训练模型:这种方法成本高昂且耗时,需要大量基础设施。它也只是一个临时解决方案。
LoRA(低秩自适应)微调:这种方法更简单、更便宜,可以更频繁地进行,但不能在线进行。模型参数无法动态更新。
RAG(检索增强生成):RAG-Graph 和 RAG Light 等变体允许您根据提供的文档添加知识,使用最新信息增强模型的响应。
ReAct(推理和行动):这种方法使 LLM 能够与外部工具交互以检索更多信息,从而获得更可靠和更真实的响应
微调使我们能够将预先训练的 LLM(已经对语言有很强的理解)调整到特定任务,例如翻译语言、生成代码或编写创意内容。传统的微调方法在计算上可能很昂贵,并且需要大量数据。
LoRA 提供了一种创新的解决方案:它不是调整大型 LLM 的所有参数,而是专注于训练较小的 “适配器” 模块。这些模块学习如何调整 LLM 的输出以适应您的特定任务,而无需更改原始模型的参数。
积极方面:
灵活性
:LoRA 微调允许更有针对性的调整,而无需彻底改造整个模型,从而更容易适应不同的任务。
可重用性
:小型适配器模块可以在不同的模型和任务中重复使用,从而提高微调工作的多功能性。
成本效率
:减少对高端硬件(GPU 和存储)、大量数据和训练时间的需求,使 LoRA 成为许多组织的经济选择。
兼容性
:随着基础模型新版本的发布,适配器模块可以轻松更换或更新。
负面方面:
对基础模型的依赖
:LoRA 微调仍然严重依赖于底层 LLM 的质量和功能。如果基础模型有局限性,微调模型将继承这些局限性。
集成的复杂性
:集成和管理多个适配器模块可能变得复杂,尤其是在大型系统中。
性能变化
:虽然 LoRA 通常会提高效率,但性能提升可能会因具体任务和适配器模块的质量而异
更多内容参考:深度解读 RAG 技术发展历程:从基础 Naive RAG 到高级 Advanced,再到模块化 Modular RAG 的全面升级
RAG(Retrieval-Augmented Generation)是一种结合了信息检索(Retrieval)和文本生成(Generation)的混合模型。这种模型最初是为了解决传统的生成模型在处理复杂任务时可能会遗忘信息或生成不准确内容的问题。RAG 模型通过检索大量文档,提取相关信息来辅助生成过程,从而提高输出的准确性和相关性。
RAG(检索增强生成)使用附加信息来增强语言模型的生成能力。其工作流程涉及几个步骤:
分割:将大型文档拆分成较小的部分。
矢量化:将分割后的文本段转换为矢量表示。
检索:将输入查询与矢量数据库中的矢量进行匹配,以找到最相似的文本片段。
生成:将检索到的相关信息连同查询一起传递给大型语言模型 (LLM) 以生成最终响应。
此过程基于最相关的现有信息,确保生成的内容准确且相关。
以下是典型的 RAG 应用程序工作流程(来自 Avi Chawla):
由于附加文档可能非常大,因此步骤 1 还需要进行分割操作,将大文档分割成更小、更易于管理的部分
传统 RAG:使用平面线性数据结构来索引原始数据。当收到用户查询时,系统会查询存储的块以检索相关信息。每个查询都会发生此检索步骤,这可能是速度的瓶颈。
LightRAG:使用知识图谱来表示文本中实体和主题之间的关系。LightRAG 的基于图的索引方法使其能够理解复杂的数据关系,并使用双层检索范式来提供精确的答案和广泛的见解。LightRAG 比 GraphRAG 更快、更实惠,并且可以逐步更新图而无需重新生成它们。
GraphRAG(微软):使用知识图谱将结构化、上下文丰富的数据纳入检索过程。GraphRAG 将外部数据转换为计算机可读的图形结构,该结构由节点(信息)和边(关系)组成。GraphRAG 可以通过展示主题之间的关系来提供对上下文的更丰富理解。但是,使用新知识更新数据集需要重建整个图。它有几个缺点:
增量知识更新
:GraphRAG 首先创建对整个私有数据集中实体和关系的引用。然后,它进行自下而上的聚类,将数据分层组织成语义聚类。使用新知识更新数据集意味着我们必须经历构建图的整个过程!LightRAG 通过将新知识简单地附加到现有知识来解决这个问题。具体来说,它通过简单的联合操作将新的图形节点和边与现有的节点和边组合在一起.
计算强度
:LightRAG 显著降低了检索阶段的成本。GraphRAG 需要 610,000 个令牌,而 LightRAG 需要不到 100 个令牌。
ReAct 是 “推理和行动” 的缩写,是一种突破性的方法,将推理(AI 的思维过程)与行动(AI 执行任务)交织在一起。与将这些过程分开处理的传统 AI 模型不同,ReAct 将它们集成到一个有凝聚力的工作流程中。这种集成确保 AI 采取的每项行动都由其推理决定,并且每项推理都可能导致有意义的行动。
ReAct 按照简单而强大的循环运行,该循环反映了人类解决问题的行为:思考、行动、观察和适应。
思考(推理):每项任务都始于 AI 对问题的思考。它使用其语言理解能力来剖析问题、理解需求并制定策略。此步骤为明智的行动规划奠定了基础。
行动(行动规划和执行):基于其推理,AI 计划并执行特定操作。这些操作可能涉及从外部来源获取数据、与数据库交互,甚至修改环境。此步骤至关重要,因为它将思想转化为解决问题的切实步骤。
观察(反馈整合):行动后,人工智能观察结果并将这些新数据整合到其思维过程中。这种反馈循环使人工智能能够从其行动中学习,了解后果并改进其未来策略。
适应(迭代改进):这个过程本质上是迭代的。人工智能不断循环思考、行动和观察,每次迭代都会调整其方法。这种适应性使人工智能能够有效地处理复杂和动态的问题。
ReAct 是将当前知识注入 LLM 的绝佳方式。它也可以作为 RAG 的预步骤。通过利用 ReAct,系统可以从百度或谷歌等来源收集所有相关信息。之后,RAG 可以矢量化文档并将其添加到数据库以提供答案。
提示词(Prompt)是在与大模型交互过程中,为了引导大模型更准确地理解问题、生成更符合需求的输出而特意提供的特定词语、短语或指令。
大模型就如同一个庞大的知识宝库,但要准确开启这个宝库找到我们所需的珍宝,提示词就是关键钥匙。没有明确的提示词,大模型可能会像一艘在茫茫大海中失去方向的巨轮,虽然拥有巨大的能量,却不知该驶向何方,给出的答案也可能偏离我们的期望。
零样本提示(Zero-shot prompting):这是最基本的提示形式。它是一个单一的提示,要求大型语言模型(LLM)仅根据其训练数据提供响应。
少样本提示(Few-shot prompting):这种类型的提示通过提供一个或多个示例指导大型语言模型(LLM),这些示例是它生
成响应时可以依赖的。Few-shot 并不能完全解决推理的问题,它更多解决一些指令遵循的问题。
思维链提示(Chain-of-thought prompting):这种提示告诉大型语言模型(LLM)如何将问题分解成步骤。Let’s think
step by step 慢慢都被模型训练,已经不算是一个糖点。
CoT Chain of thought 思维链
COT(思维链) 的核心理论在于引导大模型像人类一样进行逐步推理。通常,当我们面对一个问题时,会通过一系列的思考步骤来得出答案。COT 就是将这种思维方式引入到大模型的交互中。
它的作用就像是为大模型搭建了一座思维的桥梁。当我们提供一个问题时,大模型不再是直接给出一个模糊的答案,而是沿着思维链的路径,一步一步地进行分析和推理。这显着提高了答案的准确性和可解释性,并简化了答案不正确时的分析。
COT 的实现方式通常是在提示词中加入一些引导性的语句,如 “首先…… 然后…… 最后……” 或者 “第一步…… 第二步…… 第三步……” 等,让大模型按照这些步骤进行推理。这样不仅能让我们更好地理解大模型的思考过程,也能让大模型更加准确地回答问题。
Few-shot(少样本学习)
Few-shot learning(少样本学习)是一种让大模型在仅有少量样本的情况下也能进行有效学习和准确预测的方法。
从原理上看,大模型通常在大量数据上进行训练,以学习各种模式和规律。但在 Few-shot 场景下,大模型需要快速适应只有几个示例的新任务。这就好比一个经验丰富的侦探,平时通过处理大量案件积累了各种推理技巧和模式识别能力。当遇到一个新的、罕见类型的案件时,即使只有几个类似的少量样本,侦探也能凭借过去的经验和敏锐的洞察力,分析这些线索中的关键特征和模式,从而对新案件做出合理的推断。
1
RAG 解决了自然语言处理领域的哪些关键问题?
上下文理解:通过检索相关上下文信息,RAG 提高了对复杂查询的理解能力。
信息过载:RAG 的有效检索减少了处理无关信息的需求,应对了信息过载的问题。
实时更新:RAG 能够快速整合最新信息,保证了回答的时效性。
个性化响应:RAG 能够根据用户的具体需求提供个性化的回答。
2
RAG 如何在对话中维持上下文连贯性?
上下文记忆:RAG 系统能够记忆并跟踪对话历史,确保当前回答与之前的对话内容保持一致。
动态检索:RAG 的检索组件会根据对话的进展动态调整检索策略,确保信息的相关性和时效性。
连续学习:RAG 通过不断学习对话中的新模式和关系,逐步提升上下文理解能力。
3
RAG 存在哪些局限性?
资源消耗:RAG 的检索和生成过程可能需要较高的计算资源,导致运行成本增加。
信息依赖:RAG 的性能高度依赖于检索到的信息质量,如果信息源存在偏差或不足,可能会影响回答的准确性。
扩展挑战:随着数据量的增加,维护和更新 RAG 系统的挑战也随之增大。
伦理问题:RAG 可能无意中放大或传播训练数据中的偏见,需要谨慎处理。
4
RAG 如何处理多跳推理的复杂查询?
递归检索:RAG 通过递归检索,逐步深入问题的多个层次,构建完整的答案。
信息融合:RAG 能够将从不同来源检索到的信息进行融合,形成连贯的逻辑链条。
推理链构建:通过构建推理链,RAG 能够处理需要多步骤推理的问题,提供深入且准确的答案。
5
知识图谱在 RAG 中的作用是什么?
增强检索:知识图的结构化数据提高了信息检索的准确性和效率。
推理支持:知识图中的关系和属性为 RAG 提供了丰富的推理路径,有助于处理复杂的查询。
知识补充:知识图可以作为 RAG 的外部知识库,为回答提供额外的背景和细节。
增强检索生成技术(Retrieval Augmented Generation,简称 RAG)目前正成为增强大语言模型(LLM)性能的核心手段。该技术通过将外部知识库融入 LLM,大幅提升了大模型的精确度和对上下文的感知力。
Github 地址:https://github.com/explodinggradients/ragas
Ragas(Retrieval-Augmented Generation Assessment) 是一款专为评测增强检索生成(RAG)流程而精心构建的强大工具。它凭借其全面评估 RAG 的方法论,迅速赢得了开发者和数据科学家们的广泛认可。
Ragas 是一个框架,它可以帮助我们来快速评估 RAG 系统的性能,为了评估 RAG 系统,Ragas 需要以下信息:
question:用户输入的问题。
answer:从 RAG 系统生成的答案(由 LLM 给出)。
contexts:根据用户的问题从外部知识源检索的上下文即与问题相关的文档。
ground_truths:人类提供的基于问题的真实(正确)答案。这是唯一的需要人类提供的信息。
当 Ragas 拿到上述这些信息后会基于大语言模型来对 RAG 系统进行打分,就像在任何机器学习系统中一样,LLM 和 RAG 流程中各个组件的性能对整体体验具有重大影响。Ragas 提供了专门用于单独评估 RAG 流程的每个组件的指标。
1、关键特性
量身定制的评估标准:Ragas 提供了一系列专门为 RAG 系统设计的评估指标,这些指标能够精确地评估 RAG 系统在多个维度的性能。
适应性强的评估方式:Ragas 支持本地及分布式评估,这确保了它能够适应各种计算环境和数据量级的需求。无论是进行单机的小规模评估,还是应对分布式系统上的大规模数据评估,Ragas 都能轻松应对。
与主流框架兼容:Ragas 能够与众多流行的大型语言模型(LLM)框架无缝对接。这种兼容性让开发者能够轻松地将 Ragas 整合进现有的 RAG 系统开发流程,大大简化了开发过程并降低了工作负担。
2、评估示例
from ragas import evaluate
from datasets import Dataset
#假设评估数据已经结构化
eval_dataset = Dataset.from_dict({
"question": ["What is the capital of France?"],
"contexts": [["Paris is the capital of France."]],
"answer": ["The capital of France is Paris."],
"ground_truths": [["Paris is the capital of France."]]
})
#运行评估框架
results = evaluate(eval_dataset)
print(results)
Github 地址:https://github.com/prometheus/prometheus
Prometheus 以其作为监控工具和时间序列数据库的卓越性能而著称,然而,其强大的数据搜集和预警能力也使得它在大语言模型(LLM)评估领域值得一谈。
1、关键特性
高效的数据采集与储存能力:有效地捕捉和保存与大语言模型(LLM)系统相关的信息,涵盖 RAG 流程中的数据。这些信息对于诊断系统性能和行为的分析至关重要。
先进的查询功能:配备了一种先进的查询语言,使用户能够轻松地对积累的数据进行检索和分析。借助这种功能强大的查询工具,用户能够细致地探究系统在不同时间段的性能指标,以及不同参数间的相互关联。
弹性的报警机制:拥有一个弹性的报警系统,能够在系统发生异常时迅速发出警告。这样的机制有助于问题的及时识别和处理,保障系统的持续稳定运作。
**2、应用场景
**
Prometheus 能够监控基于大语言模型(LLM)的系统(包括 RAG 流程)的性能和运行状况。尽管它并非专为 LLM 设计,但其收集和分析时间序列数据的功能对于监测 LLM 性能和系统健康状态的长期趋势极为有用。
例如,通过定时搜集 RAG 系统在不同查询条件下的响应时长、准确度等数据,并运用其查询语言进行深入分析,可以揭示系统性能的波动趋势,以及潜在的问题点。一旦响应时间异常延长或准确度明显下降,警报系统便会迅速通知相关人员采取措施。
Github 地址 https://github.com/confident-ai/deepeval
DeepEval 是 LLM 评估领域内另一个突出的框架,它专门针对大语言模型的输出而设计。类似于 Pytest,但它更加专注于 LLM,提供了全面的评估指标,并且支持对 LLM 输出的单元测试功能。
1、关键特性
整合了最新的大语言模型(LLM)输出评估的研究成果。
涵盖了丰富的评估指标体系。
为大语言模型(LLM)的输出提供了单元测试支持。
保障了 LLM 生成内容的质量及一致性。
Github 地址:https://github.com/Arize-ai/phoenix
Phoenix 是由 Arize AI 打造的一款开源工具,旨在为人工智能提供可观测性和评估功能。尽管它并非专门针对 RAG 流程设计,但其强大的功能使其成为评估大语言模型(LLM)的一个有力选择。
1、关键特性
实时监控能力:该工具实现了对 AI 的模型的即时监控,确保能够即时捕捉到大模型运行时的各类信息,包括输入输出数据、性能指标等关键细节。
性能评估与异常侦测:工具内置了性能分析和问题识别的功能。利用这些功能,用户能够深入探究模型的性能表现,快速识别潜在的问题,例如:大模型可能出现的过拟合或欠拟合现象。
广泛兼容性:该工具支持多种 AI 和机器学习场景,其中包括大语言模型(LLMs)。这种广泛的适用性使其能够在多种人工智能项目中被有效利用,展现出其高度的通用性。
2、应用场景
Phoenix 的强项在于其能够全面揭示大模型性能。以大语言翻译项目为例,利用 Phoenix 可以对翻译模型的性能进行实时监控。通过评估模型对各种语言文本的转换效果,可以识别出潜在的翻译误差或不精确之处。此外,Phoenix 还能监测模型是否出现过拟合,即模型过于依赖训练数据,而在处理新数据时表现不佳。基于这些分析,可以对模型进行相应的调整和改进,从而提升翻译的准确度和效率。
Github 地址:https://github.com/ianarawjo/ChainForge
ChainForge 是一款开源的可视化编程工具,旨在对大语言模型(LLM)的响应进行解析和评价。该工具的设计宗旨是简化提示工程和响应评估的过程,使其更加直观且易于使用。
1、关键特性
图形化操作界面:提供了一个图形化界面,方便设计和测试各种提示词。通过此界面,开发人员能够清晰地观察到提示的结构与内容,从而便捷地进行修改和完善。
支持多家 LLM 供应商:该工具兼容多个大型语言模型(LLM)供应商,使用户能够在不同的 LLM 大模型之间进行比较和选择。
输出对比与分析功能:内置了用于对比和分析 LLM 输出的功能。利用这些功能,用户能够对不同 LLM 大模型的输出进行详细比较,识别各自的优势与不足,进而挑选出最合适的大模型。
2、应用场景
ChainForge 的可视化手段在大型语言模型(LLM)的评估领域显得格外突出。以内容生成项目为例,当需要挑选一个最适宜的 LLM 大模型来产出高品质文章时,ChainForge 的图形化界面就能派上用场。用户可以利用这个界面来构思多种提示,并审视不同 LLM 大模型对这些提示词的反馈。通过对比这些大模型的输出,可以辨别出哪个大模型更能够满足文章生成的需求,进而决定在实际操作中使用该大模型
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-12-05
AGI:呼唤更好的检索技术,而非仅仅依赖于LLMs
2024-12-05
AI Agent智能体: 企业知识自动化的新架构 - MenloVC
2024-12-04
如何为RAG应用选择最佳Embedding模型
2024-12-04
Neo4j×Milvus:手把手教你搭建GraphRAG Agent
2024-12-04
别再用PostgreSQL了,Milvus才是多语言RAG的最佳搭档
2024-12-03
RAG系统中的困境:上下文不是想加就能加的
2024-12-03
FastRAG:高效半结构化数据处理新范式,轻松提升检索生成效率
2024-12-03
Gitee AI+Dify 双剑合璧,打造另类 RAG 知识库
2024-07-18
2024-05-05
2024-05-19
2024-06-20
2024-07-09
2024-07-09
2024-07-07
2024-07-07
2024-07-08
2024-07-09
2024-12-01
2024-11-27
2024-11-25
2024-11-06
2024-11-06
2024-11-05
2024-11-04
2024-10-27