自分用の整理・勉強会用として作成した解説資料です。内容の正確性については保証しかねますので必ず論文を参照してください。誤りや引用漏れ等がありましたら @catshun_ までご指摘いただけますと幸いです。
![Retrieval-based LM (RAG system) ざっくり理解する](https://cdn-ak-scissors.b.st-hatena.com/image/square/3ea2fdf7cfde6635fd129f98c5303ffe17eba22e/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2F0ce621504be249f8bc9855edcb2781e6%2Fslide_0.jpg%3F29518227)
こんにちは。NEO(x) 機械学習エンジニアの宮脇(@catshun_)です。 RAG システムの開発、いざ業務に統合するとなると結構大変ですよね。 構築してみたがユーザ数が伸びず、、なんてことはよくあると思います。 実際こんな記事も話題になりましたね。 本記事では、コラムとして RAG システムの設計で考慮したい点を自戒を込めて記述したいと思います。 誤っている記述等もあると思いますが、本記事を読んだ方の議論のネタになってくれれば幸いです。 また Retrieval-based LM の技術的な話は、以下で触れておりますので併せてご覧ください。 RAG とは RAG (Retrieval-Augmented Generation) とは、社内文書・長期記憶に該当する対話履歴・API 仕様書などの 外部知識資源 を、言語モデルが扱えるよう入力系列に挿入する手法です。もともと Lewis+'
三菱総合研究所(MRI)とPKUTECHの2社は生成AI(人工知能)による問い合わせ対応業務の品質向上と効率化を図るシステムを開発した。既存のFAQ(よくある質問)を要約して回答する「FAQ要約回答」と、マニュアルなどに基づいて新しいFAQを生成して回答する「FAQ自動生成」という2つの技術を組み合わせる。2024年4月24日に発表した。 本システムはまず、FAQ要約回答を用いて問い合わせに対する1次回答を即時に出力する。FAQの要約だけでは回答できない場合はその旨を出力する。続いて、業務マニュアルや過去の応答ログなどを参照するFAQ自動生成によって、より詳細で正確な2次回答を出力する。2段階の回答を行うことで、問い合わせに対する高速なレスポンスと、難しい質問に対する的確な回答を両立させる狙いだ。 FAQ要約回答とFAQ自動生成はいずれも、大規模言語モデル(LLM)の外部にある情報に基づい
2.3k{icon} {views} 複数のLLM(GPT/Claude3)とArxivの検索APIをRAGで統合し、論文サーベイの自動生成を作りました。検索結果の前処理や、サーベイ特有のプロンプトエンジニアリングやソートが重要で、最適化手法として古くからある巡回セールスマン問題(TSP)が有効に機能しました。また、生成部分ではGPTよりClaude3の明確な有効性を確認できました。 できたもの Arxivの検索APIを使って検索拡張生成(RAG)したらサーベイを自動生成できた やっていること Arxivの検索ワードをGPT-4-Turboで生成 ArxivのAPIを叩いてヒューリスティックでフィルタリング OpenAIのEmbedding APIを叩く Embeddingに対して巡回セールスマン問題(TSP)を解いてソートをかける 論文の要旨をGPT-3.5-Turboで要約 ソートした
Retrieval-Augmented Generation (RAG) merges retrieval methods with deep learning advancements to address the static limitations of large language models (LLMs) by enabling the dynamic integration of up-to-date external information. This methodology, focusing primarily on the text domain, provides a cost-effective solution to the generation of plausible but incorrect responses by LLMs, thereby enha
PythonからAzure AI Searchのシノニムマップを作成し、クエリ拡張をして、その効果を日本語の質問応答データセットで確認してみました。昔からある機能で、とくに何か新しいことをしているわけでもないのですが、使いそうな機会があったので試してみました。 本記事の構成は以下のとおりです。 シノニムマップ シノニムマップの作成 インデックスの作成 実験設定 実験結果 参考資料 シノニムマップ 記法は、Apache SolrのSynonymFilterの仕様に準拠しています[1]。Solrのドキュメントを読む限り、現在ではSynonymFilterは非推奨で、代わりにSynonymGraphFilterを使うことが推奨されていますが、為す術もないのでそのまま使います。2つの違いについては[2]がわかりやすいです。SynonymFilterでは、以下の2種類の規則をサポートしています。 同
Rewrite-Retrieve-Readの論文[1]の構成で検索性能が改善するか試してみました。内容としては、RAGの内部で検索するときに、ユーザーのクエリを書き換えると性能が上がるという話です。ユーザーのクエリが検索に適しているとは限らないため、LLMで書き換えてから検索しようというアイデアになります。論文では、強化学習を使って書き換え用のモデルを学習する検証もしていますが、既存のLLMに書き換えさせても効果があるという結果になっています。 Rewrite-Retrieve-Readの構成。画像は[1]より。今回は真ん中の構成を採用。 本実験では、GPT-3.5 Turboを利用して、元のクエリを書き換えたときの検索性能の検証結果を紹介します。このアプローチが、実際の検索シナリオでどのように機能するかを、日本語のQAデータセットを用いて評価しました。記事の構成は以下のとおりです。 実験
はじめに 新規事業部 生成AIチーム 山本です。 ChatGPT(OpenAI API)をはじめとしたAIの言語モデル(Large Language Model:以下、LLM)を使用して、チャットボットを構築するケースが増えています。通常、LLMが学習したときのデータに含まれている内容以外に関する質問には回答ができません。そのため、例えば社内システムに関するチャットボットを作成しようとしても、素のLLMでは質問に対してわからないという回答や異なる知識に基づいた回答が(当然ながら)得られてしまいます。 この問題を解決する方法として、Retrieval Augmented Generation(以下、RAG)という手法がよく使用されます。RAGでは、ユーザからの質問に回答するために必要そうな内容が書かれた文章を検索し、その文章をLLMへの入力(プロンプト)に付け加えて渡すことで、ユーザが欲しい
近年、OpenAIのGPT-4やGoogleのGemini、MetaのLLaMAをはじめとする大規模言語モデル(Large Language Model:LLM)の能力が大幅に向上し、自然言語処理において優れた結果を収めています[1][2][3]。これらのLLMは、膨大な量のテキストデータで学習されており、さまざまな自然言語処理タスクにおいて、タスクに固有なデータを用いてモデルをファインチューニングすることなく、より正確で自然なテキスト生成や、複雑な質問への回答が可能となっています。 LLM-jp-eval[4]およびMT-bench-jp[5]を用いた日本語LLMの評価結果。Nejumi LLMリーダーボード Neoより取得。 大規模言語モデルは近年急速な進歩を遂げていますが、これらの進歩にもかかわらず、裏付けのない情報や矛盾した内容を生成する点においては依然として課題があります。たとえ
【2024年】チャットボットのおすすめ10ツール(全101製品)を徹底比較!満足度や機能での絞り込みも チャットボットとは、ユーザーとテキストベースで会話を行うプログラムのことです。チャットボットは、メッセンジャーアプリやウェブサイト上で動作し、ユーザーからの質問や要求に自動で応答します。 チャットボットの主な機能は、ユーザーの入力を解析し、適切な情報を提供することです。あらかじめ用意された知識ベースや、外部のデータソースと連携することで、ユーザーのニーズに合った回答を返すことができます。 また、チャットボットはユーザーとの対話を通じて、ユーザーの行動や嗜好に関するデータを収集することも可能です。収集したデータを分析することで、ユーザーのニーズをより深く理解し、一人ひとりに合わせたサービスの提供につなげることができます。 近年、チャットボットは様々な業界で活用され、顧客サポートや販売促進、
はじめに 本記事では、RAG (Retrieval-Augmented Generation) の精度改善に焦点を当てて、一般的に行われている RAG の問題点と、それらを解決するために LangChain が提案した発展的な RAG の概要について紹介します。 また、本記事はlanghchain の開発ブログを参考にしています。 RAG とは RAG(Retrieval-Augmented Generation)は、情報の検索(Retrieval)と生成(Generation)を組み合わせることで、よりコンテキストに基づいた回答を可能にするためのアーキテクチャです。 RAG のアーキテクチャは、通常 2 つの主要なコンポーネントで構成されます。 Retriever Retriever は、大規模なテキストデータベースやウェブ上の情報を検索して、入力された質問やクエリに関連するコンテ
こんにちは。Supership プロダクト統括部の @ps010 です。 普段は広告・マーケティング領域で、分析業務や広告セグメントの作成を担当しています。 はじめに 今年は、自然言語の生成AIに注目が集まりましたね。私の所属チームでもLLMを用いた生産性向上に取り組んでますが、個人的には、QAボットに使われる RAG に関心があります。少し前まで夫がカスタマーサポート勤務だったのですが、人手不足のせいか残業が多かったので、QAボットで効率化できないものか?と思い、興味を持ち始めました。 RAGを調べると、簡単にはよい回答が得られないようなので、今回は、RAGのサンプルを作って、どこが精度向上のポイントになるのか解明していきたいと思います。 記事の目的 この記事は、RAGの仕組みと改善ポイントの把握を目的とします。サンプルデータを用いて改善案の実験を行い、ベースラインと結果を比較します。記
こちらの記事はForget RAG, the Future is RAG-Fusionを噛み砕いて解釈したものをまとめたものになります。詳細(一次情報)が欲しい方は元の記事を読むことをお勧めします。 概要 RAG Fusionは単なる「新たな手法」ではなく「革新的な手法」です。 RAG Fusionは、従来の検索技術の制約を克服し、ユーザーのクエリに対してより豊かで文脈に即した結果を生成するために、RAG、Reciprocal Rank Fusion、生成されたクエリを組み合わせた新しいシステムになっています。 このシステムは、検索結果のリランキングと複数のユーザークエリ生成により、検索の正確性とユーザーの意図との一致を向上させることを目指した手法となっています。 RAGの課題 RAGにはHallucinationの軽減など、多くの利点がある一方で課題もあります。 RAG Fusion開発
それでは以下、簡単なデモを含めながら個別に説明していきます。 1. ハイブリッドサーチ こちらは、性質の異なる複数の検索方式(例えばベクトル検索とキーワード検索)を組み合わせて検索精度を向上させる手法になります。 各検索方式単体の場合に比べ、性質の異なる検索方式を組み合わせ、ある種いいとこ取りをする事で、検索性能の向上が期待できます。 今回はBM25でのキーワードベースの類似度検索と通常のベクトル検索を組み合わせていきます。 BM25について簡単に説明しておくと、文脈や文章構造は完全に無視した上で、文書内の単語を全てバラバラに分割し、文書内の各単語の出現頻度と文書間におけるレア度を加味した特徴量を算出します。 つまり、特定の文書内の各単語の数をカウントしてヒストグラムを作れば、似たような文書には同じような単語がよく出るはずなので(同じようなヒストグラムの形になるので)、類似度が高くなる性質
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く