Suuremahuliste LLM-torujuhtmete orkestreerimine DSPy ja LangChainiga täiustatud arendustegevuse jaoks
Sissejuhatus
Suurte keelemudelite (LLM) tulek on muutnud loomuliku keele töötlemise (NLP) ja tehisintellekti (AI) valdkonna. LLM-põhiste süsteemide keerukuse ja ulatuse kasvades kasvab aga ka vajadus tugevate ja tõhusate orkestreerimis- ja automatiseerimistööriistade järele. Selles artiklis käsitleme DSPy ja LangChaini maailma – kahte võimsat raamistikku, mis võimaldavad luua tehisintellekti ajastul vastupidavaid ja skaleeritavaid tarkvarasüsteeme.
Suuremahuliste LLM-i torujuhtmete väljakutse
Suuremahulised LLM-i torujuhtmed hõlmavad mitut komponenti, sealhulgas andmete eeltöötlust, mudelikoolitust ja järeldusi. Need torujuhtmed võivad olla keerulised ning erinevate komponentide vahel on palju sõltuvusi ja vastastikmõjusid. Nende torujuhtmete ulatuse suurenedes suureneb ka vigade, viivituste ja ressursside kitsaskohtade oht.
Sisestage DSPy ja LangChain
DSPy ja LangChain on kaks raamistikku, mille eesmärk on lihtsustada suuremahuliste LLM-i torujuhtmete orkestreerimist ja automatiseerimist. DSPy on Pythonil põhinev raamistik, mis pakub lihtsat ja tõhusat viisi keerukate andmekonveierite loomiseks ja haldamiseks, samas kui LangChain on raamistik, mis võimaldab luua skaleeritavaid ja vastupidavaid AI-süsteeme.
DSPy: Pythonipõhine raamistik andmekanalite jaoks
DSPy on Pythonil põhinev raamistik, mis pakub lihtsat ja tõhusat viisi keerukate andmekonveierite loomiseks ja haldamiseks. DSPy abil saavad arendajad luua andmetorusid, mis on skaleeritavad, vastupidavad ja hõlpsasti hooldatavad.
Siin on näide lihtsast andmekonveierist, mis on ehitatud DSPy abil:
import dspy dsp-na
andmeallikas = dsp.Source(
name="minu_andmete_allikas",
type="csv",
path="/path/to/data.csv"
)
# Määratlege andmetöötleja
andmeprotsessor = dsp.Protsessor(
name="my_data_processor",
type="pandas",
func=lambda x: x.dropna()
)
# Määratlege andmeside
data_sink = dsp.Sink(
name="my_data_sink",
type="csv",
path="/path/to/output.csv"
)
# Looge andmekonveier
torujuhe = dsp.Pipeline(
nimi = "minu_torustik",
allikad=[andmete_allikas],
protsessorid=[andmete_protsessor],
valamud=[andmeside]
)
# Käivitage torujuhe
pipeline.run()
Selles näites määratleme andmeallika, andmeprotsessori ja andmemaardla ning loome seejärel andmekonveieri, mis ühendab need komponendid. Seejärel käivitatakse konveier, kasutades meetodit "run()".
LangChain: skaleeritavate ja vastupidavate AI-süsteemide raamistik
LangChain on raamistik, mis võimaldab luua skaleeritavaid ja vastupidavaid AI süsteeme. LangChaini abil saavad arendajad luua AI-süsteeme, mida on lihtne hooldada, skaleeritav ja rikete suhtes vastupidav.
Siin on näide lihtsast AI-süsteemist, mis on ehitatud LangChainiga:
importige langchain lc-na
# Määratlege mudel
model = lc.Model(
nimi = "minu_mudel",
type="transformer",
path="/tee/to/mudel"
)
# Määrake viip
prompt = lc.Prompt(
name="my_prompt",
text="See on näidisviipa"
)
# Looge AI-süsteem
ai_system = lc.AISystem(
name="my_ai_system",
mudel=mudel,
prompt=prompt
)
# Käivitage AI-süsteem
ai_system.run()
Selles näites määratleme mudeli, viipa ja seejärel loome AI-süsteemi, mis ühendab need komponendid. Seejärel käivitatakse AI-süsteem meetodi "run()" abil.
Suuremahuliste LLM-torujuhtmete orkestreerimine DSPy ja LangChainiga
Suuremahuliste LLM-i torujuhtmete orkestreerimiseks DSPy ja LangChainiga saame kasutada järgmist lähenemisviisi:
- Määratlege DSPy abil andmekonveier, mis ühendab mitu andmeallikat, protsessorit ja valamu.
- Määratlege AI-süsteem LangChaini abil, mis ühendab mitu mudelit, viipasid ja väljundeid.
- Kasutage andmekonveieri haldamiseks rakendust DSPy ja tehisintellekti süsteemi haldamiseks LangChaini.
- Andmekonveieri ja AI-süsteemi täitmise ajastamiseks kasutage planeerijat, nagu Apache Airflow või Kubernetes.
Siin on näide lihtsast orkestreerimisskriptist, mis kasutab DSPy-d ja LangChaini:
import dspy dsp-na
importige langchain lc-na
import apache_airflow kui af
# Määratlege andmekonveier
data_pipeline = dsp.Pipeline(
name="my_data_pipeline",
sources=[dsp.Source(nimi="minu_andmete_allikas", tüüp="csv", tee="/tee/andmed.csv")],
protsessorid=[dsp.Protsessor(nimi="minu_andmete_protsessor", tüüp="pandas", func=lambda x: x.dropna())],
sinks=[dsp.Sink(nimi="my_data_sink", type="csv", path="/path/to/output.csv")]
)
# Määratlege AI-süsteem
ai_system = lc.AISystem(
name="my_ai_system",
model=lc.Model(nimi="minu_mudel", tüüp="transformer", tee="/tee/to/mudel"),
prompt=lc.Prompt(name="my_prompt", text="See on näidisviipa")
)
# Planeerige andmekonveieri ja AI-süsteemi käivitamine
af.schedule_task(
ülesande_id="minu_ülesanne",
dag_id="minu_päev",
torujuhe=data_pipeline,
system=ai_system
)
Selles näites määratleme andmekonveieri ja AI-süsteemi DSPy ja LangChaini abil ning seejärel ajastame nende komponentide täitmise Apache Airflow abil.
5–10 enimkasutatavat käsku/lõigu
Siin on DSPy ja LangChaini 5–10 enim kasutatud käsku/juppi:
- `dsp.Pipeline(name="my_pipeline", allikad=[allikas], protsessorid=[protsessor], sinks=[sink])
- `lc.Model(nimi="minu_mudel", tüüp="transformer", tee="/tee/to/mudel")"
lc.Prompt(name="my_prompt", text="See on näidisviipa")- `dsp.Source(nimi="minu_andmete_allikas", tüüp="csv", path="/path/to/data.csv")"
- `dsp.Processor(name="my_data_processor", type="pandas", func=lambda x: x.dropna())"
- `dsp.Sink(name="my_data_sink", type="csv", path="/path/to/output.csv")"
- `lc.AISystem(name="my_ai_system", model=mudel, prompt=prompt)'
- `af.schedule_task(task_id="minu_ülesanne", dag_id="minu_päev", pipeline=pipeline, system=süsteem)
- "dsp.run_pipeline(pipeline)".
- "lc.run_system(system)".
Visualiseerimine
Siin on diagrammi Chart.js abil DSPy ja LangChaini raamistike visualiseerimine:
{
"type": "bar",
"andmed": {
"labels": ["DSPy", "LangChain"],
"andmestikud": [
{
"label": "Omadused",
"andmed": [10, 15],
"taustavärv": [
"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
}
]
},
"valikud": {}
}
See visualiseerimine näitab DSPy ja LangChaini funktsioonide arvu.
Järeldus
Kokkuvõtteks võib öelda, et DSPy ja LangChain on kaks võimsat raamistikku, mis võimaldavad luua tehisintellekti ajastul vastupidavaid ja skaleeritavaid tarkvarasüsteeme. Neid raamistikke kasutades saavad arendajad luua suuremahulisi LLM-torusid, mida on lihtne hooldada, skaleerida ja mis on rikete suhtes vastupidavad. Orkestreerimis- ja automatiseerimistööriistade (nt Apache Airflow ja Kubernetes) abil saavad arendajad nende torustike ja süsteemide käivitamist ajastada, muutes keerukate AI-süsteemide haldamise lihtsamaks.
Tuleviku töö
Edasine töö hõlmab:
- Rohkemate funktsioonide arendamine DSPy ja LangChaini jaoks.
- DSPy ja LangChaini jõudluse ja mastaapsuse parandamine.
- Rohkemate orkestreerimis- ja automatiseerimistööriistade väljatöötamine DSPy ja LangChaini jaoks.
- Rohkemate visualisatsioonide ja armatuurlaudade loomine DSPy ja LangChaini jaoks.
Viiteallikad
- DSPy dokumentatsioon: https://dspy.readthedocs.io/en/latest/
- LangChaini dokumentatsioon: https://langchain.readthedocs.io/en/latest/
- Apache Airflow dokumentatsioon: https://airflow.apache.org/docs/apache-airflow/stable/index.html
- Kubernetese dokumentatsioon: https://kubernetes.io/docs/home/