Yaxshilangan DevOps uchun DSPy va LangChain bilan keng miqyosli LLM quvurlarini tashkil qilish | B4N1

Yaxshilangan DevOps uchun DSPy va LangChain bilan keng miqyosli LLM quvurlarini tashkil qilish

3 months ago · b4n1 Read time: 4 min

Takomillashtirilgan DevOps uchun DSPy va LangChain bilan keng miqyosli LLM quvurlarini tashkil qilish

Kirish

Katta til modellarining (LLM) paydo bo'lishi tabiiy tillarni qayta ishlash (NLP) va sun'iy intellekt (AI) sohalarida inqilob qildi. Biroq, LLM-ga asoslangan tizimlarning murakkabligi va ko'lami oshgani sayin, mustahkam va samarali orkestratsiya va avtomatlashtirish vositalariga ehtiyoj ortib bormoqda. Ushbu maqolada biz DSPy va LangChain dunyosini ko'rib chiqamiz, ular sun'iy intellekt davrida bardoshli va kengaytiriladigan dasturiy ta'minot tizimlarini yaratishga imkon beruvchi ikkita kuchli ramkalar.

Katta miqyosli LLM quvurlarining muammosi

Katta miqyosdagi LLM quvurlari bir nechta komponentlarni o'z ichiga oladi, jumladan ma'lumotlarni qayta ishlash, modelni o'qitish va xulosa chiqarish. Ushbu quvurlar murakkab bo'lishi mumkin, ular turli xil tarkibiy qismlar o'rtasida ko'plab bog'liqliklar va o'zaro ta'sirlarga ega. Ushbu quvurlarning ko'lami oshgani sayin, xatolar, kechikishlar va resurslarning to'xtash xavfi ortadi.

DSPy va LangChain-ga kiring

DSPy va LangChain - bu keng miqyosli LLM quvurlarini boshqarish va avtomatlashtirishni soddalashtirishga qaratilgan ikkita ramka. DSPy - bu Python-ga asoslangan tizim bo'lib, u murakkab ma'lumotlar quvurlarini qurish va boshqarishning sodda va samarali usulini ta'minlaydi, LangChain esa kengaytiriladigan va moslashuvchan AI tizimlarini yaratishga imkon beruvchi ramka.

DSPy: ma'lumotlar quvurlari uchun Python-ga asoslangan ramka

DSPy - bu murakkab ma'lumotlar quvurlarini qurish va boshqarishning oddiy va samarali usulini ta'minlovchi Python-ga asoslangan ramka. DSPy yordamida ishlab chiquvchilar kengaytiriladigan, bardoshli va texnik xizmat ko'rsatish oson bo'lgan ma'lumotlar quvurlarini yaratishi mumkin.

Bu erda DSPy bilan qurilgan oddiy ma'lumot uzatish liniyasiga misol:

dspy ni dsp sifatida import qiling


data_source = dsp.Source(
    nomi = "mening_ma'lumotlar_manbam",
    type = "csv",
    path="/path/to/data.csv"
)

# Ma'lumotlar protsessorini aniqlang
data_processor = dsp.processor(
    nomi = "mening_ma'lumotlar_protsessorim",
    turi = "pandalar",
    func=lambda x: x.dropna()
)

# Ma'lumotlar to'plamini aniqlang
data_sink = dsp.Sink(
    nomi = "mening_ma'lumotlarim_sink",
    type = "csv",
    path="/path/to/output.csv"
)

# Ma'lumotlar quvurini yarating
quvur liniyasi = dsp. Pipeline(
    name="mening_quvurim",
    manbalar=[ma'lumotlar_manba],
    protsessorlar=[ma'lumotlar_protsessor],
    lavabolar=[data_sink]
)

# Quvurni ishga tushiring
pipeline.run()

Ushbu misolda biz ma'lumotlar manbasini, ma'lumotlar protsessorini va ma'lumotlar yig'uvchisini aniqlaymiz, so'ngra ushbu komponentlarni bog'laydigan ma'lumotlar quvurini yaratamiz. Keyin quvur liniyasi “run()” usuli yordamida ishga tushiriladi.

LangChain: kengaytiriladigan va chidamli AI tizimlari uchun asos

LangChain - kengaytiriladigan va moslashuvchan AI tizimlarini yaratishga imkon beruvchi ramka. LangChain yordamida ishlab chiquvchilar texnik xizmat ko‘rsatish oson, kengaytiriladigan va nosozliklarga chidamli AI tizimlarini yaratishi mumkin.

LangChain yordamida yaratilgan oddiy AI tizimining misoli:

langchainni lc sifatida import qiling

# Modelni aniqlang
model = lc.Model(
    nomi = "mening_modelim",
    turi = "transformator",
    path="/path/to/model"
)

# So'rovni aniqlang
prompt = lc.Prompt(
    name="mening_so'rovim",
    text="Bu so'rov namunasi"
)

# AI tizimini yarating
ai_system = lc.AISystem(
    name="mening_ai_tizim",
    model = model,
    prompt=prompt
)

# AI tizimini ishga tushiring
ai_system.run()

Ushbu misolda biz modelni, taklifni aniqlaymiz va keyin ushbu komponentlarni bog'laydigan AI tizimini yaratamiz. Keyin AI tizimi “run()” usuli yordamida ishga tushiriladi.

DSPy va LangChain yordamida yirik LLM quvurlarini tashkil qilish

DSPy va LangChain bilan keng miqyosli LLM quvurlarini tashkil qilish uchun biz quyidagi yondashuvdan foydalanishimiz mumkin:

  1. Bir nechta ma'lumot manbalari, protsessorlar va lavabolarni bog'laydigan DSPy yordamida ma'lumotlar uzatish liniyasini aniqlang.
  2. Bir nechta modellar, takliflar va chiqishlarni bog'laydigan LangChain yordamida AI tizimini aniqlang.
  3. Ma'lumotlar quvurini boshqarish uchun DSPy va AI tizimini boshqarish uchun LangChain-dan foydalaning.
  4. Ma'lumotlar uzatish liniyasi va AI tizimining bajarilishini rejalashtirish uchun Apache Airflow yoki Kubernetes kabi rejalashtiruvchidan foydalaning.

Mana DSPy va LangChain-dan foydalanadigan oddiy orkestr skriptiga misol:

dspy ni dsp sifatida import qiling
langchainni lc sifatida import qiling
apache_airflow ni af sifatida import qiling

# Ma'lumot uzatish liniyasini aniqlang
data_pipeline = dsp.Pipeline(
    nomi = "mening_ma'lumotlar_quvurim",
    manbalar=[dsp.Source(name="mening_data_source", type="csv", path="/path/to/data.csv")],
    protsessorlar=[dsp.Protsessor(name="mening_ma'lumotlar_protsessorim", turi="pandalar", func=lambda x: x.dropna())],
    lavabolar=[dsp.Sink(name="my_data_sink", type="csv", path="/path/to/output.csv")]
)

# AI tizimini aniqlang
ai_system = lc.AISystem(
    name="mening_ai_tizim",
    model=lc.Model(name="mening_modelim", turi="transformator", yo'l="/yo'l/to/model"),
    prompt=lc.Prompt(name="mening_so'rovim", text="Bu maslahat namunasi")
)

# Ma'lumot uzatish liniyasi va AI tizimining bajarilishini rejalashtiring
af.schedule_task(
    task_id="mening_vazifam",
    dag_id="mening_dag",
    quvur liniyasi = ma'lumotlar_quvuri,
    system=ai_system
)

Ushbu misolda biz DSPy va LangChain yordamida ma'lumotlar uzatish liniyasi va AI tizimini aniqlaymiz va keyin Apache Airflow yordamida ushbu komponentlarning bajarilishini rejalashtiramiz.

Eng koʻp ishlatiladigan 5-10 ta buyruq/parchalar

DSPy va LangChain uchun eng ko'p ishlatiladigan 5-10 ta eng yaxshi buyruqlar/parchalar:

  1. dsp.Pipeline(name="mening_quvurim", manbalar=[manba], protsessorlar=[protsessor], lavabolar=[cho'kish])
  2. lc.Model(name="mening_modelim", turi="transformator", path="/path/to/model")
  3. lc.Prompt(name="mening_so'rovim", text="Bu so'rov namunasi")
  4. dsp.Source(name="mening_ma'lumotlar_manbam", turi="csv", path="/path/to/data.csv")
  5. dsp.Processor(name="mening_data_processor", type="pandas", func=lambda x: x.dropna())
  6. dsp.Sink(name="mening_ma'lumotlar_sink", turi="csv", path="/path/to/output.csv")
  7. lc.AISystem(name="my_ai_system", model=model, prompt=prompt)
  8. af.schedule_task(task_id="mening_vazifam", dag_id="mening_dag", quvur liniyasi=quvur, tizim=tizim)
  9. dsp.run_pipeline(pipeline)
  10. lc.run_system(tizim)

Vizualizatsiya

Mana Chart.js yordamida DSPy va LangChain ramkalarining vizualizatsiyasi:

{
  "turi": "bar",
  "ma'lumotlar": {
    "yorliqlar": ["DSPy", "LangChain"],
    "ma'lumotlar to'plami": [
      {
        "label": "Xususiyatlar",
        "ma'lumotlar": [10, 15],
        "fon rangi": [
          "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
      }
    ]
  },
  "variantlar": {}
}

Ushbu vizualizatsiya DSPy va LangChain-dagi xususiyatlar sonini ko'rsatadi.

Xulosa

Xulosa qilib aytadigan bo'lsak, DSPy va LangChain - bu sun'iy intellekt davrida bardoshli va kengaytiriladigan dasturiy ta'minot tizimlarini yaratishga imkon beruvchi ikkita kuchli ramka. Ushbu ramkalardan foydalangan holda, ishlab chiquvchilar texnik xizmat ko'rsatish oson, kengaytiriladigan va nosozliklarga chidamli bo'lgan keng ko'lamli LLM quvurlarini yaratishi mumkin. Apache Airflow va Kubernetes kabi orkestratsiya va avtomatlashtirish vositalari yordamida ishlab chiquvchilar ushbu quvurlar va tizimlarning bajarilishini rejalashtirishi mumkin, bu esa murakkab AI tizimlarini boshqarishni osonlashtiradi.

Kelajak ish

Kelajakdagi ishlar quyidagilarni o'z ichiga oladi:

  1. DSPy va LangChain uchun ko'proq xususiyatlarni ishlab chiqish.
  2. DSPy va LangChain ning ishlashi va miqyoslanishini yaxshilash.
  3. DSPy va LangChain uchun ko'proq orkestratsiya va avtomatlashtirish vositalarini ishlab chiqish.
  4. DSPy va LangChain uchun ko'proq vizualizatsiya va asboblar paneli yaratish.

Ma'lumotnomalar

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

Have Questions?

Let's Talk

Contact me on LinkedIn