RAG integravimas su LLM patobulintoms programinės įrangos kūrimo darbo eigoms | B4N1

RAG integravimas su LLM patobulintoms programinės įrangos kūrimo darbo eigoms

9 months ago · b4n1 Read time: 3 min

** RAG integravimas su LLM patobulintoms programinės įrangos kūrimo darbo eigoms**

Įvadas

Programinės įrangos kūrimo aplinka sparčiai vystosi dėl dirbtinio intelekto (AI), mašininio mokymosi (ML) ir natūralios kalbos apdorojimo (NLP) pažangos. Dvi pagrindinės technologijos, kurios keičia mūsų programinės įrangos kūrimo būdą, yra paieškos papildyta karta (RAG) ir didelės kalbos modeliai (LLM). Šiame straipsnyje mes išnagrinėsime RAG integravimą su LLM, kad supaprastintume programinės įrangos inžinerijos procesus, pagerintume kodų generavimą ir padidintume kūrėjų produktyvumą.

Kas yra „Retrieval-Augmented Generation“ (RAG)?

RAG yra technika, kuri sujungia paieška pagrįsto ir kartomis pagrįsto NLP metodo pranašumus. Tai apima atitinkamos informacijos gavimą iš didelio teksto korpuso ir panaudojimą naujo teksto generavimui. Įrodyta, kad šis metodas yra labai efektyvus atliekant įvairias NLP užduotis, įskaitant atsakymus į klausimus, teksto apibendrinimą ir kodo generavimą.

Kas yra didelių kalbų modeliai (LLM)?

LLM yra neuroninio tinklo tipas, skirtas apdoroti ir generuoti į žmogų panašią kalbą. Paprastai jie mokomi dirbti su didžiuliais teksto duomenų rinkiniais ir gali būti pritaikyti konkrečioms užduotims, tokioms kaip kalbos vertimas, teksto apibendrinimas ir kodo generavimas. LLM pasiekė pažangiausių rezultatų daugelyje NLP užduočių ir yra plačiai naudojami tokiose programose kaip pokalbių robotai, virtualūs asistentai ir kalbų vertimo sistemos.

** RAG integravimas su LLM patobulintoms programinės įrangos kūrimo darbo eigoms**

RAG integravimas su LLM gali pakeisti mūsų programinės įrangos kūrimo būdą. Derindama paieška pagrįsto ir kartomis pagrįsto metodo pranašumus, RAG gali padėti LLM sukurti tikslesnį ir aktualesnį kodą. Tai gali žymiai pagerinti kūrėjo produktyvumą, kodo kokybę ir bendras programinės įrangos kūrimo darbo eigas.

Orkestravimo įrankiai: „LangChain“ ir „DSPy“

Norint integruoti RAG su LLM, mums reikia orkestravimo įrankių, galinčių valdyti duomenų srautą ir kontroliuoti RAG ir LLM komponentų vykdymą. Du populiarūs orkestravimo įrankiai, kuriuos galima naudoti šiam tikslui, yra „LangChain“ ir „DSPy“.

LangChain

„LangChain“ yra atvirojo kodo „Python“ biblioteka, teikianti paprastą ir intuityvią API, skirtą RAG pagrindu veikiančioms programoms kurti. Tai leidžia kūrėjams lengvai integruoti RAG su LLM ir kitais NLP komponentais, kad būtų sukurtos galingos programinės įrangos kūrimo darbo eigos.

DSPy

DSPy yra dar viena atvirojo kodo Python biblioteka, teikianti aukšto lygio API, skirtą RAG pagrindu veikiančioms programoms kurti. Jis sukurtas taip, kad veiktų sklandžiai su LLM ir kitais NLP komponentais, todėl tai yra idealus pasirinkimas integruojant RAG su LLM.

Kodo pavyzdys: RAG integravimas su LLM naudojant „LangChain“

Štai paprastas kodo pavyzdys, parodantis, kaip integruoti RAG su LLM naudojant LangChain:

importuoti langchain
iš langchain.chains importuoti RAGChain


rag_model = langchain.RAG(
    index=langchain.Index(
        name="mano_indeksas",
        document=["document1", "document2", "document3"],
    ),
    retriever=langchain.Retriever(
        vardas = "mano_retriveris",
        modelis = "mano_retriverio_modelis",
    ),
    generator=langchain.Generator(
        name="mano_generatorius",
        modelis="mano_generatoriaus_modelis",
    ),
)

# Apibrėžkite LLM modelį
llm_model = langchain.LLM(
    name="my_llm",
    modelis = "mano_llm_modelis",
)

# Sukurkite RAG grandinę
rag_chain = RAGChain(
    name = "mano_skutinė_grandinė",
    modelis=rag_modelis,
    llm=llm_modelis,
)

# Naudokite RAG grandinę kodui generuoti
kodas = rag_chain.generate(
    input_text="Parašykite funkciją, kuri kaip įvestį paima du sveikuosius skaičius ir grąžina jų sumą",
)

spausdinti (kodas)

Šis kodo pavyzdys parodo, kaip apibrėžti RAG modelį naudojant LangChain, apibrėžti LLM modelį, sukurti RAG grandinę ir naudoti grandinę kodui generuoti.

5–10 dažniausiai naudojamų komandų / fragmentų

Čia yra 5–10 dažniausiai naudojamų komandų / fragmentų, skirtų RAG integravimui su LLM naudojant LangChain ir DSPy:

  1. „langchain.RAG()“: sukuria RAG modelio egzempliorių.
  2. „langchain.Index()“: sukuria indekso egzempliorių, skirtą dokumentams saugoti ir gauti.
  3. „langchain.Retriever()“: sukuriamas retriverio egzempliorius atitinkamiems dokumentams gauti.
  4. „langchain.Generator()“: sukuria generatoriaus egzempliorių naujam tekstui generuoti.
  5. „langchain.LLM()“: sukuria LLM modelio egzempliorių.
  6. „RAGChain()“: sukuria RAG grandinės egzempliorių.
  7. „rag_chain.generate()“: kodui generuoti naudojama RAG grandinė.
  8. llm_model.generate(): kodui generuoti naudojamas LLM modelis.
  9. index.add_document(): prideda dokumentą prie indekso.
  10. „retriever.retrieve()“: nuskaito atitinkamus dokumentus naudodamas retriverį.

Vizualizacija

Štai RAG ir LLM komponentų vizualizacija naudojant Chart.js:

{
  "tipas": "juosta",
  "duomenys": {
    "etiketės": ["RAG", "LLM"],
    "duomenų rinkiniai": [
      {
        "label": "Komponentai",
        "duomenys": [10, 20],
        "backgroundColor": ["#4CAF50", "#FF9800"]
      }
    ]
  },
  "parinktys": {
    "pavadinimas": {
      "display": tiesa,
      "tekstas": "RAG ir LLM komponentai"
    },
    "svarstyklės": {
      „yAxes“: [
        {
          "display": tiesa,
          "beginAtZero": tiesa
        }
      ]
    }
  }
}

Ši vizualizacija rodo komponentų skaičių RAG ir LLM modeliuose.

Išvada

RAG integravimas su LLM gali pakeisti mūsų programinės įrangos kūrimo būdą. Derindama paieška pagrįsto ir kartomis pagrįsto metodo pranašumus, RAG gali padėti LLM sukurti tikslesnį ir aktualesnį kodą. Tai gali žymiai pagerinti kūrėjo produktyvumą, kodo kokybę ir bendras programinės įrangos kūrimo darbo eigas. Naudodami orkestravimo įrankius, tokius kaip LangChain ir DSPy, kūrėjai gali lengvai integruoti RAG su LLM ir kitais NLP komponentais, kad sukurtų galingas programinės įrangos kūrimo darbo eigas.


Have Questions?

Let's Talk

Contact me on LinkedIn