Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pineconeの重要性とプラクティス

Avatar for 八百俊哉 八百俊哉
July 27, 2023
280

 Pineconeの重要性とプラクティス

ChatGPT Meetup Tokyo #1

Avatar for 八百俊哉

八百俊哉

July 27, 2023

Transcript

  1. Pinecone の 重要性とプラクティス Page 001 株 式 会 社 フ

    ィ ー ド フ ォ ー ス   A p p U n i t y 2023 ©️ Feedforce Inc. | 本資料を無断で転用・改変・複製・第三者に開示することを禁じます。
  2. Page 003 Agenda LLM の急速な普及によって、ベクトル データがどのように重要性を増してい るのか 従来のデータベースとベクトルデータ ベースの違いについて、データ構造・ 検索/

    クエリ処理・スケーラビリティ といった観点から紐解く Pinecone の基本機能や特徴 index 管理とデータ戦略について 2023 ©️ Feedforce Inc. | 本資料を無断で転用・改変・複製・第三者に開示することを禁じます。
  3. LLM の急速な普及と ベクトルデータベース Page 004 近年、LLM の急速な普及に伴い、ベクトルデータがます ます重要性を増しています。 ベクトルデータは、高次元の数値配列として表現される データであり、従来のデータ形式に対し、より高い表現

    力を持ちます。 また、ベクトルデータベース(VecDB )は、ベクトル間 の類似度計算により、類似するデータを効果的に検索で きるため、従来のデータベースでは難しかった類似デー タの検索が可能になります。 従来のデータ形式 ベクトルデータ こんにちは [0,1,3,0, ....] 2023 ©️ Feedforce Inc. | 本資料を無断で転用・改変・複製・第三者に開示することを禁じます。
  4. LLM に問い合わせるだけ ベクトルデータベースの活用 Answer Question Answer Question LLM の急速な普及と ベクトルデータベース

    LLM とVecDB の関係 LLM の知識内での回答 Question 内容に近いデータを検索 LLM の知識にない情報でも 回答を作成できる Page 005 2023 ©️ Feedforce Inc. | 本資料を無断で転用・改変・複製・第三者に開示することを禁じます。
  5. Page 006 01 従来のデータベースとベクトルデータベースの 違いは、主にデータ構造、検索・クエリ処理、 スケーラビリティの面で顕著に現れます 03 02 従来のデータベース(RDS) は、

    テーブルとしてデータを格納し、 各テーブルは行と列で構成されています。 一方でVecDB は、ベクトルとしてデータを格納します。 従来のデータベースと ベクトルデータベースの違い データ構造 検索/ クエリ処理 スケーラビリティ 従来のデータベースはSQL を用いてデータ検索 や更新が行われます。条件に合致するデータを 厳密に検索します。 一方、ベクトルデータベースでは、ベクトル間 の類似度に基づいた検索が主となります。 従来のデータベースでは、データ量やアクセス数が増える と、スケーラビリティの問題が発生しやすいです。 一方、ベクトルデータベースは、高次元データを効率的に 扱うためのインデックス構造やアルゴリズムが用いられて おり、大規模なデータセットやリアルタイムなクエリに対 応することが可能です。 2023 ©️ Feedforce Inc. | 本資料を無断で転用・改変・複製・第三者に開示することを禁じます。
  6. Page 007 01 VecDB×LLM の相乗効果 03 02 従来のデータベース(RDS) は、 テーブルとしてデータを格納し、

    各テーブルは行と列で構成されています。 一方でVecDB は、ベクトルとしてデータを格納します。 従来のデータベースと ベクトルデータベースの違い データ構造 検索/ クエリ処理 スケーラビリティ 従来のデータベースはSQL を用いてデータ検索や更新が行われます。条 件に合致するデータを厳密に検索します。 一方、ベクトルデータベースでは、ベクトル間の類似度に基づいた検索 が主となります。 従来のデータベースでは、データ量やアクセス数が増えると、スケーラビリティの問題 が発生しやすいです。 一方、ベクトルデータベースは、高次元データを効率的に扱うためのインデックス構造 やアルゴリズムが用いられており、大規模なデータセットやリアルタイムなクエリに対 応することが可能です。 高次元データの表現が可能となり、機械 学習モデルや深層学習で生成されるベク トルデータの管理が容易になる 与えられたクエリベクトルに最 も近いベクトルを効率的に検索 できる リソースの動的調整により柔軟 なスケーラビリティが実現 2023 ©️ Feedforce Inc. | 本資料を無断で転用・改変・複製・第三者に開示することを禁じます。
  7. Page 008 Why Pinecone Pinecone は、 ベクトルデータベースとして優れた特性を持ち、 機械学習や深層学習を用いたアプリケーション開発 に適した基本機能を提供しています 数十億ものアイテムがある場合でも、

    超低クエリ処理を実現できる。 データの追加、編集、削除がリアルタ イムにインデックスに反映される。こ れにより、データが常に最新の状態で 利用できるため、アプリケーションの 効率が向上する。 ベクトル検索とメタデータフィルター を組み合わせることで、より関連性の 高い検索結果を効率的に提供できる。 これにより、顧客ニーズに合わせた最 適な検索結果を短時間で得ることが可 能。 高速な検索機能 リアルタイムなデータ更新 メタデータフィルター 2023 ©️ Feedforce Inc. | 本資料を無断で転用・改変・複製・第三者に開示することを禁じます。
  8. Page 009 VecDB の最適な プラクティスとは VecDB の重要性や Pinecone の特性を紹介してきました。 ここから状況に合わせた最適なVecDB

    の設計につい て考えていきたいと思います ここからは 2023 ©️ Feedforce Inc. | 本資料を無断で転用・改変・複製・第三者に開示することを禁じます。
  9. Page 010 Organization Index Index Vector Vector Vector values( ベクトルデータ)

    Pinecone の概念 Pinecone 内に登場する概念について図を用いながら整理します id(index 内で重複なし) namespaces( グループ) metadata values id namespaces metadata values id namespaces metadata 2023 ©️ Feedforce Inc. | 本資料を無断で転用・改変・複製・第三者に開示することを禁じます。
  10. Page 011 Organization Index Vector values( ベクトルデータ) id(index 内で重複なし) namespaces(

    グループ) Pinecone の概念 Pinecone 内に登場する概念について図を用いながら整理します metadata 文字列をEmbedding したベクトルが入っている この値を用いて近似している文章などを算出する 例:[0, 1, 2, 1, 6, 7, ....] index 内で重複していない固有のID 一つのVector に対して一つのid が存在する Fetch を使用することでid をもとにVector を取得することができる Vector の集合を作成したいときに使用する query( 近い文章を検索) するときにNamespace の範囲で検索できる 例:index.query(vector=[...], namespace='sample') 様々なフォーマットがサポートされているメタ情報。 query するときに、metadata を使用してフィルタリングが可能 例:index.query(vector=[...], filter={'sample': {...}}) 2023 ©️ Feedforce Inc. | 本資料を無断で転用・改変・複製・第三者に開示することを禁じます。
  11. Page 012 Organization Index Index Vector Vector Vector values( ベクトルデータ)

    Pinecone の概念 Pinecone 内に登場する概念について図を用いながら整理します 社内プロジェクトでの使用例 id(index 内で重複なし) namespaces( どの文書か) metadata values slack_{channel}_0 slack metadata values google_doc_0_0 google_doc metadata slack_{channel} id( 文書ID) text( 本文) {message} google_doc_{doc_title} {doc_description} doc_name( どの文書か) slack google_doc 2023 ©️ Feedforce Inc. | 本資料を無断で転用・改変・複製・第三者に開示することを禁じます。
  12. Page 013 Organization Index Vector Vector values( ベクトルデータ) Pinecone の概念

    id(index 内で重複なし) namespaces( どの文書か) metadata values slack_{channel}_0 slack metadata slack_{channel} id( 文書ID) text( 本文) {message} 文書を分割している場合は それぞれに番号を 割り振りID とする( 詳細は後述) どの文書から作成した ベクトルかを区別する 特定のnamespace を 使用したいときに利用する namespace は一つしか 指定できない 複数の条件で絞り込む用に用意 doc_name( どの文書か) slack Pinecone 内に登場する概念について図を用いながら整理します 社内プロジェクトでの使用例 2023 ©️ Feedforce Inc. | 本資料を無断で転用・改変・複製・第三者に開示することを禁じます。
  13. Page 014 Index Vector values( ベクトルデータ) id(index 内で重複なし) シチュエーション別の プラクティス

    以下のシチュエーションでの適切な管理を考える この場合はあまり工夫する必要はない metadata もなくても運用まで持っていける id が重複しないようにするだけで良いが、 指定しなければ自動で割り振られる 1 つのサービスから条件分岐なしでベクトルを取得する 2023 ©️ Feedforce Inc. | 本資料を無断で転用・改変・複製・第三者に開示することを禁じます。
  14. Page 015 Index Vector values( ベクトルデータ) id(index 内で重複なし) namespaces( グループ)

    シチュエーション別の プラクティス 以下のシチュエーションでの適切な管理を考える 集合を区別できるnamespaces を それぞれのベクトルに用意する。 この場合は、query の条件に合わせて取得する 集合を変更することができる。 metadata でid を与える方法もある 1 つのサービスから1 つの集合を指定し、ベクトルを取得する 2023 ©️ Feedforce Inc. | 本資料を無断で転用・改変・複製・第三者に開示することを禁じます。
  15. Page 016 Index Vector values( ベクトルデータ) id(index 内で重複なし) namespaces( グループ)

    シチュエーション別の プラクティス 以下のシチュエーションでの適切な管理を考える namespaces では、1 つの条件しか指定できない。 複数の条件を組み合わせる場合は、 metadata の活用が必須になる。 サービスの拡張性を考慮しながら全体を 設計する必要がある。 1 つのサービスから複数の条件を指定し、ベクトルを取得する metadata 2023 ©️ Feedforce Inc. | 本資料を無断で転用・改変・複製・第三者に開示することを禁じます。
  16. Page 017 The End Thank you for watching 最後までご清聴ありがとうございました。 本日は以下のトピックについてお話ししました。

    現在進行形で抽象化が進んでいる分野のため 変化が激しいとは思いますが、 現在わかる範囲で情報をまとめました。 お役に立てれば幸いです。 八百 LEARN MORE PORTOFOLIO LLM とVecDB の重要性 通常のDB とVecDB の違い Pinecone の概要 状況別のプラクティス例 2023 ©️ Feedforce Inc. | 本資料を無断で転用・改変・複製・第三者に開示することを禁じます。