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:FATOS Sobre a Construção de Chatbots Baseados em Geração Aumentada por Recuperação}}<languages /> '''Licença:''' O trabalho original e as traduções estão licenciados sob [https://creativecommons.org/licenses/by/4.0/ CC BY 4.0]. '''Aviso de modificação:''' O texto nesta página foi modificado por modelos de IA ou crowdsourcing. Pode haver erros ou interpretações imprecisas. """Autores:""" Rama Akkiraju, Anbang Xu, Deepak Bora, Tan Yu, Lu An, Vishal Seth, Aaditya Shukla, Pritam Gundecha, Hridhay Mehta, Ashwin Jha, Prithvi Raj, Abhinav Balasubramanian, Murali Maram, Guru Muthusamy, Shivakesh Reddy Annepally, Sidney Knowles, Min Du, Nick Burnett, Sean Javiya, Ashok Marannan, Mamta Kumari, Surbhi Jha, Ethan Dereszenski, Anupam Chakraborty, Subhash Ranjan, Amina Terfai, Anoop Surya, Tracey Mercer, Vinodh Kumar Thanigachalam, Tamar Bar, Sanjana Krishnan, Jasmine Jaksic, Nave Algarici, Jacob Liberman, Joey Conway, Sonu Nayyar, e Justin Boitano - NVIDIA - rakkiraju, anbangx, dbora@nvidia.com '''Link do ArXiv:''' https://arxiv.org/abs/2407.07858v1 = Resumo = Os chatbots empresariais, impulsionados por IA generativa, estão rapidamente emergindo como as aplicações iniciais mais exploradas dessa tecnologia na indústria, com o objetivo de aumentar a produtividade dos funcionários. A Geração Aumentada por Recuperação (RAG), Modelos de Linguagem de Grande Escala (LLMs), e frameworks de orquestração de LLMs do tipo Langchain/Llamaindex servem como componentes tecnológicos chave na construção de chatbots baseados em IA generativa. No entanto, construir chatbots empresariais bem-sucedidos não é fácil. Eles exigem uma engenharia meticulosa dos pipelines de RAG. Isso inclui o ajuste fino de embeddings semânticos e LLMs, extração de documentos relevantes de bancos de dados vetoriais, reformulação de consultas, reclassificação de resultados, design de prompts eficazes, respeito aos controles de acesso a documentos, fornecimento de respostas concisas, inclusão de referências pertinentes, proteção de informações pessoais e construção de agentes para orquestrar todas essas atividades. Neste artigo, apresentamos uma estrutura para construir chatbots eficazes baseados em RAG com base em nossa experiência prática na construção de três chatbots na NVIDIA: chatbots para benefícios de TI e RH, ganhos financeiros da empresa e conteúdo empresarial geral. Nossas contribuições neste artigo são três. Primeiro, introduzimos nossa estrutura FACTS para construir chatbots empresariais baseados em RAG que abordam os desafios mencionados. O mnemônico FACTS refere-se às cinco dimensões que os chatbots baseados em RAG devem acertar - a saber, frescor do conteúdo (F), arquiteturas (A), economia de custos dos LLMs (C), testes (T) e segurança (S). Em segundo lugar, apresentamos quinze pontos de controle dos pipelines de RAG e técnicas para otimizar o desempenho dos chatbots em cada estágio. Finalmente, apresentamos resultados empíricos de nossos dados empresariais sobre as compensações entre precisão e latência entre grandes LLMs e pequenos LLMs. Até onde sabemos, este é o primeiro artigo desse tipo que fornece uma visão holística dos fatores, bem como soluções para construir chatbots empresariais seguros. = 1 Introdução = Os chatbots estão se tornando cada vez mais uma extensão das ferramentas de busca nas empresas para encontrar informações relevantes. Seja para benefícios de RH, ajuda de TI, consultas de vendas ou questões de engenharia, os chatbots empresariais são agora ferramentas de produtividade indispensáveis. Antes do lançamento do Chat-GPT da OpenAI ([[#bib.bib2|2]]) em novembro de 2022, as empresas dependiam de chatbots desenvolvidos internamente com base em fluxos de diálogo. Esses bots exigiam um treinamento extenso para compreensão de intenções e uma orquestração meticulosa para a geração de respostas e, ainda assim, só podiam fornecer respostas extrativas na melhor das hipóteses. Esses primeiros bots, construídos em sistemas de gerenciamento de diálogo emparelhados com soluções de recuperação de informações e resposta a perguntas (IRQA), eram frágeis e limitados em capacidade. Embora modelos de linguagem de gerações anteriores e modelos GPT existissem, eles careciam da precisão, robustez e confiabilidade necessárias para um uso amplo em empresas ([[#bib.bib5|5]]). O lançamento do Chat-GPT, o surgimento de bancos de dados vetoriais e o uso generalizado de geração aumentada por recuperação (RAGs) ([[#bib.bib8|8]]) marcaram o início de uma nova era no domínio dos Chatbots. Agora, os LLMs podem entender as intenções dos usuários com prompts simples em linguagem natural, eliminando a necessidade de treinamento complexo de variantes de intenção, sintetizar conteúdo empresarial de forma coerente, capacitando assim os chatbots com capacidade de conversação além do reconhecimento de intenções roteirizadas. Enquanto os LLMs trazem suas capacidades generativas para construir respostas coerentes, factuais e lógicas às consultas dos usuários, os sistemas de recuperação de informações (IR) alimentados por bancos de dados vetoriais aumentam a capacidade dos LLMs de recuperar conteúdo atualizado. Ferramentas como LangChain ([[#bib.bib1|1]]) e Llamaindex ([[#bib.bib9|9]]) facilitam a construção de chatbots e a orquestração de fluxos de trabalho complexos, incluindo memória, agentes, modelos de prompts e fluxo geral. Juntos, os sistemas de IR baseados em busca vetorial, LLMs e frameworks como LangChain formam componentes centrais de um pipeline RAG e estão impulsionando chatbots de IA generativa na era pós-Chat-GPT. {| class="wikitable" |- ! Chatbot ! Domínio ! Fontes de Dados ! Tipos de Dados ! Controle de Acesso ! Consultas de Exemplo ! Estado |- | NVInfo Bot | Conhecimento Interno da Empresa | SharePoint, GoogleDrive, Slack, Confluence, ServiceNow, Jira ''etc.'' | Docs, HTML, PDFs, Slides | Sim | Posso estacionar durante a noite nos estacionamentos da sede? | Teste de Acesso Antecipado |- | NVHelp Bot | Ajuda de TI, Benefícios de RH | Artigos de Conhecimento para Ajuda de TI, páginas de benefícios de RH | Texto, PDFs, Docs | Sim | Como se inscrever no plano de compra de ações para funcionários? | Produção |- | Scout Bot | Resultados Financeiros | Notícias da empresa, blogs, registros da SEC, entrevistas relacionadas a ganhos | HTML, PDFs, Docs | Não | Quais são as receitas da NVIDIA nos últimos 3 anos? | Produção |} Na NVIDIA, nossa principal motivação foi melhorar a produtividade dos nossos funcionários através da construção de chatbots empresariais. Nosso entusiasmo inicial rapidamente encontrou a realidade de enfrentar inúmeros desafios. Aprendemos que criar um chatbot empresarial bem-sucedido, mesmo na era pós-Chat-GPT, embora promissor, não é fácil. O processo exige uma engenharia meticulosa de pipelines RAG, ajuste fino de LLMs e engenharia de prompts, garantindo a relevância e precisão do conhecimento empresarial, respeitando as permissões de controle de acesso a documentos, fornecendo respostas concisas, incluindo referências pertinentes e protegendo informações pessoais. Tudo isso requer um design cuidadoso, execução habilidosa e avaliação minuciosa, exigindo muitas iterações. Além disso, manter o engajamento do usuário enquanto se otimiza para velocidade e eficiência de custos é essencial. Ao longo da nossa jornada, aprendemos que acertar um assistente virtual conversacional empresarial é como alcançar uma sinfonia perfeita onde cada nota tem significado! Neste artigo, compartilhamos nossas experiências e estratégias na construção de chatbots eficazes, seguros e econômicos. Respondemos às seguintes perguntas do ponto de vista de um profissional: * ''Quais são os principais desafios a considerar ao construir e implantar chatbots baseados em IA generativa de nível empresarial?'' Apresentamos nossas descobertas ao tentar entregar conteúdo novo (F) com arquiteturas flexíveis (A) que são econômicas (C), bem testadas (T) e seguras (S) - (FACTS). * ''Como alcançar níveis aceitáveis de qualidade para o usuário com sistemas RAG na construção de chatbots?'' Apresentamos os quinze pontos de controle das pipelines RAG e técnicas para otimizar cada ponto de controle e a pipeline RAG como um todo. = 2 Estudo de Caso = O cenário de conteúdo da nossa empresa inclui tanto conhecimento autoritativo quanto conteúdo não autoritativo. O conteúdo autoritativo abrange artigos de ajuda de TI, recursos de RH em plataformas como ServiceNow e documentação de projetos no Confluence, SharePoint, Google Drive e ferramentas de engenharia como NVBugs e GitHub. O conteúdo gerado por funcionários complementa essas fontes em plataformas como Slack e MS Teams. Neste artigo, apresentamos três bots que desenvolvemos na NVIDIA usando RAGs e LLMs. Esses bots são brevemente introduzidos abaixo. Todos os três bots são construídos na nossa plataforma interna de chatbot de IA generativa chamada plataforma NVBot. Algumas das consultas que nossos bots são capazes de responder estão mostradas na Tabela [[#S1.T1|1]]. * '''NVInfo Bot''' responde a perguntas sobre conteúdo empresarial (aproximadamente 500 milhões de documentos com tamanho ≈ 7 TB), complementando a busca na intranet. Ele gerencia formatos de dados diversos e aplica controles de acesso a documentos. A pilha tecnológica inclui LangChain, um banco de dados vetorial de fornecedor para recuperação e para lidar com controles de acesso a documentos, modelo LLM (vários modelos LLM podem ser selecionados) e uma interface web personalizada. * '''NVHelp Bot''' foca-se em ajuda de TI e benefícios de RH (aproximadamente 2 mil documentos multimodais contendo texto, tabelas, imagens, PDFs e páginas HTML), utilizando uma pilha tecnológica semelhante à do NVInfo bot, mas com um volume de dados menor. * '''Scout Bot''' lida com perguntas sobre ganhos financeiros de fontes públicas, gerenciando dados estruturados e não estruturados (aproximadamente 4 mil documentos multimodais contendo texto, tabelas, PDFs e páginas HTML). A pilha tecnológica inclui um banco de dados vetorial de código aberto, LangChain, avaliação Ragas, modelos LLM selecionáveis e uma interface web personalizada. No restante do artigo, apresentamos nossa estrutura FACTS que resume os desafios enfrentados e os aprendizados adquiridos na construção dos três chatbots mencionados. Começamos com o desafio de lidar com a entrega de conteúdo empresarial atualizado em cada um dos chatbots. <div class="mw-translate-fuzzy"> [[File:2407.07858v1.figure.1.jpg|thumb|none|479x315px|alt=Figura 1. Pontos de Controle em um pipeline RAG típico ao construir Chatbots.|Figura 1. Pontos de Controle em um pipeline RAG típico ao construir Chatbots.]] </div> = 3 Garantindo a Atualidade dos Dados Empresariais em Chatbots com LLM (F) = Garantir a atualidade dos dados empresariais em chatbots alimentados por LLM apresenta vários desafios. Os modelos de base, embora poderosos, muitas vezes falham por não possuírem conhecimento específico de domínio e de empresa. Uma vez treinados, esses modelos ficam essencialmente congelados no tempo e podem alucinar, fornecendo informações indesejadas ou imprecisas quando usados em conteúdos empresariais para os quais não foram treinados. A Geração Aumentada por Recuperação (RAG) é um processo onde informações relevantes são recuperadas de bancos de dados vetoriais através de correspondência semântica e, em seguida, alimentadas para LLMs para geração de respostas. Em um pipeline RAG, bancos de dados vetoriais e LLMs colaboram para garantir a entrega de conhecimento empresarial atualizado. No entanto, pipelines RAG possuem muitos pontos de controle, cada um dos quais, quando não ajustado adequadamente, pode levar a menor precisão, alucinações e respostas irrelevantes por Chatbots. Além disso, permissões de controle de acesso a documentos complicam o processo de busca e recuperação, exigindo uma gestão cuidadosa para garantir a segurança e relevância dos dados. Ademais, o conteúdo multimodal exige o uso de recuperadores multimodais para lidar com dados estruturados, não estruturados e semi-estruturados, incluindo apresentações, diagramas, vídeos e gravações de reuniões. Abordar esses desafios é crítico para manter a precisão e confiabilidade dos chatbots empresariais. Inspirados por ([[#bib.bib3|3]]), identificamos quinze pontos de controle de RAG a partir de nossos estudos de caso visualizados na Figura [[#S2.F1|1]]. Cada ponto de controle é rotulado com um número. No restante desta seção, apresentamos nossas percepções e aprendizados para abordar os pontos de controle de RAG. == 3.1 Aprendizados == Na figura [[#S3.F4|4]], apresentamos uma descrição resumida dos quinze pontos de controle dos pipelines RAG, os desafios associados a cada ponto de controle e nossas abordagens sugeridas para otimizar cada ponto de controle. Cada ponto de controle é rotulado como RAG-C[num] e RAG-Op[num] para os fluxos RAG e RAGOps, respectivamente. Abaixo, apresentamos algumas aprendizagens e insights chave para gerenciar o conteúdo empresarial atualizado. '''Enriquecimento de Metadados, Fragmentação, Reformulação de Consultas, Reclassificação de Consultas''': Notamos que as etapas de enriquecimento de metadados, fragmentação, reformulação de consultas e reclassificação de consultas do pipeline RAG têm o maior impacto na qualidade das respostas do Chatbot. A qualidade da geração de respostas do LLM é altamente dependente da relevância da recuperação. A relevância da recuperação, por sua vez, depende muito do enriquecimento de metadados dos documentos, da fragmentação e da reformulação de consultas. Implementamos capacidades de auto-ML baseadas em busca em grade para encontrar as configurações corretas de tamanhos de tokens de fragmentos, experimentamos várias variações de prompts e exploramos diferentes estratégias de reclassificação de fragmentos para encontrar as configurações ideais para cada um. Embora tenhamos feito melhorias significativas na relevância da recuperação e na qualidade e precisão das respostas, acreditamos que ainda temos mais trabalho a fazer para otimizar todo o pipeline. '''Pesquisa Híbrida''': Notamos que os bancos de dados vetoriais não são tão bons em lidar com entidades correspondentes (por exemplo, nomes de pessoas, lugares, nomes de empresas, etc.). Usar uma combinação de pesquisa lexical (por exemplo, elastic search) e pesquisa vetorial proporcionou melhor relevância na recuperação e maior cobertura. Configurar uma infraestrutura que suporte capacidades de pesquisa híbrida, que combine as forças das pesquisas baseadas em léxico e em vetores, pode melhorar a precisão e a velocidade do processo de recuperação. <div class="mw-translate-fuzzy"> [[File:2407.07858v1.figure.2.png|thumb|none|269x90px|alt=Figura 2. Arquitetura do agente para lidar com consultas complexas|Figura 2. Arquitetura do agente para lidar com consultas complexas]] </div> '''Arquiteturas Agenciais''': Perguntas como 'compare a receita da NVIDIA do Q1 ao Q4 do FY2024 e forneça um comentário analítico sobre os principais fatores que contribuíram para as mudanças nas receitas durante esse período' exigem agentes complexos capazes de decomposição e orquestração de consultas. A Figura [[#S3.F2|2]] mostra um mecanismo que implementamos para lidar com tais perguntas no bot Scout. A partir da nossa experiência na construção dos três bots, percebemos que os sistemas de IR e LLMs são insuficientes para responder a consultas complexas. Agentes complexos e arquiteturas multiagentes são necessários para lidar com consultas complexas. '''Ajustar ou não ajustar os LLMs?''' Uma decisão crucial é se deve ajustar os LLMs, equilibrando o uso de modelos fundamentais com personalizações específicas de domínio. Um único modelo não atende a todas as necessidades quando se trata de LLMs. Alguns casos de uso podem funcionar bem com modelos fundamentais, enquanto outros exigem personalização. Ao considerar a personalização, várias opções estão disponíveis, incluindo engenharia de prompts, P-tuning, ajuste fino eficiente em parâmetros (PEFT) e ajuste fino completo (FT). O ajuste fino requer um investimento significativo em rotulagem de dados, treinamento e avaliações, cada um dos quais pode ser demorado e caro. Automatizar os processos de teste e avaliação de qualidade torna-se crítico para garantir eficiência e precisão ao personalizar LLMs. A Figura [[#S3.F3|3]] mostra as avaliações de tradeoff entre precisão e latência que fizemos comparando o modelo GPT-4 da OpenAI com alguns dos modelos de código aberto em cerca de 245 consultas do domínio do bot NVHelp. Nossos resultados mostram que o modelo Llama3-70B se destaca em vários aspectos da qualidade das respostas, mantendo uma latência aceitável. <div class="mw-translate-fuzzy"> [[File:2407.07858v1.figure.3.png|thumb|none|269x172px|alt=Figura 3. Comparação de métricas de qualidade e latência de resposta do NVHelp entre diferentes modelos|Figura 3. Comparação de métricas de qualidade e latência de resposta do NVHelp entre diferentes modelos]] </div> '''Manipulação de dados multimodais''': Os dados empresariais são multimodais. Lidar com dados estruturados, não estruturados e multimodais é crucial para um pipeline RAG versátil. A partir da nossa experiência, se a estrutura do documento for consistente e conhecida previamente (como aquelas encontradas em bancos de dados EDGAR para dados de registros da SEC no domínio de resultados financeiros que o Scout bot estava lidando), implementar a divisão em nível de seção, usando os títulos das seções e subtítulos e incorporando-os no contexto dos fragmentos melhora a relevância da recuperação. Também encontramos soluções como Unstructured.io, que se especializam em extrair e estruturar conteúdo de PDFs, úteis na análise e fragmentação de documentos não estruturados com contexto. '''RAGOps''': O monitoramento eficaz da saúde dos pipelines RAG é essencial uma vez que eles são implantados. Quando a qualidade das respostas é baixa, uma análise de erros minuciosa é necessária para determinar se o problema está na relevância da recuperação ou na geração de respostas do LLM. Para depurar a relevância da recuperação, os desenvolvedores precisam de informações detalhadas sobre quais fragmentos foram armazenados em bancos de dados vetoriais com seus metadados associados, como as consultas foram reformuladas, quais fragmentos foram recuperados e como esses fragmentos foram classificados. Da mesma forma, se uma resposta do LLM estiver incorreta, é crucial revisar o prompt final usado para a geração da resposta. Para problemas com citações, os desenvolvedores devem rastrear os links dos documentos originais e seus fragmentos correspondentes. RAGOps/LLMOps e frameworks de avaliação, como o Ragas, são críticos para fornecer a automação necessária para permitir iterações rápidas durante os ciclos de melhoria de precisão nos pipelines RAG. Mais detalhes sobre cada ponto de controle são apresentados na Figura [[#S3.F4|4]]. Em resumo, embora promissores, a implementação de sistemas RAG para chatbots exige um planejamento meticuloso e uma avaliação contínua para garantir a recuperação de dados segura e precisa. <div class="mw-translate-fuzzy"> [[File:2407.07858v1.figure.4.png|thumb|none|479x338px|alt=Figura 4. Pontos de controle RAG, desafios e remediações|Figura 4. Pontos de controle RAG, desafios e remediações]] </div> <div class="mw-translate-fuzzy"> [[File:2407.07858v1.figure.5.png|thumb|none|269x234px|alt=Figura 5. Scout Bot: Consulta de múltiplas partes|Figura 5. Scout Bot: Consulta de múltiplas partes]] </div> <div class="mw-translate-fuzzy"> [[File:2407.07858v1.figure.6.png|thumb|none|269x248px|alt=Figura 6. NVHelp Bot: Respondendo a perguntas sobre benefícios de RH|Figura 6. NVHelp Bot: Respondendo a perguntas sobre benefícios de RH]] </div> = 4 Construindo Arquiteturas Flexíveis para Chatbots de IA Generativa (A) = Acompanhar o rápido progresso da IA é como navegar em um rio de correnteza forte. Cada aspecto, desde bancos de dados vetoriais e modelos de incorporação até LLMs, arquiteturas agenticas, plataformas low-code/no-code, frameworks de avaliação RAG e técnicas de prompting, está evoluindo rapidamente. Paralelamente, departamentos dentro das empresas estão explorando a IA generativa ao construir seus próprios chatbots e copilotos de IA. Neste ambiente dinâmico, construir plataformas comuns, flexíveis e adaptáveis é crucial. Na NVIDIA, nosso ecossistema de chatbots cresceu significativamente, refletindo uma tendência provavelmente observada em muitas empresas. Ao desenvolver três chatbots iniciais, percebemos a importância de uma plataforma comum para evitar esforços duplicados em segurança, diretrizes, autenticação, prompts, interfaces de usuário, mecanismos de feedback, relatórios de uso, monitoramento e avaliações. Para resolver isso, desenvolvemos a plataforma NVBot (Figura [[#S4.F7|7]]), uma plataforma modular com uma arquitetura plugável. Ela permite que os desenvolvedores selecionem LLMs, bancos de dados vetoriais, modelos de incorporação, agentes e frameworks de avaliação RAG que melhor se adequem ao seu caso de uso. Também fornece componentes comuns para recursos essenciais como segurança, barreiras de proteção, autenticação, autorização, experiência do usuário e monitoramento. Além disso, a plataforma suporta o desenvolvimento cidadão, permitindo que várias equipes contribuam com seus prompts testados, fluxos de trabalho, barreiras de proteção e modelos ajustados para uso coletivo. À medida que nosso ecossistema de bots se expandiu, enfrentamos uma questão crítica: as organizações devem construir muitos bots específicos de domínio, um único bot empresarial ou adotar uma abordagem híbrida? Os chatbots específicos de domínio se destacam em ambientes personalizados, enquanto os chatbots empresariais atuam como generalistas, fornecendo uma base de conhecimento centralizada para todos os funcionários. Através de nossa experiência, percebemos que não há necessidade de escolher um em detrimento do outro. Novos padrões arquitetônicos estão surgindo onde chatbots em toda a empresa atuam como 'centrais', direcionando consultas para bots especializados ajustados com dados específicos de domínio. Esta arquitetura multibot permite o desenvolvimento simultâneo de chatbots especializados, enquanto fornece aos usuários uma interface unificada. Nossa plataforma NVBot suporta a coexistência e orquestração de múltiplos chatbots dentro de uma empresa. O debate sobre um único bot ou múltiplos bots especializados está em andamento. Visualizamos um cenário onde bots específicos de domínio coexistem com um bot central de informações, apoiados por 'copilotos'—capacidades de IA generativa integradas em ambientes de trabalho como IDEs de programação e ferramentas de colaboração. Na NVIDIA, estamos explorando ativamente as três variações de chatbots—específicos de domínio, em toda a empresa e copiloto, à medida que a IA generativa remodela a eficiência no local de trabalho e a acessibilidade à informação. <div class="mw-translate-fuzzy"> [[File:2407.07858v1.figure.7.png|thumb|none|479x302px|alt=Figura 7. Arquitetura da plataforma NVBot sobre a qual vários chatbots estão sendo construídos.|Figura 7. Arquitetura da plataforma NVBot sobre a qual vários chatbots estão sendo construídos.]] </div> = 5 Economia de Custos de Implementações de Chatbots (C) = Compreender a economia de custos dos chatbots baseados em IA generativa envolve vários fatores críticos. Os altos custos dos LLMs principais e comerciais podem ser insustentáveis, com despesas acumulando-se significativamente em vários casos de uso. Além disso, despesas não visíveis frequentemente se acumulam à medida que as equipes testam vários LLMs para atender a necessidades específicas. Ademais, ao usar APIs de fornecedores comerciais de LLM, proteger dados empresariais sensíveis requer medidas de segurança para detectar e prevenir vazamentos de dados sensíveis, bem como gateways para auditoria e aprendizado legalmente permitido. Também há compensações entre custo e latência a serem consideradas, já que LLMs grandes com longos comprimentos de contexto geralmente têm tempos de resposta mais lentos, impactando a eficiência geral. '''Modelos Maiores Vs. Menores''': Modelos LLMs comerciais maiores e modelos LLMs de código aberto menores estão se tornando cada vez mais viáveis para muitos casos de uso, oferecendo assim alternativas econômicas para as empresas. À medida que os modelos de código aberto se aproximam dos modelos comerciais maiores, eles estão oferecendo uma precisão comparável, como demonstrado em nossa avaliação empírica do bot NVHelp na Figura [[#S3.F3|3]], e geralmente apresentam melhor desempenho de latência em comparação com modelos maiores. Além disso, a otimização de modelos de inferência em GPUs pode acelerar ainda mais os tempos de processamento. Modelos de código aberto otimizados com as bibliotecas de inferência Tensor RT-LLM da NVIDIA, por exemplo, mostraram desempenho mais rápido do que modelos não otimizados. Essas estratégias ajudam a equilibrar a necessidade de eficiência de custos com a manutenção de altos padrões de desempenho e segurança. '''LLM Gateway''': Se você precisar usar uma API de LLM de fornecedor, é melhor implementar um LLM Gateway interno da empresa para auditoria, assinatura e gerenciamento de custos em toda a empresa. Implementar um LLM Gateway interno da empresa pode simplificar o uso de LLM, assinaturas e rastreamento de dados para auditorias de segurança. Este hub central simplifica a gestão e garante uma alocação eficiente de recursos. Na NVIDIA IT, implementamos um LLM Gateway que registra as cargas de entrada e saída para fins de auditoria e esses dados são protegidos com permissões de controle de acesso. Nosso LLM Gateway ajuda a gerenciar as assinaturas e os custos das invocações da API de LLM. Em resumo, desenvolver uma estratégia de LLM híbrida e equilibrada é essencial para gerenciar custos e possibilitar a inovação. Isso envolve o uso de LLMs menores e personalizados para controlar despesas, ao mesmo tempo que permite a exploração responsável com LLMs grandes através de um Gateway de LLM. É crucial medir e monitorar o ROI, acompanhando assinaturas e custos de LLM, além de avaliar o uso de recursos de Gen-AI e melhorias de produtividade. Garantir a segurança dos dados empresariais sensíveis no uso de LLMs baseados em nuvem requer a implementação de barreiras para prevenir vazamento de dados e a construção de um Gateway de LLM para auditorias e aprendizado legalmente permitido. Finalmente, esteja ciente das compensações entre custo, precisão e latência, personalizando LLMs menores para corresponder à precisão de modelos maiores, observando que LLMs grandes com longos comprimentos de contexto tendem a ter um tempo de resposta mais longo. = 6 Testando Chatbots Baseados em RAG (T) = Testar soluções de IA generativa pode ser um processo demorado devido à necessidade de validação de respostas humanas. Os LLMs estão sendo cada vez mais utilizados na abordagem de 'LLM-como-juiz'. No entanto, é aconselhável ter cautela ao usar LLMs como substitutos humanos, pois usá-los como juízes pode levar a cenários de profecia autorrealizável, reforçando também seus preconceitos inerentes nas avaliações. * '''Teste de Segurança:''' Automatizar o teste de segurança é crucial para manter a velocidade de desenvolvimento sem comprometer a segurança. Um forte framework de segurança e conjuntos de dados de teste de regressão garantem que o chatbot permaneça resiliente a potenciais ameaças. Estamos colaborando com nossas equipes internas RED em segurança para preparar um conjunto de conjuntos de dados que possam ser testados a cada grande iteração do chatbot. * '''Teste de Mudança de Prompt:''' Modelos de IA generativa podem ser altamente sensíveis a alterações de prompt. Para manter a precisão, é necessário realizar testes de regressão completos a cada alteração de prompt. * '''Feedback Loops:''' A incorporação de feedbacks coletados e o ciclo RLHF é fundamental para a melhoria contínua. Isso permite que os modelos LLM refinem tanto nossas soluções quanto os Modelos de Linguagem ao longo do tempo, garantindo que o chatbot se torne cada vez mais proficiente. No entanto, se os modelos fundamentais escolhidos não oferecem personalização, torna-se difícil alinhar os modelos ao feedback humano. Se o feedback for significativo e abranger muitas áreas, então a personalização do modelo pode ser uma opção. Até o momento, começamos a coletar feedback dos usuários, mas ainda não construímos nossos pipelines de aprendizado contínuo usando RLHF. Ter ferramentas para automatizar isso é crítico para a gestão do ciclo de vida pós-produção desses chatbots. == 6.1 Aprendizados == '''Plano para Ciclos de Teste Longos''': O teste eficaz de chatbots baseados em RAG requer a antecipação de ciclos de teste prolongados. Comece concentrando-se na automação de testes e no aprimoramento das avaliações de precisão para otimizar esta fase essencial. '''Construir Conjuntos de Dados de Verdade Terrestre Representativos''': É crucial construir conjuntos de dados de verdade terrestre abrangentes que reflitam todo o espectro das forças das soluções visadas. Isso garante que o chatbot seja testado em cenários que encontrará no uso real. '''Automatizar Avaliações''': Embora utilizar LLMs como avaliadores possa oferecer opções de teste escaláveis, lembre-se de que a qualidade das avaliações humanas é incomparável. Ferramentas automatizadas devem ser usadas onde for viável para complementar, mas não substituir a supervisão humana. '''Incorporar Feedback Humano e Aprendizado Contínuo''': Estabelecer mecanismos que permitam o feedback humano e a análise sistemática de erros. Priorizar melhorias iterativas com base nesse feedback para refinar continuamente o desempenho e a adaptabilidade do chatbot. = 7 Protegendo Chatbots Baseados em RAG (S) = Construir confiança é fundamental ao implantar chatbots de IA generativa. Para mitigar riscos, é crucial estabelecer limites para alucinações, toxicidade, justiça, transparência e segurança. Modelos fundamentais robustos estão cada vez melhores nesses aspectos. No entanto, ainda existem muitas possibilidades de falhas de segurança, ataques adversários e outros problemas de segurança. Além desses riscos de segurança, chatbots baseados em IA generativa são suscetíveis a riscos derivados (explicados abaixo). Como nossos bots são todos chatbots empresariais internos, nosso foco tem sido mais na segurança do conteúdo empresarial e na proteção de dados sensíveis. Abaixo, resumimos nossos aprendizados e insights para proteger chatbots baseados em RAG com base em nossa experiência. Abordar esses desafios é imperativo para manter a integridade e a segurança dos chatbots baseados em RAG dentro de ambientes corporativos. == 7.1 Aprendizados == '''Controle de Acesso ao Conteúdo Empresarial''': Os documentos empresariais são protegidos por controles de acesso, exigindo que chatbots baseados em RAG cumpram as Listas de Controle de Acesso (ACLs) durante a geração de respostas. Para garantir essa conformidade, selecionamos especificamente um produto de IR conhecido por sua capacidade de respeitar essas ACLs de documentos de forma eficaz. '''Riscos Derivativos com IA Generativa''': Chatbots podem gerar respostas que carecem de contexto de suas fontes de dados originais, potencialmente levando a interpretações errôneas. Além disso, métodos de busca aprimorados podem, inadvertidamente, aumentar o risco de exposição de dados sensíveis se o conteúdo empresarial não estiver devidamente protegido. Como parte da nossa jornada com o bot NVInfo, implementamos barreiras de proteção para dados sensíveis, além de utilizar capacidades de filtragem e classificação de dados sensíveis fornecidas pela solução de busca vetorial que usamos para filtrar automaticamente dados sensíveis durante a recuperação. '''Governança de Dados e Segurança de Conteúdo''': O acesso eficiente ao conhecimento pode aumentar os riscos de vazamento de dados sensíveis. Portanto, é essencial priorizar a governança de dados antes da implementação para proteger contra acessos não autorizados e violações de dados. Na NVIDIA, embarcamos em uma iniciativa de segurança de conteúdo empresarial para classificação de sensibilidade de documentos e exclusão de conteúdo sensível de chatbots. '''Proteção Empresarial''': Implementar proteções que alinhem as respostas de IA generativa com políticas e regras específicas da empresa é essencial. Essas proteções ajudam a mitigar riscos, garantindo que o conteúdo gerado pelo Chatbot adira a normas estabelecidas e diretrizes éticas, prevenindo possíveis danos legais e de reputação. No bot NVInfo, implementamos muitas proteções em prompts de LLM inicialmente. No entanto, percebemos mais tarde que nem todos os LLMs seguem esses prompts de forma consistente. Portanto, implementamos essas proteções durante o pré e pós-processamento de consultas e respostas, respectivamente, usando Nemo Guardrails ([[#bib.bib13|13]]). = 8 Trabalhos relacionados = Nosso trabalho pode ser comparado com artigos RAG sobre vários tópicos que lidam com a qualidade RAG em todas as dimensões FACTS que apresentamos (atualidade, arquitetura, custos, testes e segurança). Devido à falta de espaço, contrastamos nosso trabalho com obras seletivas. Barnett ''et. al.'' ([[#bib.bib3|3]]) apresentou sete pontos de falha ao projetar sistemas RAG. Em seu trabalho, eles destacam os desafios de acertar a geração aumentada por recuperação, apresentando suas descobertas após construir três chatbots. Wenqi Glantz ([[#bib.bib6|6]]) elaborou 12 pontos problemáticos do RAG e apresentou soluções. Experimentamos desafios semelhantes em primeira mão ao construir nossos chatbots. No entanto, nenhum desses trabalhos discute os desafios com consultas complexas, testes, lidar com a segurança de documentos e a necessidade de arquiteturas flexíveis. Em nosso trabalho, não apenas construímos sobre os pontos de falha/dor dos RAGs mencionados acima, mas também apresentamos nossos 15 pontos de controle em pipelines RAG e oferecemos soluções específicas para cada estágio. Além disso, ampliamos nossos insights e apresentamos técnicas práticas para lidar com consultas complexas, testes e segurança. Apresentamos uma arquitetura de referência para uma das implementações de arquiteturas agenticas para lidar com consultas complexas, estratégias para testar e avaliar respostas de consultas subjetivas, e aumentamos a conscientização para lidar com ACLs de documentos e segurança. Além disso, apresentamos uma arquitetura de referência para uma plataforma de Chatbot flexível baseada em IA generativa. ChipNemo ([[#bib.bib10|10]]) apresenta evidências do uso de um modelo de linguagem adaptado ao domínio para melhorar o desempenho do RAG em perguntas específicas de domínio. Eles ajustaram o modelo e5-small-unsupervised com 3.000 amostras auto-geradas específicas de domínio. Tentamos ajustar o modelo de embeddings e5-large no Scout Bot. Nossos resultados não demonstraram melhorias significativas. Atualmente, estamos coletando dados de alta qualidade anotados por humanos para repetir os experimentos. Esta pode ser uma direção importante a explorar no futuro para o nosso trabalho. Outra técnica interessante foi apresentada por Setty ''et. al.'' ([[#bib.bib15|15]]), ao melhorar o desempenho do RAG usando a técnica de Embeddings de Documentos Hipotéticos (HyDE). HyDE usa um LLM para gerar um documento teórico ao responder a uma consulta e, em seguida, faz a busca de similaridade tanto com a pergunta original quanto com a resposta hipotética. Esta é uma abordagem promissora, mas pode tornar a arquitetura complexa. A Recuperação Ativa aumentada por geração (FLARE) ([[#bib.bib7|7]]) sintetiza iterativamente uma próxima frase hipotética. Se a frase gerada contiver tokens de baixa probabilidade, o FLARE usaria a frase como a nova consulta para recuperação e regeneraria a frase. Mialon ''et al.'' ([[#bib.bib12|12]]) revisa trabalhos sobre métodos avançados de geração aumentada em modelos de linguagem. Self-refine ([[#bib.bib11|11]]) constrói um agente para melhorar a resposta inicial do RAG através de feedback e refinamento iterativos. O Agente ReAct ([[#bib.bib16|16]]) é amplamente utilizado para lidar com consultas complexas de maneira recursiva. Na frente de avaliação do RAG, RAGAS ([[#bib.bib4|4]]) e ARES ([[#bib.bib14|14]]) utilizam LLMs como juízes e constroem um benchmark automático de RAG para avaliar o sistema RAG. Zhu ''et al.'' ([[#bib.bib17|17]]) apresentam uma visão geral dos usos intensivos de LLM em um pipeline RAG, incluindo recuperador, geração de dados, reescritor e leitor. Acreditamos que nosso trabalho oferece uma perspectiva única sobre a construção de chatbots seguros de nível empresarial através de nossa estrutura FACTS. = 9 Conclusões = Neste artigo, apresentamos nossa abordagem para desenvolver chatbots eficazes baseados em RAG, destacando nossas experiências na construção de três chatbots na NVIDIA. Descrevemos nosso framework FACTS, enfatizando a importância da atualização de conteúdo (F), arquitetura (A), gestão de custos de LLM (C), planejamento para testes (T) e segurança (S) na criação de chatbots robustos, seguros e de nível empresarial. Também identificamos e elaboramos quinze pontos de controle críticos dentro das pipelines RAG, fornecendo estratégias para melhorar o desempenho dos chatbots em cada etapa. Além disso, nossa análise empírica revela os trade-offs entre precisão e latência ao comparar LLMs grandes e pequenos. Este artigo oferece uma perspectiva holística sobre os fatores essenciais e soluções práticas para construir chatbots seguros e eficientes de nível empresarial, fazendo uma contribuição única para o campo. Mais trabalho é necessário em várias áreas para construir chatbots eficazes baseados em RAG. Isso inclui desenvolver arquiteturas agenticas para lidar com consultas complexas, multipartes e analíticas; resumir eficientemente grandes volumes de dados empresariais frequentemente atualizados; incorporar capacidades de auto-ML para otimizar automaticamente vários pontos de controle RAG; e criar frameworks de avaliação mais robustos para avaliar respostas e conversas subjetivas. = Referências = * <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., et al. GPT-4 technical report. ''arXiv preprint arXiv:2303.08774'' (2023). * <span id="bib.bib3">(3)</span> Barnett, S., Kurniawan, S., Thudumu, S., Brannelly, Z., e Abdelrazek, M. Seven failure points when engineering a retrieval augmented generation system. ''arXiv preprint arXiv:2401.05856'' (2024). * <span id="bib.bib4">(4)</span> Es, S., James, J., Espinosa-Anke, L., e Schockaert, S. Ragas: Automated evaluation of retrieval augmented generation. ''arXiv preprint arXiv:2309.15217'' (2023). * <span id="bib.bib5">(5)</span> Galitsky, B. ''Developing enterprise chatbots''. Springer, 2019. * <span id="bib.bib6">(6)</span> Glantz, W. 12 rag pain points and proposed solutions. * <span id="bib.bib7">(7)</span> Jiang, Z., Xu, F. F., Gao, L., Sun, Z., Liu, Q., Dwivedi-Yu, J., Yang, Y., Callan, J., e Neubig, G. Active retrieval augmented generation. ''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., et al. Retrieval-augmented generation for knowledge-intensive nlp tasks. ''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., et al. Chipnemo: Domain-adapted llms for chip design. ''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., et al. Self-refine: Iterative refinement with self-feedback. ''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., et al. Augmented language models: a survey. ''arXiv preprint arXiv:2302.07842'' (2023). * <span id="bib.bib13">(13)</span> Rebedea, T., Dinu, R., Sreedhar, M., Parisien, C., e Cohen, J. Nemo guardrails: A toolkit for controllable and safe llm applications with programmable rails. ''arXiv preprint arXiv:2310.10501'' (2023). * <span id="bib.bib14">(14)</span> Saad-Falcon, J., Khattab, O., Potts, C., e Zaharia, M. Ares: An automated evaluation framework for retrieval-augmented generation systems. ''arXiv preprint arXiv:2311.09476'' (2023). * <span id="bib.bib15">(15)</span> Setty, S., Jijo, K., Chung, E., e Vidra, N. Improving retrieval for rag based question answering models on financial documents. ''arXiv preprint arXiv:2404.07221'' (2024). * <span id="bib.bib16">(16)</span> Yao, S., Zhao, J., Yu, D., Du, N., Shafran, I., Narasimhan, K., e Cao, Y. React: Synergizing reasoning and acting in language models. ''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., e Wen, J.-R. Large language models for information retrieval: A survey. ''arXiv preprint arXiv:2308.07107'' (2023).