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
340
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
120
Elasticsearchにおけるベクトル検索(第57回Elasticsearch勉強会)
shin_higuchi
1
670
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
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
180
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
200
30 Presentation Tips
portentint
PRO
1
320
Why Our Code Smells
bkeepers
PRO
340
58k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
エンジニアに許された特別な時間の終わり
watany
107
250k
YesSQL, Process and Tooling at Scale
rocio
174
15k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
BBQ
matthewcrist
89
10k
Statistics for Hackers
jakevdp
799
230k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
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