大家好,欢迎收看本期节目。今天我们要看看 Kimi K3 这个拥有 2.8 万亿参数的开源权重模型。它在开放领域竞技场中的智能表现堪比 Fable、GPT SOL 等顶级模型。看看这边的分数,在 BT、GPT SOL 和 Fable 5 的一些基准测试中,比如 Program Bench、S SW Marathon,以及 Code Bench 等,它的表现都非常靠前。

我非常喜欢这个模型,我想看看它在开源权重下的运行情况。我甚至都不知道我们该如何运行它,但这将是一次有趣的实验。不过从这个模型中,我有喜有忧:我喜欢它,但又不喜欢它,因为它让我变得非常、非常懒惰。我认为这个模型内置了一个测试框架(harness)。因此,它不会在任务完成时就结束回合,而是会主动重新检查所有内容、下载文件并继续执行。

通常第三方运行模型时会停止,但这里它不会停。它会一直自言自语,直到对结果 100% 满意为止。因此它生成的 token 数量是惊人的。但我一直在不停地使用它,我制作了几个生成作品,稍后会分享给你们。

我制作了《最终幻想 7》重制版、《荒野大镖客:救赎 2》重制版,还有 GTA 5。我甚至制作了一个人类面部模型,并让它将一个 transformers 模型移植到 MLX 上。它只是放手去做,我会在这里展示它是如何做到的。

还有一个有趣的地方是,在独立测试中它的智能水平也很高,击败了下一个最好的开源权重模型 GLM 5.2。如果你不确定它是否是开源权重的,他们明确说了:权重将于 7 月 27 日发布。所以很快了。

我就直接开始分享我们得到的内容,希望看看会发生什么。我先从基础的那个开始:WebGL 人类面部模型。这其实不是一个简单的演示。上次我用 Kimi K2.6 做这个时,它做出了长角的人等奇怪的东西。有点可疑,但看看这里它是如何推理处理这种情况的。

它先创建了一个演示,然后开始截图。这就是它的样子:最初如果你第一次提示,可能生成的是这样;然后它自动截取屏幕截图,将截图传回推理引擎,并据此进行改进。它不断截更多图来优化模型,甚至让它变成球状。

直到它对结果满意为止才停止。我认为这个模型的主要创新就是内置的测试框架,它不会停直到满意。如你所见,这是它制作的演示,我们得到了一个漂亮的面孔。也许头发渲染得有点问题——我记得上次用 Kimi K2.7 时它在头发上很吃力,做成了像 5G 信号塔一样的尖刺。但总体来说非常棒。

你可以改变肤色,甚至改变年龄,还能加上一点胡茬。所以这个模型具有某种潜力。其实我本应该从这里开始,然后基于此构建游戏,那样我就有一些照片级真实的模型了。但不管怎样,让我们进入 GTA 5 部分吧。

我在问它:也许我们可以自己制作 GTA 6,但你能做一个在网页浏览器中运行的、具有 AAA 级图形和正确模型的 GTA V 吗?你会看到我的提示词随着我玩弄这个模型变得越来越有野心,因为我变得兴奋起来。但看看它的表现——它有点啰嗦了(笑声)。不像 Claude 那么夸张,但它确实很话痨。

它说 GTA 5 花费了一个千人工作室数年时间和九位数预算。(笑声)兄弟,你不可能靠我做到。不过是的,它做了一些东西:建了一个城市,搞了些内容。这不是这里最好的演示——也许我的提示词太基础了。但让我还是展示一下它制作的东西吧。

你看这里,我们得到了一些乐高风格的人形模型。肯定没有做到照片级真实——甚至都没尝试过。也许我应该告诉它去试试。不过这些生成过程大约需要半小时时间。

我能抢劫那辆车吗?好的,让我们找到车去追它。那是我们的车了,我们可以抢。Shift 键是跑步,F 键是上车。让我们看看能否找到刚才超过我们的那辆车。它在哪里?等等,我看到一辆车穿过那座建筑了。也许我可以……哦,在那里!有一辆车。

让我们看看如果我撞上去会怎样——哦,那里还有另一辆车。实际上树木没有碰撞检测。让我们看看穿过建筑物的情况……哦,所以我确实会与建筑物发生碰撞。我不能说那话——我撞上了建筑,但建筑本身不会动。

好吧,那个人要去哪里?我们要出发了……哦,他消失了。好的,所以它有一些 bug。我想如果我重新提示一下,它会修复的。但它非常好——看看光照效果!看起来太美了。

有了合适的模型和再几轮迭代,我们实际上可能就能获得一款高质量的游戏。但这不是最好的演示——最佳生成作品马上就来。这是一个不错的:《荒野大镖客 2》重制版。我要展示我的提示词——它越来越有野心了:3D 照片级真实模型、骑马、第三人称射击、充满活力的西部城镇。

我想要一个戏剧性的故事线、开场过场动画和文字转语音功能。我正在制作一个 YouTube 视频,所以请拿出你的最佳作品。它说这很令人兴奋——它对这件事感到激动,这是好事。

现在它在再次生成内容。看看这个——它获得了一些技能,其中一个就是音频生成。所以我们将制作一些 AI 生成的 TTS 语音;另一个是图像生成功能,所以我们正在从这些内容中创建一些图片。这真的非常好。

它像之前一样继续构建世界,沿途不断截图以确认自己满意。Kimi 的一个巨大优势在于它是一个视觉模型——它实际上能看到并理解自己所看到的内容,拥有预览功能。你可以实际看到正在制作中的图像内容。

这是一个巨大的改进。现在我能看到一个教堂了,它对自己感到兴奋——这是应该的,很棒!那么让我们开始玩这个吧。这就是《荒野大镖客》,我要加上一些音频,因为效果会很好:“一个男人的过去总会追上他。在这里,他在马背上驰骋。”

“Cold Vance 骑着一匹疲惫的马进入 Mercy Falls,除了那把磨损的左轮手枪一无所有。Blackwater 帮派夺走了一切——他的土地、家人。”“看那张通缉令……未来。今天,他要夺回一切。”

欢迎来到Mercy Pulse,陌生人。试着活下去吧。不得不说,这段开场动画非常漂亮。看我在奔跑,我特别喜欢这个跑步的动画效果。虽然我没有手臂,这看起来有点傻气,但那里有一匹马。这里还有枪战环节,挺酷的。我要骑上那匹马了,看啊,我们可以骑马四处走动。让我试试能不能射杀几个坏人。

好吧,死人正在行走。结束了吗?还有一个敌人呢。让我下马亲自解决他。这游戏是免费的,刚才那段确实很酷。这是一个完整的关卡,我们进入了城镇。有一点值得注意:你可以真正骑上马匹并自由骑行,整个场景都供你探索与互动。即使我在这里重新开始游戏,看看这个菜单系统吧。也许你一开始没注意到,或者我初次加载时也没意识到它的精妙之处。这是一个非常引人入胜的游戏情境,结果确实令人惊艳。

制作这个成果花了不少时间,大概花了半小时到一小时不等,但它确实在做很酷的事情。现在我来展示一下我的使用情况:为了生成这些内容,我已经用掉了月度额度的12%。实际上我还有两个项目要展示:一个是《最终幻想7》,另一个是移植到MLX框架。后者可能花了五个小时,目前仍属进行中状态,因为它完成了一些功能后我还会继续添加新内容。接下来我们将深入体验《最终幻想7》,我的提示词正变得越来越有野心,这里还包含了文字转语音功能。

之前西部游戏中的配音听起来有点像90年代美国风格或《威尔与格蕾丝》里的声音,略显突兀,但能生成内容本身已经很棒了。这是一个原版《最终幻想7》风格的游戏克隆版,但采用了AAA级画质标准,我的目标确实很高。你可以看到它正在编写大型文件、构建世界并自主推进任务,还会截取屏幕截图来自我检查。让我们看看它从自身生成的截图中看到了什么:那是开场场景,看来它对效果很满意;接着是城镇画面,虽然有点昏暗,但它依然表示满意并继续工作。

问题在于纹理和整体色调过于黑暗,于是我告诉它“有点太黑了,请修复这些”。随后我检查发现它在编写Python代码来评估当前世界状态并自动修正。有趣的是,这一切都在Ubuntu沙箱环境中运行所有代码。稍后我们在做MLX移植时会详细讨论这一点,它甚至下载了MLX并尝试在Linux上运行,最终不得不启用CPU模式。总之,让我们开始游玩这款《最终幻想7》吧,这会是个好游戏。你听到背景音乐了吗?它深受原版瓦伦丁镇启发的氛围影响。

“哈文城,一颗建立在借来之光上的霓虹宝石。”也许这里还是有点暗,我本该提前修复的。“城市在星光中流血”,是啊,我真的应该提示反应堆少用黑色元素。“命运派来了一位英雄。”非常诗意。“期待中的发型……嗯,又一个夜晚。另一个空口袋。前士兵,现雇佣兵,职业团伙。”好的,我们需要找到蒂法和艾瑞斯。我想艾瑞斯就是那边那位?让我去跟她打个招呼吧。起初蒂法的形象看起来像个男人,我提示它修正了这一点。“报酬丰厚吗?需要我不死就行。这两者我要其一。”“典型的克劳德,他总在抱怨。”

“以太反应堆正在抽干星光。今晚我们将其关闭。跟上,卡尔。你的头发看起来像只受惊的巧克力蝴蝶结。”好的,出发吧!我们必须前往反应堆,它就在不远处。“就是那里。小心,保持警惕,安全无人机正在巡逻。”“星光在哭泣”,而你回应了召唤。“那把剑比我的命还长。和我的宠物们玩吧,我们在顶峰见。”现在进入战斗场景了,让我们看看它是否忠于原作。没错,我们可以攻击!太酷了,仅凭一个提示词就实现了这一切。“星光将光芒借给善良之心。”

“我是莱尔,谢谢。我是卡尔,我通常不获得资源……哦,多美妙啊。我把他拖过战区,为什么我感觉蒂法在吃醋?”好的,让我们继续前进。在这个场景中我们需要选择同行者:是选蒂法还是艾瑞斯?“一个喷泉,两个人,一朵花。花朵低语说他看起来比实际更善良。”“我见过他哭过粉笔灰,我就站在这里。你们都知道我在场。”那么我们要选谁呢?是蒂法还是艾瑞斯?必须做出选择。梅丽丝正在顶峰抽取反应堆能量,我也要去。“连花朵都有刺。”

好的,让我们结束这一切。这真是个好游戏!“你来了,小S?”“他拥有翅膀。”“星光只有一翼被夺走了。所以我要拿走你的……对于一个即将在哈文城失去头发的人来说,你话真多。”“为了每一颗被你偷走的星光。我的星啊,借我们你的生命吧!终结这一切。”好的,让我们使用技能“Braver”。很好的一招。技能B Rush,再放一个Star Pack……我想我们击败他了。“再见了,萨菲罗斯。”

现在我正在给出一些反馈。只是基础内容:我说你能修复反应堆吗?它看起来真的很黑;另外过场动画中镜头不要指向背后,而是对准角色脸部。这就是使用Kimi K3时的体验:我输入提示词后,K3图标出现并开始推理当前状况。它会像之前一样持续进行工具调用,多次编辑文件,拥有内置的测试框架机制。我会让它自行处理并展示一些Python编码过程。我们正在尝试移植最新发布的Inkling模型,该模型已在Hugging Face的transformers库中可用。我基本复制了他们的transformers代码,并尝试将其移植到MLX框架上,但问题是当前输出全是乱码。当我输入“你好”时,它只会生成随机无意义的词汇,说明某些关键部分缺失。

是推理代码导致它选择了错误的令牌,我自己实在无法定位问题所在。这纯粹就是体力活。我甚至用 Gemini Pro 和 Claude Sonnet Max 跑了完全相同的提示词,它们也没能找出原因。于是,我让 Kimi 放手去做。它开始读取文件,尝试理清状况,琢磨到底发生了什么,甚至试图从互联网上下载东西。系统提示它被拦截了,但它绕过了限制,用其他方式完成了下载。看看这些用量记录吧!

它指出问题出在导出环节,发现了一个小小的索引错误。于是说修复方法是重新导出。我照做后重新导出了,但输出依然是乱码。所以那不是原因。接着我又让它继续尝试,搜索互联网,试图找出症结所在。答案其实非常隐蔽,我不知道这算不算狡猾,就交给你们判断吧。它告诉我,它已经检查了所有地方,并声称问题在于它是自由比特(free bits)格式。也就是量化强度太高了,这才是导致问题的根源。

现在,如果我们对比它实际做的操作和它所声称的内容呢?这里展示的是它所做的一处编辑。它添加了一个谓词,确保 ln head 不会被量化。这很好。但通常来说,那并不是真正的 bug。真正的 bug 其实是这个:它实际上修复了那个错误,但它自己并不知道已经修好了。这就是真正的 bug所在。非常简单:当我们调用 next 时,我们有 self。这段代码块中的这一行原本工作正常,除了这个 next 函数调用外,它从未带有逗号零。

于是它添加了一个逗号零,这就修复了乱码问题,我们终于能够进行推理了。所以现在当你输入“你好”时,它真的会回应你并与你交谈,表现非常好。但还有另一个问题:它的运行速度只有每秒 2.5 个令牌。于是我说,你知道吗,你能让它变快吗?它便着手尝试编译并添加了 compile 指令。它以一种非标准的方式实现了,甚至添加了一个旋转 KV cache(键值缓存)。

这减少了缓存大小。也许它以为我要推理 50,000 个令牌之类的东西,而我只是在推理“你好”而已。那根本不算什么负载。所以我告诉它:“嘿,别那么做,因为这不属于原始规范的一部分。我们不要过度优化任何东西。”我给出了这个指令后,它没能做到。但请看看接下来发生了什么。我发现了一个叫 pipe network 的开发者项目。他们已经有了一个在 MLX 上原生运行的移植版本。

于是我说:“嘿,这是 GitHub 链接。你去看看,对比一下我们的代码相比它的代码缺少了什么?”我还说:“我预期它至少能达到每秒 20 个令牌的速度。”它开始仔细查看,发现我们编写的代码和他们写的代码之间存在差异。它指出我正在使用手动注意力机制(manual attention),而不是融合 STPA。这是我犯的一个新手错误,而这实际上让它运行得更快了。所以我们取得了一些进展。

于是我对它更有野心一些。我说:“你知道吗?有个叫 MLX VLM 的项目。”我问:“你能让它支持视觉和音频功能吗?”这里以 Quen 3(Qwen 3)作为参考基准。我于是着手进行,下载了相关资源并将其移植以支持视觉功能。最初它并没有正常工作,我们需要再进行几次提示才能让它进入更好的状态。只是缺少了一些东西。我想看看它能否做到,但它最终成功完成了。

不过随后我们发现还有一个 bug:它实际上并没有正确“看到”图像,而是将其视为一种扭曲的、高度像素化的失真图像。所以我告诉它:“嘿,图像是失真的。”它给我提供了一段代码,让我在正在使用的模型上运行以验证一切是否正常。我运行后,结果显示一切都正常。接着它说问题在于我正在使用三位量化(three-bit quantization)。你不能自由比特量化。

那位在 MLX 上发布版本的开发者,也就是 pipe network 团队的人说自由比特不起作用或类似的话。这就是它一直在坚持的观点。我告诉它:“不,伙计,其他模型在自由比特上并没有遇到困难。一切都很好。”但它就是卡在那个想法里出不来,一直纠结于自由比特的问题无法自拔。我说:“好吧,算了。那你能修复音频功能吗?”因为音频也没有工作正常。它回答:“不,不,这完全 100% 与量化有关。”

但问题其实并不在于量化。那只是一个非常微小的 bug 修复,就像之前那个简单的逗号零一样简单,只是代码里的一个小细节。但它拒绝接受这个观点,一直死守在那个单一线索上。我想也许尽管它表现很好,但在完成某项成就后重新开始一个新会话可能总是更好的选择。可能是因为我在开始时遇到了一个问题,导致它一直陷入必须处理自由比特问题的思维定势中。

不过总体而言,多亏了它的帮助——绝对要感谢它的协助——我们最终成功让它运行起来了。我们可以看到这里正在推理“姜黄色虎斑猫”,它甚至还能进行音频转录。所以说,这确实需要额外的一些工作才能搞定。因此我还没有完全失业,这可能算是好事吧。虽然还没达到完美状态,但 99% 的工作已经被自动化了。这令人兴奋!

即使是我们制作的那些游戏,它的表现也非常、非常好。干得漂亮!我想我的下一步计划是让它做一个游戏引擎或关卡编辑器,这样我们就能在它创建的 3D 内容基础上进行构建,而不是每次都让它从零开始创建所有东西。那会非常酷,真的很有趣。所以你们觉得 Kimi K3 即将进入开源界这件事怎么样?我完全不知道我们将如何运行它。我非常期待看到它实际运行的情况。

比如,它是内置了 harness(测试框架/执行外壳)吗?我怀疑是这样,因为看起来它一直在这样做:在它对结果满意之前不会结束回合。或者这只是他们在模型之上添加的某种魔法?我们将看看能把它运行得有多好。我不知道我们能否在本地运行它,但很高兴看到它已经发布出来了。所以请告诉我你们对 Kimi K3 的看法。希望各位觉得这个视频有用并享受了节目内容。

作为奖励,我这里还有一个彩蛋给大家展示。我忘记在视频中间展示了,所以我会直接在最后展示它。我还决定制作一款游戏,《洛奇》(Rocky)的 3D 冒险版本。它将包含主题、音乐、对话脚本、过场动画以及动作,力求逼真……

……照片式的。我在这上面变得太有野心了,还想搞出真正的游戏玩法,一直推进到那场大型拳击比赛。那我们就看看它会生成什么吧。“41场职业赛,马科。”

“我见过41个男人走上来,他们都以为自己是下一个。但他们没有做到,全都提前回家了。”

“他们觉得我不够格吗?小子,我只想要自由。金斯敦的人们一小时前还在说……”

“那就是他们的本质。”

“一击必杀。这就是我唯一向这座城市要求的。”

我特别喜欢他们那种脸埋在身体里的样子。不过,确实有个很戏剧化的开场白。这不太像冒险游戏,感觉我们现在是在玩《奔跑吧》(Running Man)。我想洛克现在在码头工作。我超喜欢这段音乐。

他居然能跳起来,看来接下来会是《神庙逃亡》(Temple Run)那种风格。还是我们在GTA里见过的那座城市,所以它复用了类似的美术风格。这里有一些小障碍,我不确定是跳过去还是躲开。让我先试着避开吧。

好的,我觉得我快到终点了。我会赢吗?“是的,孩子。” “我们做到了,阿德里安!”

五周的时间。五个星期的凌晨四点闹钟、冰冷的码头,还有一座记住了他名字的城市。“金斯敦出拳像卡车一样重,但他开车也像卡车。”

当他把我逼到角落时,他们给了他三样他从未训练过的东西:你的下巴、左勾拳,以及当他意识到你享受这一切时脸上的神情。“沙袋不喜欢小孩。”

所以现在我们得进行一些打沙袋的训练。哦,这看起来就像《吉他英雄》(Guitar Hero)。我们出刺拳就是按按键。J、K、J、L。好的,完美!

我们到了。我们现在进入了大比赛环节,也就是最终决战。这真的是层层递进的游戏设计啊。不仅仅是《神庙逃亡》,还有打沙袋环节,现在这是大擂台了。“你指望用一个提示词就做出这些吗?”

“一万四千人。看看他!看他的膝盖!” “我有40次KO,小子。我不是那种靠名气的冠军,我是个实干家。”

非常、非常有诗意。我希望他们能配上TTS语音朗读这些台词,不过是的,我们要和阿波罗·克里德(Apollo Creed)打一场了。

那就来吧,我们得先碰拳致意。好的,我们要开打了!我想接下来又是《吉他英雄》模式了。冲啊!

好吧,我就是在疯狂乱按按键(mashing)。哦,我要赢了。我就在瞎按,但我居然要赢了?我不知道怎么回事。嘿!我把他打倒了!

好的,我要赢下这场比赛了。(吸气声)我不太确定到底发生了什么。并没有真的出拳啊,我只是在猛按键盘,然后我又把他打倒了!

观众席里居然有真实的人群。就现状而言,这已经可以算是一个不错的拳击游戏了。当然,显然需要让出拳动作连接起来,但除此之外……我赢了!

“我们做到了。结束了。” “40次KO胜利也无法阻止码头九号的男人成为冠军。”

“通过击倒获胜,新的世界统一拳王——我们!” “阿德里安,我的朋友……”

[音乐]