Evo-X2でAI学習の土台づくり
はじめての人は、はじめまして
どうもこんにちは
豆香です。
1. 内容
久しぶりの投稿ですが
今回は、Evo-X2でLLMを学習する
土台づくりをします。
最近は、ライブラリなどのアップデートで
結構Evo-X2が使いやすくなってきました
2. 必要なもの
Evo-X2
Linux系OS(今回はFedora)
Podman
3. 土台づくり
1. Podmanを入れる
まずはFedoraは標準で
Podmanが入っているようなので
自分はそのまま進めました
入れる方は
以下のサイトから
あとDocker Desktopだと
(Docker DesktopはだめでDockerの単体は大丈夫らしい)
AMDのGPUにアクセスできないようです。
(Gemini調べ)
実際うまく動きませんでした
2. ImageをPullする
Podmanを入れたら
rocm/pytorch-nightlyをプルしましょう。
これはPyTorchなどのAI学習に
必要なものが入っています。
podman pull rocm/pytorch-nightlyプルはPodmanはRootlessで時間がかかるようです。
気長に待ちましょう。
もし待てなかったら
以下の手順で早くなるかもです。
3. Native Overlay
# このコマンドはコンテナなどのデータを消してしまうので
# すでになにか入れたりしている場合は実行しないでください
podman system reset
# フォルダがない場合は作成
mkdir -p ~/.config/containers
# エディタで開く (nanoの場合)
nano ~/.config/containers/storage.conf# storage.confの内容
[storage]
driver = "overlay"
[storage.options.overlay]
# mount_program = "/usr/bin/fuse-overlayfs"
# Rootlessでネイティブ機能を使うための必須設定
ignore_chown_errors = "true"
mountopt = "nodev,metacopy=on"で早くなるかもしれません。
4. コンテナ作成
podman run -it --name mamba \
-v ./:/workspace
--device=/dev/kfd --device=/dev/dri/ \
--group-add=video --security-opt label=disable --shm-size 8G \
rocm/pytorch-nightly-v ./:/workspaceをいじって
バインドする地点を変えてください
あとは実行してください
そしたらコンテナができます。
5. ライブラリなどを入れる
cd /workspace
export MAX_JOBS=4
TARGET_FILE="/opt/rocm/include/hipcub/config.hpp"
[ -f "${TARGET_FILE}.bak" ] && sudo mv "${TARGET_FILE}.bak" "$TARGET_FILE"
sudo cp "$TARGET_FILE" "${TARGET_FILE}.bak"
sudo sed -i 's/::rocprim::warp_size()/32/g' "$TARGET_FILE"
# deps
pip install scikit-build-core accelerate wandb galore-torch
# flash attention
git clone https://github.com/Dao-AILab/flash-attention
cd flash-attention/
git checkout main_perf
rm -rf build/ dist/ *.egg-info
FLASH_ATTENTION_TRITON_AMD_ENABLE="TRUE" pip install --no-build-isolation -e .
cd ../
# bitsandbytes
git clone https://github.com/bitsandbytes-foundation/bitsandbytes.git
cd bitsandbytes/
rm -rf build/ dist/ *.egg-info
# Compile & install
cmake -DCOMPUTE_BACKEND=hip -S . # Use -DBNB_ROCM_ARCH="gfx90a;gfx942" to target specific gpu arch
make
pip install --no-build-isolation -e .
cd ../
# mamba ssm
git clone https://github.com/state-spaces/mamba.git
cd mamba/
rm -rf build/ dist/ *.egg-info
find csrc -name "*.cuh" -print0 | xargs -0 sed -i 's/::rocprim::warp_size()/32/g'
find csrc -name "*.cuh" -print0 | xargs -0 sed -i 's/HIPCUB_WARP_THREADS/32/g'
pip install --no-build-isolation .
cd ../
sudo mv "${TARGET_FILE}.bak" "$TARGET_FILE"を実行すると
Flash Attention, bitsandbytes, mamba ssm
が入ります。
すでにTritonなどは
コンテナに入っているようです。
6. 使い方
コンテナに入って
バインド地点に作ったファイルをコンテナの入って実行すれば
OKです。
コンテナに入るコマンド
podman start mamba
podman exec -it mamba bash4. 最後に
Evo-X2が使いやすくなっています。
こういう自宅でも使える
PCでAIが学習できるようになり
どんどん
AIのオープン化は
進むんでしょうか。
またいつか記事を出したら
見てもらえると
嬉しいです。
