【Llama2】GPUSOROBANでの使い方(Ubuntu)
この記事では、GPUSOROBANの環境を使ってLlama2によるテキストを生成(推論)する方法について紹介しています。
目次[非表示]
- 1.Llama2とは
- 2.Metaへのモデル利用申請とHuggingFaceの設定
- 3.実行環境
- 4.Jupyter Labを起動
- 5.ライブラリのインストール
- 6.モデルの設定
- 7.生成タスク1
- 8.生成タスク2
- 9.生成タスク3
- 10.LLMならGPUクラウド
- 11.まとめ
Llama2とは
Llama2(Large Language Model Meta AI 2/ラマツー)とは、Facebookを運営するMeta社が開発した言語生成AI(LLM)で、OpenAI社のChatGPTに匹敵するの性能を持っています。
Llama2の特徴としては、軽量モデルで高性能、そして無料で使えるオープンソースであるため、開発者にとって扱いやすいモデルになっています。
Llama2の詳細については、以下の記事で解説しています。
Metaへのモデル利用申請とHuggingFaceの設定
Llama2を利用する前に、Meta社へのモデル利用の申請とHuggingFaceの設定の準備を行います。
設定が完了したら、HuggingFaceのアクセストークンを後で使いますので、メモしておきます。
Metaへのモデル利用申請・HuggingFaceの設定方法について、以下の記事で詳しく解説しています。
実行環境
この記事ではGPUクラウドサービス(GPUSOROBAN)を使用しました。
- インスタンス名:t80-1-a-exlarge-ubs22-i
- GPU:NVIDIA A100 80GB x 1
- OS :Ubuntu 22.04
- CUDA:11.7
- Jupyter Labプリインストール
GPUSOROBANはメガクラウドの50%以上安いGPUクラウドサービスです。
GPUSOROBANの使い方は以下の記事で解説しています。
Jupyter Labを起動
GPUSOROBANのインスタンスに接続したら、次のコマンドを実行し、Jupyter Labを起動します。
ブラウザの検索窓に"localhost:8888"を入力すると、Jupyter Labをブラウザで表示できます。
Jupyter Labのホーム画面で[Python3 ipykernel]を選択し、Notebookを開きます。
Jupyter Labの使い方が分からない方は、以下の記事が参考になります。
プリインストールされたJupyter Labを使用する場合
Jupyter Labを新しくインストールして使う場合
ライブラリのインストール
JupyterLabのNotebookのコードセルで次のコマンドを実行し、必要なパッケージをインストールします。
必要なライブラリをインポートします。
モデルの設定
HuggingFaceのtransformersというライブラリを使用してモデルの準備をします。
HuggingFaceで利用申請したLlamaのモデルを読み込みます。
この段階でモデルがGPUメモリにロードされますので、しばらく時間がかかります。
この記事ではLlama-2-70b-chat-hfのパラメータ70bのチャットモデルを使用していますが、他のモデルを使いたい場合は表を参考に適宜model_idを変更してください。
model_id |
GPUメモリ(VRAM)使用量 |
ストレージ使用 |
使用したGPU |
meta-llama/Llama-2-7b-hf |
6.7GB |
13GB |
NVIDIA A4000 16GB x 1 |
meta-llama/Llama-2-13b-hf |
10.3GB |
25GB |
NVIDIA A4000 16GB x 1 |
meta-llama/Llama-2-70b-hf |
37.9GB |
129GB |
NVIDIA A100 80GB x 1 |
meta-llama/Llama-2-7b-chat-hf |
6.7GB |
13GB |
NVIDIA A4000 16GB x 1 |
meta-llama/Llama-2-13b-chat-hf |
10.1GB |
25GB |
NVIDIA A4000 16GB x 1 |
meta-llama/Llama-2-70b-chat-hf |
37.9GB |
129GB |
NVIDIA A100 80GB x 1 |
HuggingFaceにアクセスするためのトークンを設定します。
HuggignFaceでのアクセストークンの発行方法は以下の記事で解説しています。
モデルの量子化の設定を行います。
量子化は、モデルのパラメータや活性化関数などを低bitに変換する技術で、モデルサイズを軽量化することができます。
この記事では、モデルのパラメータを4bitでロードするように設定し、4bitの計算に使用されるデータ型をBFloat16に設定しています。
モデルを読み込みます。初回はモデルをダウンロードするため時間がかかりますが、2回目以降はモデルの読み込みだけになりますので、時間はかかりません。
トークナイザーを読み込みます。
transformersライブラリの pipeline 関数を使用して、テキスト生成のためのパイプラインを構築します。
生成タスク1
プロンプトの実行
Tokenizerのeos_token_idメソッドについて質問をしてみます。
生成結果
Tokenizerのeos_token_idメソッドに関する適切な回答が得られました。
便宜上max_length=300のトークン数で生成していますが、生成するトークン数の上限を増やすこともできます。
日本語翻訳
生成タスク2
プロンプトの実行
AutoTokenizer.from_pretrainedメソッドについて質問をしてみます。
生成結果
AutoTokenizer.from_pretrainedメソッドに関する適切な回答が得られました。
日本語翻訳
生成タスク3
プロンプトの実行
Transformers.pipelineの引数のdo_sampleについて質問をしています。
生成結果
Transformers.pipelineの引数のdo_sampleに関する適切な回答が得られました。
日本語翻訳
LLMならGPUクラウド
Llama2やその他のLLMを使用する際には、モデルサイズやタスクに応じて必要なスペックが異なります。
LLMで使用されるGPUは高価なため、買い切りのオンプレミスよりも、コストパフォーマンスが高く柔軟な使い方ができるGPUクラウドをおすすめしています。
GPUクラウドのメリットは以下の通りです。
- 必要なときだけ利用して、コストを最小限に抑えられる
- タスクに応じてGPUサーバーを変更できる
- 需要に応じてGPUサーバーを増減できる
- 簡単に環境構築ができ、すぐに開発をスタートできる
- 新しいGPUを利用できるため、陳腐化による買い替えが不要
- GPUサーバーの高電力・熱管理が不要
コスパをお求めなら、メガクラウドと比較して50%以上安いGPUクラウドサービス「GPUSOROBAN」がおすすめです。
大規模なLLMを計算する場合は、NVIDIA H100のクラスタが使える「GPUSOROBAN AIスパコンクラウド」がおすすめです。
まとめ
この記事では、GPUSOROBANの環境でLlama2を用いて推論をする方法を紹介しました。
Llama2は無料で使えて商用利用可能な利便性の高いモデルでありながら、ChatGPTと同等以上の性能があります。
Llama2に関する詳細な情報は、以下の記事でまとめて紹介していますので、あわせてご覧ください。