Windows 11 Pro で Gemma 2 2B JPN を使ってみた備忘録 (original) (raw)

目的

Gemma 2 JPN を使ったことを記録する

注意事項

初めて実行したときから時間が経って記事にしたため、抜け漏れがあるかもしれません。ご了承ください。

環境

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.co

事前準備

huggingface でアカウントを作り、 settings ページで、アクセストークンを作る

https://huggingface.co/settings/tokens

参考画像

前提条件

準備

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 リソース

大体 6GBGPU 使っている

今後

OpenWebUI とか使って自由に使えるようにしてみたい