大语言模型应用的业务架构点

背景

在国内某小龙干了一段时间了,困于时间、资本、人力等等原因,其实应用在工程侧的业务架构建模并没有做好。但是,随着业务迭代和读论文,对于大语言模型的应用(自认为)有一定的认知了,那么业务建模或者架构的重点是可以梳理一下的了。主要关注业务逻辑和前端的架构(我负责的部分)。

整体认知

  1. AGI不一定是单一模型搞定一切。短期更可能是在多个垂类模型前加一个路由。这个路由可能是意图模型,也可能是MOE的gate。但是,这些都应该反馈到工程侧,形成一定的路径差异。在模型规模/能力远超现在的大小之前,组合小模型会比单一模型的效果好很多;只有要求极强的迁移能力时,单一巨型模型才是合理的。
  2. 接1,有一些意图是应该让用户主动选择的(豆包等的智能体中心很大一部分是在明确意图而不是选模型能力)。
  3. 不同形态的问题,执行的逻辑是不一样的,pe的逻辑也是不一样的。
  4. 输出部分不一定是和模型本体耦合的,而是可以以风格、功能来做特殊训练和插拔的(ChatGPT的json api)。
  5. 特殊token一定是后面做工程化中极为重要的手段,而且是要求从业务需求角度出发,反向向模型训练数据中插入大量的业务化token。
  6. 模型的应用开发流程大概是:模式定义->生成对应的数据->ft->测评,跟传统应用开发能对应上:产品定义->技术设计->coding->测试。

PE认知

PE是为了治疗模型的智障。智障来源于问题不清晰、思考不正确、信息不全、迁移和杂糅等。解决问题主要几个路径:

  1. x-shot这种想办法给例子的。
  2. COT这种引导模型多思考的,这里会有COT这种单路径的,也有TOT这种多分支的,还有ReAct这种。
  3. tooling。
  4. 反思,包括多条的选择(self-consistency)和单条内的修改(reflection)。
  5. 分而治之,planner类或我的POT bot。
  6. 整合,包括多种角色的(ChatDev)、多种知识背景的或者只有超参差异的(ER)。

可能出现的非传统流式形态

最传统形态就是模型一个文本流直接展示到端上,只做一些展示上的优化。

  1. 隐藏模型输出。对于COT、ReAct这些方式,模型输出的很大一部分是思路,这些思路又一定要输出(模型不会思考,只是next token)。所以标记(特殊token)和隐藏这些内容是非常重要的工程能力。
  2. 结构化思考过程。planner、POT这种,甚至人肉的chain规则,这些都是有可能被以结构化的方式来展示的。这些展示的合理、巧妙能极大的提升产品体验。包括了特殊token、特殊格式的规定和展示;chain的建模(openai assistant api的run-step)。
  3. 方法调用。这个包括了后端、前端的方法调用。之前文章的微服务部分简单提到过。细化下来,需要有一个双工长信道来做IPC,传统的trunk或者sse其实都不如websocket靠谱(经典面试题,如何设计跨语言的callback)。同样可以适配到run-step的体系下。
  4. 多流。所有整合类的模式,都需要多流的展示,因为所有这种模式如果只输出整合步骤的内容,首token时间会让产品直接不可用。
  5. 修改。流的每个部分都是可能被重新生成的(reflection)。需要有一个地方持有当前流内容、每段内容用特殊token标记出来,模型的反思以“将token1之后的内容替换为xxx”的形式输出。这里的替换直接反馈到流本体上。注意这里和隐藏输出会有交错,潜在bug会很多。

关键点

  1. 意图分流,以及对于意图->推理过程的管理。以及遍布产品形态内部的意图明确方式:比如重新生成时询问意图、生成样式等。意图作为核心context存在于整个产品生命周期中。
  2. 插件化,两级插件化:特殊token作为纯文本标记,调起特殊逻辑;run-step中的step,直接在流式中打断纯文本行为。
  3. 流累积和管理,不只是端需要做累积+展示,而是后端需要完整管理模型输出,且可能出现全量replace的情况。
  4. 双向流。websocket,这里有个不太懂的,是不是一分钟左右的websocket是不是工程上合理的。
  5. 流式信息样式的极大复杂化。特别是可能会出现各种浮层/子页面+浮层内流式输出的case,毕竟多流直接在正常流式中输出肯定是各种问题的。还要做飞书聊天卡片量级的卡片内样式的横向扩展的设计。

与前端无关的

  1. x-shot的选取和推荐。根据用户反馈、任务相似度、用户相似度做例子的选取(面向模型的推荐系统),以期大幅提高模型回答满意度。
  2. 部分模型层的插拔。以按照用户喜好切换输出模式(面向用户的推荐系统)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/429182.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Selenium元素定位:深入探索与实践

目录 一、引言 二、Selenium元素定位基础 1. WebDriver与元素定位 2. 定位策略概览 三、ID定位 1. 特点与优势 2. 示例代码 四、Class Name定位 1. 特点与限制 2. 示例代码 五、XPath定位 1. 特点与优势 2. 示例代码 3. XPath高级用法 六、CSS Selector定位 1.…

Nacos 服务注册与发现

目录 Nacos 简介 Nacos(Dynamic Naming and Configuration Service) Nacos 安装 下载安装包 Windows 解压 目录介绍: 修改单机模式 启动 Nacos Linux 解压 单机模式启动 Nacos 快速上手 服务注册和发现 Nacos 负载均衡 服务下线 权重配置 开启 Nacos 负载均衡…

LeetCode --- 139双周赛

题目列表 3285. 找到稳定山的下标 3286. 穿越网格图的安全路径 3287. 求出数组中最大序列值 3288. 最长上升路径的长度 一、找到稳定山的下标 遍历数组&#xff0c;统计符合要求的答案即可&#xff0c;代码如下 class Solution { public:vector<int> stableMountai…

【开源免费】基于SpringBoot+Vue.JS服装商城系统(JAVA毕业设计)

本文项目编号 T 046 &#xff0c;文末自助获取源码 \color{red}{T046&#xff0c;文末自助获取源码} T046&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 新…

【C++】仿函数

&#x1f525;个人主页&#x1f525;&#xff1a;孤寂大仙V &#x1f308;收录专栏&#x1f308;&#xff1a;C从小白到高手 &#x1f339;往期回顾&#x1f339;&#xff1a;【C】list常见用法 &#x1f516; 流水不争&#xff0c;争的是滔滔不息。 文章目录 一、仿函数的介绍…

网安面试会问到的:http的长连接和短连接

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…

毕业设计选题:基于ssm+vue+uniapp的智能停车场管理系统小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…

力扣中等 33.搜索旋转排序数组

文章目录 题目介绍题解 题目介绍 题解 首先用 153. 寻找旋转排序数组中的最小值 的方法&#xff0c;找到 nums 的最小值的下标 i。 然后分类讨论&#xff1a; 如果 target>nums[n−1]&#xff0c;在 [0,i−1] 中二分查找 target。 如果 target≤nums[n−1]&#xff0c;那…

fasterRCNN模型实现飞机类目标检测

加入会员社群&#xff0c;免费获取本项目数据集和代码&#xff1a;点击进入>> 关于python哥团队 我们是一个深度学习领域的独立工作室。团队成员有&#xff1a;中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等&#xff0c;曾在腾讯、百度、德勤等担任算法工程师…

Nginx静态资源优化、压缩、缓存处理

一、静态资源优化配置语法 Nginx对静态资源如何进行优化配置。这里从三个属性配置进行优化&#xff1a; sendfile on; tcp_nopush on; tcp_nodeplay on; &#xff08;1&#xff09;sendfile&#xff0c;用来开启高效的文件传输模式。 语法sendfile on |off;默认值sendfile …

【图像检索】基于Gabor特征的图像检索,matlab实现

博主简介&#xff1a;matlab图像代码项目合作&#xff08;扣扣&#xff1a;3249726188&#xff09; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于Gabor特征的图像检索&#xff0c;用matlab实现。 一、案例背景和算法介绍 这次博…

Java笔试面试题AI答之单元测试JUnit(7)

文章目录 37. 请列举一些JUnit扩展 &#xff1f;1. 参数化测试2. 条件测试执行3. 临时目录4. 时间测试5. 重复测试6. 前置/后置条件7. Mockito8. Spring Test9. JUnit Vintage10. Testcontainers11. 自定义注解和扩展12. 测试监听器&#xff08;TestListener 和 RunListener&am…

2024年数学建模比赛题目及解题代码

目录 一、引言 1. 1竞赛背景介绍 1.1.1数学建模竞赛概述 1.1.2生产过程决策问题在竞赛中的重要性 1.2 解题前准备 1.2.2 工具与资源准备 1.2.3 心态调整与策略规划 二、问题理解与分析 三、模型构建与求解 3.1 模型选择与设计 3.1.1 根据问题特性选择合适的数学模型类…

【永磁同步电机(PMSM)】 4. 坐标变换的 Matlab 仿真

【永磁同步电机&#xff08;PMSM&#xff09;】 4. 坐标变换的 Matlab 仿真 1. Clarke 变换的模型与仿真1.1 Clarke 变换1.2 Clarke 变换的仿真模型 2. Park 变换的模型与仿真2.1 Park 变换2.2 Park 变换的仿真模型 3. Simscape标准库变换模块3.1 abc to Alpha-Beta-Zero 模块3…

更换硬盘后,电脑装完系统进不去?或PE能识别硬盘但开机/启动/BIOS识别不了硬盘解决办法

由于现在的电脑主板&#xff0c;默认都是UEFI启动&#xff0c;硬盘只有使用GUID分区表&#xff0c;主板BIOS才找得到系统引导&#xff01; 而当我们拿到一块新硬盘&#xff0c;使用分区工具默认类型分区&#xff0c;默认是MBR类型&#xff0c;所以这种分区的硬盘&#xff0c;B…

14.面试算法-字符串常见算法题(三)

1. 字符串回文问题 1.1 LeetCode.125. 验证回文串 回文问题在链表中是重点&#xff0c;在字符串中同样是个重点。当初我去美团面试第一轮技术面的第一个算法题就是让写判断字符串回文的问题。 这个本身还是比较简单的&#xff0c;只要先转换成字符数组&#xff0c;然后使用双…

肺结节检测系统源码分享

肺结节检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Visio…

uniapp uview扩展u-picker支持日历期间 年期间 月期间 时分期间组件

uniapp uview扩展u-picker支持日历期间 年期间 月期间 时分期间组件 日历期间、年期间、月期间及时分期间组件在不同的应用场景中发挥着重要的作用。这些组件通常用于表单、应用程序或网站中&#xff0c;以方便用户输入和选择特定的日期和时间范围。以下是这些组件的主要作用&a…

C++:日期类的实现

目录 一、前言 二、头文件 三、各个函数的实现 打印、检查日期及获取日期 、、-、-、 、<、<、>、>、 &#xff01; 日期-日期 >>、<< 一、前言 前面几篇讲了关于类和对象的一些知识&#xff0c;本篇就来实现一下前面用到的日期类。 二、头文…

TryHackMe 第3天 | Pre Security (中)

该学习路径讲解了网络安全入门的必备技术知识&#xff0c;比如计算机网络、网络协议、Linux命令、Windows设置等内容。上一篇中简短介绍了计算机网络相关的知识&#xff0c;本篇博客将记录 网络协议 部分。 How the web works? DNS in detail DNS (Domain name system&…