Google Colab上でollamaでGPUを活用してc4ai-command-r-plus-ggufを動かしてみたので、メモ。
※A100とL4で動作することを確認
まずは、ollamaをインストール
!curl https://ollama.ai/install.sh | sh !echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections !sudo apt-get update && sudo apt-get install -y cuda-drivers import os # Set LD_LIBRARY_PATH so the system NVIDIA library os.environ.update({'LD_LIBRARY_PATH': '/usr/lib64-nvidia'})
ollama run で用意されたモデルを動かすとエラーになるので、ggufからカスタムモデルを作る。 利用するカスタムモデルをダウンロード
!wget https://huggingface.co/<利用したいモデルのパス>
カスタムモデルを作成するための、modelファイルを作成。
テキストエディタなどで作成したファイルをアップロードしてもOK。
ストップトークンを設定しないと、発話が終わらないので注意
# ファイルパス _filepath = './Modelfile' # ファイルに書き込む内容 filecontents = """ FROM ./<ダウンロードしたファイルの名前> TEMPLATE \"\"\"{{ if .System }}<|START_OF_TURN_TOKEN|><|SYSTEM_TOKEN|>{{ .System }}<|END_OF_TURN_TOKEN|>{{ end }}{{ if .Prompt }}<|START_OF_TURN_TOKEN|><|USER_TOKEN|>{{ .Prompt }}<|END_OF_TURN_TOKEN|>{{ end }}<|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>{{ .Response }}<|END_OF_TURN_TOKEN|> \"\"\" PARAMETER stop "<|START_OF_TURN_TOKEN|>" PARAMETER stop "<|END_OF_TURN_TOKEN|>" """ # 書き込みモード with open(_filepath, 'w') as f: # ファイル作成、書き込み f.write(filecontents)
以下のコマンドを実行し、カスタムモデルを作成
!nohup ollama serve & !ollama create <カスタムモデルの名前> -f Modelfile
pythonからollamaを使うためにpip install
!pip install ollama
プログラムから利用
import ollama response = ollama.chat(model='<カスタムモデルの名前>', messages=[ { 'role': 'user', 'content': 'こんにちは', }, ]) print(response['message']['content'])
参考にしたページ
カスタムモデルの作り方は以下を参考にした github.com
Modelファイルのテンプレート、パラメータは以下を参考にした ollama.com