Jump to content
Toggle sidebar
Marovi AI
Search
English
Create account
Personal tools
Create account
Log in
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Tools
Special pages
Printable version
In other languages
Export translations
Translate
English
Language statistics
Message group statistics
Export
More
Language statistics
Message group statistics
Export
Settings
Group
Diffusion Models Are Real-Time Game Engines
FACTS About Building Retrieval Augmented Generation-based Chatbots
Welcome
Language
aa - Afar
ab - Abkhazian
abs - Ambonese Malay
ace - Achinese
ady - Adyghe
ady-cyrl - Adyghe (Cyrillic script)
aeb - Tunisian Arabic
aeb-arab - Tunisian Arabic (Arabic script)
aeb-latn - Tunisian Arabic (Latin script)
af - Afrikaans
ak - Akan
aln - Gheg Albanian
alt - Southern Altai
am - Amharic
ami - Amis
an - Aragonese
ang - Old English
anp - Angika
ar - Arabic
arc - Aramaic
arn - Mapuche
arq - Algerian Arabic
ary - Moroccan Arabic
arz - Egyptian Arabic
as - Assamese
ase - American Sign Language
ast - Asturian
atj - Atikamekw
av - Avaric
avk - Kotava
awa - Awadhi
ay - Aymara
az - Azerbaijani
azb - South Azerbaijani
ba - Bashkir
ban - Balinese
ban-bali - ᬩᬲᬩᬮᬶ
bar - Bavarian
bbc - Batak Toba
bbc-latn - Batak Toba (Latin script)
bcc - Southern Balochi
bci - Baoulé
bcl - Central Bikol
be - Belarusian
be-tarask - Belarusian (Taraškievica orthography)
bg - Bulgarian
bgn - Western Balochi
bh - Bhojpuri
bho - Bhojpuri
bi - Bislama
bjn - Banjar
blk - Pa'O
bm - Bambara
bn - Bangla
bo - Tibetan
bpy - Bishnupriya
bqi - Bakhtiari
br - Breton
brh - Brahui
bs - Bosnian
btm - Batak Mandailing
bto - Iriga Bicolano
bug - Buginese
bxr - Russia Buriat
ca - Catalan
cbk-zam - Chavacano
cdo - Min Dong Chinese
ce - Chechen
ceb - Cebuano
ch - Chamorro
cho - Choctaw
chr - Cherokee
chy - Cheyenne
ckb - Central Kurdish
co - Corsican
cps - Capiznon
cr - Cree
crh - Crimean Tatar
crh-cyrl - Crimean Tatar (Cyrillic script)
crh-latn - Crimean Tatar (Latin script)
cs - Czech
csb - Kashubian
cu - Church Slavic
cv - Chuvash
cy - Welsh
da - Danish
dag - Dagbani
de - German
de-at - Austrian German
de-ch - Swiss High German
de-formal - German (formal address)
din - Dinka
diq - Zazaki
dsb - Lower Sorbian
dtp - Central Dusun
dty - Doteli
dv - Divehi
dz - Dzongkha
ee - Ewe
egl - Emilian
el - Greek
eml - Emiliano-Romagnolo
en - English
en-ca - Canadian English
en-gb - British English
eo - Esperanto
es - Spanish
es-419 - Latin American Spanish
es-formal - Spanish (formal address)
et - Estonian
eu - Basque
ext - Extremaduran
fa - Persian
fat - Fanti
ff - Fulah
fi - Finnish
fit - Tornedalen Finnish
fj - Fijian
fo - Faroese
fon - Fon
fr - French
frc - Cajun French
frp - Arpitan
frr - Northern Frisian
fur - Friulian
fy - Western Frisian
ga - Irish
gaa - Ga
gag - Gagauz
gan - Gan Chinese
gan-hans - Gan (Simplified)
gan-hant - Gan (Traditional)
gcr - Guianan Creole
gd - Scottish Gaelic
gl - Galician
gld - Nanai
glk - Gilaki
gn - Guarani
gom - Goan Konkani
gom-deva - Goan Konkani (Devanagari script)
gom-latn - Goan Konkani (Latin script)
gor - Gorontalo
got - Gothic
gpe - Ghanaian Pidgin
grc - Ancient Greek
gsw - Swiss German
gu - Gujarati
guc - Wayuu
gur - Frafra
guw - Gun
gv - Manx
ha - Hausa
hak - Hakka Chinese
haw - Hawaiian
he - Hebrew
hi - Hindi
hif - Fiji Hindi
hif-latn - Fiji Hindi (Latin script)
hil - Hiligaynon
ho - Hiri Motu
hr - Croatian
hrx - Hunsrik
hsb - Upper Sorbian
hsn - Xiang Chinese
ht - Haitian Creole
hu - Hungarian
hu-formal - Hungarian (formal address)
hy - Armenian
hyw - Western Armenian
hz - Herero
ia - Interlingua
id - Indonesian
ie - Interlingue
ig - Igbo
ii - Sichuan Yi
ik - Inupiaq
ike-cans - Eastern Canadian (Aboriginal syllabics)
ike-latn - Eastern Canadian (Latin script)
ilo - Iloko
inh - Ingush
io - Ido
is - Icelandic
it - Italian
iu - Inuktitut
ja - Japanese
jam - Jamaican Creole English
jbo - Lojban
jut - Jutish
jv - Javanese
ka - Georgian
kaa - Kara-Kalpak
kab - Kabyle
kbd - Kabardian
kbd-cyrl - Kabardian (Cyrillic script)
kbp - Kabiye
kcg - Tyap
kea - Kabuverdianu
kg - Kongo
khw - Khowar
ki - Kikuyu
kiu - Kirmanjki
kj - Kuanyama
kjp - Eastern Pwo
kk - Kazakh
kk-arab - Kazakh (Arabic script)
kk-cn - Kazakh (China)
kk-cyrl - Kazakh (Cyrillic script)
kk-kz - Kazakh (Kazakhstan)
kk-latn - Kazakh (Latin script)
kk-tr - Kazakh (Turkey)
kl - Kalaallisut
km - Khmer
kn - Kannada
ko - Korean
ko-kp - Korean (North Korea)
koi - Komi-Permyak
kr - Kanuri
krc - Karachay-Balkar
kri - Krio
krj - Kinaray-a
krl - Karelian
ks - Kashmiri
ks-arab - Kashmiri (Arabic script)
ks-deva - Kashmiri (Devanagari script)
ksh - Colognian
ksw - S'gaw Karen
ku - Kurdish
ku-arab - Kurdish (Arabic script)
ku-latn - Kurdish (Latin script)
kum - Kumyk
kv - Komi
kw - Cornish
ky - Kyrgyz
la - Latin
lad - Ladino
lb - Luxembourgish
lbe - Lak
lez - Lezghian
lfn - Lingua Franca Nova
lg - Ganda
li - Limburgish
lij - Ligurian
liv - Livonian
lki - Laki
lld - Ladin
lmo - Lombard
ln - Lingala
lo - Lao
loz - Lozi
lrc - Northern Luri
lt - Lithuanian
ltg - Latgalian
lus - Mizo
luz - Southern Luri
lv - Latvian
lzh - Literary Chinese
lzz - Laz
mad - Madurese
mai - Maithili
map-bms - Basa Banyumasan
mdf - Moksha
mg - Malagasy
mh - Marshallese
mhr - Eastern Mari
mi - Maori
min - Minangkabau
mk - Macedonian
ml - Malayalam
mn - Mongolian
mni - Manipuri
mnw - Mon
mo - Moldovan
mos - Mossi
mr - Marathi
mrh - Mara
mrj - Western Mari
ms - Malay
ms-arab - Malay (Jawi script)
mt - Maltese
mus - Muscogee
mwl - Mirandese
my - Burmese
myv - Erzya
mzn - Mazanderani
na - Nauru
nah - Nāhuatl
nan - Min Nan Chinese
nap - Neapolitan
nb - Norwegian Bokmål
nds - Low German
nds-nl - Low Saxon
ne - Nepali
new - Newari
ng - Ndonga
nia - Nias
niu - Niuean
nl - Dutch
nl-informal - Dutch (informal address)
nmz - Nawdm
nn - Norwegian Nynorsk
no - Norwegian
nod - Northern Thai
nov - Novial
nqo - N’Ko
nrm - Norman
nso - Northern Sotho
nv - Navajo
ny - Nyanja
nyn - Nyankole
nys - Nyungar
oc - Occitan
ojb - Northwestern Ojibwe
olo - Livvi-Karelian
om - Oromo
or - Odia
os - Ossetic
pa - Punjabi
pag - Pangasinan
pam - Pampanga
pap - Papiamento
pcd - Picard
pcm - Nigerian Pidgin
pdc - Pennsylvania German
pdt - Plautdietsch
pfl - Palatine German
pi - Pali
pih - Norfuk / Pitkern
pl - Polish
pms - Piedmontese
pnb - Western Punjabi
pnt - Pontic
prg - Prussian
ps - Pashto
pt - Portuguese
pt-br - Brazilian Portuguese
pwn - Paiwan
qqq - Message documentation
qu - Quechua
qug - Chimborazo Highland Quichua
rgn - Romagnol
rif - Riffian
rm - Romansh
rmc - Carpathian Romani
rmy - Vlax Romani
rn - Rundi
ro - Romanian
roa-tara - Tarantino
rsk - Pannonian Rusyn
ru - Russian
rue - Rusyn
rup - Aromanian
ruq - Megleno-Romanian
ruq-cyrl - Megleno-Romanian (Cyrillic script)
ruq-latn - Megleno-Romanian (Latin script)
rw - Kinyarwanda
ryu - Okinawan
sa - Sanskrit
sah - Sakha
sat - Santali
sc - Sardinian
scn - Sicilian
sco - Scots
sd - Sindhi
sdc - Sassarese Sardinian
sdh - Southern Kurdish
se - Northern Sami
se-fi - davvisámegiella (Suoma bealde)
se-no - davvisámegiella (Norgga bealde)
se-se - davvisámegiella (Ruoŧa bealde)
sei - Seri
ses - Koyraboro Senni
sg - Sango
sgs - Samogitian
sh - Serbo-Croatian
shi - Tachelhit
shi-latn - Tachelhit (Latin script)
shi-tfng - Tachelhit (Tifinagh script)
shn - Shan
shy - Shawiya
shy-latn - Shawiya (Latin script)
si - Sinhala
simple - Simple English
sjd - Kildin Sami
sje - Pite Sami
sk - Slovak
skr - Saraiki
skr-arab - Saraiki (Arabic script)
sl - Slovenian
sli - Lower Silesian
sm - Samoan
sma - Southern Sami
smn - Inari Sami
sms - Skolt Sami
sn - Shona
so - Somali
sq - Albanian
sr - Serbian
sr-ec - Serbian (Cyrillic script)
sr-el - Serbian (Latin script)
srn - Sranan Tongo
sro - Campidanese Sardinian
ss - Swati
st - Southern Sotho
stq - Saterland Frisian
sty - Siberian Tatar
su - Sundanese
sv - Swedish
sw - Swahili
syl - ꠍꠤꠟꠐꠤ
szl - Silesian
szy - Sakizaya
ta - Tamil
tay - Tayal
tcy - Tulu
tdd - Tai Nuea
te - Telugu
tet - Tetum
tg - Tajik
tg-cyrl - Tajik (Cyrillic script)
tg-latn - Tajik (Latin script)
th - Thai
ti - Tigrinya
tk - Turkmen
tl - Tagalog
tly - Talysh
tly-cyrl - толыши
tn - Tswana
to - Tongan
tpi - Tok Pisin
tr - Turkish
tru - Turoyo
trv - Taroko
ts - Tsonga
tt - Tatar
tt-cyrl - Tatar (Cyrillic script)
tt-latn - Tatar (Latin script)
tum - Tumbuka
tw - Twi
ty - Tahitian
tyv - Tuvinian
tzm - Central Atlas Tamazight
udm - Udmurt
ug - Uyghur
ug-arab - Uyghur (Arabic script)
ug-latn - Uyghur (Latin script)
uk - Ukrainian
ur - Urdu
uz - Uzbek
uz-cyrl - Uzbek (Cyrillic script)
uz-latn - Uzbek (Latin script)
ve - Venda
vec - Venetian
vep - Veps
vi - Vietnamese
vls - West Flemish
vmf - Main-Franconian
vmw - Makhuwa
vo - Volapük
vot - Votic
vro - Võro
wa - Walloon
war - Waray
wls - Wallisian
wo - Wolof
wuu - Wu Chinese
xal - Kalmyk
xh - Xhosa
xmf - Mingrelian
xsy - Saisiyat
yi - Yiddish
yo - Yoruba
yrl - Nheengatu
yue - Cantonese
za - Zhuang
zea - Zeelandic
zgh - Standard Moroccan Tamazight
zh - Chinese
zh-cn - Chinese (China)
zh-hans - Simplified Chinese
zh-hant - Traditional Chinese
zh-hk - Chinese (Hong Kong)
zh-mo - Chinese (Macau)
zh-my - Chinese (Malaysia)
zh-sg - Chinese (Singapore)
zh-tw - Chinese (Taiwan)
zu - Zulu
Format
Export for off-line translation
Export in native format
Export in CSV format
Fetch
{{DISPLAYTITLE:ビルディングリトリーバルオーグメンテッドジェネレーションベースのチャットボットに関する事実}}<languages /> '''ライセンス:''' 原作と翻訳は[https://creativecommons.org/licenses/by/4.0/ CC BY 4.0]でライセンスされています。 '''修正通知:''' このページのテキストはAIモデルまたはクラウドソーシングによって修正されています。誤りや不正確な解釈が含まれている可能性があります。 '''著者:''' ラマ・アッキラジュ、アンバン・シュ、ディーパク・ボラ、タン・ユー、ル・アン、ヴィシャル・セス、アディティア・シュクラ、プリタム・グンデチャ、ヒリダイ・メータ、アシュウィン・ジャ、プリトヴィ・ラジ、アビナヴ・バラスブラマニアン、ムラリ・マラム、グル・ムトゥサミ、シヴァケシュ・レディ・アンネパリ、シドニー・ノウルズ、ミン・ドゥ、ニック・バーネット、ショーン・ジャヴィヤ、アショク・マランナン、マムタ・クマリ、スルビ・ジャ、イーサン・デレゼンスキー、アヌパム・チャクラボルティ、スバシュ・ランジャン、アミナ・テルファイ、アヌープ・スリヤ、トレイシー・マーサー、ヴィノード・クマール・タニガチャラム、タマル・バー、サンジャナ・クリシュナン、ジャスミン・ジャクシック、ナヴェ・アルガリチ、ジェイコブ・リーバーマン、ジョーイ・コンウェイ、ソヌ・ナイヤー、ジャスティン・ボイタノ - NVIDIA - rakkiraju, anbangx, dbora@nvidia.com '''ArXivリンク:''' https://arxiv.org/abs/2407.07858v1 = 要約 = 生成AIを活用したエンタープライズチャットボットは、業界におけるこの技術の最初の応用として急速に注目を集めており、従業員の生産性向上を目指しています。生成強化型生成(RAG)、大規模言語モデル(LLM)、Langchain/LlamaindexタイプのLLMオーケストレーションフレームワークは、生成AIベースのチャットボットを構築するための主要な技術要素として機能します。しかし、成功するエンタープライズチャットボットを構築することは容易ではありません。これには、RAGパイプラインの綿密な設計が必要です。具体的には、セマンティック埋め込みとLLMの微調整、ベクターデータベースからの関連文書の抽出、クエリの言い換え、結果の再ランキング、効果的なプロンプトの設計、文書アクセス制御の遵守、簡潔な応答の提供、関連する参照の含有、個人情報の保護、これらすべての活動を調整するエージェントの構築が含まれます。本論文では、NVIDIAでの3つのチャットボット(ITおよびHRの福利厚生、企業の財務収益、一般的な企業コンテンツ)の構築経験に基づいた効果的なRAGベースのチャットボット構築フレームワークを紹介します。本論文の貢献は三つあります。第一に、RAGベースのチャットボットが直面する課題に対処するためのエンタープライズグレードのRAGベースチャットボット構築のためのFACTSフレームワークを紹介します。FACTSの頭文字は、RAGベースのチャットボットが正しく行うべき5つの次元、すなわちコンテンツの新鮮さ(F)、アーキテクチャ(A)、LLMのコスト経済性(C)、テスト(T)、セキュリティ(S)を指します。第二に、RAGパイプラインの15の制御ポイントと各段階でのチャットボットの性能を最適化するための技術を紹介します。最後に、大規模LLMと小規模LLMの間の精度と遅延のトレードオフに関する企業データからの実証結果を提示します。私たちの知る限り、これは安全なエンタープライズグレードのチャットボットを構築するための要因と解決策を包括的に示した初めての論文です。 = 1 はじめに = チャットボットは、企業内で関連情報を見つけるための検索ツールの拡張機能としてますます利用されるようになっています。人事の福利厚生、ITサポート、営業の問い合わせ、エンジニアリングの問題など、企業のチャットボットは今や生産性向上のための必須ツールとなっています。OpenAIのChat-GPT([[#bib.bib2|2]])が2022年11月に登場する前は、企業は対話フローに基づいた内部開発のチャットボットに依存していました。これらのボットは、意図の理解のために広範なトレーニングが必要で、応答生成のための綿密な調整が求められましたが、せいぜい抽出的な回答しか提供できませんでした。これらの初期のボットは、情報検索と質問応答(IRQA)ソリューションと組み合わせた対話管理システムに基づいて構築されており、脆弱で能力が限られていました。以前の世代の言語モデルやGPTモデルは存在していましたが、広範な企業利用に必要な精度、堅牢性、信頼性を欠いていました([[#bib.bib5|5]])。 Chat-GPTのリリース、ベクターデータベースの出現、そして検索強化生成(RAGs)の広範な利用([[#bib.bib8|8]])は、チャットボット領域における新しい時代の始まりを示しました。現在、LLMは自然言語のシンプルなプロンプトでユーザーの意図を理解し、複雑な意図バリアントのトレーニングを必要とせずに、企業コンテンツを一貫して合成し、スクリプト化された意図認識を超えた会話能力をチャットボットに提供します。LLMは、ユーザーの質問に対して一貫した、事実に基づいた、論理的な応答を生成する能力を持ち、ベクターデータベースを活用した情報検索(IR)システムは、LLMの新しいコンテンツを取得する能力を強化します。LangChain([[#bib.bib1|1]])やLlamaindex([[#bib.bib9|9]])のようなツールは、チャットボットの構築を容易にし、メモリ、エージェント、プロンプトテンプレート、全体のフローを含む複雑なワークフローのオーケストレーションを可能にします。ベクトル検索ベースのIRシステム、LLM、LangChainのようなフレームワークがRAGパイプラインのコアコンポーネントを形成し、Chat-GPT後の時代における生成AIチャットボットを支えています。 {| class="wikitable" |- ! チャットボット ! ドメイン ! データソース ! データタイプ ! アクセス制御 ! サンプルクエリ ! 状態 |- | NVInfo Bot | 企業内部知識 | SharePoint、GoogleDrive、Slack、Confluence、ServiceNow、Jira ''など'' | ドキュメント、HTML、PDF、スライド | はい | 本社の駐車場に一晩駐車できますか? | 早期アクセステスト |- | NVHelp Bot | ITヘルプ、HR福利厚生 | ITHelpの知識記事、HR福利厚生ページ | テキスト、PDF、ドキュメント | はい | 従業員株式購入プランに登録するには? | 本番 |- | Scout Bot | 財務収益 | 会社のニュース、ブログ、SEC提出書類、収益関連のインタビュー | HTML、PDF、ドキュメント | いいえ | 過去3年間のNVIDIAの収益は? | 本番 |} NVIDIAでは、企業向けチャットボットを構築することで従業員の生産性を向上させることを主な動機としていました。しかし、最初の熱意はすぐに多くの課題に直面しました。Chat-GPT時代の後でも、成功する企業向けチャットボットを作成することは、約束されているとはいえ、簡単ではないことを学びました。このプロセスには、RAGパイプラインの綿密な設計、LLMの微調整、プロンプトのエンジニアリング、企業知識の関連性と正確性の確保、文書アクセス制御権限の尊重、簡潔な回答の提供、関連する参照の含有、個人情報の保護が求められます。これらすべては、慎重な設計、巧みな実行、徹底的な評価を必要とし、多くの反復を要求します。さらに、ユーザーのエンゲージメントを維持しながら、速度とコスト効率を最適化することも重要です。この旅を通じて、企業向けの会話型バーチャルアシスタントを正しく作成することは、すべての音符が重要性を持つ完璧な交響曲を達成することに似ていることを学びました。 この論文では、効果的で安全かつコスト効率の高いチャットボットを構築する際の経験と戦略を共有します。実務者の視点から次の質問に答えます。 * ''企業向けの生成AIベースのチャットボットを構築および展開する際に考慮すべき主要な課題は何ですか?'' 私たちは、新鮮なコンテンツ(F)を柔軟なアーキテクチャ(A)で提供し、コスト効率が高く(C)、十分にテストされ(T)、安全(S)であることを目指した結果を発表します - (FACTS)。 * ''RAGシステムを使用してチャットボットでユーザーが受け入れられる品質レベルを達成する方法は?'' RAGパイプラインの15の制御ポイントと、各制御ポイントおよび全体のRAGパイプラインを最適化するための技術を紹介します。 = 2 ケーススタディ = 私たちの会社のコンテンツランドスケープには、権威ある知識と非権威的なコンテンツの両方が含まれています。権威あるコンテンツには、ITヘルプ記事、ServiceNowのようなプラットフォームでのHRリソース、Confluence、SharePoint、Google Drive、NVBugsやGitHubのようなエンジニアリングツールでのプロジェクトドキュメントが含まれます。従業員が生成したコンテンツは、SlackやMS Teamsのようなプラットフォームでこれらの情報源を補完します。本稿では、NVIDIAでRAGsとLLMsを使用して構築した3つのボットを紹介します。これらのボットは以下で簡単に紹介されています。3つのボットはすべて、社内で開発した生成AIチャットボットプラットフォームであるNVBotプラットフォーム上に構築されています。ボットが回答可能なクエリの一部は、表[[#S1.T1|1]]に示されています。 * '''NVInfo Bot''' は、企業コンテンツ(約5億件のドキュメント、サイズは約7TB)に関する質問に答え、イントラネット検索を補完します。多様なデータ形式を管理し、ドキュメントのアクセス制御を実施します。技術スタックには、LangChain、ベンダーのベクトルデータベース(検索とドキュメントアクセス制御のため)、LLMモデル(複数のLLMモデルを選択可能)、およびカスタムWeb-UIが含まれています。 * '''NVHelp Bot''' は、IT ヘルプと HR ベネフィットに焦点を当てています(約 2K のマルチモーダルドキュメントを含み、テキスト、表、画像、PDF、および HTML ページを含む)。NVInfo ボットと同様の技術スタックを使用していますが、データ量は少なめです。 * '''スカウトボット''' は、公開情報からの財務収益に関する質問を処理し、構造化および非構造化データ(テキスト、表、PDF、HTMLページを含む約4Kのマルチモーダルドキュメント)を管理します。技術スタックには、オープンソースのベクターデータベース、LangChain、Ragas評価、選択可能なLLMモデル、カスタムWeb-UIが含まれています。 この論文の残りの部分では、前述の3つのチャットボットを構築する際に経験した課題と得られた学びを要約したFACTSフレームワークを紹介します。まず、各チャットボットにおいて最新の企業コンテンツを提供するという課題から始めます。 <div class="mw-translate-fuzzy"> [[File:2407.07858v1.figure.1.jpg|thumb|none|479x315px|alt=図1. チャットボットを構築する際の典型的なRAGパイプラインにおける制御ポイント。|図1. チャットボットを構築する際の典型的なRAGパイプラインにおける制御ポイント。]] </div> = 3 LLMを活用したチャットボットにおける企業データの新鮮さの確保 (F) = LLMを搭載したチャットボットにおける企業データの新鮮さを確保することは、いくつかの課題を伴います。基盤モデルは強力ではあるものの、ドメイン固有や企業固有の知識が不足していることが多いです。一度訓練されると、これらのモデルは時間的に固定され、訓練されていない企業コンテンツを使用するときに、望ましくないまたは不正確な情報を提供することがあります。 検索強化生成(RAG)は、セマンティックマッチングを通じてベクターデータベースから関連情報を取得し、それをLLMに供給して応答を生成するプロセスです。RAGパイプラインでは、ベクターデータベースとLLMが協力して最新の企業知識を提供します。しかし、RAGパイプラインには多くの制御ポイントがあり、それぞれが適切に調整されていないと、チャットボットによる精度の低下、幻覚、無関係な応答を引き起こす可能性があります。さらに、文書のアクセス制御権限は検索と取得のプロセスを複雑にし、データのセキュリティと関連性を確保するための慎重な管理が必要です。また、マルチモーダルコンテンツは、プレゼンテーション、図、ビデオ、会議の録音など、構造化、非構造化、半構造化データを処理するためにマルチモーダルリトリーバーの使用を必要とします。これらの課題に対処することは、企業のチャットボットの精度と信頼性を維持するために重要です。([[#bib.bib3|3]])に触発され、我々はケーススタディからRAGの15の制御ポイントを特定し、図[[#S2.F1|1]]に視覚化しました。各制御ポイントには番号が付けられています。このセクションの残りでは、RAG制御ポイントに対処するための洞察と学びを紹介します。 == 3.1 学び == 図 [[#S3.F4|4]] では、RAG パイプラインの 15 の制御ポイントの概要説明、それぞれの制御ポイントに関連する課題、および各制御ポイントを最適化するための私たちの提案アプローチを示しています。各制御ポイントは、RAG フローと RAGOps フローに対してそれぞれ RAG-C[num] および RAG-Op[num] とラベル付けされています。以下に、新しい企業コンテンツを管理するためのいくつかの重要な学びと洞察を示します。 '''メタデータの強化、チャンク化、クエリの再構成、クエリの再ランキング''': RAGパイプラインのメタデータ強化、チャンク化、クエリの再構成、クエリの再ランキングの段階が、チャットボットの応答の質に最も影響を与えることに気付きました。LLMの応答生成の質は、検索の関連性に大きく依存しています。そして、検索の関連性は、文書のメタデータ強化、チャンク化、クエリの再構成に大きく依存しています。チャンクトークンサイズの適切な構成を見つけるためにグリッドサーチベースの自動ML機能を実装し、さまざまなプロンプトのバリエーションを試し、異なるチャンク再ランキング戦略を探求して、それぞれに最適な設定を見つけました。検索の関連性と回答の質と精度において大きな改善を遂げましたが、パイプライン全体を最適化するためには、まだやるべきことがあると考えています。 '''ハイブリッド検索''':ベクターデータベースは、エンティティの一致(例:人名、地名、会社名など)の処理があまり得意ではないことに気付きました。レキシカル検索(例:エラスティックサーチ)とベクター検索を組み合わせることで、より良い検索の関連性とカバレッジを提供できました。レキシカル検索とベースの検索の強みを組み合わせたハイブリッド検索機能をサポートするインフラストラクチャを構築することで、検索プロセスの精度と速度を向上させることができます。 <div class="mw-translate-fuzzy"> [[File:2407.07858v1.figure.2.png|thumb|none|269x90px|alt=図2. 複雑なクエリを処理するためのエージェントアーキテクチャ|図2. 複雑なクエリを処理するためのエージェントアーキテクチャ]] </div> '''エージェンティックアーキテクチャ''':『FY2024のQ1からQ4までのNVIDIAの収益を比較し、この期間中の収益変動の主な要因について分析的なコメントを提供する』といった質問には、クエリの分解とオーケストレーションが可能な複雑なエージェントが必要です。図[[#S3.F2|2]]は、Scoutボットでそのような質問に対処するために実装したメカニズムの一つを示しています。3つのボットを構築した経験から、IRシステムとLLMだけでは複雑なクエリに答えるには不十分であることがわかりました。複雑なエージェントとマルチエージェントアーキテクチャが、複雑なクエリを処理するために必要です。 '''LLMをファインチューニングするか否か?''' 重要な決定は、基盤モデルの使用とドメイン固有のカスタマイズのバランスを取るために、LLMをファインチューニングするかどうかです。LLMに関しては、一つのサイズがすべてに適合するわけではありません。基盤モデルでうまく機能するユースケースもあれば、カスタマイズが必要なものもあります。カスタマイズを検討する際には、プロンプトエンジニアリング、Pチューニング、パラメータ効率の良いファインチューニング(PEFT)、および完全なファインチューニング(FT)など、いくつかのオプションがあります。ファインチューニングには、データラベリング、トレーニング、評価への多大な投資が必要であり、それぞれが時間とコストを要する可能性があります。LLMをカスタマイズする際には、テストと品質評価プロセスの自動化が効率と精度を確保するために重要になります。図[[#S3.F3|3]]は、OpenAIのGPT-4モデルといくつかのオープンソースモデルをNVHelpボットドメインの約245のクエリで比較した際の精度対レイテンシーのトレードオフ評価を示しています。我々の結果は、Llama3-70Bモデルが回答の質のいくつかの側面で優れており、許容可能なレイテンシーを維持していることを示しています。 <div class="mw-translate-fuzzy"> [[File:2407.07858v1.figure.3.png|thumb|none|269x172px|alt=図3. NVHelpの回答品質と遅延メトリクスの異なるモデル間の比較|図3. NVHelpの回答品質と遅延メトリクスの異なるモデル間の比較]] </div> '''マルチモーダルデータの処理''': エンタープライズデータはマルチモーダルです。構造化データ、非構造化データ、マルチモーダルデータを処理することは、多用途なRAGパイプラインにとって重要です。我々の経験から、文書の構造が一貫しており、事前に知られている場合(例えば、Scoutボットが扱っていた金融収益分野のSEC提出データのEDGARデータベースに見られるようなもの)、セクションレベルでの分割を実施し、セクションタイトルや小見出しを使用してそれらをチャンクのコンテキストに組み込むことで、検索の関連性が向上します。また、Unstructured.ioのような、PDFからコンテンツを抽出し構造化することに特化したソリューションが、非構造化文書をコンテキストを持たせて解析しチャンク化する際に役立つこともわかりました。 '''RAGOps''': RAGパイプラインが展開された後、効果的な健康監視が不可欠です。回答の質が低い場合、問題が検索の関連性にあるのか、LLMの応答生成にあるのかを判断するために、徹底的なエラー分析が必要です。検索の関連性をデバッグするには、開発者はベクターデータベースに保存されたチャンクとその関連メタデータ、クエリがどのように再構成されたか、どのチャンクが取得されたか、そしてそれらのチャンクがどのようにランク付けされたかについての詳細な情報が必要です。同様に、LLMの応答が間違っている場合、回答生成に使用された最終プロンプトを確認することが重要です。引用に関する問題がある場合、開発者は元のドキュメントリンクとそれに対応するチャンクを追跡する必要があります。RAGOps/LLMOpsおよびRagasのような評価フレームワークは、RAGパイプラインの精度向上サイクル中に迅速な反復を可能にするために必要な自動化を提供するために重要です。 各制御ポイントの詳細は、図 [[#S3.F4|4]] に示されています。要約すると、有望ではあるものの、チャットボットのためのRAGシステムの実装には、データの安全で正確な取得を保証するために、綿密な計画と継続的な評価が必要です。 <div class="mw-translate-fuzzy"> [[File:2407.07858v1.figure.4.png|thumb|none|479x338px|alt=図4. RAGの制御ポイント、課題、および改善策|図4. RAGの制御ポイント、課題、および改善策]] </div> <div class="mw-translate-fuzzy"> [[File:2407.07858v1.figure.5.png|thumb|none|269x234px|alt=図5. スカウトボット:マルチパートクエリ|図5. スカウトボット:マルチパートクエリ]] </div> <div class="mw-translate-fuzzy"> [[File:2407.07858v1.figure.6.png|thumb|none|269x248px|alt=図6. NVHelp Bot: 人事福利厚生に関する質問への回答|図6. NVHelp Bot: 人事福利厚生に関する質問への回答]] </div> = 4 ジェネレーティブAIチャットボットのための柔軟なアーキテクチャの構築 (A) = AIの急速な進歩に追いつくことは、急流を航行するようなものです。ベクターデータベースや埋め込みモデルから、LLM、エージェントアーキテクチャ、ローコード/ノーコードプラットフォーム、RAG評価フレームワーク、プロンプト技術に至るまで、あらゆる側面が急速に進化しています。同時に、企業内の各部門は独自のチャットボットやAIコパイロットを構築することで生成AIを探求しています。 このダイナミックな環境では、共通で柔軟かつ適応性のあるプラットフォームを構築することが重要です。NVIDIAでは、チャットボットのエコシステムが大幅に成長しており、多くの企業でも同様の傾向が見られるでしょう。最初の3つのチャットボットを構築する中で、セキュリティ、ガードレール、認証、プロンプト、ユーザーインターフェース、フィードバックメカニズム、使用状況の報告、監視、評価において重複した努力を避けるために、共通のプラットフォームの重要性を認識しました。 これに対処するために、私たちはNVBotプラットフォーム(図[[#S4.F7|7]])を開発しました。これは、プラグイン可能なアーキテクチャを持つモジュラープラットフォームです。開発者は、使用ケースに最適なLLM、ベクターデータベース、埋め込みモデル、エージェント、およびRAG評価フレームワークを選択することができます。また、セキュリティ、ガードレール、認証、認可、ユーザーエクスペリエンス、モニタリングなどの基本機能のための共通コンポーネントも提供します。さらに、このプラットフォームは市民開発をサポートしており、複数のチームがテスト済みのプロンプト、ワークフロー、ガードレール、微調整されたモデルを共同利用のために提供することができます。 私たちのボットのエコシステムが拡大する中で、重要な疑問に直面しました。それは、組織が多くのドメイン特化型ボットを構築すべきか、単一のエンタープライズボットを構築すべきか、それともハイブリッドアプローチを取るべきかということです。ドメイン特化型チャットボットは特定の環境で優れた性能を発揮しますが、エンタープライズ全体のチャットボットはジェネラリストとして機能し、すべての従業員に中央集権的な知識ベースを提供します。私たちの経験を通じて、どちらか一方を選ぶ必要はないことに気付きました。 企業全体のチャットボットが「スイッチボード」として機能し、特定のデータに特化したボットに問い合わせを振り分けるという新しいアーキテクチャパターンが登場しています。このマルチボットアーキテクチャにより、ユーザーに統一されたインターフェースを提供しながら、特化したチャットボットの同時開発が可能になります。私たちのNVBotプラットフォームは、企業内で複数のチャットボットの共存とオーケストレーションをサポートします。単一のボットか、複数の特化したボットかという議論は続いています。私たちは、ドメイン特化型ボットが中央情報ボットと共存し、プログラミングIDEやコラボレーションツールのような職場環境に統合された生成AI機能である「コパイロット」によってサポートされる風景を想像しています。NVIDIAでは、職場の効率と情報アクセスを再構築する生成AIとして、ドメイン特化型、企業全体、コパイロットの3つのチャットボットのバリエーションを積極的に探求しています。 <div class="mw-translate-fuzzy"> [[File:2407.07858v1.figure.7.png|thumb|none|479x302px|alt=図7. 複数のチャットボットが構築されているNVBotプラットフォームのアーキテクチャ。|図7. 複数のチャットボットが構築されているNVBotプラットフォームのアーキテクチャ。]] </div> = 5 チャットボット導入のコスト経済学 (C) = 生成AIベースのチャットボットのコスト経済学を理解するには、いくつかの重要な要素が関与しています。主要な商用LLMの高コストは持続不可能であり、複数のユースケースで費用が大幅に増加する可能性があります。さらに、特定のニーズを満たすためにさまざまなLLMをテストする際に、見えない費用がしばしば蓄積されます。商用LLMベンダーのAPIを使用する場合、機密企業データを保護するためには、機密データの漏洩を検出して防ぐためのガードレールや、監査および法的に許可された学習のためのゲートウェイが必要です。また、長いコンテキスト長を持つ大規模なLLMは通常応答時間が遅く、全体的な効率に影響を与えるため、コストとレイテンシーのトレードオフも考慮する必要があります。 '''大規模モデル対小規模モデル''': 大規模な商用LLMと小規模なオープンソースLLMは、多くのユースケースにおいてますます実用的になり、企業にとってコスト効率の良い代替手段を提供しています。オープンソースモデルは大規模な商用モデルに追いつきつつあり、我々のNVHelpボットの実証評価で示されているように、精度がほぼ同等であることが増えています(図[[#S3.F3|3]])。また、一般的に大規模モデルと比較してレイテンシー性能が優れています。さらに、推論モデルのGPU最適化により処理時間をさらに短縮することができます。例えば、NVIDIAのTensor RT-LLM推論ライブラリで最適化されたオープンソースモデルは、非最適化モデルよりも高速なパフォーマンスを示しています。これらの戦略は、コスト効率の必要性と高いパフォーマンスおよびセキュリティ基準の維持を両立させるのに役立ちます。 '''LLMゲートウェイ''':ベンダーのLLM APIを使用する必要がある場合、会社全体の監査、サブスクリプション、コスト管理のために、社内のLLMゲートウェイを実装する方が良いです。社内のLLMゲートウェイを実装することで、LLMの使用、サブスクリプション、データ追跡を効率化し、セキュリティ監査を容易にします。この中央ハブは管理を簡素化し、効率的なリソース配分を保証します。NVIDIA ITでは、監査目的で入出力ペイロードを記録するLLMゲートウェイを実装しており、このデータはアクセス制御権限で保護されています。私たちのLLMゲートウェイは、LLM API呼び出しのサブスクリプションとコストの管理を支援します。 要約すると、ハイブリッドでバランスの取れたLLM戦略を開発することは、コスト管理とイノベーションの促進に不可欠です。これには、費用を管理するために小規模でカスタマイズされたLLMを使用し、LLMゲートウェイを介して大規模なLLMを用いた責任ある探求を可能にすることが含まれます。LLMのサブスクリプションとコストを追跡し、Gen-AI機能の使用状況と生産性の向上を評価することで、ROIを測定し監視することが重要です。クラウドベースのLLM使用における機密企業データのセキュリティを確保するには、データ漏洩を防ぐためのガードレールを実装し、監査や法的に許可された学習のためのLLMゲートウェイを構築する必要があります。最後に、コスト、精度、レイテンシーのトレードオフに注意し、小規模なLLMをカスタマイズして大規模モデルの精度に合わせる一方で、長いコンテキスト長を持つ大規模LLMは応答時間が長くなる傾向があることに留意してください。 = 6 RAGベースのチャットボットのテスト (T) = 生成AIソリューションのテストは、人間の応答の検証が必要なため、時間がかかることがあります。LLMは「LLM-as-a-judge」アプローチを使用してますます採用されています。しかし、LLMを人間の代理として使用する際には注意が必要です。LLMを判定者として使用すると、評価における固有のバイアスを強化する自己成就的予言のようなシナリオを引き起こす可能性があるためです。 * '''セキュリティテスト:''' セキュリティテストの自動化は、安全性を損なうことなく開発の速度を維持するために重要です。強力なセキュリティフレームワークと回帰テストデータセットは、チャットボットが潜在的な脅威に対して耐性を保つことを保証します。私たちは、チャットボットの各主要なイテレーションでテストできるデータセットを準備するために、社内のREDチームと協力しています。 * '''プロンプト変更テスト:''' 生成AIモデルはプロンプトの変更に非常に敏感です。正確性を維持するためには、プロンプトの変更ごとに完全な回帰テストが必要です。 * '''フィードバックループ:''' 収集したフィードバックとRLHFサイクルを取り入れることは、継続的な改善において極めて重要です。これにより、LLMモデルは時間とともに我々のソリューションと言語モデルの両方を洗練し、チャットボットがますます熟練することを保証します。しかし、選択した基盤モデルがカスタマイズを提供しない場合、人間のフィードバックにモデルを合わせることは困難になります。フィードバックが重要で多くの分野にわたる場合、モデルのカスタマイズが選択肢となるかもしれません。現時点では、ユーザーフィードバックの収集を開始しましたが、RLHFを使用した継続的な学習パイプラインはまだ構築していません。これを自動化するためのツールを持つことは、これらのチャットボットのポストプロダクションライフサイクル管理において重要です。 == 6.1 学び == '''長期テストサイクルの計画''': RAGベースのチャットボットを効果的にテストするには、長期的なテストサイクルを予測することが必要です。まず、テストの自動化に注力し、精度評価を強化して、この重要なフェーズを効率化しましょう。 '''代表的なグラウンドトゥルースデータセットの構築''': 対象とするソリューションの強みを完全に反映した包括的なグラウンドトゥルースデータセットを構築することが重要です。これにより、チャットボットが実際の使用状況で遭遇するシナリオに対してテストされることが保証されます。 '''評価の自動化''':LLMを評価者として活用することでスケーラブルなテストオプションを提供できますが、人間による評価の質には敵いません。自動化ツールは可能な限り補助的に使用し、人間の監督を置き換えるものではないことを忘れないでください。 '''人間のフィードバックと継続的な学習の取り入れ''': 人間のフィードバックと体系的なエラー分析を可能にするメカニズムを確立します。このフィードバックに基づいて反復的な改善を優先し、チャットボットのパフォーマンスと適応性を継続的に洗練します。 = 7 RAGベースのチャットボットのセキュリティ (S) = 生成AIチャットボットを展開する際には、信頼を築くことが最も重要です。リスクを軽減するためには、幻覚、毒性、公平性、透明性、セキュリティに対するガードレールが不可欠です。強力な基盤モデルは、これらのガードレールにおいてますます向上しています。しかし、脱獄、敵対的攻撃、その他のセキュリティ問題の可能性は依然として多く存在します。これらのセキュリティリスクとは別に、生成AIベースのチャットボットは派生リスク(以下で説明)に対しても脆弱です。私たちのボットはすべて社内のエンタープライズチャットボットであるため、エンタープライズコンテンツのセキュリティと機密データのガードレールに重点を置いてきました。以下に、RAGベースのチャットボットを保護するための経験に基づく学びと洞察をまとめます。これらの課題に対処することは、企業環境内でのRAGベースのチャットボットの整合性とセキュリティを維持するために不可欠です。 == 7.1 学び == '''エンタープライズコンテンツアクセス制御''':エンタープライズドキュメントはアクセス制御によって保護されており、RAGベースのチャットボットは応答生成時にアクセス制御リスト(ACL)に従う必要があります。このコンプライアンスを確保するために、これらのドキュメントACLを効果的に遵守する能力で知られるIR製品を特に選択しました。 '''生成AIにおける派生リスク''': チャットボットは、元のデータソースからの文脈を欠いた応答を生成する可能性があり、誤解を招く恐れがあります。さらに、強化された検索方法は、企業コンテンツが不適切に保護されている場合、機密データの露出リスクを意図せずに高める可能性があります。私たちのNVInfoボットの旅の一環として、使用したベクトル検索ソリューションが提供する機密データのフィルタリングと分類機能を活用し、取得時に機密データを自動的にフィルタリングすることに加えて、機密データのガードレールを実装しました。 '''データガバナンスとコンテンツセキュリティ''': 効率的な知識アクセスは、機密データの漏洩リスクを増加させる可能性があります。したがって、デプロイメント前にデータガバナンスを優先し、不正アクセスやデータ漏洩から保護することが重要です。NVIDIAでは、文書の機密性分類とチャットボットからの機密コンテンツの除外を目的とした企業コンテンツセキュリティイニシアチブに着手しました。 '''エンタープライズガードレール''': 生成AIの応答を特定の企業ポリシーやルールに合わせるガードレールの実装は重要です。これらのガードレールは、チャットボットが生成するコンテンツが確立された規範や倫理ガイドラインに従うことを保証し、潜在的な法的および評判の損害を防ぐのに役立ちます。NVInfoボットでは、最初にLLMプロンプトに多くのガードレールを実装しました。しかし、すべてのLLMがこれらのプロンプトに一貫して従うわけではないことに気付きました。そのため、Nemo Guardrails([[#bib.bib13|13]])を使用して、クエリと応答のそれぞれの前処理と後処理の段階でこれらのガードレールを実装しました。 = 8 関連研究 = 私たちの研究は、RAGの品質に関するさまざまなトピックについてのRAG論文と比較することができます。これには、提示したFACTSの次元(新鮮さ、アーキテクチャ、コスト、テスト、セキュリティ)に沿ったものが含まれます。スペースの制約により、選択的な研究と対比します。Barnett ''et. al.''([[#bib.bib3|3]])は、RAGシステムをエンジニアリングする際の7つの失敗点を提示しました。彼らの研究では、3つのチャットボットを構築した経験から得た知見を示し、リトリーバル強化生成を正しく行うことの課題を強調しています。Wenqi Glantz([[#bib.bib6|6]])は、12のRAGの痛点を詳述し、解決策を提示しました。私たちもチャットボットを構築する際に同様の課題を直接経験しました。しかし、これらの研究のいずれも、複雑なクエリ、テスト、文書のセキュリティの取り扱い、柔軟なアーキテクチャの必要性に関する課題については言及していません。私たちの研究では、上記のRAGの失敗/痛点に基づくだけでなく、RAGパイプラインにおける15の制御点を提示し、各段階に対する具体的な解決策を提供します。また、複雑なクエリの処理、テスト、セキュリティに関する実用的な技術を提示します。複雑なクエリ処理のためのエージェンティックアーキテクチャの実装の1つのリファレンスアーキテクチャ、主観的なクエリ応答をテストおよび評価するための戦略、文書ACLとセキュリティの取り扱いに関する意識向上を提示します。さらに、柔軟な生成AIベースのチャットボットプラットフォームのリファレンスアーキテクチャを提示します。 ChipNemo([[#bib.bib10|10]])は、ドメイン適応型言語モデルを使用してRAGのドメイン特化型質問に対するパフォーマンスを向上させる証拠を提示しています。彼らは、3,000のドメイン特化型自動生成サンプルを用いてe5-small-unsupervisedモデルを微調整しました。私たちはScout Botでe5-large埋め込みモデルの微調整を試みましたが、結果は大幅な改善を示しませんでした。現在、高品質な人間による注釈付きデータを収集して実験を繰り返しています。これは将来の研究において重要な方向性となる可能性があります。Setty ''et. al.''([[#bib.bib15|15]])によって提示されたもう一つの興味深い技術は、Hypothetical Document Embeddings(HYDE)技術を使用してRAGのパフォーマンスを向上させる方法です。HyDEは、クエリに応答する際に理論的な文書を生成し、その後、元の質問と仮説的な回答の両方で類似性検索を行います。これは有望なアプローチですが、アーキテクチャを複雑にする可能性があります。 アクティブリトリーバル拡張生成(FLARE)([[#bib.bib7|7]])は、仮想的な次の文を反復的に合成します。生成された文に低確率のトークンが含まれている場合、FLAREはその文を新しい検索クエリとして使用し、文を再生成します。Mialon ''et al.''([[#bib.bib12|12]])は、言語モデルにおける高度な拡張生成方法に関する研究をレビューしています。Self-refine([[#bib.bib11|11]])は、反復的なフィードバックと改良を通じてRAGの初期回答を改善するエージェントを構築します。ReAct([[#bib.bib16|16]])エージェントは、複雑なクエリを再帰的に処理するために広く使用されています。RAG評価の面では、RAGAS([[#bib.bib4|4]])とARES([[#bib.bib14|14]])は、LLMを審査員として利用し、RAGシステムを評価するための自動RAGベンチマークを構築します。Zhu ''et al.''([[#bib.bib17|17]])は、リトリーバー、データ生成、リライター、リーダーを含むRAGパイプラインにおけるLLMの集中的な使用法を概観しています。我々の研究が、FACTSフレームワークを通じて安全なエンタープライズグレードのチャットボットを構築するための独自の視点を提供することを信じています。 = 9 結論 = この論文では、NVIDIAで3つのチャットボットを構築した経験を強調しながら、効果的なRAGベースのチャットボットを開発するためのアプローチを紹介しました。私たちは、コンテンツの新鮮さ(F)、アーキテクチャ(A)、LLMコスト(C)の管理、テストの計画(T)、およびセキュリティ(S)の重要性を強調し、堅牢で安全なエンタープライズグレードのチャットボットを作成するためのFACTSフレームワークを概説しました。また、RAGパイプライン内の15の重要な制御ポイントを特定し、それぞれの段階でチャットボットのパフォーマンスを向上させるための戦略を提供しました。さらに、私たちの実証分析は、大規模なLLMと小規模なLLMを比較した際の精度と遅延のトレードオフを明らかにしています。この論文は、安全で効率的なエンタープライズグレードのチャットボットを構築するための重要な要素と実践的な解決策についての包括的な視点を提供し、この分野に独自の貢献をしています。効果的なRAGベースのチャットボットを構築するためには、いくつかの分野でさらなる作業が必要です。これには、複雑で多部にわたる分析的なクエリを処理するためのエージェントアーキテクチャの開発、頻繁に更新される大量のエンタープライズデータを効率的に要約すること、自動ML機能を組み込んでさまざまなRAG制御ポイントを自動的に最適化すること、主観的な応答や会話を評価するためのより堅牢な評価フレームワークの作成が含まれます。 = 参考文献 = * <span id="bib.bib1">(1)</span> Langchain. ''https://github.com/langchain-ai''. * <span id="bib.bib2">(2)</span> Achiam, J., Adler, S., Agarwal, S., Ahmad, L., Akkaya, I., Aleman, F. L., Almeida, D., Altenschmidt, J., Altman, S., Anadkat, S., 他. GPT-4技術報告. ''arXiv preprint arXiv:2303.08774'' (2023). * <span id="bib.bib3">(3)</span> Barnett, S., Kurniawan, S., Thudumu, S., Brannelly, Z., and Abdelrazek, M. 検索強化生成システムのエンジニアリングにおける7つの失敗点. ''arXiv preprint arXiv:2401.05856'' (2024). * <span id="bib.bib4">(4)</span> Es, S., James, J., Espinosa-Anke, L., and Schockaert, S. Ragas: 検索強化生成の自動評価. ''arXiv preprint arXiv:2309.15217'' (2023). * <span id="bib.bib5">(5)</span> Galitsky, B. ''エンタープライズチャットボットの開発''. Springer, 2019. * <span id="bib.bib6">(6)</span> Glantz, W. 12のRAGの痛点と提案された解決策. * <span id="bib.bib7">(7)</span> Jiang, Z., Xu, F. F., Gao, L., Sun, Z., Liu, Q., Dwivedi-Yu, J., Yang, Y., Callan, J., and Neubig, G. アクティブ検索強化生成. ''arXiv preprint arXiv:2305.06983'' (2023). * <span id="bib.bib8">(8)</span> Lewis, P., Perez, E., Piktus, A., Petroni, F., Karpukhin, V., Goyal, N., Küttler, H., Lewis, M., Yih, W.-t., Rocktäschel, T., 他. 知識集約型NLPタスクのための検索強化生成. ''Advances in Neural Information Processing Systems 33'' (2020), 9459–9474. * <span id="bib.bib9">(9)</span> Liu, J. LlamaIndex. ''https://github.com/jerryjliu/llama_index''(2022). * <span id="bib.bib10">(10)</span> Liu, M., Ene, T.-D., Kirby, R., Cheng, C., Pinckney, N., Liang, R., Alben, J., Anand, H., Banerjee, S., Bayraktaroglu, I., 他. Chipnemo: チップ設計のためのドメイン適応型LLM. ''arXiv preprint arXiv:2311.00176'' (2023). * <span id="bib.bib11">(11)</span> Madaan, A., Tandon, N., Gupta, P., Hallinan, S., Gao, L., Wiegreffe, S., Alon, U., Dziri, N., Prabhumoye, S., Yang, Y., 他. Self-refine: 自己フィードバックによる反復的洗練. ''Advances in Neural Information Processing Systems 36'' (2024). * <span id="bib.bib12">(12)</span> Mialon, G., Dessì, R., Lomeli, M., Nalmpantis, C., Pasunuru, R., Raileanu, R., Rozière, B., Schick, T., Dwivedi-Yu, J., Celikyilmaz, A., 他. 拡張言語モデル: 調査. ''arXiv preprint arXiv:2302.07842'' (2023). * <span id="bib.bib13">(13)</span> Rebedea, T., Dinu, R., Sreedhar, M., Parisien, C., and Cohen, J. Nemoガードレール: プログラム可能なレールを備えた制御可能で安全なLLMアプリケーションのためのツールキット. ''arXiv preprint arXiv:2310.10501'' (2023). * <span id="bib.bib14">(14)</span> Saad-Falcon, J., Khattab, O., Potts, C., and Zaharia, M. Ares: 検索強化生成システムのための自動評価フレームワーク. ''arXiv preprint arXiv:2311.09476'' (2023). * <span id="bib.bib15">(15)</span> Setty, S., Jijo, K., Chung, E., and Vidra, N. 金融文書におけるRAGベースの質問応答モデルの検索改善. ''arXiv preprint arXiv:2404.07221'' (2024). * <span id="bib.bib16">(16)</span> Yao, S., Zhao, J., Yu, D., Du, N., Shafran, I., Narasimhan, K., and Cao, Y. React: 言語モデルにおける推論と行動のシナジー. ''arXiv preprint arXiv:2210.03629'' (2022). * <span id="bib.bib17">(17)</span> Zhu, Y., Yuan, H., Wang, S., Liu, J., Liu, W., Deng, C., Dou, Z., and Wen, J.-R. 情報検索のための大規模言語モデル: 調査. ''arXiv preprint arXiv:2308.07107'' (2023).