今週の生成AI情報まとめ(7/29~8/4)
こんにちは、ナウキャストでLLMエンジニアをしているRyotaroです。
7/29~8/4で収集した生成AIに関連する情報をまとめています。
※注意事項
内容としては自分が前の週に収集した生成AIの記事やXでの投稿・論文が中心になるのと、自分のアンテナに引っかかった順なので、多少古い日付のものを紹介する場合があります
それでは行きましょう
ColPali: 画像RAG
画像の情報をそのままベクトルデータにして検索する手法、ColPaliというものがあるらしい。
具体的には画像データを1024個のパッチに分割しそれぞれをメタデータと結びつけた状態でベクトルデータベースに保管。検索の際にはテキストをトークン化し、それぞれのColPaliのテキストエンコーダに入力。そしてベクトルデータの類似度を元に検索し、合計点が最も高い画像を順に取得する。
ColPaliでは独自のEmbedingモデルを使用する。PaliGemma-3Bモデルをベースに、1024個の128次元ベクトルデータを出力するように調整されていて、このモデルは公開されており、ここからさらなるファインチューニングを行っても精度として大きな変化はないと言及されている。
保存方法
- PDFの各ページごとに画像に変換
- PDFを入力サイズに合わせてリサイズ
- ColPaliモデルを使用して、ページごとに1024個の128次元ベクトルに変換
- すべてのベクトルデータをPDF本体とページ番号のメタデータと結びつけて保存
検索方法
- 検索クエリ用の文字列をトークンに変換
- ColPaliモデルのテキストエンコード機能を利用して、ベクトルデータをトークンごとに作成
- ColBertを使用してトークンごとに類似度の高いベクトルを検索、ページ単位でスコアを集計
- スコアの高い順にPDFのページを並び替える
Embeddingの保存サイズは従来の手法と比較して圧倒的に容量が大きいという課題があるものの、将来的には数倍に収まると予想され、従来のPDFのRAGよりも良い検索方法として認知されていくかも。
参考資料
- [2407.01449] ColPali: Efficient Document Retrieval with Vision Language Models
- テキスト抽出不要のRAGを実現するColPali
OpenGPTs
LangChainがOSSでOpenAIのGPTsをカスタマイズできる機能を出していたらしい(2023/12)。気づかなかった。
ホスト版、バックエンド、フロントエンドが用意されているので、実装は結構簡単そう。
印象Difyとめちゃくちゃ似てて、下位互換の感じがする。
参考資料
- 【OpenGPTs】LangChain搭載のオープンソース版無料GPTsを使ってみた | WEEL
- OpenGPTsの概要と使い方【OSS版のGPTs】|サクッと始めるプロンプトエンジニアリング【LangChain / ChatGPT】
プロンプトテクニック
「CoTで解説して」
ChatGPTに順を追って解説してほしいときは「CoTで解説して」と指示すると良い。そうすると順を追って思考プロセスを書いてくれるので理解が捗る。例えば数学の問題やミステリー小説のトリックの解説など、論理構造が多層化しているときの理解の助けに有効。
参考資料
OSS LLMの評価
flexevalというコマンド一発でLLMの評価ができるライブラリがあるらしい。SarashinaというLLMを開発したSB Intuitionsが作成。
FlexEval は、会話データに関する定量的なメトリックを生成するメトリックを記述するためのツールです。
データはもともと用意指定あるものと、カスタムで用意するものどちらも使える。rubricベースの採点はOpenAIのモデルを使って行う。
参考資料
- Sarashina の性能評価 - SB Intuitions TECH BLOG
- flexeval/examples/sarashina_evaluation/README.md at main · sbintuitions/flexeval · GitHub
NotebookLMの利用
Googleが開発した簡単に指定したデータソースからRAGができ、メモが作成できるサービス。
データソースをその都度変えられるところがすごい。web urlからでもアップロードしたファイルからでもできる。
web urlを読み込ませるのは一見Perlexityに似てるが、urlを指定して特定のwebページをRAGしたいときに使える。参考資料では統計検定の解説ページを参照していて、なかなかよさそう。
参考資料
Gemini 1.5 Pro Experimental 0801を発表。ChatGPT、Claudeを抑えて一位に(8/1)
海外のChatbot Arenaという言語モデルの比較サイトの結果によると、Google Gemini 1.5 Pro Expが一位のスコアを叩き出した。
今のところGoogle AI Studioでのみ使用ができる。(GeminiやVertex AI Studioでは使えない)
チャットボットアリーナとは
チャットボットアリーナについて補足すると2つの言語モデルをブラインドテストで比較するサイトで、ユーザーが1つのプロンプトを入力すると左右の画面に回答が生成される。左右に回答が同時に生成されますが、この時点では何の言語モデルが使われているか分からず。「左が良かった」「右が良かった」「引き分け」と回答して、人間によるモデル1対1の評価をすることができる。
参考資料
- ChatGPT、Claude超えと噂のGemini 1.5 Pro Exp 0801を試してみた|矢野哲平@耳で学ぶChatGPT
- https://x.com/masahirochaen/status/1819207938961297779
CohereがPrompt Tunerを発表(7/31)
Cohere Prompt Tunerとは、「Cohere Dashboard」で利用できるプロンプト最適化ツールのこと。「 PROmpting 」(OPRO) にヒントを得たツールで、カスタマイズ可能な最適化と評価のループを使用して、プロンプトを最適化することができる。
Cohereのアカウントを作成すれば簡単に試すことができる。今のところベータ版。ユーザーが行うのはプロンプトを入れるだけ。あとは勝手にチューニングしてくれるのでめちゃくちゃ楽。
流れとしては、以下の通り。
- 初期プロンプトを設定: 最適化する必要のある初期プロンプトを作成し、変数またはドキュメントを含めます。
- 成功基準を定義: プロンプトの明確な成功基準を確立します。精度、文字数制限、JSON 出力の制限、根拠など、いくつかの指標から選択します。
- 最適化されたプロンプトを取得: モデルが成功基準に基づいて最適化されたプロンプトを生成する様子を確認します。これでプロンプトが使用できるようになりました。
参考資料
- Introducing Cohere Prompt Tuner: Prompt Optimization at Your Fingertips
- Cohere Prompt Tuner の使い方|npaka
aiOlaがWhisper-Medusaを公表(8/1)
aiOlaが8/1にWhisper-Medusaを発表した。Whisper-Medusa は、パフォーマンスを損なうことなく 50% 高速に動作し、OpenAI の Whisperを上回る性能を持つ。ただ英語のみで機能し、日本語にはまだ対応できていない模様。
Discussion