VScode + AI支援拡張 with ローカルLLM on WSL
この記事は2024-02-24に環境構築したメモです。
OpenAI互換API on WSL
今回はローカルLLMとしてopenchat-3.5-0106-GGUFを選択しました。
今はGemmaやKARAKURI LM 70B Chat v0.1が話題ですが、使ってみるまで性能がわからないので、Agent能力で実績のあるOpenChat-3.5にしました。
今回のLLMはGGUF形式なので、llama-cpp-pythonをWSLで動作させる環境構築が必要です。
CUDA Toolkit (11.8)
CUDAをWSLにインストールします。この環境では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 -y install cuda
llama-cpp-python[server]
[server]モジュールをインストールします。
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' \
pip install llama-cpp-python[server] --force-reinstall --upgrade --no-cache-dir -vv
echo 'export PATH=$PATH:~/.local/bin' >> ~/.bashrc
modelをダウンロード
huggingfaceのモデルをダウンロードするのにhuggingface-cliが便利です。
pip install huggingface-hub
ディレクトリを作成して・・・
cd ~
mkdir openchat-3.5-0106-GGUF
cd openchat-3.5-0106-GGUF
ダウンロード
huggingface-cli download TheBloke/openchat-3.5-0106-GGUF openchat-3.5-0106.Q5_K_M.gguf --local-dir . --local-dir-use-symlinks False
OpenAI API互換サーバーとして起動
python -m llama_cpp.server --model openchat-3.5-0106.Q5_K_M.gguf --n_gpu_layers 35
continue.dev
CursorがローカルLLMに対応したということで試してみたかったのですが・・・
Cursorをインストールすると、WSLでVScodeもCursorも呼び出せなくなりました。また、設定でOpenAI APIをurl overrideをしても呼び出されていないようで、まだ未完成に見えました。
そんなこんなで苦労していたところ、ローカルLLMを選択できるAI支援拡張continue.devがVScodeに存在することを知りました。
以下の記述は、こちらの記事を参考にしています。
ローカルLLMを設定に追加
{
"title": "Local",
"provider": "openai",
"model": "gpt-4",
"apiKey": "EMPTY",
"apiBase": "http://localhost:8000/v1"
}
動作確認
Continueのドキュメントを読もう
使いこなすためにドキュメントに目を通し始めたのですが、予想より強力だったり、有用な情報も提供されていて、じっくり目を通す価値があります!
特に、このあたりのトピックは気になる方も多いのではないでしょうか?
* 複数のファイルから応答するためのRAG(embeddings + retrieval)の使い方
* おすすめのローカルLLM DeepSeek Coder は16K window size
DeepSeek CoderもGGUFで提供されているので、試してみたいですね!
この記事が気に入ったらサポートをしてみませんか?