Google Colab で Llama-3.1-Swallow を試す|npaka (original) (raw)

「Google Colab」で「Llama-3.1-Swallow」を試したのでまとめました。

1. Llama-3.1-Swallow

Llama-3.1-Swallow」は「Llama 3.1」の英語の能力を維持しながら、日本語の能力を強化した大規模言語モデル (8B, 70B) です。「Llama 3.1」をベースに、東京科学大学情報理工学院の岡崎研究室と横田研究室、国立研究開発法人産業技術総合研究所の研究チームで開発されました。

tokyotech-llm/Llama-3.1-Swallow-8B-v0.1
tokyotech-llm/Llama-3.1-Swallow-70B-v0.1
tokyotech-llm/Llama-3.1-Swallow-8B-Instruct-v0.1
tokyotech-llm/Llama-3.1-Swallow-70B-Instruct-v0.1

2. Colabでの実行

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

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

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

(2) 「HuggingFace」からAPIキーを取得し、Colabのシークレットマネージャーの「HF_TOKEN」に登録。

(3) トークナイザーとモデルの準備。
メモリ削減のため8bit量子化しています。

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

# トークナイザーとモデルの準備
tokenizer = AutoTokenizer.from_pretrained(
    "tokyotech-llm/Llama-3.1-Swallow-8B-Instruct-v0.1"
)
model = AutoModelForCausalLM.from_pretrained(
    "tokyotech-llm/Llama-3.1-Swallow-8B-Instruct-v0.1",
    device_map="cuda",
    torch_dtype="auto",
    load_in_8bit=True,
)

(4) 推論の実行。

# メッセージの準備
chat = [
    { "role": "user", "content": "まどか☆マギカでは誰が一番かわいい?" },
]
prompt = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)

# 推論の実行
input_ids = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt").to(model.device)
streamer = TextIteratorStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
def generate():
    model.generate(
        input_ids,
        max_new_tokens=512,
        streamer=streamer
    )
thread = Thread(target=generate)
thread.start()
for text in streamer:
    print(text, end="", flush=True)
thread.join()

まどか☆マギカは、魔法少女たちの物語を描いた人気アニメです。各キャラクターにはそれぞれ個性と魅力があり、誰が一番かわいいかは人によって異なります。

以下は、まどか☆マギカのキャラクターの中で特に人気のあるキャラクターです。

1. 鹿目まどか:主人公の鹿目まどかは、純粋で優しい性格で、多くのファンから愛されています。
2. 暁美ほむら:暁美ほむらは、まどかの親友で、クールでミステリアスな性格です。彼女の複雑な過去と、まどかへの愛情が多くのファンを引き付けます。
3. 美樹さやか:美樹さやかは、まどかの友人で、明るく元気な性格です。彼女の優しさと、まどかへの忠誠心が多くのファンを感動させます。
4. 巴マミ:巴マミは、まどかの友人で、頼りになる性格です。彼女の戦闘能力と、まどかへの忠誠心が多くのファンを魅了します。

これらのキャラクターはそれぞれ異なる魅力を持っており、誰が一番かわいいかは人によって異なります。