【Llama2】Github和訳してみた！

## 冒頭

私たちは大規模な言語モデルの力を解放しています。最新版のLlamaは、個人、クリエイター、研究者、そしてあらゆる規模のビジネスがアイデアを責任を持って実験、革新、スケールアップできるようになりました。

このリリースには、7Bから70Bのパラメータを持つ、事前学習済みおよび微調整済みのLlama言語モデルのモデルウェイトとスタートコードが含まれています。

このリポジトリは、[Llama 2](https://github.com/facebookresearch/llama#:~:text=example%20to%20load-,Llama%202,-models%20and%20run)モデルをロードして推論を実行するための最小限の例として提供されています。より詳細なHuggingFaceを活用した例については、[llama-recipes](https://github.com/facebookresearch/llama#:~:text=leveraging%20HuggingFace%2C%20see-,llama%2Drecipes,-.)をご覧ください。

## ダウンロード

⚠️7/18: 本日、多くの方がダウンロードに関する問題に遭遇していることを確認しています。問題がまだ解消されていない場合は、すべてのローカルファイルを削除し、リポジトリを再クローンし、[新しいダウンロードリンク](https://github.com/facebookresearch/llama#:~:text=request%20a%20new%20download%20link)を要求してください。ローカルに破損したファイルがある場合は、これらのすべての手順を行うことが重要です。メールでリンクを受け取った際には、リンクのテキスト部分のみをコピーしてください - リンクは [https://download.llamameta.net](https://download.llamameta.net/) で始まるはずであり、[https://l.facebook.com](https://l.facebook.com/) で始まる場合はエラーが発生します。

モデルウェイトとトークナイザーをダウンロードするためには、[Meta AIのウェブサイト](https://github.com/facebookresearch/llama#:~:text=please%20visit%20the-,Meta%20AI%20website,-and%20accept%20our)を訪れて、ライセンスに同意してください。

リクエストが承認されると、メールで署名付きのURLが送信されます。次に、ダウンロードを開始する際に提供されたURLを指定して、download.shスクリプトを実行してください。URLのテキスト自体をコピーすることを確認し、URLを右クリックして「リンクアドレスをコピー」オプションを使用しないでください。コピーしたURLのテキストが [https://download.llamameta.net](https://download.llamameta.net/) で始まる場合、正しくコピーされたことになります。一方、コピーしたURLのテキストが [https://l.facebook.com](https://l.facebook.com/) で始まる場合、誤ってコピーしたことになります。

前提条件：wgetとmd5sumがインストールされていることを確認してください。その後、スクリプトを実行するには、./download.sh を実行します。

リンクは24時間後および一定回数のダウンロード後に期限切れとなりますので、403：Forbiddenなどのエラーが表示される場合は、いつでもリンクを再リクエストできます。

### Hugging Faceでのアクセス方法

[Hugging Face](https://github.com/facebookresearch/llama#:~:text=providing%20downloads%20on-,Hugging%20Face.,-You%20must%20first)でもダウンロードを提供しています。まず、Meta AIのウェブサイトから、Hugging Faceアカウントと同じメールアドレスを使用してダウンロードをリクエストする必要があります。その後、Hugging Face上のいずれかのモデルへのアクセスをリクエストし、1〜2日以内にアカウントが全てのバージョンにアクセスできるようになります。

## セットアップ

PyTorch / CUDAが利用可能なconda環境で、リポジトリをクローンして、トップレベルディレクトリで以下を実行してください：

bashCopy code`pip install -e .`

このコマンドを実行すると、リポジトリ内のパッケージをpipでインストールし、編集可能（editable）モードでインストールされます。この方法を使うと、リポジトリ内のコードを変更した際に即座に反映されるため、開発やテストに便利です。

## 推論（インファレンス）

異なるモデルには異なるモデル並列（MP）の値が必要です：

モデル

MP

7B

1

13B

2

70B

8

すべてのモデルは、最大4096トークンのシーケンス長をサポートしていますが、キャッシュはmax\_seq\_lenとmax\_batch\_sizeの値に基づいて事前に割り当てられます。したがって、それらをハードウェアに合わせて設定してください。

## 事前学習済みモデル

これらのモデルは、チャットやQ&Aのために微調整されていません。それらはプロンプトに対して促される必要があり、期待される回答はプロンプトの自然な続きとなるようにします。

いくつかの例については、example\_text\_completion.pyを参照してください。具体的な実行方法は、以下のコマンドをllama-2-7bモデルで実行する例を示します（nproc\_per\_nodeはMP値に設定する必要があります）：

code`torchrun --nproc_per_node 1 example_text_completion.py \     --ckpt_dir llama-2-7b/ \     --tokenizer_path tokenizer.model \     --max_seq_len 128 --max_batch_size 4`

注意：環境に合わせて、適切なファイルパスや設定を選択してください。

## 微調整済みのチャットモデル

これらの微調整済みモデルは、対話アプリケーション向けにトレーニングされています。これらのモデルの期待される特性と性能を得るためには、[chat\_completion](https://github.com/facebookresearch/llama#:~:text=formatting%20defined%20in-,chat_completion,-needs%20to%20be)で定義された特定のフォーマットに従う必要があります。このフォーマットには、INSTと
タグ、BOS（文の開始）トークン、EOS（文の終了）トークン、およびこれらの間の空白と改行が含まれます（二重のスペースを避けるために入力にstrip()を適用することを推奨します）。

また、安全でないと判断される入力と出力をフィルタリングするために、追加の分類器を展開することもできます。自身の推論コードの入力と出力に安全性チェッカーを追加する方法の[例](https://github.com/facebookresearch/llama-recipes/blob/main/inference/inference.py)は、llama-recipesリポジトリを参照してください。

llama-2-7b-chatを使用した例：

code`torchrun --nproc_per_node 1 example_chat_completion.py \     --ckpt_dir llama-2-7b-chat/ \     --tokenizer_path tokenizer.model \     --max_seq_len 512 --max_batch_size 4`

なお、Llama 2は使用に際して潜在的なリスクを伴う新しいテクノロジーです。これまでに行われたテストはすべてのシナリオを網羅することができなかったため、開発者がこれらのリスクに対処するのを支援するために、[Responsible Use Guide](https://github.com/facebookresearch/llama#:~:text=Responsible%20Use%20Guide)を作成しました。さらなる詳細は、私たちの研究論文でも見つけることができます。

## 問題点

モデルに関するソフトウェアの「バグ」やその他の問題については、以下の手段のいずれかを通じて報告してください：

モデルに関する問題の報告：[github.com/facebookresearch/llama](http://github.com/facebookresearch/llama)

モデルによって生成されたリスクのあるコンテンツの報告：[developers.facebook.com/llama\_output\_feedback](http://developers.facebook.com/llama_output_feedback)

バグやセキュリティ上の懸念の報告：[facebook.com/whitehat/info](https://github.com/facebookresearch/llama#:~:text=facebook.com/whitehat/info)

これらの手段を使用して、問題の報告や改善に協力いただけると幸いです。報告により、モデルの品質とセキュリティを向上させることができます。ありがとうございます。

## モデルカード

モデルに関する詳細な情報は、[MODEL\_CARD.md](https://github.com/facebookresearch/llama#:~:text=See-,MODEL_CARD.md,-.)を参照してください。このファイルには、モデルの仕様、トレーニングデータ、評価方法、使用制約、ライセンスなど、モデルに関する重要な情報が含まれています。モデルの使用に際しては、モデルカードを参照し、適切な使用方法を理解してください。

## ライセンス

当社のモデルとウェイトは、研究者と商業企業の両方に対して、オープンな原則を尊重するために[ライセンス](https://github.com/facebookresearch/llama#:~:text=See%20the-,LICENSE,-file%2C%20as%20well)されています。私たちのミッションは、個人と産業をこの機会を通じて力付けることであり、同時に発見と倫理的なAIの進展を促進する環境を築くことです。

詳細については、LICENSEファイルと私たちの付随する[利用規約](http://Acceptable Use Policy)をご覧ください。

## 参考文献

[研究論文](https://ai.meta.com/research/publications/llama-2-open-foundation-and-fine-tuned-chat-models/)

[Llama 2の技術的概要](https://ai.meta.com/resources/models-and-libraries/llama)

[オープンイノベーションAI研究コミュニティ](https://github.com/facebookresearch/llama#:~:text=Open%20Innovation%20AI%20Research%20Community)

## オリジナルLLaMA

オリジナルLLaMAのリポジトリは、[llama\_v1](https://github.com/facebookresearch/llama/tree/llama_v1)ブランチにあります。

## 最後に

オープンソースになったGithubのページは[こちら](https://github.com/facebookresearch/llama)