如何在Google AI Studio上部署高性能模型Gemma 3n?

如何在Google AI Studio上部署高性能模型Gemma 3n?

Gemma 3 在单 GPU 上运行强大的人工智能,显示出令人印象深刻的效率。这个新版本为移动设备和边缘设备带来了最先进的人工智能技术,在提供快速、多模式性能的同时,使用了最少的内存。在本文中,我们将探讨是什么让 Gemma 3n 如此强大,它是如何通过每层嵌入(PLE)和 MatFormer 架构等创新技术在引擎盖下工作的,以及如何使用 Google AI Studio 轻松访问 Gemma 3n。如果您是一位希望构建快速、智能和轻量级人工智能应用程序的开发人员,那么这就是您的起点。

什么是Gemma 3n?

Gemma 3 向我们展示了强大的人工智能模型可以高效地运行,即使是在单个 GPU 上也是如此,同时在聊天机器人 Elo 分数方面,它的性能超过了 DeepSeek V3 等大型模型,而计算量却大大减少。现在,谷歌又进一步推出了 Gemma 3n,旨在为手机和边缘设备等更小的设备环境带来最先进的性能。

聊天机器人 Elo 分数

Source: Google Blog

为了实现这一目标,谷歌与高通(Qualcomm)、联发科(MediaTek)和三星 System LSI 等硬件领导厂商合作,推出了全新的设备上人工智能架构,为快速、私密和多模态人工智能体验提供动力。Gemma 3n 中的“n”代表纳米(nano),体现了其小巧而强大的功能。

这种新架构基于两项关键创新:

  • 每层嵌入(PLE):由 Google DeepMind 创新,通过在模型主内存之外缓存和管理特定层数据来减少内存使用。它使大型模型(5B 和 8B 参数)只需 2GB 至 3GB 内存即可运行,与 2B 和 4B 模型类似。
  • MatFormer (Matryoshka Transformer) :嵌套模型架构允许较小的子模型在较大的模型中独立运行。这让开发人员可以灵活选择性能或速度,而无需切换模型或增加内存使用量。

聊天机器人 Elo 分数

Source: Google Blog

这些创新使 Gemma 3n 能够在低资源设备上高效运行高性能、多模态人工智能。

PLE如何提高Gemma 3n的性能?

执行 Gemma 3n 模型时,每层嵌入(PLE)设置可生成数据,从而提高每个模型层的性能。每层执行时,PLE 数据可以在模型工作内存之外独立创建,缓存到快速存储区,然后纳入模型推理过程。通过防止 PLE 参数进入模型内存空间,这种方法在不影响模型响应质量的前提下降低了资源使用率。

Gemma 3n 模型标有 E2B 和 E4B 等参数数,指的是有效参数使用量,该值低于参数总数。”E” 前缀表示这些模型可以使用较少的参数集运行,这要归功于 Gemma 3n 中嵌入的灵活参数技术,使其能够在资源较少的设备上更高效地运行。

这些模型将参数分为四大类:文本、视觉、音频和每层嵌入 (PLE) 参数。例如,E2B 模型在标准执行期间通常会加载超过 50 亿个参数,但通过使用参数跳转和 PLE 缓存,它可以将活动内存占用减少到仅 19.1 亿个参数,如下图所示:

文本、视觉、音频和每层嵌入 (PLE) 参数

Source: Google Blog

Gemma 3n的主要功能

Gemma 3n 针对设备任务进行了微调:

  1. 这是指该模型利用用户输入直接在设备上启动或调用特定操作的能力,例如启动应用程序、发送提醒、打开手电筒等。它使人工智能不仅能做出响应,还能与设备本身进行交流。
  2. Gemma 3n 可以理解文本和图形交错的输入,并对其做出反应。例如,当你上传一张图片并对其进行文字查询时,该模型可以同时处理这两种输入。
  3. 在 Gemma 系列中,它首次具备了理解音频和视频输入的能力。早期的 Gemma 型号不支持音频和视频。现在,Gemma 3n 能够观看视频和聆听声音,以便理解正在发生的事情,例如识别动作、检测语音或根据视频片段回答问题。

这样,模型就能与环境互动,让用户与应用程序自然交互。Gemma 3n 的移动速度是 Gemma 3 4B 的 1.5 倍。这增加了用户体验的流畅性(克服了 LLM 的生成延迟)。

Gemma 3n 具有较小的子模型,是独特的二合一矩阵变换器架构。这让用户可以根据需要动态选择性能和速度。为此,我们无需管理单独的模型。所有这些都在相同的内存空间内完成。

MatFormer架构有何帮助?

Gemma 3n 模型使用的是 Matryoshka Transformer 或 MatFormer 模型架构,它由嵌套在大模型内的小模型组成。 在对查询做出反应时,可以使用分层的子模型进行推断,而无需触发外层模型的参数。 在 MatFormer 模型中只运行较小的核心模型,有助于降低模型的能耗、响应时间和计算成本。 E2B 模型的参数包含在 Gemma 3n 的 E4B 模型中。 您还可以选择设置,并利用此架构将大小介于 2B 和 4B 之间的模型组合在一起。

如何访问Gemma 3n?

Gemma 3n 预览版可在 Google AI Studio、Google GenAI SDK 和 MediaPipe(Huggingface 和 Kaggle)中使用。我们将使用 Google AI Studio 访问 Gemma 3n。

如何访问Gemma 3n?

  • Step 1:登录 Google AI studio
  • Step 2:点击 Get API key

Get API key

  • Step 3:点击 Create API key

 Create API key

  • Step 4:选择一个项目,点击 Create API Key

点击 Create API Key

  • Step 5:复制 API 并保存,以便今后访问 Gemma 3n。
  • Step 6:现在我们有了 API,让我们创建一个 colab 实例。在浏览器中使用 colab.new 创建一个新 notebook。
  • Step 7:安装依赖项
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
!pip install google-genai
!pip install google-genai
!pip install google-genai
  • Step 8:在 colab 中使用秘钥存储 GEMINI_API_KEY,同时启用 notebook 访问。

GEMINI_API_KEY

  • Step 9:使用下面的代码设置环境变量:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
from google.colab import userdata
import os
os.environ["GEMINI_API_KEY"] = userdata.get('GEMINI_API_KEY')
from google.colab import userdata import os os.environ["GEMINI_API_KEY"] = userdata.get('GEMINI_API_KEY')
from google.colab import userdata
import os
os.environ["GEMINI_API_KEY"] = userdata.get('GEMINI_API_KEY')
  • Step 10:运行以下代码,从 Gemma 3n 中推断结果:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import base64
import os
from google import genai
from google.genai import types
def generate():
client = genai.Client(
api_key=os.environ.get("GEMINI_API_KEY"),
)
model = "gemma-3n-e4b-it"
contents = [
types.Content(
role="user",
parts=[
types.Part.from_text(text="""Anu is a girl. She has three brothers. Each of her brothers has the same two sisters. How many sisters does Anu have?"""),
],
),
]
generate_content_config = types.GenerateContentConfig(
response_mime_type="text/plain",
)
for chunk in client.models.generate_content_stream(
model=model,
contents=contents,
config=generate_content_config,
):
print(chunk.text, end="")
if __name__ == "__main__":
generate()
import base64 import os from google import genai from google.genai import types def generate(): client = genai.Client( api_key=os.environ.get("GEMINI_API_KEY"), ) model = "gemma-3n-e4b-it" contents = [ types.Content( role="user", parts=[ types.Part.from_text(text="""Anu is a girl. She has three brothers. Each of her brothers has the same two sisters. How many sisters does Anu have?"""), ], ), ] generate_content_config = types.GenerateContentConfig( response_mime_type="text/plain", ) for chunk in client.models.generate_content_stream( model=model, contents=contents, config=generate_content_config, ): print(chunk.text, end="") if __name__ == "__main__": generate()
import base64
import os
from google import genai
from google.genai import types
def generate():
   client = genai.Client(
       api_key=os.environ.get("GEMINI_API_KEY"),
   )
   model = "gemma-3n-e4b-it"
   contents = [
       types.Content(
           role="user",
           parts=[
               types.Part.from_text(text="""Anu is a girl. She has three brothers. Each of her brothers has the same two sisters. How many sisters does Anu have?"""),
           ],
       ),
   ]
   generate_content_config = types.GenerateContentConfig(
       response_mime_type="text/plain",
   )
   for chunk in client.models.generate_content_stream(
       model=model,
       contents=contents,
       config=generate_content_config,
   ):
       print(chunk.text, end="")
if __name__ == "__main__":
   generate()

输出:

从 Gemma 3n 中推断结果

小结

Gemma 3n 是人工智能在小型设备上的一大飞跃。它能以更少的内存和更快的速度运行强大的模型。得益于 PLE 和 MatFormer,它既高效又智能。它能在设备上处理文本、图像、音频甚至视频。通过 Google AI Studio,开发人员可以轻松测试和使用 Gemma 3n。如果您正在开发移动或边缘 AI 应用程序,Gemma 3n 绝对值得一试。查看 Google AI Edge,在本地运行 Gemma 3n。

评论留言