paint-brush
独自のローカル LLM を運営する方法 (2024 年更新)@thomascherickal
19,583 測定値
19,583 測定値

独自のローカル LLM を運営する方法 (2024 年更新)

Thomas Cherickal8m2024/03/21
Read on Terminal Reader
Read this story w/o Javascript

長すぎる; 読むには

この記事では、Hugging Face Transformers、gpt4all、Ollama、localllm などの生成 AI モデルをローカルで使用するための詳細なガイドを提供します。クリエイティブなアプリケーションや革新的なソリューションに AI の力を活用する方法を学びます。

People Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - 独自のローカル LLM を運営する方法 (2024 年更新)
Thomas Cherickal HackerNoon profile picture
0-item

https://wallpapers.com/wallpapers/theoretical-physics-green-particles-ht1c16rgtu5ilkhc.html より


今年はジェネレーティブAIの飛躍の年


まあ、控えめに言っても、今年は LLM モデルをローカルで実行する方法について選択肢に恵まれました。


はじめましょう:


1) ハギングフェイストランスフォーマー:

すべての画像は Bing Image Creator によって作成されました

インターネットにアクセスせずにHugging Face Transformersをオフラインで実行するには、次の手順に従ってください。インストール中に自動更新に依存しないようにしながら、必要な依存関係を持つTransformersをインストールします。Hugging Faceのドキュメントに記載されているように、pipまたはcondaを使用してインストールできます。


 pip install transformers==4.xy

インターネット接続を使用して Hugging Face Hub から事前トレーニング済みモデルをダウンロードした後、ローカル マシンからモデルを読み込みます。save_pretrained() を使用してモデルを保存し、後でオフライン モードで読み込みます。

 from transformers import AutoModelForSequenceClassification, BertTokenizerFast

初めての場合は、モデルをダウンロードして保存します

model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased") model.save_pretrained("/my/local/directory/bert-base-uncased")

後で保存したモデルをオフラインで読み込む

model = AutoModelForSequenceClassification.from_pretrained("/my/local/directory/bert-base-uncased") tokenizer = BertTokenizerFast.from_pretrained("/my/local/directory/bert-base-uncased")


オフライン使用を有効にするには、環境変数 TRANSFORMERS_OFFLINE と HF_DATASETS_OFFLINE を設定します。

 export TRANSFORMERS_OFFLINE=1 export HF_DATASETS_OFFLINE=1

個々のファイルをダウンロードしたくない場合は、モデル リポジトリを直接複製します。


 git clone https://huggingface.co/<username>/<repository> /my/local/directory


スクリプトを実行する予定のディレクトリに必要なファイルがすべて存在することを確認してください。モデルがローカルでまだ使用できない場合は、TRANSFORMERS_OFFLINE を 1 に設定するだけでは機能しないことに注意してください。インターネット アクセスを使用してモデルをダウンロードしてローカルに保存するか、モデル リポジトリを複製する必要があります。




2) gpt4オール


gpt4allは、誰でも GPT-3 のような強力な AI モデルにアクセスして使用できるようにするオープンソース プロジェクトです。gpt4all をインストールして使用するための手順は次のとおりです。

  1. インストール:
  • gpt4all には Python 3.7 以上といくつかの Python パッケージ依存関係が必要です。gpt4all をインストールする最も簡単な方法は、pip を使用することです。
 pip install gpt4all
  1. API キーを取得する:
  • gpt4all を通じてモデルにアクセスするには、API キーが必要です。https ://platform.openai.comにサインアップすると、無料の API キーを取得できます。
  1. 認証を設定します:
  • API キーを取得したら、API キーを値としてOPENAI_API_KEYという名前の環境変数を設定します。
 export OPENAI_API_KEY="YOUR_API_KEY_HERE"
  1. gpt4all を使用します:
  • これで、Python で gpt4all を使用して GPT-3 やその他のモデルにアクセスする準備が整いました。以下は、Davinci (GPT-3 のバージョン) にテキストの一部を要約するように指示する例です。
 from gpt4all import completions summary = completions.generate(engine="text-davinci-003", prompt="Summarize this text: [insert long text here]", max_tokens=50) print(summary.text)
  • さまざまなモデルの使用方法の詳細な例については、gpt4allのドキュメントを参照してください。


3) オラマ


Ollamma は、GPT-3 のような大規模な言語モデルに簡単にアクセスできるオープンソース ライブラリです。システム要件、インストール、使用方法の詳細は次のとおりです。

システム要求:

  • Python 3.7以上
  • リクエストライブラリ
  • 有効なOpenAI APIキー

インストール:

 pip install ollamma

使用法:

  1. APIキーを設定する
import os os.environ["OPENAI_API_KEY"] = "<YOUR_API_KEY>"
  1. クライアントをインポートして作成する
from ollamma import Client client = Client()
  1. テキストを生成する
response = client.generate( engine="text-davinci-003", prompt="Hello world", max_tokens=100 ) print(response.generations[0].text)

生成メソッドを使用すると、エンジン、プロンプト、最大トークンなどのパラメータを指定してリクエストを構成できます。

また、エンジンを微調整したり、コンテンツをモデレートしたりすることもできます。利用可能なすべての方法の詳細については、Ollamma のドキュメントを参照してください。

まとめると、Ollamma はインストールして構成すれば、わずか数行の Python コードで GPT-3 やその他のモデルを簡単に活用できるようになります。


4) LMスタジオ


LM Studio は、最先端の言語モデルをローカルでトレーニング、評価、使用するプロセスを効率化するオープン ソース ツールです。LM Studio をローカルで実行する手順は次のとおりです。


  1. インストール:
    LM Studio には Docker と Docker Compose が必要です。インストールするには:

a. マシンにDocker EngineとDocker Composeをインストールする
b. LM Studio GitHub リポジトリをクローンします。
git clone https://github.com/lm-studio/lm-studio.git


  1. 構成:
    LM Studio はconfig/フォルダの下の構成ファイルに依存します。一般的なファイルには次のものがあります。

a. model.yaml : モデルアーキテクチャを指定する
b. training.yaml : トレーニングパラメータを設定する
c. evaluation.yaml : 評価設定を調整する


  1. LM Studio の実行:
    メイン インターフェースは Docker Compose 経由です。一般的なコマンドは次のとおりです。

a. イメージのビルド: docker-compose build
b. すべてのサービスを開始します: docker-compose up -d
c. ログの表示: docker-compose logs -f
d. サービスを停止する: docker-compose down


サービスは、UI、API、ノートブックなどと対話するために使用できるさまざまなポートを公開します。

まとめると、LM Studio はローカル言語モデルの実験を効率化します。ユーザーはリポジトリをクローンし、設定ファイルを構成し、簡単な Docker コマンドを使用するだけで、モデルのトレーニング、評価、使用を開始できます。


5) ローカルllm


これが最も便利で簡単な方法だと思います。詳しい説明は以下のリンク先をご覧ください。

https://cloud.google.com/blog/products/application-development/new-localllm-lets-you-develop-gen-ai-apps-locally-without-gpus

要約:

localllmと Cloud Workstations を組み合わせることで、Google Cloud 環境内の CPU とメモリ上で LLM をローカルに使用できるようになり、AI 主導のアプリケーション開発に革命が起こります。GPU が不要になることで、GPU 不足による課題を克服し、LLM の潜在能力を最大限に引き出すことができます。生産性、コスト効率、データ セキュリティが向上した localllm を使用すると、革新的なアプリケーションを簡単に構築できます。


6) ラマ.cpp

ローカルトレーニングと推論のために Llama.cpp をインストールして使用するには、次の手順に従います。

依存関係をインストールします:

 Python 3 CMake Optional (for GPU acceleration) NVIDIA drivers, CUDA, and cuDNN For Windows, use Visual Studio Community with Desktop C++ Environment and Python 3 Clone the repository:

git clone --recursive https://github.com/abetlen/llama-cpp-python.git GPU アクセラレーションを使用する場合は、リポジトリの説明に従って環境変数を設定します (たとえば、Linux の場合)。

 export CMAKE_ARGS="-DLLAMA_CUBLAS=ON" Install Llamma.cpp:

ローカルビルドとシステムコンパイルの場合:

 cd llama-cpp-python pip install -e . For Windows, or if you want prebuilt binaries, consider the following: No GPU support: pip install llama-cpp-python[server]

オプションで、高レベルインターフェースを使用するには、次のコマンドを使用します。

 python -m llama_cpp.server --model models/7B/llama-model.gguf With GPU support: set FORCE_CMAKE=1 set CMAKE_ARGS=-DLLAMA_CUBLAS=ON pip install --upgrade --force-reinstall llama-cpp-python --no-cache-dir

オプション: Windows の場合、高レベル インターフェイスを使用します。

 python -m llama_cpp.server --model "path/to/your/model" Download and place Llama models in the models/ subdirectory within the Llama.cpp repository if they are not included (models like llama-model.gguf or ggml-* files are available on Hugging Face or GGML).


インストールをテストします。


 The llama_cpp/llama_cpp.py script provides a simple high-level interface in Python. Replace llama-model.gguf with your downloaded Llama model to test inference. If you want to train your own Llama model, you'll need to train it according to the official documentation and manually convert the GGML files into GGUF files (for GPU deployment).



7) オオバゴオバ

これは、langchain を使用してテキストを生成する WebUI のオープン ソース gradio 実装です。


README.md ファイルからの抜粋:

テキスト生成 WebUI 拡張機能

これは拡張機能のディレクトリですhttps://github.com/oobabooga/text-generation-webui

独自の拡張機能を作成する場合は、PR でこのリストに送信してください。

長期記憶

チャット モードでボットの長期メモリを作成する洗練された拡張機能です。

https://github.com/wawawario2/long_term_memory

オールトークTTS

AllTalk は、テキスト生成 WebUI の Coqui_tts 拡張機能に似た Coqui TTS エンジンに基づいていますが、さまざまな高度な機能をサポートしています。

  • カスタム起動設定:デフォルトの起動設定を調整します。スクリーンショット
  • ナレーター:メインキャラクターとナレーションに異なる声を使用します。ナレーション例
  • 低 VRAM モード: GPU メモリが小さい場合や、VRAM が LLM によっていっぱいになっている場合に最適です。スクリーンショット
  • DeepSpeed: TTS 生成のパフォーマンスが 3 ~ 4 倍向上します。 DeepSpeed Windows/Linux の説明スクリーンショット
  • ローカル/カスタム モデル:いずれかの XTTSv2 モデル (API ローカルおよび XTTSv2 ローカル) を使用します。
  • オプションの wav ファイルのメンテナンス:古い出力 wav ファイルの削除を構成可能。スクリーンショット
  • 調整 より良い再現性を得るために、選択した音声に合わせてモデルをトレーニングします。
  • ドキュメント:組み込みの Web ページで完全にドキュメント化されています。スクリーンショット
  • コンソール出力警告や問題がないかコマンド ライン出力をクリアします。
  • JSON呼び出しを介した API スイートおよびサードパーティのサポート JSON 呼び出しを介してサードパーティ アプリケーションで使用できます。
  • text-generation-webui 内だけでなく、スタンドアロン アプリとして実行できます

https://github.com/erew123/alltalk_tts

エッジGPT

ボットがインターネットに素早くアクセスできるようにするための、acheong08 による EdgeGPT に基づくテキスト生成 Webui の拡張機能。

https://github.com/GiusTex/EdgeGPT

XTTSv2

メイン リポジトリの coqui_tts 拡張機能のバリアントです。どちらも XTTSv2 モデルを使用しますが、こちらには *アスタリスクの間に* 記述されたテキスト用の「ナレーター」機能があります。

https://github.com/kanttouchthis/text_generation_webui_xtts

作家のための遊び場

この拡張機能は、常に上部のタブに表示される独立した高度なノートブックを提供します。ノートブックにはない多くの機能があります。

  • モードに関係なく常に存在する 2 つの独立したノートブック A と B
  • インライン指示(テキスト内から質問したりタスクを与えたりする機能)
  • 選択して挿入 - テキストの中央にテキストを生成します
  • パーマメモリ、要約、言い換え
  • LoRA-Rama - LoRA チェックポイントとそれらの切り替え機能を表示します
  • LoRA スケーリング (実験的) - スライダーを使用して LoRA の影響を調整します

https://github.com/FartyPants/プレイグラウンド

他にも探索できるものがたくさんあります: チェックしてください:

https://github.com/oobabooga/text-generation-webui-extensions



結論?


まだまだあります!まだまだあります!LangChain、llm、ollamma、リストはどんどん大きくなっています!

素晴らしい創造性に溢れた素晴らしい一年になりますように。乾杯!