在运行 Gemma 模型时,您需要做出两个关键决策:1) 要运行哪个 Gemma 变体,以及 2) 要使用哪个 AI 执行框架来运行它?在做出这两项决策时,一个关键问题是您和您的用户可使用哪些硬件来运行模型。
本概览可帮助您做出这些决策,并开始使用 Gemma 模型。运行 Gemma 模型的一般步骤如下:
选择框架
Gemma 模型与各种生态系统工具兼容。选择哪种取决于您的可用硬件(云 GPU 与本地笔记本电脑)以及界面偏好(Python 代码与桌面应用)。
使用下表可快速确定最适合您需求的工具:
| 希望执行的操作 | 推荐的框架 | 最适合的用途 |
|---|---|---|
| 在本地运行并使用 Chat 界面 | - LM Studio - Ollama |
初学者,或希望在笔记本电脑上获得“类 Gemini”体验的用户。 |
| 在 Edge 上高效运行 | - Gemma.cpp - LiteRT-LM - llama.cpp - MediaPipe LLM 推理 API - MLX |
以最少的资源实现高性能的本地推理。 |
| 在 Python 中构建/训练 | - 适用于 JAX 的 Gemma 库 - Hugging Face Transformers - Keras - PyTorch - Unsloth |
构建自定义应用或微调模型的研究人员和开发者。 |
| 部署到生产环境 / 企业 | - Google Cloud Kubernetes Engine (GKE) - Google Cloud Run - Vertex AI - vLLM |
可扩缩的代管式云部署,提供企业级安全性和 MLOps 支持。 |
框架详细信息
以下是按部署环境分类的 Gemma 模型运行指南。
1. 桌面设备和本地推理(高效率)
借助这些工具,您可以利用优化格式(如 GGUF)或特定硬件加速器在消费类硬件(笔记本电脑、台式机)上运行 Gemma。
- LM Studio:一款桌面应用,可让您在用户友好的界面中下载 Gemma 模型并与之对话。无需编写任何代码。
- llama.cpp:Llama(和 Gemma)的流行开源 C++ 移植版本,可在 CPU 和 Apple Silicon 上以极快的速度运行。
- LiteRT-LM:提供命令行界面 (CLI),可在桌面设备(Windows、Linux、macOS)上运行由 LiteRT(以前称为 TFLite)提供支持的优化版
.litertlmGemma 模型。 - MLX:专门为 Apple Silicon 上的机器学习而设计的框架,非常适合想要获得内置性能的 Mac 用户。
- Gemma.cpp:Google 专门推出的轻量级独立 C++ 推理引擎。
- Ollama:一种在本地运行开放式 LLM 的工具,通常用于为其他应用提供支持。
2. Python 开发(研究与微调)
供 AI 开发者构建应用、流水线或训练模型的标准框架。
- Hugging Face Transformers:快速访问模型和流水线的行业标准。
- Unsloth:用于对 LLM 进行微调的优化库。它能让您以显著更少的内存将 Gemma 模型的训练速度提高 2-5 倍,从而可以在消费类 GPU(例如免费的 Google Colab 层级)上进行微调。
- Keras / JAX / PyTorch:用于深度学习研究和自定义架构实现的核心库。
3. 移动设备和边缘设备部署(设备端)
旨在直接在用户设备(Android、iOS、Web)上运行 LLM 的框架,无需互联网连接,通常会利用 NPU(神经处理单元)。
- LiteRT-LM:完全开源的框架,用于开发设备端 LLM,可提供出色的性能和精细的控制,并直接支持 Android 和 iOS 上的 CPU、GPU 和 NPU 加速。
- MediaPipe LLM Inference API:将 Gemma 集成到跨平台应用中的最简单方法。它提供了一个可在 Android、iOS 和 Web 上运行的高级 API。
4. 云部署和生产环境部署
用于将应用扩展到数千用户或访问海量计算能力的托管式服务。
- Vertex AI:Google Cloud 的全托管式 AI 平台。最适合需要 SLA 和扩缩的企业应用。
- Google Cloud Kubernetes Engine (GKE):用于编排您自己的服务集群。
- vLLM:一种高吞吐量且内存高效的推理和服务引擎,通常用于云部署。
请确保您打算部署的 Gemma 模型格式(例如 Keras 内置格式、Safetensors 或 GGUF)受您所选框架的支持。
选择 Gemma 变体
Gemma 模型有多种变体和大小,包括基础或核心 Gemma 模型,以及更专业的模型变体,例如 PaliGemma 和 DataGemma,以及 AI 开发者社区在 Kaggle 和 Hugging Face 等网站上创建的许多变体。如果您不确定应该从哪个变体开始,请选择参数数量最少的最新 Gemma 核心指令调优 (IT) 模型。这类 Gemma 模型对计算资源的要求较低,并且无需额外开发即可响应各种提示。
选择 Gemma 变体时,请考虑以下因素:
- Gemma 核心模型和其他变体系列,例如 PaliGemma、CodeGemma:建议使用 Gemma(核心模型)。核心版本以外的 Gemma 变体与核心模型具有相同的架构,并且经过训练,可在特定任务中表现得更好。除非您的应用或目标与特定 Gemma 变体的专业领域相符,否则最好从 Gemma 核心模型或基础模型开始。
- 指令调优 (IT)、预训练 (PT)、微调 (FT)、混合 (mix):建议使用 IT。
- 指令调优 (IT) Gemma 变体是指经过训练的模型,能够以人类语言响应各种指令或请求。这些模型变体是最佳的起点,因为它们无需进一步的模型训练即可响应提示。
- 预训练 (PT) Gemma 变体是指经过训练可以对语言或其他数据进行推理,但尚未经过训练可以遵循人类指令的模型。这些模型需要进行额外的训练或调优才能有效执行任务,适合想要研究或开发模型功能及其架构的研究人员或开发者。
- 经过微调 (FT) 的 Gemma 变体可以视为 IT 变体,但通常经过训练,可执行特定任务,或在特定生成式 AI 基准上表现出色。PaliGemma 变体系列包含多个 FT 变体。
- 混合(混合)Gemma 变体是 PaliGemma 模型的版本,已通过各种指令进行指令调优,适合一般用途。
- 参数:建议使用可用的最小数字。一般来说,模型的参数越多,功能就越强大。不过,运行较大的模型需要更大、更复杂的计算资源,并且通常会减慢 AI 应用的开发速度。除非您已确定较小的 Gemma 模型无法满足您的需求,否则请选择参数数量较少的模型。
- 量化级别: 建议使用半精度 (16 位),但调整除外。量化是一个复杂的主题,归根结底就是数据的大小和精度,以及生成式 AI 模型用于计算和生成回答的内存量。使用高精度数据(通常为 32 位浮点数据)训练模型后,可以修改 Gemma 等模型,使其使用较低精度的数据,例如 16 位、8 位或 4 位大小的数据。这些量化 Gemma 模型仍能表现出色,具体取决于任务的复杂程度,同时使用的计算和内存资源明显更少。不过,用于调整量化模型的工具有限,并且可能无法在您选择的 AI 开发框架中使用。通常,您必须以全精度微调 Gemma 等模型,然后量化生成的模型。
如需查看 Google 发布的主要 Gemma 模型列表,请参阅开始使用 Gemma 模型中的 Gemma 模型列表。
运行生成和推理请求
选择 AI 执行框架和 Gemma 变体后,您可以开始运行模型,并提示模型生成内容或完成任务。 如需详细了解如何使用特定框架运行 Gemma,请参阅选择框架部分中链接的指南。
提示格式
所有经过指令调优的 Gemma 变体都有特定的提示格式要求。您用于运行 Gemma 模型的框架会自动处理其中一些格式要求,但当您直接向分词器发送提示数据时,必须添加特定标记,并且标记要求可能会因您使用的 Gemma 变体而异。如需了解有关 Gemma 变体提示格式和系统指令的信息,请参阅以下指南: