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

エンプラRAG構築の最適解!Oracle AI Vector Searchによる明日からできる...

mogamin
July 10, 2024

エンプラRAG構築の最適解!Oracle AI Vector Searchによる明日からできるRAG!

企業がビジネスに生成AI活用を模索する中で、独自の情報と生成AIを組み合わせたRAGが注目されています。しかし、ビジネス応用には事前検証が不可欠で、多くの企業が検証にかかる時間や検証のための適切なデータの準備に悩んでいます。
本セッションでは、Oracle AI Vector Searchを用いて迅速かつ効率的にRAGを構築する方法を紹介します。
OracleDBを利用することで既存の環境を活かし、データ重視のアプローチで導入のハードルを低くすることが可能です。具体的な事例として、タレントマネジメントシステムを用いてOracle AI Vector SearchのRAG構築における貢献とその活用方法を詳しく解説します。生成AI技術のビジネス活用に興味があるエンジニアやRAGの構築方法を知りたい方、実践的なOracle AI Vector Searchの使い方を学びたい方におすすめです。

mogamin

July 10, 2024
Tweet

More Decks by mogamin

Other Decks in Technology

Transcript

  1. 最上 隆史 アドバンストテクノロジー部 ディレクター ウルシステムズ株式会社 2024年 Oracle DevelperDays登壇。GenerativeAI Japan登壇。DBTechShowcase登壇。 2023年

    ScrumMaster(CSM)取得。 2020年 DBTechShowcase登壇。[RDS脳なあなたにKVSモデリングのノウハウを公開!KVS設計はこうしよう] 2019年 ChainerUserGroupにJOIN、DLLABにて一般向け講師、執筆等でChainer普及活動に貢献。 2019年 AWS DeepRacer日本選抜。 ウルシステムズ歴20年。アーキテクト、業務/データモデリング、AIを中心とし た技術コンサルティングおよび開発業務を展開。システム構築に関するグランド デザイン策定から要件定義、アーキテクチャ策定、概念モデリング、設計、開発、 運用、パフォーマンスチューニングまで幅広く支援。 SLAM(自己位置推定)系、ロボティクス系も好き。現在は蓄積された業務知識を 武器に生成AIを使ったビジネスユースケースへの適用を複数の企業と展開。
  2. 生成AI+RAGが求められるようになった背景 RAGは、うまい! 安い! 早い! LLMモデルに 業務全体を 記憶させる 回答に必要な 業務を検索して LLMに都度与える

    FineTuning RAG • 精度が高い。のか?? Pros Cons • 検証までに時間がかかる • お金もかかる • ハルシネーション問題 • すぐに検証できる • さほどお金はかからない • 検証精度が高いと十分使える • ハルシネーション対策 • ハルシネーション問題 Fine-Tuning or Retrieval? Comparing Knowledge Injection in LLMs(https://arxiv.org/pdf/2312.05934) 結果として、ファインチューニングは一部の改善を提供しますが、RAGは既存の知識や新しい知識の注入において一貫して優れた性能を示した。特に、LLMがファインチューニングで新しい事実を学ぶ のは困難であることが明らかになりました。
  3. 生成AI+RAGが適用できる業務領域 複数のデータセットが複数のエリアに対して業務改善ができる。 カスタマサポート 過去の問い合 わせログ 製品 マニュアル 業界トレンド/ 市場調査 R&D、製品企画

    マーケティング 人事部門、採用 • 回答の正確性と一貫性が向上 • 新入社員の教育時間短 • 縮顧客満足度の向上 • イノベーションの加速 • 競合分析の効率化 • 新製品アイデアの創出 • ターゲット顧客の深い理解 • パーソナライズされたキャンペーン作成 • トレンド予測の精度向上 • 適切な人材のマッチング精度向上 • 採用プロセスの効率化 • 従業員のキャリア開発支援 履歴書/評価 データベース 技術論文 特許情報
  4. ベクトル化の重要性 テキストの意味的な特徴を数学的に高次元のベクトルで表現することで、意味が近い・遠いが数字でわかる ✓ ハルシネーション問題に対処ができる ✓ 社内情報/データを使って、より優れた回答を生み出す ✓ LLMトークンの制限を超えないようにできる • 猫は魚が好きだ

    • ネコは魚を食べるのが好きだ • 猫は魚料理を喜んで食べる • フェリーヌは魚介類を好む • 数学は難しい • 数式を理解するの は大変だ • 数学の問題を解く のは骨が折れる • 複雑な計算は頭を 悩ませる • 動物の学習能力は驚くべきものだ • 猫の問題解決能力を研究している • 動物の知能を数値化するのは難しい • 猫の空間認識能力は高度だ 意味が近い(0.1) 意味が近い(0.1) 意味が近い(0.1) 意味が微妙に近い (0.3) 意味が遠い (0.9) 意味が微妙に近い (0.4)
  5. ベクトル化技術の発展 初期の単純なモデルから現代の複雑で文脈を理解するモデルまで、半世紀以上にわたる進化の歴史 1960s ベクトル空間モデル 1990s 潜在意味解析 2003s トピックモデル(LDA) 2013s Word2Vec

    2018-現在 BERT,GPT等の 大規模言語モデル テキストを数値ベクト ルとして表現する基本 的なアイデアが誕生。 しかし、当時は計算能 力の制限により、実用 化は限定的。 単語の共起関係を利 用して、潜在的な意味 を捉えようとした。テ キストの意味的類似性 をより良く表現できる ようになる。 文書をトピックの確率 分布として表現する手 法が開発。テキストの 意味構造をより深く理 解できるようになる。 単語レベルでの効率 的なベクトル表現が可 能。大規模なテキスト から学習し、単語間の 意味的関係をより精 密に捉えることができ た。、多くの自然言語 処理タスクの性能を大 幅に向上させる。 2018年以降、BERT、 GPTシリーズなどの 大規模言語モデルが 次々と登場。自然言語 処理タスクの性能を飛 躍的に向上させ、文脈 を考慮したより深い言 語理解と生成が可能 になった。
  6. 生成AI+RAGの代表的アーキテクチャとは 生成AI+RAGのデータの流れ 【質問】 猫の寿命は? 【LLM統合プロセス】 • 一般的な寿命範囲の特定 • 品種による差異の認識 •

    環境要因の影響の考慮 • ケアの重要性の強調 • 個体差への言及 【検索結果1】 家猫の平均寿命は12〜18 年程度です。適切なケア で20年以上生きる猫もい ます。 【検索結果2】 猫の品種によって寿命は 異なります。シャム猫は 15〜20年、メインクーン は12〜15年程度です。 【検索結果3】 屋内で飼育される猫は屋 外の猫よりも長生きしま す。平均で13〜17年の寿 命があります。 【LLMが生成する回答】 猫の平均寿命は一般的に12〜18年程度 ですが、様々な要因によって変動します。 品種による差異があり、例えばシャム猫は 15〜20年、メインクーンは12〜15年程 度の寿命があります。環境も重要な要素で、 屋内で飼育される猫は13〜17年程度の 寿命がある一方、屋外猫は3〜10年と短く なる傾向があります。これは、屋外の様々 な危険から守られているためです。適切な ケアと栄養管理を行えば、20年以上生き る猫もいます。猫の寿命は、遺伝的要因、 環境、健康管理など、多くの要素に影響さ れます。したがって、猫の寿命を最大限に 延ばすには、適切な栄養、定期的な獣医の チェック、安全な屋内環境の提供が重要で す。ただし、個体差があるため、これらはあ くまで平均的な数値であることに注意して ください。 Retriever LLM
  7. RAGという技術が熱いらしい!5,000万で導入しろ! は、はい... ~3ヶ月後~ あのラグタイムの進捗は? RAGです...結果は... おお!素晴らしいんだろう? 実は...イマイチで... 何!?5,000万かけて何してた? 構築に4500万、検証に500万使って... 検証?何を検証した?

    えーと...GPT-4との比較でF1スコアを... で? すみません...でも、学びはたくさんあって... へぇ、5000万の学びか。高い授業料だったな! 次は100万くらいで... (突然笑う)「面白い!承認だ。今度こそ結果を出せよ! 話はかわりますが・・・こういうことってありますよね? パート1 RAG導入の珍道中
  8. ◼ いまは構築はしたくないなー。ちょっと試してみたい だけなんだけどなぁ。 ◼ WEBマニュアルに詳しく書いてあるけど、読みたく ないなー。いま、どうしたらいいのか教えて欲しいん だけどぉー。というか構築はどうでもいいんだけ どぉ。 ◼ あーなんか聞いたことのないクラウドリソース名が

    でてきた。いやだなー。 ◼ あ、権限エラーか・・・あ、IPアドレス制限か。うーん。 つながらないなー。ポートかなー。で、3日がすぎる。 話はかわりますが。。。こういうことってありますよね? パート2 構築が最初のハードル。あ、権限が、あ、ポートが。。。うーん。立ち上がらない・・・
  9. ➢ alter table employee add column SKILL_VECTOR VECTOR; ➢ insert/update

    employee XXXX ➢ select VECTOR_DISTANCE(A, B) from employee それ、いつもあなたのそばにあるOracleデータベースが解決します! alter add columnで始まる、Oracleデータベース上でのベクトル検索
  10. Oracle AI Vector Searchの基本 もうちょっとだけ、深堀り③ 関数 説明 UTL_TO_TEXT テキストをチャンクに分割する関数。文書を扱いやすい小さな単位に分割するの に役立つ。

    UTL_TO_CHUNKS 大きなテキストドキュメントを小さなチャンク(断片)に分割する。 UTL_TO_EMBED テキストをベクトル埋め込みに変換する関数。単一のテキストから埋め込みベク トルを生成できる。 LOAD_ONNX_MODEL ONNXモデルをデータベースにロードする関数。外部で学習したモデルをDBに 取り込める UTL_TO_SUMMARY テキストから短い要約を生成します。 その他もりだくさん https://docs.oracle.com/en/database/oracle/oracle-database/23/vecse/oracle-ai-vector-search-users-guide.pdf
  11. ◼ 設計・開発の課題 • スキルの設計方式(マスタ化?add column?)がいつも悩む。 • 案件紹介時点では、そもそもスキルが明確にならない。 • 密接な関係にあるはずの社内評価システムとの連携ができない。 →物理的な問題ではなく、連携できる項目がない。目標?結果?

    ◼ 運用の課題 • 個人別スキルを、誰が・どう・いつ・メンテナンスするのか? • スキル名って名寄せが必要。 • プロジェクトはスキルだけでは成り立たない。その人の人となり。人と人 との関係性も正否を分ける。これらの情報は誰かが知っている。 私のタレントマネジメントシステム構想 本来必要なはずのタレントマネジメントシステムが、嫌われる理由を考えてみた。
  12. タレントマネジメントシステムのデータ構造 ベクターカラムを追加するだけ! 社員関係性 ◆ 社員ID ◆ 社員ID 関係性 Vector_関係性 社員

    ◆ 社員ID 氏名 性別 ジョブランク スキル_IT スキル_マネジメント スキル_ビジネス ストレングス vector_スキル_IT Vector_マネジメント Vector_ビジネス Vector_ストレングス プロジェクト ◆ プロジェクトID プロジェクト名 業界/業務 利用技術 どのくらい燃えたか vector_業界/業務 vector_利用技術 Vector_どのくらい燃えた か プロジェクトメンバ ◆ プロジェクトID ◆ 社員ID 役割 計画工数 実績工数 経験値、実績 vector_経験値、実績 いままでは「関係性」「スキル」「利用技術」等のデータを検索しやすいように、事前に人間が定義した 項目別に前処理する必要があった。→ それ、自然言語のままでいけます! プロジェクト評価 目標設定/評価 vector_目標設定/評価
  13. 技術、管理、業務の単位別に類似度を算出しアンサンブルする タレントマネジメントシステムのクエリ SQL拡張をおぼえるだけ SELECT id, name, ( VECTOR_DISTANCE(skill_it, :required_skill_it) +

    VECTOR_DISTANCE(skill_mng, :required_skill_mng) + VECTOR_DISTANCE(skill_biz, :required_skill_biz) / 3 ) as score FROM employee ORDER BY score FETCH APPROXIMATE FIRST 5 ROWS ONLY;
  14. 普通のWEBアプリと同じ構成じゃん!! おお、これなら1日で作れそう。 依頼文 候補メンバー INSERTと同時に Embedding Webアプリ アサイン 担当 OCI

    Computing Instance Oracle 23c with Vector Search LLM Embedding Embed v3 “embed-multilingual-v3.0” + 社員データ Query 類似度
  15. ◼ SQLが書ける人は、「今すぐ」「簡単に」RAGを検証できる ◼ オンプレ環境にもRAGが導入できる ◼ 特別なソフトウェアの導入が不要(Oracleだけあればいい) ◼ ベクトルのバージョン管理ができる ◼ Oracleの管理ノウハウがそのまま活かせる(学習コストが低い)

    ◼ 闇雲にチューニング沼には入らない ➢ ブラックボックスの組み合わせ RAG沼は危険 Oracle AI VectorSearchについて Oracle AI Vector Search を使った感触 OracleDeveloperDay2024 https://www.youtube.com/watch?v=5ONkZ8Zgwu0
  16. 1. 構築が1、検証が9であること。 • 事前検証にかける時間の割合を間違えてはいけない。構築は検証が終わった後に実施する。 2. OracleDatabase(23c以降)は、生成AI+RAGに向いている。 • 既にそこにあるOracleDatabaseであれば、alter table add

    columnするだけ。構築不要。 • そこには、すでに検証するためのエンプラデータ(社内情報、社内データ)がある。使える。 3. 生成AI+RAGの適用範囲として、いままで実現が難しかったエリアを再考しよう! • その一つとして、タレントマネジメントシステムの可能性について触れた。 • データ項目設計が難解であった部位が使えるデータに代わる。システム構成のゲームチェン ジャーである。 4. 私は予測する! • すべてのI/Fは自然言語に置き代わる時がある。そう、APIもSDKもすべて。 • ローカル言語(英語、日本語、ドイツ語、中国語・・・)は単なるビューでしかない時がくる。 • その時に向けて、今、準備を始める必要があります。さあ、一緒に取り組みましょう! まとめ
  17. ウルシステムズ サービス紹介 PoCだけでは終わりにさせない。生成AIビジネスユースケース実践適用を推進! 生成AI導入コンサルティング 精度向上施策の適用コンサルティング 運用サポートと技術支援コンサルティング • 現状分析:現業務フローおよびシステム構成の分析。 • 生成AIに関するユースケース、トレンドおよび技術情報の提供:業界別ユースケース(製造業、金融業、医療業界など)、特定のビジネ

    スシナリオでのAI活用事例を提供。 • ソリューション提案:貴社のビジネスニーズに合った具体的なソリューションを提案。 • 要件整理、効果測定:後続の要件定義のための準備。 • 計画策定:グラインドデザイン策定、段階的な導入計画の策定と実行スケジュールの明確化 • New!! Dify導入コンサルティングサービス • トランスファーラーニング:基礎モデルを微調整し、特定のタスクやドメインに対する精度を向上施策。 • プロンプトエンジニアリング: プロンプトを再設計することで、生成AIモデルの出力精度の向上施策。 • フィードバックループ: ユーザーからのフィードバックに対する検討・検証・施策実行。 • ユーザー教育:モデルの利用方法、設定、カスタマイズについてのテクニカルトランスファーセッションの開催。 • 技術サポート:モデル運用中のトラブルシューティングと技術支援を24/7で提供およびドキュメント作成支援。 • メンテナンスとアップデート:定期的なモデルの調整と最適化、及び各クラウドサービスのアップデート対応。