Kubatanidza RAG neLLMs yeEnhanced Software Development Workflows | B4N1

Kubatanidza RAG neLLMs yeEnhanced Software Development Workflows

9 months ago · b4n1 Read time: 3 min

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:

  1. langchain.RAG(): Inogadzira muenzaniso weRAG.
  2. langchain.Index(): Inogadzira muenzaniso wekuchengeta nekutora magwaro.
  3. langchain.Retriever(): Inogadzira mucherechedzo wekudzoreredza magwaro akakodzera.
  4. langchain.Generator(): Inogadzira muenzaniso wejenareta wekugadzira zvinyorwa zvitsva.
  5. langchain.LLM(): Inogadzira muenzaniso weLLM.
  6. RAGChain(): Inogadzira RAG cheni muenzaniso.
  7. rag_chain.generate(): Inoshandisa RAG cheni kugadzira kodhi.
  8. llm_model.generate(): Inoshandisa modhi yeLLM kugadzira kodhi.
  9. index.add_document(): Inowedzera gwaro kune index.
  10. 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.


Have Questions?

Let's Talk

Contact me on LinkedIn