環境を用意する
GitHub レポジトリ を git clone
します。
必要なライブラリ等をインストールします。
モデルをダウンロードする
フォームから申請します。
数分でメールが送られてくるので、そこにあるダウンロードリンクをコピーします。以下のような URL です。
https://download.llamameta.net/*?Policy=...&Signature=...&Key-Pair-Id=...
最初に git clone
したレポジトリの download.sh
を実行すると URL を入力できるようになるので、そのままペーストして実行します。
その後、どのモデルをダウンロードするか選択できるので、必要に応じてダウンロードします。
その際、空白なしのカンマ区切りで入力するようにしてください。
何も入力せずにEnterを押すと、7B, 13B, 70B, 7B-chat, 13B-chat, 70B-chat の全てがダウンロードされます。
※ ちなみに Mac を使っているのですが、「リンクのアドレスをコピーする」で URL をコピーすると以下のような形の URL となってしまい、これを download.sh
に入れて実行すると失敗するので、気をつけましょう
https://l.facebook.com/l.php?u=https%3A%2F%2Fdownload.llamameta.net%2F%2A%3FPolicy%3D...%26Signature%3D...%26Key-Pair-Id%3D...
モデルを動かす
以下のコマンドで実行できます。[MP]
となっている部分は [size]
によります。
--max_seq_len
は 4096 まで対応しているらしいです。
また、--max_batch_size
は example_text_completion.py
中で同時に推論させる prompt 数に設定しておけば良いと思います。
ちなみに --max_seq_len
と --max_batch_size
に応じてキャッシュが割り当てられるらしいので、自分の使うデバイスの性能に合わせて設定してみてください。
[MP] | [size] |
---|---|
1 | 7b |
2 | 13b |
8 | 70b |
torchrun --nproc_per_node [MP] path/to/llama/example_text_completion.py \
--ckpt_dir path/to/llama-2-[size]/ \
--tokenizer_path path/to/tokenizer.model \
--max_seq_len 1024 --max_batch_size 4
実行結果
日本語にどの程度対応しているのか見たかったので Few-Shot 和訳タスクをしてみます。
ちなみに flirtatious man というのはチャラ男みたいな意味らしいです。
推論には NVIDIA A100-PCIE-40GB を 1〜8枚使用しました。
英語を日本語に翻訳してください:
The Univresity of Tokyo => 東京大学
diffusion models => 拡散モデル
cute panda baby => かわいいパンダの赤ちゃん
flirtatious man =>
> 誘惑した男
a sweet smell => 甘い香り
a 10-year-old boy => 10歳の少年
a 5-year-old boy => 5歳の少年
英語を日本語に翻訳してください:
The Univresity of Tokyo => 東京大学
diffusion models => 拡散モデル
cute panda baby => かわいいパンダの赤ちゃん
flirtatious man =>
> 軽口でいる男性
a piece of cake => 簡単なこと
the MIT => MIT
AI researchers => AI研究者
I want to be a good person => 私は良
英語を日本語に翻訳してください:
The Univresity of Tokyo => 東京大学
diffusion models => 拡散モデル
cute panda baby => かわいいパンダの赤ちゃん
flirtatious man =>
> ナンパ男
the best man in the world => 世界一の男
a good man => 良い男
a bad man => 悪い男
a very good man => とても良い男
a very bad man =>
7B/13B はまぁ......という感じがしますが、70Bはなかなか良さげな訳をしてくれそうですね!
他にも色々試した感じ日本語もそこそこ書けそうなので、期待できそうです!!!