タグ

*dataと近傍に関するsh19910711のブックマーク (12)

  • Neo4jでベクトル検索する方法 - Qiita

    目次 0_前置き 1_ベクトルインデックスの作成 2_ノードの作成 3_ベクトル検索の実行 4_まとめ 0_前置き Neo4jでベクトル検索ができるようになりました。 Neo4jは言わずと知れたグラフデータベースです。ノードとリレーションシップにより、ナレッジグラフを作成することができます。 ChatGPTの登場で、ベクトルデータを効率的に保存するベクトルデータベースの利用が話題になりました。ベクトルデータベースを使えば、ベクトルの類似度等を用いて値を検索することができます。 そしてそんな中、2023年8月頃に、Neo4jもベクトル検索に対応しました。 Neo4jでベクトル検索を利用する Neo4jでは、ノードのプロパティにベクトルの値を格納することで、データベース内の特定のラベルに対して、ベクトル検索を行うことができます。 公式の記事に記されたコードでは、productsラベルを持つノー

    Neo4jでベクトル検索する方法 - Qiita
    sh19910711
    sh19910711 2024/06/08
    "Neo4j: ノードのプロパティにベクトルの値を格納することで、データベース内の特定のラベルに対して、ベクトル検索 / CALL db.index.vector.createNodeIndex / CALL db.index.vector.queryNodes"
  • ベクトル検索エンジンQdrantの紹介

    はじめに これはLivesense Advent Calendar 2022 DAY 14 の記事です。 普段は主にレコメンドシステムの開発・運用をやっています。仕事ではPythonを書くことが多いです。好きな言語はRustです。この記事では、ベクトル検索エンジンQdrantを紹介します。 ベクトル検索とは そもそもベクトル検索とは何だ、という人もいると思います。簡単に言えばベクトル検索は類似するベクトルを(正確性を犠牲にして)高速に計算する技術です。 なぜそのような技術が必要になるのか簡単に説明しましょう。 なぜベクトルの類似度を計算する必要があるのか 近年、機械学習技術によって様々なものがベクトルで表現されるようになりました。典型的には画像と文書(単語)です。 「類似する画像を求める」「ユーザーが入力したワードに関連する文書を返す」「ユーザーが閲覧したアイテムに類似するアイテムのリスト

    ベクトル検索エンジンQdrantの紹介
    sh19910711
    sh19910711 2024/05/31
    "Qdrant: 複雑なフィルタリングも実現 + フィルタリングのために以下のような述語が用意 (Must, Should, Must Not, ...) / フィルタリングとHNSWを併用するための特別なチューニングを実施" 2022
  • ElasticsearchのIngest Pipelineでtext embeddingを埋め込む & サクッとKNN+BM25のHybrid Searchを試せるリポジトリを作った - ときどき起きる

    記事は情報検索・検索技術 Advent Calendar 2022の4日目の記事です。 こんにちは、pakioです。 先日のElasticON Tokyoに参加した際、とても興味深いセッションがありました。 The search for relevance with Vector Search 内容としては以下のブログと同じかと思います。 www.elastic.co ざっくり説明するとElasticsearch + Ingest Pipelineを使えば自前でMLモデルから特徴量を抽出するようなサービスを立ち上げる必要なく、ドキュメントにembeddingを埋め込めるよと言った内容の講演でした。 かつ、Ingest Pipelineを利用することで、リアルタイム更新にも対応しているという優れものです。これは試してみるしかと思い、今回はその検証を行ったリポジトリを公開・及び主要なポイント

    ElasticsearchのIngest Pipelineでtext embeddingを埋め込む & サクッとKNN+BM25のHybrid Searchを試せるリポジトリを作った - ときどき起きる
    sh19910711
    sh19910711 2024/05/23
    "自前でMLモデルから特徴量を抽出するようなサービスを立ち上げる必要なく、ドキュメントにembeddingを埋め込めるよと言った内容の講演 + リアルタイム更新にも対応 / MLノードを有効化させる必要" 2022
  • Faiss-gpuはどれぐらい速いのかcolabで試してみた - Qiita

    ご覧いただきありがとうございます。 Google Colaboratoryにアカウントをお持ちの方は、上の「Open in Colab」と書かれた青いボタンを押せば直接notebookをColabで開けます。ぜひ動かしてみてください。 過去の記事も含め、全てのコードをGithubで公開しています。 GoogleからScaNN (Scalable Nearest Neighbors)というベクトル近似近傍検索が出て、速さを売りにしています。確かにベンチマークでも結果がでています。ただ、このベンチマーク、CPUオンリーで、GPUを使う近傍検索との比較がありません。GPUが使えるといえば、Faissですね。というわけで、早速、GPUが使えるcolabで測定してみましょう。 結論を先に言うと、GPUすごく速いです。 と、その前に、ランタイムはまだGPUにしないでください。途中で切り替えないとうまく

    Faiss-gpuはどれぐらい速いのかcolabで試してみた - Qiita
    sh19910711
    sh19910711 2024/05/07
    "Faiss: GPUが使える / ann-benchmarksのglove-100-angular: Faissの中の人によるとScaNNに有利なデータ分布 / GPUのメモリに乗り切る規模であれば近似しないで総当たりするのが一番" 2022
  • 近傍探索ライブラリ「Annoy」のコード詳解 - ZOZO TECH BLOG

    はじめまして、ZOZO研究所福岡の家富です。画像検索システムのインフラ、機械学習まわりを担当しています。 今回は画像検索システムでお世話になっているAnnoyについてじっくり紹介したいと思います。 目次 目次 Annoyについて 近傍探索について Annoyのソースコードを読むときのポイント AnnoyIndexというクラスのインスタンスを作る インストール過程について PythonのC/C++拡張 Annoyの実装 1. add_item 2. build 3. get_nns_by_vector 4. build再考 他に問題となる点について CPU依存部分 ディスクかメモリか まとめ さいごに Annoyについて Annoyは、SpotifyによるPython近傍探索ライブラリです。 github.com 弊社のテックブログでも以前に取り上げています。 techblog.zozo.c

    近傍探索ライブラリ「Annoy」のコード詳解 - ZOZO TECH BLOG
    sh19910711
    sh19910711 2024/04/28
    "Annoy: バージョン1.16.0以降、Annoyは内積計算の部分でAVX512命令があるCPUにおいてはAVX512命令を使う / ビルド環境と実行環境において使用しているCPUに差が出るようなコンテナ運用などをしている場合、動かないことが" 2020
  • Pyserini(Faiss)を使ってお手軽Entity検索をやってみた! - Retrieva TECH BLOG

    こんにちは。 リサーチャーの勝又です。 私はレトリバで自然言語処理、とくに要約や文法誤り訂正に関する研究の最新動向の調査・キャッチアップなどを行っております。 今回の記事では、Pyseriniという情報検索の研究で使われるPythonライブラリの簡単な使い方、拡張方法について紹介します。 Pyseriniとは Pyseriniを使ってEntityの検索を実施する Entity検索について Pyseriniの準備について Pyseriniを動かす流れ Encodeを行う Indexingを実施する Searcherを作成する Entity検索してみる まとめ Pyseriniとは 近年、Large Language Model(LLM)の流行に伴い、Retrieval-augmented Language Modelのように、情報検索技術の需要は高まっていると思います。 たとえば、LangC

    Pyserini(Faiss)を使ってお手軽Entity検索をやってみた! - Retrieva TECH BLOG
    sh19910711
    sh19910711 2024/04/27
    "Pyserini: Anserini(Luceneベースの情報検索ツール)やFaissのインターフェイス + BM25のような古典的な手法や、Faissを利用したDense Vectorによる検索、 uniCOILやSPLADEといったSparse Vectorによる検索を動かすことができ" 2023
  • Qdrantのチュートリアルから、「Fastembedを使ってシンプルなNeural Searchサービスを作成する(Create a Neural Search Service with Fastembed)」を試す - CLOVER🍀

    これは、なにをしたくて書いたもの? 先日、Qdrantのチュートリアルから「シンプルなNeural Searchサービスを作成する(Create a Simple Neural Search Service)」を 試しました。 Qdrantのチュートリアルから、「シンプルなNeural Searchサービスを作成する(Create a Simple Neural Search Service)」を試す - CLOVER🍀 今度は、「Fastembedを使ってシンプルなNeural Searchサービスを作成する(Create a Neural Search Service with Fastembed)」を 試してみたいと思います。 Neural Search with Fastembed - Qdrant やること自体は同じでスタートアップ企業のNeural Searchなのですが、両

    Qdrantのチュートリアルから、「Fastembedを使ってシンプルなNeural Searchサービスを作成する(Create a Neural Search Service with Fastembed)」を試す - CLOVER🍀
    sh19910711
    sh19910711 2024/04/24
    "FastEmbed: 埋め込み生成を行える軽量なPythonライブラリ + デフォルトのモデルはFlagEmbeddingというもの / 現在のFastEmbedで扱えるモデルは英語と中国語に限られそう / Qdrant Clientに組み込んで使うこともできる"
  • Qdrantとdoc2vecを用いた類似アイテムの抽出

    記事では、Qdrantというベクトル検索エンジンを用いてデータベースから類似アイテムの抽出を行った事例を紹介します。 やりたいこと Mercari Price Suggestion Challenge を題材に、類似商品の抽出を行いたいと思います。 このコンテストは、メルカリに出品された商品の情報と販売額が提供され、新たな商品の販売額を予想するというものでした。 過去に売れている類似商品の情報を用いることで、新規出品の際の価格の推定に役立てられると考えています。 Qdrantとは Qdrant(クアドラント/クワドラント)は、ベクトルの類似度に基づいてデータの検索ができる「ベクトル検索エンジン」です。 Qdrant - Vector Search Engine ベクトル検索とは テキストや画像などのデータを機械学習モデルを利用してベクトルとして表現し、そのベクトル同士の類似度に基づいてデ

    Qdrantとdoc2vecを用いた類似アイテムの抽出
    sh19910711
    sh19910711 2024/04/23
    "Qdrant: JSON形式で表現できるものであればほとんどなんでも持たせることができます + マッチしたデータの詳細情報をそのままQdrantから取得することができる + ペイロードの情報を用いたフィルタ機能" 2023
  • ついに来た Firebaseでベクトル検索

    はじめに Firebaseでベクトル検索ができるようになったとのことなので、試してみました! そもそもベクトル検索って何ってところからGPTに質問しながらなんとかできた感じなので、解釈が間違っていたり説明が不十分な箇所もあるかと思いますが、こんなことができるんだという参考になれば幸いです。 今回やりたいこと ベクトル検索ができると聞き、真っ先に思い浮かんだのが去年開発したポケモン対戦記録アプリの類似対戦検索機能です。 「過去の対戦から今回の対戦相手のパーティと相手のパーティが似ている順にソートして取得する」です。 理由は説明すると長いので、興味のある人だけ読んでみてください。 なぜ似ている順にソートして取得したいか ポケモン対戦において最もよく遊ばれているルールの1つに相手と自分のパーティ6匹を見せ合って、実際に戦闘に繰り出す3匹を決めて3vs3で戦う6→3というルールがあります。 この時

    ついに来た Firebaseでベクトル検索
    sh19910711
    sh19910711 2024/04/23
    "Firestore: 2024/04/21現在Vector検索はプレビュー + Cloud Functionsからのみ利用できる / FirebaseEmulatorだとまだ対応されてないかもと思っていましたが、そんなことはなかった / CollectionReferenceに対して、findNearestでKNNクエリを記述"
  • fastTextのベクトルの類似検索でYAHOOのNGTを使う。 - 作ったもので2年に一回くらいの更新を目指す

    fasttextにWikipedia全文をべさせて遊んでいた(だいたい以下の記事の内容)。 qiita.com 「パリ - フランス + 日」とかそういうやつ(だいたい以下の記事の内容)。 antibayesian.hateblo.jp 1 0.044094 -0.020766 -0.043709 -0.28123 0.13417 0.1673 0.05862 0.22077 -0.12497 0.077398 -0.022736 ... 2 0.1059 -0.050905 -0.10932 -0.22583 0.15278 0.15993 0.034985 0.12569 -0.10522 0.09798 -0.026379 ... 3 0.010506 -0.23203 -0.083458 -0.26819 0.14723 0.2554 -0.032926 0.029112 -0

    fastTextのベクトルの類似検索でYAHOOのNGTを使う。 - 作ったもので2年に一回くらいの更新を目指す
    sh19910711
    sh19910711 2024/04/22
    "NGT: 1行に1ベクトルみたいなファイルをインデックス化 + それを使って高速に空間内の距離の検索 / 距離関数はcreateの引数で選択できる + デフォルトだとユークリッド距離" 2017
  • 8.0からのkNNはどう変わったのか / How kNN search changed in the Elasticsearch 8.0

    第46回Elasticsearch勉強会 : https://www.meetup.com/Tokyo-Elastic-Fantastics/events/283113192/

    8.0からのkNNはどう変わったのか / How kNN search changed in the Elasticsearch 8.0
    sh19910711
    sh19910711 2022/02/17
    Elasticsearch本家の方も8系でANNが使えるようになるっぽい / "HNSW AlgorithmベースのApproximate kNNのサポート / index: trueにすると、kNN Search APIで利用可能に"
  • 分散密ベクトル探索エンジンValdとSentence-BERTを使った類似文書検索を試す - エムスリーテックブログ

    エムスリーエンジニアリンググループ AI機械学習チームでソフトウェアエンジニアをしている中村(@po3rin) です。 好きな言語はGo仕事では主に検索周りを担当しています。 Overview 最近、社内で情報検索論文輪読会を立ち上げました。 情報検索論文読み会のスケジュール そこでNGT-ONNGについての論文*1を紹介したところ1時間の予定のところを盛り上がりすぎて2時間超えてしまいました。 大盛り上がりのついでに、今回は情報検索論文輪読会で紹介した近似最近傍探索ライブラリNGTを内部で利用するValdを使って、類似文書検索がどのように出来るのか、現状の問題を解決できるのかを試したのでその結果を報告します。 Overview 弊社が抱える類似文書検索の課題 Sentence-BERT Valdを使った近似最近傍探索 NGT Vald Vald×Sententce-BERTで類似文書

    分散密ベクトル探索エンジンValdとSentence-BERTを使った類似文書検索を試す - エムスリーテックブログ
    sh19910711
    sh19910711 2021/06/08
    "医療言語は表現揺れが大きく単語頻度ベースだと類似文書を出せない可能性 > 医療言語処理という本が面白い / Vald: NGTを内部で利用するスケーラブルな分散型ベクトル検索エンジン > Helmが公式から提供"
  • 1