
WrenAI ハンズオンレビュー:RAG駆動のText-to-SQLツールを徹底検証
WrenAI は、RAG(Retrieval Augmented Generation)をベースにしたText-to-SQLソリューションとして注目を集めています。この記事では、実際にWrenAIを試用した経験から、そのメリット・デメリットを詳細に解説します。
WrenAI をローカル環境に構築する:最初のステップ
WrenAI の導入は、公式ドキュメントに沿って進めることで、比較的容易にローカルマシンへのデプロイが可能です。Ollama との連携については、サンプル設定ファイルを参考にできます。
ただし、ドキュメントに記載されていない細かな調整が必要になる場合もあります。例えば、ドキュメントで推奨されている ollama/nomic-embed-text
を embedder として使用する場合、設定ファイルの embedding_model_dim
を 3072 から 768 に変更する必要があります。この点は見落としがちなので注意が必要です。MySQL と公式テストデータセットを使用しました。
WrenAI の強み:カスタマイズ可能なプロンプトとRAGによる柔軟性
WrenAI の魅力の一つは、スキーマに基づいたチャット形式のQ&Aに加え、プロンプトを柔軟にカスタマイズできる点です。 Knowledge ページでは、事前に定義された質問とそれに対応するSQLの回答を入力できます。さらに、AI に追加の“パラメータ”を提供するコマンドも入力可能です。
WrenAI のプロンプトを分析した結果、これらの Knowledge が最終的なSQLの生成に重要な役割を果たしていることがわかりました。このカスタマイズ性は、BigQuery のような利用状況に基づいたデータソースを統合する際に、信頼性の高いファインチューニングの機会を提供します。 Text-to-SQL の精度を高める上で、プロンプトの調整は不可欠です。
WrenAI の課題:初期バージョンゆえの課題と計算コスト
WrenAI はまだ新しいプロジェクト(執筆時点では0.19.2)であるため、いくつかのバグが存在します。
-
推奨質問の表示問題: ホームページにログインした際に、データモデルに基づいて推奨される質問が表示されます。これはユーザーがすぐに状況を把握できる便利な機能ですが、モデルスキャンに高い計算能力を消費します。モデルの性能が十分でない場合、結果を得ることが難しい場合があります。
推奨質問が表示されないことは問題ありませんが、WrenAI のエラー処理は最適ではありません。重要性の低い組み込みの質問が多数表示され、言語設定もプロジェクトと連携していません 。
-
AI のハルシネーション(幻覚): データモデルやカラム数が少なくても、
llama3.1:8b
モデルでさえ、一定の割合で AI がハルシネーションを起こします。データエンジニアであればSQLを読解できるため問題を見つけやすいですが、WrenAI は元の回答を修正するメカニズムを提供しているため、大きな問題なく使用できます。
-
RAGベースのアーキテクチャの計算コスト: WrenAI は、RAG 実装に基づいて SQL を生成するため、強力なモデルが必要です。MacBook Pro M2 で
llama3.1:8b
を実行した場合、簡単な問題(複数のテーブルの結合)でも5分以上かかり、複雑な問題では内部サーバーエラーが発生することも珍しくありません。中小規模のモデルでText-to-SQLを行う場合は、計算コストの問題を考慮する必要があります。 -
その他、Web UI の軽微な問題やバックエンドとのインタラクションにおける設計上の欠陥もいくつか見られました。
まとめ:WrenAI は試す価値のあるText-to-SQLツール
WrenAI は、RAG を基盤として優れた Text-to-SQL ソリューションを実現しています。特に、RAGに基づいているため、プロンプトのカスタマイズに高い柔軟性があります。
一方で、RAG アーキテクチャであるため、計算能力とモデルの容量に対する要求が高く、小規模なモデルでの効果を高める必要があります。 今後、より強力なモデルで実験を行い、より良い結果を得ることを期待したいと思います。
WrenAI は、今後の発展が期待される Text-to-SQL ツールであり、試してみる価値のある製品です。Text-to-SQL を活用して、データ分析の効率化を目指しましょう。