在 2023 年 8 月,我写下自己想在 A.I. 里继续做的 3 个关键词:多模态、开源和生成式智能体。“The Sound of Stories” demo 就是一个例子,展示我如何做出一种互动式、受叙事约束的双语讲故事体验,而且会根据用户调整内容(我也试过把用户语音输入转成鼓声,以及生成封面图,但还没有把它们接入线上环境),界面则是大家熟到不能再熟的 WhatsApp。这发生在 Meta AI 之前;如果你看界面的演变(Streamlit -> Chainlit -> WhatsApp),最后选 WhatsApp 基本上一方面是因为看到人们在其他选项上挣扎,另一方面也纯粹是我自己懒。
我当时心里有这些设计约束:
-
故事应该围绕 “The Boy and the Drum”,途中会遇到不同的人,每一轮都会交换物品;整体叙事需要守住这个骨架
-
同时本地化市场名字、交换的食物等细节
-
并且始终在合适的时机邀请用户输入,让用户参与进来
-
它应该有合适的开始和结束
-
并且能合逻辑地处理很疯的用户回复(比如它怎样回应用户建议去卖 Ray-ban Meta glasses)
Demo: The Sound of Stories
Performing Arts x Tech Lab 是 2023 年 8 月开始的。一开始我做了很多提示工程和 hack,确保每一轮只生成合适的故事片段,然后把用户回复纳入下一段故事片段的生成,同时还要努力在一定轮数内结束故事。这并不理想,因为它对无厘头的用户输入不够稳健。幸好,你所需要的只是更多智能。
A.I. 进步的故事一直都是:我们需要从未来出发,因为模型会变得更聪明、更便宜、更快。事实上,它们已经如此。我在这个项目里“解雇”了 GPT-4 和 Kimi,并在 3 月 19 日听到 Hugh 推荐、试用了一阵之后,直接换成 Claude 3 Opus。我们的最终公开 demo 是 4 月 5 日。
注:音频生成还没有优化,所以 demo 里大概要等约 15 秒才会生成并播放;这种延迟在电话版本中已经处理,你可以在下面读到。
为什么这个项目重要?
从讲故事的角度看,这是现代版 choose-your-own-adventure,本来就很好玩。这里的心得可以用于重新想象角色扮演游戏。它的双语性质(而且没有理由不能多语)提高了触达,也能进入新的受众。在 The Esplanade 的公开演示上,有个人问我要多久才能支持更多故事,这个问题让我困惑。我意识到我其实没有真正理解这个问题,因为作为构建者,我很难从完全没接触过的人角度看它;但简短答案是,我可以在几秒甚至几毫秒内把它扩展到任意数量的故事。大家缺失的上下文是:大语言模型 (LLMs) 已经强大到,在预训练数据摄入的知识里,至少捕获了那么多文化。我的意思是,故事可以更新地点和物品来适应用户资料,比如 demo 里一个声称来自韩国的用户,妈妈就会去 Dongdaemun Market。A.I. 无法理解你的独特上下文或词汇,这是一个 MYTH。我们其实可以。通常更准确的说法是,很多组织可能没有把这些数据数字化,或者缺乏在自己数据集上优化的能力。
我也从架构角度看这个:把内容约束在某个语料库中,接收用户输入,然后基于该输入生成回复,这个基本思路本质上就是一个“设计模式”,可以广泛套到面试准备机器人、客户支持智能体等等场景。
在我们的现场 demo 和展览期间,观众也可以拨打我设置的电话号码(是的,真的是电话号码),跟 A.I. Kamini 说话,让她通过电话给你讲故事。它和文字聊天是类似体验,只是你完全处在语音领域中,而且由于优化,语音输出的流式播放实际上好多了。它感觉像真正的电话对话,尽管系统智能低于 Claude 3 Opus。
接下来?
我人在中国时把它部署在 GCP 上,总体看来它按预期完成了工作,没有需要修的 bug;它的问题或限制都是已知问题,我没有处理是因为,呃,时间?所以 Lab 之后可能要修的地方包括用 WebSockets 流式传输音频回复来加速,以及处理多个用户输入,而不是只期待用户回一个字符串。这些会进入我的 backlog。除此之外,我也热切等待更好的普通话语音克隆技术,如果有人有比 Elevenlabs 更好的东西可以提供。
现在我有了可运行的代码库,我想部署并服务生成式智能体。我想在合适的节点恰当地使用 LLMs 来自动化工作流,让这条流水线的输出产生一个行动,改变世界的状态。它可以简单到为我自己的视频做自动转录、翻译和字幕生成,并最终上传;也可以更复杂,比如一个智能体接收你给它的任何非结构化数据,判断应该使用的模式定义,然后从非结构化数据输出结构化数据。我认为后者会适合想从实地录音提取数据的研究人员、想丰富馆藏数据并把整件事自动化的 GLAM 机构(也就是不仅在图像上生成丰富嵌入,还要在视频、信件等材料上生成转录、文本和相关元数据),甚至也适合我本来应该在做的考试和面试准备机器人。
在重新思考软件如何被构建,以及 A.I. 原生体验可以有多强大这件事上,我们仍处在非常早期。它们能让人多么高效。它们会变得多么可扩展、多么可堆叠。使用任何不能通过 API 与其他软件良好衔接的解决方案都应该算犯罪(除非你真的、真的不得不用)。
请继续关注我的更新!
最初发表于 PubPub:erniesg.pubpub.org/pub/xlkdc79p。