タグ

*programとsearchに関するsh19910711のブックマーク (121)

  • 超簡単!OpenSearch MCPでClaude Codeの検索性を拡張する | 豆蔵デベロッパーサイト

    はじめに # この記事は夏のリレー連載2025 2日目の記事です。 ビジネスソリューション事業部の塚野です。 ここ数か月で爆発的に普及しているClaude Codeですが、ようやく導入しましたところそのすごさに無事ぶったまげました。 Claude CodeをはじめとするAgentic AIは、指定したファイルやフォルダを「コンテキスト」に含めて管理します。 コンテキストとは、いわばAgentic AIの「認知範囲」であり、ユーザーからの入力や会話、タスクの履歴、さらに読み込ませたファイルやAPIから取得した情報などが含まれます。これにより、Agentic AIプロジェクトに特化した回答を作成し、その内容に基づいてタスクを実行することができます。 フォルダやファイルのパスを指定すれば、それらを直接コンテキストに取り込むことも可能です。しかし、ファイル数が多かったりサイズが大きかったり、ある

    超簡単!OpenSearch MCPでClaude Codeの検索性を拡張する | 豆蔵デベロッパーサイト
    sh19910711
    sh19910711 2025/10/05
    "FESSを利用すればGitHubのリポジトリをはじめ様々な場所からのクロールも簡単に設定でき、FESS自体全文検索サービスとしても利用可能"
  • Qdrantで日本語のキーワード検索(BM25)を実装する - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事は NTTコムウェア Advent Calendar 2024 19日目 の記事です。 こんにちは、NTTコムウェアの 佐々木 哲平 です。 普段は LLM に関するプロダクト開発に携わっており、最近は RAG の精度向上や機能改善に取り組んでいます。 記事では、これまでは実現が難しかった「Qdrant に BM25 を用いた日語のキーワード検索」を導入する方法をご紹介します。 記事の要旨 記事で扱うのは「Qdrant で日語文章の BM25 検索を実装する方法」です。 Qdrant は Qdrant/bm25 + q

    sh19910711
    sh19910711 2025/10/03
    2024 / "qdrant/fastembed を使って Sparse Vector を生成することで、BM25 を使ったキーワード検索 を実現 / SPLADE モデルとは対象的に、計算コストが低く、コンテキスト長のような入力テキストの長さに制限がないのも特徴"
  • LightFMから始める推薦システム入門

    アドベントカレンダー 株式会社GENDAでデータサイエンティストをしているtoma2です。 この記事は、GENDAアドベントカレンダー2023の9日目の記事になります。 GENDAアドベントカレンダーでは、プロダクト開発や組織開発に関わるメンバーを中心に多様なテーマの記事を投稿しています。ぜひ、購読登録をしていただき12月25日までお楽しみください。 はじめに 最近、推薦モデルを調べる中でLightFMについて勉強したので、その内容をまとめとデータセットMovieLensでの実行例を示します。また、私が推薦モデルから推薦システムを作ろうとした際に躓いた、新規データへの対応やモデル更新といった実用的な内容も記載しています。 参考文献 こうもとさんのブログ「宇宙 日 世田谷 機械学習」は、lightFMの理論から実用上の細かい点まで詳しく記載されており、大変参考にさせていただきました。 Li

    LightFMから始める推薦システム入門
    sh19910711
    sh19910711 2025/09/20
    2023 / "LightFM: 名前の通り動作が軽くCPUで動き + 環境構築が比較的容易で入門に最適 / Pythonライブラリであるlightfmの完成度が非常に高い + データ形式の変換関数やloss functionなどが充実"
  • Plan-and-Execute × Elasticsearch × Ollama で“惜しい検索”を卒業する

    はじめに 「社内ドキュメントを探しても欲しい情報が見つからない...」 「全文検索は厳密な単語には強いけど、言い換えた表現が拾えない」 「ベクトル検索は幅広く拾うけど、ノイズが多すぎる」 こんな "惜しい検索体験" に悩んだことはありませんか? この記事では、Plan-and-Execute型AIエージェント と Elasticsearch(全文検索)、Qdrant(ベクトル検索) を組み合わせて、この問題を解決する検索システムの実装方法を紹介します。 特徴的なのは、Ollama(ローカルLLM) を使用することで OpenAIなしでも動作 する点です。プライバシーが重要な社内システムでも安心して使えます。 🎯 この記事で作るもの 3つの検索モードを持つ、インテリジェントな検索システムを構築します: Keyword Search - Elasticsearch による高速な全文検索 Se

    Plan-and-Execute × Elasticsearch × Ollama で“惜しい検索”を卒業する
    sh19910711
    sh19910711 2025/09/16
    "Elasticsearch(全文検索)、Qdrant(ベクトル検索) を組み合わせ / まず Elasticsearch で規程名を検索 + 不足があれば Qdrant で補完 + 重複を除外して再評価 + 根拠の抜粋付きで最終回答を生成"
  • ナレッジグラフを活用するGraphRAGを俯瞰する

    はじめに ZENKIGENデータサイエンスチーム所属の redtea です。原籍はオムロンソーシアルソリューションズ株式会社 技術創造センタですが、社外出向でZENKIGENに所属しており、数理最適化機械学習を用いたデータの分析業務、それらの結果に基づいた顧客への提案をしております[1]。所属チームでXを運用しており、AIに関する情報を発信していますのでご興味あれば覗いてみてください。 記事の構成 記事では想定読者を欲張って、GraphRAG は初めてでサクっと学びたい方から、詳しく学びたい方まで手広くしたいと思っています。そこで、最初に概論としてサクッと学べる短い章を設け、その後に詳しい説明の章が続くようにします。さらに、習うより慣れよということで、最後にハンズオン形式でナレッジグラフの構築から GraphRAG の実装までを行います。すなわち、 サクッと学びたい方は概論だけ読んで

    ナレッジグラフを活用するGraphRAGを俯瞰する
    sh19910711
    sh19910711 2025/08/11
    "GraphText: 中心ノードの Ego Network を「グラフ構文木」として変換することで、構造的かつ階層的な情報を併せ持つ形式"
  • ElasticsearchのためのSearchkickの導入 - Spacely Tech Blog

    はじめに 株式会社スペースリーのWebエンジニアの小澤です。弊社のプロダクトの中で、私は主に物件管理サービスを開発しており、物件一覧の検索基盤をAlgoliaからElasticsearchにリプレイスしました。このサービスはRuby on Railsで開発しており、稿ではElasticsearchに関わるGemとしてSearchkickを選択した理由を説明します。 Searchkickとは Searchkickは、RailsとElasticsearchまたはOpensearchを用いた検索機能の実装をサポートするGemです。Searchkickを使うと、複雑な検索クエリの組み立てを簡易化し、可読性の向上や実装コストの削減に役立ちます。また、ElasticsearchおよびOpensearchの最新バージョンにも対応しています。 ElasticsearchのGemを調査 はじめはElast

    ElasticsearchのためのSearchkickの導入 - Spacely Tech Blog
    sh19910711
    sh19910711 2025/07/28
    2024 / "Searchkick: 複雑な検索クエリの組み立てを簡易化し、可読性の向上や実装コストの削減 / Chewy: ActiveRecordライクなクエリDSLを提供し、簡潔で分かりやすいクエリを記述できる + モデルとインデックスを分離"
  • RustでTF-IDFを用いた効率的な文書検索

    なにかといろいろなところであると便利なのが検索。 だけど案外実装がめんどかったりしていままでいろんなもので実装してこなかったので、 最近初めたrustで文章検索を実装してみたお話です。 最終的にWikipedia10万件を 200ms弱で全検索できるようになります。 あと色々ガラパゴス気味です。 あと私自身適当なのでこの記事を信用しないこと。 これ約束。 基的なお話 文章検索はある文章集合の中で行い、 その文章集合を一般に corpus(コーパス) と言われています 言語がどのように使われるかを調べるためにコンピュータに保存された書かれたものまたは話されたもののコレクション 今回はそのcorpusっていう文章集合の中からqueryを用いてある文章を取り出すお話です。 なのでここでは 文章集合 => corpus 文章集合中のある文章 => doc って言いますね. またstop word

    RustでTF-IDFを用いた効率的な文書検索
    sh19910711
    sh19910711 2025/07/26
    "TFとIDFを乗算することで なんだかうまくいく / TFがほんとうに重要な単語の場合 IDFがとても高くなることは無い / IDFはコーパスすべてにおいて平等な値をもつ"
  • ソースコード問い合わせのための長コンテキストLLM向けRAG手法の提案

    IEICE KBSE 2024年5月研究会発表 2024-05-17

    ソースコード問い合わせのための長コンテキストLLM向けRAG手法の提案
    sh19910711
    sh19910711 2025/07/05
    2024 / "トレースから呼び出されている関数と呼び出しの順序を取得してプロンプトにソースコードを含める / 関数の並び順も応答の品質に影響"
  • Anthropicのリサーチエージェント開発の工夫が知見の塊だった

    2025年6月13日にAnthropicが How we built our multi-agent research system というブログ記事を公開しました。 ClaudeのResearch機能の開発の中で得られた、AIエージェント開発における実践的な知見が詰まったものとなっており大変興味深い内容でした。ClaudeのResearch機能とは、ChatGPTやGeminiのDeep Researchに相当する機能です。 また、このブログの公開と合わせて、anthropic-cookbookにてこのリサーチエージェントで利用されていると想定されるプロンプトが公開されています。(実際のプロダクト環境のプロンプトは、ここで公開された内容とは少し異なっているかもしれません。しかし、ブログ記事を読む限り、概ね公開された内容のプロンプトが稼働しているものと推測できます。) 記事では、Anth

    Anthropicのリサーチエージェント開発の工夫が知見の塊だった
    sh19910711
    sh19910711 2025/07/05
    "anthropic-cookbook / 深さ優先型質問 + 幅優先型質問 + 直接的な質問 + 質問タイプに応じた調査方法をサブエージェントに指示 / 「PDCA(Plan-Do-Check-Act)」ではなく「OODA(Observe-Orient-Decide-Act)」"
  • ブラウザ側でvector化してサーバレスっぽくQdrantで類似画像検索する

    ブラウザ上で画像をベクトル化し、Qdrantを使って類似画像検索する。TypeScriptのみでサーバレスっぽい感じの構成(Qdrantがいるのでサーバレスではない) 画像のアップロードやベクター化などをクライアント側に任せられるので、嬉しいケースはあるはず。 できたもの 実際に動かした結果はこんな感じ。Dog API Imagesの画像を入れて試している 混ぜ込んだ同じ犬の結果が出たり(背景色に引っ張られてそう)、それ以外もわりかし近いものが出てる 別の例として、CC0ライセンスの画像を使った検索でもそれっぽい感じになった やり方 Qdrant準備 とりあえず準備としてDockerを使ってQdrantをローカル環境に構築。 version: '3.8' services: qdrant: image: qdrant/qdrant:latest container_name: qdrant

    ブラウザ側でvector化してサーバレスっぽくQdrantで類似画像検索する
    sh19910711
    sh19910711 2025/06/20
    "ユーザーが選択した画像をベクトル化して、そのベクトルを使って類似する画像をQdrantから検索 / Hugging Faceのtransformersライブラリをブラウザ対応版で利用 + CLIPモデルを使って画像をvector化"
  • ソースコードgrep地獄を助けるSourceGraph - Qiita

    はじめに コードを書いている時間と比較して、コードを「理解している」時間はどれくらいかかるのでしょうか? Software社が自社サービスのユーザ約25万人から集計した結果からは、以下のようになっていました。 コードを書いている時間:56% (1日あたり平均52分) コードを「理解している」時間:44% (1日あたり平均41分) コードを「理解している」時間はコードを書いている時間に匹敵するほどになっていることがわかります。 このコードを「理解している」時間は、具体的には次のようなものがあります。 コードを表示して「読んでいる」時間 プルリクのレビューをしている時間 コードの理解のためにドキュメントを読んでいる時間 今回は上記のうちコードを表示して「読んでいる」時間を効率化できないか考えてみます。 コードを「読んでいる」時間について コードを「読んでいる」時間のよくあるケースとして、コード

    ソースコードgrep地獄を助けるSourceGraph - Qiita
    sh19910711
    sh19910711 2025/06/20
    2022 / "Software社が自社サービスのユーザ約25万人から集計した結果 / コードを「理解している」時間はコードを書いている時間に匹敵 / SourceGraph: リポジトリからソースコードをcloneし、入力した条件をもとに検索"
  • Claude Codeと征く、社内情報検索Slack botのStrands Agents対応への道(検証編) - Qiita

    import os import asyncio import logging from typing import Dict, List from dotenv import load_dotenv # slack bolt周り from slack_bolt import App from slack_bolt.adapter.socket_mode.async_handler import AsyncSocketModeHandler from slack_bolt.async_app import AsyncApp # langchain周り from langchain_aws import ChatBedrockConverse from langchain_aws import AmazonKnowledgeBasesRetriever from langchain_core

    sh19910711
    sh19910711 2025/06/11
    "元々のlangchainで実装したコードである app.py と、前節で作成したStrands Agentsのサンプルコードである test.py があるため、これらをマージするようなイメージで Claude Code に指示"
  • RAG精度向上:LLMを使ってRerankする - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 今回は、RAGの精度向上に役立つ、LLMを活用したrerank手法について紹介します。 最近読んだある記事がとても参考になりました。その記事はRAGをテーマにしたコンペの振り返り記事で、筆者が優勝した際のRetrieval戦略が詳しく解説されています。 Retrievalの最適化自体は特に斬新な方法ではなく、よく知られた手法(例えば、Parent Chunkを使った手法など)が中心でした。ただ一つ、とても興味深かったのが「通常のrerankモデルを使うよりも、LLMを用いたrerankの方が精度が高い」という筆者の発見です。 1. Re

    RAG精度向上:LLMを使ってRerankする - Qiita
    sh19910711
    sh19910711 2025/06/07
    "検索で得られた複数のchunkと質問を一緒にLLMに渡し / LLMに各chunkの関連性を評価してもらい / LLMが出したスコアと元のVector検索スコアを一定比率で組み合わせ、最終的な順位を再計算 + 特にLLMのスコアに高めの比重を与える"
  • ドメイン・業界特化RAGのためのモデル学習 - AKARI Tech Blog

    みなさんこんにちは。燈株式会社CTOの三澤です。 今回は、ドメイン・業界特化の検索拡張生成(Retrieval Augmented Generation: RAG)システム構築における言語モデルの学習について紹介します。この記事は、ドメイン特化のRAGシステム構築に興味のあるAIエンジニアを対象にしています。 TL;DR 背景 専門分野におけるRAGシステムの課題 ドメイン特化RAGシステムの概要 ドメイン特化Embeddingモデルの学習 学習条件 学習結果 ドメイン特化Rerankerモデルの学習 学習条件(Stage 1) 学習条件(Stage 2) 学習結果 最後に We’re Hiring! 参考文献 TL;DR ドメイン特化RAGシステムのために、Embedding, Rerankerの言語モデルを独自コーパスで学習 Embedding, Rerankerともに精度の向上を確認

    ドメイン・業界特化RAGのためのモデル学習 - AKARI Tech Blog
    sh19910711
    sh19910711 2025/05/27
    "「建築」と「土木」は全く異なる分野ですが、汎用モデルのベクトル検索においてこれらの分野の文章の類似スコアは非常に高い / Rerankerでは特にドメイン特化の大きな効果"
  • Llama 3.2とNeo4jでローカルGraphRAG環境を構築 - Qiita

    この記事ではWikipediaでハリーポッター(人物)の記事を元に言語モデルを用いてNeo4jにグラフデータベースを構築し、そのデータからハリーポッターに関する質問に答えさせるコードを作成します。 例えば、以下のような応答ができるプログラムを作ります。 質問:ハリー・ポッターはどのような見た目ですか? 答え:ハリー・ポッターは、額に稲形の傷があり、母親譲りの明るい緑の目をしています。父親譲りの黒髪で、膝が「がりがり」しています。丸い眼鏡をかけています。 ※Llama3.2は日語の精度があまり高くないため、全て英語でやっています。 この記事で使用したプログラム 記事で使用したプログラムはこちらに置いています。 satken2/local-llama-graphrag - Github Graph RAGについて RAG いまさら説明するものでもないですが、RAG(検索拡張生成AI)という

    Llama 3.2とNeo4jでローカルGraphRAG環境を構築 - Qiita
    sh19910711
    sh19910711 2025/05/20
    2024 / "LLMGraphTransformer: LLMがテキストからエンティティやその間の関係性を抽出し、構造化されたグラフデータを生成"
  • テキスト生成AIのRAGをGo言語とベクトルDBで実装してみた

    はじめに こんにちは。よこやんです。 株式会社バニッシュ・スタンダードという会社でサーバーサイドエンジニアをやっています。 前回はHuggingFaceのAIモデルで画像の特徴をテキスト化しようという業務外で勉強したことをブログのネタにさせていただきました。 今回も懲りずに生成AIネタでブログを書きたいと思います。 RAG(Retrieval Augmented Generation)とは? RAGという言葉をきいたことはありますか? 生成AIに興味を持っているエンジニアであれば、小耳に挟んだことくらいはあると思います。 RAGは「検索拡張生成」という意味で、生成AIがより正確な回答をするための技術です。具体的には、AIが質問に答えるとき、まず外部のデータベースから必要な情報を探し出し、その情報を基にして新しい文章を作り出す仕組みです。 RAGの仕組み RAGの働きは大きく分けて二つのステ

    テキスト生成AIのRAGをGo言語とベクトルDBで実装してみた
    sh19910711
    sh19910711 2025/05/15
    2024 / "Qdrant: 簡易なダッシュボードまで利用できる / Collections、Points、Payloadという概念 / CollectionsはRDBでいうところのテーブル、Pointsはレコード、Payloadはベクトル情報以外のカラム"
  • RAGにElasticsearchは本当に必要?PostgreSQL+pgvectorで実現したシンプルな全文・ベクトル検索|709s

    RAGにElasticsearchは当に必要?PostgreSQL+pgvectorで実現したシンプルな全文・ベクトル検索 はじめに社内でクレーム分析AI(RAG)を開発するにあたり、 当初は「やはりRAGならElasticsearchが王道だろう」と考えて、全文検索インデックスとベクトル検索の両方を構築しました。 しかし運用・学習コスト、構成の複雑さ、保守性の観点から再検討を進めた結果、 PostgreSQLの全文検索(PGroonga)+pgvectorという非常にシンプルな構成にたどり着きました。 結論から言えば、中小規模なデータ(数千〜数万件規模)であればPostgreSQL単体で十分に実用レベルです。 構成の比較 実現した機能クレームデータをall_textに統合しPGroongaで全文検索 Ollamaでembeddingを生成しpgvectorで格納 キーワード検索/ベクト

    RAGにElasticsearchは本当に必要?PostgreSQL+pgvectorで実現したシンプルな全文・ベクトル検索|709s
    sh19910711
    sh19910711 2025/05/09
    "学習コスト、構成の複雑さ、保守性の観点から再検討を進めた結果、PostgreSQLの全文検索(PGroonga)+pgvector / データをall_textに統合しPGroongaで全文検索 + Ollamaでembeddingを生成しpgvectorで格納"
  • 情報検索のための質問文作成モデル query-crafter-japanese を公開 - A Day in the Life

    情報検索で利用する、ベクトル検索・リランカーなどのニューラルネットワークモデルの学習には、質問文と回答文がペアで必要です。回答文章はなんでも良い(もちろん質が高い文章や、独自ドメインのデータなどが高品質なモデル作成につながるのですが)のですが、学習にはその回答に関連がある質問文が必要になってきます。最近のLLMの性能向上はめざましく、回答文からLLMを通して自動作成した質問文を作成することで、そのペアを学習に利用することができます。これらのLLMが自動作成するデータセットは、合成データセットとも呼ばれています。 しかし、合成データセットを作成して広く公開したい場合、OpenAIやGeminiなどの商用LLMでは、利用規約によってライセンスの問題が発生します。また、大量の文章を処理したい場合は時間・費用もかなりかかります。 そのため、1.7B〜4B という小型サイズのモデルで高速に動作しなが

    情報検索のための質問文作成モデル query-crafter-japanese を公開 - A Day in the Life
    sh19910711
    sh19910711 2025/05/08
    "1000文字程度の文章1万件から質問文1万件を生成した場合、100秒弱で作成 / オープンウェイトなLLMの登場・性能進化により、ファインチューンした用途特化の小型モデルも作成・公開しやすくなり、幅広い応用が可能に ~ "
  • Elasticsearch と On Your Data を使った RAG の実現 - VISASQ Dev Blog

    「GPT-4o」が5月にリリースされて、この記事を書く準備をしていたら、数日前に「GPT-4o mini」がリリースされて、「マジ!?」 となっている今日この頃 リモート勤務と電気代の天秤に絶賛悩んでいる 検索チームの tanker です。 (一応補足すると、会社から一律 5千円のリモート勤務手当が出ています) Azure OpenAI の On Your Data で Elasticsearch が利用可能に Azure OpenAI で RAG (※) を実現するための機能として On Your Data があります。 (※ 信頼性の高い内部のデータを使って回答を生成する仕組み) 従来は、Azure 上のリソース上に置いたデータを対象としていましたが、外部の Elasticsearch に置いたデータについても preview 版ですが サポートするようになりました。 www.elas

    Elasticsearch と On Your Data を使った RAG の実現 - VISASQ Dev Blog
    sh19910711
    sh19910711 2025/05/05
    2024 / "On Your Data: Azure OpenAI で RAG を実現するための機能 / 従来は、Azure 上のリソース上に置いたデータを対象としていましたが、外部の Elasticsearch に置いたデータについても preview 版ですが サポート"
  • pyannote.audioとOpenSearchで類似話者検索を試す - Qiita

    はじめに 朝日新聞社メディア研究開発センターの嘉田です。 最近類似話者検索を実現するために、OpenSearchのベクトル検索機能を利用して実験を行いました。音声データから抽出した話者の埋め込みベクトルを活用し、クエリとなる話者に近い既存の話者を特定します。 記事では、類似話者検索の流れを解説するとともに、OpenSearchのベクトル検索を利用する上で確認しておくとよいことをご紹介します。 ※ベクトル検索の技術説明、ベクトルデータベース比較、各アルゴリズムの技術説明は行いません。 類似話者検索の仕組み 筆者のケースでは、話者分離後の各話者に対して類似話者を検索するというフローを想定しました。そのため、既存の話者分離フローと組み合わせて次のプロセスで実現を目指しました。 1. 話者分離と話者の埋め込みベクトル生成 話者分離にはpyannote.audioというフレームワークを使用していま

    sh19910711
    sh19910711 2025/05/05
    2024 / "音声データから抽出した話者の埋め込みベクトルを活用し、クエリとなる話者に近い既存の話者を特定 / 話者分離にはpyannote.audioというフレームワークを使用"