12k
All articles

自分のハードウェアでOpenAIのGPT-OSSをデプロイする方法

Ollamaを使い個人ハードウェアにGPT-OSSをデプロイし、モデルパラメーターを設定してOpenAI互換APIエンドポイントでアプリと接続する。

OpenReplay Team
OpenReplay Team
自分のハードウェアでOpenAIのGPT-OSSをデプロイする方法

ChatGPTスタイルのAIモデルをローカルで実行することが現実的になりました。OpenAIのGPT-OSSモデルは、クラウドサブスクリプション不要、インターネット接続不要で、完全にオフラインのAI機能として個人のコンピューターで完全に動作させることができます。16GB以上のVRAMを搭載した最新のGPUまたはApple Silicon Macをお持ちの場合、Ollamaを使用してGPT-OSSを10分以内にローカルデプロイできます。

このガイドでは、Windows、macOS、Linuxでの完全なセットアップ手順を説明し、Ollamaのインストール、モデルのダウンロード、そしてOpenAI互換APIを通じて開発ワークフローに統合する方法を示します。

重要なポイント

  • 完全なプライバシーとオフライン機能でChatGPT相当のモデルをローカルデプロイ
  • 最小要件:16GB以上のVRAM GPUまたは16GB以上のユニファイドメモリを搭載したApple Silicon Mac
  • Ollamaが既存アプリケーションとのシームレスな統合のためのOpenAI互換APIを提供
  • パフォーマンスはハイエンドGPUで20-50トークン/秒、Apple Siliconで10-30トークン/秒
  • 再トレーニングなしでModelfilesを通じてモデルの動作をカスタマイズ

ローカルGPT-OSSデプロイのハードウェア要件

インストールに進む前に、GPT-OSSを効果的にデプロイするために必要なハードウェアを明確にしましょう。

GPT-OSS-20Bの最小要件

20Bモデルは、コンシューマーハードウェアでの実用的な選択肢です:

  • GPUオプション:16GB以上のVRAM(RTX 4060 Ti 16GB、RTX 3090、RTX 4090)
  • Apple Silicon:16GB以上のユニファイドメモリを搭載したM1/M2/M3 Mac
  • CPUフォールバック:24GB以上のシステムRAM(大幅に遅いパフォーマンスを予想)

ハードウェアタイプ別パフォーマンス予想

実世界のテストに基づく予想パフォーマンス:

  • ハイエンドGPU(RTX 4090/6000):20-50トークン/秒
  • Apple Silicon(M1 Max/M2):10-30トークン/秒
  • CPUのみ(Intel/AMD):0.5-2トークン/秒

120Bモデルは80GB以上のVRAMを搭載したワークステーション向けですが、ほとんどのユーザーには実用的ではありません。

システムへのOllamaインストール

Ollamaはランタイムエンジンとして機能し、モデル管理とOpenAI互換APIエンドポイントの提供を行います。

Windowsインストール

  1. Ollama Windows installerをダウンロード
  2. インストーラーを実行し、セットアップウィザードに従う
  3. コマンドプロンプトを開き、以下を入力してインストールを確認:
    ollama --version

macOSインストール

  1. Ollama macOS installerをダウンロード
  2. OllamaをApplicationsフォルダにドラッグ
  3. ApplicationsからOllamaを起動
  4. ターミナルで確認:
    ollama --version

Linuxインストール

ターミナルを開き、以下を実行:

curl -fsSL https://ollama.com/install.sh | sh

スクリプトが自動的にディストリビューションを検出し、適切なパッケージをインストールします。

GPT-OSSモデルのダウンロードと実行

Ollamaがインストールされたら、GPT-OSSモデルをpullする準備が整いました。ダウンロードサイズは約12-13GBです。

モデルのPull

ollama pull gpt-oss:20b

より大きなモデルの場合(60GB以上のVRAMがある場合):

ollama pull gpt-oss:120b

初回チャットセッションの開始

インタラクティブチャットを起動:

ollama run gpt-oss:20b

モデルがメモリにロードされ(ハードウェアによって10-30秒)、チャットインターフェースが表示されます。プロンプトを入力してEnterを押してください。

パフォーマンスメトリクスの有効化

タイミング情報を表示するには、verboseモードを有効にします:

/set verbose

これにより、各クエリ後にトークン生成速度と総応答時間が表示されます。モデルの内部推論は表示されません。

OllamaのAPIを通じたアプリケーション接続

Ollamaはhttp://localhost:11434/v1でOpenAI互換APIを公開しており、既存のOpenAI SDKユーザーにとって統合が簡単です。

Python統合

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama"  # ダミーキーが必要
)

response = client.chat.completions.create(
    model="gpt-oss:20b",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Explain local AI deployment benefits"}
    ]
)

print(response.choices[0].message.content)

JavaScript統合

import OpenAI from 'openai';

const openai = new OpenAI({
  baseURL: 'http://localhost:11434/v1',
  apiKey: 'ollama',
});

const completion = await openai.chat.completions.create({
  model: 'gpt-oss:20b',
  messages: [
    { role: 'user', content: 'Write a haiku about local AI' }
  ],
});

console.log(completion.choices[0].message.content);

Function Callingサポート

GPT-OSSは標準のOpenAI function calling形式を通じてツール使用をサポートします:

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Get current weather for a location",
        "parameters": {
            "type": "object",
            "properties": {"city": {"type": "string"}},
            "required": ["city"]
        }
    }
}]

response = client.chat.completions.create(
    model="gpt-oss:20b",
    messages=[{"role": "user", "content": "What's the weather in Seattle?"}],
    tools=tools
)

Modelfilesによるモデルカスタマイズ

Ollamaは、再トレーニングなしでシステムプロンプトとパラメータを調整できる軽量なカスタマイズをModelfilesを通じてサポートします。

カスタムバリアントの作成

Modelfileという名前のファイルを作成:

FROM gpt-oss:20b

SYSTEM "You are a code review assistant. Analyze code for bugs, performance issues, and best practices."

PARAMETER temperature 0.7
PARAMETER top_p 0.9

カスタムモデルをビルド:

ollama create code-reviewer -f Modelfile

実行:

ollama run code-reviewer

一般的なパラメータ調整

  • temperature:ランダム性を制御(0.0-1.0)
  • top_p:Nucleus samplingしきい値
  • num_ctx:コンテキストウィンドウサイズ(デフォルト2048)
  • num_predict:生成する最大トークン数

一般的なデプロイ問題のトラブルシューティング

モデルがロードされない - メモリ不足

メモリエラーが表示される場合:

  1. 他のアプリケーションを閉じてRAM/VRAMを解放
  2. 環境変数を設定してCPUオフロードを試行:
    export OLLAMA_NUM_GPU=0  # CPUのみモードを強制
  3. 120Bを使用している場合は、より小さなモデルを検討

Windowsでの低速パフォーマンス

CUDA対応GPUを持たないWindowsユーザーはCPUのみの推論を経験します。解決策:

  • 互換性のあるNVIDIA GPUがあることを確認
  • GPUドライバーを最新バージョンに更新
  • 代替ランタイムとしてLM Studioを試行

API接続拒否

アプリケーションがAPIに接続できない場合:

  1. Ollamaが実行されていることを確認:ollama serve
  2. ポートがファイアウォールでブロックされていないか確認
  3. 必要に応じてlocalhostの代わりに127.0.0.1を使用

結論

ローカルハードウェアでのGPT-OSSデプロイにより、AIインフラストラクチャを完全に制御できます。Ollamaが複雑さを処理するため、数分でChatGPT相当のモデルをオフラインで実行できます。20Bモデルはコンシューマーハードウェアに適したバランスを提供します—実際の作業に十分強力でありながら、適切なGPUやMacで実行できる軽さです。

OpenAI互換APIにより既存のコードが最小限の変更で動作し、Modelfilesによりモデルトレーニングに踏み込むことなく動作をカスタマイズできます。プライバシー重視のアプリケーション構築、APIコストなしでの実験、オフラインシナリオへの準備など、ローカルデプロイによりAI機能を直接手に入れることができます。

今日からローカルAIの実験を始めましょう。Ollamaをダウンロードし、gpt-oss:20bモデルをpullして、プロジェクトに統合してください。Ollama Discordに参加してベンチマークを共有し、デプロイ問題のヘルプを得て、他の人がローカルAIで構築しているものを発見しましょう。

FAQ

GPUとCPU推論の実際のパフォーマンス差は?

GPU推論は通常CPUより10-100倍高速です。RTX 4090では30-50トークン/秒を期待できます。32GB RAMのCPUでは1-2トークン/秒を期待できます。違いは長い応答で5秒待つか5分待つかの差です。

複数のモデルを同時に実行できますか?

はい、ただし各モデルは完全なメモリ割り当てを消費します。2つの20Bモデルを実行するには32GB VRAM/RAMが必要です。ロードされたモデルを確認するには`ollama ps`を、メモリからアンロードするには`ollama rm`を使用してください。

GPT-OSSモデルはChatGPTやClaudeと比較してどうですか?

GPT-OSS-20BはほとんどのタスクでGPT-3.5と同様のパフォーマンスを発揮します。GPT-4やClaude 3ほど高機能ではありませんが、コーディング支援、文章作成、一般的なQ&Aには十分適切です。主な利点は完全なプライバシーと使用制限がないことです。

マシン間でモデルを共有する方法はありますか?

はい。モデルをpullした後、~/.ollama/models/で見つけて別のマシンにコピーします。または、1台のマシンをOllamaサーバーとして設定し、APIコールでbase_urlを変更してリモート接続します。

これらのモデルをローカルでファインチューニングすることについてはどうですか?

GPT-OSSモデルはMXFP4量子化を使用しており、ローカルファインチューニング用に設計されていません。カスタムトレーニングには、Llama 2やMistralなどの小さなモデルを検討してください。Ollama Modelfilesはプロンプトと生成パラメータのみを調整し、モデルの重みは調整しません。

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers

We use cookies to improve your experience. By using our site, you accept cookies.