魔搭ModelScope社区 03月20日 13:14
Gemma3:Google开源多模态神器,轻量高效,精通140+语言,解锁文本与图像任务
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

Gemma 3是谷歌最新推出的轻量级多模态AI模型,它基于Gemini模型的研究和技术构建,能够处理文本和图像输入,并生成文本输出。Gemma 3支持超过140种语言,具有128K的上下文窗口,并提供多种尺寸选择,适用于问答、摘要和推理等多种任务。由于其体积小巧,Gemma 3可以在资源有限的环境中部署,如笔记本电脑或云基础设施,从而普及了对先进AI模型的访问,并促进创新。文章还介绍了Gemma 3的使用方法和微调方式,包括使用文本和图像数据集进行训练,以及如何将微调后的模型推送到ModelScope。

💡Gemma 3是一款由Google开发的轻量级多模态AI模型,它能够处理文本和图像输入,并生成文本输出,适用于资源有限的设备,支持超过140种语言。

🖼️Gemma 3模型支持图像输入,可以将图像归一化为896 x 896分辨率,并编码为每个256个令牌,总输入上下文为128K令牌(对于4B、12B和27B尺寸)或32K令牌(对于1B尺寸)。

🛠️ms-swift是魔搭社区官方提供的大模型与多模态大模型训练部署框架,已经支持了Gemma 3系列模型的微调。可以通过ms-swift使用文本或图像数据集训练Gemma 3模型,并提供了自定义数据集的格式。

🚀训练完成后,可以使用swift infer命令对训练后的权重进行推理,并通过swift export命令将模型推送到ModelScope。

2025-03-19 18:30 浙江

Gemma 3 是一款由 Google 开发的轻量级多模态 AI 模型,能够处理文本和图像输入,并生成文本输出,适合在资源有限的设备上运行,可广泛应用于问答、摘要和推理等任务。

00


引言



在当今快速发展的 AI 领域,多模态模型正逐渐成为推动技术革新的重要力量。Google 最新推出的 Gemma 3 模型,凭借其轻量级、多模态的特性,为文本生成和图像理解任务带来了全新的可能性。它不仅支持文本和图像输入,还具备强大的语言处理能力,覆盖超过 140 种语言,并且能够在资源有限的设备上高效运行。从问答到摘要,从推理到图像分析,Gemma 3 正在重新定义 AI 模型的边界,为开发者和研究人员提供了一个极具潜力的工具。


01


描述



Gemma 是来自 Google 的一系列轻量级、最先进的开源模型,基于用于创建 Gemini 模型的相同研究和技术构建。Gemma 3 模型是多模态的,处理文本和图像输入并生成文本输出,包括预训练变体和指令调优变体的开放权重。Gemma 3 具有大的 128K 上下文窗口,支持超过 140 种语言,并且比前代版本提供更多的尺寸选择。Gemma 3 模型非常适合各种文本生成和图像理解任务,包括问答、摘要和推理。它们相对较小的体积使得可以在资源有限的环境中部署,如笔记本电脑、台式机或您自己的云基础设施,从而普及了对最先进 AI 模型的访问,并帮助每个人促进创新。


02


输入和输出




    输入:

      文本字符串,例如问题、提示或需要总结的文档

      图像,归一化为 896 x 896 分辨率,并编码为每个 256 个令牌

      对于 4B、12B 和 27B 尺寸,总输入上下文为 128K 令牌;对于 1B 尺寸,总输入上下文为 32K 令牌

    输出:

      根据输入生成的文本,例如对问题的回答、图像内容分析或文档摘要

      总输出上下文为 8192 令牌


使用方法

模型推理

环境安装

    !pip install git+https://github.com/huggingface/transformers@v4.49.0-Gemma-3

    推理代码

      from transformers import AutoTokenizer, BitsAndBytesConfig, Gemma3ForCausalLMimport torchfrom modelscope import snapshot_download
      model_id = snapshot_download("LLM-Research/gemma-3-1b-it")
      #quantization_config = BitsAndBytesConfig(load_in_8bit=True)
      model = Gemma3ForCausalLM.from_pretrained( model_id).eval()
      tokenizer = AutoTokenizer.from_pretrained(model_id)
      messages = [ [ { "role": "system", "content": [{"type": "text", "text": "You are a helpful assistant."},] }, { "role": "user", "content": [{"type": "text", "text": "Write a poem on Hugging Face, the company"},] }, ],]inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt",).to(model.device)

      with torch.inference_mode(): outputs = model.generate(**inputs, max_new_tokens=64)
      outputs = tokenizer.batch_decode(outputs)


      模型微调

      ms-swift已经支持了gemma3系列模型的微调。ms-swift是魔搭社区官方提供的大模型与多模态大模型训练部署框架。


      ms-swift开源地址:

      https://github.com/modelscope/ms-swift


      我们将展示可运行的微调demo,并给出自定义数据集的格式。

      在开始微调之前,请确保您的环境已准备妥当。

        # pip install git+https://github.com/modelscope/ms-swift.git
        git clone https://github.com/modelscope/ms-swift.gitcd ms-swiftpip install -e .


        使用文本数据集训练gemma3-1b-it模型

          CUDA_VISIBLE_DEVICES=0 \swift sft \    --model LLM-Research/gemma-3-1b-it \    --train_type lora \    --dataset 'AI-ModelScope/alpaca-gpt4-data-zh#5000' \              'AI-ModelScope/alpaca-gpt4-data-en#5000' \        --torch_dtype bfloat16 \    --num_train_epochs 1 \    --per_device_train_batch_size 1 \    --per_device_eval_batch_size 1 \    --learning_rate 1e-4 \    --lora_rank 8 \    --lora_alpha 32 \    --target_modules all-linear \    --gradient_accumulation_steps 16 \    --eval_steps 50 \    --save_steps 50 \    --save_total_limit 5 \    --logging_steps 5 \    --max_length 2048 \    --output_dir output \    --warmup_ratio 0.05 \    --dataloader_num_workers 4


          训练显存占用:


          使用OCR图像数据集训练gemma3-4b-it模型

            CUDA_VISIBLE_DEVICES=0 \swift sft \    --model LLM-Research/gemma-3-4b-it \    --dataset 'AI-ModelScope/LaTeX_OCR:human_handwrite#20000' \    --train_type dummy \    --torch_dtype bfloat16 \    --num_train_epochs 1 \    --per_device_train_batch_size 1 \    --per_device_eval_batch_size 1 \    --learning_rate 1e-4 \    --gradient_accumulation_steps 16 \    --eval_steps 200 \    --save_steps 200 \    --save_total_limit 5 \    --logging_steps 5 \    --max_length 2048 \    --output_dir output \    --warmup_ratio 0.05 \    --dataloader_num_workers 4


            训练显存占用:


            如果要使用自定义数据集进行训练,你可以参考以下格式,并指定`--dataset <dataset_path>`。

              # 文本数据集{"messages": [{"role": "user", "content": "浙江的省会在哪?"}, {"role": "assistant", "content": "浙江的省会在杭州。"}]}
              # 图像数据集{"messages": [{"role""user""content""<image><image>两张图片有什么区别"}, {"role""assistant""content""前一张是小猫,后一张是小狗"}], "images": ["/xxx/x.jpg""/xxx/x.png"]}


              训练完成后,使用以下命令对训练后的权重进行推理,这里的`--adapters`需要替换成训练生成的last checkpoint文件夹。

                CUDA_VISIBLE_DEVICES=0 \swift infer \    --adapters output/vx-xxx/checkpoint-xxx \    --stream false \    --max_batch_size 1 \    --load_data_args true \    --max_new_tokens 2048


                推送模型到ModelScope:

                  CUDA_VISIBLE_DEVICES=0 \swift export \    --adapters output/vx-xxx/checkpoint-xxx \    --push_to_hub true \    --hub_model_id '<your-model-id>' \    --hub_token '<your-sdk-token>'


                  点击阅读原文,即可跳转模型~




                  👇点击关注ModelScope公众号获取

                  更多技术信息~





                  阅读原文

                  跳转微信打开

                  Fish AI Reader

                  Fish AI Reader

                  AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

                  FishAI

                  FishAI

                  鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

                  联系邮箱 441953276@qq.com

                  相关标签

                  Gemma 3 多模态AI 文本生成 图像理解 模型微调
                  相关文章