Gemma PyTorch 实现


一、关于 Gemma

Gemma 是由 Google Gemini 模型研发技术构建的轻量级、前沿开源模型家族。

该系列包含纯文本和多模态的仅解码器架构大语言模型,提供开放权重、预训练变体和指令调优变体。更多详情请查看以下链接:

本文档是 Gemma 模型的官方 PyTorch 实现,提供基于 PyTorch 和 PyTorch/XLA 的模型与推理实现,支持在 CPU、GPU 和 TPU 上运行推理。


更新日志


相关链接资源


二、下载模型检查点

可通过以下渠道获取模型检查点:

Kaggle 平台:

或通过 Hugging Face Hub 获取:https://huggingface.co/models?other=gemma_torch
下载步骤:进入目标模型仓库 → 点击 Files and versions 标签页 → 下载模型和分词器文件

程序化下载方式(需安装 huggingface_hub):

huggingface-cli download google/gemma-3-4b-it-pytorch

可用模型规格

  • Gemma 3
    • 纯文本:1b
    • 多模态:4b、12b、27b_v3
  • Gemma 2
    • 纯文本:2b-v2、9b、27b
  • Gemma
    • 纯文本:2b、7b

注:可选择 1B、4B、12B 或 27B 的变体

VARIANT=<1b, 2b, 2b-v2, 4b, 7b, 9b, 12b, 27b, 27b_v3>
CKPT_PATH=<模型检查点路径>

三、Colab 免费试用

访问 https://ai.google.dev/gemma/docs/pytorch_gemma 按指引操作


四、PyTorch 本地运行


环境准备

确保已为非 root 用户配置 docker 权限:

sudo usermod -aG docker $USER
newgrp docker

1、构建 Docker 镜像

DOCKER_URI=gemma:${USER}

docker build -f docker/Dockerfile ./ -t ${DOCKER_URI}

2、CPU 推理

注:此为多模态示例,请使用多模态变体

docker run -t --rm \
    -v ${CKPT_PATH}:/tmp/ckpt \
    ${DOCKER_URI} \
    python scripts/run_multimodal.py \
    --ckpt=/tmp/ckpt \
    --variant="${VARIANT}" \
    # 添加 `--quant` 使用 int8 量化模型


3、GPU 推理

注:此为多模态示例,请使用多模态变体

docker run -t --rm \
    --gpus all \
    -v ${CKPT_PATH}:/tmp/ckpt \
    ${DOCKER_URI} \
    python scripts/run_multimodal.py \
    --device=cuda \
    --ckpt=/tmp/ckpt \
    --variant="${VARIANT}"
    # 添加 `--quant` 使用 int8 量化模型


五、PyTorch/XLA 运行


1、构建 Docker 镜像(CPU/TPU)

DOCKER_URI=gemma_xla:${USER}

docker build -f docker/xla.Dockerfile ./ -t ${DOCKER_URI}

2、构建 Docker 镜像(GPU)

DOCKER_URI=gemma_xla_gpu:${USER}

docker build -f docker/xla_gpu.Dockerfile ./ -t ${DOCKER_URI}

3、CPU 推理

注:此为多模态示例,请使用多模态变体

docker run -t --rm \
    --shm-size 4gb \
    -e PJRT_DEVICE=CPU \
    -v ${CKPT_PATH}:/tmp/ckpt \
    ${DOCKER_URI} \
    python scripts/run_xla.py \
    --ckpt=/tmp/ckpt \
    --variant="${VARIANT}" \
    # 添加 `--quant` 使用 int8 量化模型


4、TPU 推理

注:需使用 xla.Dockerfile 构建的容器

docker run -t --rm \
    --shm-size 4gb \
    -e PJRT_DEVICE=TPU \
    -v ${CKPT_PATH}:/tmp/ckpt \
    ${DOCKER_URI} \
    python scripts/run_xla.py \
    --ckpt=/tmp/ckpt \
    --variant="${VARIANT}" \
    # 添加 `--quant` 使用 int8 量化模型

5、GPU 推理

注:需使用 xla_gpu.Dockerfile 构建的容器

docker run -t --rm --privileged \
    --shm-size=16g --net=host --gpus all \
    -e USE_CUDA=1 \
    -e PJRT_DEVICE=CUDA \
    -v ${CKPT_PATH}:/tmp/ckpt \
    ${DOCKER_URI} \
    python scripts/run_xla.py \
    --ckpt=/tmp/ckpt \
    --variant="${VARIANT}" \
    # 添加 `--quant` 使用 int8 量化模型

六、分词器说明

预训练分词器模型中保留了 99 个未使用 token 以提升训练/微调效率。这些 token 采用 <unused[0-97]> 字符串格式,对应 token ID 范围为 [7-104]

"<unused0>": 7, "<unused1>": 8, "<unused2>": 9, ...
"<unused98>": 104, ```

伊织 xAI 2025-04-27(日)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程乐园

请我喝杯伯爵奶茶~!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值