Жетілдірілген бағдарламалық жасақтаманы әзірлеу жұмыс үрдістері үшін RAG-ті LLM-мен біріктіру | B4N1

Жетілдірілген бағдарламалық жасақтаманы әзірлеу жұмыс үрдістері үшін RAG-ті LLM-мен біріктіру

9 months ago · b4n1 Tiempo de lectura: 3 min

Жақсартылған бағдарламалық қамтамасыз етуді әзірлеу жұмыс үрдістері үшін RAG-ті LLM-мен біріктіру

Кіріспе

Бағдарламалық жасақтаманы әзірлеу ландшафты жасанды интеллект (AI), машиналық оқыту (ML) және табиғи тілді өңдеудегі (NLP) жетістіктерге негізделген жылдам дамып келеді. Бағдарламалық жасақтаманы жасау жолында төңкеріс жасайтын екі негізгі технология - Retrieval-Augmented Generation (RAG) және Large Language Models (LLMs). Бұл мақалада біз бағдарламалық жасақтаманы жасау процестерін оңтайландыру, код жасауды жақсарту және әзірлеушілердің өнімділігін арттыру үшін RAG-тің LLM-мен интеграциясын зерттейміз.

Retrieval-Augmented Generation (RAG) дегеніміз не?

RAG - іздеуге негізделген және генерацияға негізделген NLP тәсілдерінің күшті жақтарын біріктіретін әдіс. Ол мәтіннің үлкен корпусынан тиісті ақпаратты алуды және оны жаңа мәтіннің генерациясын кеңейту үшін пайдалануды қамтиды. Бұл тәсіл әртүрлі NLP тапсырмаларында, соның ішінде сұрақтарға жауап беру, мәтінді қорытындылау және кодты құруда жоғары тиімді екені көрсетілді.

Үлкен тіл үлгілері (LLM) дегеніміз не?

LLM - адамға ұқсас тілді өңдеуге және жасауға арналған нейрондық желінің бір түрі. Олар әдетте мәтіннің ауқымды деректер жиынында оқытылады және тілді аудару, мәтінді қорытындылау және код жасау сияқты нақты тапсырмалар үшін дәл бапталуы мүмкін. LLMs көптеген NLP тапсырмаларында заманауи нәтижелерге қол жеткізді және чат-боттар, виртуалды көмекшілер және тілдік аударма жүйелері сияқты қолданбаларда кеңінен қолданылады.

Жақсартылған бағдарламалық қамтамасыз етуді әзірлеу жұмыс үрдістері үшін RAG-ті LLM-мен біріктіру

RAG мен LLM интеграциясы бағдарламалық жасақтаманы әзірлеу жолында төңкеріс жасау мүмкіндігіне ие. Іздеуге негізделген және генерацияға негізделген тәсілдердің күшті жақтарын біріктіру арқылы RAG LLM-ге дәлірек және сәйкес кодты жасауға көмектесе алады. Бұл әзірлеуші ​​өнімділігін, код сапасын және жалпы бағдарламалық жасақтаманы әзірлеу жұмыс үрдісін айтарлықтай жақсартуға әкелуі мүмкін.

Оркестрлік құралдар: LangChain және DSPy

RAG-ті LLM-мен біріктіру үшін бізге деректер ағынын басқара алатын және RAG және LLM құрамдастарының орындалуын басқара алатын оркестрлік құралдар қажет. Осы мақсатта пайдалануға болатын екі танымал оркестрлік құрал - LangChain және DSPy.

LangChain

LangChain - бұл RAG негізіндегі қолданбаларды құру үшін қарапайым және интуитивті API ұсынатын ашық бастапқы Python кітапханасы. Ол әзірлеушілерге бағдарламалық қамтамасыз етуді әзірлеудің қуатты жұмыс үрдістерін жасау үшін RAG-ті LLM және басқа NLP компоненттерімен оңай біріктіруге мүмкіндік береді.

DSPy

DSPy - RAG негізіндегі қосымшаларды құру үшін жоғары деңгейлі API қамтамасыз ететін басқа ашық бастапқы Python кітапханасы. Ол LLMs және басқа NLP компоненттерімен үздіксіз жұмыс істеуге арналған, бұл оны RAG және LLM біріктіру үшін тамаша таңдау жасайды.

Код мысалы: LangChain көмегімен RAG-ті LLM-мен біріктіру

Мұнда LangChain көмегімен RAG-ті LLM-мен біріктіру жолын көрсететін қарапайым код мысалы берілген:

langchain импорттау
langchain.chains сайтынан RAGChain импорттаңыз


rag_model = langchain.RAG(
    index=langchain.Index(
        аты = "менің_көрсеткішім",
        құжаттар=["құжат1", "құжат2", "құжат3"],
    ),
    retriever=langchain.Retriever(
        аты = "менің_ретриверім",
        модель = "менің_ретриверім_моделім",
    ),
    генератор=langchain.Generator(
        атауы = "менің_генераторым",
        үлгі = "менің_генераторым_моделім",
    ),
)

# LLM үлгісін анықтаңыз
llm_model = langchain.LLM(
    аты = "менің_мем",
    үлгі = "менің_моделім",
)

# RAG тізбегін жасаңыз
rag_chain = RAGChain(
    атауы = "менің_шұбар_тізбекім",
    үлгі = шүберек_модель,
    llm=llm_моделі,
)

# Кодты жасау үшін RAG тізбегін пайдаланыңыз
код = rag_chain.generate(
    input_text="Екі бүтін санды кіріс ретінде қабылдайтын және олардың қосындысын қайтаратын функцияны жаз",
)

басып шығару (код)

Бұл код мысалы LangChain арқылы RAG үлгісін анықтау, LLM үлгісін анықтау, RAG тізбегін жасау және кодты жасау үшін тізбекті пайдалану жолын көрсетеді.

Ең көп қолданылатын 5-10 пәрмендер/үзінділер

Міне, LangChain және DSPy көмегімен LLM-мен RAG біріктіру үшін ең көп қолданылатын 5-10 командалар/үзінділер:

  1. langchain.RAG(): RAG үлгісі данасын жасайды.
  2. langchain.Index(): құжаттарды сақтау және шығарып алу үшін индекс данасын жасайды.
  3. langchain.Retriever(): сәйкес құжаттарды шығарып алу үшін ретривер данасын жасайды.
  4. langchain.Generator(): жаңа мәтін жасау үшін генератор данасын жасайды.
  5. langchain.LLM(): LLM үлгісі данасын жасайды.
  6. RAGChain(): RAG тізбек данасын жасайды.
  7. rag_chain.generate(): кодты жасау үшін RAG тізбегін пайдаланады.
  8. llm_model.generate(): кодты жасау үшін LLM үлгісін пайдаланады.
  9. index.add_document(): құжатты индекске қосады.
  10. retriever.retrieve(): ретривер көмегімен тиісті құжаттарды шығарып алады.

визуализация

Мұнда Chart.js арқылы RAG және LLM құрамдастарының визуализациясы берілген:

{
  "түрі": "бар",
  «деректер»: {
    "labels": ["RAG", "LLM"],
    "деректер жинағы": [
      {
        "label": "Компоненттер",
        "деректер": [10, 20],
        "backgroundColor": ["#4CAF50", "#FF9800"]
      }
    ]
  },
  "опциялар": {
    "атауы": {
      «дисплей»: шын,
      "text": "RAG және LLM құрамдастары"
    },
    «таразы»: {
      "yAxes": [
        {
          «дисплей»: шын,
          "beginAtZero": шын
        }
      ]
    }
  }
}

Бұл визуализация RAG және LLM үлгілеріндегі құрамдастардың санын көрсетеді.

Қорытынды

RAG мен LLM интеграциясы бағдарламалық жасақтаманы әзірлеу жолында төңкеріс жасау мүмкіндігіне ие. Іздеуге негізделген және генерацияға негізделген тәсілдердің күшті жақтарын біріктіру арқылы RAG LLM-ге дәлірек және сәйкес кодты жасауға көмектесе алады. Бұл әзірлеуші ​​өнімділігін, код сапасын және жалпы бағдарламалық жасақтаманы әзірлеу жұмыс үрдісін айтарлықтай жақсартуға әкелуі мүмкін. LangChain және DSPy сияқты оркестрлік құралдардың көмегімен әзірлеушілер бағдарламалық жасақтаманы әзірлеудің қуатты жұмыс үрдістерін жасау үшін RAG-ті LLM және басқа NLP компоненттерімен оңай біріктіре алады.


¿Tienes preguntas?

Hablemos

Contáctame en LinkedIn