前言
最近在做大模型的应用,也遇到一些问题,虽然通过各种骚操作解决了问题,但是没有一个体系的结构,通过学习文章对解决方案有了新的认识,总结一下。
定义
任务型应用
- 任务型应用,主要指帮助用户完成特定任务,例如预约餐馆、预定机票、给出规划等,与用户的交互大多是结构化的,我们通常要求它输出结构化数据以便进行下一步处理
生成式对话应用
- 生成式对话应用我们称之为“闲聊”,其主要目的是进行自然的、开放式的互动,根据给定的对话历史和上下文信息生成连贯的自然语言回复
问题
对于大模型来说,响应速度、效果、功能似乎是一个“不可能三角”。
任务型应用对响应速度比较敏感
- 大模型的响应速度是指接收到首包和全文包的时间
小尺寸模型有较高的响应性能
- 复杂场景下效果得不到保障
优化方案
优化输出结构
-
提示词约束输出结构,减少输出token
-
不采用JSON形式的输出
-
使用约定好的格式
- 例如
-
杭州:西湖,知味观
-
杭州市城市,冒号之后的是城市内的推荐景点
-
- 例如
-
约束返回的结构,没有损失输出信息的同时大大减少输出token量,也提高了不少响应性能
-
任务分解
-
大小模型分解任务
- 使用大模型对复杂问题进行输出以保证效果
- 使用小模型对问题中的子问题进行处理
-
大模型和业务逻辑分解任务
- 使用大模型对复杂问题进行输出以保证效果
- 使用业务逻辑对子问题进行处理
从已知的答案中选择模型认为正确的
- 核心思路就是给大模型做选择题
- 将问题和多个答案选项一起发送给大模型,约束大模型只回答正确的选项序号
- 优点是响应速度快,答案是已知的选项
- 缺点:不适合开放型任务
异步或者并发
- 核心思想是对流回答的部分内容截取
- 每次从回答中截取有用的增量内容,然后对增量内容进行异步处理
- 好处是不用等待流回答完全输出,就可以进行后续业务逻辑处理
1541



被折叠的 条评论
为什么被折叠?



