Windows 11 Pro で Gemma 2 2B JPN を使ってみた備忘録 (original) (raw)
目的
Gemma 2 JPN を使ったことを記録する
注意事項
初めて実行したときから時間が経って記事にしたため、抜け漏れがあるかもしれません。ご了承ください。
環境
- Windows 11 Pro
- RTX3060 12GB
- NVIDIA DRIVE
560.94
- CUDA
12.6
- Python
3.12.5
- huggingface-cli version
0.25.1
nvidia-smi
nvcc -V
$ nvidia-smi Mon Oct 14 21:26:53 2024 +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 560.94 Driver Version: 560.94 CUDA Version: 12.6 | |-----------------------------------------+------------------------+----------------------+ | GPU Name Driver-Model | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | | | | MIG M. | |=========================================+========================+======================| | 0 NVIDIA GeForce RTX 3060 WDDM | 00000000:01:00.0 On | N/A | | 0% 57C P5 46W / 170W | 1283MiB / 12288MiB | 2% Default | | | | N/A | +-----------------------------------------+------------------------+----------------------+ $ $ nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2024 NVIDIA Corporation Built on Thu_Sep_12_02:55:00_Pacific_Daylight_Time_2024 Cuda compilation tools, release 12.6, V12.6.77 Build cuda_12.6.r12.6/compiler.34841621_0 $
参考
事前準備
huggingface でアカウントを作り、 settings
ページで、アクセストークンを作る
https://huggingface.co/settings/tokens
参考画像
前提条件
- CUDA はインストール済みであること
- テキストエディタは任意
準備
cd ~ mkdir -p projects/gemma-2-2b-jpn cd projects/gemma-2-2b-jpn python -m venv venv source venv/Scripts/activate
python -m pip install --upgrade pip
pip install accelerate inquirerpy torchaudio torchvision pip install -U transformers
コードを作る
cat << 'EOL' >> sample.py
from transformers import AutoTokenizer, AutoModelForCausalLM import torch
tokenizer = AutoTokenizer.from_pretrained("google/gemma-2-2b-jpn-it") model = AutoModelForCausalLM.from_pretrained( "google/gemma-2-2b-jpn-it", device_map="auto", torch_dtype=torch.bfloat16, )
messages = [ {"role": "user", "content": "マシーンラーニングについての詩を書いてください。"}, ] inputs = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True, return_dict=True).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=256) generated_text = tokenizer.batch_decode(outputs[:, inputs['input_ids'].shape[1]:], skip_special_tokens=True)[0] print(generated_text.strip())
EOL
content
の中身が入力プロンプトとなる
実行
python sample.py
log
$ python sample.py
Loading checkpoint shards: 100%|█████████████████████████████████████████████████████████| 2/2 [00:04<00:00, 2.19s/it]
The 'max_batch_size' argument of HybridCache is deprecated and will be removed in v4.46. Use the more precisely named 'batch_size' argument instead.
Starting from v4.46, the logits
model output will have the same type as the model (except at train time, where it will always be FP32)
1. データの海、深淵の広がり、 複雑なパターン、隠された知識。 機械学習、その力強さ、 未来を予測、新たな道を開く。
2. 教師あり学習、教師なし学習、 複雑なアルゴリズム、複雑な思考。 ニューラルネットワーク、複雑な構造、 膨大なデータ、学習の旅。
3. 分類、予測、生成、 機械学習の力、無限の可能性。 画像認識、自然言語処理、 未来の技術、新たな世界へ。
4. 誤差、学習、改善、 機械学習の進化、その過程。 複雑な問題、解決への道、 未来の技術、新たな時代へ。 $
GPU 使用量
GPU リソース
大体 6GB
位 GPU 使っている
今後
OpenWebUI とか使って自由に使えるようにしてみたい