Жетілдірілген DevOps үшін DSPy және LangChain көмегімен кең ауқымды LLM құбырларын ұйымдастыру | B4N1

Жетілдірілген DevOps үшін DSPy және LangChain көмегімен кең ауқымды LLM құбырларын ұйымдастыру

3 months ago · b4n1 Read time: 4 min

Жақсартылған DevOps үшін DSPy және LangChain көмегімен кең ауқымды LLM құбырларын ұйымдастыру

Кіріспе

Үлкен тілдік модельдердің (LLM) пайда болуы табиғи тілді өңдеу (NLP) және жасанды интеллект (AI) салаларында төңкеріс жасады. Дегенмен, LLM негізіндегі жүйелердің күрделілігі мен ауқымы артқан сайын, сенімді және тиімді оркестрлеу және автоматтандыру құралдарының қажеттілігі де артады. Бұл мақалада біз DSPy және LangChain әлеміне үңілеміз, бұл AI дәуірінде икемді және масштабталатын бағдарламалық жүйелерді құруға мүмкіндік беретін екі қуатты құрылым.

Үлкен ауқымды LLM құбырларының қиындығы

Үлкен ауқымды LLM құбырлары деректерді алдын ала өңдеуді, үлгіні оқытуды және қорытындыны қоса алғанда, бірнеше құрамдастарды қамтиды. Бұл құбыр желілері әртүрлі құрамдас бөліктер арасындағы көптеген тәуелділіктер мен өзара әрекеттесулері бар күрделі болуы мүмкін. Бұл құбырлардың ауқымы ұлғайған сайын қателер, кешігулер және ресурстардың тарылуы қаупі артады.

DSPy және LangChain енгізіңіз

DSPy және LangChain - бұл кең ауқымды LLM құбырларын ұйымдастыруды және автоматтандыруды жеңілдетуге бағытталған екі құрылым. DSPy - күрделі деректер құбырларын құрудың және басқарудың қарапайым және тиімді әдісін қамтамасыз ететін Python негізіндегі құрылым, ал LangChain - масштабталатын және икемді AI жүйелерін құруға мүмкіндік беретін құрылым.

DSPy: деректер құбырларына арналған Python негізіндегі құрылым

DSPy — күрделі деректер құбырларын құру және басқарудың қарапайым және тиімді әдісін қамтамасыз ететін Python негізіндегі құрылым. DSPy көмегімен әзірлеушілер масштабталатын, серпімді және жөндеуге оңай деректер құбырларын жасай алады.

Мұнда DSPy көмегімен жасалған қарапайым деректер құбырының мысалы келтірілген:

dspy файлын dsp ретінде импорттаңыз


data_source = dsp.Source(
    атауы = "менің_деректер_көзім",
    type="csv",
    path="/path/to/data.csv"
)

# Деректер процессорын анықтаңыз
data_processor = dsp.Processor(
    атауы = "менің_деректерім_процессорым",
    type = "пандалар",
    func=lambda x: x.dropna()
)

# Деректер қабылдағышты анықтаңыз
data_sink = dsp.Sink(
    атауы = "менің_деректерім_қосу",
    type="csv",
    path="/path/to/output.csv"
)

# Деректер құбырын жасаңыз
конвейер = dsp.Pipeline(
    атауы = "менің_құбырым",
    көздер=[деректер_көзі],
    процессорлар=[деректер_процессоры],
    раковиналар=[data_sink]
)

# Құбырды іске қосыңыз
pipeline.run()

Бұл мысалда біз деректер көзін, деректер процессорын және деректер қабылдағышты анықтаймыз, содан кейін осы құрамдастарды қосатын деректер құбырын жасаймыз. Содан кейін құбыр «run()» әдісі арқылы іске қосылады.

LangChain: масштабталатын және серпімді AI жүйелеріне арналған құрылым

LangChain - масштабталатын және икемді AI жүйелерін құруға мүмкіндік беретін құрылым. LangChain көмегімен әзірлеушілер техникалық қызмет көрсету оңай, масштабталатын және сәтсіздіктерге төзімді AI жүйелерін жасай алады.

Міне, LangChain көмегімен жасалған қарапайым AI жүйесінің мысалы:

lc ретінде импорттау langchain

# Модельді анықтаңыз
үлгі = lc.Model(
    атауы = "менің_моделім",
    түрі = "трансформатор",
    path="/path/to/model"
)

# Шақыруды анықтаңыз
шақыру = lc.Prompt(
    атауы = "менің_сұрауым",
    text="Бұл үлгі нұсқау"
)

# AI жүйесін жасаңыз
ai_system = lc.AISystem(
    атауы = "менің_ай_жүйесім",
    үлгі=үлгі,
    шақыру = шақыру
)

# AI жүйесін іске қосыңыз
ai_system.run()

Бұл мысалда біз үлгіні, шақыруды анықтаймыз, содан кейін осы құрамдастарды қосатын AI жүйесін жасаймыз. Одан кейін AI жүйесі run() әдісі арқылы іске қосылады.

DSPy және LangChain көмегімен кең ауқымды LLM құбырларын ұйымдастыру

DSPy және LangChain көмегімен кең ауқымды LLM құбырларын ұйымдастыру үшін біз келесі тәсілді пайдалана аламыз:

  1. Бірнеше деректер көздерін, процессорларды және раковиналарды қосатын DSPy көмегімен деректер құбырын анықтаңыз.
  2. Бірнеше үлгілерді, шақыруларды және шығыстарды қосатын LangChain көмегімен AI жүйесін анықтаңыз.
  3. Деректер құбырын басқару үшін DSPy және AI жүйесін басқару үшін LangChain пайдаланыңыз.
  4. Деректер құбыры мен AI жүйесінің орындалуын жоспарлау үшін Apache Airflow немесе Kubernetes сияқты жоспарлаушыны пайдаланыңыз.

Мұнда DSPy және LangChain пайдаланатын қарапайым оркестрлік сценарийдің мысалы келтірілген:

dspy файлын dsp ретінде импорттаңыз
lc ретінде импорттау langchain
apache_airflow файлын af ретінде импорттаңыз

# Деректер құбырын анықтаңыз
data_pipeline = dsp.Pipeline(
    атауы = "менің_деректерім_құбыры",
    көздер=[dsp.Көзі(аты="менің_деректер_көзім", түрі="csv", жол="/path/to/data.csv")],
    процессорлар=[dsp.Процессор(аты="менің_деректер_процессоры", түрі="pandas", функция=lambda x: x.dropna())],
    раковиналар=[dsp.Sink(атауы = "менің_деректерім_жуғышы", түрі="csv", жол="/path/to/output.csv")]
)

# AI жүйесін анықтаңыз
ai_system = lc.AISystem(
    атауы = "менің_ай_жүйесім",
    модель=lc.Модель(аты="менің_моделім", түрі="трансформатор", жол="/жол/үлгіге"),
    prompt=lc.Prompt(name="менің_сұрауым", text="Бұл үлгі шақыру")
)

# Деректер құбыры мен AI жүйесінің орындалуын жоспарлаңыз
af.schedule_task(
    task_id="менің_тапсырмам",
    dag_id="менің_дағым",
    конвейер=деректер_құбыры,
    system=ai_system
)

Бұл мысалда DSPy және LangChain көмегімен деректер құбырын және AI жүйесін анықтаймыз, содан кейін Apache Airflow арқылы осы құрамдастардың орындалуын жоспарлаймыз.

Ең көп қолданылатын 5-10 пәрмендер/үзінділер

Міне, DSPy және LangChain үшін ең көп қолданылатын 5-10 командалар/үзінділер:

  1. dsp.Pipeline(аты="менің_құбырым", көздер=[дереккөз], процессорлар=[процессор], раковиналар=[қосу])
  2. lc.Model(аты="менің_үлгім", түрі="трансформатор", жол="/жол/үлгіге")
  3. lc.Prompt(name="my_prompt", text="Бұл үлгі шақыру")
  4. dsp.Source(name="my_data_source", түрі="csv", path="/path/to/data.csv")
  5. dsp.Processor(name="my_data_processor", type="pandas", func=lambda x: x.dropna())
  6. dsp.Sink(аты="my_data_sink", type="csv", path="/path/to/output.csv")
  7. lc.AISystem(аты="my_ai_жүйесі", үлгі=үлгі, шақыру=шақыру)
  8. af.schedule_task(task_id="менің_тапсырмам", dag_id="my_dag", конвейер=құбыр, жүйе=жүйе)
  9. dsp.run_pipeline(құбыр)
  10. lc.run_system(жүйе)

визуализация

Мұнда Chart.js көмегімен DSPy және LangChain құрылымдарының визуализациясы берілген:

{
  "түрі": "бар",
  «деректер»: {
    "labels": ["DSPy", "LangChain"],
    "деректер жинағы": [
      {
        "label": "Мүмкіндіктер",
        "деректер": [10, 15],
        "фон түсі": [
          "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
      }
    ]
  },
  "опциялар": {}
}

Бұл визуализация DSPy және LangChain мүмкіндіктерінің санын көрсетеді.

Қорытынды

Қорытындылай келе, DSPy және LangChain - бұл AI дәуірінде икемді және масштабталатын бағдарламалық жүйелерді құруға мүмкіндік беретін екі қуатты құрылым. Осы құрылымдарды пайдалану арқылы әзірлеушілер техникалық қызмет көрсету оңай, масштабталатын және сәтсіздіктерге төзімді кең ауқымды LLM құбырларын жасай алады. 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 Airflow құжаттамасы: https://airflow.apache.org/docs/apache-airflow/stable/index.html
  4. Kubernetes құжаттамасы: https://kubernetes.io/docs/home/

Have Questions?

Let's Talk

Contact me on LinkedIn