微信扫码
与创始人交个朋友
我要投稿
大型语言模型(LLM)在应用中有着复杂的架构,它不仅涉及基本的输入输出.
还包括安全过滤、提示优化和示例选择等多个关键组件,以确保响应的安全性与准确性。通过与外部工具的结合和多模型协作,大模型(LLM)能够弥补知识盲点并提高处理效率。通过结构化输出、向量数据库以及记忆和缓存技术的引入,进一步增强了模型的能力和系统的性能。
-- 领取学习资料大礼包,有兴趣见文末
在终端用户的使用感受中,通常,使用一个简单的提示词作为输入,大模型(如GPT)接收后返回给用户对应结果。
然而,基于LLM的应用的整体结构比这要复杂得多。这其中包括安全性问题、同时调用多个模型的需求、以及与外部API或搜索引擎的链接能力。
这种复杂性意味着在设计和维护这些应用程序时,开发者需要考虑多个层面的交互和集成,确保系统的稳定性和安全性,同时还要处理不同模型和外部服务之间的数据流动和功能协调。这些因素共同构成了基于LLM的应用程序的复杂性。
在每一次的聊天场景中,我们往往不是简单地通过一个单一的提示词调用一次大模型(LLM),而是可能根据问题的具体情况,创建多个定制化的示例。然后通过采用一种选择机制,对同一查询向多个不同的大模型(LLM)发出请求,然后从它们提供的多个答案中筛选出最恰当的一个。
这个流程确保了我们能够从多个模型的输出中提取最有价值的信息。
为了弥补大模型(LLM)可能的知识盲点,我们还会利用外部数据源,比如搜索引擎,RAG组件,来搜索大模型(LLM)尚未学习到的信息,并将其整合到我们的答案中。这种方法不仅扩展了大模型(LLM)的知识库,也使得我们的系统能够更全面地回答用户的问题。通过这些策略,我们能够更有效地利用大模型(LLM),为用户提供更准确、更可靠的服务。
整个架构图中使用的关键组件如下:
在机器人对话的情况下,有必要确定提问和回答是否适当。
例如,涉及性、暴力或相互诽谤的内容必须在输入阶段进行过滤,同样,LLM的输出也必须进行过滤,以防止不适当的内容被输入或提供。
安全过滤器的实现依赖以下几种技术:
(1) 关键词过滤
使用一个敏感词库来检测输入或输出中是否包含违规内容。
例如:禁止出现“暴力”、“色情”、“黑客”等关键词。如果匹配到关键词,可以拒绝处理或给出提醒。
(2) 正则表达式检测
通过正则表达式匹配特定模式
比如:检测代码注入攻击(SELECT .* FROM
等 SQL 语句)。检测 URL 或恶意链接。
(3) 机器学习模型辅助过滤
训练分类模型或检测模型,用于识别复杂的敏感内容。
文本分类:通过模型判断输入是否包含仇恨言论、色情内容、恐怖主义等。
图像识别:对于图片输入,可以用计算机视觉技术检测不合规内容。
(4) 自然语言理解 (NLP) 技术
语义分析 :基于上下文理解是否存在隐含的敏感内容。
例如,用户输入“如何报复某人”可能需要被阻止,尽管表面看起来没有敏感词。
语气检测 :识别输入或输出是否包含攻击性语气或偏见。
(5) 动态规则和场景化策略
安全过滤器的规则可以动态调整:
场景化:针对不同业务场景应用不同的过滤规则。例如,医疗问答系统需要特别关注虚假医学信息。
风险等级分级:根据输入的风险程度,触发不同级别的过滤和警报。
过滤必须能够根据情况调整强度。根据客户倾向或用例,调整过滤强度为强或弱。
特别是在与用户直接交互的聊天机器人案例中,这些安全过滤功能非常重要,但许多基础应用往往省略了这些功能。
提示词模板是提升语言模型能力的核心工具。它通过清晰的结构、上下文和限制条件,帮助模型生成符合场景需求的回答。
在设计模板时,应该根据具体任务和目标,选择合适的格式、示例和约束条件,以获得最优效果。
例如,一个简单的提示词模板:
"你是一名专业的历史学家,请用简洁的语言解释以下问题:{ 用户输入的问题 }"
这为模型提供了角色(历史学家)、输出风格(简洁)、任务背景(历史问题)。
这样在提问历史问题的时候,只需要修改问题就可以,这种将提示中更改的部分转换为变量并使用的方法称为提示模板
在 少样本提示(few-shot prompting) 场景中,模板中可以加入示例(如后文的“示例选择器”部分)。
怎么说大模型才会听 :提示工程神器 之 少样本提示(Few-Shot Prompting)
一种常见的提升性能的提示技术是将示例作为提示的一部分,这被称为少样本提示(few-shot prompting)。
示例选择器是一个用于选择和使用示例的机制。它通常涉及从大量可能的示例中选择一个或多个具有代表性、相关性和质量的例子,以便引导模型生成更准确、相关或个性化的输出。
就像是一个智能的图书管理员,它帮助我们从一大堆书(示例)中挑选出最适合当前问题的书(示例)。
想象一下,你问了一个关于烹饪的问题,图书管理员会从成千上万本书中找到几本最相关、最能帮助你的烹饪书籍。
这个过程就是示例选择器的工作
场景举例:文本生成任务(生成文章)
假设我们的任务是要根据一个简单的提示生成一篇文章,提示词是:
提示词: "如何提高工作效率"
示例选择器 会根据提示词(“如何提高工作效率”)从候选示例中选择最相关的文本:
示例选择器 会选择 示例 1 作为最相关的例子,因为它直接回答了如何提高工作效率,并且方法具体。
一旦选择了合适的示例,模型就可以根据该示例生成相关的文章。
模型会参考示例 1 中的内容,并围绕“提高工作效率”展开更深入的讨论,形成一篇完整的文章。
例如:
生成的文章: "提高工作效率的方法有很多,其中最有效的方式之一就是时间管理。时间管理可以帮助你合理安排工作时间,减少拖延。番茄工作法是一种非常流行的时间管理技巧。它要求你专注工作25分钟,然后休息5分钟,这种方法能够帮助你集中精力,提高工作效率。此外,合理的任务分配和目标设定也是提升工作效率的重要因素。通过这些方式,你不仅能提高工作效率,还能减少疲劳感,提升工作质量。"
在大模型应用中,Agent(智能代理)发挥着至关重要的作用,其核心功能涉及规划、记忆和工具的综合使用,以执行复杂任务并增强LLM(大型语言模型)的能力。
任务执行过程:Agent首先接收任务并更新记忆,然后通过规划模块生成任务执行计划,决定需要调用哪些工具及其参数。工具执行后,Agent将结果整合进记忆,并在必要时更新任务状态,最终总结并提供结论。
通过这些机制,Agent不仅弥补了LLM在动态和复杂任务中的局限,还使得大模型能够在实时互动中展现更高的灵活性、准确性和智能化。
智能体:一文说清楚什么是AI Agent(智能体)
在一般任务中,可以使用一个LLM,但在某些情况下,可以同时使用多个LLM模型。
编排系统负责协调这些模型之间的交互,确保数据在模型之间高效流动。
功能:
任务分解:
将用户请求分解为多个子任务,并分发给不同的模型。例如:
一个模型负责理解问题的上下文。
一个模型负责提取信息。
一个模型负责生成输出。
多模型组合:
不同模型有不同的专长(比如 GPT 负责生成语言,特定领域的模型处理领域问题)。
编排器可以动态决定调用哪个模型。
例子:
结构化输出指的是让大模型生成具有明确结构、组织良好的输出,而不仅仅是连续的自然语言文本。输出通常以某种预定义的格式呈现,如表格、列表、JSON 格式或其他类型的结构化数据
举例说明:
假设我们要求模型生成一个 电影信息 的列表
输入提示词 : 列出几部经典的科幻电影
模型输出(非结构化文本):
《星际穿越》是由克里斯托弗·诺兰执导的一部经典科幻电影。该片讲述了人类为了生存而穿越宇宙的故事。
《2001太空漫游》是斯坦利·库布里克的经典之作,探讨了人工智能与人类未来的关系。
这是一个连贯的自然语言描述,但缺乏明确的结构,机器处理起来可能会比较困难。
生成结构化输出:
输入提示词:列出几部经典的科幻电影,格式为JSON
模型输出(结构化输出,JSON 格式):
[
{
"title": "星际穿越",
"director": "克里斯托弗·诺兰",
"release_year": 2014,
"genre": "科幻",
"description": "讲述人类为了生存穿越宇宙的故事。"
},
{
"title": "2001太空漫游",
"director": "斯坦利·库布里克",
"release_year": 1968,
"genre": "科幻",
"description": "探讨人工智能与人类未来的关系。"
}
]
向量数据库是专门设计来存储和管理高维向量数据的数据库系统,主要用于高效的相似性搜索和数据检索。
在大模型应用中,向量数据库发挥着重要作用,尤其是在需要处理大量信息并根据相似度快速查找相关数据时
大模型一种与外部系统连接的方法是检索增强生成(Retrieval-Augmented Generation)技术。
它通过整合外部知识源来增强传统的大语言模型 (LLM)。这种方法拓宽了人工智能的视野,使其能够访问和利用除初始训练数据之外的大量信息。可以将 RAG 想象为一位学者,除了拥有自己的知识外,还可以即时访问到一座全面的图书馆。
RAG将文档嵌入信息存储在向量数据库中,搜索与问题相关的段落或页面,给用户提供答案。
嵌入见:一文说清楚人工智能的嵌入(Embedding)是什么
RAG见:本地知识库,通过RAG来解决信息的精准生成
Memory的本质是让AI系统能够在对话过程中保持上下文连贯性,记住之前的交互内容,并能够合理利用历史信息。它解决了LLM无状态的局限性。
然而,LLM模型无法存储所有对话内容,因为输入标记的数量有限,从功能角度看,Memory主要实现以下几种记忆类型
短期记忆是指在当前对话session中的即时记忆,比如最近几轮对话内容。实现方式通常是维护一个对话历史队列,将对话内容传入给LLM作为上下文。
长期记忆则是跨会话的持久化存储。通常使用向量数据库来实现,将重要的对话内容和信息转换为向量存储起来。当需要时,通过相似度检索找到相关的历史信息。
工作记忆是指在完成特定任务过程中需要暂时记住的信息。比如在多轮对话中完成一个表单填写,需要记住用户已经提供的字段信息。这通常通过状态管理来实现。
情景记忆用于存储用户偏好、习惯等个性化信息。这些信息可以帮助AI系统提供更加个性化的服务。比如记住用户常用的话语风格,喜好的主题等。
Memory系统面临的主要挑战包括:如何在保持记忆量和系统性能之间取得平衡;如何判断信息的重要性;如何处理可能过时或矛盾的信息;如何在隐私和功能之间权衡。
相似度比较,如:人工智能小白到高手:余弦相似度(Cosine Similarity)的简单理解
LLM Cache是大语言模型系统中的性能优化组件,它的主要目的是提高系统响应速度并降低计算成本。
在查询LLM时,有时会多次提出相似或相同的问题。
例如,在开发过程中,您可能在调试时多次调用LLM使用相同的提示。如果您发送相同的问题,您将得到相同的答案
或者,在类似场景中,如果其他用户提出类似问题,可能没有必要再次调用LLM模型。
例如,“山西黑神话打卡地的详细信息?”、“山西黑神话打卡地是哪里?”
由于这类问题需要相同的答案,类似问题可以通过缓存减少LLM调用的次数。
缓存的粒度可以有多个层次:最简单的是精确匹配缓存,只有完全相同的输入才会命中缓存;更复杂的是语义相似缓存,通过向量相似度来判断输入是否足够相似可以使用缓存结果;还可以实现部分匹配缓存,对提示词的关键部分进行匹配。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-12-26
Token已死?AI认知的新范式正在崛起
2024-12-26
字节和BAT,谁能缚住AI苍龙?
2024-12-26
大模型语义分析之嵌入(Embedding)模型
2024-12-26
Anthropic:高效构建AI Agent的最佳实践范式
2024-12-26
微软CEO纳德拉给出AI时代的关键答案:先有组织进化,才有技术突破(附视频)
2024-12-26
聊聊 Anthropic MCP (Model Context Protocol ) - 本地如何配置试用
2024-12-26
FlashAttention原理,终于看明白了!
2024-12-26
首次!大模型自动搜索人工生命,做出AI科学家的Sakana AI又放大招
2024-05-28
2024-08-13
2024-04-26
2024-08-21
2024-07-09
2024-06-13
2024-08-04
2024-04-11
2024-07-18
2024-07-01