WSLでローカルLLM(環境構築)

ローカルLLMで遊ぶ準備メモ (2024-02-23 現在)

WSL (Ubunts)


apt-get upgrade

# パッケージ更新
sudo apt-get update
sudo apt-get upgrade

# ロケール設定
sudo apt install language-pack-ja
sudo update-locale LC_ALL=ja_JP.utf8

# 再起動
exit

pyenv

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

# シェルの設定
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

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init -)"' >> ~/.profile

exec "$SHELL"

# ビルド依存関係を解決
sudo apt update
sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev curl libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

Python 3.11

# インストール
pyenv install 3.11

# インストールされたバージョン一覧
pyenv versions

# 既定バージョンを設定
pyenv global 3.11

venv

sudo apt install python3-venv

CUDA(11.8)

wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin
sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
sudo dpkg -i cuda-repo-wsl-ubuntu-11-8-local_11.8.0-1_amd64.deb
sudo cp /var/cuda-repo-wsl-ubuntu-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update

sudo apt-get install cuda-11-8

llama-cpp-python[server] (CUDA)

wsl

sudo apt install -y build-essential cmake python3 python3-pip python-is-python3 \
    && CUDA_PATH=/usr/local/cuda FORCE_CMAKE=1 CMAKE_ARGS='-DLLAMA_CUBLAS=on -DLLAVA_BUILD=off' \
    pip install llama-cpp-python[server] --force-reinstall --upgrade --no-cache-dir -vv

echo 'export PATH=$PATH:~/.local/bin' >> ~/.bashrc

windows

$env:CMAKE_ARGS = "-DGGML_CUDA=on -DLLAVA_BUILD=off"
pip install llama-cpp-python[server] --force-reinstall --upgrade --no-cache-dir -vv

Python仮想環境(テンプレート)

プロジェクトのディレクトリを作成

cd ~
mkdir project
cd project

venv

python -m venv .venv && 
source .venv/bin/activate && 
pip install -U pip packaging setuptools wheel

pytorch, flash-attn,  transformers, accelerate

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 &&
pip install flash-attn --no-build-isolation &&
pip install transformers &&
pip install peft sentencepiece protobuf scipy accelerate

GPTQ

pip install transformers optimum &&
pip install auto-gptq --extra-index-url https://huggingface.github.io/autogptq-index/whl/cu118/

bitsandbytes

pip uninstall bitsandbytes
git clone https://github.com/TimDettmers/bitsandbytes
cd bitsandbytes
export CUDA_HOME=/usr/local/cuda-11.8 && make cuda11x CUDA_VERSION=118
export CUDA_HOME=/usr/local/cuda-11.8 && make cuda11x_nomatmul CUDA_VERSION=118
CUDA_VERSION=118 && python setup.py install

llama-cpp-python (CUDA)

CUDA_PATH=/usr/local/cuda FORCE_CMAKE=1 CMAKE_ARGS='-DLLAMA_CUBLAS=on -DLLAVA_BUILD=off' \
pip install llama-cpp-python --force-reinstall --upgrade --no-cache-dir -vv


この記事が気に入ったらサポートをしてみませんか?