那么,面对基于大模型的App, 是否存在通用性或具有指导性的参考架构呢?
3. 大模型App 的系统架构思考基于LLM 的应用开发框架(例如LangChain)提供了围绕大模型构建应用程序的结构化方法 。但是 , 这里从抽象层尝试给出大模型App 的系统架构 。

文章插图
3.1 应用编排器编排器简单地位于应用程序栈的下方,并将其他模块连接在一起 。其中 , 构建多租户组件非常重要 。这将确保:
- 为每个用户进行个性化设置
- 隐私保护,确保只为正确的用户检索记忆,上下文等 。
3.2 任务计划器一个不错的方法是获得用户的请求/目标 , 并使用模型将其分解为子任务 。每个子任务可以根据应用程序进一步分解为较小的任务/目标 。这是一个持续的过程 , 随着用户完成目标,LLM可以用于扩展当前任务和子任务,或者修剪不再必要的任务 。许多框架和开源项目都提供此类功能,一个典型的示例可能是AutoGPT 。
一般地,可以按以下方式进行处理:
- 获取用户目标并将其发送到具有良好推理功能的LLM
- 提示LLM将其分解为子任务并返回为JSON列表
- 将子任务保存到数据库中
- 应用程序可以根据子任务更新用户界面
- 根据需要迭代为较小的子任务
该方法如下所示:
- 每当有新的上下文信息时,将其分成若干部分,并使用LLM生成向量嵌入 。然后将嵌入存储在向量数据库中,还将在每个嵌入中存储附加信息(例如URL、图像、源文本等) 。
- 在向LLM发送请求之前,始终将请求作为查询发送到向量存储中 。获取前N个相关结果并将它们添加到请求提示中,指定LLM应仅使用提示中的信息 , 然后提交提示词 。
- 收到响应后,将其与发送的上下文数据进行比较,确保没有幻觉并且它与目标应用程序的数据相关 。
- 进行迭代,其中响应用于生成对向量数据库的新查询 , 然后使用结果作为下一个LLM的提示词 。
- 还可以要求LLM生成一个查询到向量存储,以获取所需的附加信息 。
3.4 记忆型数据的向量存储记忆型数据的向量存储类似于上下文数据的向量存储,但是,它由先前使用应用程序生成的LLM提示和响应的键值对进行填充 。目标是允许LLM参考以前的交互,以个性化用户需求并引导走向正确的方向 。
记忆数据也可以使用时间戳、位置等进行标记,以允许过滤或对相关记忆数据的修剪 。
一般用例:
- 根据用户在用户界面中的操作,发出请求 。请求转换为向量嵌入,并发送到内存向量存储中以检索任何相关的记忆数据 。
- 记忆可能包括特定的交互,例如,用户发表过评论
- 然后将记忆与用户请求以及从上下文存储中提取的任何上下文一起添加到提示中 。在提示中 , 记忆可能以“这里是以前的交互列表,请在响应时考虑这些,以确保您遵守以前的请求和偏好”的文本为前缀 。
推荐阅读
- 如何使用Noir从源代码检测攻击面
- 孩子作文获奖如何发朋友圈 孩子作文获奖如何发朋友圈说说
- 有氧运动是否一定会掉肌肉?如何通过合理的方式减脂不掉肌肉?
- 如何避免跑步导致的腿部变粗?
- 退休金计算公式揭秘:如何最大化养老金待遇?
- 微信在哪里拍一拍自己 如何微信拍一拍自己
- 存折在取款机如何取钱视频 存折在取款机如何取钱
- 办公室催财最快的风水方法 办公室内如何催旺财气
- 电脑如何重置网络设置 电脑如何重置网络设置密码
- 耳机里有杂音如何消除小妙招 耳机里有杂音如何消除
