为了提升生产效率和获得市场竞争力,用户不仅仅是在使用像ChatGPT这样的对话平台或者像GitHub Copilot这样的编程辅助工具,他们还将大型语言模型(LLM)融入到自己的专有应用程序和工作流程中,这通常需要结合特定领域的数据。实现这种特定领域的语言模型,主要有以下三种方式:

1-从零开始训练LLM
一种方法是从头开始创建并训练自己的特定领域模型。这不是一种常见的方法,因为它需要大量的高质量数据来训练大型语言模型,而且大多数公司根本没有这样的数据。它还需要大量的计算能力和训练有素的数据科学人才。
这个选项涉及收集和准备文本资源的语料库,如文件、电子邮件和客户服务记录。然后数据科学家构建一个LLM并训练它来解释、总结和根据它在语料库中识别的模式生成内容。通过从头开始构建LLM,公司可以解决其利益相关者使用语言的特定领域方式,并增加他们获得正确事实的几率。
然而,这个选项有多个缺点。它需要广泛的数据科学专业知识、大量的数据、多次迭代以及大量的昂贵计算周期。云原生、以AI为中心的科技公司可以克服这些挑战。但目前,大多数其他公司会避免这个选项,因为他们缺乏资金和专业知识来生产比大型供应商和开源社区已经建立的东西更有效的东西。

2-微调现有的LLM
第二种方法是对现有的LLM进行“微调”,以将特定领域内容添加到已经在通用知识和基于语言的互动上受过训练的系统中。这种方法涉及调整基础模型的一些参数,通常只需要远远少于从头创建新模型所需的数据量——通常只需要数百或数千份文档,而不是数百万或数十亿份——以及更少的计算时间。
微调的LLM是经过额外在特定领域或任务特定数据集上训练的通用目的LLM。这个过程允许模型专门用于特定用例,并在特定领域提高其性能。它们的主要优势是:

  1. 领域专业知识:微调的LLM在特定领域获得更深入的知识和背景。由于它们在专门的数据上受过训练,它们可以生成更准确和特定领域的响应。
  2. 改进的性能:通过在相关数据集上微调,LLM可以实现更高的准确性,并为特定任务提供更定制的输出。
  3. 可控行为:微调允许用户为LLM指定期望的行为或约束,从而对生成的输出有更多的控制权。
    微调是一个继续在额外数据上训练模型的过程,使其在数据集详细说明的特定任务和领域上表现更好。然而,一个模型不可能在所有事情上都是最好的,并且与微调任务无关的任务通常会随着额外的训练在性能上退化。
    公司还可以采用预训练的LLM,如Llama或BLOOM,并对其进行微调,以更好地解释特定领域的语言。通过这个选项,他们将LLM应用于他们自己的内容,检查输出,并调整参数——即描述内容模式的许多变量——以使输出在多次迭代中更加准确。这个微调过程可以在消耗比从头开始构建少得多的数据量的同时,实现对语言和事实的准确使用。
    这个选项将吸引医疗保健、法律服务或其他行业的公司,这些行业的利益相关者以特定领域的方式使用语言,预训练的LLM无法很好地自行解释。相比之下,以更一般方式使用语言的公司将避免这个选项。他们从预训练的LLM获得了足够的准确性,因此不需要投资必要的数据科学资源和计算周期。

3-丰富LLM PROMPT
对于一般公司来说,定制LLM内容的最常见方法是通过提示来调整它。通过这种方法,原始模型保持冻结状态,并通过包含特定领域知识的上下文窗口中的提示进行修改。提示调整后,模型可以回答与该知识相关的问题。这种方法在三种方法中计算效率最高,且不需要大量数据来训练新的内容领域。
公司还可以通过插入特定领域内容,如产品文档、客户服务记录、书籍和学术文章,来丰富提示。我们称这个过程为检索增强生成或RAG。RAG要求LM在那些可信内容中找到答案,减少了出现幻觉或其他问题的风险。RAG被称为一种“基础性”的类型,因为它创建了一个事实的基础。与微调相比,它的成本更低,因为它不需要高数据量或计算密集型的工作负载。
许多,甚至大多数GenAI的采用者将实施RAG作为一种成本效益高的获取事实直接的方法。虽然RAG不需要广泛的数据科学专业知识,但数据团队必须设计和实施可靠的数据管道,以验证、查找并将正确的内容插入LLM提示中。我们应该期待RAG成为跨行业的标准方法,经常补充微调选项。

3.1-RAG
检索增强生成(RAG)是一种策略,有助于解决LLM幻觉和过时训练数据的问题。
RAG通过从外部知识库检索相关和最新信息来增强LLM。这种动态增强使LLM克服了静态知识的局限性,并生成更为通情达理、准确和具有上下文相关性的响应。然而,外部知识的整合增加了计算复杂性、延迟和提示复杂性,可能导致更长的推理时间、更高的资源利用率和更长的开发周期。
微调和RAG一起可以创建专门用于特定任务或领域并能够使用上下文知识的LLM驱动的应用程序。
改进你的RAG性能需要注意以下几点:

  • 输入决定输出。你提供的上下文信息质量越高,你得到的结果也就越精确。清理你的源数据,确保你的数据流能够维护必要的内容质量(比如保留电子表格的列标题),并移除不必要的代码或标记,避免它们对LLM理解文本造成干扰。
  • 调整数据分割策略。尝试使用不同大小的文本块,以确保你的RAG推理过程中上下文的完整性。每个数据集都有其特点,尝试不同的数据切分方式,找出哪种最适合你的系统架构。
  • 调整系统提示。如果LLM没有充分注意到你的上下文信息,就更新系统提示,明确你希望如何处理和使用这些信息。
  • 过滤你的向量存储结果。如果有特定类型的内容你希望返回或不希望返回,根据元数据元素值过滤你的向量存储结果。例如,如果你想要一个过程,你可能会根据docType元数据值过滤,以确保你的结果来自一个如何做的文档。
  • 尝试不同的嵌入模型(并微调你自己的)。不同的嵌入模型有不同的编码和比较你的数据向量的方法。试验看看哪一个最适合你的应用。你可以在MTEB排行榜上查看当前表现最好的开源嵌入模型。如果你具有冒险精神,你也可以微调你自己的嵌入模型,以便你的LLM更加了解特定领域的术语,从而给你更好的查询结果。是的,你绝对可以使用你清理和处理过的知识库数据集来微调你的模型。

RAG的痛点:

· Pain Point 1: Missing Content 内容缺失
· Pain Point 2: Missed the Top Ranked Documents 错过排名靠前的文档
· Pain Point 3: Not in Context — Consolidation Strategy Limitations 不在上下文中——整合战略的局限性
· Pain Point 4: Not Extracted 未提取
· Pain Point 5: Wrong Format 格式错误
· Pain Point 6: Incorrect Specificity 不正确的具体性
· Pain Point 7: Incomplete 不完整
· Pain Point 8: Data Ingestion Scalability 数据摄入的可扩展性
· Pain Point 9: Structured Data QA 结构化数据QA
· Pain Point 10: Data Extraction from Complex PDFs 从复杂PDF中提取数据
· Pain Point 11: Fallback Model(s) 回退模型
· Pain Point 12: LLM Security LLM安全

4-AI AGENT

OpenAI将AI Agent定义为,以大语言模型为大脑驱动,具有自主理解感知、规划、记忆和使用工具的能力,能自动化执行完成复杂任务的系统。

智能体 = 大语言模型(LLM) + 观察 + 思考 + 行动 + 记忆

这个公式概括了智能体的功能本质。为了理解每个组成部分,将其与人类进行类比:

  1. 大语言模型(LLM):LLM作为智能体的“大脑”部分,使其能够处理信息,从交互中学习,做出决策并执行行动。

  2. 观察:这是智能体的感知机制,使其能够感知其环境。智能体可能会接收来自另一个智能体的文本消息、来自监视摄像头的视觉数据或来自客户服务录音的音频等一系列信号。这些观察构成了所有后续行动的基础。

  3. 思考:思考过程涉及分析观察结果和记忆内容并考虑可能的行动。这是智能体内部的决策过程,其可能由LLM进行驱动。

  4. 行动:这些是智能体对其思考和观察的显式响应。行动可以是利用 LLM 生成代码,或是手动预定义的操作,如阅读本地文件。此外,智能体还可以执行使用工具的操作,智能体还可以执行使用工具的操作,包括在互联网上搜索天气,使用计算器进行数学计算等。

  5. 记忆:智能体的记忆存储过去的经验。这对学习至关重要,因为它允许智能体参考先前的结果并据此调整未来的行动。

AI Agent基本框架如下图:

5-融合知识图谱

参考资料:

12个RAG常见痛点及解决方案_腾讯新闻

https://archive.is/bNbZo

Seven Failure Points When Engineering a Retrieval Augmented Generation System https://arxiv.org/pdf/2401.05856.pdf

Chain of Table Notebook https://github.com/run-llama/llama-hub/blob/main/llama_hub/llama_packs/tables/chain_of_table/chain_of_table.ipynb

Jerry Liu’s X Post on Chain-of-table https://twitter.com/jerryjliu0/status/1746217563938529711

Mix Self-Consistency Notebook https://github.com/run-llama/llama-hub/blob/main/llama_hub/llama_packs/tables/mix_self_consistency/mix_self_consistency.ipynb

Neutrino Routers https://platform.neutrinoapp.com/

OpenRouter Quick Start https://openrouter.ai/docs#quick-start

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐