AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


10分钟了解大模型应用全貌 : 大模型应用架构(LLM application architecture)
发布日期:2024-12-26 07:37:16 浏览次数: 1591 来源:AI取经路



-正文-

大型语言模型(LLM)在应用中有着复杂的架构,它不仅涉及基本的输入输出.

还包括安全过滤、提示优化和示例选择等多个关键组件,以确保响应的安全性与准确性。通过与外部工具的结合和多模型协作,大模型(LLM)能够弥补知识盲点并提高处理效率。通过结构化输出、向量数据库以及记忆和缓存技术的引入,进一步增强了模型的能力和系统的性能。

-- 领取学习资料大礼包,有兴趣见文末

在终端用户的使用感受中,通常,使用一个简单的提示词作为输入,大模型(如GPT)接收后返回给用户对应结果。

然而,基于LLM的应用的整体结构比这要复杂得多。这其中包括安全性问题、同时调用多个模型的需求、以及与外部API或搜索引擎的链接能力。

这种复杂性意味着在设计和维护这些应用程序时,开发者需要考虑多个层面的交互和集成,确保系统的稳定性和安全性,同时还要处理不同模型和外部服务之间的数据流动和功能协调。这些因素共同构成了基于LLM的应用程序的复杂性。

在每一次的聊天场景中,我们往往不是简单地通过一个单一的提示词调用一次大模型(LLM),而是可能根据问题的具体情况,创建多个定制化的示例。然后通过采用一种选择机制,对同一查询向多个不同的大模型(LLM)发出请求,然后从它们提供的多个答案中筛选出最恰当的一个。

这个流程确保了我们能够从多个模型的输出中提取最有价值的信息。

为了弥补大模型(LLM)可能的知识盲点,我们还会利用外部数据源,比如搜索引擎,RAG组件,来搜索大模型(LLM)尚未学习到的信息,并将其整合到我们的答案中。这种方法不仅扩展了大模型(LLM)的知识库,也使得我们的系统能够更全面地回答用户的问题。通过这些策略,我们能够更有效地利用大模型(LLM),为用户提供更准确、更可靠的服务。

整个架构图中使用的关键组件如下:

1 安全过滤器 

在机器人对话的情况下,有必要确定提问和回答是否适当

例如,涉及性、暴力或相互诽谤的内容必须在输入阶段进行过滤,同样,LLM的输出也必须进行过滤,以防止不适当的内容被输入或提供。

安全过滤器的实现依赖以下几种技术:

(1) 关键词过滤

使用一个敏感词库来检测输入或输出中是否包含违规内容。

例如:禁止出现“暴力”、“色情”、“黑客”等关键词。如果匹配到关键词,可以拒绝处理或给出提醒。

(2) 正则表达式检测

通过正则表达式匹配特定模式

比如:检测代码注入攻击(SELECT .* FROM 等 SQL 语句)。检测 URL 或恶意链接。

(3) 机器学习模型辅助过滤

训练分类模型或检测模型,用于识别复杂的敏感内容。

  • 文本分类:通过模型判断输入是否包含仇恨言论、色情内容、恐怖主义等。

  • 图像识别:对于图片输入,可以用计算机视觉技术检测不合规内容。

(4) 自然语言理解 (NLP) 技术

  • 语义分析 :基于上下文理解是否存在隐含的敏感内容。

    例如,用户输入“如何报复某人”可能需要被阻止,尽管表面看起来没有敏感词。

  • 语气检测 :识别输入或输出是否包含攻击性语气或偏见。

(5) 动态规则和场景化策略

安全过滤器的规则可以动态调整:

  • 场景化:针对不同业务场景应用不同的过滤规则。例如,医疗问答系统需要特别关注虚假医学信息。

  • 风险等级分级:根据输入的风险程度,触发不同级别的过滤和警报。

过滤必须能够根据情况调整强度。根据客户倾向或用例,调整过滤强度为强或弱。

特别是在与用户直接交互的聊天机器人案例中,这些安全过滤功能非常重要,但许多基础应用往往省略了这些功能。

2 提示模板 

提示词模板是提升语言模型能力的核心工具。它通过清晰的结构、上下文和限制条件,帮助模型生成符合场景需求的回答。

在设计模板时,应该根据具体任务和目标,选择合适的格式、示例和约束条件,以获得最优效果。

例如,一个简单的提示词模板:

"你是一名专业的历史学家,请用简洁的语言解释以下问题:{ 用户输入的问题 }"

这为模型提供了角色(历史学家)、输出风格(简洁)、任务背景(历史问题)。

这样在提问历史问题的时候,只需要修改问题就可以,这种将提示中更改的部分转换为变量并使用的方法称为提示模板

在 少样本提示(few-shot prompting) 场景中,模板中可以加入示例(如后文的“示例选择器”部分)。

怎么说大模型才会听 :提示工程神器 之 少样本提示(Few-Shot Prompting)

3 示例选择器 

一种常见的提升性能的提示技术是将示例作为提示的一部分,这被称为少样本提示(few-shot prompting)。

示例选择器是一个用于选择和使用示例的机制。它通常涉及从大量可能的示例中选择一个或多个具有代表性、相关性和质量的例子,以便引导模型生成更准确、相关或个性化的输出。

就像是一个智能的图书管理员,它帮助我们从一大堆书(示例)中挑选出最适合当前问题的书(示例)。

想象一下,你问了一个关于烹饪的问题,图书管理员会从成千上万本书中找到几本最相关、最能帮助你的烹饪书籍。

这个过程就是示例选择器的工作

场景举例:文本生成任务(生成文章)

假设我们的任务是要根据一个简单的提示生成一篇文章,提示词是:

提示词: "如何提高工作效率"

示例选择器 会根据提示词(“如何提高工作效率”)从候选示例中选择最相关的文本:

  • 示例 1 提高工作效率的一个有效方法是进行时间管理。你可以使用番茄工作法,通过集中精力工作25分钟,然后休息5分钟,来提高注意力和生产力。。
  • 示例 2 在工作中,良好的团队沟通至关重要。通过定期的会议和明确的任务分配,团队成员可以有效合作,从而提高整体的工作效率。
  • 示例 3 运动有助于减轻压力,改善身心健康。每天进行适度的运动,如跑步或瑜伽,有助于你更好地应对工作中的挑战,提高效率。

示例选择器 会选择 示例 1 作为最相关的例子,因为它直接回答了如何提高工作效率,并且方法具体。

一旦选择了合适的示例,模型就可以根据该示例生成相关的文章。

模型会参考示例 1 中的内容,并围绕“提高工作效率”展开更深入的讨论,形成一篇完整的文章。

例如:

生成的文章: "提高工作效率的方法有很多,其中最有效的方式之一就是时间管理。时间管理可以帮助你合理安排工作时间,减少拖延。番茄工作法是一种非常流行的时间管理技巧。它要求你专注工作25分钟,然后休息5分钟,这种方法能够帮助你集中精力,提高工作效率。此外,合理的任务分配和目标设定也是提升工作效率的重要因素。通过这些方式,你不仅能提高工作效率,还能减少疲劳感,提升工作质量。"

4 Agent 

在大模型应用中,Agent(智能代理)发挥着至关重要的作用,其核心功能涉及规划、记忆和工具的综合使用,以执行复杂任务并增强LLM(大型语言模型)的能力。

  1. 规划(Planning):Agent需要具备规划能力,能够将复杂任务分解为多个子目标(Subgoal Decomposition),并通过思维链(Chain of Thought)进行连续推理。同时,Agent还具备自我反思能力(Self-critics),对过去的行动进行评估和修正,确保任务执行的高效性和准确性。
  2. 记忆(Memory):Agent拥有短期和长期记忆功能。短期记忆与当前任务上下文密切相关,有助于即时响应和动态调整;而长期记忆则利用外部向量数据库存储和检索信息,使Agent能够在跨会话或长期任务中持续使用先前的经验和知识。
  3. 工具(Tool):Agent可以调用多种外部工具,如日历、搜索引擎、计算器等,来扩展其能力。由于LLM的知识在预训练后是固定的,外部工具的整合使Agent能够执行更复杂的任务,如实时数据查询或计算任务。

任务执行过程:Agent首先接收任务并更新记忆,然后通过规划模块生成任务执行计划,决定需要调用哪些工具及其参数。工具执行后,Agent将结果整合进记忆,并在必要时更新任务状态,最终总结并提供结论。

通过这些机制,Agent不仅弥补了LLM在动态和复杂任务中的局限,还使得大模型能够在实时互动中展现更高的灵活性、准确性和智能化。

智能体:一文说清楚什么是AI Agent(智能体)

5 LLM模型编排 

在一般任务中,可以使用一个LLM,但在某些情况下,可以同时使用多个LLM模型。

编排系统负责协调这些模型之间的交互,确保数据在模型之间高效流动。

功能

  • 任务分解:

    将用户请求分解为多个子任务,并分发给不同的模型。例如:

    一个模型负责理解问题的上下文。

    一个模型负责提取信息。

    一个模型负责生成输出。

  • 多模型组合:

    不同模型有不同的专长(比如 GPT 负责生成语言,特定领域的模型处理领域问题)。

    编排器可以动态决定调用哪个模型。

例子

6 结构化输出 

结构化输出指的是让大模型生成具有明确结构、组织良好的输出,而不仅仅是连续的自然语言文本。输出通常以某种预定义的格式呈现,如表格、列表、JSON 格式或其他类型的结构化数据

举例说明:

假设我们要求模型生成一个 电影信息 的列表

输入提示词 : 列出几部经典的科幻电影

模型输出(非结构化文本):

《星际穿越》是由克里斯托弗·诺兰执导的一部经典科幻电影。该片讲述了人类为了生存而穿越宇宙的故事。

《2001太空漫游》是斯坦利·库布里克的经典之作,探讨了人工智能与人类未来的关系。

这是一个连贯的自然语言描述,但缺乏明确的结构,机器处理起来可能会比较困难。

生成结构化输出:

输入提示词:列出几部经典的科幻电影,格式为JSON

模型输出(结构化输出,JSON 格式):

[
  {
    "title""星际穿越",
    "director""克里斯托弗·诺兰",
    "release_year"2014,
    "genre""科幻",
    "description""讲述人类为了生存穿越宇宙的故事。"
  },
  {
    "title""2001太空漫游",
    "director""斯坦利·库布里克",
    "release_year"1968,
    "genre""科幻",
    "description""探讨人工智能与人类未来的关系。"
  }
]

7 向量数据库 

向量数据库是专门设计来存储和管理高维向量数据的数据库系统,主要用于高效的相似性搜索和数据检索。

在大模型应用中,向量数据库发挥着重要作用,尤其是在需要处理大量信息并根据相似度快速查找相关数据时

大模型一种与外部系统连接的方法是检索增强生成(Retrieval-Augmented Generation)技术。

它通过整合外部知识源来增强传统的大语言模型 (LLM)。这种方法拓宽了人工智能的视野,使其能够访问和利用除初始训练数据之外的大量信息。可以将 RAG 想象为一位学者,除了拥有自己的知识外,还可以即时访问到一座全面的图书馆。

RAG将文档嵌入信息存储在向量数据库中,搜索与问题相关的段落或页面,给用户提供答案。

嵌入见:一文说清楚人工智能的嵌入(Embedding)是什么

RAG见:本地知识库,通过RAG来解决信息的精准生成

8 记忆 

Memory的本质是让AI系统能够在对话过程中保持上下文连贯性,记住之前的交互内容,并能够合理利用历史信息。它解决了LLM无状态的局限性。

然而,LLM模型无法存储所有对话内容,因为输入标记的数量有限,从功能角度看,Memory主要实现以下几种记忆类型

短期记忆是指在当前对话session中的即时记忆,比如最近几轮对话内容。实现方式通常是维护一个对话历史队列,将对话内容传入给LLM作为上下文。

长期记忆则是跨会话的持久化存储。通常使用向量数据库来实现,将重要的对话内容和信息转换为向量存储起来。当需要时,通过相似度检索找到相关的历史信息。

工作记忆是指在完成特定任务过程中需要暂时记住的信息。比如在多轮对话中完成一个表单填写,需要记住用户已经提供的字段信息。这通常通过状态管理来实现。

情景记忆用于存储用户偏好、习惯等个性化信息。这些信息可以帮助AI系统提供更加个性化的服务。比如记住用户常用的话语风格,喜好的主题等。

Memory系统面临的主要挑战包括:如何在保持记忆量和系统性能之间取得平衡;如何判断信息的重要性;如何处理可能过时或矛盾的信息;如何在隐私和功能之间权衡。

相似度比较,如:人工智能小白到高手:余弦相似度(Cosine Similarity)的简单理解

9 缓存 

LLM Cache是大语言模型系统中的性能优化组件,它的主要目的是提高系统响应速度并降低计算成本

在查询LLM时,有时会多次提出相似或相同的问题。

例如,在开发过程中,您可能在调试时多次调用LLM使用相同的提示。如果您发送相同的问题,您将得到相同的答案

或者,在类似场景中,如果其他用户提出类似问题,可能没有必要再次调用LLM模型。

例如,“山西黑神话打卡地的详细信息?”、“山西黑神话打卡地是哪里?”

由于这类问题需要相同的答案,类似问题可以通过缓存减少LLM调用的次数。

缓存的粒度可以有多个层次:最简单的是精确匹配缓存,只有完全相同的输入才会命中缓存;更复杂的是语义相似缓存,通过向量相似度来判断输入是否足够相似可以使用缓存结果;还可以实现部分匹配缓存,对提示词的关键部分进行匹配。



53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询