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
elasticsearch_semantic_search.pdf
Search
樋口慎
April 25, 2023
350
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
elasticsearch_semantic_search.pdf
樋口慎
April 25, 2023
More Decks by 樋口慎
See All by 樋口慎
Elasticsearchで作る生成AIエージェントの“記憶” ~RAG・会話履歴・エージェントメモリの実例~
shin_higuchi
0
130
Elasticsearchにおけるベクトル検索(第57回Elasticsearch勉強会)
shin_higuchi
1
680
ChatGPTをどう使うか?(JJUGナイトセミナー5/23)
shin_higuchi
1
2.4k
ElasticsearchでECサイトにおける高速検索/集計を実現する
shin_higuchi
4
1.7k
Elasticsearchによる質問応答~NLP機械学習モデルの利用~
shin_higuchi
1
9.4k
Featured
See All Featured
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
260
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.4k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
180
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
300
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
350
Being A Developer After 40
akosma
91
590k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
How STYLIGHT went responsive
nonsquared
100
6.2k
Unsuck your backbone
ammeep
672
58k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
460
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
Transcript
Copyright © Acroquest Technology Co., Ltd. All rights reserved. 第53回Elasticsearch勉強会
Elasticsearch8.7 におけるセマンティック検索 Acroquest Technology 株式会社 Elastic Certified Engineer 樋口 慎 @shin0higuchi 1
自己紹介 ⚫ 名前:樋口 慎 ⚫ 所属:Acroquest Technology株式会社 ⚫ 業務:Elasticコンサルティング全般、データ分析、システム開発 ⚫
資格/執筆: 世界初「Elastic Certification」3種取得 Azure Solutions Architect Elasticsearch NEXT STEP 執筆
はじめに Copyright © Acroquest Technology Co., Ltd. All rights reserved.
3 当発表では、下記のブログ記事で紹介している Elasticsearch8.7におけるセマンティック検索について説明します。 セマンティック検索の活用で、Elasticsearchの検索が根本的に変わる!? - Taste of Tech Topics (hatenablog.com)
セマンティック検索とは? Copyright © Acroquest Technology Co., Ltd. All rights reserved.
4 ▪Elasticsearchの通常の検索 検索クエリを 形態素解析 AWS上でElasticsearchを使うには? AWS/上/で/Elasticsearch/ を/使う/に/は/? 検索対象ドキュメント群 検索 「AWS」「Elasticsearch」 といったキーワードを含むド キュメントのみがヒットする ▪セマンティック検索 機械学習モデルで ベクトル化(embedding) AWS上でElasticsearchを使うには? [8,64,12,96,12,....] 検索対象ドキュメント群 検索 意味的に近い ドキュメントがヒットする ※検索ドキュメント群が事前に ベクトル化されている必要がある
Elasticsearchで学習済みモデルを利用するには Copyright © Acroquest Technology Co., Ltd. All rights reserved.
5 Kibana Elasticsearch 学習済みモデル ② Elandを利用して、 学習済みモデルを Elasticsearchに登録する ① 学習済みモデルを用意する (Hugging Face等を利用す る場合、適切なモデルを選 ぶのみ) ③ ドキュメント登録時/検 索時に登録済みモデルを 呼び出して利用する (ベクトル化)
Eland による import Copyright © Acroquest Technology Co., Ltd. All
rights reserved. 6 • Elandは、HuggingFaceのモデルをデプロイする簡易なスクリプトを提供 eland_import_hub_model --url https://localhost:9200 \ -u <username> -p <password> \ --ca-certs xxxx \ --hub-model-id <HuggingFaceのモデルID> \ --task-type <タスク種別> \ モデルをローカルのElasticsearchにデプロイするコマンド
Eland による import Copyright © Acroquest Technology Co., Ltd. All
rights reserved. 7 • Elandは、HuggingFaceのモデルをデプロイする簡易なスクリプトを提供 eland_import_hub_model --url https://localhost:9200 \ -u <username> -p <password> \ --ca-certs xxxx \ --hub-model-id cl-tohoku/bert-base-japanese-v2 \ --task-type text_embedding \ モデルをローカルのElasticsearchにデプロイするコマンド
取り込んだモデルはKibanaから確認可能 Copyright © Acroquest Technology Co., Ltd. All rights reserved.
8
登録するドキュメントのEmbedding Copyright © Acroquest Technology Co., Ltd. All rights reserved.
9 • ingest pipeline で inference processorを利用する "inference": { "target_field": "inference.content", "model_id": "cl-tohoku__bert-base-japanese-v2", "inference_config": { "text_embedding": {} }, "field_map": { "content": "text_field" } }
登録するドキュメントのEmbedding Copyright © Acroquest Technology Co., Ltd. All rights reserved.
10 • ドキュメント登録時にパイプライン名を指定する POST blogs/_bulk?pipeline=text_embedding {"index":{}} {"title": "XXXX", "content": "XXXX"} {"index":{}} {"title": "XXXX", "content": "XXXX"} ... contentフィールドをembeddingした結果が inference.content配下に保存される
検索時のクエリ Copyright © Acroquest Technology Co., Ltd. All rights reserved.
11 • search APIのknnパラメータを指定する。 GET blogs/_search { "query": {...}, "knn": [ { "field": "vector.content", #ベクトルを入れたフィールド名 "k": 3, #上位3件の結果を取得 "num_candidates": "100", #類似度を計算する対象数 "query_vector_builder": { "text_embedding": { "model_id": "cl-tohoku__bert-base-japanese-v2", "model_text": "<検索したい文字列>" } } } ] }
デモ Copyright © Acroquest Technology Co., Ltd. All rights reserved.
12 • 例として、技術ブログの記事を検索する • 通常の検索と組み合わせてセマンティック検索を用いることでランキングを改善す る。
まとめ Copyright © Acroquest Technology Co., Ltd. All rights reserved.
13 • Elasticsearch8.7からは、 ドキュメント登録時だけでなく、検索時にもembeddingできるようになった →結果、セマンティック検索がElasticsearchのみで完結するようになった。 • GPT4などをはじめとする大規模言語モデルも登場するなか、 より大きなモデル/多次元のベクトルへの対応および性能面が今後の注目ポイ ントと考えられる。
ご清聴ありがとうございました。 Copyright © Acroquest Technology Co., Ltd. All rights reserved.
14