このNLPクラウド・コースでは、AWS上のNVIDIA A10 GPUにMistral 7b生成AIモデルをデプロイして使用する方法を紹介します。
Mistral 7bモデルは、すべてのベンチマークでLLaMA 3 7bを、多くのベンチマークでLLaMA 3 13bを上回っている。実際、LLaMA 1 34bモデルと同等でさえある。
そのため、少なくとも24GBのVRAMを搭載したA10 GPUが必要なのです。
コースの構成はこうだ:
こんにちは、NLPクラウドのジュリアン・サイナスです。
本日は、AWS A10 GPUにMistral 7b生成モデルをデプロイする方法を紹介します。
ミストラル7bは、ミストラルAIというフランスの会社が発表した最先端の生成モデルである。
このモデルは2023年9月に発売され、すべての公式ベンチマークでラマ2 7bを上回っている。
さらに興味深いことに、多くのベンチマークでLama 2 13bを上回り、Lama 1 34bと同等である。
Mistral AIはこのモデルをApacheライセンスでリリースした。
チームは、基礎となるモデルと微調整されたチャットバージョンの両方を発表した。
今日はこのビデオでチャット・バージョンを展開します。
Mistral 7bは少なくとも14ギガの仮想メモリを必要とし、コンテキストサイズが大きい場合はそれ以上となる。
AWSのA10 NVIDIA GPUにデプロイするつもりです。このGPUには24ギガの仮想メモリがあり、費用対効果が非常に高いからです。
Mistral 7bを導入する最も簡単な方法は、Hugging Faceフレームワークを使用し、Mistral AIの公式ガイドラインに従うことです。
最初のステップとして、適切なAWSマシンを選択する必要がある。
AWSには大量のマシンがあるので、私ができる最善のアドバイスは、このインスタンスタイプのページから始めて、左側のAccelerated Computingに行くことだ。
ここに、AWSが提供するすべてのアクセラレーション・ハードウェア・インスタンスのリストがあり、今日欲しいのはG5だ。
ここにあるように、G5はA10 GPUを搭載している。
G5インスタンスにはいくつかの種類がある。
GPUが1つしかないものもあれば、4つも8つもあるものもある。
GPUは1つで十分です。1つのGPUに十分な仮想メモリがあるからです。しかし、ミストラル7bモデルを起動するときには、モデルをロードするために一時的にメモリが必要になるので、インスタンスのメモリ量には十分注意しなければなりません。
64ギガあれば十分なので、今日はG5 4Xの大容量インスタンスを選ぶことにする。
さて、AWSコンソールに切り替えて、Launch Instanceをクリックする。
テストA10ミストラルと呼ぼう。
ここではUbuntu OSを選択するが、これにはコツがある。
標準のUbuntu OSを選択したくないのは、NVIDIAドライバを手動でインストールしなければならないからである。
このAMIには、Ubuntu、NVIDIAドライバー、CUDAツールキット、PyTorch、その他が付属している。
ここではG5 4Xラージインスタンスを選択する。
キー・ペアをお持ちでない場合は、作成する必要があります。
もしこれが初めてのことで、VS CodeをAWSインスタンスに接続する方法がよくわからない場合は、AWS上のVS Codeによるリモート開発環境についての専用ビデオをご覧になることをお勧めします。
他のポートを開く必要はないし、ディスクを100ギガくらい追加することをお勧めする。
理論的には、このモデルは20ギガのハードディスクしか必要としないはずだが、ライブラリをインストールする必要があるかもしれないので、もっとあったほうがいい。
Launch Instanceをクリックしよう。
よし、できた。
もし8N GPUを初めて起動したためにクォータの問題が発生した場合は、AWSのサポートに連絡することをお勧めします。
ここでパブリックIPを取得し、VS Codeに切り替えます。
左下では、現在のウィンドウをホストに接続する必要があり、最初にホストを設定する必要があります。
これがAWSから取得したIPアドレスで、これが私のSSHキーだ。
ファイルを保存し、もう一度同じことをして、今度はミストラル7Bをクリックする。
新しい指紋を受け入れたい。
完璧だ。
今は8N GPUマシンに乗っている。
まず、GPUが正しいドライバで利用可能かどうかを確認しましょう。
NVIDIA SMIがあれば完璧です。
ここには8N GPUがあり、それが空になっているのがわかる。
VS Codeで開くテスト・ディレクトリを作成し、テスト・ファイルを作成する。
infer.pyと呼ぶことにしよう。
では、このinfer.pyファイルには何を書けばいいのか?簡単だ。
ミストラルAIモデルのハギング・フェイスを見てみよう。
Hugging Faceでモデルをダウンロードするのが初めてなら、基本的にここからモデルに行けば、大量のモデルが利用できます。
ここをクリックしてミストラル7Bと入力してください。
お分かりのように、ミストラルはすでにリストのトップにあった。
ミストラルのAIチームのガイドラインに従っただけだ。
だから、VS Codeにコードをコピー・ペーストするだけだ。
なぜなら、その前にトランスフォーマー・ライブラリーをインストールする必要があるからだ。
このMistral 7BモデルはTransformersに追加されたばかりなので、PyPyパッケージではまだ利用できませんが、問題ありません。
GitHubリポジトリから直接Transformersをインストールする。
いいね。
これでトランスフォーマーは正しくインストールされた。
浮動小数点 32 のデフォルト・バージョンのモデルを使用すると、A10 GPU には大きすぎるため、浮動小数点 16 バージョンのモデルを使用する必要があります。
というわけで、今日やるべきことは、Torchをインポートして、モデルをロードするときにTorch dtypeというパラメータを追加することだ。
いいね。
では、推論スクリプトを実行してみよう。
いいね。
というわけで、マヨネーズに関する適切なレシピを紹介しよう。
何か他のことをやってみよう
LinuxサーバーにTransformersをインストールする方法をモデルに聞いてみよう。
これを取り除くことができる。
いいね。
だから、CSSのことはよくわからない。
CSSのマークアップを除けば、その通りだ。
なぜこのようなディテールがあるのかはわからないが、7Bのナイスモデルであることは十分伝わったと思うし、使い方もわかっただろうから、次は君の番だ。
これで、Mistral 7B モデルをご自身のサーバーに配備する方法がお分かりいただけたと思います。
おわかりのように、これは必ずしも複雑なものではない。
十分な仮想メモリを持つA10 GPUがない場合、複数の小型GPUが必要になるかもしれません。
その場合、モデルを複数の小さなGPUに分割する必要があります。
もう少し複雑になるので、これには別の専用ビデオが必要になるだろう。
良い一日を。