在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Google Gemma 2模型的部署和Fine-Tune演示

谷歌開發者 ? 來源:谷歌云服務 ? 2024-08-09 17:04 ? 次閱讀

以下文章來源于谷歌云服務,作者 Google Cloud

作者 / 曹治政,Google Cloud 解決方案架構師

Google 近期發布了最新開放模型 Gemma 2,目前與同等規模的開放模型相比,取得了明顯的優勢,同時在安全可控性上得到了顯著的增強。

Gemma 2 提供了 9B 以及 27B 兩種參數規模的選擇,同時分別提供了預訓練模型 (Gemma 2-9B/Gemma 2-27B) 與指令微調模型 (Gemma 2-9B-it/Gemma 2-27B-it),優異的性能表現原自 Gemma 2 在訓練階段的各項技術創新。

Gemma 2 支持 8192 tokens 的上下文長度,同時使用了旋轉位置編碼 (RoPE)。Gemma 2-9B 在 Google TPUv4 上訓練而成,Gemma 2-27B 在 Google TPUv5p 上訓練而成。

作為開放模型,用戶目前可以在 Hugging Face 以及 Kaggle 上免費獲取模型權重。

1用戶可以選擇先把模型下載到本地或者云端共享存儲,然后將模型部署至推理框架上。

2也可以選擇在部署模型的過程中從 Hugging Face 上下載模型。

我們通常建議使用第一種方案,這種方式可以避免每次部署模型都從公網下載,提升模型加載以及擴展效率。

Gemma 2 生態廣泛,支持通過多種主流框架進行模型的部署,這些框架包括但不限于:

● Hugging Face Transformers

●Keras NLP

●Pytorch

●Gemma C++

●GGUF

Tensorflow Lite

TensorRT-LLM

●MaxText

●Pax

●Flax

●vLLM

●oLLama

此外,用戶也可以根據實際需求選擇靈活的方式部署 Gemma 2 模型,這些部署方案通常包括:

1本地或 colab 部署:個人用途,體驗模型功能或者構建個人助理。

2GKE 或第三方 Kubernetes 平臺部署:生產用途,用于將模型和生產業務系統集成,同時充分借助 Kubernetes 平臺資源調度和擴展的優勢。

3Vertex AI 部署:生產用途,用于將模型和生產業務系統集成,同時借助 Google AI PaaS 平臺全托管的優勢。

Google Cloud 為用戶提供了方便的操作服務,用戶可以在 Vertex AI Model Garden 上將 Gemma 2 一鍵部署 GKE 集群或者 Vertex AI endpoint 上,并通過可視化界面對性能和日志進行實時查看,同時也根據請求的流量對推理實例動態的擴縮容。

Gemma 2 支持模型的 fine-tuning,用戶可以利用私有數據或者領域內的特定數據對模型進行 fine-tune,對齊領域內的風格和標準、從而更好地支撐業務場景。

大模型的 fine-tuning 通常包括以下幾種方式:

●Full Parameter fine-tuning

Lora fine-tuning

●QLora fine-tuning

其中 Full Parameter fine-tuning 需要對模型的全部參數進行重新訓練,Lora fine-tuning 通過訓練少量的低秩矩陣參數提升模型訓練的效率,QLora fine-tuning 在 Lora 的基礎上對模型精度進行了 4bit 或者 8bit 的量化處理來近一步優化模型的存儲占用。

Lora 和 QLora 在一些特定的場景下可以用很低的成本取得非常好的效果,但是對于一些復雜的場景、或者領域數據更加豐富的場景,還是需要通過全量參數的方式進行繼續訓練。

本次演示我們會通過全量參數訓練的方式對模型進行 fine-tuning,同時結合 Deepspeed 框架來實現模型的分布式訓練。

Fine-Tune 演示

a. 微調數據集

本次模型微調,我們會對 Gemma 2-27B 的預訓練基礎模型利用對話數據進行微調。Gemma 2-27B 是預訓練模型,不具備對話能力,通過對比 fine-tune 前后的模型,可以觀察模型訓練的效果。

訓練數據集使用了 Hugging Face 上的開放數據集 "smangrul/ultrachat-10k-chatml",它一共由 10k 行訓練數據集以及 2k 行測試數據集組成。數據格式如圖所示,每一條數據的 message 列都由一個多輪對話組成。

08032110-49a2-11ef-b8af-92fbcf53809c.png

b. 訓練環境

創建 Vertex AI Workbench,Vertex AI Workbench 是由 Google Cloud 托管的企業級 Jupyter Notebook 服務,它支持多種硬件加速設備,同時預制了依賴包,用戶完成 Workbench 實例的創建后可以通過瀏覽器訪問 Jupyter Notebook 界面,之后快速開啟模型體驗之旅。

08273046-49a2-11ef-b8af-92fbcf53809c.png

△Vertex AI Workbench 實例創建界面

083d4976-49a2-11ef-b8af-92fbcf53809c.png

△Vertex AI Workbench 用戶界面

c. 微調步驟

1. 進入 Vertex AI Workbench 界面,創建新文件,運行下面代碼,加載 Gemma 2-27B 基礎模型,并測試模型針對 prompt 的輸出,此步驟目的是為和訓練后的輸出進行訓練效果對比。

from transformers import AutoTokenizer, AutoModelForCausalLM

import transformers

import torch

#加載模型

model_id = "google/gemma-2-27b"
dtype = torch.bfloat16
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="cuda",
torch_dtype=dtype,
)

#準備prompt(對話格式)

prompt = """### Human: I can't cancel the subscription to your corporate newsletter### Assistant: """

#將prompt轉換成token id并輸入model生成內容

inputs = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")

outputs = model.generate(input_ids=inputs.to(model.device), max_new_tokens=100)

#解碼token id,打印輸出

print(tokenizer.decode(outputs[0]))

084a6d40-49a2-11ef-b8af-92fbcf53809c.png

可以看到模型對話風格生硬,自然對話的效果差。

2. 克隆 peft github 代碼,并切換至模型訓練腳本界面。

!git clone https://github.com/huggingface/peft.git

!cd examples/sft/

Notes

Gemma 2 與開源的 Hugging Face 的 Transformer library 完全兼容,因此用于訓練其它模型的腳本在更改模型名稱后,便可以開始訓練 Gemma 模型。但是需要注意的是,不同模型多輪對話支持的特殊 token 可能不一樣,因此與之相對應的 tokenzier 里面 chat 模板需要提前進行處理。本次我們使用 chatml 格式的模板,只需要在示例腳本上設置對應參數,代碼對會自動對 tokenizer 進行處理。

3. 配置 Hugging Face (用于模型下載) 以及 wandb (用于可視化展示訓練監控指標) 的 token 環境變量。

!echo 'export HUGGINGFACE_TOKEN=YOUR_HF_API_TOKEN' >> ~/.bashrc

!echo 'export WANDB_API_KEY=YOUR_WANDB_API_KEY' >> ~/.bashrc

!source ~/.bashrc

4. 安裝依賴包

!pip install accelerate==0.32.1

!pip install deepspeed==0.14.4

!pip install transformers==4.42.4

!pip install peft==0.11.1

!pip install trl==0.9.6

!pip install bitsandbytes==0.43.1

!pip install wandb==0.17.4

5. 啟動訓練任務,命令會通過 accelerate 啟動一個單機八卡的訓練任務,分布式框架由 deepspeed 實現。訓練任務由 Hugging Face SFTTrainer 實現,它會下載 Hugging Face上的 "smangrul/ultrachat-10k-chatml" 數據集,并讀取 content 字段。

訓練任務采用 bf16 混合精度,由于全量參數微調占用顯存很大,因此每個 GPU device 的 batch size 設置為 1 (激活值非常消耗內存,若大于 1 會導致 OOM),通過將梯度累加設置將單個設備的有效 batch size 提升為 4,同時開啟 gradient_checkpointing 節省激活值對內存的占用。

任務在訓練過程中,指標數據會實時傳送至 wandb,整個訓練周期為 1 個 epoch,訓練任務結束后,模型會自動存放至 gemma2-27b-sft-deepspeed路徑下。

# 任務訓練任務啟動命令

!accelerate launch --config_file "configs/deepspeed_config.yaml" train.py
--seed 100
--model_name_or_path "google/gemma-2-27b"
--dataset_name "smangrul/ultrachat-10k-chatml"
--chat_template_format "chatml"
--add_special_tokens False
--append_concat_token False
--splits "train,test"
--max_seq_len 2048
--num_train_epochs 1
--logging_steps 5
--log_level "info"
--logging_strategy "steps"
--evaluation_strategy "epoch"
--save_strategy "epoch"
--bf16 True
--learning_rate 1e-4
--lr_scheduler_type "cosine"
--weight_decay 1e-4
--warmup_ratio 0.0
--max_grad_norm 1.0
--output_dir "gemma2-27b-sft-deepspeed"
--per_device_train_batch_size 1
--per_device_eval_batch_size 1
--gradient_accumulation_steps 4
--gradient_checkpointing True
--use_reentrant False
--dataset_text_field "content"

# Deespeed配置腳本

compute_environment: LOCAL_MACHINE
debug: false
deepspeed_config:
deepspeed_multinode_launcher: standard
gradient_accumulation_steps: 4
offload_optimizer_device: none
offload_param_device: none
zero3_init_flag: true
zero3_save_16bit_model: true
zero_stage: 3
distributed_type: DEEPSPEED
downcast_bf16: 'no'
machine_rank: 0
main_training_function: main
mixed_precision: bf16
num_machines: 1
num_processes: 8
rdzv_backend: static
same_network: true
tpu_env: []
tpu_use_cluster: false
tpu_use_sudo: false
use_cpu: false

6. 觀察任務訓練指標,等待任務訓練結束。本次訓練,測試數據由 10k 行組成,由于我們采用了 8 張卡訓練,單個卡的 batch size 設置為 1,梯度累積設置為 4,因此 global batch size 為 1*4*8=32,單個 epoch 訓練 step 數量為: 10000/32= 312 steps。從損失值圖表中可以看到,當訓練任務至 20 步左右時,損失值開始快速下降,之后平穩收斂直到訓練任務結束。

086c2386-49a2-11ef-b8af-92fbcf53809c.png

大約 41 分鐘,訓練任務結束。

0890e48c-49a2-11ef-b8af-92fbcf53809c.png

7. 重新加載訓練后的模型,并驗證訓練效果。從內容輸出中可以看到,模型很好地學習到了數據集生成對話的形式和總結風格,能夠以更加流暢、自然的方式進行對話。

from transformers import AutoTokenizer, AutoModelForCausalLM
import transformers
import torch

model_id = "./gemma2-27b-sft-deepspeed"
dtype = torch.bfloat16

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
device_map="cuda",
torch_dtype=dtype,
)

prompt = """### Human: I can't cancel the subscription to your corporate newsletter### Assistant: """

inputs = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")
outputs = model.generate(input_ids=inputs.to(model.device), max_new_tokens=100)
print(tokenizer.decode(outputs[0]))

089427aa-49a2-11ef-b8af-92fbcf53809c.png

以上介紹了 Gemma-2-27B fine-tune 的一個簡單的實驗演示,通過實驗可以看出 Gemma 2 與主流的訓練框架完全兼容,對于已經了解如何 fine-tune 其它模型的開發人員可以快速切換至 Gemma 2 完成模型訓練。

Google Cloud 還提供了更多高級的解決方案,可以幫助用戶通過 Vertex AI Pipeline 或者 Ray On GKE 等方式大規模、自動化地訓練開放模型, 感興趣的讀者可以聯系 Google Cloud 的工作人員獲得更近一步的了解。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Google
    +關注

    關注

    5

    文章

    1765

    瀏覽量

    57530
  • AI
    AI
    +關注

    關注

    87

    文章

    30894

    瀏覽量

    269085
  • 模型
    +關注

    關注

    1

    文章

    3243

    瀏覽量

    48840

原文標題:玩轉 Gemma 2,模型的部署與 Fine-Tuning

文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    了解BERT原理、技術、實踐,只需3分鐘

    它基于谷歌2017年發布的Transformer架構,通常的Transformer使用一組編碼器和解碼器網絡,而BERT只需要一個額外的輸出層,對預訓練進行fine-tune,就可以滿足各種任務,根本沒有必要針對特定任務對模型進行修改。
    的頭像 發表于 03-01 08:58 ?8442次閱讀

    AI領域頂會EMNLP 2020落下帷幕

    自18年谷歌BERT橫空出世以來,預訓練語言模型一躍成為自然語言處理領域的研究熱點,“Pre-training + Fine-tune”也成為NLP任務的新范式,將自然語言處理由原來的手工調參、依靠機器學習專家的階段,進入到可以大規模、可復制的大工業施展的階段。
    的頭像 發表于 12-15 18:12 ?1893次閱讀

    當“大”模型遇上“小”數據

    時,往往直接Fine-tuning會存在過擬合現象,進一步會影響Fine-tune完后模型的Generalization能力。
    的頭像 發表于 11-09 15:49 ?1847次閱讀
    當“大”<b class='flag-5'>模型</b>遇上“小”數據

    如何使用BERT模型進行抽取式摘要

      最近在梳理文本摘要相關內容,翻到一篇19年關于基于BERT模型進行抽取式摘要的老文「BertSum」,在這里分享給大家。該論文一開始掛在arXiv時,為《Fine-tune BERT
    的頭像 發表于 03-12 16:41 ?4827次閱讀
    如何使用BERT<b class='flag-5'>模型</b>進行抽取式摘要

    Transformer的細節和效果如何

    在文本理解任務(Natural Language Understanding)上,預訓練模型已經取得了質的飛躍,語言模型預訓練+下游任務fine-tune基本上已經成為標配。
    的頭像 發表于 08-30 10:12 ?999次閱讀

    如何部署ML模型Google云平臺

    實踐中的機器學習:在 Google 云平臺上部署 ML 模型
    的頭像 發表于 07-05 16:30 ?672次閱讀
    如何<b class='flag-5'>部署</b>ML<b class='flag-5'>模型</b>到<b class='flag-5'>Google</b>云平臺

    自動駕駛中道路異常檢測的方法解析

    最近的辦法主要是通過Outlier Exposure (OE) 將一個不相干的OoD數據集加入到ID數據集, 然后fine-tune已經訓練好的close-set segmentation模型。在這
    發表于 08-15 10:43 ?1010次閱讀
    自動駕駛中道路異常檢測的方法解析

    如何本地部署模型

    近期,openEuler A-Tune SIG在openEuler 23.09版本引入llama.cpp&chatglm-cpp兩款應用,以支持用戶在本地部署和使用免費的開源大語言模型,無需聯網也能使用!
    的頭像 發表于 10-18 11:48 ?2527次閱讀
    如何本地<b class='flag-5'>部署</b>大<b class='flag-5'>模型</b>

    谷歌發布全球最強開源大模型Gemma

    谷歌近日宣布,其全新開源大模型Gemma正式亮相。Gemma被譽為全球性能最強大、同時也是最輕量級的模型系列,分為2B(20億參數)和7B(
    的頭像 發表于 02-22 14:51 ?803次閱讀

    谷歌宣布Gemma模型全球開放使用

    谷歌公司近日宣布,其先進的AI大模型Gemma即日起在全球范圍內開放使用。這一新模型由谷歌DeepMind和其他團隊合作開發,并與其最大的AI模型Gemini共享技術和基礎架構。
    的頭像 發表于 02-23 10:41 ?780次閱讀

    Google Gemma優化后可在NVIDIA GPU上運行

    2024 年 2 月 21 日,NVIDIA 攜手 Google 在所有 NVIDIA AI 平臺上發布面向 Gemma 的優化功能,Gemma
    的頭像 發表于 02-25 11:01 ?466次閱讀

    谷歌發布開源AI大模型Gemma

    近日,谷歌發布了全新AI大模型Gemma,這款模型為各種規模的組織提供了前所未有的機會,以負責任的方式在商業應用中進行分發。
    的頭像 發表于 02-28 17:38 ?847次閱讀

    谷歌AI大模型Gemma全球開放使用

    谷歌公司近日宣布,其全新的AI大模型Gemma現已在全球范圍內開放使用。這一重要舉措不僅彰顯了谷歌在AI領域的領先地位,還為其在全球范圍內的競爭力增添了新
    的頭像 發表于 02-28 18:12 ?1149次閱讀

    谷歌發布新型大語言模型Gemma 2

    在人工智能領域,大語言模型一直是研究的熱點。近日,全球科技巨頭谷歌宣布,面向全球研究人員和開發人員,正式發布了其最新研發的大語言模型——Gemma 2。這款
    的頭像 發表于 06-29 09:48 ?440次閱讀

    谷歌Gemma 2大語言模型升級發布,性能與安全性雙重飛躍

    近日,谷歌面向全球科研界與開發者群體隆重推出了全新升級的Gemma 2大語言模型,標志著人工智能技術在語言處理領域的又一次重大進步。此次發布的Gemma
    的頭像 發表于 07-02 10:20 ?498次閱讀
    主站蜘蛛池模板: 欧美三级精品| 国产欧美久久久精品影院| 成年人网站黄色| 狠狠操夜夜爱| 99久久成人国产精品免费| 欧美日韩一区二区三区视视频| 永久福利盒子日韩日韩免费看| 1024手机在线看永久免费| 一个色亚洲| 国模久久| 国产亚洲欧美成人久久片| 成 人 在 线 免费 8888 www| 日韩欧美亚洲综合久久影院d3| 爱爱小视频免费| 欧美com| 特级一级毛片| 福利色播| 999久久久国产精品| 五月婷婷影院| 国产精品igao在线观看樱花日本| 六月丁香综合网| 狠狠色噜狠狠狠狠| 久久久噜久噜久久gif动图| 免费观看成人欧美1314www| 中文字幕成人乱码在线电影| 激情天堂| 午夜视频黄色| 色婷婷777| 午夜禁片| 国产中文字幕一区| 国产精品久久久久久久久kt| 亚洲娇小性色xxxx| 色老头影视| 日本黄色网址大全| 在线观看www妖精免费福利视频| 黄色日本网站| 亚洲人成影院在线高清| 日韩毛片免费视频一级特黄| 天天天狠天天透天天制色| www.亚洲成人| 超级极品白嫩美女在线|