Skipuleggja stórfelldar LLM leiðslur með DSPy og LangChain fyrir bætt DevOps | B4N1

Skipuleggja stórfelldar LLM leiðslur með DSPy og LangChain fyrir bætt DevOps

3 months ago · b4n1 Read time: 4 min

Hljómsveita LLM leiðslur í stórum stíl með DSPy og LangChain fyrir bætta DevOps

Kynning

Tilkoma Large Language Models (LLMs) hefur gjörbylt sviði náttúrulegs málvinnslu (NLP) og gervigreindar (AI). Hins vegar, eftir því sem flókið og umfang LLM-undirstaða kerfa eykst, eykst þörfin fyrir öflugt og skilvirkt skipulags- og sjálfvirkniverkfæri. Í þessari grein munum við kafa ofan í heim DSPy og LangChain, tveggja öflugra ramma sem gera kleift að byggja upp seigur og stigstærð hugbúnaðarkerfi á tímum gervigreindar.

Áskorunin um stórfelldar LLM-leiðslur

Stórfelldar LLM leiðslur fela í sér marga hluti, þar á meðal forvinnslu gagna, líkanaþjálfun og ályktun. Þessar leiðslur geta verið flóknar, með mörgum háðum og samskiptum milli mismunandi íhluta. Eftir því sem umfang þessara leiðslna eykst eykst hættan á villum, töfum og flöskuhálsum.

Sláðu inn DSPy og LangChain

DSPy og LangChain eru tveir rammar sem miða að því að einfalda skipulagningu og sjálfvirkni í stórum stíl LLM leiðslum. DSPy er Python-undirstaða ramma sem veitir einfalda og skilvirka leið til að byggja og stjórna flóknum gagnaleiðslum, en LangChain er rammi sem gerir kleift að byggja upp stigstærð og seigur gervigreind kerfi.

DSPy: Python-undirstaða ramma fyrir gagnaleiðslur

DSPy er Python-undirstaða ramma sem veitir einfalda og skilvirka leið til að byggja og stjórna flóknum gagnaleiðslum. Með DSPy geta verktaki búið til gagnaleiðslur sem eru skalanlegar, seigur og auðvelt að viðhalda.

Hér er dæmi um einfalda gagnaleiðslu sem byggð er með DSPy:

flytja inn dspy sem dsp


data_source = dsp.Source(
    name="my_data_source",
    type="csv",
    path="/path/to/data.csv"
)

# Skilgreindu gagnavinnsluaðila
gagnavinnsla = dsp.Processor(
    name="my_data_processor",
    type="pöndur",
    func=lambda x: x.dropna()
)

# Skilgreindu gagnagrunn
data_sink = dsp.Sink(
    name="my_data_sink",
    type="csv",
    path="/path/to/output.csv"
)

# Búðu til gagnaleiðslu
leiðsla = dsp.Pipeline(
    name="my_pipeline",
    heimildir=[gagnauppspretta],
    vinnsluaðilar=[gagnavinnsla],
    vaskur=[gagnavaskur]
)

# Keyra leiðsluna
pipeline.run()

Í þessu dæmi skilgreinum við gagnagjafa, gagnavinnslu og gagnasöfnun og búum til gagnaleiðslu sem tengir þessa íhluti. Síðan er leiðslan keyrð með run() aðferðinni.

LangChain: Rammi fyrir stigstærð og seigur gervigreindarkerfi

LangChain er rammi sem gerir kleift að byggja upp stigstærð og seigur gervigreind kerfi. Með LangChain geta verktaki búið til gervigreindarkerfi sem auðvelt er að viðhalda, skalanlegt og þola bilanir.

Hér er dæmi um einfalt gervigreind kerfi byggt með LangChain:

flytja inn langchain sem lc

# Skilgreindu líkan
módel = lc.Model(
    name="mín_módel",
    type="spennir",
    path="/path/to/model"
)

# Skilgreindu boð
hvetja = lc.Prompt(
    name="my_prompt",
    text="Þetta er sýnishorn hvetja"
)

# Búðu til gervigreindarkerfi
ai_system = lc.AISystem(
    name="my_ai_system",
    módel=módel,
    hvetja = hvetja
)

# Keyrðu gervigreindarkerfið
ai_system.run()

Í þessu dæmi skilgreinum við líkan, hvetja og búum svo til gervigreindarkerfi sem tengir þessa íhluti. AI kerfið er síðan keyrt með því að nota run() aðferðina.

Hljómsveita LLM leiðslur í stórum stíl með DSPy og LangChain

Til að skipuleggja stórfelldar LLM leiðslur með DSPy og LangChain getum við notað eftirfarandi aðferð:

  1. Skilgreindu gagnaleiðslu með DSPy sem tengir marga gagnagjafa, örgjörva og vaska.
  2. Skilgreindu gervigreindarkerfi sem notar LangChain sem tengir margar gerðir, boð og úttak.
  3. Notaðu DSPy til að stjórna gagnaleiðslunni og LangChain til að stjórna gervigreindarkerfinu.
  4. Notaðu tímaáætlun eins og Apache Airflow eða Kubernetes til að skipuleggja framkvæmd gagnaleiðslunnar og gervigreindarkerfisins.

Hér er dæmi um einfalt hljómsveitarhandrit sem notar DSPy og LangChain:

flytja inn dspy sem dsp
flytja inn langchain sem lc
flytja inn apache_airflow sem af

# Skilgreindu gagnaleiðslu
data_pipeline = dsp.Pipeline(
    name="my_data_pipeline",
    sources=[dsp.Source(name="my_data_source", type="csv", path="/path/to/data.csv")],
    örgjörvar=[dsp.Processor(name="my_data_processor", type="pandas", func=lambda x: x.dropna())],
    vaskur=[dsp.Sink(nafn="my_data_sink", type="csv", path="/path/to/output.csv")]
)

# Skilgreindu gervigreindarkerfi
ai_system = lc.AISystem(
    name="my_ai_system",
    model=lc.Model(name="my_model", type="transformer", path="/path/to/model"),
    prompt=lc.Prompt(nafn = "my_prompt", text="Þetta er sýnishorn hvetja")
)

# Tímasettu framkvæmd gagnaleiðslunnar og gervigreindarkerfisins
af.schedule_task(
    task_id="mín_verkefni",
    dag_id="my_dag",
    pipeline=data_pipeline,
    system=ai_system
)

Í þessu dæmi skilgreinum við gagnaleiðslu og gervigreindarkerfi sem notar DSPy og LangChain og skipuleggjum síðan framkvæmd þessara íhluta með Apache Airflow.

Top 5-10 mest notuðu skipanir/bútar

Hér eru 5-10 mest notuðu skipanirnar/bútarnir fyrir DSPy og LangChain:

  1. dsp.Pipeline(name="my_pipeline", sources=[source], processors=[processor], sinks=[sink])
  2. lc.Model(name="my_model", type="transformer", path="/path/to/model")
  3. lc.Prompt(name="my_prompt", text="This is a sample prompt")
  4. dsp.Source(name="my_data_source", type="csv", path="/path/to/data.csv")
  5. dsp.Processor(name="my_data_processor", type="pandas", func=lambda x: x.dropna())
  6. dsp.Sink(name="my_data_sink", type="csv", path="/path/to/output.csv")
  7. lc.AISystem(name="my_ai_system", model=model, prompt=prompt)
  8. af.schedule_task(task_id="my_task", dag_id="my_dag", pipeline=pipeline, system=system)
  9. dsp.run_pipeline(pipeline)
  10. lc.run_system(kerfi)

Sjónræn

Hér er mynd af DSPy og LangChain ramma með því að nota Chart.js:

{
  "type": "bar",
  "gögn": {
    "labels": ["DSPy", "LangChain"],
    "gagnasett": [
      {
        "label": "Eiginleikar",
        "gögn": [10, 15],
        "bakgrunnslitur": [
          "rgba(255, 99, 132, 0.2)",
          "rgba(54, 162, 235, 0.2)"
        ],
        "borderColor": [
          "rgba(255, 99, 132, 1)",
          "rgba(54, 162, 235, 1)"
        ],
        "borderWidth": 1
      }
    ]
  },
  "valkostir": {}
}

Þessi sjónmynd sýnir fjölda eiginleika í DSPy og LangChain.

Niðurstaða

Að lokum eru DSPy og LangChain tveir öflugir rammar sem gera kleift að byggja upp seigur og stigstærð hugbúnaðarkerfi á tímum gervigreindar. Með því að nota þessa ramma geta verktaki búið til stórfelldar LLM leiðslur sem auðvelt er að viðhalda, skalanlegar og þola bilanir. Með hjálp hljómsveitar- og sjálfvirkniverkfæra eins og Apache Airflow og Kubernetes geta verktaki tímasett framkvæmd þessara leiðslna og kerfa, sem gerir það auðveldara að stjórna flóknum gervigreindarkerfum.

Framtíðarstarf

Framtíðarstarf felur í sér:

  1. Þróa fleiri eiginleika fyrir DSPy og LangChain.
  2. Að bæta árangur og sveigjanleika DSPy og LangChain.
  3. Þróa fleiri hljómsveitar- og sjálfvirkniverkfæri fyrir DSPy og LangChain.
  4. Að búa til fleiri sjónmyndir og mælaborð fyrir DSPy og LangChain.

Tilvísanir

  1. DSPy skjöl: https://dspy.readthedocs.io/en/latest/
  2. LangChain skjöl: https://langchain.readthedocs.io/en/latest/
  3. Apache Airflow skjöl: https://airflow.apache.org/docs/apache-airflow/stable/index.html
  4. Kubernetes skjöl: https://kubernetes.io/docs/home/

Have Questions?

Let's Talk

Contact me on LinkedIn