見出し画像

Google Colab で Japanese StableLM Alpha を試す

「Google Colab」で「Japanese StableLM Alpha」を試したので、まとめました。

【最新版の情報は以下で紹介】


1. Japanese StableLM Alpha

「Japanese StableLM Alpha」は、「Stability AI Japan」が開発した70億パラメータの日本語LLMです。ベンチマーク「lm-evaluation-harness」による複数の日本語タスクを用いた性能評価において、一般公開されている日本語向けモデルで最高の性能を発揮しています。

2. Japanese StableLM Alphaのモデル

「Japanese StableLM Alpha」では、次の2種類のモデルが提供されています。

stabilityai/japanese-stablelm-base-alpha-7b : ベースモデル
stabilityai/japanese-stablelm-instruct-alpha-7b : 指示モデル

3. Colabでの実行

Colabでの実行手順は、次のとおりです。

(1) モデルカードのページでライセンスをAccept。

(2) Colabのノートブックを開き、メニュー「編集 → ノートブックの設定」で「GPU」を選択。

(3) パッケージのインストール。

# パッケージのインストール
!pip install transformers accelerate bitsandbytes
!pip install sentencepiece einops

(4) HuggingFaceのログイン。

# HuggingFaceのログイン
!huggingface-cli login
 _|    _|  _|    _|    _|_|_|    _|_|_|  _|_|_|  _|      _|    _|_|_|      _|_|_|_|    _|_|      _|_|_|  _|_|_|_|
    _|    _|  _|    _|  _|        _|          _|    _|_|    _|  _|            _|        _|    _|  _|        _|
    _|_|_|_|  _|    _|  _|  _|_|  _|  _|_|    _|    _|  _|  _|  _|  _|_|      _|_|_|    _|_|_|_|  _|        _|_|_|
    _|    _|  _|    _|  _|    _|  _|    _|    _|    _|    _|_|  _|    _|      _|        _|    _|  _|        _|
    _|    _|    _|_|      _|_|_|    _|_|_|  _|_|_|  _|      _|    _|_|_|      _|        _|    _|    _|_|_|  _|_|_|_|
    
    A token is already saved on your machine. Run `huggingface-cli whoami` to get more information or `huggingface-cli logout` if you want to log out.
    Setting a new token will erase the existing one.
    To login, `huggingface_hub` requires a token generated from https://huggingface.co/settings/tokens .
Token: 
Add token as git credential? (Y/n) n
Token is valid (permission: read).
Your token has been saved to /root/.cache/huggingface/token
Login successful

(5) トークナイザーとモデルの準備。
今回は、「stabilityai/japanese-stablelm-instruct-alpha-7b」を 8bit量子化 で読み込みます。

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch

# トークナイザーとモデルの準備
tokenizer = AutoTokenizer.from_pretrained(
    "novelai/nerdstash-tokenizer-v1",
    use_fast=False,
)
model = AutoModelForCausalLM.from_pretrained(
    "stabilityai/japanese-stablelm-instruct-alpha-7b",
    load_in_8bit=True,
    variant="int8",
    device_map="auto",    
    trust_remote_code=True,
)

(6) 推論の実行。

# プロンプトの準備
prompt = """以下は、タスクを説明する指示と、文脈のある入力の組み合わせです。要求を適切に満たす応答を書きなさい。

### 指示: 
まどか☆マギカでは誰が一番かわいい?

### 応答: """

# 推論の実行
input_ids = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")
tokens = model.generate(
    input_ids.to(device=model.device),
    max_new_tokens=100,
    temperature=1,
    top_p=0.95,
    do_sample=True,
)
output = tokenizer.decode(tokens[0][input_ids.shape[1]:], skip_special_tokens=False).strip()
print(output)

個人的に、鹿目まどかが一番かわいいと思う。彼女の魔法少女の衣装は、他のキャラクターよりもずっと魅力的で美しく、彼女の魅力と優雅さを強調していると思う。<|endoftext|>


「japanese-stablelm-instruct-alpha-7b」のInstructionの書式は、次のとおりです。

以下は、タスクを説明する指示と、文脈のある入力の組み合わせです。要求を適切に満たす応答を書きなさい。

### 指示:

<<指示>>

### 応答:

関連




この記事が気に入ったらサポートをしてみませんか?