Kubatanidza RAG neLLMs yeDynamic Software Architecture: A Practical Guide
Introduction
Mumakore achangopfuura, ndima yekugadzira software yakaita shanduko yakakosha nekuuya kweLarge Language Models (LLMs) uye Retrieval-Augmented Generation (RAG) maitiro. Kubatana pakati petekinoroji mbiri idzi kune mukana wekushandura magadzirirwo atinoita nekugadzira masoftware masisitimu. Muchinyorwa chino, tichaongorora kubatanidzwa kweRAG neLLMs kune dynamic software architecture, kusanganisira nzira dzekushandisa uchishandisa orchestration zvishandiso seLangChain uye DSPy.
Chii chinonzi RAG?
RAG inyanzvi inosanganisa masimba eKudzoreredza-yakavakirwa uye Generation-yakavakirwa modhi kuti ibudise emhando yepamusoro zvinyorwa. Pfungwa huru kuseri kweRAG ndeye kushandisa modhi yekudzosa kusarudza magwaro akakodzera kana ndima kubva kucorpus hombe, wobva washandisa muenzaniso wechizvarwa kugadzira zvinyorwa zvinoenderana nendima idzi dzakadzoserwa. Iyi nzira yakaratidza kuvandudzwa kwakakosha mumabasa akadai sekupindura mibvunzo, kupfupisa zvinyorwa, uye nhaurirano AI.
Chii chinonzi LLM?
MaLLM imhando yeartificial intelligence modhi inodzidziswa pahuwandu hukuru hwe data data kuti ibudise mitauro yakaita sevanhu. Aya mamodheru anowanzo akavakirwa pane anoshandura magadzirirwo uye akawana mhedzisiro yemazuva ano mumhando dzakasiyana siyana dzekugadzira mutauro mabasa. MaLLM anosiyana-siyana uye anogona kushandiswa kumabasa akadai sekushandura mutauro, kupfupisa zvinyorwa, uye kutaurirana AI.
Sei Kubatanidza RAG neLLMs?
Iko kubatanidzwa kweRAG neLLMs kunopa akati wandei mabhenefiti kune ane simba software yekuvaka:
- Kururamisa Kwakavandudzwa: RAG inogona kubatsira maLLM kuti asarudze magwaro akakodzera kana ndima kubva mukorasi huru, zvichiita kuti pave neruzivo rwakanyanya uye rune ruzivo rwezvinyorwa.
- Kuwedzera Kubudirira: RAG inogona kuderedza computational overhead yeLLMs nekusarudza chete zvinyorwa zvakakosha kana ndima, zvichiita kuti nguva yekupindura inokurumidza.
- Kunyandurwa Kuchinja: RAG inogona kushandiswa kuchinjika kushanduko yezvinodiwa nevashandisi uye zvinodiwa, ichibvumira maLLM kuti abudise zvinyorwa zvinonyanya kukosha uye zvinokwezva.
Matanho ekuita
Kune akati wandei maitiro ekuita ekubatanidza RAG neLLMs, kusanganisira:
- ** LangChain **: LangChain ibhurari yakazaruka inopa nyore uye intuitive API yekuvaka RAG-based models. Inotsigira huwandu hwakasiyana hweLLM uye inogona kushandiswa kuita yakaoma RAG zvivakwa.
- DSPy: DSPy iraibhurari yePython inopa nzira yakapfava uye inoshanda yekushandisa mhando dzeRAG-based. Inotsigira huwandu hwakawanda hweLLM uye inogona kushandiswa kuita yakaoma RAG zvivakwa.
Code Muenzaniso
Heino muenzaniso wakapfava wekodhi unoratidza mashandisiro eLangChain kubatanidza RAG neLLMs:
import langchain
kubva langchain.chains import RAGChain
kubva langchain.llms import LLaMA
llama = LLaMA()
# Gadzira iyo RAGChain modhi
rag_chain = RAGChain(llama, retrieval_model = "t5-diki")
# Tsanangura chirevo
kukurumidza = "Chii chinonzi guta guru reFrance?"
# Gadzira zvinyorwa zvinobuda
zvabuda = rag_chain.run(prompt)
dhinda (zvakabuda)
Uyu muenzaniso wekodhi unoratidza kuti ungashandisa sei LangChain kugadzira mufananidzo weRAGChain unobatanidza muenzaniso weLLaMA nemuenzaniso wekudzorera. Iyo RAGChain modhi inozoshandiswa kugadzira zvinyorwa zvinobuda zvichibva pane kukurumidza.
Pamusoro 5-10 Inonyanya Kushandiswa Mirairo/Zvidimbu
Heano epamusoro 5-10 anonyanya kushandiswa mirairo / zvimedu zvekubatanidza RAG neLLMs:
langchain.RAGChain(llama, retrieval_model="t5-small"): Inogadzira RAGChain modhi inobatanidza LLaMA modhi ine yekudzosa modhi.llama.run(prompt): Inogadzira kubuda kwemavara zvichienderana nekuchimbidzwa uchishandisa modhi yeLLaMA.rag_chain.run(prompt): Inogadzira kubuda kwemavara zvichienderana nekukasira uchishandisa RAGChain modhi.langchain.chains.RAGChain(llama, retrieval_model="t5-small", max_length=1024): Inogadzira RAGChain modhi inobatanidza LLaMA modhi ine yekudzoreredza modhi uye inoseta hurefu hwehurefu hwezvinyorwa zvinobuda.llama.get_input(prompt): Inodzosa zvinyorwa zvemodhi yeLLaMA.rag_chain.get_output(prompt): Inodzosa zvinyorwa zvinobuda zveRAGChain modhi.langchain.chains.RAGChain(llama, retrieval_model="t5-small", batch_size=32): Inogadzira RAGChain modhi inobatanidza LLaMA modhi ine yekudzoreredza modhi uye inoseta saizi yebatch.llama.get_output(prompt): Inodzosa zvinyorwa zvinobuda zvemuenzaniso weLLaMA.rag_chain.get_input(prompt): Inodzosa zvinyorwa zvemodhi yeRAGChain.langchain.chains.RAGChain(llama, retrieval_model="t5-small", device="cuda"): Inogadzira mufananidzo weRAGChain unobatanidza muenzaniso weLLaMA nemuenzaniso wekudzorera uye unogadzirisa chigadziro kuCUDA.
Kuona
Heino tarisiro yakapfava yeRAGChain modhi uchishandisa Chart.js:
{
"type": "bha",
"data": {
"labels": ["LLaMA", "RAGChain"],
"datasets": [
{
"label": "Kururama",
"data": [0.8, 0.9],
"backgroundColor": ["#FF6384", "#36A2EB"]
}
]
},
"sarudzo": {
"zita": {
"kuratidza": chokwadi,
"text": "RAGChain Model Kururamisa"
},
"zvikero": {
"yAxes": [
{
"zvikwekwe": {
"beginAtZero": chokwadi
}
}
]
}
}
}
Ichi chitarisiko chinoratidza huchokwadi hwemuenzaniso weLLaMA uye muenzaniso weRAGChain.
Mhedziso
kubatanidzwa kweRAG neLLMs kunopa akati wandei mabhenefiti eakasimba ekugadzira software, kusanganisira yakavandudzwa kunyatsoita, kuwedzera kushanda zvakanaka, uye kuwedzeredzwa kuchinjika. LangChain uye DSPy maturusi maviri anozivikanwa ekuimba anogona kushandiswa kushandisa RAG-based modhi. Nekutevera nzira dzekushandisa uye mienzaniso yekodhi yakapihwa muchinyorwa chino, vagadziri vanogona kugadzira yakaoma RAG zvivakwa zvinosanganisa maLLM nemhando dzekudzosa. Iwo epamusoro 5-10 anonyanya kushandiswa mirairo / snippets yekubatanidza RAG neLLMs anopihwa zvakare kuti aonekwe.