Təkmilləşdirilmiş DevOps üçün DSPy və LangChain ilə geniş miqyaslı LLM boru kəmərlərinin təşkili | B4N1

Təkmilləşdirilmiş DevOps üçün DSPy və LangChain ilə geniş miqyaslı LLM boru kəmərlərinin təşkili

6 months ago · b4n1 Read time: 4 min

** Təkmilləşdirilmiş DevOps üçün DSPy və LangChain ilə Böyük Ölçülü LLM Boru Kəmərlərinin Təşkili**

Giriş

Böyük Dil Modellərinin (LLMs) ortaya çıxması Təbii Dil Emalı (NLP) və Süni İntellekt (AI) sahəsində inqilab etdi. Bununla belə, LLM əsaslı sistemlərin mürəkkəbliyi və miqyası artdıqca, möhkəm və səmərəli orkestrləşdirmə və avtomatlaşdırma vasitələrinə ehtiyac da artır. Bu yazıda biz süni intellekt dövründə davamlı və genişlənə bilən proqram sistemlərinin qurulmasına imkan verən iki güclü çərçivə olan DSPy və LangChain dünyasını araşdıracağıq.

Böyük Ölçekli LLM Boru Kəmərlərinin Problemi

Böyük miqyaslı LLM boru kəmərləri məlumatların əvvəlcədən işlənməsi, model təlimi və nəticə çıxarmaq daxil olmaqla bir çox komponentləri əhatə edir. Bu boru kəmərləri müxtəlif komponentlər arasında bir çox asılılıq və qarşılıqlı əlaqə ilə mürəkkəb ola bilər. Bu boru kəmərlərinin miqyası artdıqca, səhvlər, gecikmələr və resurs darboğazları riski də artır.

DSPy və LangChain daxil edin

DSPy və LangChain, böyük miqyaslı LLM boru kəmərlərinin orkestrləşdirilməsini və avtomatlaşdırılmasını sadələşdirməyi hədəfləyən iki çərçivədir. DSPy, mürəkkəb məlumat boru kəmərlərini qurmaq və idarə etmək üçün sadə və səmərəli yolu təmin edən Python əsaslı çərçivədir, LangChain isə miqyaslana bilən və möhkəm AI sistemlərinin qurulmasına imkan verən çərçivədir.

DSPy: Məlumat Boru Kəmərləri üçün Python Əsaslı Çərçivə

DSPy, mürəkkəb məlumat boru kəmərlərini qurmaq və idarə etmək üçün sadə və səmərəli üsul təqdim edən Python əsaslı çərçivədir. DSPy ilə tərtibatçılar miqyaslana bilən, davamlı və asan saxlanılan məlumat kəmərləri yarada bilərlər.

Budur, DSPy ilə qurulmuş sadə məlumat kəmərinin nümunəsi:

dspy-ni dsp kimi idxal edin


data_source = dsp.Mənbə(
    ad = "məlumat_mənbəm",
    type="csv",
    path="/path/to/data.csv"
)

# Məlumat prosessorunu müəyyənləşdirin
data_processor = dsp.Processor(
    ad = "mənim_məlumat_prosessorum",
    type="pandalar",
    func=lambda x: x.dropna()
)

# Məlumat qəbuledicisini təyin edin
data_sink = dsp.Sink(
    ad = "mənim_məlumat_sink",
    type="csv",
    path="/path/to/output.csv"
)

# Məlumat kəməri yaradın
boru kəməri = dsp.Boru kəməri(
    ad = "mənim_boru xəttim",
    mənbələr=[məlumat_mənbəsi],
    prosessorlar=[məlumat_prosessoru],
    lavabolar=[data_sink]
)

# Boru kəmərini işə salın
pipeline.run()

Bu nümunədə biz məlumat mənbəyini, məlumat prosessorunu və məlumat qəbuledicisini təyin edirik və sonra bu komponentləri birləşdirən məlumat kəməri yaradırıq. Boru kəməri daha sonra run() metodundan istifadə edərək işə salınır.

LangChain: Ölçəklənən və Dayanıqlı AI Sistemləri üçün Çərçivə

LangChain, miqyaslana bilən və davamlı AI sistemlərinin qurulmasına imkan verən bir çərçivədir. LangChain ilə tərtibatçılar saxlanılması asan, miqyaslana bilən və uğursuzluqlara qarşı davamlı olan AI sistemləri yarada bilərlər.

LangChain ilə qurulmuş sadə AI sisteminin bir nümunəsidir:

lc kimi langchain idxal edin

# Modeli müəyyənləşdirin
model = lc.Model(
    ad = "modelim",
    type = "transformator",
    yol="/yol/to/model"
)

# Təklifi təyin edin
istək = lc.Prompt(
    ad = "mənim_istək",
    text="Bu, nümunə sorğudur"
)

# AI sistemi yaradın
ai_system = lc.AISystem(
    name="my_ai_system",
    model=model,
    prompt=prompt
)

# AI sistemini işə salın
ai_system.run()

Bu nümunədə biz bir model, sorğu təyin edirik və sonra bu komponentləri birləşdirən AI sistemi yaradırıq. Süni intellekt sistemi daha sonra “run()” metodundan istifadə edərək işə salınır.

DSPy və LangChain ilə Böyük Ölçülü LLM Boru Kəmərlərinin Təşkili

DSPy və LangChain ilə geniş miqyaslı LLM boru kəmərlərini təşkil etmək üçün aşağıdakı yanaşmadan istifadə edə bilərik:

  1. Çoxsaylı məlumat mənbələrini, prosessorları və yuvaları birləşdirən DSPy-dən istifadə edərək məlumat kəmərini təyin edin.
  2. Çoxlu modelləri, göstərişləri və çıxışları birləşdirən LangChain istifadə edərək süni intellekt sistemini müəyyənləşdirin.
  3. Məlumat kəmərini idarə etmək üçün DSPy-dən, AI sistemini idarə etmək üçün isə LangChain-dən istifadə edin.
  4. Məlumat kəmərinin və AI sisteminin icrasını planlaşdırmaq üçün Apache Airflow və ya Kubernetes kimi planlaşdırıcıdan istifadə edin.

DSPy və LangChain istifadə edən sadə orkestr skriptinin nümunəsi:

dspy-ni dsp kimi idxal edin
lc kimi langchain idxal edin
apache_airflow-u af kimi idxal edin

# Məlumat kəmərini təyin edin
data_pipeline = dsp.Pipeline(
    ad = "mənim_məlumat_boru xəttim",
    mənbələr=[dsp.Mənbə(ad="mənim_məlumat_mənbəyim", yazın="csv", yol="/path/to/data.csv")],
    processors=[dsp.Processor(name="my_data_processor", type="pandas", func=lambda x: x.dropna())],
    sinks=[dsp.Sink(name="my_data_sink", type="csv", path="/path/to/output.csv")]
)

# AI sistemini müəyyənləşdirin
ai_system = lc.AISystem(
    name="my_ai_system",
    model=lc.Model(name="mənim_modelim", yazın="transformator", yol="/yol/to/model"),
    prompt=lc.Prompt(name="my_prompt", text="Bu, nümunə sorğudur")
)

# Məlumat kəmərinin və AI sisteminin icrasını planlaşdırın
af.schedule_task(
    task_id="mənim_tapşırıq",
    dag_id="mənim_dagım",
    boru kəməri = məlumat_boru kəməri,
    sistem=ai_sistem
)

Bu misalda biz DSPy və LangChain istifadə edərək məlumat kəməri və AI sistemini təyin edirik və sonra Apache Airflow istifadə edərək bu komponentlərin icrasını planlaşdırırıq.

Ən çox istifadə olunan 5-10 əmr/parça

DSPy və LangChain üçün ən çox istifadə edilən 5-10 əmr/parçalar bunlardır:

  1. dsp.Pipeline(name="mənim_boru xəttim", mənbələr=[mənbə], prosessorlar=[prosessor], yuvalar=[bağlayıcı])
  2. lc.Model(ad="mənim_modelim", yazın="transformator", yol="/yol/model")
  3. lc.Prompt(name="my_prompt", text="Bu, nümunə sorğudur")
  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="mənim_taskım", dag_id="my_dag", boru kəməri=boru xətti, sistem=sistem)
  9. dsp.run_pipeline(pipeline)
  10. lc.run_system(sistem)

Vizuallaşdırma

Budur Chart.js istifadə edərək DSPy və LangChain çərçivələrinin vizuallaşdırılması:

{
  "növ": "bar",
  "data": {
    "etiketlər": ["DSPy", "LangChain"],
    "verilənlər dəsti": [
      {
        "label": "Xüsusiyyətlər",
        "data": [10, 15],
        "fon Rəngi": [
          "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
      }
    ]
  },
  "seçimlər": {}
}

Bu vizuallaşdırma DSPy və LangChain-dəki xüsusiyyətlərin sayını göstərir.

Nəticə

DSPy və LangChain, süni intellekt dövründə davamlı və genişlənə bilən proqram sistemlərinin qurulmasına imkan verən iki güclü çərçivədir. Bu çərçivələrdən istifadə etməklə tərtibatçılar saxlanılması asan, miqyaslana bilən və uğursuzluqlara davamlı olan böyük miqyaslı LLM boru kəmərləri yarada bilərlər. Apache Airflow və Kubernetes kimi orkestrləşdirmə və avtomatlaşdırma vasitələrinin köməyi ilə tərtibatçılar mürəkkəb süni intellekt sistemlərini idarə etməyi asanlaşdıraraq bu boru kəmərlərinin və sistemlərin icrasını planlaşdıra bilərlər.

Gələcək İş

Gələcək işə daxildir:

  1. DSPy və LangChain üçün daha çox xüsusiyyətlərin inkişafı.
  2. DSPy və LangChain-in performansının və miqyasının təkmilləşdirilməsi.
  3. DSPy və LangChain üçün daha çox orkestrləşdirmə və avtomatlaşdırma vasitələrinin hazırlanması.
  4. DSPy və LangChain üçün daha çox vizuallaşdırma və idarə panellərinin yaradılması.

İstinadlar

  1. DSPy sənədləri: https://dspy.readthedocs.io/en/latest/
  2. LangChain sənədləri: https://langchain.readthedocs.io/en/latest/
  3. Apache Hava axını sənədləri: https://airflow.apache.org/docs/apache-airflow/stable/index.html
  4. Kubernetes sənədləri: https://kubernetes.io/docs/home/

Have Questions?

Let's Talk

Contact me on LinkedIn