Kubatanidza RAG neLLMs yeEnhanced Software Development Workflows
Introduction
Iyo software yekuvandudza nzvimbo iri kukurumidza kushanduka, ichitungamirwa nekufambira mberi muhunyanzvi hwekugadzira (AI), kudzidza muchina (ML), uye kugadzirwa kwemutauro wechisikigo (NLP). Matekinoroji maviri akakosha ari kushandura magadzirirwo atinoita software ndeanoti Retrieval-Augmented Generation (RAG) neLarge Language Models (LLMs). Muchikamu chino, tichaongorora kubatanidzwa kweRAG neLLMs kukwenenzvera software engineering maitiro, kuvandudza kugadzirwa kwekodhi, uye kuwedzera budiriro yekuvandudza.
Chii chinonzi Retrieval-Augmented Generation (RAG)?
RAG inzira inosanganisa masimba ekudzoreredza-kwakavakirwa uye chizvarwa-kwakavakirwa nzira kuNLP. Zvinosanganisira kudzoreredza ruzivo rwakakodzera kubva kune yakakura corpus yezvinyorwa uye kuishandisa kuwedzera chizvarwa chezvinyorwa zvitsva. Iyi nzira yakaratidzwa kuva inoshanda zvakanyanya mumabasa akasiyana-siyana eNLP, kusanganisira kupindura mibvunzo, kupfupisa zvinyorwa, uye kugadzirwa kwekodhi.
Ndezvipi Mitauro Yakakura Mutauro (LLMs)?
MaLLM imhando yeneural network yakagadzirirwa kugadzirisa uye kugadzira mutauro wakafanana nemunhu. Ivo vanowanzo dzidziswa pamaseti makuru ezvinyorwa uye vanogona kunyatsogadziriswa kune chaiwo mabasa akadai sekushandura mutauro, kupfupisa zvinyorwa, uye kugadzira kodhi. MaLLM akawana mhedzisiro yemazuva ano mumabasa mazhinji eNLP uye anoshandiswa zvakanyanya mumashandisirwo akadai sechatbots, vabatsiri chaiwo, uye masisitimu ekushandura mutauro.
Kubatanidza RAG neLLMs yeEnhanced Software Development Workflows
Kubatanidzwa kweRAG neLLM kune mukana wekushandura nzira yatinogadzira software. Nekubatanidza masimba ekudzoreredza-kwakavakirwa uye chizvarwa-akavakirwa nzira, RAG inogona kubatsira LLMs kuburitsa yakanyatsojeka uye yakakodzera kodhi. Izvi zvinogona kutungamira kukuvandudza kwakakosha mukugadzirwa kwemugadziri, mhando yekodhi, uye yakazara software yekuvandudza workflows.
Zvishandiso zveOrchestration: LangChain uye DSPy
Kuti tibatanidze RAG neLLMs, tinoda maturusi e orchestration anogona kubata kuyerera kwedata uye kudzora maitirwo eRAG neLLM zvikamu. Zvishandiso zviviri zvakakurumbira zvekuimba zvinogona kushandiswa pachinangwa ichi LangChain uye DSPy.
LangChain
LangChain ndeye yakavhurika-sosi Python raibhurari inopa iri nyore uye intuitive API yekuvaka RAG-based application. Inobvumira vanogadzira kubatanidza zviri nyore RAG neLLM uye zvimwe zvikamu zveNLP kugadzira ine simba software yekuvandudza workflows.
DSPy
DSPy imwe yakavhurika-sosi raibhurari yePython inopa yakakwira-level API yekuvaka RAG-based application. Yakagadzirirwa kushanda isina musono neLLM uye zvimwe zvikamu zveNLP, zvichiita kuti ive sarudzo yakanaka yekubatanidza RAG neLLM.
Code Muenzaniso: Kubatanidza RAG neLLMs uchishandisa LangChain
Heino muenzaniso wakapfava wekodhi unoratidza nzira yekubatanidza RAG neLLMs uchishandisa LangChain:
import langchain
kubva langchain.chains import RAGChain
rag_model = langchain.RAG(
index=langchain.Index(
zita = "index_yangu",
zvinyorwa=["gwaro1", "gwaro2", "gwaro3"],
),
retriever=langchain.Retriever(
zita = "my_retriever",
muenzaniso="my_retriever_model",
),
jenareta=langchain.Jenareta(
zita = "rangu_jenareta",
muenzaniso="my_generator_model",
),
)
# Tsanangura iyo LLM modhi
llm_model = langchain.LLM(
zita = "my_llm",
muenzaniso="my_llm_model",
)
# Gadzira RAG ketani
rag_chain = RAGChain(
zita = "rag_chain yangu",
muenzaniso=rag_model,
llm=llm_modhi,
)
# Shandisa iyo RAG ketani kugadzira kodhi
kodhi = rag_chain.generate(
input_text="Nyora basa rinotora nhamba mbiri semapindiro uye wodzosa huwandu hwawo",
)
dhinda(code)
Iyi kodhi muenzaniso inoratidza nzira yekutsanangura iyo RAG modhi uchishandisa LangChain, tsanangura iyo LLM modhi, kugadzira RAG cheni, uye shandisa ketani kugadzira kodhi.
Pamusoro 5-10 Inonyanya Kushandiswa Mirairo/Zvidimbu
Heano epamusoro 5-10 anonyanya kushandiswa mirairo/zvimedu zvekubatanidza RAG neLLMs uchishandisa LangChain uye DSPy:
langchain.RAG(): Inogadzira muenzaniso weRAG.langchain.Index(): Inogadzira muenzaniso wekuchengeta nekutora magwaro.langchain.Retriever(): Inogadzira mucherechedzo wekudzoreredza magwaro akakodzera.langchain.Generator(): Inogadzira muenzaniso wejenareta wekugadzira zvinyorwa zvitsva.langchain.LLM(): Inogadzira muenzaniso weLLM.RAGChain(): Inogadzira RAG cheni muenzaniso.rag_chain.generate(): Inoshandisa RAG cheni kugadzira kodhi.llm_model.generate(): Inoshandisa modhi yeLLM kugadzira kodhi.index.add_document(): Inowedzera gwaro kune index.retriever.retrieve(): Inotora magwaro akakodzera uchishandisa retriever.
Kuona
Heino ratidziro yeRAG neLLM zvikamu uchishandisa Chart.js:
{
"type": "bha",
"data": {
"labels": ["RAG", "LLM"],
"datasets": [
{
"label": "Zvikamu",
"data": [10, 20],
"backgroundColor": ["#4CAF50", "#FF9800"]
}
]
},
"sarudzo": {
"zita": {
"kuratidza": chokwadi,
"zvinyorwa": "RAG uye LLM Zvikamu"
},
"zvikero": {
"yAxes": [
{
"kuratidza": chokwadi,
"beginAtZero": chokwadi
}
]
}
}
}
Iyi yekuona inoratidza huwandu hwezvikamu muRAG neLLM modhi.
Mhedziso
Kubatanidzwa kweRAG neLLM kune mukana wekushandura nzira yatinogadzira software. Nekubatanidza masimba ekudzoreredza-kwakavakirwa uye chizvarwa-akavakirwa nzira, RAG inogona kubatsira LLMs kuburitsa yakanyatsojeka uye yakakodzera kodhi. Izvi zvinogona kutungamira kukuvandudza kwakakosha mukugadzirwa kwemugadziri, mhando yekodhi, uye yakazara software yekuvandudza workflows. Nezvishandiso zvekuimba seLangChain neDSPy, vagadziri vanogona kubatanidza zviri nyore RAG neLLM uye zvimwe zvikamu zveNLP kugadzira zvine simba software yekuvandudza workflows.