Difyをローカルで、かつローカルのLLMで動かす
読む
docker compose V2なのを確認し、desktopのdockerの設定を必要な感じに直してdocker compose up -d
めっちゃ色々pullしてる
https://scrapbox.io/files/6717613a27a00274c4d79dd7.png
ぽいのは出てきた。くるくるしてるからダメそう。
これサーバーの方だったわ。
いけた
https://scrapbox.io/files/671761900710842a9a3d4f8c.png
OpenAI API使わずにローカルのLLMで動かす(?)ことができれば全部無料で試せる気もする
やってみたい
とりあえずぽちぽち押していく
ワクワクする感じになった
https://scrapbox.io/files/67176230ee394e3eb466dee6.png
モデルに関しては丁寧に設定画面があった。
https://scrapbox.io/files/67176283593d75112521e13e.png
https://scrapbox.io/files/67176286ff4dc389c976e9cf.png
ローカルのはどうやって読み込ませるんだろう
オープンソースのものを使うという意味
まあ一旦何か選んでみる
やっぱりキー入れれば一瞬でできそうだった
みている
https://www.youtube.com/watch?v=BqOWdYA6zAs
自分のPCスペックでいけるんだろうか
ギリいけそうだった
embedding
これもできるならやってみたい
手元のメモとかを参照できる形にしてインデックスしてもらうみたいなものだと理解している
この辺もしっかり勉強しないとだなぁ
language
部分的にでもお役に立てましたら幸いです。LLMからの返答の日本語化はシステムプロンプトで行うのが良さそうです!
と、動画のコメントに書いてあるのでollama3の設定かな
こちら拝見しつつローカルにollama3.2入れている
code:plain
>> hello
Hello! How can I assist you today?
>> whats yr name
I don't have a personal name. I'm an AI designed to provide information and answer questions to the best of my ability. You can think of me as a computer program or a conversational robot, but I
don't have a personal identity or emotions like humans do. What's your name?
入った
日本語化をする
システムプロンプトを作って、モデルファイル?みたいなのにするっぽい
日本語化にしてみる
code:python
FROM llama3
PARAMETER temperature 1
SYSTEM """
Answer as an AI assistant. However, all answers should be returned in Japanese unless otherwise specified.
"""
まずこんな感じでシステムメッセージを設定してみる。
ollama pull llama3は要るかな?3.2入れたし大丈夫な気もするが...
(mjtaggerの部分はモデルの名づけなので自由に変更してください。ただし、Embeddingsのモデル指定とは一致している必要があります。)
ここもよくわからなかった。
聞いてみた
リンク先の「mjtaggerの部分はモデルの名づけなので自由に変更してください。ただし、Embeddingsのモデル指定とは一致している必要があります。」という文について説明します。
**「mjtagger」**は、機械学習や自然言語処理(NLP)のモデルに名前を付けて呼び出す際に使われる識別子の一つです。この記事では、おそらく何らかのタグ付けモデル(例:形態素解析や文法構造のタグ付け)を指していると考えられます。具体的なモデルに名前を付ける部分に関しては、自由に変更可能であるという意味です。つまり、mjtaggerという名前は例示であり、他の適当な名前に置き換えることができます。
ただし、注意点として、「Embeddingsのモデル指定」との一致が求められています。これは、モデルの内部で使われる**埋め込み(Embeddings)**のモデル指定部分と、mjtaggerなどのモデル名が一致している必要があるということです。これにより、モデルが適切に呼び出され、機能するように設定が一致していることが求められます。
まとめると、この文は「モデルに好きな名前を付けられるが、埋め込みのモデル指定と同じ名前にしておく必要がある」という意味です。
既存のモデルに今書いたものを追加するのではなく、それをベースにモデルを作るってことかな?
code:plain
writing manifest
success
なんかできた。
なるほど、embeddingとワンセットなのか
フォルダの移動ができたら以下のコマンドを入力します。
python embeddings.py
すると、以下のようにLlama3のカスタムモデル"mjtagger"からの返答が得られます
embeddingを使わなければ、今作ったカスタムモデルを使えるのかな?
❯ ollama run mjtagger
>> hello
(Ohayou gozaimasu!)
そういうことだった。ちょっと想定しない回答だったけどw
アルファベットになっちゃうのかな。
>> 日本語で会話できますか?
(はい、できる!) Nederlandse AI-assistent kan Japans spreken en schrijven. Als je Japans wilt praten, ik zal antwoorden in het Japanse geven, tenzij je anders instructies geeft. (So, let's have a
Japanese conversation!
もう少しモデルファイルしっかり書いてみるか。
rmで消せる
code:plain
rm Remove a model
help Help about any command
Flags:
-h, --help help for ollama
-v, --version Show version information
Use "ollama command --help" for more information about a command. ❯ ollama rm mjtagger:latest
deleted 'mjtagger:latest'
❯ ollama rm jpollama:latest
deleted 'jpollama:latest'
うまく行った
code:plain
❯ ollama run jpollama
>> おはよ
おはようございます!
>> 元気?
はい、元気です!
// こんな感じにした
SYSTEM """
Answer as an AI assistant.
However, all answers should be returned in Japanese unless otherwise specified.
For example:
input こんにちは、あなたの名前はなんですか? Please answer in Japanese characters.
"""
文字まで指定するのが良かったのかも。
ollamaコンテナ起動しつつ、web-ui入れる
このコンテナはなんなんだろう
webuiだけあっても仕方ないからか
いけた
https://scrapbox.io/files/67184d7b5729b3bba8101bd7.png
https://scrapbox.io/files/67184d7fa7525f087ccea0d4.png
web-uiの管理者パネルから接続先引っ張れた
できた〜〜〜🎉
https://scrapbox.io/files/6718503b1cc8b1df730b5ef6.png