Ukuhlanganisa i-RAG nama-LLM we-Dynamic Software Architecture: Umhlahlandlela Owusizo
Isingeniso
Eminyakeni yamuva nje, umkhakha wezokwakha isofthiwe ube nenguquko ephawulekayo ngokusungulwa kwamamodeli olimi olukhulu (LLMs) kanye namasu okubuyiswa kwe-Retrieval-Augmented Generation (RAG). Ukusebenzisana phakathi kwalobu buchwepheshe obubili kunamandla okuguqula indlela esiklama ngayo nokuthuthukisa izinhlelo zesofthiwe. Kulesi sihloko, sizohlola ukuhlanganiswa kwe-RAG nama-LLM ekwakhiweni kwesofthiwe eguquguqukayo, okuhlanganisa namasu okuqalisa kusetshenziswa amathuluzi e-orchestration afana ne-LangChain ne-DSPy.
Iyini iRAG?
I-RAG iwubuchule obuhlanganisa amandla amamodeli asuselwa ekubuyisweni kanye nasesizukulwaneni ukuze kukhiqizwe imiphumela yombhalo yekhwalithi ephezulu. Umqondo oyisisekelo nge-RAG ukusebenzisa imodeli yokubuyisa ukuze ukhethe amadokhumenti afanelekile noma amavesi ekhorasi enkulu, bese usebenzisa imodeli yesizukulwane ukuze ukhiqize umbhalo osuselwe kulawa mavesi abuyisiwe. Le ndlela ibonise ukuthuthukiswa okuphawulekayo emisebenzini efana nokuphendula imibuzo, ukufingqwa kombhalo, ne-AI yengxoxo.
Yini i-LLM?
Ama-LLM awuhlobo lwemodeli yobuhlakani bokwenziwa eqeqeshwe ngenani elikhulu ledatha yombhalo ukuze kukhiqizwe imiphumela yolimi efana nomuntu. Lawa mamodeli ngokuvamile asekelwe ekwakhiweni kwe-transformer futhi azuze imiphumela yesimanje emisebenzini eminingi yokucubungula ulimi lwemvelo. Ama-LLM ahlukahlukene kakhulu futhi angasetshenziselwa imisebenzi efana nokuhumusha ulimi, ukufinyezwa kombhalo, ne-AI yengxoxo.
Kungani Hlanganisa i-RAG nama-LLM?
Ukuhlanganiswa kwe-RAG nama-LLM kunikeza izinzuzo ezimbalwa zokwakhiwa kwesoftware enamandla:
- Ukunemba Okuthuthukisiwe: I-RAG ingasiza ama-LLM ukuthi akhethe amadokhumenti afanelekile noma amavesi ekhorasi enkulu, okuholela emiphumeleni yombhalo enembe kakhudlwana nefundisayo.
- Ukusebenza Okuthuthukile: I-RAG inganciphisa ukubala kwe-LLM ngokukhetha kuphela imibhalo ehambisana kakhulu noma iziqephu, okuholela ezikhathini zokuphendula ngokushesha.
- Ukuguquguquka Okuthuthukisiwe: I-RAG ingasetshenziswa ukuzivumelanisa nokushintsha okuthandwayo nezimfuneko zabasebenzisi, okuvumela ama-LLM ukuthi akhiqize imiphumela yombhalo ebaluleke kakhulu futhi ehehayo.
Amaqhinga Okusebenzisa
Kunamasu amaningana okuqalisa okuhlanganisa i-RAG nama-LLM, okuhlanganisa:
- LangChain: I-LangChain iyilabhulali yomthombo ovulekile ehlinzeka nge-API elula nenembile yokwakha amamodeli asekelwe ku-RAG. Isekela anhlobonhlobo ama-LLM futhi ingasetshenziswa ukusebenzisa izakhiwo eziyinkimbinkimbi ze-RAG.
- I-DSPy: I-DSPy umtapo wezincwadi wePython ohlinzeka ngendlela elula nephumelelayo yokusebenzisa amamodeli asekelwe ku-RAG. Isekela anhlobonhlobo ama-LLM futhi ingasetshenziswa ukusebenzisa izakhiwo eziyinkimbinkimbi ze-RAG.
Isibonelo sekhodi
Nasi isibonelo sekhodi esilula esibonisa indlela yokusebenzisa i-LangChain ukuhlanganisa i-RAG nama-LLM:
ngenisa i-langchain
kusuka ku-langchain.chains ngenisa i-RAGChain
kusuka ku-langchain.llms ngenisa i-LLaMA
llama = LLaMA()
# Dala imodeli ye-RAGChain
rag_chain = RAGChain(llama, retrieval_model="t5-small")
# Chaza umyalo
ngokushesha = "Iyini inhloko-dolobha yaseFrance?"
# Khiqiza okuphumayo kombhalo
okukhiphayo = rag_chain.run(prompt)
phrinta(okukhiphayo)
Lesi sibonelo sekhodi sibonisa indlela yokusebenzisa i-LangChain ukuze udale imodeli ye-RAGChain ehlanganisa imodeli ye-LLaMA nemodeli yokubuyisela. Imodeli ye-RAGChain ibe isisetshenziswa ukukhiqiza okukhiphayo kombhalo ngokusekelwe ekwazisweni.
Imiyalo/Amazwibela Aphezulu Okuyi-5-10
Nansi imiyalo/izifinyezo eziphezulu ezi-5-10 ezisetshenziswa kakhulu zokuhlanganisa i-RAG nama-LLM:
langchain.RAGChain(llama, retrieval_model="t5-small"): Idala imodeli ye-RAGChain ehlanganisa imodeli ye-LLaMA nemodeli yokubuyisa.llama.run(ukwaziswa): Ikhiqiza okukhiphayo kombhalo ngokusekelwe ekwazisweni kusetshenziswa imodeli ye-LLaMA.rag_chain.run(prompt): Ikhiqiza okukhiphayo umbhalo ngokusekelwe ekwazisweni kusetshenziswa imodeli ye-RAGChain.langchain.chains.RAGChain(llama, retrieval_model="t5-small", max_length=1024): Idala imodeli ye-RAGChain ehlanganisa imodeli ye-LLaMA nemodeli yokubuyisa futhi isethe ubude bomkhawulo wombhalo ophumayo.llama.get_input(prompt): Ibuyisela umbhalo wokufakwayo wemodeli ye-LLaMA.rag_chain.get_output(prompt): Ibuyisela umbhalo ophumayo wemodeli ye-RAGChain.langchain.chains.RAGChain(llama, retrieval_model="t5-small", batch_size=32): Idala imodeli ye-RAGChain ehlanganisa imodeli ye-LLaMA nemodeli yokubuyisa futhi isethe usayizi wenqwaba.llama.get_output(prompt): Ibuyisela umbhalo ophumayo wemodeli ye-LLaMA.rag_chain.get_input(prompt): Ibuyisela umbhalo wokufakwayo wemodeli ye-RAGChain.langchain.chains.RAGChain(llama, retrieval_model="t5-small", device="cuda"): Idala imodeli ye-RAGChain ehlanganisa imodeli ye-LLaMA nemodeli yokubuyisa futhi isethe idivayisi ku-CUDA.
Ukubona
Nakhu ukubuka ngeso okulula kwemodeli ye-RAGChain usebenzisa i-Chart.js:
{
"type": "bar",
"idatha": {
"labels": ["LLaMA", "RAGChain"],
"idathasethi": [
{
"label": "Ukunemba",
"idatha": [0.8, 0.9],
"backgroundColor": ["#FF6384", "#36A2EB"]
}
]
},
"izinketho": {
"isihloko": {
"Display": iqiniso,
"text": "RAGChain Model Ukunemba"
},
"izikali": {
"yAxes": [
{
"imikhaza": {
"beginAtZero": kuyiqiniso
}
}
]
}
}
}
Lokhu kubukwa kukhombisa ukunemba kwemodeli ye-LLaMA kanye nemodeli ye-RAGChain.
Isiphetho
ukuhlanganiswa kwe-RAG nama-LLM kunikeza izinzuzo ezimbalwa zokwakheka kwesoftware eguquguqukayo, okuhlanganisa ukunemba okuthuthukisiwe, ukusebenza kahle okwandisiwe, kanye nokuguquguquka okuthuthukisiwe. I-LangChain ne-DSPy ngamathuluzi amabili adumile e-orchestration angasetshenziswa ukusebenzisa amamodeli asekelwe ku-RAG. Ngokulandela amasu okusebenzisa nezibonelo zekhodi ezinikezwe kulesi sihloko, abathuthukisi bangakha izakhiwo ze-RAG eziyinkimbinkimbi ezihlanganisa ama-LLM namamodeli okubuyisa. Imiyalo/izinqamuleli ezisetshenziswa kakhulu eziyi-5-10 zokuhlanganisa i-RAG nama-LLM nazo zinikeziwe ukuze zisetshenziswe.