新しくデスクトップパソコンを購入し,環境構築を一からした際の手順をまとめました.忘備録です.構築したいバージョンを確認しながら,参考程度に見ることをおすすめします.
以下のサイトでバージョンの依存関係を確認するのが確実です.
本記事では、Windows 11マシン上でWSL2 (Ubuntu) を利用し、再現性が高く安定したAI開発環境をゼロから構築する手順を解説します。
こちらも参考に
最終的な環境構成
レイヤー | コンポーネント | 役割 |
---|---|---|
1. OS・ハードウェア層 | Windows 11, NVIDIA GPU, 最新ドライバ | 物理マシン。GPUドライバが全ての土台。 |
2. 仮想化層 | WSL2 + Ubuntu 24.04 | Windowsの利便性とLinuxの開発力を両立。 |
3. システムライブラリ層 | CUDA Toolkit 12.1, cuDNN実行ライブラリ | OS全体でGPUを利用するための基盤。 |
4. プロジェクト層 | Poetry, Python 3.10, PyTorch 2.5.1 | プロジェクト毎に独立したクリーンな実行環境。 |
STEP 1: 基盤の構築 (WSL2 & NVIDIA Driver)
まず、AI開発の基盤となるLinux環境を準備し、Windowsに搭載されたGPUを認識させます。
1.1. WSL2とUbuntuのインストール
Windowsのターミナルを管理者として実行し、以下のコマンド一発でWSL2と最新のUbuntuがインストールされます。
wsl --install
PCの再起動後、Ubuntuのユーザー名とパスワードを設定すれば完了です。
1.2. NVIDIAドライバのインストール (Windows側)
[最も重要なポイント]
GPUドライバはWindows側にのみインストールします。WSL側のUbuntuにドライバをインストールする必要はありません。
- NVIDIAドライバダウンロードページにアクセスします。
- お使いのGPU(例: GeForce RTX 4060)とOS(Windows 11)を選択し、ドライバをダウンロードしてインストールします。
- インストール後、Windowsのコマンドプロンプトと、WSLのUbuntuターミナルの両方で以下のコマンドを実行し、同じGPU情報が表示されることを確認します。
nvidia-smi
STEP 2: Ubuntu環境でのCUDA基盤構築
ここからは、WSLのUbuntuターミナル内での作業です。
2.1. NVIDIAの最新リポジトリ設定とCUDA/cuDNNのインストール
[罠の回避]
apt-get install cuda-toolkitのような便利なセットパッケージは、Ubuntu 24.04のような新しいOSではnsight-systemsの依存関係エラーで失敗します。
ここでは、問題のパッケージを意図的に避け、必要なコンポーネントだけを個別にインストールします。
# 1. 過去のインストール試行を完全にクリーンアップ(初回でも安全です)
sudo apt-get remove --purge -y "*cuda*" "*nsight*" "*cudnn*" && sudo apt-get autoremove -y && sudo rm -rf /etc/apt/sources.list.d/cuda*
# 2. NVIDIAの最新リポジトリ情報をシステムに登録
wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-keyring_1.1-1_all.deb
sudo dpkg -i cuda-keyring_1.1-1_all.deb
sudo apt-get update
# 3. 必要なコンポーネントを個別にインストール
# (問題の原因だったnsight-systemsを意図的に避ける)
sudo apt-get install -y \
cuda-compiler-12-1 \
cuda-libraries-dev-12-1 \
cuda-driver-dev-12-1 \
nvidia-cudnn
2.2. パスの設定と確認
インストールしたCUDA Toolkitにシステムがアクセスできるよう、パスを設定します。
# .bashrcの末尾にパス設定を追記
echo '' >> ~/.bashrc
echo '# NVIDIA CUDA Toolkit' >> ~/.bashrc
echo 'export PATH=/usr/local/cuda-12.1/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc
# ターミナルを再起動するか、以下のコマンドで設定を即時反映
source ~/.bashrc
最後に、nvccコマンドでバージョンが表示されることを確認します。
nvcc --version
# 出力例: Cuda compilation tools, release 12.1, ...
STEP 3: Python開発環境のセットアップ
プロジェクトごとに環境を分離するため、pyenvとPoetryを導入します。
3.1. pyenvとPoetryのインストール
# 1. 必要なパッケージをインストール
sudo apt-get update && sudo apt-get install -y \
build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev \
libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python3-openssl git
# 2. pyenv (Pythonバージョン管理ツール) をインストール
curl https://pyenv.run | bash
# 3. pyenv用の設定を.bashrcに追記
echo '' >> ~/.bashrc
echo '# pyenv settings' >> ~/.bashrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
# 4. Poetry (プロジェクト管理・パッケージ管理ツール) をインストール
curl -sSL https://install.python-poetry.org | python3 -
# 5. Poetry用の設定を.bashrcに追記
echo '' >> ~/.bashrc
echo '# Poetry settings' >> ~/.bashrc
echo 'export PATH="/home/$(whoami)/.local/bin:$PATH"' >> ~/.bashrc
# 6. シェルを再起動して全ての設定を反映
exec "$SHELL"
3.2. Pythonバージョンのインストール
pyenvを使って、プロジェクトで使用するPython 3.10をインストールします。
pyenv install 3.10
pyenv global 3.10
STEP 4: PyTorchプロジェクトのセットアップと最終確認
いよいよ大詰めです。Poetryを使ってプロジェクトを作成し、PyTorchからGPUが利用できるか確認します。
# 1. プロジェクト用のディレクトリを作成して移動
mkdir my_llm_project
cd my_llm_project
# 2. Poetryプロジェクトを初期化
poetry init -n
# 3. 使用するPythonのバージョンをPoetryに教える
poetry env use python3.10
# 4. PyTorch (CUDA 12.1版) をインストール
poetry run pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
# 5. 最終動作確認
poetry run python -c "import torch; print(f'PyTorch version: {torch.__version__}'); print(f'CUDA available: {torch.cuda.is_available()}'); print(f'GPU name: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else "N/A"}')"
以下の様な出力が表示されれば、環境構築は完了です!
PyTorch version: 2.5.1+cu121
CUDA available: True
cuDNN version: 90100
GPU name: NVIDIA GeForce RTX 4060
おまけ
Ⅰ. VSCodeとの連携で快適な開発を
WSL2の真価は、WindowsのGUIアプリとシームレスに連携できる点にあります。
-
Windows側にVisual Studio Codeをインストールし、拡張機能「WSL」を追加します。
-
Ubuntuターミナルで、先ほど作成したプロジェクトディレクトリに移動します。
cd my_llm_project
-
そこで以下のコマンドを実行します。
code .
これだけで、自動的にWindows側でVSCodeが起動し、WSL内のプロジェクトフォルダに接続された状態になります。Windowsの快適なUIでコードを書きながら、実行やデバッグはすべてLinux環境で行うという、両者の良いとこ取りをした最強の開発スタイルが実現できます。
Ⅱ. GitHub と ssh接続をする
Ⅲ. Poetry の使用方法
Ⅳ. バージョン管理について