Evo-X2でAI学習の土台づくり


はじめての人は、はじめまして
どうもこんにちは
豆香です。

1. 内容

久しぶりの投稿ですが
今回は、Evo-X2でLLMを学習する
土台づくりをします。
最近は、ライブラリなどのアップデートで
結構Evo-X2が使いやすくなってきました

2. 必要なもの

  1. Evo-X2

  2. Linux系OS(今回はFedora)

  3. 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 bash

4. 最後に

Evo-X2が使いやすくなっています。
こういう自宅でも使える
PCでAIが学習できるようになり
どんどん
AIのオープン化は
進むんでしょうか。

またいつか記事を出したら
見てもらえると
嬉しいです。

いいなと思ったら応援しよう!