大数跨境
0
0

打造您的专属轻量级 AI | Gemma 3 270M 设备端微调指南

打造您的专属轻量级 AI | Gemma 3 270M 设备端微调指南 谷歌开发者
2025-11-12
3
导读:无需昂贵的硬件,亦可打造高度专业化的自定义模型,本文将通过一个示例,引导您快速完成创建特定任务模型的全流程,与您一起训练一个自己的模型。

作者 / Ian Ballantyne, Google DeepMind 资深开发者关系工程师;Jason Mayes, Google Web AI 负责人;Kristen Quan, Google AI 开发者市场营销


Gemma 是一系列先进的轻量级开放模型,其技术底蕴与我们的 Gemini 模型一脉相承。它提供多种规模版本,任何人都可以在自己的基础设施上进行适配并运行。这种性能与可访问性的结合已带来超过 2.5 亿次下载量,衍生出面向各类任务和领域的 85,000 种社区变体。


无需昂贵的硬件,亦可打造高度专业化的自定义模型。Gemma 3 270M 体积小巧,可助您快速针对新用例进行微调,然后部署到设备上。既赋予您模型开发的灵活性,又使您可以轻松掌控这一强大工具。


为展示这一过程的简易性,本文将通过一个示例,带您训练一个专属模型,将文本翻译成表情符号,并在 Web 应用中进行测试。您甚至可以教会模型使用您在现实生活中特定表情符号使用习惯,从而打造一个专属表情符号生成器。欢迎在实时演示中亲自体验。


  • 实时演示

    https://huggingface.co/spaces/google/emoji-gemma


我们将引导您在一小时内完成创建特定任务模型的全流程。您将学习到如何:

  1. 微调模型: 使用自定义数据集训练 Gemma 3 270M,创建专属 "表情符号翻译器"

  2. 量化和转换模型: 优化模型以实现设备端推理,将其内存占用降低至 300MB 以下

  3. 在 Web 应用中部署: 使用 MediaPipe 或 Transformers.js 在简单的 Web 应用中运行客户端模型


  • MediaPipe

    https://ai.google.dev/edge/mediapipe/solutions/genai/llm_inference

  • Transformers.js

    https://huggingface.co/docs/transformers.js/en/index



第 1 步: 通过微调自定义模型行为


开箱即用的大语言模型 (LLM) 通常是 "多面手"。如果您让 Gemma 将文本翻译成表情符号,可能会得到预料之外的内容,比如一些闲聊用语。


提示:

请将以下文本翻译为 3-5 个表情符号的创意组合:"what a fun party (多么有趣的派对)"


模型输出 (示例):

当然!这是您的表情符号: 🥳🎉🎈


对于我们的应用来说,Gemma 仅需要输出表情符号。虽然您可以尝试复杂的 "提示工程",但要遵循特定的输出格式并让模型学习新知识,最可靠的方法是使用示例数据对其进行微调。因此,要让模型学会使用特定的表情符号,需要用包含文本与表情符合示例的数据集来进行训练。


提供的示例越多,模型的学习效果就越好,所以您可以通过让 AI 为同一个表情符号生成不同的文本短语,轻松提升数据集的 "丰富性"。为了增添趣味性,我们用流行歌曲和粉丝群体相关的表情符号进行了此项尝试:

△ 如果您希望模型记住特定的表情符号,请在数据集中提供更多示例

过去,微调模型需要大量的 VRAM。然而,借助量化低秩适配 (QLoRA) 这种参数高效微调 (PEFT) 技术,我们只需更新少量权重。这大大降低了内存需求,使您能够在 Google Colab 上使用免费的 T4 GPU 加速,在几分钟内完成对 Gemma 3 270M 的微调。


您可以从一个示例数据集入手,或使用您自己的表情符号填充模板。然后,您可以运行微调 Notebook 来加载数据集、训练模型,并测试新模型相较于原始模型的性能表现。


  • 微调 Notebook

    https://colab.research.google.com/github/google-gemini/gemma-cookbook/blob/main/Demos/Emoji-Gemma-on-Web/resources/Fine_tune_Gemma_3_270M_for_emoji_generation.ipynb



第 2 步: 针对 Web 量化并转换模型


得到自定义模型后,您可以用它做什么呢?由于我们经常在移动设备或电脑上使用表情符号,所以我们通常选择将模型部署到设备端的应用中。


原始模型虽然很小,但仍然超过 1GB。为了确保快速加载的用户体验,我们需要压缩模型大小,而量化恰恰可以实现这一点,这是一种将模型权重的精度降低的过程 (例如,从 16 位降为 4 位整数)。这种方法能显著压缩文件大小,同时对模型性能的影响微乎其微。

△ 模型越小,应用的加载速度就越快,最终用户的体验就越好

为使模型适配 Web 应用,您可以选择适用于 MediaPipe 的 LiteRT conversion notebook 或适用于 Transformers.js 的 ONNX conversion notebook,一步完成量化和转换。这些框架利用 WebGPU (一种现代 Web API,允许应用访问本地设备的硬件进行计算),支持在浏览器中以客户端方式运行 LLM,省去了复杂的服务器部署和每次调用的推理成本。


  • LiteRT conversion notebook

    https://colab.research.google.com/github/google-gemini/gemma-cookbook/blob/main/Demos/Emoji-Gemma-on-Web/resources/Convert_Gemma_3_270M_to_LiteRT_for_MediaPipe_LLM_Inference_API.ipynb

  • ONNX conversion notebook

    https://colab.research.google.com/github/google-gemini/gemma-cookbook/blob/main/Demos/Emoji-Gemma-on-Web/resources/Convert_Gemma_3_270M_to_ONNX.ipynb



第 3 步: 在浏览器中运行模型


现在,您可以直接在浏览器中运行自定义模型!下载我们的示例 Web 应用,然后更改一行代码,便可轻松接入您的新模型。


  • 示例 Web 应用

    https://github.com/google-gemini/gemma-cookbook/tree/main/Demos/Emoji-Gemma-on-Web


MediaPipe 和 Transformers.js 都让这个过程变得十分简单。下面是一个在 MediaPipe 工作器中运行推理任务的示例:

// Initialize the MediaPipe Taskconst genai = await FilesetResolver.forGenAiTasks('https://cdn.jsdelivr.net/npm/@mediapipe/tasks-genai@latest/wasm');llmInference = await LlmInference.createFromOptions(genai, {    baseOptions: { modelAssetPath: 'path/to/yourmodel.task' }});// Format the prompt and generate a responseconst prompt = `Translate this text to emoji: what a fun party!`;const response = await llmInference.generateResponse(prompt);


模型一旦缓存至用户设备,随后的请求就会以极低的延迟在本地运行,用户数据将保持完全私密,而且即使在离线状态下,应用也能正常运行。


喜欢您的应用吗?那就把它上传到 Hugging Face Spaces 和我们一起分享吧 (就像演示示例一样)。


  • 演示示例

    https://goo.gle/emoji-gemma-demo



未来计划


您无需成为 AI 专家或数据科学家即可打造专属的 AI 模型。仅需几分钟,您就可以使用相对较小的数据集来优化 Gemma 模型的性能。


我们希望这些内容能激发您创造专属的模型变体。通过运用这些技术,您可以构建出强大的 AI 应用,不仅能满足个性化需求,还能带来卓越的用户体验——快速、私密,并且让任何人都能随时随地使用。


该项目的完整源代码和资源可以帮助您快速入门:

  • 在 Colab 中使用 QLoRA 高效微调 Gemma

  • 在 Colab 中转换 Gemma 3 270M 以用于 MediaPipe LLM 推理 API

  • 在 Colab 中转换 Gemma 3 270M 以用于 Transformers.js

  • 在 GitHub 上下载演示代码

  • 参阅 Gemma Cookbook 和 chrome.dev,探索更多 Web AI 演示

  • 详细了解 Gemma 3 模型系列及其设备端能力


  • Colab

    https://colab.research.google.com/github/google-gemini/gemma-cookbook/blob/main/Demos/Emoji-Gemma-on-Web/resources/Fine_tune_Gemma_3_270M_for_emoji_generation.ipynb

  • Colab

    https://colab.research.google.com/github/google-gemini/gemma-cookbook/blob/main/Demos/Emoji-Gemma-on-Web/resources/Convert_Gemma_3_270M_to_LiteRT_for_MediaPipe_LLM_Inference_API.ipynb

  • Colab

    https://colab.research.google.com/github/google-gemini/gemma-cookbook/blob/main/Demos/Emoji-Gemma-on-Web/resources/Convert_Gemma_3_270M_to_ONNX.ipynb

  • GitHub

    https://github.com/google-gemini/gemma-cookbook/tree/main/Demos/Emoji-Gemma-on-Web/

  • Gemma Cookbook

    https://github.com/google-gemini/gemma-cookbook/tree/main/Demos

  • chrome.dev

    https://chrome.dev/web-ai-demos/

  • Gemma 3 模型系列

    https://ai.google.dev/gemma/docs


欢迎您持续关注 "谷歌开发者" 微信公众号,及时了解更多开发技术和产品更新等资讯动态。




【声明】内容源于网络
0
0
谷歌开发者
谷歌开发
内容 3261
粉丝 0
谷歌开发者 谷歌开发
总阅读12.2k
粉丝0
内容3.3k