ローカルマシン上でGenAI LLMsのパワーを解放しましょう!
ローカルマシンでGenAI LLMsを活用しましょう!
はじめに
GenAI LLMsのリリース以来、私たちはそれらをある方法または別の方法で使用しています。最も一般的な方法は、OpenAIのウェブサイトなどのウェブサイトを介して、OpenAIのGPT3.5 API、GoogleのPaLM API、またはHugging Face、Perplexity.aiなどの他のウェブサイトを介してChatGPTやLarge Language Modelsを使用することです。
これらのアプローチのいずれにおいても、私たちのデータはコンピュータの外部に送信されます。これらのウェブサイトは最高のセキュリティを保証しているとはいえ、何が起こるかわかりませんので、サイバー攻撃のリスクがあるかもしれません。時には、これらのLarge Language Modelsをローカルで実行し、可能であればローカルでチューニングしたい場合もあります。この記事では、Oobaboogaを使用して、つまりLLMsをローカルで設定する方法について説明します。
学習目標
- ローカルシステムに大規模な言語モデルを展開することの意義と課題を理解する。
- 大規模な言語モデルを実行するためのローカル環境を作成する方法を学ぶ。
- 与えられたCPU、RAM、およびGPU Vramの仕様で実行できるモデルを調べる。
- Hugging Faceから任意の大規模な言語モデルをローカルで使用するためのダウンロード方法を学ぶ。
- 大規模な言語モデルを実行するためにGPUメモリを割り当てる方法を確認する。
この記事はData Science Blogathonの一環として公開されました。
Oobaboogaとは何ですか?
OobaboogaはLarge Language Modelsのテキスト生成Webインターフェースです。OobaboogaはGradioをベースにしたWeb UIです。Gradioは、機械学習愛好家によって広く使用されるPythonライブラリで、Oobaboogaはこのライブラリを使用して構築されました。Oobaboogaは、大規模な言語モデルをローカルで実行しようとする際に必要なすべての複雑なことを抽象化します。Oobaboogaには、他の機能を統合するための多くの拡張機能が付属しています。
Oobaboogaを使用すると、Hugging Faceからモデルのリンクを提供することができ、それをダウンロードしてモデルの推論をすぐに開始することができます。Oobaboogaには多くの機能があり、GGML、GPTQ、exllama、およびllama.cppバージョンなど、さまざまなモデルバックエンドをサポートしています。このUI上でLoRA(Low-Rank Adaptation)をLLMの上にロードすることもできます。Oobaboogaは、大規模な言語モデルをトレーニングしてチャットボット/LoRAを作成することができます。この記事では、このソフトウェアのCondaでのインストール方法について説明します。
環境の設定
このセクションでは、condaを使用して仮想環境を作成します。新しい環境を作成するには、Anacondaプロンプトに移動し、次のコマンドを入力します。
conda create -n textgenui python=3.10.9
conda activate textgenui
- 最初のコマンドは、textgenuiという名前の新しいconda/Python環境を作成します。OobaboogaのGithubのreadmeファイルによると、Python 3.10.9バージョンを使用することが望ましいとされています。したがって、このコマンドはこのバージョンの仮想環境を作成します。
- 次に、この環境をアクティベートして、作業用の主要な環境にします。したがって、2番目のコマンドを入力して、新しく作成した環境をアクティベートします。
- 次のステップは、PyTorchライブラリをダウンロードすることです。PyTorchにはCPUのみのバージョンとCPU+GPUのバージョンなど、さまざまなバリエーションがあります。この記事では、CPU+GPUバージョンを使用します。以下のコマンドでダウンロードします。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117
PyTorch GPU Pythonライブラリ
上記のコマンドは、PyTorch GPU Pythonライブラリをダウンロードします。ダウンロードするCUDA(GPU)のバージョンはcu117です。これは時々変更される可能性があるため、最新バージョンをダウンロードするためのコマンドを取得するために公式のPyTorchページを訪問することが推奨されます。GPUへのアクセスがない場合は、CPUバージョンを使用することもできます。
次に、Anacondaプロンプト内のディレクトリをコードをダウンロードするディレクトリに変更します。GitHubからダウンロードするか、git cloneコマンドを使用してここで行います。以下のコマンドを使用して、Oobaboogaのリポジトリを指定したディレクトリにクローンします。
git clone https://github.com/oobabooga/text-generation-webui
cd text-generation-webui
- 最初のコマンドは、このコマンドを実行するフォルダにOobaboogaのリポジトリを取得します。すべてのファイルはtext-generation-uiというフォルダに保存されます。
- したがって、2行目のコマンドでtext-generation-uiのディレクトリに移動します。このディレクトリには、大規模言語モデルとUIの動作に必要なすべてのパッケージが含まれているrequirement.txtファイルがありますので、pipを使用してそれらをインストールします。
pip install -r requirements.txt
上記のコマンドは、hugging face、transformers、bitandbytes、gradioなど、大規模言語モデルの実行に必要なパッケージ/ライブラリをすべてインストールします。ウェブUIを起動する準備が整いました。次のコマンドを使用して起動することができます。
python server.py
次に、Anaconda PromptでURL http://localhost:7860 または http://127.0.0.1:7860 が表示されます。このURLにブラウザでアクセスすると、UIが表示されます。
text-generation-uiの必要なライブラリを正常にインストールしました。次のステップは、大規模言語モデルをダウンロードすることです。
モデルのダウンロードと推論
このセクションでは、Hugging Faceから大規模言語モデルをダウンロードし、推論およびLLMとのチャットを試してみます。まず、UIのトップバーにあるモデルセクションに移動します。以下のようなモデルページが表示されます。
カスタムモデルのダウンロード
右側に「カスタムモデルまたはLoRAをダウンロード」と表示され、その下にダウンロードボタンがあるテキストフィールドが表示されます。このテキストフィールドには、Hugging Faceのウェブサイトからモデルのパスを指定する必要があります。指定したパスのモデルをUIがダウンロードします。例を挙げて試してみましょう。今回は、新しくリリースされたLlama 2に基づいたNous-Hermesモデルをダウンロードします。そのために、Hugging Faceのモデルカードに移動します。
ダウンロードするのは、13B GPTQモデルです(これらのモデルはGPUが必要です。CPUバージョンのみが必要な場合は、GGMLモデルを選択できます)。このモデルは、Llama 2モデルに基づくNous-Hermes 13Bモデルの量子化バージョンです。パスをコピーするには、コピー ボタンをクリックします。そして、Nous-Hermes 13Bモデルのさまざまな量子化バージョンを確認するために下にスクロールする必要があります。
例えば、Nous-Hermes-GPTQモデルのgptq-4bit-32g-actorder_Trueバージョンを選択します。したがって、このモデルのパスは“TheBloke/Nous-Hermes-Llama2-GPTQ:gptq-4bit-32g-actorder_True”となります。コロン(:)の前の部分がモデル名を示し、コロン(:)の後の部分がモデルの量子化バージョンの種類を示しています。これを先ほど見たテキストボックスに貼り付けます。
そして、モデルをダウンロードするためにダウンロードボタンをクリックします。ファイルサイズが8GBなので、ダウンロードには時間がかかります。モデルのダウンロードが完了したら、左側のLoadボタンの横にある更新ボタンをクリックしてリフレッシュします。ドロップダウンから使用するモデルを選択します。モデルがCPUバージョンの場合は、以下のようにLoadボタンをクリックすることができます。
GPU VRAM モデル
GPUタイプのモデル(例えば、ここでダウンロードしたGPTQ)を使用する場合、モデルからGPU VRAMを割り当てる必要があります。モデルのサイズは約8GBなので、それに対して約10GBのメモリを割り当てます(私のGPU VRAMは十分なので、10GBを提供します)。そして、以下のようにロードボタンをクリックします。
ロードボタンをクリックした後、セッションタブに移動し、モードを変更します。モードはデフォルトからチャットに変更されます。そして、以下の画像のように、適用ボタンと再起動ボタンをクリックします。
これで、ダウンロードしたモデルと対話を開始するための準備が整いました。今、テキスト生成タブに移動すると、以下のようになります。
では、Hugging Faceからダウンロードした私たちのNous-Hermes-13B Large Language Modelをテストする時が来ました。会話を始めましょう。
上記からわかるように、モデルは確かに正常に動作しています。モデルはあまりクリエイティブなことをせず、つまり妄想しませんでした。質問に正しく答えました。大きな言語モデルにフィボナッチ数列を見つけるためのPythonコードの生成を依頼しました。LLMは、私が与えた入力と一致する動作可能なPythonコードを書きました。それに加えて、それがどのように機能するかについての説明も提供してくれました。これにより、データのプライバシーを確保しながら、テキスト生成UIを介して任意のモデルをダウンロードして実行できます。
結論
この記事では、テキスト生成UIをダウンロードする手順をステップバイステップで説明しました。これにより、ネットワークに接続されていない状態でも大規模な言語モデルと直接やり取りできます。Hugging Faceから特定のバージョンのモデルをダウンロードする方法や、現在のアプリケーションがサポートする量子化手法についても説明しました。これにより、誰でも最新のLlaMA 2を含む大規模な言語モデルにアクセスできるようになりました。
主なポイント
この記事の主なポイントは次のとおりです:
- Oogaboogaのテキスト生成UIは、Mac、Windows、Linuxなど、どのOSのシステムでも使用できます。
- このUIを使用すると、Hugging Faceからさまざまな大規模な言語モデル、さらには最新のものにも直接アクセスできます。
- このUIは、異なる大規模な言語モデルの量子化バージョンにも対応しています。
- GPUにアクセスできないユーザーでも、このテキスト生成UIでCPUのみの大規模な言語モデルをロードすることができます。
- 最後に、UIをローカルで実行するため、データやモデルとのチャットはローカルシステム内に留まります。
よくある質問
この記事に表示されているメディアはAnalytics Vidhyaの所有ではなく、著者の裁量で使用されています。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- 「新しいAIの研究が、化学的な匂いを説明する能力において、機械学習モデルが人間レベルのスキルを達成することを示している」という
- このAIの論文では、プログラミング言語が指示調整を通じて互いを向上させる方法について説明しています
- メタAIがNougatをリリース:科学文書を処理するためのOCRを実行するビジュアルトランスフォーマーモデルで、マークアップ言語に変換します
- 「8/28から9/3までの週のトップの重要なコンピュータビジョン論文」
- 「HybridGNetによる解剖学的セグメンテーションの秘密を明らかにする:可能性のある解剖学的構造のデコードのためのAIエンコーダーデコーダー」
- このAI論文では、ディープラーニングモデルを用いたAIS(アンドロゲン不感症)のテストに関する研究が紹介されています
- 「Nemo-Guardrailsを自分のやり方で設定する:大規模言語モデルの代替方法」