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
62
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 Web UIフレームワークのススメ
terapyon
0
670
PyCon APACの軌跡
terapyon
0
1.5k
Pythonエンジニアになるためのテクニカルハイライトと学習方法
terapyon
0
79
Multi lingual Vector search using LLM
terapyon
1
73
メモリプロファイラMemrayのススメ
terapyon
3
950
PoC for LLM search on Plone
terapyon
1
85
LLMを用いたPloneベクター検索 アドオンの開発状況の紹介
terapyon
0
94
オープンセミナー香川 Pythonの現状・データ分析・LLM
terapyon
0
550
コミュニティのつながりとPython @ DERTA GIG vol.3
terapyon
0
100
Other Decks in Technology
See All in Technology
20分で分かるIAM全機能 (拡大版) / 20240903-jawsug-yokohama-iam
opelab
3
120
ことばをそろえる / Bridging the Terminology Gap
amaotone
5
1k
20240906_JAWS_Yamanashi_#1_leap_beyond_the_AWS_all_certifications
tsumita
1
100
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
0
13k
FastConnect の冗長性
ocise
0
7.1k
AWS版GitHub?Amazon CodeCatalystの全体像をまとめてみた
oshanqq
1
3.2k
Building Static Websites with Sculpin
opdavies
0
1.4k
Discover Your Tailored Platform Strategy with Real-World Practice
hhiroshell
1
130
Datadogの便利な使い方 - 意外と知らない?CoScreenとCloudcraft
taijihagino
PRO
1
600
目標設定と習慣化で今よりも一歩生産性を上げる
sansantech
PRO
7
2.3k
SHIFTの課題と目指したい組織像 / 20240827 Rinto Ikenoue
shift_evolve
0
140
エンジニア視点で見る、 組織で運用されるデザインシステムにするには
shunya078
1
160
Featured
See All Featured
Side Projects
sachag
451
42k
What's new in Ruby 2.0
geeforr
340
31k
Scaling GitHub
holman
458
140k
Imperfection Machines: The Place of Print at Facebook
scottboms
263
13k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
45
4.8k
From Idea to $5000 a Month in 5 Months
shpigford
378
46k
The Illustrated Children's Guide to Kubernetes
chrisshort
46
48k
Music & Morning Musume
bryan
46
6k
Happy Clients
brianwarren
96
6.6k
Building Flexible Design Systems
yeseniaperezcruz
324
37k
Pencils Down: Stop Designing & Start Developing
hursman
118
11k
Practical Orchestrator
shlominoach
185
10k
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