【Llama.cpp】gpt-oss-120bをデスクトップPCで動かしてみた環境構築メモ

image

はじめに

Windows 11 + llama.cpp(CUDA対応) で gpt-oss-120b を動かした手順を、実際に使ったコマンドと要点解説をまとめました。

開発環境

  • OS: Windows 11
  • CPU: AMD Ryzen 9 9900X
  • メモリ: 64GB
  • GPU: NVIDIA RTX 5080(VRAM 16GB)
  • フレームワーク: llama.cpp(GGML/GGUF系)

事前準備

必要なソフトウェア

  • Visual Studio 2022(C++開発ワークロード)
  • CMake / Git
  • NVIDIA ドライバ + CUDA Toolkit(GPUに合う版)
  • Python(量子化/スクリプトが必要なら)

動作確認

cl /?
cmake --version
git --version
nvcc --version
python --version

トラブルシューティング

cl /? が通らない場合は、C++コンパイラ(cl.exe)がパスに通っていないことが原因です。

解決方法:

  1. Visual Studio Installerで確認
    「C++によるデスクトップ開発」ワークロードをインストールしていないと cl.exe が入りません。入っていなければ追加インストールしてください

  2. 開発者用コマンドプロンプトを使う
    スタートメニューから「x64 Native Tools Command Prompt for VS 2022」を起動して cl /? を実行すれば通ります

このプロンプトは必要な環境変数が自動で設定されます。

llama.cppの取得と環境構築

llama.cppのクローン

まずはllama.cppをおいておくディレクトリを作成します。

cd C:\dev
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp

依存関係の準備(vcpkg)

GitHub から vcpkg のリポジトリをクローンします。

git clone https://github.com/microsoft/vcpkg.git

ダウンロードしたフォルダに移動し、vcpkg 本体をビルドします。

cd vcpkg
.\bootstrap-vcpkg.bat

正しく終わるとカレントディレクトリに vcpkg.exe が生成されます。

CUDA対応ビルド

CUDAを対応させるように設定しながらllama.cppをビルドします。

cd C:\llama.cpp
mkdir build

cmake -B build -DGGML_CUDA=ON -DGGML_CUDA_F16=ON -DCMAKE_TOOLCHAIN_FILE="C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake"
cmake --build build --config Release

CMakeオプションの説明

以下が上記のコマンドのオプション説明です。

  • -B build : 生成物を build/ に分離(掃除しやすい)
  • -DGGML_CUDA=ON : CUDAを有効化。GPU(RTX 5080)を使って推論を高速化
  • -DGGML_CUDA_F16=ON : 半精度(FP16)で計算。VRAM節約&速度向上
  • -DCMAKE_TOOLCHAIN_FILE=...vcpkg.cmake : vcpkgのツールチェーン指定。依存ライブラリ解決を自動化

成功すると build\bin\Release\llama-cli.exe などができます。

モデルの準備と実行

モデルのダウンロード(GGUF & 量子化)

VRAMがRTX5080だと16GBなので量子化(例:q4_0)をします。 今回はHugging Faceを使ってモデルをダウンロードする手順を書きます。

インストールするライブラリ:

  • Hugging Face Hubとやりとりするための公式 Python ライブラリのhuggingface_hub
  • Hugging Face の大容量モデルを効率的にダウンロードするための拡張ライブラリのhf_transfer
  • 今回のリポジトリはXetHub の高速ストレージに対応しているので高速にダウンロードするためのhf_xet

これらをインストールします。

python -m pip install -U huggingface_hub hf_transfer hf_xet

次に並列ダウンロードを有効化するために環境変数を一時的に設定してモデルをインストールします。

set HF_HUB_ENABLE_HF_TRANSFER=1

ここでようやくモデルをダウンロードします。 今回使用するファイルはHugging Face Hubで一般的に配布されているsafetensors形式のモデルを直接読み込むことはできないため、有志で配布してくれているGGUF形式のモデルをダウンロードします。 ※自分で変換する手順もありますが今回は割愛します。

 hf download <リポジトリ名>/<パス> <ファイルを指名するなら> --local-dir <配置するディレクトリ>

上記のように実行することで好きなモデルをダウンロードできます。 今回はunslothチームが配布している4bit量子化されたGGUFモデルを使用します。分割ファイルとして分けられているので--includeで対象フォルダを指定してダウンロードします。

hf download unsloth/gpt-oss-120b-GGUF --include "Q4_K_M/*" --local-dir .\models\gpt-oss-120b-GGUF

実行テスト

.\build\bin\Release\llama-cli.exe -m .\models\gpt-oss-120b-GGUF\Q4_K_M\gpt-oss-120b-Q4_K_M-00001-of-00002.gguf --n-gpu-layers 40 -p "chat-gpt-oss-120bについて詳しく教えて"

パラメータ説明:

  • -n-gpu-layers : VRAMに合わせて上下させます。大きすぎると落ちます
  • --threads, --ctx-size : スレッド数やコンテキスト長も用途に応じて調整可能

日本語プロンプトの扱い(文字化け回避)

Windows 環境では、そのままコマンドに -p "日本語のテキスト" を渡すと文字化けすることがあります。
そのため、UTF-8で保存したテキストファイルを用意し、-fオプションで読み込む方法が有効です。

プロンプトファイル例(prompt.txt, UTF-8で保存)

<start_of_turn>user
日本で高い山を10個ランキング形式で教えてください<end_of_turn>
<start_of_turn>model

実行例

.\build\bin\Release\llama-cli.exe -m .\models\gpt-oss-120b-GGUF\Q4_K_M\gpt-oss-120b-Q4_K_M-00001-of-00002.gguf --n-gpu-layers 40 -f prompt.txt > output.txt

まとめ

この手順に従えば、Windows 11 + RTX 5080(16GB) でも、量子化+CUDA対応ビルドで gpt-oss-120b をローカル実行できます。ただし、生成速度は非常に遅いため実用的ではありません。快適に使用したい場合は20Bのモデルをおすすめします。

参考資料

お知らせ

可茂IT塾ではFlutter/Reactのインターンを募集しています!

可茂IT塾ではFlutter/Reactのインターンを募集しています!

可茂IT塾ではFlutter/Reactのインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。

Read More
U30可茂ITインターンハッカソン

U30可茂ITインターンハッカソン

12月28,29日開催。2日間でアプリ開発の企画から完成までを目指す!U30可茂ITインターンハッカソンを開催します。

Read More

関連の記事

タグ

Flutter (122)初心者向け (32)イベント (19)Google Apps Script (17)Nextjs (12)可茂IT塾 (11)React (8)riverpod (7)デザイン (7)Firebase (7)Figma (6)AI (6)JavaScript (6)ChatGPT (5)vscode (5)新卒 (4)就活 (4)Slack (4)Dart (4)お知らせ (4)FlutterWeb (3)Prisma (3)NestJS (3)TypeScript (3)アプリ開発 (3)ワーケーション (3)インターン (3)Web (2)設計 (2)線型計画法 (2)事例 (2)Git (2)CSS (2)Freezed (2)Image (2)File (2)Material Design (2)経験談 (2)画像 (2)iOS (2)React Hooks (2)tailwindcss (2)社会人 (2)大学生 (2)RSS (1)Google (1)CodeRunner (1)NotebookLM (1)個人開発 (1)Android (1)Unity (1)WebView (1)Twitter (1)フルリモート (1)TextScaler (1)textScaleFactor (1)学生向け (1)supabase (1)Java (1)Spring Boot (1)shell script (1)正規表現 (1)table (1)テーブル (1)hooks (1)パワーポイント (1)MCPサーバー (1)Obsidian (1)趣味 (1)モンスターボール (1)SCSS (1)Swift (1)MapBox (1)Cupertino (1)gpt-oss (1)生成AI (1)llama.cpp (1)LLM (1)ListView (1)就活浪人 (1)既卒 (1)保守性 (1)iPad (1)シェアハウス (1)スクレイピング (1)PageView (1)画面遷移 (1)flutter_hooks (1)Gmail (1)GoogleWorkspace (1)ShaderMask (1)google map (1)Google Places API (1)GCPコンソール (1)Google_ML_Kit (1)Vercel (1)Google Domains (1)DeepLeaning (1)深層学習 (1)Google Colab (1)Firebase Analytics (1)Gemini AI (1)コード生成 (1)GitHub Copilot (1)GitHub Actions (1)オンラインオフィス (1)html (1)オブジェクト指向 (1)クラスの継承 (1)ポリモーフィズム (1)LINE Messaging API (1)LINE Notify (1)LINE (1)Bitcoin (1)bitFlyer (1)コミュニティー (1)文系エンジニア (1)build_runner (1)ヒーター (1)作業効率 (1) (1)Flutter実践開発 (1) (1)permission_handler (1)flutter_local_notifications (1)markdown (1)GlobalKey (1)ValueKey (1)Key (1)アイコン (1)go_router (1)FireStorage (1)debug (1)datetime_picker (1)Apple Store Connect (1)FlutterGen (1)デバッグ (1)Widget Inspector (1)VRChat (1)API (1)検索機能 (1)Shader (1)SharedPreferences (1)オフラインサポート (1)Navigator (1)メール送信 (1)FlutterFlow (1)Firebase App Distribution (1)Fastlane (1)Dio (1)CustomClipper (1)ClipPath (1)video_player (1)IMA (1)カスタム認証 (1)アニメーション (1)Arduino (1)ESP32 (1)フリーランス (1)会社員 (1)mac (1)csv (1)docker (1)GithubActions (1)Dialog (1)BI (1)Gemini CLI (1)Claude Code (1)LifeHack (1)ショートカット (1)Chrome (1)高校生 (1)キャリア教育 (1)非同期処理 (1)生体認証 (1)BackdropFilter (1)レビュー (1)getAuth (1)クローズドテスト (1)PlayConsole (1)Algolia (1)コンサルティング (1)Symbol (1)

お知らせ

可茂IT塾ではFlutter/Reactのインターンを募集しています!

可茂IT塾ではFlutter/Reactのインターンを募集しています!

可茂IT塾ではFlutter/Reactのインターンを募集しています!可茂IT塾のエンジニアの判断で、一定以上のスキルをを習得した方には有給でのインターンも受け入れています。

Read More
U30可茂ITインターンハッカソン

U30可茂ITインターンハッカソン

12月28,29日開催。2日間でアプリ開発の企画から完成までを目指す!U30可茂ITインターンハッカソンを開催します。

Read More