タグ

searchに関するsh19910711のブックマーク (411)

  • embeddingを用いた分析・検索・推薦の技術

    『Future Tech Night #17「embeddingの活用」と「MLOps」のAI勉強会』(https://future.connpass.com/event/231310/)で発表した資料です。

    embeddingを用いた分析・検索・推薦の技術
    sh19910711
    sh19910711 2024/05/13
    "LaBSE: 英語をpivotに109ヵ国語をベクトルへ変換可能 / USE-L: 16ヵ国語に対応 + Transformerを用いており文長Lに対しO(L^2)で動作し重いがその分精度がいい + USEに比べ14倍の実行時間 / faissに実装されているspherical kmeans" 2021
  • Matrix FactorizationとDeep Matrix Factorization(Keras)でのレコメンド - statsuのblog

    レコメンドの手法であるMatrix Factorizationについて勉強したのでその記録です。 以下の検証に関するコードはgithubにあげてあります。 github.com 1. 記事の概要 レコメンドの手法であるMatrix Factorizationについての概要 Matrix FactorizationのNeural Network形式の表現とKerasでの実装 Deep Matrix Factorizationの表現とKerasでの実装 MovieLensでの精度検証 2. Matrix Factorizationの概要 ざっくりと。 Matrix Factorizationはレコメンドの手法のひとつ。 レコメンドの参考サイト レコメンドつれづれ ~1-1. 協調フィルタリングのコンセプトを知る~ - Platinum Data Blog by BrainPad レコメンドつ

    sh19910711
    sh19910711 2024/05/10
    "KerasでDeep Matrix Factorization / Deepにするのは簡単 + どの部分をdeepにするかは工夫のしどころ / Matrix Factorizationめっちゃ強い + Deep Matrix Factorizationはポテンシャルありそうだけど、パラメータチューニングしんどい" 2019
  • 近似最近傍探索ライブラリHnswlibのRuby bindingを作った - 洋食の日記

    はじめに Hnswlibは、C++で書かれたHierarchical Navigable Small World graphsによる近似最近傍探索ライブラリである。近似最近棒探索のベンチマークでも上位に登場する。Ruby bindingがなかったので作成した。 hnswlib | RubyGems.org | your community gem host 使い方 インストールは、普通にgemコマンドでインストールできる。外部ライブラリもPythonも必要ない。 $ gem install hnswlib APIは単順にバインドしたものと、それらをラップしたAnnoyライクなHnswIndexを用意した。 検索インデックスの作成は、以下のようになる。データを追加すれば、それでグラフ構造が内部で作られるので、build_indexみたいなメソッドはない。 データベクトルはRuby Array

    近似最近傍探索ライブラリHnswlibのRuby bindingを作った - 洋食の日記
    sh19910711
    sh19910711 2024/05/10
    "Hnswlib: C++で書かれたHierarchical Navigable Small World graphsによる近似最近傍探索ライブラリ / ベンチマークではAnnoyよりも良い検索性能を得ているので、Annoyでイマイチなときに使ってみると良いかも" 2021
  • MeiliSearchを使ってみる

    MeiliSearchを最近知ったので、使い勝手などを検証するメモです。 環境 OS: Ubuntu 20.04 MeiliSearch: 0.22.0 MeiliSearchとは? meilisearch/MeiliSearch: Powerful, fast, and an easy to use search engine Rustで実装された全文検索エンジン、という認識。 メイリサーチ という読み方でいいのかな? 各プログラミング言語向けのライブラリが公式で提供されていたりしてすごい。 meilisearch/meilisearch-rails: MeiliSearch integration for Ruby on Rails meilisearch/meilisearch-ruby: Ruby SDK for the MeiliSearch API meilisearch/me

    MeiliSearchを使ってみる
    sh19910711
    sh19910711 2024/05/09
    "MeiliSearch: 各プログラミング言語向けのライブラリが公式で提供 + シンプル / API叩いてから非同期でindexing + 100万件なげるとindexがすべて作成されるまでに多少時間がかかる + 1h30m くらい" 2021
  • RAGを用いた社内情報検索システムを導入した話

    はじめに こんにちは、助太刀バックエンドチームの市川です! 助太刀では、2024 年 2 月に以下の生成 AI の活用した社内情報検索システムに関するプレスリリースを発信しました。 助太刀、生成 AI を使った社内 Wiki を開発。生成 AI の活用により社内業務の効率化を強化 今回は、その社内情報検索システムに関する LLM(大規模言語モデル)、RAG(Retrieval-Augmented Generation) を用いた検索システムの構築について紹介したいと思います。 上記プレスリリースにも記載がありますが、主に社内業務効率化を目的とし開発・導入しました。 RAG とは RAG(Retrieval-augmented Generation) とは、質問やプロンプトに対して出力する答えを作る過程で、あらかじめ用意された外部データベース内の既存情報を参照(Retrieval)することで

    RAGを用いた社内情報検索システムを導入した話
    sh19910711
    sh19910711 2024/05/09
    "社内ドキュメントの保存に基本的に Google Drive を利用 / Kendra Google Drive コネクタ: 動作が不安定 / 人事関連の迅速な情報アクセス: 結婚に伴う人事関連の手続き => 必要なフォームと詳細な申請プロセスが直ちに提供"
  • Slack経由でRAGにコードレビューを依頼するBotを作成 〜 AWS SAM編 - Qiita

    はじめに 前回の記事では、リーダブルコードの原則に従ったコードレビューを自動化できないものか・・と考えた結果、『RAGにリーダブルコードの原則を取り込ませてコードレビューをしてもらおう!!』という検証をしてみました。 検証環境の構築は AWSマネジメントコンソール を使用していましたが、今回は AWS SAM を使用して、より簡単に環境構築する方法の解説を行います。 使用するリポジトリは以下になります。 事前準備 リージョン切り替え 全ての手順は「東京リージョン」で実施することを前提としているため、AWSのマネジメントコンソールからリージョンを「東京」に変更してから手順を進めてください。 Cloud9 ローカルマシンの環境を汚さないために、Cloud9 を使用して環境構築を行います。Cloud9 には、今回の作業に必要な以下のツールが事前にインストールされているため、環境構築がスムーズに行

    Slack経由でRAGにコードレビューを依頼するBotを作成 〜 AWS SAM編 - Qiita
    sh19910711
    sh19910711 2024/05/09
    "リーダブルコードの原則を取り込ませてコードレビューをしてもらおう / Cloud9: AMTCで付与された一時クレデンシャルの権限では IAMロールやIAMポリシーに対するアクセス権限が制限"
  • ElasticsearchとNeo4jをKafkaで連携する - Qiita

    どうしてこの記事を書いたのか Elasticsearch/Neo4j 活用していらっしゃいますでしょうか? どちらも著名なデータベース(DB)ですが,その特徴・用途は異なります. Elasticsearch は文字情報の検索に強く,Neo4j は関連性を早く調べたいという場合に利用されているイメージです. 所感ですが,Neo4j でもデータのプロパティを基準にクエリをかけたいこともありますし,Elasticsearch に入っているデータ同士を紐づけたいことも往々にしてあります. しかし,愚直にそうしてしまうとスループットが低くなったり,実装に継続的な作りこみが必要だったり,なかなか考え物です. そこで,データ構造を見直しつつ何とか良いとこ取りできないかなと検討するようになりました. Neo4j と Elasticsearch の連携を行うことで, Elasticsearchに投入したデー

    ElasticsearchとNeo4jをKafkaで連携する - Qiita
    sh19910711
    sh19910711 2024/05/09
    "Neo4j でもデータのプロパティを基準にクエリをかけたい + Elasticsearch に入っているデータ同士を紐づけたい / Neo4j Connector は Sink と Source のどちらもサポート" 2022
  • Snowflake ArcticにRAGを実装してみる - Qiita

    最初に この記事は以下の2つの記事 Snowflake Arcticを試してみる 続・Chromaで埋め込みを体感してみる~日語対応編~ を組み合わせてみたメモとなります。 昨日(2024/5/6)にSnowflakeのVector EmbeddingsがPublic Preview(PuPr)になったので、RAGの実装をSnowflakeで完結させることもできるのですが、この記事ではプリミティブな方法を理解するという目的でベクトルデータベースを別途導入して接続しています。 RAGの仕組み RAGの仕組みについては、Snowflake社のBLOG Snowflake Cortexを使用した簡単かつ安全なRAGからLLMへの推論に記載されている以下の図が分かりやすいです。 大まかには以下のような流れになります。 Embedしたドキュメントをあらかじめベクトルデータベースに保存しておく ユー

    Snowflake ArcticにRAGを実装してみる - Qiita
    sh19910711
    sh19910711 2024/05/08
    "Snowflake: Vector EmbeddingsがPublic Previewに + RAGの実装をSnowflakeで完結させることもできる / 現在は指定できるのはモデルの種類とプロンプトのみ / cortex.Complete("snowflake-arctic", prompt)"
  • Solr でランキング学習を体験する | 関口宏司のLuceneブログ

    一定期間更新がないため広告を表示しています

    Solr でランキング学習を体験する | 関口宏司のLuceneブログ
    sh19910711
    sh19910711 2024/05/07
    "Solrでランキング学習というと、まもなくリリースされる Solr 6.4.0 に含まれる SOLR-8542 を思い浮かべる方もいるかもしれない / NLP4L: アクセスログからクリックモデルを計算して関連度を自動算出する方法が用意されて" 2017
  • 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
  • 高次元データに対するKNN - Qiita

    特に特殊なライブラリは用いておりません. sklearnを入れているのは,irisによって挙動を確認するためです. コード コードは以下の通りです. import numpy as np import pandas as pd from sklearn.datasets import load_iris from collections import Counter from sklearn.model_selection import train_test_split """ input: train_X: pd.DataFrame(N1, d) test_X: pd.DataFrame(N2, d) train_Y: pd.DataFrame(N1, 1) k: int output: pred_Y: np.ndarrray(N2, k) """ def calculate_simil

    高次元データに対するKNN - Qiita
    sh19910711
    sh19910711 2024/05/07
    "ユークリッド距離: 高次元空間上では,最近傍の点と,最遠傍の点の距離が近くなる + 高次元でもきちんと機能する距離を用いる必要 / ノーフリーランチ定理: 常にこの距離を用いれば良いという指針はなく" 2019
  • StepFunctionsとCommandR+でコードもプロンプトも書かずにRAGを作る - Qiita

    "result": "Anthropic Claude 3にはいくつかのモデルIDがあります。その一部を次に示します。\n\n - anthropic.claude-3-haiku-20240307-v1:0\n - anthropic.claude-3-opus-20240229-v1:0\n\n Cohere Command RのモデルIDは次のとおりです。\n\n - cohere.command-r-v1:0" 1ステップ目 1ステップ目ではユーザー入力を元にRetrieverの検索クエリを生成します。 Bedrock の InvokeModelを配置し、設定タブを以下の様にします。 基盤モデルとして Command R+ を指定し、モデルパラメーターを以下の様にします。

    StepFunctionsとCommandR+でコードもプロンプトも書かずにRAGを作る - Qiita
    sh19910711
    sh19910711 2024/05/05
    "Command R+ の登場で「プロンプトを書かないRAG」が実現できるようになった / 入力を元にRetrieverの検索クエリを生成 + ループしてナレッジベースを呼び出す + 検索結果(複数件)が格納されているのでまとめてdocumentsに設定"
  • Cohere Command R+ のクエリの書き換え機能を確認する - Qiita

    Cohere の Command R+ は RAG に最適化しているとかなんとかで幾つかの機能があります。 このうち、クエリの書き換え機能について動作を確認していきます。 Command R+とは? 以下の記事をご参照。 RAGのクエリの書き換えとは? RAGを実装する際に、ユーザーからのクエリ内容をそのままRetrieveに使うと検索効率上あまりうれしくないのは良く知られた事です(多分)。 Amazon Bedrock + Anthropic Claude 3 開発体験ワークショップ RAG編 次のステップ これを回避する為には抽象化して書くと以下のような処理が必要で、Command R+は以下の「①」「③」に適した生成モードを具備しています。 ① ユーザーの問い合わせを Retrieve に適した形に書き直す(正しく書くと、Retrieveに適したクエリを生成する) ② Retriev

    Cohere Command R+ のクエリの書き換え機能を確認する - Qiita
    sh19910711
    sh19910711 2024/05/05
    "クエリ内容をそのままRetrieveに使うと検索効率上あまりうれしくない / 「クエリの書き換え用のプロンプトを自分で考えたくない」場合は、クエリ書き換えのみCommand R+を使用するのもまたアリ"
  • Knowledge Bases for Amazon Bedrock を OpenSearch Serverless で試してみる - Qiita

    Knowledge Bases for Amazon Bedrock を OpenSearch Serverless で試してみる AWSbedrockKnowledgeBaseForAmazonBedrock はじめに Knowledge Bases for Amazon Bedrock を利用すると、会社のデータなどを利用した RAG を簡単に構成できる機能です。OpenSearch Serverless などのベクトルデータストアと連携して、データの格納、利用などを便利に利用できます。以下のような機能が提供されています。 OpenSearch Serverless の自動作成 S3 上のデータを Embedding して、ベクトルデータストアに自動的に格納 入力したテキストに紐づくデータを、ベクトルデータストアから自動的に取得して、テキストを生成 など 今回は、Knowledge B

    Knowledge Bases for Amazon Bedrock を OpenSearch Serverless で試してみる - Qiita
    sh19910711
    sh19910711 2024/05/05
    "Bedrock と OpenSearch Serverless を連携 / ファイルに対する質問ができる機能が追加されている + データストアを構築しなくても API 呼び出しが可能 / Knowledge Base に追加可能な Data source の上限 (limit) は 5 個まで"
  • [アップデート] Amazon Bedrockで新モデル「Cohere Command R/R+」が利用可能になったので、RAGで使ってみた | DevelopersIO

    [アップデート] Amazon Bedrockで新モデル「Cohere Command R/R+」が利用可能になったので、RAGで使ってみた みなさん、こんにちは! 福岡オフィスの青柳です。 Amazon Bedrockの基礎モデル (FM) で、新しいモデル「Cohere Command R」「Cohere Command R+」が利用可能になりました。 Cohere Command R and Command R+ now available in Amazon Bedrock どのようなものなのか、さっそく使ってみました。 Cohere Command R/R+ってどんなモデル? リリースノートでは、次のように説明されています。 Command R+ は、RAG やマルチステップ ツールの使用など、長いコンテキストのタスク向けに最適化された Cohere の最も強力な生成言語モデルで

    [アップデート] Amazon Bedrockで新モデル「Cohere Command R/R+」が利用可能になったので、RAGで使ってみた | DevelopersIO
    sh19910711
    sh19910711 2024/05/03
    "Knowledge bases for Amazon Bedrock: 複数のデータソースを指定できる / PDFファイルをS3バケットに配置して、ナレッジベースのデータソースに指定 / 検索のみを実行するretrieve APIが用意されている"
  • レコメンドで使用する類似アイテムをAmazon Bedrockとitem2vecで計算・比較検証してみた - コネヒト開発者ブログ

    みなさんこんにちは。MLエンジニアのたかぱい(@takapy0210)です。 最近、久しぶりに機動戦士ガンダムSEEDを見直しました。(来年には劇場版の公開もあります) 地球連合軍第7機動艦隊に所属するパイロットであるムウさんの 「君は出来るだけの力を持っているだろう?なら、出来ることをやれよ」 というセリフが好きです。 相手をリスペクトしつつ、でもお前はもっとできるだろ?という期待も込もった、良い言葉だなと感じます。 さて日は、レコメンドで使用頻度の高い類似アイテムの計算処理を2パターンで実施し、どんな差分がでるのか?を検証した結果をお話ししようと思います。 この記事はコネヒト Advent Calendarのカレンダー 10日目の記事です。 adventar.org 目次 背景 Amazon Bedrockの埋め込みモデルでベクトルを取得する item2vecで計算したベクトルを取得

    レコメンドで使用する類似アイテムをAmazon Bedrockとitem2vecで計算・比較検証してみた - コネヒト開発者ブログ
    sh19910711
    sh19910711 2024/05/03
    "EmbeddingはOpenSearchに格納し、その機能を利用して類似質問を抽出 / レコメンデーションには大きく分けて「探索 (Exploration)」と「活用 (Exploitation)」がある / 探索の主な目的は新しい知見を得ること" 2023
  • ZOZOTOWNとElasticsearchのこれまでこれから / ZOZOTOWN and Elasticsearch

    2021/02/25 第40回Elasticsearch勉強会

    ZOZOTOWNとElasticsearchのこれまでこれから / ZOZOTOWN and Elasticsearch
    sh19910711
    sh19910711 2024/05/02
    "おすすめ順: ユーザーの行動・属性を元にパーソナライズされた検索結果を返す + Function Scoreクエリで実装 + インデキシング済みのメタ情報とユーザー属性の掛け合わせ / Relevant SearchのChapter 9がオススメ" 2021
  • Vertex AI Agent Builder の検索システムを Python SDK から試してみる

    はじめに Vertex AI Agent Builder で作る検索システム Vertex AI Agent Builder(旧 Vertex AI Search & Conversation)を使用すると文書検索システムが簡単に構築できて、コンソール上のデモ用検索ポータルから検索処理が体験できます。検索キーワードの「意味」を理解して検索するセマンティックサーチを行うので、次のように微妙にタイプミスをしても、こちらの意図を汲み取って検索結果を返してくれます。また、検索結果のサマリーテキストも表示されます。 コンソールの検索ポータルで検索する例 Vertex AI Agent Builder による検索システムは、次のような構成になります。「データストア」と「検索アプリ」の2つのコンポーネントを作成して利用します。 Agent Builder による検索システムの構成図 データストアは、ドキ

    Vertex AI Agent Builder の検索システムを Python SDK から試してみる
    sh19910711
    sh19910711 2024/05/02
    "Agent Builder: Cloud Storage などのデータソースからドキュメントをインポートするとドキュメントの内容を分析して検索に必要な情報を抽出・保存 / discoveryengine.viewer: ACL を設定して検索できるユーザーを制限"
  • PandasのData FrameとElasticsearchのindexを相互変換する - Qiita

    はじめに Elasticsearchの特定のインデックスにサンプルデータを投入したい。でも手元にあるのはキー項目は共通な別々のCSVファイル。えーこれ全部手でマージすんの? それかスクリプト書く? めんどくさ。。 そんな経験みなさんにもありますよね? そんな時、(結局Pythonスクリプトは書きますが)Elandを使うとPandasのData FrameをそのままElasticsearchとやりとりできるので便利です。というかPandasが便利です。 依存ライブラリ 今回、Pythonのpandas, elasticsearch, elandの各ライブラリを使いますので、インストールされていない場合は以下のコマンドでインストールします。

    PandasのData FrameとElasticsearchのindexを相互変換する - Qiita
    sh19910711
    sh19910711 2024/05/02
    "Eland: PandasのData FrameをそのままElasticsearchとやりとりできるので便利 + 条件を絞り込んで読み込むなどの操作も可能 / Data Frameのindexになっていた日付情報が、ドキュメントIDとして格納されている" 2023
  • 複数の関連度から検索可能な BGE M3-Embedding の紹介 - Algomatic Tech Blog

    こんにちは。Algomatic の宮脇(@catshun_)です。 記事では文書検索において一部注目された BGE M3-Embedding について簡単に紹介します。 Chen+'24 - BGE M3-Embedding: Multi-Lingual, Multi-Functionality, Multi-Granularity Text Embeddings Through Self-Knowledge Distillation おことわり 記事では精読レベルの 詳細な解説は含みません。 詳細については 参照元の論文をご確認ください。 不十分また不適切な言及内容がございましたらご指摘いただけますと幸いです。 プロダクト等の利用時は 必ずライセンスや利用規約を参照して下さい。 記事で紹介する 論文 は Work in progress とコメントされており今後内容が更新される可能

    複数の関連度から検索可能な BGE M3-Embedding の紹介 - Algomatic Tech Blog
    sh19910711
    sh19910711 2024/05/02
    "ベクトル表現を用いた類似度算出に基づく検索は sparse retrieval, dense retrieval, multi-vector retrieval に大別 / M3-Embedding: これら 3 つの機能を有する高性能な埋め込みモデルとして提案" arXiv:2402.03216