我が家に NVIDIA DGX Spark がやってきた: Day 2
Day 2 は、実験を回し始める前の「開発環境づくり」です。
Day 1 記事はこちらです。[2]
今回は次の 8 つを進めます。
- 初期設定(言語・タイムゾーン・OS 初回セットアップ)
- VS Code のインストール
- Windows からのリモート接続
- Node.js と npm のインストール
- GitHub Copilot CLI のセットアップ
- Nemotron 3 を llama.cpp で起動(推論 + ツール呼び出し向け LLM)
- Gemma 4 31B IT を llama.cpp で起動(汎用 LLM)
- NatureLM-8x7B を llama.cpp で起動(科学特化 LLM)
Day 2 のゴールは「AI Agent を動かすための土台」を作ることです。
複数の LLM バックエンド(汎用 + 科学特化)を備え、Day 3 で GitHub Copilot CLI から Co-Scientist Agent 実験を行える環境を実現します。
Day 2 全体の所要時間目安
| セクション | 所要時間 |
|---|---|
| 0. 初期設定 | 約 60 分(初回セットアップ) |
| 1. VS Code インストール | 約 2〜3 分 |
| 1-1. Windows リモート接続 | 約 5〜10 分 |
| 1-2. Node.js と npm | 約 3 分 |
| 2. GitHub Copilot セットアップ | 約 7〜11 分 |
| 3. Nemotron 3(llama.cpp・Q8_K_XL版) | 約 30 分〜 |
| 4. Gemma 4 31B IT(llama.cpp・Q4_K_M版) | 約 20 分〜 |
| 5. NatureLM-8x7B(オプション) | 約 6〜12 分 |
| 合計 | 約 150 分 |
0. 初期設定(最初に 1 回だけ)
最初の起動時は、DGX OS のセットアップウィザードが自動で始まります。[7]
所要時間の目安
- 言語・タイムゾーン設定:1〜2 分
- 初回ダウンロード / インストール:50〜60 分
- 合計:約 60 分
手順
- 起動ウィザードで以下を設定します。
Select Language: JP-日本語
Select Timezone: Asia-Tokyo
-
初回のダウンロードとインストールが完了するまで待ちます。
-
OS 起動後、ターミナルを開きます(
Ctrl+Alt+t)。 -
必要に応じて、ホーム配下の日本語フォルダ名を英語に変更します。
LANG=C xdg-user-dirs-gtk-update
初回セットアップ中は時間がかかります。途中で電源を切らないようにしてください。
1. VS Code のインストール(ARM64 / .deb)
まずは DGX Spark 上で使うエディタを入れます。
所要時間の目安
- ダウンロード:約 1〜2 分(ネットワーク速度による)
- インストール:約 1 分
- 合計:約 2〜3 分
手順
-
次のページを開きます。[1]
https://code.visualstudio.com/download#

-
Linux 向けの ARM64 版
.debパッケージをダウンロードします。 -
ダウンロードしたファイルをインストールします。
sudo apt install ./code_*_arm64.deb
- インストール確認。
code --version
依存関係エラーが出た場合は、次を実行して再度インストールしてください。
sudo apt --fix-broken install
sudo apt install ./code_*_arm64.deb
1-1. Windows からのリモート接続(Remote-SSH)
多くの場合、開発は Windows PC で進めながら、計算を DGX Spark で回すという使い方になります。
ここでは Windows の VS Code から DGX Spark の環境にリモート接続する方法を解説します。
所要時間の目安
- 拡張インストール・SSH キー生成:約 2〜3 分
- 公開鍵の登録・config 設定:約 3〜5 分
- 初回接続確認:約 1〜2 分
- 合計:約 5〜10 分
Spark 側の準備
まず DGX Spark 上で SSH サーバーが動作していることを確認します。
sudo systemctl status ssh
# または
sudo systemctl status openssh-server
動作していない場合は起動してください。
sudo systemctl start ssh
sudo systemctl enable ssh # 自動起動設定
次に、SSH で接続可能なユーザーアカウントがあることを確認します。
whoami
Windows 側の準備
Windows の VS Code に Remote - SSH 拡張をインストールします。[4]
- VS Code を開く
- 拡張機能から「Remote - SSH」を検索してインストール
- サイドバーに「Remote Explorer」アイコンが表示される
接続設定(Windows の ~/.ssh/config)
Windows PowerShell で SSH キーを生成します。以下の 2 つの方法があります。
方法 1:対話的に生成(推奨・簡単)
ssh-keygen -t rsa -b 4096 -f "$env:USERPROFILE\.ssh\id_rsa"
実行後、パスフレーズを聞かれたら、Enter キーを 2 回押してください(パスフレーズなしに設定)。
方法 2:非対話的に生成(スクリプト向け)
パイプを使って自動化する場合:
"" | ssh-keygen -t rsa -b 4096 -f "$env:USERPROFILE\.ssh\id_rsa" -N ""
生成確認。公開鍵の内容を確認します。
cat "$env:USERPROFILE\.ssh\id_rsa.pub"
この公開鍵の内容をコピーして、DGX Spark 側で以下を実行します。
# Windows から公開鍵をペーストする場合
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "Windows の公開鍵の内容をここに貼り付け" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
次に、Windows の %USERPROFILE%\.ssh\config ファイル(ない場合は新規作成)に以下を追記します。
Host spark
HostName <DGX_Spark_のIPアドレス>
User <ユーザー名>
IdentityFile ~/.ssh/id_rsa
StrictHostKeyChecking accept-new
例:
Host spark
HostName 192.168.1.100
User researcher
IdentityFile ~/.ssh/id_rsa
StrictHostKeyChecking accept-new
VS Code から接続
- VS Code の「Remote Explorer」で「SSH」を選択
- 歯車アイコンで設定ファイルを開き、上記の
configに変更を保存 - 接続先リストに「spark」が表示される
- 「spark」をクリックして接続
- 初回は「プラットフォームを選択」画面が出るので「Linux」を選択
接続後、VS Code の左下が「SSH: spark」と表示されたら成功です。
トラブル対処
「Permission denied」エラーが出る場合
- 公開鍵が正しく
~/.ssh/authorized_keysに登録されているか確認 -
chmod 600 ~/.ssh/authorized_keysで権限を確認
「Could not establish connection」エラーが出る場合
- DGX Spark の IP アドレスが正しいか確認
-
ssh -v sparkで Windows PowerShell から接続テストを実行 - ファイアウォール設定で SSH ポート(22番)が開いているか確認
初回接続時に指紋確認が出た場合
- 「是」または「承認」を選択して進めてください
接続に成功すると、Windows の VS Code から DGX Spark 上のファイルを直接編集できるようになり、実験スクリプトの開発効率が大きく向上します。
1-2. Node.js と npm のインストール
Day 3 で GitHub Copilot CLI を使って Co-Scientist Agent 実験を行う際に Node.js と npm が必要になります。
ここでは Node.js LTS 版をインストールします。
所要時間の目安
- リポジトリ追加・インストール:約 2〜3 分
- 合計:約 3 分
手順
- Node.js の公式パッケージリポジトリを追加します。
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
- パッケージリストを更新します。
sudo apt update
- Node.js をインストールします。
sudo apt install nodejs
- インストール確認。
node --version
npm --version
Node.js LTS 版には npm が付属しているため、別途 npm をインストールする必要はありません。
このセットアップにより、Day 3 での Co-Scientist Agent 実験がスムーズに進みます。
2. GitHub Copilot のセットアップ
GitHub Copilot を利用するには、GitHub Copilot のライセンス(Individual または Business)の購入・有効化が必要です。
所属機関で契約している場合は、組織アカウントで利用権限が有効になっているか先に確認してください。
所要時間の目安
- gh CLI インストール:約 2〜3 分
- VS Code 拡張・認証:約 3〜5 分
- Copilot CLI インストール・認証:約 2〜3 分
- 合計:約 7〜11 分
次に、GitHub Copilot を VS Code と CLI の両方で使える状態にします。
2-1. gh(GitHub CLI)をインストール
gh が未インストールの場合は、先に以下を実行します。[3]
(type -p wget >/dev/null || (sudo apt update && sudo apt install wget -y)) \
&& sudo mkdir -p -m 755 /etc/apt/keyrings \
&& wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg \
| sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
&& sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" \
| sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y
インストール確認:
gh --version
2-2. VS Code 拡張を有効化
- VS Code の拡張機能で
GitHub Copilotをインストール - GitHub アカウントでサインイン
- 任意のコードファイルで補完提案が出ることを確認
2-3. GitHub Copilot CLI をインストール・有効化
GitHub Copilot CLI をインストールして、自然言語から実験補助スクリプトを生成できるようにします。
以下の 2 つの方法があります。どちらか一つを選んでください。
方法 A:npm グローバルインストール版(推奨)
Node.js から直接インストールする方法です。
npm install -g @github/copilot
インストール確認:
copilot --version
初回認証:
copilot auth login
テスト実行:
copilot explain "what does this code do? for (let i = 0; i < 10; i++) { console.log(i); }"
方法 B:GitHub CLI 拡張版
gh コマンドに機能を追加する方法です。
gh extension install github/gh-copilot
gh auth login
テスト実行:
gh copilot suggest "create a python script to parse csv and plot histogram"
どちらの方法でも GitHub Copilot が使えるようになります。方法A(npm版)は単体で動作し、方法B(gh extension版)は既存の GitHub CLI と統合されます。
Day 3 での Co-Scientist Agent 実験では、主に方法A(npm版)を使用します。
この状態まで来ると、自然言語から実験補助スクリプトを生成しやすくなります。
3. Nemotron 3 を llama.cpp で動かす
NVIDIA の DGX Spark プレイブックで提供されている Nemotron-3-Nano-30B-A3B を、llama.cpp の OpenAI 互換エンドポイントで動かします。推論 + ツール呼び出し用途のローカル LLM バックエンドとして使えます。[8]
Nemotron-3 の主な特徴は、30BパラメータのMoEアーキテクチャ(アクティブ3B)による高効率推論、推論過程を扱える reasoning 機能、そして OpenAI 互換API経由でのツール呼び出し連携のしやすさです。さらに、長いコンテキストにも対応でき、--ctx-size を用途に応じて拡張可能です(その分メモリ消費は増加)。ローカル運用でも、精度と実用性のバランスを取りやすいモデルです。
所要時間の目安
- ビルド:約 5〜10 分
- モデルダウンロード:約 38GB(Q8_K_XL)
- 合計:約 30 分〜
3-1. 前提確認
必要ツールがインストールされているか確認します。
git --version
cmake --version
nvcc --version
Hugging Face CLI は、Gemma/NatureLM と共通の仮想環境 llama-cpp-venv でインストールします。
python3 -m venv llama-cpp-venv
source llama-cpp-venv/bin/activate
pip install -U "huggingface_hub[cli]"
hf version
3-2. llama.cpp をクローン・ビルド
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
mkdir build && cd build
cmake .. -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES="121" -DLLAMA_CURL=OFF
make -j8
すでに llama.cpp をビルド済みの場合は、この手順をスキップして次に進めます。
3-3. Nemotron 3 GGUF をダウンロード
hf download unsloth/Nemotron-3-Nano-30B-A3B-GGUF \
Nemotron-3-Nano-30B-A3B-UD-Q8_K_XL.gguf \
--local-dir ~/models/nemotron3-gguf
3-4. llama-server を起動
./bin/llama-server \
--model ~/models/nemotron3-gguf/Nemotron-3-Nano-30B-A3B-UD-Q8_K_XL.gguf \
--host 0.0.0.0 \
--port 30002 \
--n-gpu-layers 99 \
--ctx-size 8192 \
--threads 8
NVIDIA 公式プレイブック例は --port 30000 ですが、本記事では Gemma 4(30000)/ NatureLM(30001)と併用しやすいように 30002 を割り当てています。
3-5. API 動作確認
curl -X POST http://127.0.0.1:30002/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "nemotron",
"messages": [{"role": "user", "content": "New York is a great city because..."}],
"max_tokens": 300
}'
choices[0].message.content に回答が返れば成功です。
4. Gemma 4 31B IT を llama.cpp で動かす
Co-Scientist Agent から参照するローカル LLM として、Gemma 4 31B IT を OpenAI 互換エンドポイントで起動します。[5]
DGX Spark は 128GB の統合メモリ(UMA)を備えており、Q4_K_M 量子化版(約 10GB)で十分な精度を実現できます。
所要時間の目安
- ビルド:約 5〜10 分
- モデルダウンロード:約 10GB(Q4_K_M 量子化版、ネットワーク速度による)
- 合計:20 分〜
4-1. 前提確認
必要ツールがインストールされているか確認します。
git --version
cmake --version
nvcc --version
3 つすべてバージョン情報が返ることを確認してください。
git がインストールされていない場合
sudo apt update
sudo apt install git -y
git --version
cmake がインストールされていない場合
sudo apt install cmake -y
cmake --version
llama-cpp-venv をまだ作成していない場合は、ここで作成して Hugging Face CLI をインストールします。
python3 -m venv llama-cpp-venv
source llama-cpp-venv/bin/activate
pip install -U "huggingface_hub[cli]"
インストール確認:
hf version
4-2. llama.cpp をクローン・ビルド
git clone https://github.com/ggml-org/llama.cpp
cd llama.cpp
DGX Spark GB10(sm_121)向けに CUDA バックエンドを有効化してビルドします。
mkdir build && cd build
cmake .. -DGGML_CUDA=ON -DCMAKE_CUDA_ARCHITECTURES="121" -DLLAMA_CURL=OFF
make -j8
ビルド完了後、build/bin/ 以下に llama-server 等のバイナリが生成されます。
CMake が「CUDA not found」エラーを出す場合は、以下を実行してから再試行してください。
export PATH=/usr/local/cuda/bin:$PATH
4-3. Gemma 4 31B IT GGUF をダウンロード
メモリ効率と精度のバランスが取れた Q4_K_M 量子化版をダウンロードします。
hf download ggml-org/gemma-4-31B-it-GGUF \
gemma-4-31B-it-Q4_K_M.gguf \
--local-dir ~/models/gemma-4-31B-it-GGUF
Q4_K_M ファイルは約 10GB あります。ダウンロードが中断しても hf download を再実行すれば再開できます。
モデルバージョン比較
- F16(フルサイズ):約 62GB、最高精度、VRAM 必須
- Q4_K_M(推奨):約 10GB、バランス型、DGX Spark 推奨
- Q8_0:約 13GB、高精度、中程度の容量
4-4. llama-server を起動(OpenAI 互換エンドポイント)
llama.cpp/build ディレクトリから起動します。
./bin/llama-server \
--model ~/models/gemma-4-31B-it-GGUF/gemma-4-31B-it-Q4_K_M.gguf \
--host 0.0.0.0 \
--port 30000 \
--n-gpu-layers 99 \
--ctx-size 8192 \
--threads 8
もしくは、ホームディレクトリの bin/ に配置した起動スクリプトを使って起動できます。
~/bin/start-gemma4.sh
以下のログが出たら起動完了です。
llama_new_context_with_model: n_ctx = 8192
...
main: server is listening on 0.0.0.0:30000
このターミナルは開いたままにしてください。大きな GGUF は読み込みに数分かかります。
4-5. API 動作確認
別のターミナルで動作テストします。
curl -X POST http://127.0.0.1:30000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gemma4",
"messages": [{"role": "user", "content": "水素吸蔵合金の代表的な材料を教えてください"}],
"max_tokens": 300
}'
choices[0].message.content に Gemma 4 の回答が返れば成功です。
Windows から接続する場合は 127.0.0.1 を DGX Spark の IP アドレスに置き換えてください。
curl -X POST http://<DGX_Spark_IP>:30000/v1/chat/completions ...
このエンドポイント(http://<Spark_IP>:30000/v1)を、Day 3 で GitHub Copilot CLI の Co-Scientist Agent 実験に利用します。
OpenAI クライアントライブラリや Continue.dev などのツールもそのまま接続できます。
トラブル対処
| 症状 | 原因 | 対処 |
|---|---|---|
cmake CUDA not found |
CUDA がパスにない |
export PATH=/usr/local/cuda/bin:$PATH を実行 |
| ビルドエラー(GPU アーキテクチャ) | sm_121 が未指定 |
-DCMAKE_CUDA_ARCHITECTURES="121" を確認 |
| GGUF ダウンロード失敗 | ネットワーク不安定 |
hf download を再実行(再開される) |
| CUDA OOM(起動失敗) | コンテキスト長が大きすぎる |
--ctx-size 4096 に下げるか小さな量子化を使用 |
curl: (7) Failed to connect |
サーバー未起動またはロード中 |
server is listening が出るまで待機 |
5. NatureLM-8x7B の選択的インストール(科学向け言語モデル)
Microsoft Research AI for Science により開発された NatureLM-8x7B は、科学発見向けの基盤モデルです。小分子生成、タンパク質設計、材料最適化などのクロスドメイン・タスクに特化しています。[6]
Gemma 4 に加えて、科学ドメイン特化のバックエンドを用意する場合はこちらをインストールしてください。
所要時間の目安
- GGUF ダウンロード:約 5〜10 分(Q4_K_M 量子化版・約 15GB)
- llama-server 起動確認:約 1〜2 分
- 合計:約 6〜12 分
容量比較
- F16(フルサイズ):約 47GB
- Q4_K_M(推奨):約 15GB
- Q5_K_M:約 18GB
5-1. NatureLM-8x7B GGUF をダウンロード
llama-server で使うため、GGUF 量子化版(Q4_K_M)を取得します。
# 認証(レート制限回避のため推奨)
hf auth login
# NatureLM-8x7B GGUF(Q4_K_M)をダウンロード
hf download mradermacher/NatureLM-8x7B-GGUF \
NatureLM-8x7B.Q4_K_M.gguf \
--local-dir ~/models/NatureLM-8x7B-GGUF
microsoft/NatureLM-8x7B の公式リポジトリは Safetensors 形式のみで、llama-server で直接使う GGUF は含まれていません。
この手順では、実在確認済みの GGUF リポジトリを利用しています。
5-2. llama-server で NatureLM-8x7B を起動
別の llama-server インスタンスとして起動することで、Gemma 4 と NatureLM の両方を同時に利用できます。
# llama.cpp/build ディレクトリから、別のポートで起動
./bin/llama-server \
--model ~/models/NatureLM-8x7B-GGUF/NatureLM-8x7B.Q4_K_M.gguf \
--host 0.0.0.0 \
--port 30001 \
--n-gpu-layers 99 \
--ctx-size 8192 \
--threads 8
もしくは、ホームディレクトリの bin/ に配置した起動スクリプトを使って起動できます。
~/bin/start-naturelm.sh
起動確認(別のターミナルで):
curl -X POST http://127.0.0.1:30001/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "naturelm",
"messages": [{"role": "user", "content": "タンパク質の構造から分子設計する手法を説明してください"}],
"max_tokens": 500
}'
NatureLM-8x7B は科学分野(分子生成、タンパク質設計、材料科学)に特化しています。
- ポート 30002:Nemotron 3(推論 + ツール呼び出し向け LLM)
- ポート 30000:Gemma 4 31B IT(汎用 LLM)
- ポート 30001:NatureLM-8x7B(科学特化 LLM)
Day 3 では、タスク別に適切なエンドポイントを Co-Scientist Agent から選択します。
まとめ
Day 2 では、実験の前段として次を整えました。
- VS Code(ARM64 .deb)
- Windows からの SSH リモート接続
- Node.js と npm(Day 3 の Co-Scientist Agent 実験用)
- GitHub Copilot(Editor + CLI)
- Nemotron 3 を llama.cpp で起動(ポート 30002、推論 + ツール呼び出し向け LLM)
- Gemma 4 31B IT を llama.cpp で起動(ポート 30000、汎用 LLM)
- NatureLM-8x7B を llama.cpp で起動(ポート 30001、科学特化 LLM)※オプション
- 起動を簡略化するスクリプト(
start-gemma4.sh/start-naturelm.sh)
複数の LLM バックエンドが整い、汎用タスクと科学ドメイン特化タスクの両方に対応できるようになりました。Day 3 では GitHub Copilot CLI で Co-Scientist Agent を動かし、適切なモデルを選択しながら実験を進めます。
次回予告(Day 3)
- GitHub Copilot CLI で Co-Scientist Agent を起動
- Nemotron 3 / Gemma 4 / NatureLM-8x7B のエンドポイントを切り替えながら実験
- 科学論文を入力して、仮説生成・分子構造提案を行う実験パイプラインの実装
参考資料
[1] Visual Studio Code Download - Microsoft, 2026-04-23 access
[2] 我が家に NVIDIA DGX Spark がやってきた: AI for Science Day 1 - Qiita, 2026-04-23 access
[3] GitHub CLI installation instructions - GitHub, 2026-04-23 access
[4] VS Code Remote - SSH - Microsoft Visual Studio Marketplace, 2026-04-23 access
[5] Run models with llama.cpp on DGX Spark - NVIDIA, 2026-04-23 access
[6] NatureLM-8x7B - Microsoft Research AI for Science - Hugging Face, 2026-04-23 access
[7] NVIDIA DGX SparkでローカルAI環境を構築してLLM・画像生成AIを動かしてみた - Zenn, 2026-04-24 access
[8] Nemotron-3-Nano with llama.cpp - NVIDIA, 2026-04-25 access
