
本記事は、弊社が提供する「DGX Spark ハンズオン」の演習用副教材であり、座学パートを事前に受講済みであるか、同時に用いることを想定しています。
なお、すべての内容は記事作成時点の資料に基づいており、常に最新の情報が反映されていることを保証するものではありません。
ハンズオンの演習は、次の1~5章の内容から構成されています。
第1章『はじめに』
第2章『DGX Dashboardへのアクセス方法』
第3章『JupyterLab環境について』 ←※本記事
第4章『vLLMについて』
第5章『まとめ』
3.JupyterLab環境について
この章では、AI 開発において主要な役割を担うJupyterLabを、DGX Spark上で活用するための基本的な操作手順を解説します。実際にコードを実行しながらJupyterLabの動作を確認することで、読者が今後スムーズにJupyterLabを利用開始できるよう支援することを目的としています。
3.1 JupyterLabとは
JupyterLabはブラウザ上で動くワークスペースで、Pythonをはじめ複数の言語でプログラムを実行できます。コードはセルごとに実行でき、結果が直下に表示されるため、試行錯誤しながら反復的に作業するのに適しています。また、Markdown形式の記述法にも対応しているため、作業履歴を見やすく残すこともできます。
・3.1.1 JupyterLabインスタンスの起動
1.
Dashboardのトップ画面に表示されているJupyterLabのタイル内にあるStartをクリックすると起動準備が開始されます。操作に伴ってインスタンスの状態表示も灰文字のSTOPPEDから青文字のSTARTINGへ変化します。
2.
インスタンスの状態がRUNNINGとなると、グレーアウトしていた「Open in Browser」ボタンが使用可能となります。
Open in Browserボタンを押下すると新たなタブでJupyterLabが立ち上がります。
ランチャーが起動した場合、Notebookセクションの「Python 3(ipykernel)」を選択し、新しくNotebookを作成してください。
<EdgeからFFへの画像差し替え①>
<EdgeからFFへの画像差し替え②>
・3.1.2 テストコードの実行
下記Playbookの、Step 4 Test with sample AI workloadに記載されているサンプルコードを実行してみましょう。
DGX Dashboard | build.nvidia.com
import warnings
warnings.filterwarnings('ignore', message='.*cuda capability.*')
import tqdm.auto
tqdm.auto.tqdm = tqdm.std.tqdm
from diffusers import DiffusionPipeline
import torch
from PIL import Image
from datetime import datetime
from IPython.display import display
# --- Model setup ---
MODEL_ID = "stabilityai/stable-diffusion-xl-base-1.0"
dtype = torch.float16 if torch.cuda.is_available() else torch.float32
pipe = DiffusionPipeline.from_pretrained(
MODEL_ID,
torch_dtype=dtype,
variant="fp16" if dtype==torch.float16 else None,
)
pipe = pipe.to("cuda" if torch.cuda.is_available() else "cpu")
# --- Prompt setup ---
prompt = "a cozy modern reading nook with a big window, soft natural light, photorealistic"
negative_prompt = "low quality, blurry, distorted, text, watermark"
# --- Generation settings ---
height = 1024
width = 1024
steps = 30
guidance = 7.0
# --- Generate ---
result = pipe(
prompt=prompt,
negative_prompt=negative_prompt,
num_inference_steps=steps,
guidance_scale=guidance,
height=height,
width=width,
)
# --- Save to file ---
image: Image.Image = result.images[0]
display(image)
image.save(f"sdxl_output.png")
print(f"Saved image as sdxl_output.png")
JupyterLabのPython 3ノートブックを開き、任意のセルに貼り付け、タブ直下のツールバーで再生ボタンをクリックShift+Enterキーを押下しましょう。
このコードでは、JupyterLabのnotebook上でStable Diffusion XLを実行し画像生成から出力までの一連の流れを実行しています。
<EdgeからFFへの画像差し替え③>
ここまでの手順をお試しいただいたことで、JupyterLabでコーディングを開始する準備が整いました。ハンズオン終了後はぜひともご自身のアイデアを試してみてください。
なお、この後の演習ではJupyterLabを用いない為、テストコードの実行完了後はJupyterLabインスタンスを停止してかまいません。
・3.1.3 JupyterLabインスタンスの停止
1.
Dashboardのトップ画面に表示されているJupyterLabのタイル内にあるStopをクリックするとJupyterLabインスタンスの停止操作が開始されます。
2.
インスタンスの状態がSTOPPEDとなれば、JupyterLabインスタンスの停止は完了です。それに伴い、インスタンスが使用していたメモリ領域が解放されます。
■Python環境について
JupyterLabでは特別な設定を行わない限り、同一インスタンス上のすべてのノートブックが同じカーネル(Python実行環境)を共有するため、あるノートブックでpip installなどの環境変更を行うと、他のノートブックにも影響が及ぶ可能性があります。同様のリスクはJupyterLabを介さずにDGX OS上で直接Pythonを操作する場合にも存在します。
これらの問題を避けるためには、プロジェクトやノートブックごとにvenvを用いてカーネル(Python 実行環境)を分離することをお勧めします。venvとは、Pythonが提供する「仮想環境」機能であり、プロジェクトごとに独立したパッケージや設定を保持できる専用の環境を作成する仕組みです。これにより、異なるノートブックやアプリケーション間でライブラリのバージョンが衝突することを防ぎ、環境の再現性や保守性を高めることができます。
3.2 JupyterLabインスタンスのリセットについて(オプション)
|
この手順は必要となった場合にのみ実行してください。通常、ハンズオン中での実行は不要です。 |
既存JupyterLab環境をリセットする場合、次の手順に従ってください。
この操作を実行すると作成したユーザーデータを含む既存のJupyterLabインスタンスの環境が削除されます。
1.
DashboardのJupyterLabタイル内にあるStopを押下します。その後、操作に伴ってインスタンスの状態表示がSTOPPEDになったことを確認して下さい。
2.
インスタンスの停止後、JupyterLabのWorking Directoryパスを確認します。
3.
確認したパスのディレクトリを削除してください。削除の完了後も、再度インスタンスの起動操作を行うことにより利用を再開することができます。(なお、関連パッケージの取得を再び実施する関係上、初回起動時と同様の実行時間を要します。)
次章の記事はこちら
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 技術統括部 第2技術部 1課
下山 翔也 - Shoya Shimoyama -
NVIDIA社製品のプリセールス・エンジニア業務を担当。
GPUのほか、クラウドサービスやサーバー、ネットワーク機器についても取り扱う。
