環境構築編 - 基礎環境
AI 物見遊山をするための基礎的な環境を構築する。 この環境では、AI 系のパッケージを導入していない。 今後、自然言語処理用環境のように環境構築を追加で行う前提とする。
利用する環境
できれば、CUDA 対応の GPU がある方が楽しいが、CPU でも問題無い。 メモリ 16 GB では心許ない気がする。 ストレージは、数十ギガ程度、あっという間に使用する。 AI で利用するモデルのサイズは、数ギガバイトが普通であり、 実行の度に読み込むので、できるだけ高速なストレージがよい。
- Windows 11 Pro 24H2
- CPU: AMD Ryzen 9 7900X 12-Core
- Memory: 64 GB
- Storage: M.2 SSD 1 TB
- WSL V2.2.4.0
- Ubuntu 24.04
利用するパッケージ等
- Miniconda3
- Python のパッケージ管理システムと基本的なパッケージ群
- Python 3.12
- IntelliJ の設定
- TensorBoard
- 機械学習モデルのトレーニングプロセスを可視化するツール
- JupyterLab
- Web ベースのインタラクティブな開発環境
- PulseAudio
- 音声再生用ツール
- pydub
- 音声ファイルを簡単に操作できるライブラリ
- Pandoc
- ドキュメントを別の形式に変換するツール
- プロファイラ系
- プログラムの性能を調査できるライブラリ
構築手順
WSL および Ubuntu をインストールする。
以下を参考にインストールする。
- Qiita - WSL と Ubuntu 24.04 LTS を Windows 11 にインストールする
- Microsoft - WSL を使用して Windows に Linux をインストールする方法
Ubuntu 環境は、デフォルトのディストリビューションを利用してもよいが、 デフォルトをコピーして新しく作成することが望ましい。 手順は、以下を参考にする。
大まかな手順
# ディストリビューションをエクスポートする。
wsl --export Ubuntu-24.04 Ubuntu-24.04.tar
# ディストリビューションをインポートする。
wsl --import Ubuntu-24.04-pytorch Ubuntu-24.04-pytorch Ubuntu-24.04.tar
# WSL にログインする(root ユーザ)。
wsl --distribution Ubuntu-24.04-pytorch
# デフォルトユーザを変更する。
cat << EOF > /etc/wsl.conf
[user]
default=ubuntu
#[interop]
#appendWindowsPath = false
EOF
# systemd を有効化する。
JupyterLab を自動起動させるために利用する。
/etc/wsl.conf ファイルの先頭行に以下を追記する。
[boot]
systemd=true
# 設定を反映するため停止する。
exit
wsl --terminate Ubuntu-24.04-pytorch
# WSL にログインする(Ubuntu ユーザ)。
wsl --distribution Ubuntu-24.04-pytorch
# パッケージを更新する。
sudo apt update
sudo apt -y upgrade
Miniconda3 をインストールする。
Ubuntu ユーザで、Ubuntu-24.04-pytorch にログインしておく。
cd
# Miniconda3 のインストーラをダウンロードする。
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# インストーラを実行する。
bash Miniconda3-latest-Linux-x86_64.sh
以下のように選択肢が表示されるので、回答する。
Please, press ENTER to continue
>>> Enter
Do you accept the license terms? [yes|no]
>>> yes
Miniconda3 will now be installed into this location:
/home/ubuntu/miniconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/home/ubuntu/miniconda3] >>> Enter
Do you wish to update your shell profile to automatically initialize conda?
This will activate conda on startup and change the command prompt when activated.
If you'd prefer that conda's base environment not be activated on startup,
run the following command when conda is activated:
conda config --set auto_activate_base false
You can undo this by running `conda init --reverse $SHELL`? [yes|no]
[no] >>> yes
Miniconda3 が /home/ubuntu/miniconda3
にインストールされる。
最後の質問で、yes にすると、~/.bashrc に Miniconda の
初期設定処理が追加される。
ただし、.bashrc は、シェルがインタラクティブでない場合、
実行されない。
Miniconda の base 環境が自動的に有効化されないように設定する。
conda config --set auto_activate_base false
Ubuntu-24.04-pytorch にログインし直す。
Python 環境を作成する。
cd
conda create --name ai -y python=3.12
conda activate ai
# パッケージを最新化する
python -m pip install -U pip setuptools wheel
# ai 環境をデフォルトで有効化する
cat << 'EOF' >> ~/.bashrc
conda activate ai
EOF
Ubuntu-24.04-pytorch にログインし直す
IntelliJ の設定をする。
IntelliJ からこの Python 環境を、利用する場合の設定を記述する。
- 設定したいプロジェクトを開く。
File | Project Structure (Shift + Ctrl + Alt + S)
を選択する。Platform Settings | SDKs
を選択する。+ | Add Python SDK from disk...
を選択する。WSL
を選択、以下の項目を設定し、OK ボタンを押下する。Linux distribution:
Ubuntu-24.04-pytorchPython interpreter path:
/home/ubuntu/miniconda3/envs/ai/bin/python3.12
- 作成した SDK の設定を変更する。
Name:
Python 3.12(ai)@Ubuntu-24.04-pytorch
Project Settings | Project
を選択し、以下の項目を設定する。SDK:
Python 3.12(ai)@Ubuntu-24.04-pytorch
Project Settings | Modules | Dependencies
タブを選択して、以下の項目を設定する。Module SDK:
Python 3.12(ai)@Ubuntu-24.04-pytorch
- OK ボタンを押下して、設定を完了する。
しばらくパッケージの検索処理が実行されるので、完了するまで待つ。 完了後、Python ソースを実行すると、作成した Python 環境上で動作する。
IntelliJ から実行する場合、インタラクティブシェルでは無いため、
.bashrc
の先頭で直ぐに実行を中止するので、Miniconda 関連の設定が行われない。
conda activate ai
も実行していないため、
場合によっては問題が発生するかもしれない。
TensorBoard をインストールする。
pip install tensorboard
JupyterLab をインストールする。
pip install jupyterlab
拡張機能用に Node.js をインストールする。 apt パッケージのバージョンは、v18 なので、conda で v22 インストールする conda でインストールすると、conda の ai 環境内でのみ利用可能
conda install -c conda-forge nodejs
コード補完機能プラグインをインストール
pip install jupyterlab-lsp
pip install 'python-lsp-server[all]'
コードフォーマッタプラグインをインストール
pip install jupyterlab-code-formatter
pip install black isort
追加でパッケージをインストール
pip install matplotlib kaleido pillow plotly ipywidgets
JupyterLab を systemd に登録する。 トークン無しでアクセスできる設定なので、注意。
cat << EOL | sudo tee /etc/systemd/system/jupyter.service > /dev/null
[Unit]
Description=Jupyter Lab
[Service]
Type=simple
Restart=always
RestartSec=10
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu
Environment=PATH=/home/ubuntu/miniconda3/condabin:/home/ubuntu/miniconda3/envs/ai/bin
ExecStart=/home/ubuntu/miniconda3/envs/ai/bin/jupyter lab --no-browser --port=18888 --IdentityProvider.token=''
[Install]
WantedBy=multi-user.target
EOL
systemd に設定を反映する。
sudo systemctl daemon-reload
Jupyter サービスを起動する。
sudo systemctl start jupyter.service
状態を確認する。
systemctl status jupyter.service
自動起動を有効化する。
sudo systemctl enable jupyter.service
JupyterLab にアクセスするには、 ブラウザで、以下の URL にアクセスする。
http://localhost:18888/lab
PulseAudio ユーティリティをインストールする。
WSL 上からサウンドを再生するためのパッケージをインストールする。 PulseAudio のプレイヤーコマンド(paplay, parec)などをインストール
sudo apt install pulseaudio-utils
pydub パッケージをインストールする。
WSL 上の Python のプログラムから、直接音声を再生することが可能なライブラリ。
sudo apt install ffmpeg libavcodec-extra
pip install pydub
動作確認
サンプル音声を作成する。
ffmpeg -f lavfi -i "sine=frequency=440:beep_factor=0.5:sample_rate=44100" -f lavfi -i "sine=frequency=880:beep_factor=1.2:sample_rate=44100" -filter_complex amerge=inputs=2 -t 3 output.wav
PulseAudio ユーティリティで再生する。
paplay output.wav
pydub で再生する。
cat <<'EOL' | python
from pydub import AudioSegment
from pydub.playback import play
sound = AudioSegment.from_file("output.wav", format="wav")
play(sound)
EOL
当環境では、pydub や、ffplay で wav を再生すると、 ノイズが発生してしまう。
Pandoc をインストールする。
panflute は、Pandoc フィルタ用プログラムを作成する時に利用する。
wget https://github.com/jgm/pandoc/releases/download/3.6.2/pandoc-3.6.2-1-amd64.deb
sudo dpkg -i pandoc-3.6.2-1-amd64.deb
pip install panflute
プロファイラ系をインストールする。
line_profiler は、ソース行ごとに CPU 使用率などを調査できる。 memory_profiler は、メモリ使用量などを調査できる。 scalene は、CPU、GPU、メモリなどまとめて調査できる。
各プロファイラは、コマンドラインでも、Jupyter Lab 上でも利用できる。 利用方法の詳細は、各サイトを参照。
pip install line_profiler memory_profiler scalene
scalene を Jupyter 上で利用する方法を記載する。 以下は、セル単位でプロファイルをする方法となる。
最初のセルで、scalene をロードする。
%load_ext scalene
計測したいセルの先頭に以下を記載して、セルを実行する。 Jupyter 上では、一部の項目しか表示されない。
%%scalene
- 前の記事:より楽しむために
- 次の記事:環境構築編 - 自然言語処理環境