当前位置: 首页 > news >正文

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

背景

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

整体认知

  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. 部分模型层的插拔。以按照用户喜好切换输出模式(面向用户的推荐系统)。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • allWebPlugin中间件自定义alert、confirm及prompt使用
  • 密码学基础--ECDSA算法入门
  • C++之深拷贝和浅拷贝*
  • (PySpark)RDD实验实战——求商品销量排行
  • 2024年华为杯-研赛F题论文问题一二讲解+代码分享
  • LabVIEW多语言支持优化
  • 基于python上门维修预约服务数据分析系统
  • 【Linux课程学习】make/Makefile:Linux项目自动化构建工具
  • 英语六级-学习
  • redis单点、主从、哨兵、集群的不同
  • WPF DataGrid 赋值与修改
  • 生活小助手系统小程序的设计
  • 灵当CRM系统index.php存在SQL注入漏洞
  • sicp每日一题[2.20]
  • MySQL基础基础篇 - SQL
  • JavaScript对象详解
  • Js基础知识(一) - 变量
  • Promise面试题2实现异步串行执行
  • rc-form之最单纯情况
  • scrapy学习之路4(itemloder的使用)
  • 第三十一到第三十三天:我是精明的小卖家(一)
  • 服务器之间,相同帐号,实现免密钥登录
  • 给第三方使用接口的 URL 签名实现
  • 开源地图数据可视化库——mapnik
  • 利用阿里云 OSS 搭建私有 Docker 仓库
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 微信支付JSAPI,实测!终极方案
  • 走向全栈之MongoDB的使用
  • Android开发者必备:推荐一款助力开发的开源APP
  • # 职场生活之道:善于团结
  • #laravel 通过手动安装依赖PHPExcel#
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #大学#套接字
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (CPU/GPU)粒子继承贴图颜色发射
  • (Java入门)学生管理系统
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (附源码)ssm码农论坛 毕业设计 231126
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (转)C#调用WebService 基础
  • .net 4.0发布后不能正常显示图片问题
  • .net mvc部分视图
  • .net 简单实现MD5
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理