谷歌开源Gemma2!魔搭社区推理、微调最佳实践教程

简介: Google面向全球研究人员和开发者发布并开源 Gemma 2 大语言模型!本次Gemma 2 系列为轻量级开放模型,提供9B和27B参数两种尺寸,采用全新的架构设计,性能表现优异。

导读

Google面向全球研究人员和开发者发布并开源 Gemma 2 大语言模型!本次Gemma 2 系列为轻量级开放模型,提供9B和27B参数两种尺寸,采用全新的架构设计,性能表现优异。

官方技术报告总结,Gemma 2是一种新的开放模型标准,旨在实现效率和性能的最优化:

  • 27B版本性能在基准测试中超越了比其规模大两倍的模型,这一突破性的效率为开放模型领域树立了新标准;
  • 27B模型可用在单个Google Cloud TPU主机、NVIDIA A100 80GB GPU 或NVIDIA H100 GPU上全精度高效运行推理,大幅降低成本的同时保持高性能,让模型部署更普及、实惠;
  • Gemma 2经过优化,可在各种硬件上以惊人的速度运行,从功能强大的游戏笔记本电脑和高端台式机,到基于云的设置。

技术报告:

https://blog.google/technology/developers/google-gemma-2

Benchmark

image.gif

 

以下为大家带来新鲜的Gemma 2 魔搭社区推理、微调最佳实践教程。

环境配置与安装

本文使用的模型为模型,可在ModelScope的Notebook的环境的配置下运行(显存24G) 。

环境配置与安装

本文主要演示的模型推理代码可在魔搭社区免费实例PAI-DSW的配置下运行(显存24G) :

点击模型右侧Notebook快速开发按钮,选择GPU环境
image.gif

打开Notebook环境:
image.gif

模型链接和下载

HF格式模型链接:

https://modelscope.cn/models/LLM-Research/gemma-2-9b-it

社区支持直接下载模型的repo:

from modelscope import snapshot_download
model_dir = snapshot_download("LLM-Research/gemma-2-9b-it")

image.gif

或者使用CLI下载

modelscope download --model=LLM-Research/gemma-2-9b-it --local_dir .

image.gif

GGUF格式模型链接:

https://modelscope.cn/models/LLM-Research/gemma-2-9b-it-GGUF

 

GGUF模型下载:

modelscope download --model=LLM-Research/gemma-2-9b-it-GGUF --local_dir . gemma-2-9b-it-Q5_K_L.gguf

image.gif

Gemma2模型推理

升级transformers

!pip install "transformers==4.42.1" --upgrade

image.gif

模型推理

# pip install accelerate
from modelscope import AutoTokenizer, AutoModelForCausalLM
import torch
tokenizer = AutoTokenizer.from_pretrained("LLM-Research/gemma-2-9b-it")
model = AutoModelForCausalLM.from_pretrained(
    "LLM-Research/gemma-2-9b-it",
    device_map="auto",
    torch_dtype=torch.bfloat16
)
input_text = "Write me a poem about Machine Learning."
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
outputs = model.generate(**input_ids)
print(tokenizer.decode(outputs[0]))

image.gif

显存占用:
image.gif

使用Ollama推理

Ollama 是一款极其简单的基于命令行的工具,用于运行 LLM。它非常容易上手,可用于构建 AI 应用程序。

Linux环境使用

Liunx用户可使用魔搭镜像环境安装【推荐】

git clone https://www.modelscope.cn/modelscope/ollama-linux.git
cd ollama-linux
sudo chmod 777 ./ollama-modelscope-install.sh
./ollama-modelscope-install.sh

image.gif

启动Ollama服务

ollama serve

image.gif

创建ModelFile

复制模型路径,创建名为“ModelFile”的meta文件,内容如下:

FROM /mnt/workspace/gemma-2-9b-it-Q5_K_L.gguf
PARAMETER stop "<start_of_turn>"
PARAMETER stop "<end_of_turn>"
TEMPLATE """<start_of_turn>user
{{ if .System }}{{ .System }} {{ end }}{{ .Prompt }}<end_of_turn>
<start_of_turn>model
{{ .Response }} <end_of_turn>"""
# set the system message
SYSTEM """
You are a helpful assistant.
"""

image.gif

创建自定义模型

使用ollama create命令创建自定义模型

ollama create mygemma2 --file ./ModelFile

image.gif

运行模型:

ollama run mygemma2

image.gif

Gemma2中文增强&自我认知微调

我们介绍使用ms-swift对gemma2-9b-it进行中文增强&自我认知微调,并对微调前后模型进行推理与评测效果展示。ms-swift是魔搭社区官方提供的LLM工具箱,支持250+大语言模型和35+多模态大模型的微调、推理、量化、评估和部署,包括:Qwen、Llama、GLM、Internlm、Yi、Baichuan、DeepSeek、Llava等系列模型。代码开源地址:https://github.com/modelscope/swift

 

ms-swift已接入gemma2系列模型,包括:gemma2-9b, gemma2-9b-it, gemma2-27b, gemma2-27b-it。这里,我们对gemma2-9b-it使用经清洗的中英文SFT通用、代码和数学数据集进行中文增强,并使用自我认知数据集修改模型对自己和作者的认知。

 

我们使用的数据集链接如下:

SFT数据集:

https://modelscope.cn/datasets/swift/swift-sft-mixture

 

自我认知数据集:

https://modelscope.cn/datasets/swift/self-cognition

环境准备:

# 设置pip全局镜像 (加速下载)
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
# 安装ms-swift
git clone https://github.com/modelscope/swift.git
cd swift
pip install -e '.[llm]'
# 安装评测相关依赖
pip install -e '.[eval]'
# gemma2依赖
pip install transformers>=4.42
# 如果要使用vllm对gemma2进行推理加速, 需要使用源代码方式进行安装
git clone https://github.com/vllm-project/vllm.git
cd vllm
pip install -e .

image.gif

原始模型的推理:

# Experimental environment: A100
# 如果是本地模型, 需指定`--model_type gemma2-9b-instruct --model_id_or_path <local_path>`
# 如果使用原生pytorch进行推理, 请设置`--infer_backend pt`
CUDA_VISIBLE_DEVICES=0 swift infer \
    --model_id_or_path LLM-Research/gemma-2-9b-it \
    --infer_backend vllm

image.gif

原始模型的评测与结果:

# Experimental environment: A100
# 评测后端由llmuses库提供: https://github.com/modelscope/eval-scope
# 推荐使用vllm进行推理加速. 如果使用原生pytorch进行推理, 请设置`--infer_backend pt`
CUDA_VISIBLE_DEVICES=0 swift eval \
    --model_id_or_path LLM-Research/gemma-2-9b-it \
    --eval_dataset arc ceval gsm8k mmlu --eval_backend Native \
    --infer_backend vllm

image.gif

Model

arc

ceval

gsm8k

llama3-8b-instruct

0.7628

0.5111

0.7475

gemma2-9b-instruct

0.8797

0.5275

0.8143

gemma2-7b-it的中文增强微调:

这里为了降低训练的时间,对数据集进行了较少的采样。如果要想进行更多数据集的微调,可以适当增大混合的比例,例如:`--dataset swift-mix:sharegpt#50000 swift-mix:firefly#20000 swift-mix:codefuse#20000 swift-mix:metamathqa#20000 self-cognition#1000`。

 

我们对embedding层、所有的linear层和lm_head层加上lora,并设置layer_norm层可训练。我们在中文增强的同时,修改模型的自我认知,让模型认为自己是小黄,由魔搭创建。

# Experimental environment: 4 * A100
# 4 * 80GB GPU memory
# 如果是本地模型, 需指定`--model_type gemma2-9b-instruct --model_id_or_path <local_path>`
nproc_per_node=4
MASTER_PORT=29500 \
NPROC_PER_NODE=$nproc_per_node \
CUDA_VISIBLE_DEVICES=0,1,2,3 \
swift sft  \
    --model_id_or_path LLM-Research/gemma-2-9b-it \
    --dataset swift-mix:sharegpt#10000 swift-mix:firefly#5000 swift-mix#5000 swift-mix:metamathqa#5000 self-cognition#500 \
    --lora_target_modules EMBEDDING ALL lm_head \
    --lora_modules_to_save LN \
    --adam_beta2 0.95 \
    --learning_rate 5e-5 \
    --num_train_epochs 5 \
    --eval_steps 100 \
    --max_length 8192 \
    --gradient_accumulation_steps $(expr 64 / $nproc_per_node) \
    --model_name 小黄 'Xiao Huang' \
    --model_author 魔搭 ModelScope \
    --save_total_limit -1 \
    --logging_steps 5 \
    --use_flash_attn true \

image.gif

训练损失可视化:
image.gif

资源占用:
image.gif

微调后模型的推理:

# Experimental environment: A100
CUDA_VISIBLE_DEVICES=0 swift infer \
    --ckpt_dir output/gemma2-9b-instruct/vx-xxx/checkpoint-xxx \
    --infer_backend vllm --merge_lora true

image.gif

微调后模型的评测与结果:

# Experimental environment: A100
# 评测后端由llmuses库提供: https://github.com/modelscope/eval-scope
CUDA_VISIBLE_DEVICES=0 swift eval \
    --ckpt_dir output/gemma2-9b-instruct/vx-xxx/checkpoint-xxx \
    --eval_dataset arc ceval gsm8k mmlu --eval_backend Native \
    --infer_backend vllm --merge_lora true

image.gif

微调得到的模型将在之后上传modelscope

Model

arc

ceval

gsm8k

原始模型

0.8797

0.5275

0.8143

微调后模型

0.872

0.5498

0.8021

 

点击链接👇直达原文

https://modelscope.cn/models/LLM-Research/gemma-2-9b-it?from=alizishequ_text

相关实践学习
在云上部署ChatGLM2-6B大模型(GPU版)
ChatGLM2-6B是由智谱AI及清华KEG实验室于2023年6月发布的中英双语对话开源大模型。通过本实验,可以学习如何配置AIGC开发环境,如何部署ChatGLM2-6B大模型。
相关文章
|
数据可视化 物联网 Swift
谷歌发布开源LLM Gemma,魔搭社区评测+最佳实践教程来啦!
Gemma是由Google推出的一系列轻量级、先进的开源模型,他们是基于 Google Gemini 模型的研究和技术而构建。
|
机器学习/深度学习 存储 人工智能
谷歌Gemma介绍、微调、量化和推理
谷歌的最新的Gemma模型是第一个使用与Gemini模型相同的研究和技术构建的开源LLM。这个系列的模型目前有两种尺寸,2B和7B,并且提供了聊天的基本版和指令版。
1087 2
|
Kubernetes Cloud Native 关系型数据库
使用Zadig从0到1搭建持续交付平台(上)
使用Zadig从0到1搭建持续交付平台
使用Zadig从0到1搭建持续交付平台(上)
|
人工智能 Java Serverless
【MCP教程系列】搭建基于 Spring AI 的 SSE 模式 MCP 服务并自定义部署至阿里云百炼
本文详细介绍了如何基于Spring AI搭建支持SSE模式的MCP服务,并成功集成至阿里云百炼大模型平台。通过四个步骤实现从零到Agent的构建,包括项目创建、工具开发、服务测试与部署。文章还提供了具体代码示例和操作截图,帮助读者快速上手。最终,将自定义SSE MCP服务集成到百炼平台,完成智能体应用的创建与测试。适合希望了解SSE实时交互及大模型集成的开发者参考。
15059 60
|
4月前
|
并行计算 监控 安全
高效 GPU 加速:DeepSeek-R1 系列模型在 llama.cpp 上的生产级部署指南
本文详解如何在RTX 30/40系显卡上,通过llama.cpp高效部署DeepSeek-R1-8B模型。涵盖CUDA镜像选择、GPU卸载调优、显存控制与高可用架构,结合Docker、Prometheus监控及负载均衡,实现低延迟、高吞吐的生产级推理,助力大模型落地应用。
|
7月前
|
机器学习/深度学习 人工智能 API
用Macbook微调Qwen3!手把手教你用微调给Qwen起一个新名字
本文介绍如何在MacBook上使用苹果MLX框架高效微调Qwen3大模型。借助MLX的高性能计算与统一内存架构,仅需2分钟即可完成训练,内存占用低至2GB,推理速度达400 Token/s,并支持快速部署为本地API服务,展现Mac轻薄本的强大AI生产力潜力。
3264 16
用Macbook微调Qwen3!手把手教你用微调给Qwen起一个新名字
|
9月前
|
自然语言处理 数据可视化 C++
Github 68000+ star,一款提升论文写作效率的黑科技,挖掘大语言模型的学术潜能,为什么gpt_academic能成为你论文写作的秘密武器?
binary-husky/gpt_academic 是一款集成 GPT/GLM 类大模型的学术写作优化神器,学术界和科研领域都在快速拥抱大语言模型 (LLM),但真正能助力论文阅读、润色、写作的工具却少之又少。gpt_academic(GPT 学术优化)正是为此诞生:聚焦论文生产全流程,从阅读理解、翻译润色、结构优化,到理工项目剖析,提供一站式解决方案。
596 0
|
机器学习/深度学习 人工智能 文字识别
POINTS 1.5:腾讯微信开源的多模态大模型,超越了业界其他的开源视觉语言模型,具备强大的视觉和语言处理能力
POINTS 1.5是腾讯微信推出的多模态大模型,基于LLaVA架构,具备强大的视觉和语言处理能力。它在复杂场景的OCR、推理能力、关键信息提取等方面表现出色,是全球10B以下开源模型中的佼佼者。
964 58
POINTS 1.5:腾讯微信开源的多模态大模型,超越了业界其他的开源视觉语言模型,具备强大的视觉和语言处理能力

热门文章

最新文章