初めに
SB Intuitions株式会社から現時点で日本語の性能が一番高い(らしい)モデルが出たので、動かしていきます。
/
— SB Intuitions (@sbintuitions) 2024年11月8日
📢日本語に特化した4,000億クラスのパラメータを持つモデルを公開‼️
\
💡公開モデル:Sarashina2-8x70B
詳細はこちら⬇️https://t.co/tAztv0A6pW#SBIntuitions #Sarashina
開発環境
準備
以下をインストールします
pip install torch --index-url https://download.pytorch.org/whl/nightly/cu121 pip install transformers==4.46.2 bitsandbytes==0.44.1 accelerate==1.1.1 sentencepiece==0.2.0
推論
以下で動かします。VRAMは限りがあるので、今回は8bit量子化を行い推論を行います
import torch from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig # モデル名 model_name = "sbintuitions/sarashina2-8x70b" # 8ビット量子化のための設定 bnb_config = BitsAndBytesConfig( load_in_8bit=True, llm_int8_threshold=6.0, # 16bit floatingに保持するしきい値 llm_int8_skip_modules=None # 量子化をスキップするモジュールを指定可能 ) # 8ビット量子化でモデルをロード model = AutoModelForCausalLM.from_pretrained( model_name, quantization_config=bnb_config, device_map="auto", # 複数GPUへの自動割り当て torch_dtype=torch.float16 # その他パラメータにfp16(半精度浮動小数点数)を使用 ) # テスト用の入力シーケンス prompt = "まどマギで一番可愛いキャラクターは、" # トークナイザーのロード tokenizer = AutoTokenizer.from_pretrained(model_name, add_eos_token=False) inputs = tokenizer(prompt, return_tensors="pt") # GPUがある場合にcudaを使用 device = torch.device("cuda" if torch.cuda.is_available() else "cpu") # トークナイズ(入力をトークンに変換) inputs = tokenizer(prompt, return_tensors="pt").to(device) # デバイスに自動的に対応させた状態でモデル推論 outputs = model.generate(inputs["input_ids"], max_new_tokens=100) # 出力のデコード(トークンをテキストに変換) output_text = tokenizer.decode(outputs[0], skip_special_tokens=False) # 結果を表示 print(output_text)
結果は以下の通りです
まどマギで一番可愛いキャラクターは、まどかでもほむらでもマミさんでも杏子でもさやかでもなく、キュゥべえです。 キュゥべえは、魔法少女のマスコットキャラクターです。 キュゥべえは、魔法少女のマスコットキャラクターとして、魔法少女の勧誘やサポートをしています。 キュゥべえは、魔法少女のマスコットキャラクターとして、魔法少女の勧誘やサポートをしていますが、その目的は、魔法少女の魂をソウルジェムに変えることです。 キュゥべえは、魔法少女のマスコットキャラクターとして、魔法少女の勧誘やサポートをしていますが、