字号:TTT

原华为“天才少年”4万字演讲,谈谈天才眼中的AI


我们先不考虑视觉部分,先只看语音部分。在一个语音电话里,收到语音后首先做停顿检测,发现用户说话结束了,就把这一段音频送到Whisper 去做语音识别。停顿检测比如人声结束后等待 0.5 秒,然后 Whisper 语音识别大概需要 0.5 秒。

然后送到文本模型去做生成,用开源模型生成的速度其实非常快,比如最近比较火的 Mixtral 8x7B MoE 模型,输出第一个token 只需要 0.2 秒,每秒输出 50 个 token 不是问题,那么第一句话假设有 20 个 token,就需要 0.4秒。第一句话生成完了,就交给语音合成模型去合成语音,VITS 只需要 0.3 秒。

加上 0.1 秒的网络时延,这样端到端算下来只要 1.8 秒的延迟,已经比市面上的大多数实时语音电话产品好很多了。比如ChatGPT 语音电话的延迟是 5~10 秒。而且我们的方案中,停顿检测和语音识别部分的延迟还有优化空间。

我们再看 Google Gemini 演示的视频理解场景。

因为我们现在的多模态模型输入的基本都是图片,而不是流式视频,所以首先需要把视频变成图片,截取关键帧。比如每 0.5秒截取一帧,这里面就有平均 0.3 秒的延迟。图片可以直接送进 MiniGPT-v2 或者 Fuyu-8B这样的开源多模态模型。但是由于这些模型比较小,实际用起来效果并不是很好,跟 GPT-4V 差距比较大。

因此我们可以采取传统 CV 与多模态大模型相结合的方案,用 Dense Captions这个技术识别出图片中的所有物体及其位置,并且用 OCR 识别图片中的所有文本。再把 OCR 结果,Dense Captions的物体识别结果作为原始图片的补充文字,都输入到 MiniGPT-v2 或者 Fuyu-8B这种多模态大模型里面。对于菜单、说明书一类的图片,OCR 的作用是非常大的,因为单靠多模态大模型经常识别不清楚大块文字。

这个识别图片中物体和文字的步骤增加了额外的 0.5 秒延迟,但是我们看一下延迟分解,就会发现视频部分根本不是瓶颈,只有 0.9秒,而语音输入部分反而是瓶颈,需要 1.1 秒。在 Google Gemini 这个演示场景中,从看到视频到 AI 文字开始输出只要1.3 秒,从看到视频到 AI 语音开始播放只要 1.8 秒,虽然没有演示视频的 0.5秒这么酷炫,但也足够完爆市面上的所有产品了。这里面用的还全部都是开源模型,一点训练都不需要做。如果公司自己有一些自己训练和优化模型的能力,想象空间就更大了。

Google Gemini 演示视频分为两种任务:生成文本/语音和生成图片。在生成图片的时候,可以根据文本,调用 StableDiffusion 或者最近新出的 LCM 模型,只要 4 个 step 甚至 1 个 step就可以生成图片,图片生成的延迟可以做到 1.8 秒,那么从看到图到生成图的端到端时间就只有 3.3 秒,也是非常快的了。

好看的皮囊:多模态生成能力

点击图片看原样大小图片

语音克隆是制作名人或者动漫游戏角色的重要技术,目前 ElevenLabs 做得是最好的,但是 ElevenLabs 的 API很贵。XTTS v2 之类的开源方案合成语音的相似度不高。

我认为要想语音克隆效果好,还是要靠大量的语音数据来做训练。但是传统语音训练所需的数据一般对质量要求很高,必须是录音棚里面录制的口齿清晰的语音数据,因此采集语音数据的成本很高。但我们不可能要求名人到录音棚里去给我们专门录制语音,只能用YouTube 等公开视频的语音做训练。YouTube语音往往是访谈形式,里面有多个人说话,而且有背景噪声,名人说话的过程中也可能有结巴和口齿不清。如何用这样的语音训练语音克隆呢?

我们搭建了一套基于 VITS搭建的语音克隆流水线,可以自动把视频中的人声从背景噪声中区分出来,拆分成句子之后,识别出有哪几个说话人,针对我们想要的人的语音,筛选出其中信噪比较高的语音,然后识别出文字,最后这些清洗过的语音和文字送去做批量微调。

微调过程也是很有技术含量的。首先,微调的基础语音需要是比较相似的语音,比如一个男生的语音用一个女生的语音作为基础去微调,那效果肯定不好。如何从语音库里找到相似的语音来做微调是需要一个音色相似度检测模型,类似声纹识别的模型。像ElevenLabs的基础语音模型中就已经包含了大量不同音色人的高质量数据,因此在语音克隆的时候,很多时候能够从语音库中找到很相似的语音,这样不需要做微调就能zero-shot 生成不错的语音。

其次,VITS 训练过程中不能根据简单的 loss 判断收敛,以往都是要靠人耳朵去听哪个 epoch的效果最好,这样就需要大量的人工成本。我们开发了音色相似度检测模型和发音清晰度检测模型,可以自动判断语音的微调结果哪个更好。

(注:这个报告是 2023 年 12 月做的,目前 GPT-soVITS 的路线比 VITS 更好,可以实现 zero-shot语音克隆,不再需要收集大量高质量语音做训练。开源模型可以合成的语音质量终于逼近 ElevenLabs 的水平了。)

点击图片看原样大小图片

很多人认为不需要自研语音合成模型,直接调用 ElevenLabs、OpenAI 或者 Google Cloud 的 API就行了。

但是 ElevenLabs 的 API 非常贵,如果走零售定价,每 1K 字符需要 0.18 美金,按照一个 token 4个字符计算,相当于 $0.72 / 1K tokens 了,这是比 GPT-4 Turbo 都要贵 24 倍的。ElevenLabs虽然效果好,但是如果 to C 产品大规模使用,这个价格是真的烧不起。

OpenAI 和 Google Cloud 的语音合成 API不支持语音克隆,只有那几个固定的声音,这样就没法克隆名人语音了,只能做一个冷冰冰的机器人播报。但即使这样,成本也是比 GPT-4Turbo 贵 1 倍的,也就是成本的大头不是花在大模型上,而是花在语音合成上。

大概也是因为语音不好做,很多 to C 的产品都选择只支持文字,但实时语音交互的用户体验明显是更好的。

虽然基于 VITS 很难实现 ElevenLabs 级别质量的语音,但基本可用是没有问题的。自己部署 VITS 的成本只要$0.0005 / 1K 字符,是 OpenAI 和 Google Cloud TTS 价格的 1/30,ElevenLabs 价格的1/360。这个 $2 / 1M tokens的语音合成成本也跟自己部署开源文本大模型的成本差不多,这样文本和语音的成本就都降下来了。

因此如果真的打算把语音作为一个用户体验的重大加分项,基于开源自研语音模型不仅是必要的,也是可行的。

点击图片看原样大小图片

我们知道图片生成现在已经比较成熟,视频生成会是 2024年一个非常重要的方向。视频生成不仅仅是生成素材这么简单,更重要的是让每个人都能轻松成为视频内容的创作者,更进一步,让每个 AI数字分身都有自己的形象,可以用视频的方式来交流。

有几条典型的技术路线,比如Live2D,3D 模型,DeepFake,Image Animation 和 VideoDiffusion。

Live2D 是很老的技术,不用 AI 也行。比如很多网站上的看板娘就是 Live2D,一些动画游戏也是用 Live2D技术做的。Live2D 的优点在于制作成本低,比如一套 Live2D皮套,一万元人民币一两个月就能做出来。缺点在于只能支持指定的二次元人物,没办法生成背景视频,也没办法做出皮套范围以外的动作。Live2D作为 AI 数字分身的形象,最大的挑战是如何让大模型输出的内容跟 Live2D 人物的动作和口型一致。口型一致相对容易,很多皮套都支持LipSync,也就是让音量和口型一致。但是动作一致就相对复杂,需要大模型在输出中插入动作指示,告诉 Live2D模型该做什么动作了。

3D 模型跟 Live2D 类似,也是很老的技术,跟 Live2D 就是二次元和三次元的区别。大多数游戏都是用 3D 模型和Unity 之类的物理引擎做的。今天数字人直播里面的数字人一般也是用 3D 模型做的。目前 AI 很难自动生成 Live2D 和 3D模型,这还需要基础模型的进步。因此AI 能做的事就是在输出中插入动作提示,让 3D 模型一边说话一边做指定的动作。

DeepFake、Image Animation 和 Video Diffusion 则是通用视频生成 3条不同的技术路线。

DeepFake 是录制一个真人视频,随后利用 AI把视频中的人脸换成指定的人脸照片。这种方法其实也是基于上一代深度学习的方法,它从 2016年开始就存在了。现在经过一系列的改进,它的效果已经非常好了。有时我们会认为当前的真人视频与我们想要表达的场景,比如说游戏中的场景,是完全不同的。事实上,因为DeepFake 可以使用这个世界上所有的 YouTube 视频资料,所有的电影剪辑,甚至是用户上传的抖音短视频。AI学习了这些视频的内容,对视频做文字总结和标注之后,我们总能从海量的视频库中找到一个我们想要的视频,然后在这个时候把视频中的人脸换成我们指定的人脸照片,就能达到非常好的效果。实际上,这个有点类似于现在短视频中比较常用的混剪技术。

Image Animation,比如说最近比较火的阿里通义千问的 Animate Anyone 或者字节的 MagicAnimate,它实际上是给定一张照片,随后根据这张照片生成一系列的对应视频。然而,这个技术相比于 DeepFake的缺点是它可能目前还达不到实时视频生成,而且视频生成的成本相比 DeepFake 要高一些。但是 Image Animation可以生成大模型指定的任意动作,甚至可以把图片背景填充进去。当然,不管是 DeepFake 还是 Image Animation生成的视频,都不是完全准确,有时候可能发生穿帮的情况。

Video Diffusion 我认为是一个更为终极的技术路线。虽然这条路线现在还不够成熟,比如像 Runway ML 的Gen2,以及 PIKA Labs 都在探索这一领域。(注:本演讲是在 2023 年 12 月,当时 OpenAI 的 Sora还没有发布。)我们认为,可能未来基于 Transformer的方式端到端的生成视频是一个终极的解决方案,可以解决人和物体的运动以及背景生成的问题。

我认为视频生成的关键是要对世界有一个很好的建模和理解。现在我们的很多生成模型,比如 Runway ML 的Gen2,在对物理世界的建模方面实际上存在很大的缺陷。许多物体的物理规律和其物理属性并不能被正确地表达出来,因此它生成的视频的一致性也较差,稍微长一点的视频就会出现问题。同时,即使是非常短的视频,也只能生成一些简单的运动,而对于复杂的运动,是没办法正确建模的。

此外,成本也是一个大问题,现在 Video Diffusion 的成本是所有这些技术中最高的。因此,我认为 VideoDiffusion 是 2024 年一个非常重要的方向。我相信,只有当 Video Diffusion在效果足够好的同时,成本也大幅降低,每个 AI 的数字分身才真的能拥有自己的视频形象。

有趣的灵魂:个性

点击图片看原样大小图片

刚才我们讨论了好看的皮囊这一部分,包括怎么让 AI Agent 理解语音、理解视频,以及怎么让 AI Agent生成语音、生成视频。

好看的皮囊之外,同等重要的是有趣的灵魂。其实我觉得,有趣的灵魂是现有市场上的 AI Agent 存在更大差距的地方。

比如,就拿这个截图中 Janitor AI 的例子来说,我们当前市场上的主要 AI Agent 大部分是使用 GPT或者其他的开源模型套上一个壳。所谓套壳,就是定义一个人物设定以及编写一些样本对话,然后大模型基于这些人物设定和样本对话去生成内容。

但是,我们想,一个 prompt它总共也就几千字的内容,它怎么可能完整地刻画出一个人物的历史、个性、记忆和性格呢?这是非常困难的。

点击图片看原样大小图片

其实,除了基于 prompt 的方式之外,在构建人物个性方面我们还有一种更好的方法,就是基于微调的agent。比如说,我可以基于 Donald Trump 的三万条推特来训练一个数字化的Trump。这样的话,他说话的风格其实就能非常类似于他本人,也能非常了解他的历史和思维方式。

比如说,像图里面提到的三个问题:“你会不会想和 Elon Musk 交换人生?”、“你会不会竞选 2024 年的总统?” 以及“你的推特账号被封了以后你怎么想?”

左边的这张图是 Character AI的,这个说话的风格有点像特朗普,但并不是完全一样。而右边这张图则是我们基于自己的模型,然后采用微调的方法做的,它也是基于一个并不是特别大的开源模型微调出来的。但是他的说话内容可以看出非常的川普风,而且经常会提到一些有趣的故事。

点击图片看原样大小图片

我们刚才提到了基于微调和基于 prompt 的两种方案。那么,有人会问,如果把特朗普所有的三万条推特内容全部放到我们的prompt里面去,他说话是不是也能非常有特朗普的风格。答案是肯定的,这样的数字特朗普也能够了解到特朗普所有的历史。但问题是,这三万条推特可能会有上百万token 的量级,先不说现在的模型能不能支持上百万 token 的上下文,即使能够支持,成本也会非常高。

基于微调的 agent,则相当于说我仅用了 1% 的权重就能把特朗普的这些推特存下来。这里就有一个问题,那就是在保存这 1%的权重时,实际上也会消耗几百 MB 的内存,每次推理都需要加载和卸载。现在即使使用了一些优化方案,这 1%的权重的加载和卸载也会占掉整个推理过程 40% 左右的时间,意味着整个推理的成本大约增加了将近一倍。

在这里我们就要算一笔账了:基于 prompt 的方法和基于微调的方法哪种成本更低。基于 prompt,我们也可以把它的 KVcache 存下来,假设有一百万 token,对于 LLaMA-2 70B 这样的模型,算上默认的 GQA 优化,它的 KVcache 会高达 300 GB,这是一个非常恐怖的数字,比模型本身的 140 GB都大。那么我把它存下来每次加载消耗的时间也会非常恐怖。而且,输出每个 token所需的算力是跟上下文长度成正比的,如果不做优化,可以认为一百万 token 上下文的推理时间是 4K token 上下文推理时间的250 倍。

因此,很有可能基于微调的方法更划算一些。通俗的讲,把人物完整的历史放进 prompt里,就像把说明书完全摊开在桌面上,注意力机制每次都去线性翻找之前的所有内容,因此它的效率不可能非常高。而基于微调则可以看作是把信息记忆在大脑里。微调过程本身就是一个信息压缩的过程,把三万条推特里面零散的信息整理到大模型的权重里面,这样信息提取的效率就会高很多。

点击图片看原样大小图片

微调的背后更关键的还是数据。我知道知乎有一个很有名的 slogan,叫做有问题才会有答案。但是现在 AI Agents基本上要人工去造很多的问题和答案,为什么呢?

比如说我如果去爬一个 Wikipedia 页面,然后 Wikipedia里面的一长篇文章其实没办法直接用来做微调。它必须把它组成从多个角度去提问,然后把它组织成问题和答案对称的这样一种方式才能去做微调,那因此它就需要大量的员工,一个Agent 可能需要上千美金的成本才能做出来,但是如果说我们把这个流程自动化,一个 Agent可能只要几十美金的成本就能够做出来,其中就包含自动采集、清洗大量的数据等等。




还没有人评论



    还可输入500个字!
    ©2023 wailaike.net,all rights reserved
    0.017308950424194 is seconds