Сайжруулсан DevOps-д зориулж DSPy болон LangChain-тай том хэмжээний LLM дамжуулах хоолойг зохион байгуулах | B4N1

Сайжруулсан DevOps-д зориулж DSPy болон LangChain-тай том хэмжээний LLM дамжуулах хоолойг зохион байгуулах

6 months ago · b4n1 Read time: 4 min

Сайжруулсан DevOps-д зориулж DSPy болон LangChain-тай том хэмжээний LLM дамжуулах хоолойг зохион байгуулах

Танилцуулга

Large Language Models (LLMs) гарч ирснээр байгалийн хэл боловсруулах (NLP) болон хиймэл оюун ухаан (AI) салбарт хувьсгал хийсэн. Гэсэн хэдий ч LLM-д суурилсан системийн нарийн төвөгтэй байдал, цар хүрээ нэмэгдэхийн хэрээр бат бөх, үр ашигтай зохион байгуулалт, автоматжуулалтын хэрэгслүүдийн хэрэгцээ нэмэгдэж байна. Энэ нийтлэлд бид хиймэл оюун ухааны эрин үед уян хатан, өргөтгөх боломжтой програм хангамжийн системийг бий болгох боломжийг олгодог хүчирхэг хоёр систем болох DSPy болон LangChain-ийн ертөнцийг судлах болно.

Том хэмжээний LLM дамжуулах хоолойн сорилт

Том хэмжээний LLM дамжуулах хоолой нь мэдээллийн урьдчилсан боловсруулалт, загварчлалын сургалт, дүгнэлт зэрэг олон бүрэлдэхүүн хэсгүүдийг агуулдаг. Эдгээр дамжуулах хоолой нь янз бүрийн бүрэлдэхүүн хэсгүүдийн хоорондын олон хамаарал, харилцан үйлчлэлтэй нарийн төвөгтэй байж болно. Эдгээр дамжуулах хоолойн цар хүрээ нэмэгдэхийн хэрээр алдаа, саатал, нөөцийн саатал үүсэх эрсдэл нэмэгддэг.

DSPy болон LangChain-г оруулна уу

DSPy болон LangChain нь том хэмжээний LLM дамжуулах хоолойн зохион байгуулалт, автоматжуулалтыг хялбаршуулах зорилготой хоёр хүрээ юм. DSPy нь Python-д суурилсан бүтэц бөгөөд нарийн төвөгтэй өгөгдлийн дамжуулах шугамыг барьж, удирдах энгийн бөгөөд үр ашигтай арга замыг өгдөг бол LangChain нь өргөтгөх боломжтой, уян хатан хиймэл оюун ухааны системийг бий болгох боломжийг олгодог хүрээ юм.

DSPy: Мэдээллийн дамжуулах хоолойн Python-д суурилсан хүрээ

DSPy нь Python-д суурилсан бүтэц бөгөөд нарийн төвөгтэй өгөгдлийн дамжуулах шугамыг бий болгох, удирдах энгийн бөгөөд үр дүнтэй арга юм. DSPy-ийн тусламжтайгаар хөгжүүлэгчид өргөтгөх боломжтой, уян хатан, засвар үйлчилгээ хийхэд хялбар өгөгдөл дамжуулах шугам үүсгэж чадна.

DSPy-ээр бүтээгдсэн энгийн өгөгдөл дамжуулах хоолойн жишээ энд байна:

dspy-г dsp болгон импортлох


data_source = dsp.Source(
    нэр = "миний_өгөгдлийн_эх сурвалж",
    төрөл = "csv",
    path="/path/to/data.csv"
)

# Өгөгдлийн процессорыг тодорхойлох
data_processor = dsp.Processor(
    нэр = "миний_өгөгдлийн_процессор",
    төрөл = "панда",
    func=lambda x: x.dropna()
)

# Өгөгдөл шингээгчийг тодорхойлох
data_sink = dsp.Sink(
    нэр = "миний_өгөгдлийн_синк",
    төрөл = "csv",
    path="/path/to/output.csv"
)

# Өгөгдлийн шугам үүсгэх
дамжуулах хоолой = dsp.Pipeline(
    нэр = "миний_ дамжуулах хоолой",
    эх сурвалж=[өгөгдлийн_эх сурвалж],
    процессор=[өгөгдлийн_процессор],
    угаалтуур=[өгөгдлийн_синк]
)

# Дамжуулах хоолойг ажиллуул
pipeline.run()

Энэ жишээнд бид өгөгдлийн эх үүсвэр, өгөгдлийн процессор, өгөгдөл шингээгчийг тодорхойлж, дараа нь эдгээр бүрэлдэхүүн хэсгүүдийг холбосон өгөгдлийн шугамыг бий болгодог. Дараа нь дамжуулах хоолойг run() аргыг ашиглан ажиллуулна.

LangChain: Өргөтгөх боломжтой, уян хатан хиймэл оюун ухааны системд зориулсан хүрээ

LangChain нь өргөтгөх боломжтой, уян хатан AI системийг бий болгох боломжийг олгодог хүрээ юм. LangChain-ийн тусламжтайгаар хөгжүүлэгчид засвар үйлчилгээ хийхэд хялбар, өргөтгөх боломжтой, бүтэлгүйтэлд тэсвэртэй хиймэл оюун ухааны системийг бий болгож чадна.

LangChain ашиглан бүтээсэн энгийн хиймэл оюун ухааны системийн жишээ энд байна.

langchain-ийг lc болгон импортлох

# Загвараа тодорхойлох
загвар = lc.Загвар(
    нэр = "миний_загвар",
    төрөл = "трансформатор",
    зам = "/зам/загвар"
)

# Сануулгыг тодорхойлох
prompt = lc.Prompt(
    нэр = "миний_саналт",
    text="Энэ бол жишээ сануулга"
)

# AI системийг бий болгох
ai_system = lc.AISystem(
    нэр = "миний_ai_систем",
    загвар=загвар,
    prompt=prompt
)

# 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 болгон импортлох
langchain-ийг lc болгон импортлох
apache_airflow-г af гэж импортлох

# Өгөгдлийн шугамыг тодорхойлох
data_pipeline = dsp.Pipeline(
    нэр = "миний_өгөгдлийн_дам",
    эх сурвалж=[dsp.Source(нэр="миний_өгөгдлийн_эх сурвалж", төрөл="csv", зам="/path/to/data.csv")],
    процессорууд=[dsp.Processor(нэр="my_data_processor", type="pandas", func=lambda x: x.dropna())],
    угаалтуур=[dsp.Sink(нэр="my_data_sink", type="csv", path="/path/to/output.csv")]
)

# AI системийг тодорхойлох
ai_system = lc.AISystem(
    нэр = "миний_ai_систем",
    загвар=lc.Загвар(нэр="миний_загвар", төрөл="трансформатор", зам="/зам/загвар"),
    prompt=lc.Prompt(name="my_prompt", text="Энэ бол жишээ сануулга")
)

# Өгөгдлийн дамжуулах хоолой болон AI системийг гүйцэтгэх хуваарь
af.schedule_task(
    task_id = "миний_даалгавар",
    dag_id = "миний_даг",
    дамжуулах хоолой = өгөгдөл_ дамжуулах хоолой,
    систем=ai_систем
)

Энэ жишээнд бид DSPy болон LangChain ашиглан өгөгдлийн дамжуулах хоолой болон AI системийг тодорхойлж, дараа нь Apache Airflow ашиглан эдгээр бүрэлдэхүүн хэсгүүдийн гүйцэтгэлийг төлөвлөх болно.

Хамгийн их ашиглагддаг 5-10 тушаал/хэсэг

DSPy болон LangChain-д хамгийн их ашиглагддаг 5-10 тушаал/хэсэг энд байна:

  1. dsp.Pipeline(нэр="my_pipeline", эх сурвалж=[эх сурвалж], процессорууд=[процессор], угаалтуур=[синк])
  2. lc.Загвар(нэр="миний_загвар", төрөл="трансформатор", зам="/зам/загвар")
  3. lc.Prompt(name="my_prompt", text="Энэ бол жишээ сануулга")
  4. dsp.Source(нэр="миний_өгөгдлийн_эх сурвалж", төрөл="csv", зам="/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(нэр =="my_ai_system", загвар=загвар, сануулга=prompt)
  8. af.schedule_task(task_id="my_task", dag_id="my_dag", дамжуулах хоолой=дамжуулах хоолой, систем=систем)
  9. dsp.run_pipeline(pipeline)
  10. lc.run_system(систем)

Дүрслэл

Chart.js ашиглан DSPy болон LangChain хүрээнүүдийн дүрслэлийг энд үзүүлэв.

{
  "төрөл": "бар",
  "өгөгдөл": {
    "шошго": ["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)"
        ],
        "хилийн өргөн": 1
      }
    ]
  },
  "сонголт": {}
}

Энэхүү дүрслэл нь DSPy болон LangChain дахь функцуудын тоог харуулж байна.

Дүгнэлт

DSPy болон LangChain нь хиймэл оюун ухааны эрин үед уян хатан, өргөтгөх боломжтой програм хангамжийн системийг бий болгох боломжийг олгодог хүчирхэг хоёр хүрээ юм. Эдгээр хүрээг ашигласнаар хөгжүүлэгчид засвар үйлчилгээ хийхэд хялбар, өргөтгөх боломжтой, бүтэлгүйтэлд тэсвэртэй том хэмжээний 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