技术解析 GPT-4o:即时语音交互的突破与 GenAI 发展策略
【导读】GPT-4o 的问世再次惊艳了世界,本文深入探讨了 GPT-4o 在语音交互领域的突破性进展,揭示了其在即时性和表现力方面的优势,并对实现这一技术所面临的挑战进行了详细分析。除此之外,作者还对 OpenAI 的发展策略进行了评估,指出了 GPT-4 在逻辑严密性和上下文处理能力上的局限性,并对未来 GPT-5 的发展方向和潜在挑战提出了见解。
GPT-4o 在语音交互的突破
GPT-4o 令人惊艳之处首推语音交互的即时性和表现力。有关如何实现 OpenAI 仅透露了寥寥数句。此前的 Voice Mode 与大家能想到并且有所实现的方式一样,通过三个模型的串联来实现,①一个“简单”(相对 GPT-3.5/4 的规模而言)音频转文字的模型,无疑应是用 OpenAI 开放的 Whisper 模型。得到的文字输入②GPT-3.5 或 GPT-4,后者输出的文字再经由③一个较“简单”的文字转语音(TTS)模型得到语音输出。多种腔调的表现力方面主要由③实现,市面很多产品都可以做到,本文不做赘述。此处先关注延迟问题。
Voice Mode 在三步的流水线上能实现平均 2.8(GPT-3.5)到 5.4(GPT-4)秒的延迟(latencies),这有多难呢?要看 Whisper 的一些基本指标,如下图。
音频是切分为 30 秒的片段,转化为频谱数据输入 Transformer 模型来做识别的,不足 30 秒的语音可以填充空白。模型预训练时都是这样的 30 秒语音片段及其对应的文字。30 秒的标准应该是平衡了训练语料的特点和计算量的考量。片段太短则信息不足,正确率降低,太长则计算量过大。
显然这样训练出来的模型适合没有延迟要求的离线转录。在需要实时识别的场景下会遇到挑战。实时的对话不太可能一方说 30 秒才轮到对方,往往一次说话只有几秒钟。最好是接收到多少语音,比如一个词或 1 秒,就调用一次模型。经过优化的 Whisper 模型,比如 Hugging Face 实现的 Insanely Fast Whisper large-v3 和 Faster whisper large v3 在 Nvidia 2080Ti GPU 上转录一秒钟音频大约需要 50 毫秒。那么主要的延迟应该是来自于第②步的大语言模型推理。
但是 1 秒的语音与 30 秒的预训练数据差异太大,准确性必然是较低的,需要尽可能增加一次识别的语音长度,这与降低延迟是矛盾的。目前通常采取的办法是以单词、句子或固定短时间的片段进行渐进式识别,比如片段 1+空白填充识别一次,片段 1+片段 2+空白填充识别一次,片段 1+片段 2+片段 3+空白填充(不超过 30 秒)识别一次……后一次或几次识别的结果与前一次识别的有相同的前缀部分,说明前缀部分的识别很可能是正确的,那就把对应的片段,比如片段 1,视为已经完成,不需要再保留到后续的识别调用中了。
一个开源实现的例子可以参考:
https://github.com/luweigen/whisper_streaming
这种方式下,一个片段经历多次重复计算,多个片段一起识别提高正确率也导致更长的延迟。实测在 NVIDIA A40 GPU 上能实现 3 秒左右的高质量语音到文字实时转录延迟是学术和开源届的水平。
Voice Mode 在加了 GPT-3.5 的文字到文字生成和文字到语音合成两步之后仍能达到 2.8 秒的延迟,必然进行了更深度的软硬件系统优化。同时要保持 Whisper 标准的离线转录正确率,可能要用更小的语音片段对模型进行微调(Fine-tune)或者再训练。
GPT-4o 进一步实现了最小 232 毫秒,平均 320 毫秒的响应时间(“respond time”)。虽然这有可能有一些“技巧”在里面,比如对绝大多数的问题,可以都先响应一个礼貌的短语“当然”、“好的”之类实际上不需要理解和推理的部分,实现尽可能短的“响应时间”,但在 2.8 秒上继续提高仍是困难的。
有关如何实现,OpenAI 只给出一句话说 GPT-4o 是单个同时处理文字、声音和视频的端到端模型,与 Google 等其他家的多模态原理并无二致。即便直接从语音输入预测语音输出,以上讨论的语音切片问题仍然存在。
英伟达研究科学家 Jim Fan 猜测 GPT-4o 是对 Voice Mode 式的三步流水线的端到端结果进行知识蒸馏。那么它适应的场景广泛性和沟通内容的多样性和复杂度可能是不及文字到文字的 GPT-4 的。上述分析的语音片段微调或再训练问题,Jim 重点讨论了训练数据,可能来自于网络上的多媒体记录的对话,或者用 Voice Mode 式的三步流水线来合成数据,后者显然是 OpenAI 具备优势可以继续发挥的。
GenAI 发展策略
GPT-4 之后,OpenAI 发布了 GPTs、GPT-4V、GPT-Turbo、Sora 和 GPT-4o,每一次都引起媒体和部分用户的追捧。但始终没有触及 GPT-4 本身的问题,比如很多时候不能保证结果符合严密的逻辑,上下文窗口不足以满足相对复杂的任务需要等。
相反,在学术和开源社区中得到了成果的范围内,比如更高效的 Transformer 实现、更好的 RAG 和 Agent 实现、多模态的原理、更好的媒体生成控制方法等,虽然没有证据表明 OpenAI 直接使用了开源的技术,但 OpenAI 的新产品并没有超出这些能力范围,只是进行了更成熟的产品化。越来越更偏向对正确性和可控性要求不那么高的趣味、情感方面的需求满足。结果每次都导致开发者一片哀鸿遍野。
考虑到竞争者与 GPT-4 仍有实际表现上的差距,OpenAI 这样的策略在情理之中。站在现在这个时间点上我们可以这么分析 OpenAI 的强项:
人才优势,相信在 AI 领域它目前有最大的概率吸引人才,最大的概率能做好各种 AI 的工程实现和优化。但是它能涉及的领域必然是极其有限的。
“数据飞轮”,作为最多用户的 AI 产品能够获得最多的数据,但是考虑到用户的使用行为表现,数据的实际效果有多好,可能并没有想象中的重要。
“智力飞轮”,体现在上述讨论的合成数据方面,现有的模型智力可以生成更有效的训练数据,用于进一步提升模型的智力,形成正反馈。OpenAI 拥有智力最高的 GPT-4 模型,因此在这点上是毋庸置疑的优势。
但是要进一步提高 GPT-4 本身的基础能力问题,如果沿着 OpenAI 自己探索出来的 Scaling Law 路径,很可能需要 100 倍 GPT-4 规模。可能是 100 倍的模型参数量,或者 100 倍的训练数据量,或者两者组合,这应该才是真正的 GPT-5。以 OpenAI 的营收水平,做 GPT-5 应该是有财务压力的,并没有足够的优势保证抢先 Google 等对手实现这样的尝试。而这样的 GPT-5 能比 GPT-4 提高多少,比如能否可靠地生成复杂软件项目的代码?能把 SWE-bench 这样的任务成绩提高多少?还是未知数。
因此在这样的情况下,借鉴 OpenAI 的策略应是有效的,错开直接的竞争也是可能的。例如我们关注的辅助软件开发领域,在模型智能获得突破性提高之前,可以尝试将目前对标人类中上水平的评测和训练数据进行更细致的分层,使模型以超越人类的成功率的完成特定层次的工作,获得“惊艳”和实用的表现。在此基础上,领域专家的深入参与会带来数据质量的提高。“智力飞轮”方面,StarCoder2-Instruct (Wei et al., 2024)等开放研究也初步发现用开源模型也能实现高质量合成数据和模型自我提高。
在翘首以盼 GPT-5 的现在,或许未来我们可能会发现 GPT-5(或者某种被定义为 AGI 的产品)也并不能在所有领域和场景中完全解决现在 GPT-4 的问题。将生成式 AI 在特定用途中做得更可靠和方便,仍有很多发挥人类聪明才智和汗水的空间。