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

サリー大学の研究者が新しい人工知能(AI)モデルを開発しましたこのモデルは、通信ネットワークが最大76%ものネットワークを節約できる可能性があります

オープン・ラジオ・アクセス・ネットワーク(O-RAN)は、分離されたラジオ・アクセス・ネットワーク(RAN)に知能を注入し、...

AI研究

「UCLA研究者がGedankenNetを紹介:物理法則や思考実験から学ぶ自己教示AIモデルが計算機画像処理を進化させる」

深層学習の最近の進展は、計算画像処理、顕微鏡、ホログラフィ関連の分野に大きな影響を与えています。これらの技術は、バイ...

データサイエンス

Deep Learningのマスタリング:Piecewise推定による非線形近似の技術 パート2

皆さん、こんにちは!「マスタリング深層学習シリーズ」の第2回目へようこそこの記事は、第1回目の続編であり、タイトルは『...

機械学習

「検索増強生成によるAIの幻覚の軽減」

「この新しく考案された技術は、独自のデータをプロンプトに追加することで、LLM(Language Model)の知識を増やす可能性を示...

機械学習

「トランスフォーマーアーキテクチャとBERT、GPT、T5の台頭:初心者向けガイド」

「人工知能(AI)の広大で絶えず進化する領域において、印象を残すだけでなく、その全体の軌道を再定義する革新が存在します...

機械学習

「機械学習 vs AI vs ディープラーニング vs ニューラルネットワーク:違いは何ですか?」

テクノロジーの急速な進化は、ビジネスが効率化のために洗練されたアルゴリズムにますます頼ることで、私たちの日常生活を形...