Að samþætta RAG við LLMs til að auka verkflæði hugbúnaðarþróunar | B4N1

Að samþætta RAG við LLMs til að auka verkflæði hugbúnaðarþróunar

9 months ago · b4n1 Read time: 3 min

Að samþætta RAG við LLM fyrir aukið verkflæði hugbúnaðarþróunar

Kynning

Hugbúnaðarþróunarlandslag er í örri þróun, knúið áfram af framförum í gervigreind (AI), vélanámi (ML) og náttúrulegri málvinnslu (NLP). Tvær lykiltækni sem eru að gjörbylta því hvernig við þróum hugbúnað eru Retrieval-Augmented Generation (RAG) og Large Language Models (LLM). Í þessari grein munum við kanna samþættingu RAG við LLMs til að hagræða hugbúnaðarverkfræðiferlum, bæta kóðaframleiðslu og auka framleiðni þróunaraðila.

Hvað er Retrieval-Augmented Generation (RAG)?

RAG er tækni sem sameinar styrkleika endurheimtar- og kynslóðatengdra nálgana við NLP. Það felur í sér að sækja viðeigandi upplýsingar úr stórum textahluta og nota þær til að auka við gerð nýs texta. Sýnt hefur verið fram á að þessi nálgun er mjög áhrifarík í ýmsum NLP verkefnum, þar á meðal spurningasvörun, textasamantekt og kóðagerð.

Hvað eru stór tungumálalíkön (LLM)?

LLM eru tegund taugakerfis sem er hannað til að vinna úr og búa til mannlegt tungumál. Þeir eru venjulega þjálfaðir á stórum gagnasöfnum af texta og hægt er að fínstilla þau fyrir ákveðin verkefni eins og tungumálaþýðingu, textasamantekt og kóðagerð. LLM hafa náð nýjustu árangri í mörgum NLP verkefnum og eru mikið notaðar í forritum eins og spjallbotum, sýndaraðstoðarmönnum og tungumálaþýðingakerfum.

Að samþætta RAG við LLM fyrir aukið verkflæði hugbúnaðarþróunar

Samþætting RAG við LLMs hefur tilhneigingu til að gjörbylta því hvernig við þróum hugbúnað. Með því að sameina styrkleika endurheimtar og kynslóðatengdra nálgana, getur RAG hjálpað LLMs að búa til nákvæmari og viðeigandi kóða. Þetta getur leitt til umtalsverðra umbóta á framleiðni þróunaraðila, kóðagæði og heildarvinnuflæði hugbúnaðarþróunar.

Hljómsveitarverkfæri: LangChain og DSPy

Til að samþætta RAG við LLM, þurfum við hljómsveitarverkfæri sem geta stjórnað gagnaflæði og stjórnað framkvæmd RAG og LLM íhlutanna. Tvö vinsæl hljómsveitarverkfæri sem hægt er að nota í þessum tilgangi eru LangChain og DSPy.

LangChain

LangChain er opinn Python bókasafn sem veitir einfalt og leiðandi API til að byggja upp RAG-undirstaða forrit. Það gerir forriturum kleift að samþætta RAG auðveldlega við LLM og aðra NLP hluti til að búa til öflugt verkflæði hugbúnaðarþróunar.

DSPy

DSPy er annað opinn uppspretta Python bókasafn sem býður upp á API á háu stigi til að byggja upp RAG-undirstaða forrit. Það er hannað til að vinna óaðfinnanlega með LLM og öðrum NLP íhlutum, sem gerir það að kjörnum vali til að samþætta RAG við LLM.

Kóðadæmi: Samþætting RAG við LLM með LangChain

Hér er einfalt kóðadæmi sem sýnir hvernig á að samþætta RAG við LLM með LangChain:

flytja inn langkeðju
frá langchain.chains flytja inn RAGChain


rag_model = langchain.RAG(
    index=langchain.Index(
        name="my_index",
        documents=["skjal1", "skjal2", "skjal3"],
    ),
    retriever=langchain.Retriever(
        name="my_retriever",
        model="my_retriever_model",
    ),
    rafall=langkeðja.Generator(
        name="my_generator",
        model="my_generator_model",
    ),
)

# Skilgreindu LLM líkanið
llm_model = langchain.LLM(
    name="my_llm",
    model="my_llm_model",
)

# Búðu til RAG keðju
rag_chain = RAGChain(
    name="my_rag_chain",
    model=rag_model,
    llm=llm_model,
)

# Notaðu RAG keðjuna til að búa til kóða
kóða = rag_chain.generate(
    input_text="Skrifaðu fall sem tekur tvær heilar tölur sem inntak og skilar summu þeirra",
)

print (kóði)

Þetta kóðadæmi sýnir hvernig á að skilgreina RAG líkan með LangChain, skilgreina LLM líkan, búa til RAG keðju og nota keðjuna til að búa til kóða.

Top 5-10 mest notuðu skipanir/bútar

Hér eru 5-10 mest notuðu skipanirnar/bútarnir til að samþætta RAG við LLM með LangChain og DSPy:

  1. langchain.RAG(): Býr til RAG líkandæmi.
  2. langchain.Index(): Býr til vísitölutilvik til að geyma og sækja skjöl.
  3. langchain.Retriever(): Býr til endurheimtartilvik til að sækja viðeigandi skjöl.
  4. langchain.Generator(): Býr til rafallstilvik til að búa til nýjan texta.
  5. langchain.LLM(): Býr til LLM líkantilvik.
  6. RAGChain(): Býr til RAG keðjutilvik.
  7. rag_chain.generate(): Notar RAG keðjuna til að búa til kóða.
  8. llm_model.generate(): Notar LLM líkanið til að búa til kóða.
  9. index.add_document(): Bætir skjali við skrána.
  10. retriever.retrieve(): Sækir viðeigandi skjöl með því að nota endurheimtuna.

Sjónræn

Hér er mynd af RAG og LLM íhlutunum með því að nota Chart.js:

{
  "type": "bar",
  "gögn": {
    "labels": ["RAG", "LLM"],
    "gagnasett": [
      {
        "label": "Íhlutir",
        "gögn": [10, 20],
        "bakgrunnslitur": ["#4CAF50", "#FF9800"]
      }
    ]
  },
  "valkostir": {
    "titill": {
      "skjá": satt,
      "text": "RAG og LLM íhlutir"
    },
    "vog": {
      "yAxes": [
        {
          "skjá": satt,
          "beginAtZero": satt
        }
      ]
    }
  }
}

Þessi mynd sýnir fjölda íhluta í RAG og LLM líkanunum.

Niðurstaða

Samþætting RAG við LLMs hefur tilhneigingu til að gjörbylta því hvernig við þróum hugbúnað. Með því að sameina styrkleika endurheimtar og kynslóðatengdra nálgana, getur RAG hjálpað LLMs að búa til nákvæmari og viðeigandi kóða. Þetta getur leitt til umtalsverðra umbóta á framleiðni þróunaraðila, kóðagæði og heildarvinnuflæði hugbúnaðarþróunar. Með hljómsveitarverkfærum eins og LangChain og DSPy geta verktaki auðveldlega samþætt RAG við LLM og aðra NLP íhluti til að búa til öflugt verkflæði hugbúnaðarþróunar.


Have Questions?

Let's Talk

Contact me on LinkedIn