見出し画像

Google Colab で Vicuna-v1.5 を試す

「Google Colab」で「Vicuna-v1.5」を試したので、まとめました。

【注意】T4のハイメモリで動作確認しました。


1. Vicuna-v1.5

「Vicuna-v1.5」は、「LMSys」が開発したLLMです。LLaMa 2ベースで学習ています。

2. Vicuna-v1.5のモデル

「Vicuna-v1.5」では、次の5種類のモデル (LongChat含む) が提供されています。

lmsys/vicuna-7b-v1.5
lmsys/vicuna-7b-v1.5-16k
lmsys/vicuna-13b-v1.5
lmsys/vicuna-13b-v1.5-16k
lmsys/longchat-7b-v1.5-32k

3. Colabでの実行

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

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

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

(2) トークナイザーとモデルの準備。
今回は、「rinna/bilingual-gpt-neox-4b-instruction-ppo」を8bit量子化で指定しています。

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

# トークナイザーとモデルの準備
tokenizer = AutoTokenizer.from_pretrained(
    "lmsys/vicuna-7b-v1.5",
    use_fast=False,
)
model = AutoModelForCausalLM.from_pretrained(
    "lmsys/vicuna-7b-v1.5",
    load_in_8bit=True,
    torch_dtype=torch.float16,
    device_map="auto",
)

(3) 推論の実行。
入力プロンプトの書式は、次のとおりです。

# プロンプトの準備
prompt = """ユーザー: まどか☆マギカでは誰が一番かわいい?その理由も説明して。
システム: """

# 推論の実行
token_ids = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")
with torch.no_grad():
    output_ids = model.generate(
        token_ids.to(model.device),
        max_new_tokens=512,
        do_sample=True,
        temperature=1.0,
        top_p=0.85,
        pad_token_id=tokenizer.pad_token_id,
        bos_token_id=tokenizer.bos_token_id,
        eos_token_id=tokenizer.eos_token_id
    )
output = tokenizer.decode(output_ids.tolist()[0][token_ids.size(1):])
print(output)
まどか☆マギカには多くのキャラクターが登場しますが、一番かわいいキャラクターは「桜子」です。彼女はとてもかわいい容姿をしており、愛らしい性格です。また、彼女は魔法を使うことができるエルフです。そのため、彼女は普通の人間には見えないような美しい姿をしています。そのため、桜子はまどか☆マギカの中でも特にかわいいと評判です。</s>



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