Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
LLMを用いたPloneベクター検索 アドオンの開発の説明
Search
Manabu TERADA
March 02, 2024
Technology
0
110
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
PythonエンジニアになるためのテクニカルハイライトとPython実践試験学習方法
terapyon
0
36
Pythonデータ分析実践試験 出題傾向や学習のポイントとテクニカルハイライト
terapyon
1
290
近年の PyCon 情勢から見た PyCon APAC のまとめ
terapyon
0
360
Desktop Apps Made Easy: Python Web UI Frameworks with Streamlit and Stlite
terapyon
1
69
Python実践試験、 Pythonデータ分析実践試験に 合格できるひとのレベル紹介と学習法
terapyon
0
1.3k
各種大学向けにSSO対応サイト(SP)構築の事例紹介
terapyon
0
49
コンテンツタイプとUMLで考えるPlone開発(1)
terapyon
0
110
Python Web UIフレームワークのススメ
terapyon
0
1.3k
PyCon APACの軌跡
terapyon
0
2.2k
Other Decks in Technology
See All in Technology
監視のこれまでとこれから/sakura monitoring seminar 2025
fujiwara3
11
3.9k
Witchcraft for Memory
pocke
1
350
20250625 Snowflake Summit 2025活用事例 レポート / Nowcast Snowflake Summit 2025 Case Study Report
kkuv
1
310
2025-06-26_Lightning_Talk_for_Lightning_Talks
_hashimo2
2
100
Windows 11 で AWS Documentation MCP Server 接続実践/practical-aws-documentation-mcp-server-connection-on-windows-11
emiki
0
970
Clineを含めたAIエージェントを 大規模組織に導入し、投資対効果を考える / Introducing AI agents into your organization
i35_267
4
1.6k
「Chatwork」の認証基盤の移行とログ活用によるプロダクト改善
kubell_hr
1
160
BigQuery Remote FunctionでLooker Studioをインタラクティブ化
cuebic9bic
3
300
A2Aのクライアントを自作する
rynsuke
1
170
BrainPadプログラミングコンテスト記念LT会2025_社内イベント&問題解説
brainpadpr
1
160
Delegating the chores of authenticating users to Keycloak
ahus1
0
120
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
200
Featured
See All Featured
For a Future-Friendly Web
brad_frost
179
9.8k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.8k
Typedesign – Prime Four
hannesfritz
42
2.7k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Optimizing for Happiness
mojombo
379
70k
Practical Orchestrator
shlominoach
188
11k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
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