1. はじめに
Dataikuでは、画像や音声データ、テキストデータといったテーブルデータ以外のデータも統合的に扱うことができます。
最新のVersion 13以降からはLLMを用いたマルチモーダルな機能も追加され、画像からテキスト生成するなど、使うことのできる機能も幅広くなっています。
Dataiku Release notes
https://doc.dataiku.com/dss/latest/release_notes/13.html#version-13-1-3-september-16th-2024
本記事では、Dataikuを活用し、画像からテキストを生成するタスクに焦点を当てた検証について紹介します。特に画像から説明文やラベルを自動生成するプロセスに興味がある方にとっては有益な内容となっています。
2. 選択するモデル
Dataikuでは、LLM Meshを用いてマルチモーダルな機能を使えます。現在、適用されるモデルは以下のドキュメントが参考になります。
Multimodal capabilities
https://doc.dataiku.com/dss/latest/generative-ai/multimodal.html#multimodal-capabilities
今回使用したモデルはOpenAI のGPT 4-o miniを使用しています。
画像から抽出された特徴量をテキスト生成モデルに渡し、最終的に意味のあるテキストを生成し、テキストからネガティブなのかポジティブな画像なのかフラグを付けます
3. 検証結果
今回は以下の風景の画像を用いて検証してみようと思います。
堤防から取った風景の写真になります。奥には島も見えます。海は比較的穏やかな感じです。遠くには海沿いに工場らしきものがあります。天気は良さそうです。
LLMで読み込む前にフォルダーから画像へのパスを取得します。フォルダーから画像のパスを取得するにはビジュアルレシピのコンテンツのリストを選択します
レシピを実行すると画像とパスの情報が得られます
こちらのパスから画像をLLMへ渡します。
Prompt studioからプロンプトを設定します。まずインプットする画像を選択します。
Inputs fromで先ほど作成したパスのあるデータセットを選択します。
Image folderで画像の格納されているフォルダを選択します。
Columnで画像へのパスを選択すると、画像とパスが結びつき、LLMへインプットできるようになります。
次にプロンプトの設定をします。
Prompt designでLLMのモデルを選択します(今回はGPT-4o miniを選択)
プロンプトは画像の情報をいれ、以下のように設定しました。
実行結果は以下のようになります
インプットした画像に対して、ある程度正確に特徴をとらえているようです。精度はいいのではないでしょうか。
結果をフローへ出力しますEXPORT AS RECIPEで出力します
フローでは以下のようになります
出力されるデータセットは画像と対になるように先ほどのプロンプトに対する結果が付与されます
最後にllm_outputをポジティブかネガティブかのフラグを付けます。
LLMレシピでテキストの分類を選択します。
テキストに対してポジティブかネガティブか判断してもらいます。
今回生成されたテキストに対してはポジティブという判定がでました。よってインプットした画像もポジティブなものといえるでしょう。
特定の分野や対象に依存する生成テキストの精度には改善の余地があるものの、画像からテキストへ変換しポジネガ判定できるという観点では十分な結果が得られました。
4. 最後に
今回の検証では、画像から自動でテキストを生成するタスクをDataikuを用いて実現しました。
LLMを用いて画像からテキストを生成することは様々なシーンで利用できます。
Eコマースサイトにおいては、製品画像から自動で説明文を生成することで商品データの管理や更新を効率化することができます。
Dataikuのマルチモーダル機能を活用することで、画像やテキストなどの異なるデータを統合して処理でき、ビジネスの幅も広がる可能性があります。