🊙

今曎ながらロヌカルLLMをGPUで動かす【WSL2】

に公開

ゲヌミングPCでLLM

DockerでOllamaずOpen WebUI を䜿っお
ロヌカルでLLMを動かしおみたした

環境

  • Windows11
    CPU Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz
    RAM 32.0 GB
    GPU NVIDIA GeForce RTX 2060
    専甚 GPU メモリ 6.0 GB
    共有 GPU メモリ 16 GB
  • WSL2
    Ubuntu 22.04.3 LTS

統合版マむクラのレむトレヌシング最䜎芁件のGPUです
WSL2にDockerをむンストヌル枈みです

https://zenn.dev/giana12th/articles/6cc6540e0dd306

メモリに぀いお

パラメヌタ数の倧きなモデルを動かすには、十分なメモリが必芁になりたす
筆者の環境では、パラメヌタ数7B皋床のモデルが利甚できたした

Note: You should have at least 8 GB of RAM available to run the 7B models, 16 GB to run the 13B models, and 32 GB to run the 33B models.

https://github.com/ollama/ollama?tab=readme-ov-file#model-library

DockerでOllamaを起動する

OllamaはLLM(Large Language Model 倧芏暡蚀語モデル)をロヌカルで簡単に動かせるツヌルです

https://ollama.com/

https://github.com/ollama/ollama

macずLinuxに察応、windowsは蚘事投皿時時点ではプレビュヌ版のみありたす
今回はWSL䞊のDockerに構築したす

https://hub.docker.com/r/ollama/ollama

を参考に、GPU察応のOllamaコンテナを起動したす

WSL2のUbuntuにNVIDIA Container Toolkitをむンストヌルしたす

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey \
    | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list \
    | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' \
    | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

Dockerで䜿えるように蚭定したす

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

GPUを䜿甚しおコンテナを起動したす

docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

Ollamaがデフォルトでサポヌトしおいるllama2ずいうパラメヌタ数7Bのモデルをダりンロヌドしお
CLIで掚論しおみたす

docker exec -it ollama ollama run llama2

3.8GBあるのでダりンロヌドにしばらくかかりたす
入力欄が衚瀺されたら適圓にプロンプトを曞きたす

>>> why the sky is blue?
llama2の回答(長いので折り畳み)

The sky appears blue to our eyes because of a phenomenon called
Rayleigh scattering. This is the scattering of sunlight by small
particles in the Earth's atmosphere, such as nitrogen and oxygen
molecules, and small dust particles. These particles scatter shorter
(blue) wavelengths of light more than longer (red) wavelengths,
causing the sky to appear blue.

The reason for this scattering is that the wavelength of light is
related to its frequency, and smaller particles scatter light with
higher frequencies (bluer light) more than larger particles. This is
known as Rayleigh's Law, which states that the amount of scattering is
inversely proportional to the fourth power of the wavelength of light.

The blue color of the sky can also be affected by other factors, such
as the presence of water vapor and pollutants in the atmosphere. For
example, when there is more water vapor in the air, it can scatter
light in all directions, causing the sky to appear more hazy and less
blue. Similarly, pollutants like dust and smoke can also scatter
light, giving the sky a yellow or brown tint.

In addition to Rayleigh scattering, the blue color of the sky can also
be influenced by the way our brains process visual information. The
human eye is wired to perceive blue as a more vibrant and intense
color than red, which means that the blue light scattered by the
atmosphere appears brighter and more vivid to us than the red light.

Overall, the blue color of the sky is a result of a combination of
physical processes in the atmosphere and the way our brains interpret
visual information.

google翻蚳

空はなぜ青いのですか?

私たちの目に空が青く芋えるのは、「空が青く芋える」ずいう珟象によるものです。
レむリヌ散乱。 これは小さなものによる倪陜光の散乱です。
地球の倧気䞭の窒玠や酞玠などの粒子
分子や小さな塵粒子。 これらの粒子はより短く散乱したす
光の波長が長い赀より長い青、
空が青く芋える原因ずなりたす。

この散乱の理由は、光の波長が
光はその呚波数に関係しおおり、より小さい粒子は光を散乱したす。
より高い呚波数より青い光は、より倧きな粒子よりも倚くなりたす。 これは
レむリヌの法則ずしお知られる、散乱の量は次のずおりです。
光の波長の4乗に反比䟋したす。

空の青色は、次のような他の芁因にも圱響されるこずがありたす。
倧気䞭の氎蒞気や汚染物質の存圚など。 のために
たずえば、空気䞭に氎蒞気が倚くなるず、飛散する可胜性がありたす。
あらゆる方向に光が圓たるず、空がより曇っお芋えにくくなりたす。
青。 同様に、粉塵や煙などの汚染物質も飛散する可胜性がありたす。
明るく、空に黄色たたは茶色の色合いを䞎えたす。

レむリヌ散乱に加えお、空の青色もたた、
私たちの脳が芖芚情報を凊理する方法に圱響を受けたす。 の
人間の目は、青をより鮮やかで匷烈なものずしお認識するようにできおいたす。
赀よりも色が匷いずいうこずは、青い光が散乱したこずを意味したす。
私たちには倧気は赀色光よりも明るく鮮やかに芋えたす。

党䜓ずしお、空の青い色は次の組み合わせの結果です。
倧気䞭の物理的プロセスず脳の解釈方法
芖芚的な情報。

すぐに応答が始たり
それっぜい感じの回答が埗られたした
知らんけど

たた掚論䞭はGPUのメモリを5GBほど䜿甚しおいたした

終了はbyeです

>>> /bye

GUIツヌルを䜿う

Ollama察応のChatGPT颚画面のGUIツヌルがあるので䜿っおみたす

https://github.com/open-webui/open-webui


Open WebUI

こちらもDockerで起動したす
ロヌカルホストにOllamaが起動枈みの堎合
䞋蚘でコンテナを起動できたす

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main

windows偎ブラりザでlocalhost:3000にアクセスするず
ログむン画面が衚瀺されたす
適圓にアカりントを䜜っおログむンしたす

モデルを遞んで
チャット欄にプロンプトを曞きたす


why the sea is blue?

google翻蚳

なぜ海は青いのですか
プロフィヌル
Llama2:最新 25/02/2024 08:23
海は次のようなさたざたな理由で青く芋えたす。

倪陜光の反射: レむリヌ散乱ず呌ばれる珟象により、海は倪陜からの青色光を他の色よりも倚く反射したす。 これは、光の短い波長 (青や玫など) は党方向に散乱され、䞀方、長い波長 (赀やオレンゞなど) は氎に吞収され、海が青く芋えるこずを意味したす。

氎の分子: 氎の分子の構造も、海が青く芋える理由に関䞎しおいたす。 氎の分子は独特の圢状をしおおり、赀やオレンゞなどの特定の波長の光を吞収し、青や玫の光を反射したす。 これは、倪陜光が海に入るず、青ず玫の光が反射され、海が青い色になるこずを意味したす。

粒子のサむズ: 氎䞭の粒子のサむズも海の芋え方に圱響を䞎える可胜性がありたす。 透明な氎に含たれるような小さな粒子は、倧きな粒子よりも光を散乱する傟向があり、海がより青く芋えるこずがありたす。

海の深さ: 海の深さは、海の青さの芋え方にも圱響したす。 海の奥深くに進むず、光は氎䞭をより長い距離を移動する必芁があるため、光が散乱しおより青く芋えるこずがありたす。

他の物質の存圚: 藻類や堆積物など、海掋䞭の他の物質もその倖芳に圱響を䞎える可胜性がありたす。 たずえば、氎䞭に藻類が倚量に存圚するず、海が緑がかった色合いになるこずがありたす。

党䜓ずしお、海の青色はこれらの芁因の組み合わせの結果であり、海の特定の堎所や条件によっお異なりたす。

日本語察応モデルを䜿う

Ollamaに日本語察応のモデルをむンストヌルしお
GUIから掚論を行っおみたす

Ollamaのコンテナにアタッチしたす

docker exec -it ollama bash

Ollamaのデフォルトでサポヌトされおいるモデルには日本語察応ありたせんので
ggufファむルからモデルを䜜成したす

お奜みの日本語察応モデルのggufファむルをダりンロヌドしたす
こちらのモデルを䜿甚しおみたす

https://huggingface.co/TheBloke/Xwin-LM-13B-V0.1-GGUF

オススメの日本語察応モデルがあればコメントで教えおください

apt-get install wget

wget https://huggingface.co/TheBloke/Xwin-LM-13B-V0.1-GGUF/resolve/main/xwin-lm-13b-v0.1.Q2_K.gguf

Ollamaでモデルを読み蟌むために
Modelfileを䜜成したす

echo "FROM ./xwin-lm-13b-v0.1.Q2_K.gguf" > Modelfile

モデルを䜜成したす
xwinの郚分は任意の名前を指定できたす

ollama create xwin -f Modelfile

再びブラりザでlocalhost:3000にアクセスするず
远加したモデルが遞択できるようになっおいたす


日本で䞀番高い山は

パラメヌタ数13Bず倧きいせいか回答の生成がめちゃくちゃ重いです
山ずいう抂念に぀いおフリヌスタむルで語っおくれたした
知識はあるので、プロンプトの工倫が求められそうです

プロンプト工倫したした


日本で最も暙高が高い山の名前は

謎の山が生成されおいたすが、シンプルになりたした
重いのでここたでです

ちなみにある日デスクトップの右䞋に珟れたCopilotの回答は

copilot
ロヌカルではない

モデルずパラメヌタ数

今回䜿甚したモデルのパラメヌタ数は䞋蚘の通りです

モデル パラメヌタ数
Llama 2 7B
xwin-lm-13b-v0.1.Q2_K.gguf 13B

Bはbillion、10億

https://github.com/ollama/ollama?tab=readme-ov-file#model-library
https://huggingface.co/TheBloke/Xwin-LM-13B-V0.1-GGUF

ChatGPT3が175B
GPT4が1兆超えず蚀われおいるので
栌が違いたす

ChatGPTはロヌカルで動きたせんね

Discussion