Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Text-to-SQLをLangSmithで評価

 Text-to-SQLをLangSmithで評価

機械学習の社会実装勉強会第37回 (https://machine-learning-workshop.connpass.com/event/324630/) の発表資料です。

More Decks by 西岡 賢一郎 (Kenichiro Nishioka)

Other Decks in Business

Transcript

  1. 自己紹介 • 名前: 西岡 賢一郎 ◦ Twitter: @ken_nishi ◦ note:

    https://note.com/kenichiro ◦ YouTube: 【経営xデータサイエンスx開発】西岡 賢一郎のチャンネル (https://www.youtube.com/channel/UCpiskjqLv1AJg64jFCQIyBg) • 経歴 ◦ 東京大学で位置予測アルゴリズムを研究し博士 (学術) を取得 ◦ 東京大学の博士課程在学中にデータサイエンスをもとにしたサービスを提供する株式会社ト ライディアを設立 ◦ トライディアを別のIT会社に売却し、CTOとして3年半務め、2021年10月末にCTOを退職 ◦ CDPのスタートアップ (Sr. CSM)・株式会社データインフォームド (CEO)・株式会社ディース タッツ (CTO) ◦ 自社および他社のプロダクト開発チーム・データサイエンスチームの立ち上げ経験
  2. Text-to-SQLとは • 自然言語の質問やコマンドをSQLクエリに変換する技術 • 例: "30歳以上のユーザーの平均年齢は?" → "SELECT AVG(age) FROM

    users WHERE age >= 30;" • Text-to-SQLの仕組み ◦ 自然言語理解 (NLU): ▪ ユーザーが入力した自然言語の質問や要求を解析して、意図を理解します。 ◦ 文脈と構造の抽出: ▪ 質問の文脈や構造を抽出し、どのデータベースのテーブルやカラムが関係して いるかを特定します。 ◦ SQLクエリ生成: ▪ 抽出された情報を基に、適切なSQLクエリを生成します。 ◦ 実行と結果の表示: ▪ 生成されたSQLクエリをデータベースに対して実行し、その結果をユーザーに 返します。
  3. なぜText-to-SQLが必要か • データベースへのアクセシビリティ向上 ◦ SQL非専門家でもデータ分析が可能に ◦ ビジネスユーザーが直接データにアクセス可能 • 開発効率の向上 ◦

    繰り返し行われるクエリ作成の自動化 ◦ プロトタイピングの迅速化 • 自然言語インターフェースの実現 ◦ チャットボットやAIアシスタントへの統合 ◦ よりユーザーフレンドリーなデータ探索ツールの 開発 データ抽出依頼 データ抽出 Text-to SQLで データ抽出
  4. 評価指標の例 1. 正確性 (Correctness) ◦ 生成されたSQLが意図した結果を返すか 2. 効率性 (Efficiency) ◦

    生成されたSQLが最適化されているか 3. 可読性 (Readability) ◦ 生成されたSQLが人間にとって理解しやすいか 4. 実行精度 (Execution Accuracy) ◦ 実行結果が期待される結果と一致するか
  5. LangSmithの概要 LLMアプリケーション開発でよく使われるLangChainのサー ビスである「LangSmith」は、LLMを楽に評価できる機能を 提供している。 • Evaluatorの設定 ◦ コードを書かずにEvaluatorを設定し、データ セットに紐づけられる •

    PlayGround ◦ プログラムを書かずにプロンプトやモデルの設 定をテスト • 中間ステップの評価 ◦ RAGパイプラインなどの中間ステップを詳細に 評価 • 標準Evaluatorの利用: ◦ カスタムコードを書くことなく、標準の Evaluatorを使用 • Annotationの利用 ◦ 実行結果に注釈を追加し、詳細なフィードバッ クを提供
  6. デモ 評価プロセス 1. 評価対象のText-to-SQL modelの定義 2. 評価用データセットの作成 3. カスタム評価器の設定 4.

    評価の実行と結果の分析 デモの主要ポイント • SQLiteデータベースの使用 • LangChainのSQLエージェントの活用 • カスタムLLM評価器の実装 • 効率性スコアの計算 • LangSmithでの評価実行と結果の可視化