RAG үүсгэх | B4N1

RAG үүсгэх

3 months ago · b4n1 Read time: 4 min

AI-ээр ажилладаг програм хангамжийн архитектурт зориулсан зохион байгуулалтын хэрэгслийг ашиглах

Танилцуулга

Хиймэл оюун ухаанаар ажилладаг програм хангамжийн архитектурын эрэлт нэмэгдэж байгаа нь хиймэл оюун ухаан (AI) болон машин сургалтын (ML) чадавхийг програм хангамжийн системд тасралтгүй нэгтгэх боломжийг олгодог төрөл бүрийн зохион байгуулалтын хэрэгслийг хөгжүүлэхэд хүргэсэн. Энэ нийтлэлд бид LangChain болон DSPy зэрэг зохион байгуулалтын хэрэгслүүдийг ашиглан хиймэл оюун ухаанд суурилсан програм хангамжийн архитектурын хэрэгжилтийг судалж, өргөтгөх чадвар, гүйцэтгэл, аюулгүй байдлыг сайжруулахын тулд RAG (Үндэслэл ба Action Graph) болон LLM (Том хэлний загвар) чадавхийг нэгтгэхэд анхаарлаа хандуулах болно.

Оркестрийн хэрэгсэл гэж юу вэ?

Оркестрийн хэрэгслүүд нь олон үйлчилгээ, програм, системийг нэгтгэх замаар нарийн төвөгтэй ажлын урсгал, процессыг автоматжуулах боломжийг олгодог програм хангамжийн хүрээ юм. Эдгээр нь янз бүрийн бүрэлдэхүүн хэсгүүдийн хоорондын харилцан үйлчлэлийг удирдах, зохицуулах төвлөрсөн платформоор хангаж, даалгавруудыг үр ашигтай, өргөжүүлэх боломжтой болгодог.

LangChain: Python дээр суурилсан зохион байгуулалтын хэрэгсэл

LangChain бол хиймэл оюун ухаанаар ажилладаг програм хангамжийн архитектурыг бий болгох цогц хүрээг хангадаг нээлттэй эхийн Python номын сан юм. Энэ нь олон төрлийн функцуудыг санал болгодог, үүнд:

  • RAG (Үндэслэл ба Үйлдлийн График) Интеграци: LangChain нь AI-д суурилсан ажлын урсгалыг загварчлах, гүйцэтгэхэд ашиглаж болох нарийн төвөгтэй үндэслэл, үйлдлийн графикийг үүсгэх боломжийг олгодог RAG-ийн суурилуулалтыг хангадаг.
  • LLM (Large Language Model) интеграцчлал: LangChain нь байгалийн хэлийг боловсруулах, үүсгэх даалгаврын хувьд LLaMA болон BERT зэрэг LLM-үүдийг нэгтгэхийг дэмждэг.
  • ** Өргөтгөх чадвар ба гүйцэтгэл**: LangChain нь том хэмжээний хиймэл оюун ухааны ажлын ачааллыг зохицуулах зориулалттай бөгөөд даалгавруудыг үр ашигтай, өргөтгөх боломжтой гүйцэтгэлээр хангадаг.

** LangChain-тэй хиймэл оюун ухаанд суурилсан програм хангамжийн архитектурыг хэрэгжүүлэх**

LangChain ашиглан хиймэл оюун ухаанд суурилсан програм хангамжийн архитектурын хэрэгжилтийг харуулахын тулд RAG ашиглан хэрэглэгчийн асуусан асуултын талаар бодож, хариулт үүсгэдэг чатботын энгийн жишээг авч үзье.

langchain импортлох
langchain.chains импортын llm-ээс


өөдөс = langchain.RAG(
    нэр = "chatbot_rag",
    зангилаа=[
        {"нэр": "мэндчилгээ", "текст": "Сайн уу, би танд яаж туслах вэ?"},
        {"нэр": "баяртай", "текст": "Баяртай, чамтай чатлахад таатай байлаа."},
    ],
    ирмэгүүд=[
        {"-аас": "мэндчилгээ", "хүнд": "баяртай", "нөхцөл": "хэрэглэгч_баяртай"},
    ],
)

# LLM үүсгэх
llm = llm.LLM(
    нэр = "chatbot_llm",
    загвар = "лама",
    хамгийн их_токенс=100,
)

# Чатбот сүлжээ үүсгэ
хэлхээ = langchain.Chain(
    нэр = "chatbot_chain",
    llm = lm,
    өөдөс = өөдөс,
)

# Чатботыг туршиж үзээрэй
user_input = "Сайн уу, сайн уу?"
хариулт = chain.run(хэрэглэгчийн_оролт)
хэвлэх (хариу)

DSPy: Зэвэнд суурилсан найрал хөгжмийн хэрэгсэл

DSPy нь хиймэл оюун ухаанаар ажилладаг программ хангамжийн архитектурыг бий болгоход өндөр гүйцэтгэлтэй, өргөтгөх боломжтой хүрээг хангадаг Rust-д суурилсан зохион байгуулалтын хэрэгсэл юм. Энэ нь олон төрлийн функцуудыг санал болгодог, үүнд:

  • RAG (Reasoning and Action Graph) интеграцчилал: DSPy нь AI-д суурилсан ажлын урсгалыг загварчлах, гүйцэтгэхэд ашиглаж болох нарийн төвөгтэй үндэслэл, үйлдлийн график үүсгэх боломжийг олгодог RAG-ийн суурилуулсан хэрэгжилтийг хангадаг.
  • LLM (Том хэлний загвар) интеграцчилал: DSPy нь байгалийн хэлийг боловсруулах, үүсгэх ажлуудад зориулж LLaMA болон BERT зэрэг LLM-үүдийг нэгтгэхийг дэмждэг.
  • ** Өргөтгөх чадвар ба гүйцэтгэл**: DSPy нь том хэмжээний хиймэл оюун ухааны ажлын ачааллыг зохицуулах зориулалттай бөгөөд даалгавруудыг үр ашигтай, өргөтгөх боломжтой гүйцэтгэлээр хангадаг.

DSPy-тэй хиймэл оюун ухаанд суурилсан програм хангамжийн архитектурыг хэрэгжүүлэх

DSPy ашиглан хиймэл оюун ухаанд суурилсан програм хангамжийн архитектурын хэрэгжилтийг харуулахын тулд хэрэглэгчийн асуултын талаар бодож, хариулт үүсгэхийн тулд RAG ашигладаг чатботын энгийн жишээг авч үзье.

dspy::chain ашиглах;
dspy ::llm ашиглах;

// RAG үүсгэх
let rag = гинж::RAG::new(
    "chatbot_rag",
    вэ![
        chain::Node::new("мэндчилгээ", "Сайн уу, би чамд яаж туслах вэ?"),
        chain::Node::new("баяртай", "Баяртай, чамтай чатлахад таатай байлаа."),
    ],
    вэ![
        chain::Edge::new("мэндчилгээ", "баяртай", "хэрэглэгч_баяртай"),
    ],
);

// LLM үүсгэх
let llm = llm::LLM::new(
    "chatbot_llm",
    "лама",
    100,
);

// Чатботын сүлжээ үүсгэх
гинж = гинж::Гинж::шинэ(
    "chatbot_chain",
    llm,
    өөдөс,
);

// Чатботыг туршиж үзэх
let user_input = "Сайн уу, сайн уу?";
хариултыг зөвшөөрөх = chain.run(хэрэглэгчийн_оролт);
println!("{}", хариулт);

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

LangChain болон DSPy-д зориулсан хамгийн түгээмэл хэрэглэгддэг командууд болон хэсгүүдийг энд оруулав.

  • LangChain:
    • langchain.RAG(): Шинэ RAG жишээ үүсгэнэ.
    • langchain.LLM(): Шинэ LLM жишээ үүсгэнэ.
    • langchain.Chain(): Шинэ хэлхээний жишээ үүсгэнэ.
    • rag.run(): RAG-г ажиллуулж, хариуг үүсгэдэг.
    • llm.run(): LLM-г ажиллуулж, хариулт үүсгэдэг.
  • DSPy:
    • dspy::chain::RAG::new(): Шинэ RAG жишээ үүсгэнэ.
    • dspy::llm::LLM::new(): Шинэ LLM жишээ үүсгэнэ.
    • dspy::chain::Chain::new(): Шинэ хэлхээний жишээг үүсгэнэ.
    • chain.run(): Гинжийг ажиллуулж, хариу үүсгэдэг.

Дүрслэл

Chart.js ашиглан RAG болон LLM-ийн боломжуудын энгийн дүрслэл энд байна:

const ctx = document.getElementById('myChart').getContext('2d');
const диаграм = шинэ график(ctx, {
    төрөл: 'bar',
    өгөгдөл: {
        шошго: ['RAG', 'LLM'],
        өгөгдлийн багц: [{
            шошго: 'чадварууд',
            өгөгдөл: [10, 20],
            дэвсгэр өнгө: [
                'rgba(255, 99, 132, 0.2)',
                'rgba(54, 162, 235, 0.2)',
            ],
            хилийн өнгө: [
                'rgba(255, 99, 132, 1)',
                'rgba(54, 162, 235, 1)',
            ],
            хилийн өргөн: 1
        }]
    },
    сонголтууд: {
        жин: {
            y: {
                startAtZero: үнэн
            }
        }
    }
});

Дүгнэлт

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

Зөвлөмж

Энэ нийтлэл дэх хэлэлцүүлэгт үндэслэн LangChain болон DSPy ашиглан хиймэл оюун ухаанд суурилсан програм хангамжийн архитектурыг хэрэгжүүлэхийг хүсч буй хөгжүүлэгчдэд зориулсан зарим зөвлөмжийг энд оруулав.

  • LangChain болон DSPy-ийн үндсийг, түүний дотор RAG болон LLM-ийн чадварыг сурч эхэл.
  • Хэрэгслүүд хэрхэн ажилладагийг мэдрэхийн тулд chatbot-ын жишээ гэх мэт энгийн жишээнүүдийг туршиж үзээрэй.
  • Зөвлөмжийн систем эсвэл байгалийн хэлээр боловсруулах хоолой барих гэх мэт илүү төвөгтэй төслүүд рүү аажмаар шилжинэ.
  • Хамгийн их ашиглагддаг 5-10 тушаал/Хэсэг хэсгийг нийтлэг командууд болон хэсгүүдийн лавлах гарын авлага болгон ашиглаарай.
  • Өөр өөр бүрэлдэхүүн хэсгүүдийн хоорондын харилцааг илүү сайн ойлгохын тулд Chart.js ашиглан RAG болон LLM чадвараа төсөөл.

Эдгээр зөвлөмжийг дагаснаар хөгжүүлэгчид LangChain болон DSPy-ийн бүрэн чадавхийг нээж, нарийн төвөгтэй ажлын ачааллыг даван туулах, онцгой гүйцэтгэл, өргөтгөх чадварыг хангах хиймэл оюун ухаант програм хангамжийн архитектурыг бий болгож чадна.


Have Questions?

Let's Talk

Contact me on LinkedIn