$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LLMを用いたPloneベクター検索 アドオンの開発の説明
Search
Manabu TERADA
March 02, 2024
Technology
0
75
LLMを用いたPloneベクター検索 アドオンの開発の説明
「オープンソースカンファレンス2024 Online/Spring 」 2024年3月2日
Plone Users Group Japan 寺田 学
Manabu TERADA
March 02, 2024
Tweet
Share
More Decks by Manabu TERADA
See All by Manabu TERADA
コンテンツタイプとUMLで考えるPlone開発(1)
terapyon
0
34
Python Web UIフレームワークのススメ
terapyon
0
900
PyCon APACの軌跡
terapyon
0
1.7k
Pythonエンジニアになるためのテクニカルハイライトと学習方法
terapyon
0
96
Multi lingual Vector search using LLM
terapyon
1
82
メモリプロファイラMemrayのススメ
terapyon
3
1.1k
PoC for LLM search on Plone
terapyon
1
98
LLMを用いたPloneベクター検索 アドオンの開発状況の紹介
terapyon
0
120
オープンセミナー香川 Pythonの現状・データ分析・LLM
terapyon
0
590
Other Decks in Technology
See All in Technology
LINEヤフーにおける超大規模プラットフォーム実現への挑戦と学び / Challenges and Lessons in Building an Ultra-Large-Scale Platform at LY Corporation
hhiroshell
1
740
乗っ取れKubernetes!!~リスクから学ぶKubernetesセキュリティの考え方~/k8s-risk-and-security
mochizuki875
3
320
LY Accessibility Guidelines @fukuoka_a11yconf_前夜祭
lycorptech_jp
PRO
1
110
Amazon Forecast亡き今、我々がマネージドサービスに頼らず時系列予測を実行する方法
sadynitro
0
210
日経電子版のStoreKit2フルリニューアル
shimastripe
3
190
Entra ID の基礎(Japan Microsoft 365 コミュニティ カンファレンス 2024)
murachiakira
3
1.3k
50以上のマイクロサービスを支えるアプリケーションプラットフォームの設計・構築の後悔と進化 #CNDW2024 / regrets and evolution of application platform
toshi0607
5
550
もう一度、 事業を支えるシステムに。
leveragestech
5
2.8k
241130紅白ぺぱ合戦LT「編集の技術」
toya524287
2
260
歴史あるRuby on Railsでデッドコードを見つけ、 消す方法@yabaibuki.dev #3
ayumu838
0
730
【平成レトロ】へぇボタンハック👨🔧
vanchan2625
0
160
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
30
15k
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
27
2.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
460
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
390
The Invisible Side of Design
smashingmag
298
50k
RailsConf 2023
tenderlove
29
910
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Unsuck your backbone
ammeep
668
57k
Transcript
CC BY 4.0 LLMを用いたPloneベクター検索 アドオンの開発の説明 ─イントラネット最適化─ Plone Users Group Japan
寺田 学 「オープンソースカンファレンス2024 Online/Spring 」 2024年3月2日
CC BY 4.0 セッション中の諸注意 • スライドは公開済み • 写真撮影可能、録音・録画可能 • 質問
◦ Zoomコメントで • SNSでのつぶやき 歓迎
CC BY 4.0 自己紹介 寺田 学 (Manabu TERADA) • Pythonエンジニア
• Podcast 「terapyon channel」(https://podcast.terapyon.net) • 主な関連書籍(共著・監修・監訳) ◦ Pythonデータ分析 実践ハンドブック (インプレス: 2023年9月) ◦ Pythonによるあたらしいデータ分析の教科書第 2版(翔泳社:2022年10月) ◦ Python実践レシピ (技術評論社: 2022年1月) ◦ スラスラわかるPython第2版(翔泳社:2021年11月) ◦ 機械学習図鑑(翔泳社 : 2019年4月)
CC BY 4.0 本日のトークと関連組織 Plone Users Group Japan として、トークします。 •
一般社団法人PyCon JP Association理事 • 株式会社 CMSコミュニケーションズ 代表取締役 • 一般社団法人Pythonエンジニア育成推進協会顧問理事 • Plone Foundation Ambassador • PSF Fellow member
CC BY 4.0 Plone Foundation Plone Foundationは、グローバルに導入されているCMSフレームワーク「Plone」の普及・ 開発を支援することを目的に2004年に設立された非営利組織です。主な活動内容は、 Ploneソフトウェアの知財管理と、カンファレンスや開発スプリントの開催を通じたコミュニ ティへの支援です。
• Plone ・・CMSツール • Guillotina ・・次世代ヘッドレス非同期サーバフレームワーク • Pyramid ・・汎用Webフレームワーク • Zope ・・Webアプリケーション基盤 • Volto ・・SPAツールキット
CC BY 4.0 本日のトーク内容 老舗CMS Ploneの検索を強化するために、 LLMを使ったベクター検索のアドオンプロダクトの開発 がスタート。 Ploneの概要、LLMを使ったベクター検索の基礎から、 Ploneに実装したベクター検索について紹介します。
CC BY 4.0 モチベーション
CC BY 4.0 モチベーション • 高機能な検索を提供したい • 単語検索ではなく、自然文でコンテンツを探したい • 外部のAPIを使わずに、内部で処理したい
• イントラで、使えるものを目指す • Ploneにはセキュリティ機能があるので融合したい • Ploneにはコンテンツ管理の仕組みがあるので融合したい
CC BY 4.0 目指す姿 Plone • コンテンツ管理 • 公開状態管理 •
ベクター検索機能 LLM • 大規模言語モデル • 多言語Embedding • ベクター永続化 • 近似ベクトル探索 ✖
CC BY 4.0 Plone Conferenceでコンセプト LT • 年1回のPlone Foundation公式イベント •
コア開発者なども集まる年1回のイベント • このトークで紹介するシステムコンセプトをLTで説明 • 多くの人に興味・関心を持ってもらった
CC BY 4.0 Ploneとは
CC BY 4.0 Plone(プローン)は、約20年の歴史 オープンソースCMS エンタープライズ対応の高度な機能を備えており、多くの人と組織が 関わるウェブサイトの管理に力を発揮します。 規模に関わらず、社内情報の共有・蓄積も得意分野です。 Ploneとは
CC BY 4.0 Ploneのスナップショット
CC BY 4.0 Ploneが提供する主な機能 • エンタープライズ環境との統合 • 柔軟なワークフロー・強固なセキュリティ • すぐれた拡張性
• 高いスケーラビリティ • 多言語対応 • アクセシビリティ対応 • 認証とシングルサインオン
CC BY 4.0 Ploneが提供する主な機能詳細 詳細 を知りたい方は OSC2019 東京秋 老舗CMS PloneとReactの融合
https://speakerdeck.com/terapyon/lao-pu-cms-plonetoreactfalserong-he?slide=17
CC BY 4.0 Ploneの最新バージョン Plone 6.0.10.1 2024年2月リリース https://plone.org/download/releases/6.0.10.1
CC BY 4.0 Plone 6.0 の過去資料 詳細 を知りたい方は OSC2021 東京春
Plone is SPA https://speakerdeck.com/terapyon/plone-is-spa
CC BY 4.0 Plone 6 を一言で Plone 6は SPA CMS
Volto (Reactベース) と Ploneを完全融合
CC BY 4.0 Ploneの検索
CC BY 4.0 Ploneの検索 • Ploneは、インデックスを用いた検索あり • コンテンツ投入時にインデックスが作られる • タグフィルタリング、日時範囲フィルタリングあり
CC BY 4.0 Ploneの検索の技術的側面 • バックエンドで、ZOPEのZCatalogが使われる • 転置インデックスが作られる • 日本語は、n-gram(2-gram)で文字分割(splitter)
• splitterはWeb UIやコードで置き換え可能 • 検索結果の順位のランキングを内部の実装で入替可能
CC BY 4.0 Ploneの検索の構成図
CC BY 4.0 Ploneの検索の良いところ • Ploneの検索は、ユーザレベルで公開範囲が結果に反映 • パス(path)で検索範囲を限定できる • PDFのドキュメント内を検索対象にできる
• MS-Office系のファイルの検索をアドオンで対応できる
CC BY 4.0 ベクター検索の概要
CC BY 4.0 ベクター検索の概要 今回のアプローチ • LLM(後述)を使ってベクトル化 • 文章を分割していくつかのベクトルにする •
検索文とデータ内のベクトル群の近似計算 • 似たベクトルの文章をピックアップ
CC BY 4.0 LLM (Large Language Model)とは 大規模言語モデル • ChatGPTに代表される
• 無料で使えるもの日本語に特化したものもある • 開発にはPythonが使われていることが多い • Pythonインターフェースが提供される
CC BY 4.0 LLM (Large Language Model)でできること • テキスト生成: LLMは与えられたプロンプトに基づいてテキストを生成することができます。
• 質問応答: ユーザーからの質問に対して情報を提供することができます。 • 文章の要約: 長い文章やドキュメントを短く要約することができます。 • 翻訳: 一定の精度で言語を翻訳することが可能です。 • 文章校正: 文法や綴りのミスを指摘・修正する能力があります。 • コードの生成・助言: 簡単なプログラミングの質問に答えたり、コードのスニペットを生成。 • 知識の検索: トレーニングデータに基づく情報や事実を提供することができます。 • クリエイティブライティング: 物語、詩、台本などのクリエイティブなテキストを生成 • 学習・教育のサポート: 学習者の質問に答える、学習コンテンツを補完する情報を提供 • ゲームや趣味のアドバイス: ボードゲームの戦略や趣味に関する質問に答える • 一般的な会話: ユーザーと一般的な会話を楽しむことができます。 Chat GPT4によると (文言の末尾を一部修正 )
CC BY 4.0 文書をベクター検索 ─ 全体像
CC BY 4.0 文書をベクター検索 ─ インデックス化
CC BY 4.0 文書をベクター検索 ─ インデックス化 • 元データ • ベクトル化
• ベクトルDB
CC BY 4.0 文書をベクター検索 ─ 質問・回答
CC BY 4.0 文書をベクター検索 ─ 質問・回答 • ベクトル化 • 文章生成
• Web UI
CC BY 4.0 ベクター検索の資料 詳細 を知りたい方は オープンセミナー香川2023 Pythonの現状から データ分析やLLM活用への発展 https://speakerdeck.com/terapyon/opunseminaxiang-chuan-pythonnoxian-zhuang-detafen-xi-llm
CC BY 4.0 ベクター検索 With Plone
CC BY 4.0 ベクター検索 with Plone 概要
CC BY 4.0 ベクター検索 with Plone 機能説明 • Ploneにコンテンツを登録 •
自動的に文章のベクトルデータを生成しDBに登録 • 検索文章をベクトルデータ化し、登録済みデータと比較 • ベクトルの近似計算をし、似たベクトルを抽出 • 似たベクトルを持つコンテンツを一覧表示
CC BY 4.0 ベクター検索 with Plone データ登録
CC BY 4.0 ベクター検索 with Plone データ登録 • コンテンツ登録 ->
ベクトル化 • ベクトルデータをDB登録
CC BY 4.0 ベクター検索 with Plone 検索
CC BY 4.0 ベクター検索 with Plone 検索 (1) • 検索文章を入力
• portal_catalgで問い合わせ
CC BY 4.0 ベクター検索 with Plone 検索 (2) • 検索文章ベクトル化
• DB内ベクトルと近似計算
CC BY 4.0 Ploneの検索との違い
CC BY 4.0 ベクター検索 with Plone 技術背景 • ZOPE ◦
コンテンツの監視 ◦ キューが自動で出る → Indexの自動化 • Plone ◦ カタログ機能 (portal_catalog) ◦ 他の条件が組み合わせで検索 ◦ 既存の内部APIに融合 ◦ 閲覧権限で結果が変わる
CC BY 4.0 ベクター検索 with Plone セットアップ • パッケージをbuildoutでインストール •
Ploneのアドオンセットアップ方法に準拠 ◦ アドオン追加ボタンで自動セットアップ
CC BY 4.0 ベクター検索 with Plone の開発 • Ploneのアドオンを管理する collective
レポジトリで開発 ◦ https://github.com/collective/collective.vectorsearch • 完成していない • 今後の構想 ◦ ストアの変更 ◦ モデルの変更 ◦ インデックスを活用した自動タグ付けの実装
CC BY 4.0 今後の構想 実装(1)
CC BY 4.0 今後の構想 実装(2)
CC BY 4.0 ベクター検索 with Plone の現状 使える?: もう少し時間が必要 協力者:
実装・テスト・アイデア 開発加速: 案件にする? 開発費をもらう?
CC BY 4.0 課題・今後の展開
CC BY 4.0 現在の課題 • そもそも検索精度はどうなのか? • 狙いのものが見つかっているのか? • 検証が必要
CC BY 4.0 課題・今後の展開 スケーラビリティ • メモリの消費を抑えたい >> Plone外にモデルを出すか? •
GPUありマシンでPloneを動作 >> Plone外にするか? • データベースが肥大化する可能性がある >> 専用ベクトルDB? • ベクトル近似計算の効率化 >> 専用アルゴリズム or DB?
CC BY 4.0 今後の展開 新機能 • 検索結果から文章を生成 (RAG) • ベクトルデータを使ったクラスタリング
• 自動的に関連コンテンツをリスト化 • ほか
CC BY 4.0 ご清聴 ありがとうございました。
CC BY 4.0 PyCon JP 2024 9月後半に東京で開催予定 • 私自身も共同座長として、イベント運営する •
主催メンバー(旧コアスタッフ)を募集中 • これから募集 ◦ スピーカー ◦ スポンサー ◦ 参加者
CC BY 4.0 Q&A