Giňeldilen programma üpjünçiligini ösdürmek üçin RAG-lary LLM-ler bilen birleşdirmek | B4N1

Giňeldilen programma üpjünçiligini ösdürmek üçin RAG-lary LLM-ler bilen birleşdirmek

9 months ago · b4n1 Read time: 3 min

Giňeldilen programma üpjünçiligini ösdürmek üçin RAG-lary LLM-ler bilen birleşdirmek

Giriş

Emeli intellektiň (AI), maşyn öwrenmegiň (ML) we tebigy dili gaýtadan işlemegiň (NLP) ösüşi sebäpli programma üpjünçiligini ösdürmegiň peýza .y çalt ösýär. Programma üpjünçiligini ösdürmegiň usulyny üýtgedýän iki esasy tehnologiýa, “Retrieval-Augmented Generation” (RAG) we Uly Dil Modelleri (LLM). Bu makalada programma üpjünçiliginiň in engineeringenerçilik proseslerini tertipleşdirmek, kod ýasamagy gowulandyrmak we işläp düzüjiniň öndürijiligini ýokarlandyrmak üçin RAG-yň LLM-ler bilen integrasiýasyny öwreneris.

Gözleg-giňeldilen nesil (RAG) näme?

RAG, NLP-de gözleg we nesil esasly çemeleşmeleriň güýçli taraplaryny birleşdirýän usul. Bu tekstiň uly bir böleginden degişli maglumatlary almagy we täze tekstiň döremegini artdyrmak üçin ulanmagy öz içine alýar. Bu çemeleşme, soraglara jogap bermek, teksti jemlemek we kod döretmek ýaly dürli NLP meselelerinde ýokary netijelidigi görkezildi.

Uly dil modelleri (LLM) näme?

LLM-ler, adama meňzeş dili gaýtadan işlemek we döretmek üçin döredilen nerw ulgamynyň bir görnüşidir. Adatça tekstiň uly maglumat bazalarynda tälim alýarlar we dil terjimesi, teksti jemlemek we kod döretmek ýaly anyk meseleler üçin gowy düzülip bilner. LLM-ler köp sanly NLP meselelerinde iň häzirki zaman netijelerini gazandylar we söhbetdeşlikler, wirtual kömekçiler we dil terjime ulgamlary ýaly programmalarda giňden ulanylýar.

Giňeldilen programma üpjünçiligini ösdürmek üçin RAG-lary LLM-ler bilen birleşdirmek

RAG-yň LLM-ler bilen birleşmegi, programma üpjünçiligini ösdürmegiň usulyny üýtgetmek mümkinçiligine eýe. Gözleg we nesil esasly çemeleşmeleriň güýçli taraplaryny birleşdirip, RAG LLM-lere has takyk we degişli kod döretmäge kömek edip biler. Bu, öndürijiniň öndürijiliginde, koduň hilinde we programma üpjünçiligini ösdürmegiň umumy işlerinde ep-esli gowulaşmalara sebäp bolup biler.

Orkestr gurallary: LangChain we DSPy

RAG-ny LLM-ler bilen birleşdirmek üçin bize maglumat akymyny dolandyryp bilýän we RAG we LLM komponentleriniň ýerine ýetirilişine gözegçilik edip biljek orkestr gurallary gerek. Bu maksat bilen ulanyp boljak iki meşhur orkestr guraly LangChain we DSPy.

LangChain

LangChain, RAG esasly programmalary gurmak üçin ýönekeý we içgin API üpjün edýän açyk çeşme Python kitaphanasydyr. Döredijilere güýçli programma üpjünçiligini döretmek üçin RAG-ny LLM we beýleki NLP komponentleri bilen aňsat birleşdirmäge mümkinçilik berýär.

DSPy

DSPy, RAG esasly programmalary gurmak üçin ýokary derejeli API üpjün edýän açyk çeşme Python kitaphanasydyr. LLM-ler we beýleki NLP komponentleri bilen üznüksiz işlemek üçin döredilen, RAG-ny LLM-ler bilen birleşdirmek üçin iň oňat saýlama.

Kod mysaly: LangChain ulanyp RAG-ny LLM-ler bilen birleşdirmek

Ine, LangChain ulanyp, RAG-ny LLM bilen nädip birikdirmelidigini görkezýän ýönekeý kod mysaly: `` piton langchain import ediň langchain.chains-den RAGChain import edýär

rag_model = langchain.RAG ( indeks = langchain.Index ( name = "my_index", resminamalar = ["resminama1", "resminama2", "resminama3"], ), alyjy = langchain.Retriever ( name = "my_retriever", model = "my_retriever_model", ), generator = langchain.Generator ( name = "my_generator", model = "my_generator_model", ), )

LLM modelini kesgitläň

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

RAG zynjyryny dörediň

rag_chain = RAGChain ( name = "my_rag_chain", model = rag_model, llm = llm_model, )

Kod döretmek üçin RAG zynjyryny ulanyň

kod = rag_chain.generate ( input_text = "Giriş hökmünde iki bitewi san alýan we jemi jemleýän funksiýa ýazyň", )

çap et (kod) `` Bu kod mysaly, LangChain ulanyp, RAG modelini nädip kesgitlemelidigini, LLM modelini kesgitlemelidigini, RAG zynjyryny döretmelidigini we kod döretmek üçin zynjyry nädip ulanmalydygyny görkezýär.

Iň köp ulanylýan buýruklar / bölekler

LangChain we DSPy ulanyp, RAG-ny LLM-ler bilen birleşdirmek üçin iň köp ulanylýan 5-10 buýruk / bölek:

  1. "Langchain.RAG ()": RAG modelini döredýär.
  2. "Langchain.Index ()": Resminamalary saklamak we almak üçin indeks mysalyny döredýär.
  3. "Langchain.Retriever ()": Degişli resminamalary almak üçin alyjy mysal döredýär.
  4. "Langchain.Generator ()": Täze tekst döretmek üçin generator mysal döredýär.
  5. "Langchain.LLM ()": LLM modelini döredýär.
  6. "RAGChain ()": RAG zynjyryny döredýär.
  7. "Rag_chain.generate ()": kod döretmek üçin RAG zynjyryny ulanýar.
  8. "Llm_model.generate ()": kod döretmek üçin LLM modelini ulanýar.
  9. "Index.add_document ()": Indeksine resminama goşýar.
  10. "Retriever.retrieve ()": Gözlegçini ulanyp degişli resminamalary alýar.

Wizuallaşdyrma

Ine, Chart.js ulanyp, RAG we LLM komponentlerini wizuallaşdyrmak: json { "tip": "bar", "maglumatlar": { "bellikler": ["RAG", "LLM"], "maglumat bazalary": [ { "bellik": "Komponentler", "maglumatlar": [10, 20], "backgroundColor": ["# 4CAF50", "# FF9800"] } ] }, "opsiýalar": { "title": { "görkezmek": dogry, "text": "RAG we LLM komponentleri" }, "terezisi": { "yAxes": [ { "görkezmek": dogry, "startAtZero": dogry } ] } } } Bu wizuallaşdyrma RAG we LLM modellerindäki komponentleriň sanyny görkezýär.

Netije

RAG-yň LLM-ler bilen birleşmegi, programma üpjünçiligini ösdürmegiň usulyny üýtgetmek mümkinçiligine eýe. Gözleg we nesil esasly çemeleşmeleriň güýçli taraplaryny birleşdirip, RAG LLM-lere has takyk we degişli kod döretmäge kömek edip biler. Bu, öndürijiniň öndürijiliginde, koduň hilinde we programma üpjünçiligini ösdürmegiň umumy işlerinde ep-esli gowulaşmalara sebäp bolup biler. LangChain we DSPy ýaly orkestr gurallary bilen, döredijiler RAG-ny LLM we beýleki NLP komponentleri bilen aňsatlaşdyryp bilerler, güýçli programma üpjünçiligini işläp düzmek üçin.


Have Questions?

Let's Talk

Contact me on LinkedIn