投稿一覧(新着順)
RAGの検索用に使うモデルをEmbedding用にしたら、チャンクに整形してない文書でも格段にヒット率が良くなりました。
興味のある方は、どなたでも遠慮なく投稿してください。
まったく関係ないけど見ているだけの方でも、プロのAIエンジニアの方でも
歓迎です。
ベースモデルに追加情報を学習して拡張モデルを生成する機能を付ける前に
RAGの機能をちゃんと動くようにしようと奮闘中。
事前数値化してDB保存したのを問合せ内容とのコサイン類似度でヒットさせようとしたのですが、正しい文書の類似度が違う文書の類似度より低いという問題が出てストップ。
調べるといろいろ問題があることがわかりました。
まずは、数値化するときに使ったのが会話用のモデルを共用したために
会話用のモデルは学習目的が違うことから「似た意味の文書同士を近くに集める」という精度が低くなる事や
「次の単語を予測するため」のモデルなのでテキスト全体の意味を綺麗に凝縮したベクトルとしては最適化されない。
そもそも文書の作り方が間違っていて、AIのロジックとして検索しやすい形式に整形してベクトル化しないと問合わせ内容のベクトルと類似度を正しく評価できない。
など。そこで、
モデルをEmbedding用モデルをCPUにロードすること
文書をチャンクに整形する機能を追加すること
が必要になってきました。
Embedding用のモデルはいくつかありましたが
japanese-E5はモデルサイズが大きすぎで、
軽量モデルでいちばん推奨されたものはLlamaSharpのバージョン(現在0.27.0使用)が低くてロードできなかったり、
北京の研究機関のモデルbge-m3も推奨されましたが中国製はちょっと控えようかと…
結局MS社のmultilingual-e5-largeの8ビット量子化モデルをロードしてみて
一応ロードはできた状態で昨日は終了。
次は会話用モデルで文書をチャンクに整形する機能を追加してベクトルし、類似度が正しく評価されることを祈ってます。
今日はHPのセキュリティ関連の作業が多くなってしまったので、とりあえず体裁だけ整えました。
プロンプト形式の動きにしてモデル変更やGPU/CPUの切り替え時に再起動せずにモデルのロードをできるように変更して終わります。
では、また。
なんだかんだで昨日ggufがなんとか生成できてRAGに設定。
使ってみたら、なんか変 ⁈
「こんにちは」すら返せない🙅
調べるとベースモデルに使ったGemmaは会話のタイミングが取れなくて、質問にタグが必要との事。
タグをつけたら「こんにちは」に「こんにちは!」と返答。RAGのプログラムに「Gemma、 Gemma2対応」のチェックボックスを追加。面倒だけどconfigにも入れないといけない((+_+))
でも仕方なく、いちおう全部やって今日は終了。
さて次は‥‥
とりあえず、RAGのプログラムを普通に使えるように質問、回答をログ内でプロンプトのように、やり取りできるよう体裁を整えて‥‥
モデル生成の追加情報をDB化してJSONに吐き出せる機能とpythonのgguf生成機能をバックグラウンドで実行できる機能が必要かな‥‥と
あと、もう一つはRAGを上手く使えるように参考資料の数値化DBを作って質問関係資料の抽出機能を追加かな‥‥
とか
こんなところで、また時間のある時に続きします