Gemma 4 将强大的多模态 AI 直接引入 Android 设备。在本讲座中,我们将回顾 Gemma 如何演变为一个专为高效而生的模型家族,并探索边缘优化的 E2B 和 E4B 模型在设备端能实现哪些功能,从视觉和音频理解到智能体函数调用,一应俱全。我们将介绍实现这种效率背后的架构,包括逐层嵌入 (PLE),并展示 Gemma 和 Gemini Nano 如何通过 AICore 协同工作。您将了解量化感知训练 (QAT) 如何在 1.1-3.5 GB RAM 占用空间内保持模型能力,以及多词元预测 (MTP) 如何将解码速度提高 1.5-3 倍,从而实现快速响应的实时体验。
转写文稿
Sara Smoot
大家好,欢迎参加本次演讲。
我叫 Sara,是 Gemma 模型方面的工程主管。
今天,我将向大家介绍我们的模型。
我将介绍一些功能,以及我们如何考虑针对移动设备进行设计。
我将介绍我们内置于模型中的技术,这些技术可让模型在移动设备上高效运行。
我将介绍如何访问该模型,以及我们如何与 AICore 集成。
最后,我将通过一些演示来展示该模型,让大家了解该模型的功能和用途。
因此,为了了解未来的发展方向,我们需要先了解过去的发展历程。
我们在 2024 年发布了 Gemma 1。
我们推出了 20 亿和 70 亿参数的模型,仅支持文本,与当时的其他模型相比,规模非常小。
在 Gemma 1 之后,我们推出了 Gemma 2,它引入了一些额外的功能。
我们引入了编码。
我们还推出了一个大型模型,即 27B,它真正扩展了 Gemma 系列的功能。
不久后,Gemma 3 也正式发布。
同样,我们添加了更多功能、多模态,然后推出了一个更小的模型,即一个 2.7 亿参数的模型,因为我们意识到更小的模型确实有很多应用场景,我们正在努力帮助实现尽可能多的在线移动应用场景。
因此,随着每个版本的发布,我们的能力都在不断提升,这是我们有意为之。
我们正在为单设备硬件进行设计,包括手机、笔记本电脑、GPU 等。我们的目标不是打造更大的模型,尽管我们确实将参数规模提升到了 12B 到 27B,但我们的目标是在每次迭代中,在相同的硬件资源限制下,塞入更多功能,因为我们希望保持在设备端运行,保持在本地运行。
因此,我们通过提高效率来实现这一目标。
我将重点介绍我们为 Gemma 4 所做的工作以及具体实现方式。
我们推出了 E2B(我稍后会解释“E”的含义)、E4B、12B 统一模型(我会解释为什么推出这个模型),以及 MoE 模型。
所有这些都是为了帮助证明效率,并让开发者在构建应用和功能时拥有更大的灵活性。
我们来更仔细地了解一下这些功能,您可以在这里看到我们不断添加的功能。
我想指出两点,首先是上下文长度。
我们增加了上下文长度,使其比之前的 Gemma 版本长得多。
Gemma 4 的上下文长度最高可达 12.8 万个 token。
较大的模型最多可达 256。
需要注意的是,ML Kit 会对上下文长度设置上限,因此在期望以 128k 上下文长度发布应用之前,请务必先检查您的预算。
但这个长度应该足以让您阅读长文档、进行一些扩展推理、函数调用,并且有足够的预算来处理多模态任务,使用视觉和音频功能。
视频是我们在 Gemma 3n 中新增的一项功能,在 Gemma 4 中,我们进一步强化了这项功能。
现在,我们提供多语言支持。
我们仍在训练多种语言,因此您既有内置语言支持,也有预训练支持。
所有这些都将采用全新的 Apache 2 许可,这让我们感到非常兴奋,因为这将为您提供更大的灵活性,让您能够利用它构建更多内容,同时还能减少很多阻碍。
构建和下载模型的过程更加顺畅。
Sara Smoot
好的,那么视觉,我们如何处理视觉?
具体到 Gemma 4,它的视觉功能支持可变宽高比。
这样一来,系统会获取图片,并保留模型的实际宽高比,而不是进行一些挤压,将其挤压成一个别扭的正方形。
这意味着您的文字和对象不会失真。
这实际上可以显著提升模型的能力。
形状保持不变,OCR 借助这种可变宽高比得到了大幅改进。
视觉功能还能读取图表、电子表格和图形。
它还可以根据视觉提示进行翻译,因此您可以拍摄文字照片,它就能为您翻译这些文字。
它还能对物理世界进行推理。
它可以查看图片,理解事物的位置,理解图片中的内容。
它能做很多事情。
Gemma 模型还有一个鲜为人知的功能,那就是可以设置视觉 token 预算。
所以,现在,我的意思是,检查并查看 ML Toolkit 中的内容,但您有很大的范围。
如果你想将更多算力和能量用于高分辨率图片理解,可以进行相应设置。
如果您不想真正利用这种应用场景,可以大幅减少图片 token 预算,并回收大量算力,用于文本应用的模型计算周期。
音频对我们来说是一种相对较新的模式。
我们首次在 Gemma 3n 中引入了该技术。
现在,我们在 Gemma 4 中全面采用了这一技术。
音频功能仅在我们的最小模型中提供:E2B、E4B 和 12B 模型。
它会完全根据音频文件进行转写。
它可以翻译语音。
它开箱即用,支持 35 种以上的语言。
我们还使用 140 多种语言对其进行了预训练,因此,如果您想使用 35 种语言之外的语言,应该能够进行微调,并为不支持开箱即用的语言获得非常好的支持。
我们添加了智能体推理功能。
这也是 Gemma 4 的新特性。
它会制定计划。
它会执行多步操作。
它会使用工具。
它会严格遵循指令。
它会返回结构化 JSON。
它能完成你对智能体模型的所有期待。
我建议您观看“确保您使用的是…”,如果您正在使用…如果您没有使用 ML Toolkit,而是自行操作,请务必注意对话模板。
聊天模板很棘手。
需要小心处理。
如果您使用的是机器学习工具包,所有这些操作都会自动完成。
最后,Gemma 依然具备出色的文本理解能力。
现在,借助更长的上下文,我们能够分析代码、长文档和翻译。
事实上,Android Studio 现已支持在离线模式下使用 Gemma 4 的编码功能。
因此,如果您想离线使用 Android Studio,它将由 Gemma 4 提供支持,帮助您完成编码任务。
关键在于:E2B 和 E4B 足够小,可以在手机上顺利运行。
因此,它在极小的体积内集成了强大的功能。
这实际上是一个非常困难的工程挑战,因此 Gemma 团队对此感到非常自豪。
以下是几个示例,展示了其功能。
左侧显示,模型能够找到笔记本电脑并返回其所在位置的坐标。
然后,应用就能绘制指针,显示笔记本电脑的位置。
在中间,模型能够识别对象,然后在这些对象周围绘制边界框。
这有一些有趣的应用:对象检测、对象避让。
这是一项非常实用的功能。
右侧展示了模型如何读取文本。
因此,这句话的意思是“小心,有猫”。
它还能理解图片中的内容,看到这只猫摆出了一个非常滑稽的姿势,并能翻译和指出下面的文字“可能会发生一些事情”是一个笑点。
我觉得这挺可爱的。
因此,它能识别指向、执行对象检测、执行 OCR 和翻译,而无需任何特殊的视觉流水线。
好的,我们来看看评估数据。
展示能力固然重要,但很多人在看到这些时,我认为他们能从中感受到模型的强大实力。
从最后两列可以看出,E2B 在推理、编码和智能体任务上的表现超越了规模大得多的 Gemma 3 27B。
我们来看看 LiveCodeBench。
Gemma 4 的得分为 44,而 Gemma 3 27B 的得分为 29。
AIME 也高得多。
Tau2 是一种智能体评估,其得分也高得多,展现出强大的实力。
如果参数规模再增加一点,我们的 E4B 模型在所有基准测试中都稳稳超越了 27B 模型。
因此,从 Gemma 3 到 Gemma 4,我们在相同数量的参数中融入了更多功能。
Sara Smoot
那么,我们该如何做到这一点呢?
在不增加模型规模的情况下提升其能力,是一个极具挑战性的难题。
如果只看硬件,手机的内存要小得多。
我的意思是,我们看到的是 12 到 16 GB,而服务器上可能有 80 GB 左右。
带宽也少得多:50 到 80 GB,而服务器则可以达到太字节。
此外,还有严重的电力限制。
因此,在运行模型时,我们必须牢记所有这些因素。
接下来,我将介绍的每种技术都针对这些限制,有助于使模型更适合在移动硬件上运行。
首先,我们不会为每种尺寸都设计一个架构。
每种模型大小都有各自独立的架构。
因此,我们的 E2B、E4B 具有一些特殊元素,我将在接下来的演讲中主要关注这些元素,但我认为,了解我们的 12B 模型没有视觉编码器会很有帮助。
因此,在此模型中,我们移除了视觉编码器,以简化部署并最大限度地减少模型所需的参数数量。
该版本通常针对笔记本电脑硬件。
我们的大型模型旨在展示最强大的功能。
这些模型既有全密集型,也有混合专家型。
混合专家模型也可以在笔记本电脑上运行,我们之所以构建该模型,是因为专家架构可以降低延迟。
因此,在接下来的演讲中,我将重点介绍移动模型,即 E2B 和 E4B,并讨论我们为使它们在手机上顺畅运行而采取的措施。
好,这就是“E”的来源,即 Per-Layer Embeddings(逐层嵌入)。
这是我们采用的一项有趣技术,也是我们添加到模型中的一项创新技术。
如果思考一下模型的运作方式,就会发现模型需要更多参数才能变得更智能。
我们正在努力提高参数效率,但一般来说,要想让模型更出色,就需要更多参数。
PLE 的做法是:“好吧,我们需要更多参数。”
但我们没有直接向模型添加更多参数,而是增加了一个额外的嵌入表。
系统会为每一层读取此嵌入表。
因此,您可以这样做:一旦您知道模型需要哪些 token,就可以拉取给定输入序列所需的逐层嵌入,然后仅将这些嵌入加载到模型中。
因此,它能为您提供一个有效的 20 亿参数模型,尽管参数数量本身要大得多。
这就是为什么我们称其为有效参数量 20 亿,因为只有这 20 亿个参数会被加载到内存中。
嵌入表通常保存在闪存中,而不是 RAM 中。
因此,您确实限制了带宽,因为您不必传输那么多参数,但您仍然可以获得更大模型的完整模型功能。
此外,它在设备上占用的 RAM 也更少。
接下来,我们添加了一个起草者模型。
我们为 Gemma 使用的起草者模型是多词元预测模型。
这是一种推测解码。
这样一来,它在每次推理中预测的 token 数量就会比一般的自回归模型更多。
因此,典型的自回归模型不会一次只生成一个 token,而是必须在每个 token 上遍历整个模型。
这些起草者(即 MTP)的作用是,一次预测三到四个词元,然后我们使用主模型来验证这些词元。
如果这些词元被接受,就会被使用,这样我们通常可以在每次传递中获得两、三、四个词元,而不是一次只获得一个词元。
这是一种常见技术。
Drafter 模型已经推出。
我们为 Gemma 做的不同且特别的事情是,我们共享了基础模型的 KV 缓存。
因此,对于 E2B,我们会执行完整的预填充,构建缓存,然后起草者模型会使用该 KV 缓存。
因此,对于包含 100 个词元的提示,您实际上可以节省大约 130 毫秒的时间,因为您无需为起草者模型重新生成预填充。
因此,我们的起草者模型比其他起草者模型快大约 30 到 40 倍。
从这些数字可以看出,使用草稿模型后,速度得到了提升。
我们的接受率比大多数起草者模型高 40% 到 60%。
使用草稿模型后,解码延迟时间降低了 40%,能耗也降低了 30% 到 40%。
因此,您可以获得更快的响应、更长的电池续航时间,并且无需更改代码。
这是一个相当简单且支持良好的工具。
Sara Smoot
我们的下一项创新是量化。
通常,量化也不是一项新技术,但我们对移动模型格外关注,以确保量化技术能够与移动硬件完美配合。
对于 QAT 模型,我们有几点考虑。
第一种是 QAT,即量化感知训练。
这意味着,在训练时,我们会考虑并认识到我们将进行量化。
这样有助于模型理解参数将被分桶,并有助于保持质量。
这也有助于保持质量,通常,我们可以将模型大小缩减到原来的几分之一。
因此,如果从 16 位模型转换为 4 位模型,并保留所有质量,我们确实节省了大量内存。
因此,E2B 有两种不同的量化版本。
我们有 Q4_0 格式。
这是一种更通用的量化。
此设置可自定义。
这与其他量化库配合得非常好。
您可以尝试不同的量化方法,找到可能适合您用例的量化方法。
我们还采用了一种非常特殊的量化方法,我们称之为移动量化,这种方法在量化方面非常激进,我们已经做了大量研究来优化这种方法。
在大多数运行时中,它并不受支持,但在机器学习套件和 Android Studio 中,它受支持,因此您可以使用它。
您可以在该地区使用。
我们内置了一些创新技术:我们使用静态激活量化。
因此,在进行量化时,通常情况下,如果您要进行动态范围激活,则需要实时计算范围,然后使用该范围进行量化。
静态范围量化,我们已经为您完成了,因此您无需预计算范围,从而节省了时间。
我们还采用了逐通道量化。
我们以通道方式对模型进行结构化和压缩,这种方式非常适合大多数移动硬件。
我们采用了针对性 2 位量化。
因此,2 位量化通常会造成很大的损失。
PTQ 很难实现。
我们进行了研究,对模型有了足够深入的了解,知道哪些参数可以压缩到 2 位,并通过量化感知训练取得了良好效果。
这样可以节省大量存储空间,同时几乎不会影响质量。
我们的特殊量化模型大小不到 1 GB,比我们现有的 4 位量化模型还要小得多。
我们在自定义量化中内置的另一项功能是嵌入和 KV 缓存量化。
有很多方法可以做到这两点。
我们已经做过研究,发现这种方式与我们的模型非常契合。
我们已将这些内容整合到这些检查点中。
因此,所有这些措施都会显著减少活跃内存。
这样可以节省大量带宽,因为无需来回移动参数。
而且,你还可以管理和保留长对话等内容,而无需担心空间不足。
Sara Smoot
好的,我们通过 AICore 进行集成。
因此,您通过 AICore 获得的是 Gemini Nano 4 模型。
Gemini Nano 4 是通过 AICore 构建和运行的 Gemma。
AICore 可为您提供一些实用的功能。
这是最省心的路径,实际上,我将很快讨论另一条路径。
另一条路径是使用 LiteRT,这是一条更具自定义性、更需要手动操作的路径。
如果您要采用此方式,模型将与您的应用捆绑在一起。
它不会使用托管在设备上的共享模型。
因此,您必须注意内存。
您需要注意自己的能耗。
您必须更加主动地管理手机上的资源。
但您确实可以获得完全控制权。
您可以将微调与 LiteRT 结合使用,从而获得更多自定义选项。
如果您通过 AICore 访问,则可以使用机器学习工具包 API,这是最省心的方法。
使用此功能时,您会获得我提到的所有功能,逐层嵌入会得到妥善处理,并且运行时支持将参数(包括嵌入参数)存储在 RAM 之外。
它已内置 MTP,因此会自动运行。
它还使用了我们的移动量化。
并且它在专为托管和配合该量化而设计的运行时上运行。
因此,它实际上可以根据需要以 2 位精度运行和执行操作,从而节省资源,使其非常高效。
如果您想深入了解,可以观看另外两场已经或即将举行的演讲。
David 的机器学习套件讲座涵盖了 Gemini Nano 4 路径、如何使用该模型以及如何通过机器学习套件使用该模型,而 Chintan 和 Fergus 的 LiteRT 讲座将涵盖如何使用 LiteRT 以及如何使用 LiteRT 进行开发。
因此,Gemma 的请求流程如下所示。
有一个 API Surface 会进行一些输入处理,这些都是内置的。
输入处理的一部分是安全信号。
AICore 具有一些内置安全功能。
它会检查我们是否在模型中内置了大量安全机制。
这是移动应用的一层额外安全保障。
它会先经过功能配置,然后经过我们的设备端运行时。
在输出端,它还会再次检查安全性。
它会检查输出信号,确保生成安全的输出。
同样,这是我们在模型中内置的安全措施之外,额外增加的一层安全保障。
它还会执行更新,并在应用之间共享。
因此,如果您要构建多个应用,或者不想管理捆绑模型,这确实是一个很好的方法,而且您将获得许多开箱即用的内置功能。
Sara Smoot
好的,接下来我将进入演示环节。
这是一个语音助理。
我将在笔记本电脑上进行演示。
请注意,它完全在本地运行,也就是在设备上运行。
它使用 VAD 进行级联。
它会先经过 STT,然后进入 Gemma,最后经过 TTS(即文字转语音模型)。
它正在流式传输,并且也在 E2B 模型上运行。
这是在笔记本电脑上运行的模型,但它与在手机上运行的模型完全相同。
所有这些都可以在手机上完成。
此特定演示是使用 LiteRT 构建的。
应该也可以使用机器学习套件进行构建。
请注意延迟时间,因为没有服务器往返通信,并观察它如何处理中断。
Gemma,简单介绍一下你自己吧。
我是 Gemma 4,由 Google DeepMind 开发的大语言模型。
我通过处理文本和图片来提供信息和完成任务。
很好
你能给我简单介绍一下莎士比亚吗?
威廉·莎士比亚是英国剧作家和诗人,被公认为英语文学史上最伟大的作家。
等等。
你知道吗?
我真的很想了解太阳系。
能跟我说说吗?
太阳系由太阳和所有受其引力束缚的天体组成,包括八大行星、矮行星、卫星、小行星和彗星。
太棒了。
你能解释一下黑洞的工作原理吗?
当大质量恒星在自身重力作用下坍缩时,就会形成黑洞,从而产生一个重力极强的时空区域,任何东西(甚至光)都无法逃脱。
太酷了。
谢谢。
不客气。
您还有其他问题需要我为您解答吗?
好了
还有音频助理。
好的,接下来。
这将是一个使用视频功能的本地助理。
它完全离线,为了真正说明这一点,演示是在露营时进行的,据说是在野外。
您需要注意,此模型基于 E4B 模型构建。
它能自然地对话。
我们要向它展示如何执行操作。
它在后台使用工具调用,能够访问手机上的不同内容。
而且非常有趣。
Hey Gemma,我们现在连上网络了吗?
没有,我们现在没有连接到互联网。
此警告是什么意思?
那是西班牙语。
那个标志是关于美洲狮栖息地的警告。
该通知指出,美洲狮是当地环境的一部分,如果您遇到美洲狮,应保持谨慎。
这个函数的导数是什么?
x 的平方加 7x 加 10 的导数是 2x 加 7。
太有趣了。
啊,你好。
Cindy,你好。
Gemma,今晚的群组徒步活动是什么时候?
你的群组徒步活动安排在下午 6:00。
今天已经实现
这是一只美洲狮吗?
不,那是一只狗。
真乖
Sara Smoot
好了,开始构建吧。
这些是链接,实际上是检查点的链接。
如果您想直接查看检查点和模型代码,这些内容都已公开。
您可以使用机器学习,例如 Gemma、Gemini Nano 4、机器学习套件。
检查点位于 Hugging Face 上,我们的代码位于 Transformers 代码库中。
您可以去看看我们做了什么。
您也可以从 Kaggle 获取检查点。
再次提醒您,如果您想详细了解机器学习套件,请观看 David 的机器学习套件演讲。
稍后,Chintan 和 Fergus 还会带来 LiteRT 演示。
如果您想了解如何通过 LiteRT 在应用中访问和使用模型。
谢谢。
我非常期待看到大家将要构建的内容。