ለተሻሻለ DevOps ከDSPy እና LangChain ጋር ትልቅ መጠን ያለው LLM ቧንቧዎችን በማደራጀት ላይ | B4N1

ለተሻሻለ DevOps ከDSPy እና LangChain ጋር ትልቅ መጠን ያለው LLM ቧንቧዎችን በማደራጀት ላይ

6 months ago · b4n1 Read time: 4 min

** ትልቅ መጠን ያለው LLM ቧንቧዎችን ከDSPy እና LangChain ጋር ለተሻሻለ DevOps በማደራጀት ላይ ***

መግቢያ

የትልቅ የቋንቋ ሞዴሎች (LLMs) መምጣት በተፈጥሮ ቋንቋ ማቀናበር (NLP) እና አርቲፊሻል ኢንተለጀንስ (AI) መስክ ላይ ለውጥ አድርጓል። ነገር ግን፣ የኤልኤልኤም-ተኮር ስርዓቶች ውስብስብነት እና ልኬት እየጨመረ ሲሄድ፣ ጠንካራ እና ቀልጣፋ የኦርኬስትራ እና አውቶሜሽን መሳሪያዎች አስፈላጊነትም ይጨምራል። በዚህ ጽሑፍ ውስጥ በ AI ዘመን ውስጥ ጠንካራ እና ሊለወጡ የሚችሉ የሶፍትዌር ስርዓቶችን መገንባት የሚያስችሉ ሁለት ኃይለኛ ማዕቀፎችን ወደ DSPy እና LangChain ዓለም ውስጥ እንገባለን።

የትልቅ ደረጃ LLM ቧንቧዎች ፈተና

መጠነ ሰፊ የኤል ኤም ኤል ቧንቧዎች የውሂብ ቅድመ ዝግጅትን፣ የሞዴል ስልጠናን እና ግንዛቤን ጨምሮ በርካታ አካላትን ያካትታሉ። እነዚህ የቧንቧ መስመሮች ውስብስብ ሊሆኑ ይችላሉ, ብዙ ጥገኛዎች እና በተለያዩ ክፍሎች መካከል ያሉ ግንኙነቶች. የእነዚህ የቧንቧ መስመሮች መጠን እየጨመረ በሄደ ቁጥር የስህተት, የመዘግየት እና የመርጃ ማነቆዎች አደጋ ይጨምራል.

DSPy እና LangChain ያስገቡ

DSPy እና LangChain ትላልቅ የኤልኤልኤም ቧንቧዎችን ኦርኬስትራ እና አውቶማቲክን ለማቃለል ዓላማ ያላቸው ሁለት ማዕቀፎች ናቸው። DSPy ውስብስብ የውሂብ ቧንቧዎችን ለመገንባት እና ለማስተዳደር ቀላል እና ቀልጣፋ መንገድ የሚያቀርብ በፓይዘን ላይ የተመሰረተ ማዕቀፍ ሲሆን ላንግቻይን ደግሞ ሊሰፋ የሚችል እና ሊቋቋሙት የሚችሉ AI ስርዓቶችን ለመገንባት የሚያስችል ማዕቀፍ ነው።

** DSPy፡ በፓይዘን ላይ የተመሰረተ የውሂብ ቧንቧዎች መዋቅር**

DSPy ውስብስብ የውሂብ ቧንቧዎችን ለመገንባት እና ለማስተዳደር ቀላል እና ቀልጣፋ መንገድ የሚያቀርብ በፓይዘን ላይ የተመሰረተ ማዕቀፍ ነው። በDSPy፣ ገንቢዎች ሊለኩ የሚችሉ፣ የሚቋቋሙ እና ለመጠገን ቀላል የሆኑ የውሂብ ቧንቧዎችን መፍጠር ይችላሉ።

በDSPy የተሰራ ቀላል የውሂብ ቧንቧ ምሳሌ እዚህ አለ፡- `` ፓይቶን dspy እንደ dsp አስመጣ

ዳታ_ምንጭ = dsp.ምንጭ( ስም = "የእኔ_ውሂብ_ምንጭ", ዓይነት = "csv", መንገድ = "/ መንገድ/ወደ/data.csv" )

ዳታ ፕሮሰሰርን ይግለጹ

ዳታ_ፕሮሰሰር = dsp.ፕሮሰሰር( ስም = "የእኔ_ውሂብ_ፕሮሰሰር", ዓይነት = "ፓንዳስ", func=lambda x: x.dropna() )

የውሂብ ማስመጫ ይግለጹ

ዳታ_ሲንክ = dsp.Sink( ስም = "የእኔ_ውሂብ_ሲንክ", ዓይነት = "csv", መንገድ = "/ ዱካ/to/output.csv" )

የውሂብ መስመር ይፍጠሩ

ቧንቧ = dsp. የቧንቧ መስመር ( ስም = "የእኔ_ቧንቧ", ምንጮች=[የውሂብ_ምንጭ]፣ ፕሮሰሰር=[የውሂብ_ፕሮሰሰር]፣ sinks=[የውሂብ_ሲንክ] )

ቧንቧውን ያሂዱ

pipeline.run()

በዚህ ምሳሌ ውስጥ የውሂብ ምንጭን, የውሂብ ፕሮሰሰርን እና የውሂብ መስመድን እንገልጻለን, ከዚያም እነዚህን ክፍሎች የሚያገናኝ የውሂብ ቧንቧ እንፈጥራለን. የቧንቧ መስመሩ የሚካሄደው የ`run()` ዘዴን በመጠቀም ነው።

** LangChain፡ የሚለካ እና ለሚቋቋም AI ሲስተምስ ማዕቀፍ**

LangChain የሚለኩ እና የሚቋቋሙ የኤአይአይ ሲስተሞችን ለመገንባት የሚያስችል ማዕቀፍ ነው። በLangChain፣ ገንቢዎች ለመጠገን ቀላል፣ ሊሰፉ የሚችሉ እና ውድቀቶችን የሚቋቋሙ የ AI ስርዓቶችን መፍጠር ይችላሉ።

ከLangChain ጋር አብሮ የተሰራ የቀላል AI ስርዓት ምሳሌ እዚህ አለ፡-
`` ፓይቶን
አስመጣ langchain እንደ lc

# ሞዴልን ይግለጹ
ሞዴል = lc. ሞዴል (
    ስም = "የእኔ_ሞዴል",
    ዓይነት = "ትራንስፎርመር",
    መንገድ = "/ መንገድ/ወደ/ሞዴል"
)

# ጥያቄን ይግለጹ
መጠየቂያ = lc. ፈጣን (
    ስም = "My_prompt",
    text="ይህ የናሙና ጥያቄ ነው"
)

# AI ስርዓት ይፍጠሩ
ai_system = lc.AISystem(
    ስም = "my_ai_system",
    ሞዴል = ሞዴል,
    ፈጣን = አፋጣኝ
)

# የ AI ስርዓቱን ያሂዱ
ai_system.run()

በዚህ ምሳሌ ውስጥ ሞዴልን እንገልፃለን, ጥያቄን እና ከዚያም እነዚህን ክፍሎች የሚያገናኝ AI ስርዓት እንፈጥራለን. የ AI ስርዓቱ የrun() ዘዴን በመጠቀም ይሰራል።

** ትልቅ መጠን ያለው LLM ቧንቧዎችን ከDSPy እና LangChain ጋር በማደራጀት ላይ ***

መጠነ ሰፊ የኤልኤልኤም ቧንቧዎችን በDSPy እና LangChain ለማቀናጀት የሚከተለውን አካሄድ መጠቀም እንችላለን፡-

  1. ብዙ የመረጃ ምንጮችን፣ ፕሮሰሰሮችን እና ማጠቢያዎችን የሚያገናኝ DSPy በመጠቀም የዳታ ቧንቧ መስመርን ይግለጹ።
  2. በርካታ ሞዴሎችን፣ መጠየቂያዎችን እና ውጤቶችን የሚያገናኝ LangChainን በመጠቀም የ AI ስርዓትን ይግለጹ።
  3. የውሂብ ቧንቧን ለማስተዳደር DSPy እና LangChainን የ AI ስርዓቱን ለማስተዳደር ይጠቀሙ።
  4. እንደ Apache Airflow ወይም Kubernetes የመረጃ ፓይላይን እና AI ሲስተምን ለማስፈጸም የጊዜ ሰሌዳ አዘጋጅን ይጠቀሙ።

DSPy እና LangChainን የሚጠቀም ቀላል የኦርኬስትራ ስክሪፕት ምሳሌ ይኸውና፡ `` ፓይቶን dspy እንደ dsp አስመጣ አስመጣ langchain እንደ lc apache_airflow as af አስመጣ

የውሂብ ቧንቧን ይግለጹ

ዳታ_ቧንቧ = dsp.የቧንቧ መስመር( ስም = "የእኔ_ውሂብ_ቧንቧ መስመር", ምንጮች=[dsp.ምንጭ (ስም = "የእኔ_ውሂብ_ምንጭ", አይነት = "csv", ዱካ = "/ መንገድ/to/data.csv")], ፕሮሰሰር=[dsp.Processor(ስም = "የእኔ_ዳታ_ፕሮሰሰር"፣ አይነት = "ፓንዳስ"፣ func=lambda x: x.dropna())]፣ sinks = [dsp.Sink (ስም = "my_data_sink", አይነት = "csv", ዱካ = "/ መንገድ/to/output.csv")] )

የ AI ስርዓትን ይግለጹ

ai_system = lc.AISystem( ስም = "my_ai_system", ሞዴል = lc. ሞዴል (ስም = "የእኔ_ሞዴል", ዓይነት = "ትራንስፎርመር", ዱካ = "/ መንገድ / ወደ / ሞዴል"), Quick=lc.Prompt(ስም = "my_prompt", text="ይህ የናሙና መጠየቂያ ነው") )

የመረጃ ቧንቧ መስመር እና AI ስርዓት አፈፃፀምን መርሐግብር ያውጡ

af.መርሐግብር_ተግባር( task_id = "የእኔ_ተግባር", dag_id="my_dag", ቧንቧ = የውሂብ_ቧንቧ, ስርዓት=ai_ስርዓት )

በዚህ ምሳሌ, DSPy እና LangChainን በመጠቀም የውሂብ ቧንቧ እና AI ስርዓትን እንገልጻለን, እና ከዚያም Apache Airflowን በመጠቀም የእነዚህን ክፍሎች ማስፈጸሚያ መርሃ ግብር እንወስዳለን.

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

ለDSPy እና LangChain በጣም ጥቅም ላይ የዋሉት 5-10 ዋና ዋና ትዕዛዞች/ቅንጣዎች እነሆ፡-

1. `dsp.Pipeline(ስም = my_pipeline»፣ምንጮች=[ምንጭ]፣አቀነባባሪዎች=[processor]፣ sinks=[sink])`
2. `lc.ሞዴል(ስም = "የእኔ_ሞዴል"፣ አይነት = "ትራንስፎርመር"፣ ዱካ = "/መንገድ/ወደ/ሞዴል")`
3. `lc.Prompt(ስም=«my_prompt»፣ጽሑፍ=«ይህ የናሙና መጠየቂያ ነው»)»
4. `dsp.ምንጭ (ስም = "የእኔ_ውሂብ_ምንጭ"፣ አይነት = "csv"፣ path="/path/to/data.csv")`
5. `dsp.Processor(ስም = "የእኔ_ዳታ_ፕሮሰሰር"፣ አይነት = "ፓንዳስ"፣ func=lambda x: x.dropna())`
6. `dsp.Sink(ስም = "የእኔ_ውሂብ_ሲንክ"፣ አይነት = "csv"፣ path="/path/to/output.csv")"
7. `lc.AISystem(ስም = "my_ai_system"፣ ሞዴል=ሞዴል፣ ፈጣን=ፈጣን)`
8. `af.schedule_task (ተግባር_id = "my_task", dag_id = "my_dag", pipeline=ቧንቧ መስመር, ስርዓት=ስርዓት)`
9. `dsp.run_pipeline(ቧንቧ)`
10. `lc.run_system(system)`

**እይታ**

Chart.jsን በመጠቀም የDSPy እና LangChain ማዕቀፎችን እይታ እዚህ አለ፡-
``json
{
  "አይነት": "ባር",
  "ውሂብ": {
    "መለያዎች": ["DSPy", "LangChain"],
    "መረጃዎች": [
      {
        "label": "ባህሪዎች",
        "ውሂብ": [10, 15],
        "የጀርባ ቀለም": [
          "rgba (255, 99, 132, 0.2)",
          "rgba (54, 162, 235, 0.2)"
        ]፣
        "የድንበር ቀለም":
          "rgba (255, 99, 132, 1)",
          "rgba(54, 162, 235, 1)"
        ]፣
        "የድንበር ስፋት"፡ 1
      }
    ]
  }
  "አማራጮች": {}
}

ይህ እይታ በDSPy እና LangChain ውስጥ ያሉትን የባህሪያት ብዛት ያሳያል።

** መደምደሚያ**

DSPy እና LangChain በ AI ዘመን ሊቋቋሙት የሚችሉ እና ሊለኩ የሚችሉ የሶፍትዌር ስርዓቶችን ለመገንባት የሚያስችሉ ሁለት ኃይለኛ ማዕቀፎች ናቸው። እነዚህን ማዕቀፎች በመጠቀም ገንቢዎች ለመንከባከብ ቀላል፣ ሊሰፉ የሚችሉ እና ውድቀቶችን የሚቋቋሙ ትላልቅ የኤልኤልኤም ቧንቧዎችን መፍጠር ይችላሉ። እንደ Apache Airflow እና Kubernetes ባሉ ኦርኬስትራ እና አውቶሜሽን መሳሪያዎች እገዛ ገንቢዎች የእነዚህን የቧንቧ መስመሮች እና ስርዓቶች አፈፃፀም የጊዜ ሰሌዳ ማስያዝ ይችላሉ ፣ ይህም ውስብስብ AI ስርዓቶችን ለማስተዳደር ቀላል ያደርገዋል።

የወደፊት ስራ

የወደፊት ሥራ የሚከተሉትን ያጠቃልላል

  1. ለDSPy እና LangChain ተጨማሪ ባህሪያትን ማዳበር።
  2. የ DSPy እና LangChain አፈፃፀም እና መጠነ-ሰፊነት ማሻሻል።
  3. ለDSPy እና LangChain ተጨማሪ ኦርኬስትራ እና አውቶሜሽን መሳሪያዎችን ማዘጋጀት።
  4. ለDSPy እና LangChain ተጨማሪ እይታዎችን እና ዳሽቦርዶችን መፍጠር።

ማጣቀሻዎች

  1. DSPy ሰነድ፡ https://dspy.readthedocs.io/en/latest/
  2. LangChain ሰነድ፡ https://langchain.readthedocs.io/en/latest/
  3. Apache የአየር ፍሰት ሰነድ፡ https://airflow.apache.org/docs/apache-airflow/stable/index.html
  4. የኩበርኔትስ ሰነድ፡ https://kubernetes.io/docs/home/

Have Questions?

Let's Talk

Contact me on LinkedIn