0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ollama 使ってみた感想

Posted at

ollama + mistral の使ってみた

ollama + mistral の使い方

※グラボの VRAM 8GB くらい必要です、メインメモリは16GB~

docker-compose.yaml

version: '3.8'

services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    ports:
      - "11434:11434"
    volumes:
      - ollama:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - capabilities: [gpu]
    runtime: nvidia

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "8080:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    volumes:
      - open-webui:/app/backend/data
    depends_on:
      - ollama

volumes:
  ollama:
  open-webui:


docker インスタンスが起動できたら
docker exec -it ollama bash
としてインスタンスにログイン

ollama pull mistral

としてLLMモデルをインストールする

Windowsホストなら
http://host.docker.internal:8080
Linuxホストなら
http://localhost:8080
で WEB-UI からプロンプトが使えるようになります。

API使う時は

http://host.docker.internal:11434/api/generate
又は
http://localhost:11434/api/generate

POSTデータサンプル

  "model": "mistral",
  "prompt": "ロックは淑女の嗜みですか?",
  "stream": False,
  "options": {
    "temperature": 0.1,
    "top_p": 0.9,
    "num_predict": 512,
    "repeat_penalty": 1.1
  }

dockerでやる必要はないです、各自好きな環境でやってください。

ブラウザから使うと挙動がおかしい

ブラウザUIから使うと回答方針?がキャッシュされるらしく回答の偏りが出てしまいます、APIから使うと毎回考えた結果が返ってきます。
なんらかの実験をしたいならAPIを叩きましょう

文章減らすと精度が高くなる

文章がビジネスメールであるか否か、という実験をやっていました
文章の読み方、結果回答のフォーマットなどを細かく指定するよりもシンプルに質問したほうが回答精度が高かったです

文末に回答形式を指示する

◯◯である確率を 0.0~1.0 で回答してください と文頭で指示するよりも、文末で指示したほうがその通りにしてくれる確率が高いです

質問

~~文章~~

回答の指示(確率で とか、JSONで、とか)

JSONとかの指示は守りきれない

次のようにプロンプトを作ります

ビジネスメールである確率を 0.0~1.0 で JSON で回答してください

-----添付文章開始-----
~文章~
-----添付文章終了-----

回答例:
{
  "probability": 0.0~1.0
}

このようにJSONで回答を指示した時に次のような応答でした

  • JSON形式で正常な応答
  • JSON形式(マークダウン?)で応答
  • {"probability" .. と途切れたJSON
  • 指示を無視して確率を数字だけで応答
  • 指示を無視してコメントによる応答

APIでバッチ処理をして回答をDBに取り込むみたいな作業に向かないですね、対策として

「ビジネスメール」「ビジネスメール以外」で回答してください
解説や要約は不要です

このように指示を出すと

  • ビジネスメール
  • 「ビジネスメール」
  • 「ビジネスメール」です
  • 「ビジネスメール」です、なぜなら~~~
    という回答パターンになり最悪でも「ビジネスメール」という単語は入れてくれるのでスクリプトで処理できますので、バッチ処理等に組み込めるようになります。

抽出処理

メールの人材や商材の紹介部分だけを抜き出すタスクはそこそこ上手くいきます。
プロンプトは次のように書きます

データ列挙部分の原文を抜き出してください

-----添付文章開始-----
~メール本文~
-----添付文章終了-----

このプロンプトでメール内にある価格、人材、商材、についてのデータ列挙部分だけを抽出できました。
挨拶文章に含まれる送信者の所属テンプレートまで含める時もあったりしますが、8割合格といって良いかなと思います。

抽出処理は結構いける感じです

そこそこ使えると思う

商用利用もOKの mistral 7b のモデルですが、chatGPT4 と比べたら相当に劣る物ではあるのですが、使い方次第ではバッチ処理なんかに組み込めるかなという感じです。

めちゃくちゃ分かりやすい分類処理とか、なんらかの抽出処理であればなんとかという感じでした。

以上です

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?