ローカルマシン上で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!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

データサイエンス

クロスヘアに捧げられた ジェネレーティブAI:CISOたちが戦うサイバーセキュリティ

ChatGPTと大規模な言語モデル(LLM)は、生成型AIが多くのビジネスプロセスにどのように影響を与えるかの初期の兆候です

データサイエンス

Python におけるカテゴリカル変数の扱い方ガイド

データサイエンスまたは機械学習プロジェクトでのカテゴリ変数の扱いは容易な仕事ではありませんこの種の作業には、アプリケ...

機械学習

統合と自動化の簡素化:Boomi CTOが開発者と共有するビジョン

アイと自動化を活用した民主化された統合プラットフォームは、複雑なタスクを単純化し、持続的な進化を推進します

データサイエンス

アマゾンの研究者は、深層学習を活用して複雑な表形式のデータ分析におけるニューラルネットワークを強化します

ニューラルネットワークは、異質なカラムを持つ表形式のデータに直面するときに、現代計算の驚異として、重要なハードルに直...

AIニュース

IBMとMETAが責任あるイノベーションのためのAI連携を結成

責任あるAIイノベーションへの重要な一歩として、IBMとMetaは共同でAIアライアンスを立ち上げました。この連携により、世界中...

機械学習

デシAIは、DeciDiffusion 1.0を公開しました:820億パラメータのテキストから画像への潜在的拡散モデルで、安定した拡散と比べて3倍の速度です

問題の定義 テキストから画像を生成することは、人工知能において長い間の課題でした。テキストの説明を鮮明でリアルな画像に...