前回のブログ記事では、Azure AI Searchのシノニム機能について機能概要などを紹介しました。 blog.jbs.co.jp 今回はREST APIを使用して、実際にシノニム機能を操作して、その検索挙動を確認します。 はじめに シノニムマップ割り当て済みのインデックスを作成する インデックスを用意する REST APIでシノニムマップを作成する フィールドに対してシノニムマップを割り当てる 検索を実行する 検索方法 検索結果と考察 クエリNo.1:America クエリNo.2:USA クエリNo.3:USA America クエリNo.4:USA + America クエリNo.5:…
RAG(Retrieval-Augmented Generation; 取得拡張生成)を利用したチャットシステム等を構築するにあたり、検索サービスであるAzure AI Searchへの需要が高まっています。 ドキュメント検索方法には、テキスト検索、ベクター検索、ハイブリッド検索などの様々なパターンがありますが、今回はテキスト検索の精度向上に寄与する「シノニム」機能に焦点を当てます。 この記事では、Azure AI Searchのシノニムの基本的な機能や検索処理の流れについて解説します。 Azure AI Searchのシノニム 用語やコンポーネントの整理 ルールの種類 同義性規則(Equiv…
こんにちは。XI 本部AIトランスフォーメーションセンター所属の山田です。 先日、部内の勉強会でAzure AI Searchについて紹介したので、テックブログでもその内容を紹介したいと思います。 Azure AI Searchとは? Azure AI Searchに保存されるデータに関する用語と概念 Azure AI Searchのスケーラビリティに関する用語と概念 Azure AI Searchでサポートされる検索の仕組み 全文検索について Azure AI Searchのアナライザー ベクトル検索について ベクトルの近傍検索アルゴリズム ハイブリッド検索 検索インデックスのスキーマ設計 …
こんにちは!オルターブースのいけだです。 気づけば、もう2月ですね。今年もあっという間の1年になりそうな気がしています😅 さて、今回はAzure AI SearchのAzure OpenAI Embedding スキルを使い、Cosmos DBとの統合をおこなってみようと思います。 目次 AI Searchとは 前提条件 インデックスの作成 スキルセットの作成 Python SDKを使って検索してみる。 セマンティックランカー機能を使って検索してみる セマンティックランカーとは? セマンティックアンサー セマンティックキャプション セマンティックランキング さいごに AI Searchとは A…
自社のデータを基に回答をさせるAzure OpenAI Serviceを利用したChatシステムを作る際の最適な方法について、今回はRAG(Retrieval Augmented Generation)の仕組みを中心に解説します。 ※ 本記事は、以前にハイブリットクラウド研究会で発表した資料をベースに、ブログ用に再編集したものとなります アプローチの比較 データを参照して回答を生成する モデルに学習させる 比較表 RAGのアーキテクチャ RAGの流れ RAGのプロンプト まとめ アプローチの比較 自社のデータを基に回答をさせるAzure OpenAI Serviceベースのチャットシステムを作…
はじめに 以前、Cosmos DBにデータを登録 → AI Searchにベクター化したデータを登録 → On Your Dataで検索する!という流れを実装しました。 (このブログではなくQiitaに試したことは投稿) qiita.com 今回は、On Your Dataを使って試していた部分をLangChainのRetrievalQAを使って同じようなことができないか試してみました。 環境 Python v3.11.1 64bit Azure AI Search Azure Open AI gpt-35-turbo text-embedding-ada-002 インストールが必要なもの a…
全体アーキテクチャ はじめに こんにちは、ACS事業部の佐竹です。 師走の年の瀬、みなさまお元気でしょうか。 私は年末のふわふわした気持ちを押し殺し、なんとか業務に励んでおります。 さて、今回ご紹介したいのは昨今話題の生成AIの利活用についてです。 ChatGPTをはじめとした生成AIブームになっていますが、生成AIを業務フローに取り入れて業務改善及び効率化を図る企業が増えてきました。 社内チャットボットやコールセンターの自動化等... 何かと利便性が高く是非導入を検討してみたいが、そのまま使用すると一般的な回答しかしてくれず、業務フローへの導入はどのようにしていいかわからないという方が多くい…
最近、OpenAIから新たにGPTsが発表され、その可能性に注目が集まっています。そこで、GPTsの機能をAzure AI Searchと組み合わせることで、新しいデータ検索が可能であるか調べてみました。 この記事では、GPTsとAzure AI Searchを連携させることによって、データアクセスと情報検索がどのように変わるか、その実践的な試みと成果についてご紹介します。 GPTsとは? Azure AI Searchの概要 Azure Web Appsの役割 データについて GPTsとAzure AI Searchを連携させた結果 GPTsをAzure AI Searchに接続する設定方法…
最近「非同期ストリーム」というのを知りました。 今回はそんな非同期ストリームについて API で利用した場合のパフォーマンスの検証結果をご紹介します。 非同期ストリームについて 検証 サーバー クライアント まとめ おわりに 非同期ストリームについて 通常データを取得するメソッドはこんな感じです。 public Item[] GetItems() { } 非同期にするとこんな感じ。 public Task<Item[]> GetItemsAsync() { } 非同期ではあるけど、必要なデータが集まるまで待たされる。集まったデータは一括で呼び出し元に返されます。 これらの方法は必要なデータを集…
エンジニアのみっつーです! 先週末に、Global Azure 2024 in Fukuokaに登壇させていただきました。 jazug.connpass.com 登壇内容紹介 私が今回お題にしたのはKernel MemoryというOSSです。 Kernel Memoryは、様々なデータソースからインデックス作成することに特化したマルチモーダルAIサービスで、例えば話題のAzure OpenAI Serviceを使ってこれまた話題のRAGアーキテクチャ実現のために様々なデータソースとの繋ぎ込みを行ってくれるようなサービスです。 github.com ざっくりポイントは下記の通りです。 Kerne…
こんにちは。Algomatic の宮脇(@catshun_)です。 本記事では文書検索において一部注目された BGE M3-Embedding について簡単に紹介します。 Chen+'24 - BGE M3-Embedding: Multi-Lingual, Multi-Functionality, Multi-Granularity Text Embeddings Through Self-Knowledge Distillation
こんにちは!Lead Engineerの筒井です。 このテックブログでも何度かテーマに上がっていますが、住友商事グループでは生成AI活用の取り組みが進んでおり、Insight Edgeもその推進を技術面から強く支援しています。 様々な取り組みがありますが、LLMの使われ方として基本的にはRAGを用いて回答を行うような、単発の特定タスクを解くというものが多いです。 今後はLLMに様々なツールを与えておき、より多様なタスクを状況に応じて自律的にこなしてもらうような、エージェント的な利用も模索していきたいと考えています。 そこで、今回は簡単な自律型のエージェントを、Prompt flowとFunct…
初めまして、株式会社ecbeing 製品開発本部 マイクロサービス開発統括部に2023年新卒で入社した高橋祐之介(のすけ)です。配属から今までクラウドサービスのPoCやLINEミニアプリの開発に携わってきました。そして、昨年10月からは当社の検索エンジン「Lightning Search(ライトニングサーチ)」の開発にも参加しています。 Lightning Search内で使用されている技術、「Azure AI Search」に関する学習を行いましたので、今回はAzure AI Searchと言うサービスについて、学習したことや実際の実行結果を本ブログで共有します。 目次 Azure AI S…
10bクラスの大規模言語モデルが、ファインチューニングを経てタスクを解けるようになるメカニズムを探るメモ XZ Utilsの脆弱性 CVE-2024-3094 についてまとめてみた Google Colab で BAAI/bge-reranker-v2-m3 を試す ローカルLLM : 最近作成したデータセットについての記録 日本語最高性能のRerankerをリリース / そもそも Reranker とは? Megatron-LMとGKEで作るMixtral 8x7Bの継続事前学習 Advanced RAG Techniques 【LLMの研究者向け】400本を超えるLLMに関する論文のリスト…
Azure AI Searchではベクトル検索の機能が利用できますが、プログラム経由で検索を行うためにテキストをそのまま渡してもベクトル検索が行えませんでした。 本記事では、プログラム経由でベクトル検索を行う手順を紹介します。 前提条件 ベクトル検索実施手順 作業概要 コンソールアプリプロジェクトの作成 必要なパッケージのインストール 検索文字列のEmbbeding ベクトル検索 おわりに 前提条件 以下の環境で実施いたしました。 Azure OpenAIリソースを作成し、「text-embedding-ada-002」をデプロイ Azure AI Searchリソースを作成し、ベクトル検索を…
データの追加 「データの追加」を開始する データソースの選択 「インデックスデータフィールドのマッピング」の設定 「データの管理」の設定 「設定のレビュー」行い完了させる プレイグランドでの動作確認 前の記事 hiro128.hatenablog.jp データの追加 チャットアプリがこれまでの手順で自動で登録されるようになったインデックスのドキュメントを含めて検索するように、Azure OpenAI Studio で「データの追加」を行います。 「データの追加」はノーコードでできるようになっているので、これまで述べた手順のように自分で Azure AI Search にインデックスのドキュメン…
0.1-1B程度の日本語・大規模言語モデルを作る練習日記 Swallow on mistral Swallow-MX: Mixtral日本語継続事前学習MoEモデル Azure AI Searchを使ったマルチモーダルRAGの実現 LLMOpsを推進!Azure Log Analyticsを活用したLLMの継続的な監視と改善 Retrieval-Augmented Generation for AI-Generated Content: A Survey NLP2024 チュートリアル3 作って学ぶ日本語大規模言語モデル - 環境構築手順と実験ソースコード izumi-lab/llm-japa…
RAG(Retrieval Augmented Generation)で、ドキュメントの検索対象をユーザー権限に応じて制限して回答生成させたい場合の仕組みについて説明します。 概要 実装 ADLSにファイルをアップロードし、ACLを設定する Pythonでインデックスを作成する 検証 権限ある状態での検索 権限がない状態での検索 まとめ 概要 Azure Data Lake Storage Gen2(以下ADLS)にはACLによるアクセス制御をすることができます。 このACLを利用して、各ファイルに付与されているACLのoidをもとにAzure AI Search(以下AI Search)の検…
こんにちは!電通総研AITC のAIソリューショングループ太田です。 このコラムでは、Azure AI Searchを用いたマルチモダール検索とマルチモダールRAGについて紹介します。 マルチモダール検索はGPT-4V登場以前から存在する技術です。 昨年のGPT-4Vの登場により、マルチモーダル検索結果に基づくRAGが実現できるようになり、今マルチモーダルRAGがホットになっています。 マルチモーダルRAGは、通常のRAGと同じく、参考となる情報をLLMに読み込ませることで、LLMが本来持っていない知識を利用して文章生成する技術です。 通常のRAGと違い、マルチモーダルLLMを利用することで、…
overview products AI and Machine Learning - Azure Services | Microsoft Azure Azure Analytics Services | Microsoft Azure Azure Compute—Virtualization and Scalability | Microsoft Azure Azure Databases - Types of Databases on Azure | Microsoft Azure Developer Tools | Microsoft Azure DevOps Technologies…
仕事で差をつけるChatGPT活用術。初心者でも使えるテクニックを達人に聞く 論文検索GPTs6選+純正ブラウジング(Bing)の比較 マルチモーダルLLM時代のベンチマークから見たGPT-4VとGeminiの比較 Power Query でクエリを関数化する方法 KARAKURI LM を ELYZA-tasks-100 で評価してみた KARAKURI-LM-70bをOllamaで動かしてみる 継続のコツは「わざわざ見に行く」をなくすこと。はてなフロントエンドエキスパートmizdraの情報収集術 AIベンダーを活用しきれず、PoCを失敗させていないか?事業会社が回避すべきアンチパターン 弊…