ローカルマシン上で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は、DeciDiffusion 1.0を公開しました:820億パラメータのテキストから画像への潜在的拡散モデルで、安定した拡散と比べて3倍の速度です

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

AIニュース

「ユネスコ、AIチップの埋め込みに関するプライバシー懸念を指摘」

最近、国連は人工知能(AI)と先進的な神経技術の組み合わせに伴う潜在的な危険性について警告しました。報告によると、脳イ...

機械学習

コードのための大規模な言語モデルの構築とトレーニング:StarCoderへの深い探求

イントロダクション こんにちは、テック愛好家の皆さん!今日は、大規模な言語モデル(LLM)を構築してトレーニングする魅力...

機械学習

このAI論文では、「PolyID:高性能バイオベースポリマーの発見における機械学習の先駆者」として、ポリ-ンにおける機械学習を紹介しています

人工知能は生活のあらゆる側面で使用されています。AIは生活のあらゆる方面で使用され、化学やポリマーなどさまざまな分野で...

機械学習

「オーディオソース分離のマスターキー:AudioSepを紹介して、あなたが説明するものを分離します」

Computational Auditory Scene Analysis(CASA)は、複雑な聴覚環境で個別の音源を分離し理解することに焦点を当てた音声信号...

データサイエンス

「データ統合とAIによる洞察力」

業界全般において意思決定と自動化の向上のためのデータ統合とAIの変革的な相乗効果を探求する