GPUStack:オープンソースGPUクラスターマネージャーの完全ガイド

大規模言語モデル

はじめに

人工知能(AI)と機械学習(ML)の急速な発展に伴い、大規模言語モデル(LLM)の需要が高まっています。しかし、これらのモデルを効率的に実行し管理することは、多くの組織にとって課題となっています。ここで登場するのが、GPUStackです。

GPUStackとは?

GPUStackは、大規模言語モデル(LLM)を実行するためのオープンソースGPUクラスターマネージャーです。複数のGPUを効率的に管理し、LLMの実行を最適化することで、AIプロジェクトの生産性を大幅に向上させることができます。

%%{init:{'theme':'base'}}%% graph TD A[GPUStack] --> B[GPU管理] A --> C[LLM実行] A --> D[クラスター最適化] B --> E[リソース割り当て] B --> F[パフォーマンスモニタリング] C --> G[モデルのデプロイ] C --> H[推論の実行] D --> I[負荷分散] D --> J[スケーリング]

この図は、GPUStackの主な機能と、それらがどのように相互に関連しているかを視覚的に示しています。

主な特徴

GPUStackには、以下のような優れた特徴があります:

  1. 多様なハードウェアサポート : Apple MacBook、Windows PC、Linuxサーバーなど、様々な種類のGPUで動作します。

  2. スケーラビリティ : GPUやノードを簡単に追加して、処理能力を拡張できます。

  3. 軽量なPythonパッケージ : 最小限の依存関係で、運用のオーバーヘッドを抑えています。

  4. OpenAI互換API : OpenAIの標準に準拠したAPIを提供します。

  5. ユーザーとAPIキー管理 : ユーザーとAPIキーの管理を簡素化します。

  6. GPUメトリクスモニタリング : GPUのパフォーマンスと使用率をリアルタイムで監視できます。

  7. トークン使用量とレート制限 : トークンの使用量を追跡し、レート制限を効果的に管理します。

%%{init:{'theme':'base'}}%% mindmap root((GPUStack)) 多様なハードウェアサポート Apple MacBook Windows PC Linuxサーバー スケーラビリティ 軽量Pythonパッケージ OpenAI互換API ユーザー/APIキー管理 GPUメトリクスモニタリング トークン使用量管理

この図は、GPUStackの主な特徴を視覚的にまとめたものです。各特徴がGPUStackの中心にどのように関連しているかを示しています。

インストール方法

GPUStackのインストール方法は、使用するオペレーティングシステムによって異なります。ここでは、主要なOSごとのインストール手順を説明します。

Linux / macOS

LinuxやmacOSでは、以下のコマンドを使用してGPUStackをサービスとしてインストールできます:

curl -sfL https://get.gpustack.ai | sh -s -

Windows

Windowsでは、管理者権限でPowerShellを実行し、以下のコマンドを入力します:

Invoke-Expression (Invoke-WebRequest -Uri "https://get.gpustack.ai" -UseBasicParsing).Content

クラスターへのワーカー追加

他のノードをGPUStackクラスターに追加する場合は、以下のコマンドを使用します(http://myservermytokenを実際のサーバーURLとトークンに置き換えてください):

Linux / macOS

curl -sfL https://get.gpustack.ai | sh -s - --server-url http://myserver --token mytoken

Windows

Invoke-Expression "& { $((Invoke-WebRequest -Uri 'https://get.gpustack.ai' -UseBasicParsing).Content) } -server-url http://myserver -token mytoken"
%%{init:{'theme':'base'}}%% graph TD A[インストール開始] --> B{OSの選択} B -->|Linux/macOS| C[curlコマンドを実行] B -->|Windows| D[PowerShellコマンドを実行] C --> E[GPUStackサービスがインストールされる] D --> E E --> F{クラスターに追加?} F -->|はい| G[ワーカー追加コマンドを実行] F -->|いいえ| H[インストール完了] G --> H

この図は、GPUStackのインストールプロセスを視覚的に表現しています。OSの選択から始まり、インストールの各ステップを経て、最終的にクラスターへのワーカー追加オプションまでを示しています。

使い始める

GPUStackをインストールしたら、以下の手順で使い始めることができます:

  1. モデルとのチャット : コマンドラインから直接LLMとチャットできます。 bash gpustack chat llama3 "私にジョークを教えて。"

  2. WebUI へのアクセス : ブラウザで http://myserver を開き、GPUStack UIにアクセスします。

  3. ログイン : ユーザー名 admin とデフォルトパスワードでログインします。パスワードは以下のコマンドで確認できます:

Linux / macOS: bash cat /var/lib/gpustack/initial_admin_password

Windows: powershell Get-Content -Path "$env:APPDATA\gpustack\initial_admin_password" -Raw

  1. プレイグラウンドの利用 : UIの「Playground」メニューから、LLMとチャットできます。

  2. API キーの作成 : 「API Keys」メニューから新しいAPIキーを作成し、安全に保管します。

  3. API の利用 : 作成したAPIキーを使用して、OpenAI互換APIにアクセスできます。

%%{init:{'theme':'base'}}%% sequenceDiagram participant User participant CLI participant WebUI participant LLM participant API User->>CLI: gpustack chat llama3 "質問" CLI->>LLM: 質問を送信 LLM-->>CLI: 回答を返す CLI-->>User: 回答を表示 User->>WebUI: ログイン WebUI->>User: ダッシュボード表示 User->>WebUI: プレイグラウンドでチャット WebUI->>LLM: 質問を送信 LLM-->>WebUI: 回答を返す WebUI-->>User: 回答を表示 User->>WebUI: APIキーを作成 WebUI-->>User: APIキーを提供 User->>API: APIリクエスト(APIキー使用) API->>LLM: リクエストを処理 LLM-->>API: 結果を返す API-->>User: レスポンスを送信

この図は、ユーザーがGPUStackを使用する際の一般的な流れを示しています。コマンドラインインターフェース(CLI)、WebUI、LLM、APIとの相互作用が視覚化されています。

対応プラットフォームとアクセラレーター

GPUStackは、以下のプラットフォームとアクセラレーターをサポートしています:

対応プラットフォーム

  • macOS
  • Linux
  • Windows

対応アクセラレーター

  • Apple Metal
  • NVIDIA CUDA

将来のリリースでは、以下のアクセラレーターのサポートも計画されています: - AMD ROCm - Intel oneAPI - Qualcomm AI Engine

%%{init:{'theme':'base'}}%% graph TB A[GPUStack] --> B[対応プラットフォーム] A --> C[対応アクセラレーター] B --> D[macOS] B --> E[Linux] B --> F[Windows] C --> G[Apple Metal] C --> H[NVIDIA CUDA] C --> I[将来のサポート] I --> J[AMD ROCm] I --> K[Intel oneAPI] I --> L[Qualcomm AI Engine]

この図は、GPUStackが現在サポートしているプラットフォームとアクセラレーター、および将来サポート予定のものを視覚的に示しています。

サポートされているモデル

GPUStackは、llama.cppをバックエンドとして使用し、GGUF形式の大規模言語モデルをサポートしています。以下のソースからのモデルが利用可能です:

  1. Hugging Face
  2. Ollama Library

サポートされている主なモデルには以下があります:

  • LLaMA
  • Mistral 7B
  • Mixtral MoE
  • DBRX
  • Falcon
  • Baichuan
  • Aquila
  • Yi
  • StableLM
  • Deepseek
  • Qwen
  • Phi
  • Gemma
  • Mamba
  • Grok-1
%%{init:{'theme':'base'}}%% mindmap root((サポートモデル)) Hugging Face LLaMA Mistral 7B Mixtral MoE DBRX Falcon Ollama Library Baichuan Aquila Yi StableLM その他 Deepseek Qwen Phi Gemma Mamba Grok-1

この図は、GPUStackがサポートする主要なモデルを視覚的にまとめたものです。モデルの提供元やタイプに基づいて分類されています。

OpenAI互換API

GPUStackは、OpenAIと互換性のあるAPIを提供しています。これらのAPIは /v1-openai パスの下で提供され、以下の機能をサポートしています:

  1. モデルのリスト取得
  2. チャット完了(Chat completions)

例えば、公式のOpenAI Python APIライブラリを使用して、以下のようにAPIを利用できます:

from openai import OpenAI
client = OpenAI(base_url="http://myserver/v1-openai", api_key="myapikey")

completion = client.chat.completions.create(
  model="llama3",
  messages=[
    {"role": "system", "content": "あなたは親切なアシスタントです。"},
    {"role": "user", "content": "こんにちは!"}
  ]
)

print(completion.choices[0].message)

このAPIの互換性により、既存のOpenAIベースのアプリケーションを簡単にGPUStackに移行できます。

%%{init:{'theme':'base'}}%% sequenceDiagram participant App participant GPUStack participant LLM App->>GPUStack: OpenAI互換APIリクエスト GPUStack->>GPUStack: リクエスト検証 GPUStack->>LLM: モデルに対してリクエスト LLM->>GPUStack: 応答生成 GPUStack->>App: OpenAI形式の応答 Note over App,GPUStack: OpenAI SDKを使用 Note over GPUStack,LLM: 内部でLLMを実行

この図は、アプリケーションがGPUStackのOpenAI互換APIを使用してLLMと対話する流れを示しています。GPUStackがOpenAIのインターフェースを模倣しつつ、内部で実際のLLM処理を行う様子が表現されています。

まとめ

GPUStackは、大規模言語モデル(LLM)の実行と管理を簡素化する強力なツールです。その主な利点は以下の通りです:

  1. 柔軟性 : 様々なハードウェアとプラットフォームに対応
  2. スケーラビリティ : 需要に応じてGPUリソースを簡単に拡張可能
  3. 使いやすさ : 直感的なUIとOpenAI互換APIにより、導入と使用が容易
  4. 効率性 : GPUリソースの最適化とモニタリング機能により、コスト効率が向上
  5. オープンソース : コミュニティによる継続的な改善と拡張が可能

GPUStackを使用することで、組織はAIプロジェクトの開発と展開を加速し、GPUリソースを最大限に活用することができます。

%%{init:{'theme':'base'}}%% graph TD A[GPUStack] --> B[柔軟性] A --> C[スケーラビリティ] A --> D[使いやすさ] A --> E[効率性] A --> F[オープンソース] B --> G[多様なハードウェア対応] C --> H[簡単なリソース拡張] D --> I[直感的なUI] D --> J[OpenAI互換API] E --> K[GPUリソース最適化] E --> L[詳細なモニタリング] F --> M[コミュニティによる改善] F --> N[カスタマイズ可能]

この図は、GPUStackの主要な利点とそれらがもたらす具体的な価値を視覚的に示しています。

参考サイト

GitHub - gpustack/gpustack: Manage GPU clusters for running LLMs
Manage GPU clusters for running LLMs. Contribute to gpustack/gpustack development by creating an account on GitHub.

コメント

タイトルとURLをコピーしました