当前位置:   article > 正文

“三板斧“解决大模型推理“慢“问题_ernie-lite-8k和ernie-speed-8k哪个更强

ernie-lite-8k和ernie-speed-8k哪个更强

大模型场景实战培训,提示词效果调优,大模型应用定制开发,点击咨询
咨询热线:400-920-8999转2

一、前言

要想理解和解决大模型服务推理“慢”的问题,首先要知道大模型的推理结果是怎么产生的。

Image 1: a diagram of a neural network and a transformer decoder

由上图可知,推理过程是不断地根据上文(robot must obey)来猜测下文最可能出现的token(orders),最后拼接而成。如果需要输出更长的结果,那么就需要不断地去根据上文推理下一个token,直到结束。所以影响大模型推理“慢”的主要原因是不同模型推理速度和输出长度

总体来说,解决大模型推理“慢”大致有三种常见方案,您可以根据实际业务场景和工程需要来选择:

  1. 流式请求 (快速获得结果的头部部分tokens,尽快使用/展示,缓解长时间等待的焦虑)

  2. 切换模型 (不同模型推理速度不同,可以合理选择不同效果、速度的模型)

  3. 约束输出内容长度 (输出长度和推理时间成正比,合理有效的减少输出长度可以减少等待时间)

二、解决方案

流式请求

非流式请求与流式请求的差异

非流式请求
  • 阻塞式等待服务端返回数据
  • 所有推理结果一次性返回
  • 适用场景:需要对结果进行固定格式解析、其他对完整性结果有要求
  • 入参:stream: false(默认)
  • 出参:
{
    "id": "as-fg4g836x8n",
    "object": "chat.completion",
    "created": 1709716601,
    "result": "北京,简称“京”,古称燕京、北平,中华民族的发祥地之一,是中华人民共和国首都、直辖市、国家中心城市、超大城市,也是国务院批复确定的中国政治中心、文化中心、国际交往中心、科技创新中心,中国历史文化名城和古都之一,世界一线城市。\\n\\n北京被世界城市研究机构评为世界一线城市,联合国报告指出北京市人类发展指数居中国城市第二位。北京市成功举办夏奥会与冬奥会,成为全世界第一个“双奥之城”。北京有着3000余年的建城史和850余年的建都史,是全球拥有世界遗产(7处)最多的城市。\\n\\n北京是一个充满活力和创新精神的城市,也是中国传统文化与现代文明的交汇点。在这里,你可以看到古老的四合院、传统的胡同、雄伟的长城和现代化的高楼大厦交相辉映。此外,北京还拥有丰富的美食文化,如烤鸭、炸酱面等,以及各种传统艺术表演,如京剧、相声等。\\n\\n总的来说,北京是一个充满魅力和活力的城市,无论你是历史爱好者、美食家还是现代都市人,都能在这里找到属于自己的乐趣和归属感。",
    "is_truncated": false,
    "need_clear_history": false,
    "finish_reason": "normal",
    "usage":
    {
        "prompt_tokens": 2,
        "completion_tokens": 221,
        "total_tokens": 223
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
流式请求
  • 服务端生成一段推理内容(非语义连贯)后即输出,调用方无需等待所有数据返回后再处理;
  • 提升了首个token的响应时间,减少用户等待;
  • 适用场景:对话、检索类,无需对结果进行特殊格式解析等
  • 入参:stream: true
  • 出参:
data: {"id":"as-vb0m37ti8y","object":"chat.completion","created":1709089502,"sentence_id":0,"is_end":false,"is_truncated":false,"result":"当然可以,","need_clear_history":false,"finish_reason":"normal","usage":{"prompt_tokens":5,"completion_tokens":2,"total_tokens":7}}
... ...
data: {"id":"as-vb0m37ti8y","object":"chat.completion","created":1709089508,"sentence_id":3,"is_end":false,"is_truncated":false,"result":"您可以参观西安的兵马俑、大雁塔,体验兰州的黄河风情,以及在敦煌欣赏壮丽的莫高窟。","need_clear_history":false,"finish_reason":"normal","usage":{"prompt_tokens":5,"completion_tokens":2,"total_tokens":7}}
  • 1
  • 2
  • 3

从上述返回结果数据结构上可以看出,调用方需要针对不同的请求方式分别处理。

首token响应时间对比

{
    "messages":
    [
        {
            "role": "user",
            "content": "请介绍北京有哪些好玩的景点"
        }
    ],
    "stream": false
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

stream:false 时的响应时间:等待所有所有结果都返回的时间是33秒

Image 2: a screenshot of a chinese text editor

stream:true时的首包响应时间:3秒

Image 3: a screenshot of a chinese website with chinese text

Image 4: a screenshot of a web page with the text highlighted

从上述两个测试对比可以看出,使用流式请求能够更快地获取到推理结果,随后每隔几秒就会返回更多推理文本段落。有效的缓解了用户侧等待焦虑。

切换模型

如何选择模型?

选择模型要从不同的角度入手,如tokens单价、生成速度、结果质量等;可以根据业务场景和需求按需选择使用。

费用&场景推荐

下面是简单列举了几个模型的费用情况,更多最新的模型资费您可以参考:https://cloud.baidu.com/doc/WENXINWORKSHOP/s/hlrk4akp7

模型名称

输入单价

输出单价

适用场景

ERNIE-4.0-8K

0.12元/千tokens

0.12元/千tokens

处理十分复杂场景、任务,需要严格按照Prompt执行的场景(复杂标签生成、参数提取、任务判断和直接搜索等)。

ERNIE-3.5-8K

0.012元/千tokens

0.012元/千tokens

常规任务场景,如意图识别、脚本生成、直接搜索等

ERNIE-Lite-8K-0922

0.008元/千tokens

0.008元/千tokens

聊天、文章扩写等

ERNIE-Speed-8K

0.004元/千tokens

0.008元/千tokens

聊天、简单任务处理等

如果您的业务场景包含不同的子场景,可以根据不同子场景对模型效果、响应速度等各方面的要求择优选择合适的模型即可(各取所长,多模融合)。

tokens响应速度

不同模型对应的tokens生成速度也都不一样。我们可以通过下面对不同模型测试的对比结果,观察到它们之间的差异(这些结果仅代表本次测试过程):

{
    "messages": [
        {
            "role": "user",
            "content": "帮我生成一个故宫一日游的旅游攻略"
        }
    ],
    "stream": false
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
ERNIE-4.0-8K

测试1-模型推理时间:35.88s,推理结果402tokens:平均11.2 tokens/s (仅单次测试,供参考)
测试2-模型推理时间:50.02s,推理结果532tokens:平均10.63 tokens/s(仅单次测试,供参考)

Image 5: a screenshot of the code editor in chinese

Image 6: a screenshot of a chinese text editor

ERNIE-3.5-8k

测试1-模型推理时间:27.58s,推理结果453tokens:平均16.42 tokens/s(仅单次测试,供参考)

测试2-模型推理时间:26.60s,推理结果461tokens:平均17.33 tokens/s(仅单次测试,供参考)

Image 7: a screenshot of a chinese text editor

Image 8: a screenshot of a chinese text editor

ERNIE-Speed-8K

测试1-模型推理时间:15.67s,推理结果606tokens:平均38.67 tokens/s(仅单次测试,供参考)

测试2-模型推理时间:15.51s,推理结果494tokens:平均31.85 tokens/s(仅单次测试,供参考)

Image 9: a screenshot of the code editor in chinese

Image 10: a screenshot of a chinese text editor

ERNIE-Lite-8K-0308

测试1-模型推理时间:6.05s,推理结果476tokens:平均78.67 tokens/s(仅单次测试,供参考)

测试2-模型推理时间:6.26s,推理结果495tokens:平均79.07 tokens/s(仅单次测试,供参考)

Image 11: a screenshot of a chinese code editor

Image 12: a screenshot of a chinese text editor

任务指令遵循效果对比

输入相同的Prompt,测试下列4个模型的指令遵循效果

本周完成了一些研发工作,我会给你一个列表,列表结构为第一列表示工作的类型,通常有Story、Feature、Bug等;第二列表示这项工作的状态,通常有新建,开发中,测试中,已完成;第三列代表工作是否有超期风险,如:已超期,未超期;第四列表示这列工作的内容,具体描述了我做了什么。
请一步一步的思考,按照要求帮我写一份周报,我希望通过这些工作内容,生成一份周报。周报的结构由3部分组成:1. 工作摘要:请把第四列的内容进行合并总结改写成一句通顺的话,其中类似的话请合并;2. 主观分析:请根据第四列中已经超期的工作进行总结,表明需要重点关注;3.详细卡片:根据我输入的列表内容生成一个表格,给表格命名为“原始卡片”。我期望的返回格式是:## 本周进展 。  Begin:
Task 新建 已超期【后端】自动化规则动作执行数据统计 ; 
Story 新建 自动化规则动作执行数据统计 ;
 TechTask 新建 未超期 快速编辑接口关联卡片支持传卡片 id, 目前需要空间前缀+编号 ; 
Story 新建 未超期 iTest 接入 iCafe 新建/编辑弹窗 ;
 Task 开发中 已超期【后端】order脏数据处理:如果order不为null,isDesc为null,那么给个默认值 ; 
Story 新建 未超期 迭代计划需要将viewId 同步到URL上,这样就能根据一个url唯一确定视图 ;
Bug(线上) 已完成 未超期 请求storymapping dubbo 接口超时导致卡片创建失败 ; 
TechTask 完成 未超期 map-bugs 空间的「问题分类」字段有超过 1000个选项,卡顿明显。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

Image 13: a screenshot of a google search page showing different types of information

从上面结果可以看出:

  • ERNIE-4.0-8K 工作摘要、主观分析内容比较简短精炼,效果最好;ERNIE-3.5-8K效果次之;ERNIE-Speed-8K和ERNIE-Lite-8K模型内容较多,稍显啰嗦。
  • 最终都按照指令要求生成了周报,结构基本符合预期,都生成了表格内容。

综上所述,ERNIE-Speed-8K和ERNIE-Lite-8K模型也能按需求输出较为完整的关键信息和表格,在保证输出速度的前提下也能得到较好的输出结果。

约束输出内容长度

下面我们一起来看下如何约束输出内容长度达到缩短耗时的效果。以ERNIE-4.0-8K模型为例。

输入

输出结果

{ "messages": [{"role": "user", "content": "生成一段描述故宫的内容"}], "stream": false }

输出260tokens,耗时20.46秒。

{ "messages": [{"role": "user", "content": "生成一段描述故宫的内容,不超过100字"}], "stream": false}

输出55tokens,耗时7.61秒。

从上面对比结果可以看到,通过“不超过100字”类似的Prompt约束后,模型返回的结果长度大大缩短,耗时也从20秒减少到了7秒。在这种开放性问题回答场景效果显著。

但值得注意的点是:大语言模型对Prompt中字符约束的效果和提示词内容相关(例如:写一篇符合高考要求的议论文,字数不超过10个字。提示词前后矛盾,大模型便不会遵循字数约束的要求),是一个锦上添花的方案。

三、总结

在现有模型服务基础上,通过流式请求、切换模型和约束输出长度等三种方案,可以快速解决“大模型推理慢”的问题,成为常见的解决方案,可以根据业务场景按需使用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/638112
推荐阅读
  

闽ICP备14008679号