見出し画像

Google Colab で Shisa 7B を試す

「Google Colab」で「Shisa 7B」を試したので、まとめました。


1. Shisa 7B

Shisa 7B」 ( shisa-7b-v1) は、合成データ駆動型アプローチを使用して、堅牢な英語機能を維持しながら強力な日本語パフォーマンスを達成することを目的とした、日英バイリンガル (JA/EN) の汎用チャット モデルです。

このモデルは Mistral 7Bベースで、Mistralのオリジナルトークナイザーよりも日本語で2倍以上効率的な、カスタムJAに最適化された拡張トークナイザーを備えています。ベースモデルは、主に日本のトークンを追加して8B用に事前学習しています。その後、「airoboros-3.1」を機械翻訳したもの、「ultrafeedback_binarized」で高得点を獲得したもの、そして新たに生成した「airoboros」データを直接使用してファインチューニングしています。

また、商用でも使用できる寛容な Apache 2.0 ライセンスの下で、ベースモデル、データセット、パイプラインコードをリリースします。

・ベースモデル
 ・
shisa-base-7b-v1 : ベースモデル
・データセット
 shisa-pretrain-en-ja-v1 : JA/EN 事前学習データセット
 ultra-orca-boros-en-ja : JA/EN 指示データセット
 shisa-en-ja-dpo-v1 : JA/EN DPOペア
・パイプラインコード
 Shisa repository : 翻訳、データセット生成、学習、評価コード

詳細な記事やプロセスの詳細をWikiに公開しています。

2. Shisa 7B のモデル

現在提供されている「Shisa 7B」のモデルは、次の2つです。

augmxnt/shisa-base-7b-v1
augmxnt/shisa-7b-v1

3. Colabでの実行

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

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

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

(2) トークナイザーとモデルの準備。

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, TextStreamer

# トークナイザーとモデルの準備
tokenizer = AutoTokenizer.from_pretrained(
    "augmxnt/shisa-7b-v1",
    use_fast=True
)
model = AutoModelForCausalLM.from_pretrained(
    "augmxnt/shisa-7b-v1",
    torch_dtype=torch.bfloat16 if torch.cuda.is_bf16_supported() else torch.float16,
    device_map="auto"
)

(3) 推論の実行。

# プロンプトの準備
chat = [
    {"role": "system", "content": "あなたはアニメファンです。"},
    {"role": "user", "content": "まどか☆マギカでは誰が一番かわいい?"},
]

# 推論の実行
inputs = tokenizer.apply_chat_template(chat, add_generation_prompt=True, return_tensors="pt")
with torch.no_grad():
    outputs = model.generate(
        inputs.to(model.device),
        pad_token_id=tokenizer.eos_token_id,
        max_new_tokens=256,
        temperature=0.3,
        repetition_penalty=1.15,
        top_p=0.95,
        do_sample=True,
        streamer=TextStreamer(tokenizer, skip_prompt=True),
    )

まどかの登場キャラクターの中で、最も人気のあるのは美樹さやかでしょう。彼女の魅力的な外見と性格は、多くのファンが彼女に惹かれます。</s>

4. 日本語データセットのレビュー

Shisaの開発にあたり、日本語データセットのレビューが行われました。

A Review of Public Japanese Training Sets

4-1. 日本語データセットのレビュー

・中華系モデル > 日本語モデル
「Japanese Stable LM Beta Instruct 70B」でも、基本的なチャットプロンプトに対して、正しく自然な日本語で返答することに問題がある。ネイティブスピーカーテストでも「Qwen-14B-Chat」とほぼ同等、「XWin-LM-70B-V0.1」よりかなり悪い結果となった。

・事前学習データセット

日本語モデルの多くで、「Wikipedia」「mC4」「Pile」「OSCAR」などの比較的低品質でフィルタリングされていないデータセットが使われている。
過去数ヶ月の間に、「SlimPajama」「MADRAD-400」「CulturaX」などの事前学習のためのはるかに高品質でフィルタリンクされているデータセットが公開されている。

・指示データセット
日本語モデルの多くで古い指示チューニング学習データセット(Alpaca / HH-RLHFなど) が使われている。オープンソースのファインチューニングコミュニティは、これらの初期のチューニングセットから大きく前進している。

既存の機械翻訳データセットの使用を完全に放棄し、独自の道を進むことにしました。

4-2. 翻訳データセットの作成

「GPT-4」は丁寧な/通常の音声レベルの日本語で非常に強く、翻訳に確実に使用できますが、そのスループットとコストが問題でした。「DeepL」「Google翻訳」「text-bison-32k」「gpt-4-0613」の間で多くの人間検証済み比較を行いました。

text-bison-32k」は翻訳を迅速に生成するのに十分な安価かつ迅速に実行でき、特定の単純なアルゴリズムを使用して、潜在的に問題のある翻訳を修正するために「gpt-4」を使用することにしました。


関連



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