コンテンツにスキップ

3. GPU の準備:マシンを借り、環境を入れ、モデルをダウンロードする

この章からお金がかかり始めます。マシンを起動する前に、第 1~2 章を読み終え、ローカルでアップロード用パッケージを用意できていることを確認してください。

この章のまとめ

  • この章でやること:RTX 4090 のクラウドホストを起動する。nvidia-smi の読み方を覚える。プロジェクトをアップロードする。学習用の Python 環境を作る。ModelScope から 8 GB のベースモデルをダウンロードして検証する。JupyterLab で正しいカーネルを選ぶ
  • 必要なもの:GPU プラットフォームのアカウントと残高。ローカルマシンで python3 tools/build_gpu_zip.py を実行して作った llm-lora-tutorial-gpu.zip(コード、データ、トークナイザーだけで数 MB)
  • 終わると手に入るもの:.venv-train 環境がセルフチェックに通る。models/qwen3-4b/ が検証に通る。ノートブックが LoRA · Python 3.11 カーネルで開いている
  • 目安の所要時間:30~60 分。大半は依存パッケージのインストールと重みのダウンロードです

この章の 5 つのステップと、それぞれが解決する問題は次のとおりです。

ステップ 何を解決するか 省略するとどうなるか
3.1 マシンを選ぶ VRAM に 4 bit のベースモデルと学習中の中間結果が収まること、ディスクに環境・ベースモデル・マージ済みモデルが収まること 学習中に OOM になる、またはマージの途中でディスクがいっぱいになる
3.2 nvidia-smi を読む GPU、ドライバーのバージョン、空き VRAM を確認する 後でインストールする PyTorch がドライバーと合わず、「CUDA が使えない」というエラーになることがある
3.3 アップロード + 環境構築 バージョンを固定したライブラリでプロジェクト専用の環境を作り、Jupyter カーネルとして登録する イメージに同梱された古いライブラリを使ってしまい、コードの挙動がチュートリアルと合わなくなる
3.4 ベースモデルのダウンロード このチュートリアルとバイト単位で同一のモデル重みを手に入れる バージョンが違うと回答も数値も合わない。シャードが欠けていると、ロード時になって初めてエラーになる
3.5 ノートブックを開く 正しいカーネルを選ぶ ノートブックがシステムの Python で動き、import に失敗するか、違うバージョンを使ってしまう

3.1 GPU ホストとファイル

どこで借りるか:Zhichuan Cloud

本書の GPU 作業はすべて Zhichuan Cloud(gpuhome.cc) で行いました。初心者にはそのままこれを使うことをおすすめします。主な理由は、安くてすぐに使い始められることです。

項目 Zhichuan Cloud の場合
料金 RTX 4090D(24 GB)従量課金 ¥1.25/時間。日額 ¥29、週額 ¥200、月額 ¥800(2026-10-11 時点のページ表示価格。注文時の価格が優先されます)。本書のメインの流れは 2~3 時間ほどなので、かかるのは 3~4 元程度です
新規ユーザー特典 初回に ¥1 以上チャージすると ¥5 のクーポンがもらえ、メインの流れを一通り走らせるのにほぼ足ります
GPU の種類 RTX 3090 / 4090 / 4090D / 4090 Lite / 5090、A100、L40S など。1~8 枚構成、複数リージョン
イメージ 本書で使う PyTorch ベースイメージ 2.7.1-CUDA12.6-Py3.11-Ubuntu22 があります
使い方 インスタンスのページからワンクリックで JupyterLab、SSH、VSCode を開けます。50 GB のデータディスク付き

Zhichuan Cloud のレンタルページ:RTX 4090D 24 GB、従量課金 ¥1.25/時間、日額 ¥29、週額 ¥200、月額 ¥800

選び方:GPU は RTX 4090、4090D、4090 Lite のどれでもかまいません。いずれも VRAM は 24 GB で、本書のコマンドを変える必要はありません(4090D は中国市場向けモデルで、演算性能は 4090 よりやや低く、VRAM は同じです)。イメージは PyTorch → 2.7.1-CUDA12.6-Py3.11-Ubuntu22 を選びます。課金は従量課金を選び、使い終わったらシャットダウンしてください。

実際にやってみて得た教訓が 2 つあります。マシンが起動したら、まずこれに対処してください。

  • プロジェクトはデータディスクに置く。 インスタンスのホームディレクトリ /root は 30 GB のシステムディスク上にあります。学習環境を入れ、8 GB のモデルをダウンロードし、さらに vLLM を入れるといっぱいになります。df -h で約 50 GB のディスクを探し(著者のインスタンスでは /root/rivermind-data にマウントされていました)、そこにプロジェクトを展開してください。
  • PyTorch 公式のインデックスにつながらないことがある。 3.3 節と 5.4 節の両方に、中国国内ミラーを使う代替コマンドを載せています。

登録リンク:https://gpuhome.cc/auth/register?code=zt4f01m0。登録時に招待コード zt4f01m0 を入力すると、新規ユーザー向けクーポンを受け取れます。これは著者の紹介リンクで、あなたが初回チャージをすると著者にもプラットフォームのクーポンが付与されます。クーポンはプラットフォームが手動で発行するので、条件を満たしたらカスタマーサポートに連絡して受け取ってください。有効期限は 3 か月です。

今回使ったホスト構成

この章は、すでに選んで起動した RTX 4090 のクラウドホストに沿って進めます。以下の構成は 2026-09-29 に保存した起動時のスクリーンショットによるものです。ログイン後には、実際のデバイスと環境を改めて確認する必要があります。

項目 今回の選択 注意点
GPU RTX 4090 × 1、VRAM 24 GB このチュートリアルは GPU 1 枚を使います。第 4 章はデフォルトで 1 エポック(約 72 ステップ)を最後まで回します
CPU / ホストメモリ 15 コア / 100 GB チュートリアルが推奨するホストメモリ 32 GB、および後の CPU マージで推奨する 64 GB を満たします
システムディスク 30 GB SSD プロジェクト、学習環境、モデルはできるだけデータディスクに置きます
データディスク 50 GB SSD、スクリーンショットでは拡張なし 全工程を通すなら 100 GB への拡張をおすすめします。ダウンロード前に実際の空き容量を確認してください
ベースイメージ 2.7.1-CUDA12.6-Py3.11-Ubuntu22 Ubuntu 22、Python 3.11、PyTorch 2.7.1 / CUDA 12.6 がプリインストール済み
課金方式 従量課金 その回の実験が終わったら、プラットフォームのルールに従ってアイドル状態のインスタンスを停止し、ストレージ料金も確認してください

下の図は、今回確認した GPU とイメージの構成です。

RTX 4090 24GB のクラウドホストで 2.7.1-CUDA12.6-Py3.11-Ubuntu22 イメージを選択した画面

イメージは選べたので、次はその中にプロジェクト専用の学習環境を作ります。 イメージには PyTorch 2.7.1 がプリインストールされていますが、このチュートリアルのコードと依存関係は PyTorch 2.8.0 に固定しています。次の節で .venv-train を作って 2.8.0 + cu126 をインストールし、イメージ元々の環境には手を付けません。公式のインストールコマンドは PyTorch 2.8.0 にあります。

マシンは起動しましたが、このホストでのドライバー、依存関係、学習時の VRAM、所要時間はまだ検証していません。この章では環境、ダウンロード、カーネルを準備し、第 4 章でノートブック上でベースモデルを観察して LoRA のパラメーターを更新します。

ほかの GPU を選ぶ場合

下の表は標準的なデスクトップ向けカードを対象にしたもので、Qwen3 4B、4-bit QLoRA、最大 4096 トークン、1 回に 1 サンプルという構成を計画するためのものです。実際の使用量と所要時間はやはり実測が必要です。借りるときは、正確な型番、GPU 1 枚あたりの VRAM、GPU を専有できるかどうかを確認してください。

GPU 型番 1 枚あたりの VRAM おすすめ
RTX 4090 24 GB GDDR6X 今回使った型番です。下の cu126 のコマンドをそのまま使います
RTX 3090 24 GB GDDR6X すでに持っている場合や、実際に安く借りられる場合はよい選択です。cu126 を使います
RTX 5090 32 GB GDDR7 VRAM に余裕があります。PyTorch をインストールするとき、インデックス URL 末尾の cu126 を cu128 に変えます

5090 は Blackwell アーキテクチャを採用しており、それをサポートするホストドライバーが必要です。bitsandbytes 0.48.2 のサポート表によると、必要な sm120 は CUDA 12.8 ビルドに含まれています。5090 を使う場合は、下のチェックスクリプトにある CUDA バージョンのアサーションも 12.6 から 12.8 に変えてください。今回は 4090 を使うので、次の節のコマンドをそのまま実行します。

3.2 まず nvidia-smi を読む:ドライバー、CUDA、VRAM

GPU ホストにログインしたら、最初に nvidia-smi を実行します。出力はおおよそ次のようになります。

+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 560.35.03              Driver Version: 560.35.03      CUDA Version: 12.6     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4090        Off | 00000000:01:00.0 Off   |                  Off |
| 30%   35C    P8             20W / 450W  |       0MiB / 24564MiB  |      0%      Default |
+-----------------------------------------+------------------------+----------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+
項目 意味 気にすべきこと
Driver Version カーネルドライバーのバージョン。プラットフォームのイメージで決まり、一般ユーザーは変更できません 下の CUDA の上限を決めます
CUDA Version このドライバーがサポートする CUDA の最高バージョンであり、インストール済みの CUDA ではありません PyTorch の cu126 には 12.6 以上、vLLM 0.21 の cu129 には 12.9 以上が必要です
Memory-Usage 使用中 / 合計の VRAM 学習前は 0 に近いはずです。学習中はどこまで上がるかを見ます。vLLM を起動する前に、学習カーネルが VRAM を解放したことを確認します
GPU-Util GPU の演算使用率 学習中や負荷試験中は高めを保つはずです。長く 0 のままなら、プログラムが CPU で詰まっているか待ち状態です
Processes どのプロセスが VRAM を使っているか 閉じ忘れた Jupyter カーネルを見つけるのに使います

ドライバー、CUDA、PyTorch の関係: ドライバーは OS にインストールされ、GPU に結び付いています。CUDA は NVIDIA の計算ライブラリで、PyTorch の wheel には必要な分が同梱されています(torch==2.8.0 の cu126 という接尾辞は「CUDA 12.6 のランタイムを同梱」という意味です)。そのため CUDA ツールキットを自分でインストールする必要はありません。唯一の制約は、ドライバーがサポートするバージョンが wheel に同梱されたバージョンより低くてはいけない、ということです。イメージ名の CUDA12.6 はプリインストールされたツールキットのことで、ドライバーの上限とは別物です。nvidia-smi の表示を信じてください。

たとえるなら、ドライバーは OS のカーネルバージョン、CUDA ランタイムはアプリが同梱している依存ライブラリ、nvidia-smi は top と free -h を合わせたようなものです。

VRAM とホストメモリは別々のメモリです。モデルの重み、学習の中間結果、KV キャッシュはすべて VRAM に置く必要があり、ホストの 100 GB のメモリは受け渡しと CPU 上でのマージにしか使いません。VRAM が足りないときのエラーは CUDA out of memory で、対処法は使用量を減らすこと(量子化、短いサンプル、同時実行数を下げる)であり、ホストメモリを増やすことではありません。

3.3 プロジェクトをアップロードし、学習用カーネルを準備する

アップロード用パッケージ llm-lora-tutorial-gpu.zip を、プラットフォームのファイルアップロード機能で GPU のデータディスクにアップロードします。このパッケージはローカルのプロジェクトルートで下のコマンドを実行して作ります。ノートブック、コード、データを変更したら作り直してください。パッケージ内のトークナイザーはローカルの models/qwen3-4b/ から取り込まれるので、初めてパッケージを作る前に、2.8 節の説明どおり lab.download --tokenizer-only を一度実行しておきます。

python3 tools/build_gpu_zip.py

パッケージ作成スクリプトは実行結果が残ったノートブックを受け付けないので、アップロードされるのは常にクリーンな状態のものです。アップロードしたら、アップロード先でターミナルを開いて展開します。

unzip llm-lora-tutorial-gpu.zip
cd llm-lora-tutorial
pwd
nvidia-smi
df -h .

以降の GPU コマンドはすべてこのプロジェクトディレクトリで実行します。ノートブックは実際の絶対パスを表示します。notebooks/ の中にプロジェクトをもう 1 つ展開しないでください。古いバージョンのプロジェクトがすでにある場合は、新しいバージョンを別のディレクトリに展開し、元の runs/ とモデルのダウンロード先ディレクトリは残しておきます。学習結果を直接上書きしないでください。

アップロード用パッケージの中身

圧縮時で約 4 MB、展開後で約 17 MB、全部で 31 ファイルです。入っているのは「GPU での学習とデプロイに必要だが、オンラインでダウンロードできないか、このチュートリアルと完全に一致している必要があるもの」だけです(一覧の説明は中国語です。各ファイルの説明は、そこに書かれた章を参照してください)。

llm-lora-tutorial/
├── GPU_UPLOAD_README.md            GPU 上的操作速查:建环境 → 下权重 → 打开 Notebook
├── notebooks/01_gpu_train.ipynb    训练主入口,第 4 章逐格执行
├── data/
│   ├── dataset.json                唯一的数据文件:事实卡 + train/val/test 对话(第 2 章)
│   └── README.md                   数据逐字段说明
├── lab/                            Notebook 和命令行共用的 Python 代码
│   ├── common.py                   拼提示词、生成训练样本和掩码(第 2.5 节)
│   ├── data.py                     读入并校验 dataset.json、按回答拆样本
│   ├── download.py                 下载并校验基座权重(第 3.4 节)
│   ├── download-lock.json          12 个模型文件的大小和 SHA-256,下载后逐个核对
│   ├── training.py、train.py       训练器配置与命令行训练(第 4.6 节、第 6 章)
│   ├── prepare.py、audit.py        命令行快照与 Token 检查(第 4.6 节、第 6 章)
│   ├── infer.py、evaluate.py       A/B/C 对照推理与盲评(第 6 章)
│   └── merge.py                    命令行合并 adapter(第 5.1 节)
├── models/qwen3-4b/                基座的“说明部分”,没有权重
│   ├── config.json 等配置           模型结构、默认生成参数
│   ├── tokenizer.json、vocab.json、merges.txt、tokenizer_config.json   分词器和聊天模板
│   ├── model.safetensors.index.json   权重分片索引(分片本身还没下载)
│   ├── model-lock.json             本教程固定的模型版本号
│   └── LICENSE、README.md          模型许可证与模型卡
├── requirements-train.txt          训练依赖(Transformers、PEFT、TRL、bitsandbytes 等,版本固定)
├── requirements-download.txt       下载依赖(ModelScope;备用镜像用的 huggingface_hub 随 Transformers 安装)
├── requirements-notebook.txt       Jupyter 内核与画 loss 曲线的依赖
├── requirements-data.txt           数据检查依赖
└── pyproject.toml                  项目元数据

要約すると、GPU_UPLOAD_README.md は GPU 上での手順のクイックリファレンスです。notebooks/01_gpu_train.ipynb は学習のメインの入口(第 4 章)です。data/ には唯一のデータセットファイルとそのフィールド解説が入っています。lab/ はノートブックと CLI が共有する Python コードです(common.py でプロンプトの組み立てとマスク、download.py でダウンロードと検証、download-lock.json に 12 個のモデルファイルのサイズと SHA-256、さらに CLI 用の学習、スナップショット、推論、評価、マージのスクリプト)。models/qwen3-4b/ はベースモデルの「説明部分」(設定、トークナイザーとチャットテンプレート、シャードのインデックス、固定バージョン、ライセンスとモデルカード)で、重みは含みません。requirements-*.txt は学習、ダウンロード、ノートブック、データチェックの依存関係を固定しています。

パッケージに含まれないもの 理由 どこから来るか
8 GB の重みシャード model-0000X-of-00003.safetensors 大きすぎてアップロードが遅い。GPU ホストなら中国国内のミラーから速くダウンロードできる 3.4 節で GPU 上でダウンロードし、download-lock.json と照合して検証します
PyTorch とその他の依存パッケージ本体 GPU と CUDA のバージョンに結び付いているので、GPU ホストでインストールする必要がある 下の pip コマンドで requirements-*.txt からインストールします
学習結果 runs/、スナップショット data/processed/ どちらも GPU 上で生成される成果物 第 4 章の学習と、4.6 節のスナップショット生成で作られます
自動テスト tests/、電子書籍のソース GPU では使わない プロジェクト一式、または電子書籍の「ソースのダウンロード」ページ(8.1 節)

トークナイザーを同梱しているのは、重みをダウンロードする前に GPU ホストでモデルのバージョンを確認できるようにするためです。ダウンロードでは 3 つの重みシャードを補うだけで済みます。ノートブックは data/dataset.json を直接読むので、先に lab.prepare を実行する必要はありません。50 GB のデータディスクには、学習環境、元の重み、マージ済みの重み、推論環境を同時に置く必要があります。デプロイまで全部やるなら、100 GB への拡張をおすすめします。

GPU のターミナルでプロジェクトの環境を作ります。

python3.11 -m venv .venv-train
.venv-train/bin/python -m pip install --upgrade pip
.venv-train/bin/python -m pip install torch==2.8.0 --index-url https://download.pytorch.org/whl/cu126
.venv-train/bin/python -m pip install -r requirements-train.txt -r requirements-download.txt -r requirements-notebook.txt
.venv-train/bin/python -m pip check
.venv-train/bin/python -m ipykernel install --user --name lora-train --display-name "LoRA · Python 3.11"

学習ではバージョンを固定した Torch/Transformers/TRL/PEFT を使います。ModelScope はダウンロード専用です。ipykernel は、プラットフォームの Jupyter からこの環境を使えるようにするためのものです。以前のバージョンのチュートリアルに従って .venv-train をすでに作っている場合は、それを再利用できます。新しく追加された依存関係をインストールし、カーネルを登録してください。通常の Python パッケージインデックスが遅い場合は、プラットフォームが提供する PyPI ミラーを使えます。モデルのダウンロード元と pip のパッケージ取得元は別物です。

download.pytorch.org につながらない場合(Network is unreachable が出る、またはリトライが延々と続く): 3 番目のコマンドは --index-url でダウンロード先を一時的に PyTorch 公式のインデックスに向けていますが、中国国内のホストからはアクセスできないことがよくあります。通常の PyPI ミラー(清華大学、Alibaba など)に切り替えるだけでは解決しません。それらには PyPI 上のデフォルト版 torch 2.8.0(CUDA 12.8 同梱)しかなく、下のセルフチェックは 12.6 を要求するからです。代わりに、同じ 2.8.0+cu126 パッケージがある Alibaba Cloud の PyTorch ミラーを使います。

.venv-train/bin/python -m pip install 'torch==2.8.0+cu126' -f https://mirrors.aliyun.com/pytorch-wheels/cu126/

-f は、torch 本体だけをそのページで探すよう pip に指示します。nvidia-* や triton など torch の依存パッケージは、引き続き設定済みの PyPI ソースから取得されます。バージョンを 2.8.0+cu126 と書くことで、pip が PyPI の cu128 版をインストールしてしまうのを防げます。インストールできたら、上の 4 番目のコマンド(requirements-*.txt)から続けてください。残りの手順は変わりません。PyPI ソースを恒久的に固定したい場合は .venv-train/bin/python -m pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple を実行し、現在の設定は pip config list で確認できます。

.venv-train/bin/python - <<'CHECK'
import sys, torch, transformers, trl, peft, bitsandbytes
print("Python:", sys.executable)
print("Torch / CUDA:", torch.__version__, torch.version.cuda)
assert torch.__version__.split("+")[0] == "2.8.0"
assert torch.version.cuda == "12.6"
assert torch.cuda.is_available() and torch.cuda.is_bf16_supported()
print("GPU:", torch.cuda.get_device_name(0))
print("依赖:", transformers.__version__, trl.__version__, peft.__version__, bitsandbytes.__version__)
CHECK

これに通ってから先に進んでください(依赖 の行には依存パッケージのバージョンが表示されます)。CUDA が使えない場合は、まずカーネル、ドライバー、wheel を確認します。イメージにプリインストールされた Torch 2.7.1 は、このプロジェクトの環境の代わりにはなりません。カーネルの登録方法は IPython 公式ドキュメントに従っています。

3.4 中国国内の GPU ホストで完全な重みをダウンロードする

デフォルトでは Alibaba の ModelScope を使います。リポジトリは Qwen/Qwen3-4B-Instruct-2507 です。ModelScope には独自の SDK があり、HF_ENDPOINT を ModelScope のトップページに向ければ済む、という話ではありません。

.venv-train/bin/python -m lab.download --source modelscope --output models/qwen3-4b

--tokenizer-only は付けないでください。このコマンドは、アップロード用パッケージに入っていた model-lock.json と検証済みのトークナイザーをそのまま残し、足りない 3 つの重みシャードを補います。ネットワークが切れたら同じコマンドを再実行してください。.cache とバージョンロックは保持されるので、データを準備し直す必要はありません。

download.py は download-lock.json と照らし合わせてリモートのファイルサイズと SHA-256 を確認し、さらに実際にダウンロードした内容も確認します。ModelScope は master からファイルを取得しますが、ここで固定した Hugging Face のリビジョンとバイト単位で同一でなければなりません。リポジトリの内容が変わっていれば処理を止めるので、バージョンが混ざることはありません。リストにある 12 ファイルすべてのメタデータは両方のソースで照合済みで、3 つの重みファイルの合計は約 8.0 GB(10 進)です。

ダウンロード後に、オフラインチェックだけを単独で実行することもできます。

.venv-train/bin/python -m lab.download --check-only --output models/qwen3-4b

「校验通过:12 个文件;完整模型权重已就绪」(「検証成功:12 ファイル、完全なモデルの重みの準備ができました」)と表示され、コマンドが正常に終了したときだけ学習に進んでください。ディレクトリには次のファイルがあるはずです。

models/qwen3-4b/
├── model-lock.json
├── config.json
├── tokenizer.json
├── tokenizer_config.json
├── model.safetensors.index.json
├── model-00001-of-00003.safetensors
├── model-00002-of-00003.safetensors
└── model-00003-of-00003.safetensors

その他の設定ファイル、語彙ファイル、ライセンスファイルも残しておいてください。model-lock.json と重みのインデックスしか見当たらない場合や、ログに Returning existing local_dir と出ている場合は、重みがダウンロードされたことを意味しません。現在のダウンローダーは、このような不完全な結果を拒否します。

代替手段:中国国内の Hugging Face ミラーからダウンロードする

ModelScope にアクセスできない場合は、明示的に hf-mirror.com を選べます。

.venv-train/bin/python -m lab.download --source hf-mirror --output models/qwen3-4b
.venv-train/bin/python -m lab.download --check-only --output models/qwen3-4b

コードはミラーのアドレスを Hugging Face の SDK に明示的に渡すので、インストール済みパッケージのソースコードを書き換えたり、グローバルな環境変数を恒久的に変えたりする必要はありません。同じバージョンロックとファイル検証も引き続き使われます。このミラーは独立したサードパーティのサービスで、Alibaba Cloud 公式の ModelScope ではありません。アクセスできるかどうかは GPU ホストのネットワーク次第です。Hugging Face のダウンロード API に基づいています。

開発マシンでは、ModelScope からの config/トークナイザーのダウンロードを実際に試して検証に通り、3 つの大きな重みファイルも数バイト分のダウンロードテストに通りました。この GPU ホストでは、8 GB の完全な重みはまだダウンロードしていません。最終的にはホスト上での完全な検証結果が基準になります。

症状 対処
huggingface.co / Network is unreachable 明示的に --source modelscope を指定するか、代替手段の --source hf-mirror を使う
重みシャードが欠けている 同じディレクトリで、--tokenizer-only を付けずに完全なダウンロードを再実行する
ローカルファイルのハッシュが一致しない 報告されたファイルを横に移してバックアップし、バージョンロックは残したまま再ダウンロードする。チェックを飛ばさない
リモートのファイルが固定バージョンと一致しない そのソースの利用をやめ、別のソースから固定された内容の取得を試す。ハッシュを書き換えて通さない
No space left on device プロジェクトがどのパーティションにあるかを確認し、拡張するかデータディスクに移す。バックアップしていない実験結果を消さない

3.5 ノートブックを開いて学習を始める

JupyterLab で 01_gpu_train.en.ipynb を開き、LoRA · Python 3.11 カーネルを選択します。見当たらない場合は Jupyter を再読み込みしてください。イメージに付属する素の Python 3 カーネルは選ばないでください。

Jupyter を初めて使う場合でも、知っておく必要があるのは次のことだけです。

操作 やり方
現在のセルを実行する コードセルをクリックして Shift+Enter を押します。実行後、フォーカスは次のセルに移ります
実行中かどうかを見分ける コードセルの左に [*] があれば実行中です。[3] のような数字は、3 回目の実行として完了したことを意味します
出力を見る 出力はコードセルのすぐ下に表示されます。長い出力は折りたたまれるので、左の青いバーをクリックして展開します
カーネルを切り替える メニューの Kernel → Change Kernel。現在のカーネル名は右上に表示されます
やり直す Kernel → Restart Kernel でメモリ上の変数がすべて消えます。ディスク上のファイルには影響しません
VRAM を解放する Kernel → Shutdown Kernel。ブラウザのタブを閉じても解放されません

ノートブックは素直な Python の学習コードを使っています。各コードセルの下には、何をするか、なぜか、実行すると何が見えるか、の 3 つの部分があります。3 つ目の部分には期待される出力と、それぞれの数値の意味が書いてあります。実際の値は多少異なります。セル 1 で ROOT と RUN_DIR を設定し、結果はデフォルトで runs/science-001/ に出力されます。プロジェクトまたは notebooks ディレクトリから開いた場合はパスを自動で検出します。それ以外の場所から開いた場合は ROOT を手で入力してください。

この後は第 4 章に沿って、セルを 1 つずつ実行して学習します。ベースモデルの回答もノートブックの一部なので、古い A/B コマンドを別途実行する必要はありません。