27BのローカルAIは、H100×2サーバーを自力で構築できるのか——Qwen3.8をA100 1枚で2時間走らせた

A100 80GB 1枚でQwen3.8-27B Q4_K_Mを動かし、Codex CLIとTavilyを使ってクリーンなH100×2サーバーをSlurm経由Quantum ESPRESSOまで自律構築。DS4 Q2との実機比較も含む検証記録。

Share
Qwen3.8-27BをA100 1枚で動かし、H100×2サーバーを自律構築したGPUマキシマイザー実機検証

先に結論

できました。

A100 80GB 1枚で動かしたQwen3.8-27B Q4_K_MをCodex CLIにつなぎ、クリーンなUbuntu 24.04のH100×2サーバーをSSHで操作させました。NVIDIAドライバー、HPC SDK 26.5、OpenACC、Quantum ESPRESSO 7.6、MUNGE、Slurm、1GPU隔離、Slurm経由のGPU計算まで、最後は外部検証で100/100です。

人間が解決方法を教えた回数は0回。所要時間は2時間09分18秒。225コマンドを実行し、17回の非0終了を踏みながら全項目へ到達しました。

ただし、これは「27Bが巨大なDS4と同じ知能だ」という記事ではありません。DS4 Q2は同じ課題を1時間16分04秒、143コマンドで完了しています。さらにQwenはA100 1枚、DS4はA100 4枚で、推論条件も同一ではありません。

今回わかったのは、もっと実務的なことです。

19GB弱のGGUFをA100 1枚で動かす27Bモデルでも、検索、長いコンテキスト、Codex CLI、厳格な検証器を正しく組み合わせれば、難しいGPUインフラ作業を最後まで続けられる。

元になった着想は、Qwenをローカルのパーソナルエージェントとして常用するというこちらの記事でした。チャットの印象ではなく、失敗しやすい実機構築を任せたらどうなるのか。それを試しました。

何をさせたのか

構成を誤解しやすいので、最初にはっきりさせます。

A100 80GB×1
  Qwen3.8-27B Q4_K_M
  llama.cpp + Codex CLI
           │ SSH
           ▼
clean Ubuntu 24.04
  H100 PCIe 80GB×2

QwenをH100上で動かしたわけではありません。A100側のQwenが計画し、コマンドを作り、H100側のクリーンOSへSSHで入り、次を構築しました。

  1. NVIDIA open kernel driver
  2. NVIDIA HPC SDK 26.5 / CUDA 13.2
  3. OpenACCとCUDAの実GPUスモークテスト
  4. QEF公式Quantum ESPRESSO 7.6
  5. H100向けGPUビルド
  6. Si SCF計算とJOB DONE
  7. MUNGEとSlurm
  8. GRES gpu:2
  9. 1GPUジョブの隔離
  10. Slurm経由のQE GPU計算

開始時にはnvidia-smiすらなく、CUDA、HPC SDK、QE、Slurmも未導入です。他モデルの成果は流用せず、同じゴールデンOSへ戻しました。

初回は65点で止まった

最初はWeb検索なしで走らせました。Qwenは意外に進みます。ドライバー、HPC SDK、OpenACC、QE正式ソース、Slurmサービスまでは到達しました。

しかしQEのGPUバイナリ、SCF、Slurmの厳密な1GPU隔離、Slurm経由QEには届かず、検証スコアは65/100。1時間44分35秒でCodexはexit 1になりました。

大きな原因は、Web検索がないことだけではありませんでした。1M contextを設定したつもりが、Qwenのネイティブ262,144トークンをllama.cpp側で正しく拡張できていなかったのです。262,143付近でツールJSONが壊れ、サーバー500応答。表示上のmodel_context_windowだけを1Mにしても、本当の1Mにはなりません。

YaRNで1Mを通す

Qwen3.8-27Bの公式モデルカードは、ネイティブcontextを262,144、RoPE scalingで最大1,000,000へ拡張可能としています。Qwen3.8-27B model card

そこでllama.cpp側へYaRNを設定し、Codexのconfig、カスタムモデルカタログ、モデルAPI、タスク開始イベントをすべて1,010,000へ一致させました。自動圧縮しきい値は960,000、出力上限は65,536です。

本番前の合成試験では270,010入力トークンを通過。最終ランの最後は273,366トークンでtruncated=0、自動compactionは0回でした。

1Mを使い切ったわけではありません。しかし初回が壊れた262K境界を越えて、ツール利用を継続できたことは確認できました。

Tavilyを秘密のまま接続する

GPUソフトウェアの情報は変化が速く、モデルの記憶だけでは危険です。2026年のCUDA 13.2、HPC SDK 26.5、Ubuntuのドライバーパッケージを扱うなら、Web検索はほぼ必要だと考えました。

Tavily MCPをCodex CLIへつなぎました。ただし、APIキーはQwenへ渡していません。

tavily.env (mode 600)
  ↓ 管理側MCPだけが読む
local HTTP gateway
  ↓ namespace互換proxy
Codex CLI / Qwen

Qwenが見えるのは検索ツールだけです。キーはprompt、Codex config、環境変数、JSONL、記事素材へ出しません。Tavily公式MCPは検索・抽出ツールを提供しており、CodexもMCPサーバーを設定できます。Tavily MCP docs / Codex MCP docs

最終ランでQwenがTavilyを使ったのは4回だけ。CUDA 13.2の最低ドライバー、HPC SDK 26.5のリリース、ダウンロード、チェックサムを、NVIDIA公式ページで確認しました。

検索エージェントは「検索回数が多いほど賢い」のではありません。必要なところだけ調べ、一次情報へ絞り、最後はローカル実機で検証する。今回の4回はかなり良い使い方でした。

最終ランは100/100

YaRNとTavilyを有効にしたクリーン再実行は、2時間09分18秒でexit 0。外部verifierの12項目すべてに合格しました。

指標 結果
厳格スコア 100/100
実行時間 2:09:18
コマンド 225
非0終了 17
Tavily MCP 4回
人間の解決ヒント 0
compaction 0
最終context 273,366 / truncated=0

実機ログでは、H100×2、driver 595.84、HPC SDK 26.5、CUDA 13.2、OpenACC使用率最大97%、QEのGPU acceleration is ACTIVE、Si SCFのJOB DONEを確認しました。

SlurmではGres=gpu:2。1GPUジョブ内はCUDA_VISIBLE_DEVICES=0で、CUDA runtimeから見えるGPUは1枚だけ。さらに同じ隔離状態でQEを実行し、PW_X_RC=0JOB DONEまで通しました。Slurm公式文書が説明するGPUジョブ内の可視デバイス制御とも一致します。Slurm GRES

一番面白かった回復

Qwenは最初から正解したわけではありません。むしろ、かなり転びます。

OpenACC Fortranでは文法を何度も間違えました。QEでは古いCMakeオプションを試しました。system FFTWがGNUのlibgompを引き込み、NVHPCのOpenMP runtimeと衝突してpw.xがabort。Slurmでは無効な設定キー、MUNGE鍵の所有者、spool権限、SlurmUser不一致、stale stateを順番に踏みました。

Ubuntu 24.04のSlurm 23.11.4パッケージには、ドキュメント上使えるはずのgpu_nvml.soがありませんでした。Qwenは最終的にSchedMDの同版公式ソースからNVMLプラグインだけをビルドし、H100×2の自動検出を成立させました。

QEのOpenMP衝突では、NVHPCのnvcnvfortranでFFTW 3.3.10を別ビルドし、serial OpenBLASと組み合わせてlibgompを排除しました。

このモデルの価値は「失敗しないこと」ではありません。ログから原因を絞り、同じ失敗コマンドを無限に繰り返さず、別経路へ切り替えられることです。

DS4 Q2と比べる

同じ課題を完走したDS4 2026-07-31 Q2との比較です。

指標 Qwen3.8 27B Q4 DS4 Q2
最終結果 成功 成功
時間 2:09:18 1:16:04
コマンド 225 143
非0終了 17 11
context 1,010,000 1,048,576
compaction 0 0
出力上限 65,536 65,536
推論GPU A100 80GB×1 A100 80GB×4
GGUF 18.97 GB 86.72 GB

Qwenは約1.70倍の時間、約57%多いコマンドを使いました。DS4の方が効率よく、短時間で完了しています。

ただし推論GPUが1枚対4枚なので、時間差をモデルだけの差とは言えません。一方、QwenのGGUFはDS4 Q2の約21.9%。19GB弱のモデルがA100 1枚で同じ最終地点へ到達した事実は、かなり魅力的です。

私の判断はこうです。

  • 安価な1GPUを長く回し、監査しながら使うならQwen3.8-27Bは有力。
  • 時間、安定性、少ない試行錯誤を優先するならDS4が上。
  • どちらも無監督root運用ではなく、評価OS、秘密分離、許可リスト、外部verifierが必要。

「Web検索がないのが問題では?」への答え

問題です。特にドライバー、CUDA、HPC SDK、パッケージ構成のように変わり続ける領域では、検索なしはハンディキャップになります。

ただし、検索を与えれば自動的に正しくなるわけではありません。

  1. 一次ドメインに限定する。
  2. APIキーはエージェントから隔離する。
  3. 取得した情報とローカル環境を照合する。
  4. 最終成功はモデルの文章ではなく実行ログで判定する。

この4つが必要です。

また、今回はTavily追加とYaRN修正を同時に行いました。65点から100点への改善が、Tavilyだけの効果だとは言えません。厳密には、次回YaRNを固定し、Tavily ON/OFFを各3〜5回ずつ走らせる必要があります。

もっと大きいQwen3.8はあるか

あります。2026年8月時点で公式リポジトリにはQwen3.8-2.4T-A95Bがあります。総2.4兆パラメータ、1トークン当たり約95Bを活性化するMoEです。Qwen3.8 official repository

ただし、これはA100 80GB 1枚で気軽にローカル運用するモデルではありません。GPUマキシマイザーの次の試験としては、27Bを3〜5回反復し、検索効果と成功率を測る方が現実的です。

最終判断

Qwen3.8-27Bは「そこそこ使える」より上です。今回の課題では、実務的に使えました。

ただし、手放しの完全自動化ではありません。転びながら進むモデルに、正しい道具と境界を与え、機械的に採点する。そこまで含めてGPUマキシマイザーです。

27BがA100 1枚で2時間以上考え続け、別のH100×2サーバーをクリーンOSからSlurm経由QEまで仕上げた。この結果だけでも、追加検証を続ける価値は十分にあります。


再現性に関する注記

各条件1回。統計的な成功率ではありません。公開素材ではIP、GPU UUID、秘密情報を除外しています。Si SCFはGPU対応QEの機能確認用で、科学的な収束計算ではありません。

動画

YouTubeで検証動画を見る: https://www.youtube.com/watch?v=DWIZNP0ysVo

この記事への質問・感想をお寄せください

「手持ちのGPUでも試せる?」「自社の環境ではどんな構成が必要?」など、一言から歓迎します。

この記事について質問・感想をメールで送る

会員登録は不要です。記事名とURLが入ったメール作成画面が開きます。

メールアプリが開かない場合は、ken@server-gear.com 宛に記事名を添えてお送りください。お送りいただいた内容は、公開コメントには掲載されません。

Read more