ለተሻሻለ የሶፍትዌር ልማት የስራ ፍሰቶች RAGን ከኤልኤልኤም ጋር በማጣመር | B4N1

ለተሻሻለ የሶፍትዌር ልማት የስራ ፍሰቶች RAGን ከኤልኤልኤም ጋር በማጣመር

9 months ago · b4n1 Read time: 3 min

** ለተሻሻለ የሶፍትዌር ልማት የስራ ፍሰቶች RAGን ከኤል.ኤም.ኤስ ጋር በማዋሃድ ***

መግቢያ

በአርቴፊሻል ኢንተለጀንስ (AI)፣ በማሽን መማሪያ (ML) እና በተፈጥሮ ቋንቋ ማቀነባበሪያ (NLP) እድገቶች የሚመራ የሶፍትዌር ልማት ገጽታ በፍጥነት እያደገ ነው። ሶፍትዌሮችን በምንሰራበት መንገድ ላይ ለውጥ እያደረጉ ያሉት ሁለት ቁልፍ ቴክኖሎጂዎች Retrieval-Augmented Generation (RAG) እና Large Language Models (LLMs) ናቸው። በዚህ ጽሑፍ ውስጥ የሶፍትዌር ኢንጂነሪንግ ሂደቶችን ለማቀላጠፍ ፣ ኮድ መፍጠርን ለማሻሻል እና የገንቢ ምርታማነትን ለማሳደግ የ RAG ን ከኤል ኤም ኤስ ጋር መቀላቀልን እንመረምራለን።

** መልሶ ማግኛ-የተጨመረው ትውልድ (RAG) ምንድን ነው?**

RAG መልሶ ማግኘትን መሰረት ያደረጉ እና ትውልድን መሰረት ያደረጉ አቀራረቦችን ለ NLP ጥንካሬዎችን የሚያጣምር ቴክኒክ ነው። ጠቃሚ መረጃን ከትልቅ የጽሁፍ አካል ሰርስሮ ማውጣት እና አዲስ ፅሁፍ ለመፍጠር መጠቀምን ያካትታል። ይህ አካሄድ በተለያዩ የNLP ተግባራት፣ የጥያቄ መልስ፣ የጽሁፍ ማጠቃለያ እና ኮድ ማመንጨትን ጨምሮ ውጤታማ ሆኖ ታይቷል።

** ትላልቅ የቋንቋ ሞዴሎች (LLMs) ምንድናቸው?**

LLMs ሰው መሰል ቋንቋን ለመስራት እና ለማፍለቅ የተነደፈ የነርቭ ኔትወርክ አይነት ነው። በተለምዶ በትላልቅ የጽሁፍ ስብስቦች የሰለጠኑ ናቸው እና እንደ ቋንቋ ትርጉም፣ የፅሁፍ ማጠቃለያ እና ኮድ ማመንጨት ላሉ የተወሰኑ ተግባራት በጥሩ ሁኔታ ማስተካከል ይችላሉ። LLMs በብዙ የNLP ተግባራት ውስጥ ዘመናዊ ውጤቶችን አግኝተዋል እና እንደ ቻትቦቶች፣ ምናባዊ ረዳቶች እና የቋንቋ ትርጉም ስርዓቶች ባሉ መተግበሪያዎች ውስጥ በሰፊው ጥቅም ላይ ይውላሉ።

** ለተሻሻለ የሶፍትዌር ልማት የስራ ፍሰቶች RAGን ከኤል.ኤም.ኤስ ጋር በማዋሃድ ***

የ RAG ከኤል.ኤም.ኤም.ኤስ ጋር መቀላቀል ሶፍትዌሮችን በምንሰራበት መንገድ ላይ ለውጥ የማድረግ አቅም አለው። በማደስ ላይ የተመሰረተ እና ትውልድን መሰረት ያደረጉ አቀራረቦችን ጥንካሬዎች በማጣመር RAG LLMs የበለጠ ትክክለኛ እና ተዛማጅ ኮድ እንዲያመነጩ ሊረዳቸው ይችላል። ይህ በገንቢ ምርታማነት፣ በኮድ ጥራት እና በአጠቃላይ የሶፍትዌር ልማት የስራ ፍሰቶች ላይ ከፍተኛ መሻሻሎችን ሊያመጣ ይችላል።

** የኦርኬስትራ መሳሪያዎች፡ LangChain እና DSPy ***

RAGን ከኤል.ኤም.ኤም.ዎች ጋር ለማዋሃድ የመረጃ ፍሰትን ማስተዳደር እና የ RAG እና LLM አካላትን አፈፃፀም መቆጣጠር የሚችሉ የኦርኬስትራ መሳሪያዎች ያስፈልጉናል። ለዚህ ዓላማ ጥቅም ላይ ሊውሉ የሚችሉ ሁለት ታዋቂ የኦርኬስትራ መሳሪያዎች LangChain እና DSPy ናቸው.

** LangChain ***

LangChain RAG ላይ የተመሰረቱ መተግበሪያዎችን ለመገንባት ቀላል እና ሊታወቅ የሚችል ኤፒአይ የሚያቀርብ ክፍት ምንጭ የፓይዘን ቤተ-መጽሐፍት ነው። ኃይለኛ የሶፍትዌር ልማት የስራ ፍሰቶችን ለመፍጠር ገንቢዎች RAGን ከኤልኤልኤምኤስ እና ከሌሎች የኤንኤልፒ ክፍሎች ጋር በቀላሉ እንዲያዋህዱ ያስችላቸዋል።

DSPy

DSPy RAG ላይ የተመሰረቱ መተግበሪያዎችን ለመገንባት ባለከፍተኛ ደረጃ ኤፒአይ የሚያቀርብ ሌላ ክፍት ምንጭ የፓይዘን ቤተ-መጽሐፍት ነው። ከኤል.ኤል.ኤም.ኤስ እና ከሌሎች የኤንኤልፒ ክፍሎች ጋር ያለምንም እንከን እንዲሰራ የተቀየሰ ነው፣ይህም RAGን ከኤል.ኤም.ኤም.ኤስ ጋር ለማዋሃድ ተመራጭ ያደርገዋል።

የኮድ ምሳሌ፡- LangChainን በመጠቀም RAGን ከኤል.ኤም.ኤም.ኤስ ጋር ማቀናጀት

LangChainን በመጠቀም RAGን ከ LLMs ጋር እንዴት እንደሚዋሃድ የሚያሳይ ቀላል የኮድ ምሳሌ ይኸውና፡ `` ፓይቶን አስመጣ langchain ከ langchain.ሰንሰለቶች RAGChain ያስመጡ

rag_model = langchain.RAG( index=langchain.ኢንዴክስ( ስም = "my_index", ሰነዶች=["ሰነድ1"፣ "ሰነድ2"፣ "ሰነድ3"]፣ ), retriever=langchain.Retriever( ስም = "የእኔ_መልሶ ማግኛ", ሞዴል = "የእኔ_retriever_model", ), ጀነሬተር=langchain.ጀነሬተር( ስም = "የእኔ_ጄነሬተር", ሞዴል = "የእኔ_ጄነሬተር_ሞዴል", ), )

LLM ሞዴሉን ይግለጹ

lm_model = langchain.LLM( ስም = "my_llm", ሞዴል = "my_lm_model", )

RAG ሰንሰለት ይፍጠሩ

rag_chain = RAGChain ( ስም = "my_rag_chain", ሞዴል=ራግ_ሞዴል፣ llm=llm_ሞዴል፣ )

ኮድ ለመፍጠር የ RAG ሰንሰለት ይጠቀሙ

ኮድ = rag_chain. ማመንጨት ( input_text="ሁለት ኢንቲጀርን እንደ ግብአት ወስዶ ድምራቸውን የሚመልስ ተግባር ይጻፉ" )

ማተም (ኮድ)

ይህ የኮድ ምሳሌ LangChainን በመጠቀም የ RAG ሞዴልን እንዴት መግለፅ እንደሚቻል፣ የኤል ኤም ኤልን ሞዴል መግለጽ፣ RAG ሰንሰለት መፍጠር እና ሰንሰለቱን ኮድ ለማመንጨት እንዴት እንደሚቻል ያሳያል።

**ምርጥ 5-10 በብዛት ጥቅም ላይ የዋሉ ትዕዛዞች/ቅንጣዎች**

LangChain እና DSPy ን በመጠቀም RAG ን ከኤል ኤም ኤስ ጋር ለማዋሃድ ከ5-10 በብዛት ጥቅም ላይ የዋሉ ትዕዛዞች/ቅንጣፎች እዚህ አሉ።

1. `langchain.RAG()`፡ የRAG ሞዴል ምሳሌ ይፈጥራል።
2. `langchain.Index()`፡ ሰነዶችን ለማከማቸት እና ለማውጣት መረጃ ጠቋሚን ይፈጥራል።
3. `langchain.Retriever()`፡ ተዛማጅ ሰነዶችን ለማውጣት የመልሶ ማግኛ ምሳሌ ይፈጥራል።
4. `langchain.Generator()`፡ አዲስ ጽሑፍ ለማመንጨት የጄነሬተር አብነት ይፈጥራል።
5. `langchain.LLM()`፡ የኤልኤልኤም ሞዴል ምሳሌ ይፈጥራል።
6. `RAGChain()`፡ የRAG ሰንሰለት ምሳሌ ይፈጥራል።
7. `rag_chain.generate()`፡ ኮድ ለመፍጠር የRAG ሰንሰለቱን ይጠቀማል።
8. `lm_model.generate()`፡ ኮድ ለመፍጠር የኤልኤልኤም ሞዴሉን ይጠቀማል።
9. `index.add_document()`፡ ሰነድ ወደ መረጃ ጠቋሚ ያክላል።
10. `retriever.retrieve()`፡ አስረጂውን ተጠቅሞ ተዛማጅ ሰነዶችን ያወጣል።

**እይታ**

Chart.jsን በመጠቀም የRAG እና LLM አካላት ምስላዊ እይታ እዚህ አለ፡-
``json
{
  "አይነት": "ባር",
  "ውሂብ": {
    "መለያዎች": ["RAG", "LLM"],
    "መረጃዎች": [
      {
        "label": "ክፍሎቹ",
        "ውሂብ": [10, 20],
        "backgroundColor": ["#4CAF50", "#FF9800"]
      }
    ]
  }
  "አማራጮች": {
    "ርዕስ": {
      "ማሳያ": እውነት,
      "ጽሑፍ": "RAG እና LLM ክፍሎች"
    }
    "ሚዛኖች": {
      "yAxes": [
        {
          "ማሳያ": እውነት,
          "beginAtZero"፡ እውነት
        }
      ]
    }
  }
}

ይህ እይታ በ RAG እና LLM ሞዴሎች ውስጥ ያሉትን ክፍሎች ብዛት ያሳያል።

** መደምደሚያ**

የ RAG ከኤል.ኤም.ኤም.ኤስ ጋር መቀላቀል ሶፍትዌሮችን በምንሰራበት መንገድ ላይ ለውጥ የማድረግ አቅም አለው። በማደስ ላይ የተመሰረተ እና ትውልድን መሰረት ያደረጉ አቀራረቦችን ጥንካሬዎች በማጣመር RAG LLMs የበለጠ ትክክለኛ እና ተዛማጅ ኮድ እንዲያመነጩ ሊረዳቸው ይችላል። ይህ በገንቢ ምርታማነት፣ በኮድ ጥራት እና በአጠቃላይ የሶፍትዌር ልማት የስራ ፍሰቶች ላይ ከፍተኛ መሻሻሎችን ሊያመጣ ይችላል። እንደ LangChain እና DSPy ባሉ የኦርኬስትራ መሳሪያዎች ገንቢዎች ኃይለኛ የሶፍትዌር ልማት የስራ ፍሰቶችን ለመፍጠር RAGን ከኤል.ኤል.ኤም.ኤስ እና ከሌሎች የ NLP ክፍሎች ጋር በቀላሉ ማዋሃድ ይችላሉ።


Have Questions?

Let's Talk

Contact me on LinkedIn