在Cloud Run上部署Google的Gemma 3 (4B):实用指南
介绍
谷歌刚刚发布了最新一代开放语言模型 Gemma 3,这在人工智能社区引起了轰动。正如官方公告所述:
“Gemma 3 引入了多模态性,支持视觉语言输入和文本输出。它可以处理多达 128k 个标记的上下文窗口,理解 140 多种语言,并提供改进的数学、推理和聊天功能,包括结构化输出和函数调用。”
与以前的版本相比,这是一个重大的飞跃,谷歌声称,由于使用蒸馏、强化学习和模型合并优化了训练过程,它现在是“LMArena 中得分为 1338 的顶级开放式紧凑模型”。
在本文中,我们将深入探讨如何使用 Ollama 在 Google Cloud Run 上部署 Gemma 3(4B 参数)模型,从而创建一个可与您自己的应用程序集成的生产就绪 API。虽然 Google 提供了多种部署选项(包括其官方 Cloud Run 教程),但我们将探索一种简化的方法并进行一些实际优化。
这里概述的部署方法使用一个合并脚本来处理整个过程,从设置 Google Cloud 环境到在具有 GPU 加速的 Cloud Run 上部署 Gemma 3 模型。
先决条件
在开始之前,请确保您已准备好以下内容:
已启用结算功能的 Google Cloud Platform 帐号
gcloudCLI 安装和配置已启用 Cloud Run API 和 Artifact Registry API 的 Google Cloud 项目
Docker 和 API 的基础知识
对使用尖端人工智能技术的兴奋(这一点很重要!)
Google 已通过多个平台提供 Gemma 3,包括Hugging Face、Kaggle和Ollama,我们将在本教程中使用它们。
理解架构
我们的部署由一项服务组成:
Gemma Ollama 服务:此服务使用开源模型服务框架 Ollama 托管 Gemma 3 (4B) 模型。
该服务部署在 Google Cloud Run 上,它为容器化应用程序提供无服务器计算平台,具有自动扩展和按使用付费定价功能。
部署脚本
为了简化部署过程,我们创建了一个名为的合并脚本belha-deploy.sh来处理整个工作流程。以下是该脚本功能的概述:
/bin/bash #!/bin/bash
# 设置环境变量PROJECT_ID=$(gcloud config get-value project) REGION="us-central1" REPOSITORY="gemma-repo" OLLAMA_SERVICE_NAME="ollama-gemma" SERVICE_ACCOUNT="ollama-service"# 设置 Google Cloud 环境gcloud config set run/region $REGION gcloud artifacts repositories create $REPOSITORY --repository-format=docker --location=$REGION || true gcloud iam service-accounts create $SERVICE_ACCOUNT || true# 构建并部署 Gemma Ollama 服务# [Dockerfile 和构建命令]
该脚本以一致的命名创建所有必要的资源,确保资源易于识别和组织。
使用 Ollama 部署 Gemma 3 (4B)
我们设置的核心是使用 Ollama 部署的 Gemma 3 (4B) 模型。该脚本创建一个 Docker 容器,该容器:
使用 Ollama 基础镜像
设置适当的环境变量
拉杰玛 3 (4B) 型号
在端口 8080 上公开服务
以下是 Gemma Ollama 服务使用的 Dockerfile 定义:
来自 ollama/ollama:0.6.0环境 OLLAMA_HOST 0.0.0.0:8080环境 OLLAMA_MODELS /models 环境OLLAMA_DEBUG false环境 OLLAMA_KEEP_ALIVE -1环境 模型 gemma3:4b运行 ollama serve & sleep 5 && ollama pull $MODEL ENTRYPOINT [ “ollama”,“serve” ]
然后将此容器部署到 Cloud Run,配置如下:
8 个 CPU
32GB 内存
已启用 CPU 加速
禁止公开访问(需要身份验证)
适当的超时和并发设置
使用已部署的 Gemma API
部署完成后,您可以通过 Ollama API 与 Gemma 3 (4B) 模型进行交互。以下是生成文本的示例:
curl -X POST “https://your-gemma-service-url.a.run.app/api/generate” \ -H “Content-Type:application/json” \ -H “Authorization:Bearer $(gcloud auth print-identity-token)” \ -d'{ “model”:“gemma3:4b”,“prompt”:“写一首关于 AI 的短诗”,“stream”:false }'API 响应包括生成的文本以及模型元数据:
{ “model”:“gemma3:4b”, “created_at”:“2025-03-12T09:14:19.068446Z”, “response”:“一个沉默的头脑,代码和光,\n生于逻辑,敏锐而明亮。\n它学习和成长,模仿的优雅,\n反映模式、时间和空间。\n \n它没有心脏,没有灵魂可以宣称,\n只是算法,一个数字名称。\n一种工具,一个奇迹,奇怪而新奇,\n不断发展的人工智能视角。”, “done”:true }性能注意事项
在 Cloud Run 上部署 Gemma 3(4B)时,了解资源要求和性能特征非常重要:
内存使用情况:4B 参数模型需要大量内存(建议使用 32GB 以获得最佳性能)
CPU 要求:我们已分配 8 个具有 CPU 加速功能的 CPU,以确保低延迟响应
成本优化:Cloud Run 的按使用付费模式意味着您只需为服务处理请求的时间付费
冷启动时间:容器启动后,不活动后的第一个请求可能会出现延迟
扩展性和安全性
我们的部署包括几个扩展和安全方面的最佳实践:
身份验证:所有 API 端点均使用 Google Cloud 的身份令牌进行保护
服务帐户:具有最小权限的专用服务帐户
自动扩展:Cloud Run 根据流量自动扩展
资源限制:CPU 和内存限制可防止成本失控
与您的应用程序集成
Gemma 3 模型可以集成到各种应用程序中:
Web 应用程序:从前端 JavaScript 或后端服务器调用 API
聊天界面:使用它来为对话代理提供支持
内容生成:生成文章、摘要或创意文本
代码协助:获取编程任务方面的帮助
结论
Gemma 3 代表了开放语言模型的重大进步,带来了以前仅在更大的封闭模型中才有的功能。正如谷歌在其发布中指出的那样:
“Gemma 的训练前和训练后流程通过结合提炼、强化学习和模型合并进行了优化。这种方法提高了数学、编码和指令遵循方面的表现。”
在 Cloud Run 上部署 Gemma 3 (4B) 是一种功能强大、可扩展且经济高效的方式,可让您在应用程序中利用这种先进的语言模型。通过使用整合的部署脚本和 Ollama,我们简化了原本复杂的流程,让您可以专注于使用这项尖端技术构建出色的应用程序。
与一个能够理解 140 多种语言、处理 128k 上下文窗口并提供显著改进的推理能力的模型进行交互的体验——所有这些都在您自己的基础架构上运行——对于希望构建下一代 AI 驱动应用程序的开发人员来说,这是真正的变革。
在本系列的后续文章中,我们将探讨:
针对特定领域对 Gemma 3 进行微调
性能优化和成本管理技术
Gemma 模型的高级提示工程
探索 Gemma 3 的多模式功能
