告别卡顿!Chatterbox技术让ChatGPT流畅对话,不稳定网络下减少71%的等待时间

引言:LLM Chatbots在不稳定网络下的挑战

经常使用gpt的朋友们会发现,当网络连接不稳定时,chatgpt生成的信息(token)在传输过程中可能会丢失或延迟,导致屏幕输出的响应文本中断,需要等待或者刷新才能继续显示文本,影响整体的交互流畅性。

为了解决这一问题,本文提出了一种新的传输层方案------Chatterbox,旨在改善LLM Chatbots在不稳定网络下的token流式传输体验。即,本文是一篇计算机网络方向的文章,从网络协议的角度针对token的流式传输特点提出了一个新的网络协议,加强LLM响应的流畅程度,具有较好的工程价值。

论文标题:Chatterbox: Robust Transport for LLM Token Streaming under Unstable Network

研究机构:University of Chicago

论文链接arxiv.org/pdf/2401.12...

LLM Chatbot的实时交互问题

1. LLM Chatbot的实时交互

Large Language Models (LLMs) 如ChatGPT自2023年问世以来,其在各种Chatbot服务中的应用变得越来越流行。这些服务利用LLM模型接收用户提示,并实时返回响应,以提供信息回答用户问题或提供情感支持。在LLM Chatbot的token流式传输管道中,token(部分或完整的词)是在云数据中心逐个生成的 ,然后通过广域网发送到客户端设备。为了提供实时流式体验,如上图所示,最新生成的token会在生成后立即发送给用户,而不是等到所有token生成完毕。这种实时交互的流畅性对于用户体验至关重要,任何传输过程中的间歇性停顿都可能严重影响交互的顺畅性,并损害用户体验。

2. 不稳定网络下现有系统的性能退化

在不稳定的网络环境下,如果某些数据包丢失或在网络中严重延迟 ,客户端将需要等待发送方重新传输这些数据包。这可能导致token流式传输停顿,因为所有后续的token都需要等待前面的token到达接收器后才能被渲染。当用户在信号弱或干扰频繁的地方使用LLM Chatbot服务时,他们可能会遭受间歇性的网络连接问题。

通过对ChatGPT Streaming API等应用的性能测试,作者发现不稳定的网络会大幅增加流式传输的停顿。现有的应用借鉴了TCP,依赖于重传机制来处理数据包丢失,导致了长时间的停顿。此外,即使后续包含新token的数据包可能早于重传数据包到达,但由于丢失的token阻塞了新token的渲染,没有更多新token能够被渲染。

Chatterbox方案的提出

1. Chatterbox的设计初衷

为了解决不稳定网络下的token流式传输问题 ,本文提出了一种新颖的传输层方案,名为Chatterbox。Chatterbox的设计初衷是提供一种平滑的token流式体验,并在各种网络条件下将Chatbot转变为更加流利的交流者。

Chatterbox的关键思想是让客户端可以独立渲染每个接收到的数据包 。原本每个数据包中只有生成的token,Chatterbox的每个数据包不仅包含新生成的token,还包含足够的渲染新token的信息。因此,即使在不稳定的网络环境下,每个到达的新token都能够被客户端渲染,而不会被之前丢失的token阻塞。

2. Chatterbox如何减少交互中的停顿

Chatterbox通过在包含新生成token的数据包中加入未确认的token(即已发送但尚未被接收器确认的token),来减少客户端token流式传输中的停顿。这种机制大大减少了因重传而引起的停顿,尤其是在网络往返时间(RTT)较长的不稳定网络中。

这里大家可能对于其工作原理还没能理解,接下来将进行详细说明。

Chatterbox的工作原理

1. Chatterbox的包处理机制详解

Chatterbox核心思想是在发送新生成的token时,同时将尚未被接收端确认(ACK)的token(称为"unacked tokens")包含在下一个出站数据包中。这样,每个接收到的数据包都包含了足够的信息来独立渲染其中的新令牌,从而避免了因丢失数据包而导致的渲染阻塞问题。

Chatterbox的数据包准备机制使得,对于每个到达的新token,客户端都能够将这个新token之前的token加载出来,并且不会被任何先前丢失的token阻塞。这种机制在网络往返时间(RTT)可能较长的不稳定网络中,可以大大减少因重传引起的停顿。

2. Chatterbox的发送和接收流程

如上图所示,在发送流程中,Chatterbox的server维护一个未确认token缓冲区,其中包含所有已发送但尚未收到ACK的token。每当生成新token并准备发送时,server会访问此缓冲区,并将尽可能多的未确认token与新token一起放入数据包中,以准备新令牌的渲染。client端的逻辑相对简单。接收到数据包后,它会提取数据包内的token,如果所有先前的token都已到达,则渲染这些token,并向发送端发送ACK。

实验设计与模拟网络条件

1. 实验设置和参数

实验通过模拟不同的网络条件来测试Chatterbox的性能。实验使用了一个两状态的马尔可夫模型来模拟不稳定的网络条件,如无线连接。在这个模型中,有两种状态:丢包状态和良好状态。每种状态持续100毫秒,丢包状态下有90%的概率丢包,而良好状态下不会丢包。通过调整状态转换概率p和q,可以模拟不同类型的网络条件。默认情况下,p=0.9,q=0.5,平均每1000毫秒良好连接后会有200毫秒的不良连接,这导致了与实际观察到的类似的15%的丢包率。

2. 实验中使用的评价指标

实验主要报告了两个指标:冗余率和停顿比率

冗余率是指除了原始token之外发送的额外数据量(包括重传)。

停顿比率是指客户端在停顿时间超过200毫秒时等待token渲染的时间量。理想的方法应该优先减少停顿比率,其次才是尽量降低冗余率。 通过这些评价指标,研究人员能够量化Chatterbox在减少客户端感知到的停顿和发送的总数据量方面的性能。

Chatterbox的性能评估

1. 展示Chatterbox在不同RTT下的性能


Chatterbox在不同的往返时间(RTT)下的性能表现是通过模拟不稳定网络条件下的测试来评估的。在设置了400毫秒和100毫秒的RTT条件下,Chatterbox与传统TCP方法相比,能够显著减少客户端的等待时间。具体来说,当RTT为400毫秒时,Chatterbox能够将停顿比率(stall ratio)降低71.0%,与数据包复制方法相比,能够降低31.6%。而在100毫秒RTT的情况下,Chatterbox将停顿比率降低了60.0%,与数据包复制方法相比,降低了31.3%。这些结果表明,Chatterbox在处理不稳定网络条件下的传输问题时,能够有效减少因重传引起的停顿。

2. 分析Chatterbox在不同丢包模式下的表现


在不同的丢包模式下,Chatterbox的表现也得到了评估。通过调整Markov模型中的参数p和q,模拟了不同的网络丢包情况。在p设置为0.5,q设置为0.5的情况下,网络更频繁地进入丢包状态。尽管所有方法的停顿比率都有所增加,但Chatterbox相比于基线方法显示出更显著的改进。当p设置为0.9,q设置为0.8时,每个丢包周期持续的时间比默认情况更长。尽管Chatterbox的性能仍然优于其他基线方法,但其改进幅度有所减少,这可能是由于长时间的RTT和丢包时间导致不是所有未确认的数据包都能包含在新的数据包中,从而影响了Chatterbox的性能。

真实网络环境下的Chatterbox测试

1. 描述真实网络测试平台的搭建

为了评估Chatterbox在真实网络环境下的性能,研究团队构建了一个测试平台。他们使用了一台Macbook 2023 M2笔记本电脑,通过连接到iPhone 11的热点,使用Mint LTE服务在北美进行测试。测试过程中,手机放置在办公室内,测试人员在办公室外部(30米范围内)行走。同时,在笔记本电脑上运行自动化的bash脚本,重复启动30个GPT API会话,并记录了数据包到达情况和令牌到达时间。

2. 讨论Chatterbox在真实网络环境下的性能

在真实网络环境下的测试中,Chatterbox展现出了比基线方法更好的性能。在400毫秒RTT的条件下,Chatterbox能够比TCP方法减少27.4%的停顿比率,与数据包复制方法相比,减少了18.0%。此外,它还减少了40.4%的延迟token(生成后超过400毫秒的延迟)比例,提供了更实时的响应,而无需对计算进行修改。这些实验结果证明了Chatterbox在真实世界的数据包丢失模式下的实用性。

总结

Chatterbox是一个针对LLM Chatbot的传输层方案,它通过在每个发出的数据包中包含新生成的token以及当前未被确认的token,从而确保每个数据包在接收时都包含足够的信息进行独立渲染,避免了因丢包导致的渲染停顿。模拟不同网络条件下的实验表明,Chatterbox相比于常见的ChatGPT Streaming API使用的TCP方法,能够将停顿比率降低71.0%,并且相比于简单的数据包复制方案,降低了31.6%,同时发送的总数据量更少。

相关推荐
董厂长1 小时前
langchain :记忆组件混淆概念澄清 & 创建Conversational ReAct后显示指定 记忆组件
人工智能·深度学习·langchain·llm
G皮T4 小时前
【人工智能】ChatGPT、DeepSeek-R1、DeepSeek-V3 辨析
人工智能·chatgpt·llm·大语言模型·deepseek·deepseek-v3·deepseek-r1
九年义务漏网鲨鱼4 小时前
【大模型学习 | MINIGPT-4原理】
人工智能·深度学习·学习·语言模型·多模态
元宇宙时间5 小时前
Playfun即将开启大型Web3线上活动,打造沉浸式GameFi体验生态
人工智能·去中心化·区块链
开发者工具分享5 小时前
文本音频违规识别工具排行榜(12选)
人工智能·音视频
产品经理独孤虾5 小时前
人工智能大模型如何助力电商产品经理打造高效的商品工业属性画像
人工智能·机器学习·ai·大模型·产品经理·商品画像·商品工业属性
老任与码5 小时前
Spring AI Alibaba(1)——基本使用
java·人工智能·后端·springaialibaba
蹦蹦跳跳真可爱5895 小时前
Python----OpenCV(图像増强——高通滤波(索贝尔算子、沙尔算子、拉普拉斯算子),图像浮雕与特效处理)
人工智能·python·opencv·计算机视觉
雷羿 LexChien6 小时前
从 Prompt 管理到人格稳定:探索 Cursor AI 编辑器如何赋能 Prompt 工程与人格风格设计(上)
人工智能·python·llm·编辑器·prompt
堆栈future6 小时前
上下文工程(Context-Engineering): AI应用核心技术剖析
llm·ai编程·mcp