Ji bo Karûbarên Pêşveçûna Nermalava Pêşkeftî ya RAG-ê bi LLM-an re entegre kirin | B4N1

Ji bo Karûbarên Pêşveçûna Nermalava Pêşkeftî ya RAG-ê bi LLM-an re entegre kirin

9 months ago · b4n1 Read time: 4 min

Ji bo Karûbarên Pêşveçûna Nermalava Pêşkeftî ya Pêşveçûn a RAG-ê bi LLM-an re yekbûyî

Destpêk

Pergala pêşkeftina nermalavê bi lez pêş dikeve, ku ji hêla pêşkeftinên di îstîxbarata sûnî (AI), fêrbûna makîneyê (ML), û pêvajoyek zimanê xwezayî (NLP) ve tê rêve kirin. Du teknolojiyên sereke yên ku di awayê pêşdebirina nermalavê de şoreşê dikin ev in Retrieval-Augmented Generation (RAG) û Modelên Zimanên Mezin (LLM). Di vê gotarê de, em ê yekbûna RAG-ê bi LLM-an re bikolin da ku pêvajoyên endezyariya nermalavê xweş bikin, hilberîna kodê baştir bikin, û hilberîna pêşdebiran zêde bikin.

Retrieval-Augmented Generation (RAG) çi ye?

RAG teknolojiyek e ku hêza nêzîkatiyên vegerandin-based û nifş-bingeha NLP-ê li hev dike. Ew tê de wergirtina agahdariya têkildar ji korpusek mezin a nivîsê û karanîna wê ji bo zêdekirina nifşa nivîsa nû vedihewîne. Ev nêzîkatî di cûrbecûr karên NLP-ê de, di nav de bersiva pirsê, kurtkirina nivîsê, û hilberîna kodê, pir bi bandor hate destnîşan kirin.

Modelên Zimanên Mezin (LLM) çi ne?

LLM celebek tora neuralî ye ku ji bo pêvajo û afirandina zimanek mîna mirovî hatî çêkirin. Ew bi gelemperî li ser berhevokên girseyî yên nivîsê têne perwerde kirin û dikarin ji bo karên taybetî yên wekî wergerandina ziman, kurtkirina nivîsê, û hilberîna kodê baş werin sererast kirin. LLM di gelek peywirên NLP de encamên herî pêşkeftî bi dest xistine û bi berfirehî di serîlêdanên wekî chatbots, arîkarên virtual, û pergalên wergera ziman de têne bikar anîn.

Ji bo Karûbarên Pêşveçûna Nermalava Pêşkeftî ya Pêşveçûn a RAG-ê bi LLM-an re yekbûyî

Yekbûna RAG-ê bi LLM-an re xwedan potansiyel e ku di awayê ku em nermalavê pêşde dibin şoreş bike. Bi berhevkirina hêza nêzîkatiyên vegerandin-based û nifş-bingehîn, RAG dikare alîkariya LLM-an bike ku kodek rastîn û têkildar biafirînin. Ev dikare bibe sedema pêşkeftinên girîng di hilberîna pêşdebiran, qalîteya kodê, û xebata pêşkeftina nermalavê ya giştî de.

Amûrên Orkestrasyonê: LangChain û DSPy

Ji bo entegrekirina RAG bi LLM-an re, em hewceyê amûrên orkestrasyonê ne ku dikarin herikîna daneyan birêve bibin û pêkanîna pêkhateyên RAG û LLM kontrol bikin. Du amûrên orkestrasyonê yên populer ên ku ji bo vê armancê têne bikar anîn LangChain û DSPy ne.

Zincîra Lang

LangChain pirtûkxaneyek Python-çavkaniyek vekirî ye ku ji bo avakirina serîlêdanên li ser RAG-ê API-ya hêsan û xwerû peyda dike. Ew dihêle pêşdebiran bi hêsanî RAG-ê bi LLM û hêmanên din ên NLP-ê re yek bikin da ku karûbarên pêşkeftina nermalava hêzdar biafirînin.

DSPy

DSPy pirtûkxaneyek din a Python-çavkaniyek vekirî ye ku ji bo avakirina serîlêdanên RAG-ê API-a-asta bilind peyda dike. Ew hatiye dîzaynkirin ku bi LLM û hêmanên din ên NLP re bêkêmasî bixebite, ku ew ji bo yekkirina RAG bi LLM-an re vebijarkek îdeal dike.

Mînaka Kodê: Yekkirina RAG bi LLM-an re bi karanîna LangChain

Li vir mînakek kodek hêsan e ku destnîşan dike ka meriv çawa RAG-ê bi LLM-an re bi karanîna LangChain re yek dike: `` python zincîra îthalatê ji langchain.chains import RAGChain

rag_model = langchain.RAG( index=langchain.Index( nav = "min_index", belge=["belge1", "belge2", "belge3"], ), retriever=langchain.Retriever( name = "my_retriever", model = "my_retriever_model", ), generator=langchain.Generator( name = "min_generator", model = "model_generator_my", ), )

Modela LLM diyar bikin

llm_model = langchain.LLM( name = "my_llm", model = "my_llm_model", )

Zincîrek RAG biafirînin

rag_zincîra = RAGZincîra( name = "min_rag_zincîra", model=rag_model, llm=llm_model, )

Zincîra RAG bikar bînin ku kodê çêbikin

kod = rag_chain.generate( input_text="Fonksiyonek binivîsîne ku du hejmarên entegre wekî têketinê digire û berhevoka wan vedigerîne", )

çapkirin (kod)

Vê mînaka kodê destnîşan dike ka meriv çawa modelek RAG-ê bi karanîna LangChain destnîşan dike, modelek LLM-ê destnîşan dike, zincîrek RAG-ê diafirîne, û zincîrê bikar tîne da ku kodê biafirîne.

** Serê 5-10 Fermanên Herî Bikaranîn / Parçeyên **

Li vir 5-10 fermanên herî zêde têne bikar anîn ji bo yekkirina RAG bi LLM-an re bi karanîna LangChain û DSPy:

1. `langchain.RAG()`: Nimûneyek modela RAG-ê diafirîne.
2. `langchain.Index()`: Ji bo hilanîn û wergirtina belgeyan mînakek nîşanek çêdike.
3. `langchain.Retriever()`: Ji bo wergirtina belgeyên têkildar mînakek retriever diafirîne.
4. `langchain.Generator()`: Ji bo afirandina nivîsa nû mînakek jeneratorê diafirîne.
5. `langchain.LLM()`: Nimûneyek modela LLM diafirîne.
6. `RAGChain()`: Mînaka zincîra RAG-ê diafirîne.
7. `rag_chain.generate()`: Zincîra RAG-ê ji bo çêkirina kodê bikar tîne.
8. `llm_model.generate()`: Modela LLM-ê ji bo çêkirina kodê bikar tîne.
9. `index.add_document()`: Belgeyekê li indexê zêde dike.
10. `retriever.retrieve()`: Belgeyên pêwendîdar bi kar tîne.

**Visualization **

Li vir dîmenek pêkhateyên RAG û LLM bi karanîna Chart.js heye:
```json
{
  "type": "bar",
  "dane": {
    "etîket": ["RAG", "LLM"],
    "daneyên": [
      {
        "label": "Pêkdar",
        "dane": [10, 20],
        "backgroundColor": ["#4CAF50", "#FF9800"]
      }
    ]
  },
  "vebijark": {
    "sernav": {
      "nîşandan": rast,
      "text": "Pêkhateyên RAG û LLM"
    },
    "pîvan": {
      "yAxes": [
        {
          "nîşandan": rast,
          "beginAtZero": rast
        }
      ]
    }
  }
}

Ev dîtbarî hejmara hêmanan di modelên RAG û LLM de nîşan dide.

** Encam **

Yekbûna RAG-ê bi LLM-an re xwedan potansiyel e ku di awayê ku em nermalavê pêşde dibin şoreş bike. Bi berhevkirina hêza nêzîkatiyên vegerandin-based û nifş-bingehîn, RAG dikare alîkariya LLM-an bike ku kodek rastîn û têkildar biafirînin. Ev dikare bibe sedema pêşkeftinên girîng di hilberîna pêşdebiran, qalîteya kodê, û xebata pêşkeftina nermalavê ya giştî de. Bi amûrên orkestrasyonê yên mîna LangChain û DSPy, pêşdebir dikarin RAG-ê bi LLM û hêmanên din ên NLP-ê re bi hêsanî yek bikin da ku karûbarên pêşkeftina nermalava hêzdar biafirînin.


Have Questions?

Let's Talk

Contact me on LinkedIn