Gemma 3简介与部署

1.Gemma 3概述

基本信息

  • 发布背景:Gemma 3 是2025年3月12日谷歌在之前发布的 Gemma AI 模型基础上的升级之作,基于 Gemini 2.0 技术打造。
  • 模型规模:提供了四种不同尺寸的模型,分别是 1B、4B、12B 和 27B,以满足不同硬件性能的需求。

主要特点

  • 性能卓越:Gemma 3 被称为“全球最强的单加速器模型”,在单 GPU 或 TPU 环境下的性能优于其他同类模型,如 Llama、DeepSeek 和 OpenAI 的 o3-mini。
  • 多语言支持:支持超过 35 种语言,并预训练支持超过 140 种语言,帮助开发者轻松推出多语言应用。
  • 多模态处理能力:具备高级文本与视觉推理能力,支持构建能够分析图像、文本和短视频的 AI 应用。
  • 上下文窗口增大:上下文窗口扩展到了 128k Token,能够高效处理大量信息,轻松应对复杂任务。
  • 函数调用与结构化输出:支持函数调用和结构化输出,帮助开发者自动化任务,构建具备智能决策能力的应用。
  • 量化模型提升效率:官方推出的量化版本大大缩减了模型体积,减少了计算需求,同时保持了高精度。
  • 安全特性:配备 ShieldGemma 2 图像安全分类器,能检测和标记危险内容、色情内容和暴力内容。

技术原理

  • 训练与优化:Gemma 3 采用知识蒸馏、强化学习(包括人类反馈和机器反馈)以及模型合并等技术,提升了模型在数学、编码和指令跟随方面的能力。
  • 硬件适配:针对 Nvidia GPU 和 Google Cloud TPU 进行了深度优化,确保在不同硬件平台上的高效运行。

2.Ollama升级

Ollama拉取Gemma3后,报错提示Ollama版本太低,需要升级,查阅官网,需要最新的0.6版本的ollama才行,报错如下:

ollama run gemma3:27b
Error: llama runner process has terminated: this model is not supported by your version of Ollama. You may need to upgrade

本地版本是:0.5.7

ollama --version
ollama version is 0.5.7

看到Ollama Github上是0.6版本,需要升级,因为原来我是源码部署的ollama,因此这次也是用源码。

官网提供的命令是:

curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz

直接用迅雷或者别的下载:https://ollama.com/download/ollama-linux-amd64.tgz会比较快,下载完上传Linux服务器,下载

安装脚本:https://ollama.com/install.sh

下载后注释第82~84行,该脚本会自动清理老版本Ollama

image-20250313172201776

这一部分改变的内容加了注释,完整的如下:

status "Installing ollama to $OLLAMA_INSTALL_DIR"
$SUDO install -o0 -g0 -m755 -d $BINDIR
$SUDO install -o0 -g0 -m755 -d "$OLLAMA_INSTALL_DIR/lib/ollama"
# status "Downloading Linux ${ARCH} bundle"
# curl --fail --show-error --location --progress-bar \
#     "https://ollama.com/download/ollama-linux-${ARCH}.tgz${VER_PARAM}" | \
#     $SUDO tar -xzf - -C "$OLLAMA_INSTALL_DIR"
# 假设你已经手动解压了 ollama-linux-amd64.tgz,并且解压后的文件在当前目录下的 ollama-linux-amd64 文件夹中
$SUDO cp -r ./ollama-linux-amd64/* "$OLLAMA_INSTALL_DIR/"

if [ "$OLLAMA_INSTALL_DIR/bin/ollama" != "$BINDIR/ollama" ] ; then
    status "Making ollama accessible in the PATH in $BINDIR"
    $SUDO ln -sf "$OLLAMA_INSTALL_DIR/ollama" "$BINDIR/ollama"
fi

创建ollama-linux-amd64目录并加压缩源码到这个目录,改变install.sh安装脚本执行权限:

mkdir ollama-linux-amd64
sudo tar -xzf ollama-linux-amd64.tgz -C ./ollama-linux-amd64
sudo chmod +x install.sh

关闭老版本的ollama服务:

sudo systemctl stop ollama

直接安装还会报错,原来是每行末尾的回车换行符\r\n,用sed替换后安装:

sudo sed -i 's/\r$//' install.sh
./install.sh

启动ollama:

sudo ollama serve

查看版本:

ollama --version

0.6

在 Linux 中直接通过 sudo ollama serve 运行的服务会绑定到当前终端会话,关闭终端或中断操作会导致服务停止。若要让 Ollama 在后台持续运行,可以如下操作:

创建 Systemd 服务文件

 sudo vi /etc/systemd/system/ollama.service

添加以下内容(假设 Ollama 可执行文件在 /usr/local/bin/ollama):接下来就可以进入step4 拉取想要的模型了

 [Unit]
 Description=Ollama Service
 After=network.target
 
 [Service]
 Type=simple
 User=root
 ExecStart=/usr/local/bin/ollama serve
 Restart=always
 RestartSec=3
 Environment="OLLAMA_MODELS=/path/to/custom/models"  # 可选:自定义模型路径
 
 [Install]
 WantedBy=multi-user.target

重载 Systemd 配置

 sudo systemctl daemon-reload
 sudo systemctl start ollama      # 启动服务
 sudo systemctl enable ollama    # 开机自启

3.测试

继续用我之前测试DeepSeek的二年级数学题,还是错误,哈哈!

image-20250314072737693

显存占用大约21GB,与DeepSeek32B差不多

### Gemma3 的本地部署指南 Gemma 是一种大型多模态模型,能够处理图像、文本等多种数据形式。对于 Gemma3 的本地部署,通常涉及以下几个方面: #### 1. **环境准备** 为了成功运行 Gemma3 模型,需要确保安装了必要的依赖项和库。以下是常见的配置需求[^2]: - Python 版本:建议使用 Python 3.8 或更高版本。 - TensorFlow Lite:由于 Gemma 使用的是 TFLite 格式的模型文件,需安装最新版的 TensorFlow 和其扩展包。 ```bash pip install tensorflow==2.10.0 ``` 如果计划在 GPU 上加速推理过程,则还需要额外安装 CUDA 工具链以及 cuDNN 库来支持 NVIDIA 显卡运算。 #### 2. **下载预训练模型** 访问官方资源页面获取最新的 Gemma3 预训练权重文件[^1]。这些文件通常是压缩格式 (.zip),解压后会得到 `.tflite` 文件以及其他辅助材料(如标签映射表)。注意确认所选模型变体适合目标硬件平台——例如 INT4 数据精度优化过的轻量化版本可能更适合移动设备或嵌入式系统。 #### 3. **加载并初始化模型** 通过 TensorFlow 提供的功能接口可以轻松实现对 .tflite 文件的操作。下面展示了一个简单的例子说明如何读取该类别的神经网络结构定义,并准备好用于预测输入样本: ```python import numpy as np import tensorflow as tf def load_model(model_path): interpreter = tf.lite.Interpreter(model_path=model_path) interpreter.allocate_tensors() input_details = interpreter.get_input_details()[0] output_details = interpreter.get_output_details()[0] return interpreter, input_details['index'], output_details['index'] model_file = 'path/to/your/model.tflite' interpreter, input_index, output_index = load_model(model_file) print(f"Model loaded successfully with {input_index} and {output_index}.") ``` 上述脚本片段展示了基本流程,实际应用中还需考虑更多细节比如批量大小调整、动态形状张量的支持等问题。 #### 4. **执行推断操作** 一旦完成了前面提到的各项准备工作之后就可以着手编写具体的业务逻辑代码来进行前向传播计算得出最终的结果啦! 假设我们已经有了标准化后的图片像素矩阵 stored_in variable `image_data`, 接下来就是调用解释器完成一次完整的评估周期. ```python # Prepare the image data according to model requirements. if need_preprocessing: processed_image = preprocess(image_data) # Set tensor values based on preprocessed inputs. interpreter.set_tensor(input_index, processed_image.astype(np.float32)) # Run inference step. interpreter.invoke() # Retrieve outputs from allocated memory buffers inside Interpreter instance. predictions = interpreter.get_tensor(output_index) result = postprocess(predictions) # Optional depending upon use-case specifics. ``` 以上即为整个基于 Tensorflow Lite 实现 GEMMA3 局部布署的大致框架描述;当然具体实施过程中还可能会遇到各种挑战和技术难点等待克服解决。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值