Ukudibanisa iRAG kunye neeLLM zokuPhuhlisa ukuPhuhliswa kweSoftware ePhuhliweyo | B4N1

Ukudibanisa iRAG kunye neeLLM zokuPhuhlisa ukuPhuhliswa kweSoftware ePhuhliweyo

9 months ago · b4n1 Read time: 3 min

Ukumanyanisa iRAG kunye neeLLM zoPhuculo loPhuhliso lweSoftware ePhuhliswayo

Intshayelelo

Ubume bophuhliso lwesoftware buguquka ngokukhawuleza, buqhutywa yinkqubela phambili yobukrelekrele bokwenziwa (AI), ukufunda ngomatshini (ML), kunye nokusetyenzwa kolwimi lwendalo (NLP). Iiteknoloji ezimbini eziphambili eziguqula indlela esiphuhlisa ngayo isoftware yiRetrieval-Augmented Generation (RAG) kunye neeModeli zoLwimi olukhulu (LLMs). Kweli nqaku, siza kuphonononga ukudityaniswa kwe-RAG kunye nee-LLM ukuhambisa iinkqubo zobunjineli besoftware, ukuphucula ukwenziwa kwekhowudi, kunye nokuphucula imveliso yophuhlisi.

Yintoni iRetrieval-Augmented Generation (RAG)?

I-RAG bubuchule obudibanisa amandla okufumana kwakhona kunye neendlela ezisekelwe kwisizukulwana kwi-NLP. Kubandakanya ukubuyisela ulwazi olufanelekileyo kwikophusi enkulu yombhalo kwaye uyisebenzise ekwandiseni ukuveliswa kombhalo omtsha. Le ndlela ibonakaliswe ukuba iphumelele kakhulu kwimisebenzi eyahlukeneyo ye-NLP, kubandakanywa ukuphendula imibuzo, isishwankathelo sombhalo, kunye nokuveliswa kwekhowudi.

Ziziphi iiModeli zoLwimi oMkhulu (LLMs)?

Ii-LLM luhlobo lwenethiwekhi ye-neural eyilelwe ukusetyenzwa kunye nokuvelisa ulwimi olufana nomntu. Ngokuqhelekileyo baqeqeshwa kwiiseti zedatha ezinkulu kwaye banokulungelelaniswa kakuhle kwimisebenzi ethile efana nokuguqulela ulwimi, ukushwankathela okubhaliweyo, kunye nokuveliswa kwekhowudi. Ii-LLMs ziye zafumana iziphumo ezikumgangatho ophezulu kwimisebenzi emininzi ye-NLP kwaye zisetyenziswa ngokubanzi kwizicelo ezifana ne-chatbots, abancedisi benyani, kunye neenkqubo zokuguqulela ulwimi.

Ukumanyanisa iRAG kunye neeLLM zoPhuculo loPhuhliso lweSoftware ePhuhliswayo

Ukudityaniswa kweRAG neeLLMs kunamandla okuguqula indlela esiphuhlisa ngayo isoftware. Ngokudibanisa amandla eendlela ezisekelwe kwi-retrieval-based and generation-based approach, i-RAG inokunceda ii-LLM zivelise ikhowudi echanekileyo nefanelekileyo. Oku kunokukhokelela kuphuculo olubalulekileyo kwimveliso yophuhlisi, umgangatho wekhowudi, kunye nokuhamba komsebenzi kophuhliso lwesoftware.

Izixhobo zeOkhestra: LangChain kunye neDSPy

Ukudibanisa i-RAG kunye ne-LLMs, sifuna izixhobo ze-orchestration ezinokulawula ukuhamba kwedatha kunye nokulawula ukuphunyezwa kwe-RAG kunye ne-LLM amacandelo. Izixhobo ezibini zomculo ezidumileyo ezingasetyenziselwa le njongo yiLangChain kunye neDSPy.

LangChain

I-LangChain yilayibrari ye-Python evulekileyo enika i-API elula kunye ne-intuitive yokwakha izicelo ezisekelwe kwi-RAG. Ivumela abaphuhlisi ukuba badibanise ngokulula i-RAG kunye nee-LLMs kunye namanye amacandelo e-NLP ukwenza ukuhanjiswa komsebenzi wophuhliso lwesoftware.

DSPy

I-DSPy yenye ilayibrari yePython evulekileyo enika i-API ephezulu yokwakha izicelo ezisekelwe kwi-RAG. Yenzelwe ukusebenza ngaphandle komthungo neeLLM kunye namanye amacandelo e-NLP, iyenza ibe lolona khetho lufanelekileyo lokudibanisa iRAG neeLLM.

Umzekelo weKhowudi: Ukudibanisa iRAG kunye neeLLMs usebenzisa iLangChain

Nanku umzekelo wekhowudi olula obonisa indlela yokudibanisa iRAG neeLLM usebenzisa iLangChain:

ngenisa i-langchain
ukusuka langchain.chains ukungenisa iRAGChain


rag_model = langchain.RAG(
    index=langchain.Index(
        igama = "isalathi_ sam",
        amaxwebhu=["uxwebhu1", "uxwebhu2", "uxwebhu3"],
    ),
    i-retriever=langchain.Retriever(
        igama="my_retriever",
        imodeli="my_retriever_model",
    ),
    ijenereyitha=langchain.Ijenereyitha(
        igama="my_generator",
        imodeli="my_generator_model",
    ),
)

# Chaza imodeli yeLLM
llm_model = langchain.LLM(
    igama = "my_llm",
    imodeli="my_llm_model",
)

# Yenza ikhonkco leRAG
rag_chain = RAGChain(
    igama="my_rag_chain",
    imodeli=rag_imodeli,
    llm=llm_imodeli,
)

# Sebenzisa ikhonkco leRAG ukwenza ikhowudi
ikhowudi = rag_chain.generate(
    input_text="Bhala umsebenzi othatha amanani amabini apheleleyo njengegalelo kwaye ubuyisele isixa sazo",
)

shicilela(ikhowudi)

Lo mzekelo wekhowudi ubonisa indlela yokuchaza imodeli ye-RAG usebenzisa i-LangChain, ichaza imodeli ye-LLM, yenza i-RAG chain, kwaye usebenzise ikhonkco ukuvelisa ikhowudi.

Ephezulu 5-10 Eyeyona Isetyenziswayo Imiyalelo/iziqwengana

Nantsi eyona miyalelo/iziqwengana eziphezulu ezi-5-10 zokudibanisa iRAG neeLLMs usebenzisa iLangChain kunye neDSPy:

  1. langchain.RAG(): Yenza umzekelo weRAG.
  2. langchain.Index(): Yenza umzekelo wesalathiso wokugcina kunye nokukhupha amaxwebhu.
  3. langchain.Retriever(): Yenza umzekelo wokubuyisela ukufumana amaxwebhu afanelekileyo.
  4. langchain.Generator(): Yenza umzekelo wejenereyitha ukuvelisa umbhalo omtsha.
  5. langchain.LLM(): Yenza umzekelo weLLM.
  6. RAGChain(): Yenza umzekelo wetsheyini yeRAG.
  7. rag_chain.generate(): Isebenzisa ikhonkco leRAG ukwenza ikhowudi.
  8. llm_model.generate(): Isebenzisa imodeli yeLLM ukwenza ikhowudi.
  9. index.add_document(): Yongeza uxwebhu kwisalathiso.
  10. retriever.retrieve(): Fumana amaxwebhu afanelekileyo kusetyenziswa isikhupheli.

Umbono

Nanku umboniso weRAG kunye necandelo leLLM usebenzisa iChart.js:

{
  "type": "bar",
  "idatha": {
    "labels": ["RAG", "LLM"],
    "iiseti zedatha": [
      {
        "ileyibhile": "Izixhobo",
        "idatha": [10, 20],
        "backgroundColor": ["#4CAF50", "#FF9800"]
      }
    ]
  },
  "iinketho": {
    "isihloko": {
      "bonisa": yinyani,
      "umbhalo": "i-RAG kunye ne-LLM Components"
    },
    "izikali": {
      "yAxes": [
        {
          "bonisa": yinyani,
          "beginAtZero": yinyani
        }
      ]
    }
  }
}

Oku kubonwa kubonisa inani lamacandelo kwiimodeli zeRAG kunye neLLM.

Isiphelo

Ukudityaniswa kweRAG neeLLMs kunamandla okuguqula indlela esiphuhlisa ngayo isoftware. Ngokudibanisa amandla eendlela ezisekelwe kwi-retrieval-based and generation-based approach, i-RAG inokunceda ii-LLM zivelise ikhowudi echanekileyo nefanelekileyo. Oku kunokukhokelela kuphuculo olubalulekileyo kwimveliso yophuhlisi, umgangatho wekhowudi, kunye nokuhamba komsebenzi kophuhliso lwesoftware. Ngezixhobo ze-orchestration ezifana ne-LangChain kunye ne-DSPy, abaphuhlisi banokudibanisa ngokulula i-RAG kunye ne-LLMs kunye namanye amacandelo e-NLP ukudala i-workflows yophuhliso lwesofthiwe enamandla.


Have Questions?

Let's Talk

Contact me on LinkedIn