สร้าง RAG | B4N1

สร้าง RAG

3 months ago · b4n1 Tiempo de lectura: 2 min

ใช้ประโยชน์จากเครื่องมือจัดระเบียบสำหรับสถาปัตยกรรมซอฟต์แวร์ที่ขับเคลื่อนด้วย AI

บทนำ

ความต้องการที่เพิ่มขึ้นสำหรับสถาปัตยกรรมซอฟต์แวร์ที่ขับเคลื่อนด้วย AI ได้นำไปสู่การพัฒนาเครื่องมือประสานต่างๆ ที่ช่วยให้สามารถบูรณาการความสามารถด้านปัญญาประดิษฐ์ (AI) และการเรียนรู้ของเครื่อง (ML) เข้ากับระบบซอฟต์แวร์ได้อย่างราบรื่น ในบทความนี้ เราจะสำรวจการใช้งานสถาปัตยกรรมซอฟต์แวร์ที่ขับเคลื่อนด้วย AI โดยใช้เครื่องมือการประสานเช่น LangChain และ DSPy โดยมุ่งเน้นไปที่การบูรณาการความสามารถ RAG (กราฟเหตุผลและการดำเนินการ) และ LLM (โมเดลภาษาขนาดใหญ่) เพื่อเพิ่มความสามารถในการปรับขนาด ประสิทธิภาพ และความปลอดภัย

เครื่องมือ Orchestration คืออะไร

เครื่องมือการจัดประสานคือเฟรมเวิร์กซอฟต์แวร์ที่ช่วยให้เวิร์กโฟลว์และกระบวนการที่ซับซ้อนเป็นอัตโนมัติโดยการรวมบริการ แอปพลิเคชัน และระบบต่างๆ เข้าด้วยกัน โดยเป็นแพลตฟอร์มแบบรวมศูนย์สำหรับการจัดการและประสานงานการโต้ตอบระหว่างส่วนประกอบต่างๆ เพื่อให้มั่นใจว่าการปฏิบัติงานมีประสิทธิภาพและปรับขนาดได้

LangChain: เครื่องมือจัดระเบียบแบบ Python


LangChain เป็นไลบรารี Python แบบโอเพ่นซอร์สที่ให้เฟรมเวิร์กที่ครอบคลุมสำหรับการสร้างสถาปัตยกรรมซอฟต์แวร์ที่ขับเคลื่อนด้วย AI มันมีคุณสมบัติที่หลากหลายรวมไปถึง:

  • การบูรณาการ RAG (กราฟเหตุผลและการดำเนินการ): LangChain นำเสนอการใช้งาน RAG ในตัว ช่วยให้สามารถสร้างกราฟการให้เหตุผลและกราฟการกระทำที่ซับซ้อน ที่สามารถใช้ในการสร้างแบบจำลองและดำเนินการเวิร์กโฟลว์ที่ขับเคลื่อนด้วย AI
  • การบูรณาการ LLM (โมเดลภาษาขนาดใหญ่): LangChain รองรับการบูรณาการของ LLM เช่น LLaMA และ BERT สำหรับการประมวลผลภาษาธรรมชาติและงานการสร้าง
  • ความสามารถในการปรับขนาดและประสิทธิภาพ: LangChain ได้รับการออกแบบมาเพื่อจัดการปริมาณงาน AI ขนาดใหญ่ ให้การดำเนินงานที่มีประสิทธิภาพและปรับขนาดได้

การนำสถาปัตยกรรมซอฟต์แวร์ที่ขับเคลื่อนด้วย AI ไปใช้ด้วย LangChain


เพื่อสาธิตการใช้งานสถาปัตยกรรมซอฟต์แวร์ที่ขับเคลื่อนด้วย AI โดยใช้ LangChain ลองพิจารณาตัวอย่างง่ายๆ ของแชทบอทที่ใช้ RAG เพื่อระบุเหตุผลเกี่ยวกับคำถามของผู้ใช้และสร้างการตอบกลับ

นำเข้า langchain
จาก langchain.chains นำเข้า llm


rag = langchain.RAG(
    ชื่อ = "แชทบอท_rag",
    โหนด=[
        {"name": "greeting", "text": "สวัสดี มีอะไรให้ช่วยไหม?"},
        {"name": "ลาก่อน", "text": "ลาก่อน ยินดีที่ได้คุยกับคุณ"},
    ],
    ขอบ=[
        {"จาก": "ทักทาย", "ถึง": "ลาก่อน", "เงื่อนไข": "user_says_goodbye"},
    ],
)

# สร้าง LLM
llm = llm.LLM(
    ชื่อ = "chatbot_llm",
    model="ลามะ",
    max_tokens=100,
)

# สร้างห่วงโซ่แชทบอท
โซ่ = langchain.Chain(
    ชื่อ = "แชทบอท_เชน",
    ไอแอลเอ็ม=ไอแอลเอ็ม,
    เศษผ้า = เศษผ้า
)

# ทดสอบแชทบอท
user_input = "สวัสดี คุณสบายดีไหม?"
การตอบสนอง = chain.run (user_input)
พิมพ์(ตอบกลับ)

DSPy: เครื่องมือจัดระเบียบแบบสนิม

DSPy เป็นเครื่องมือประสานแบบ Rust ที่ให้เฟรมเวิร์กประสิทธิภาพสูงและปรับขนาดได้สำหรับการสร้างสถาปัตยกรรมซอฟต์แวร์ที่ขับเคลื่อนด้วย AI มันมีคุณสมบัติที่หลากหลายรวมไปถึง:

  • การบูรณาการ RAG (กราฟเหตุผลและการดำเนินการ): DSPy นำเสนอการใช้งาน RAG ในตัว ช่วยให้สามารถสร้างกราฟการให้เหตุผลและกราฟการกระทำที่ซับซ้อน ที่สามารถใช้ในการสร้างแบบจำลองและดำเนินการเวิร์กโฟลว์ที่ขับเคลื่อนด้วย AI
  • การบูรณาการ LLM (โมเดลภาษาขนาดใหญ่): DSPy รองรับการบูรณาการของ LLM เช่น LLaMA และ BERT สำหรับการประมวลผลภาษาธรรมชาติและงานการสร้าง
  • ความสามารถในการปรับขนาดและประสิทธิภาพ: DSPy ได้รับการออกแบบมาเพื่อจัดการปริมาณงาน AI ขนาดใหญ่ ให้การดำเนินงานที่มีประสิทธิภาพและปรับขนาดได้

การนำสถาปัตยกรรมซอฟต์แวร์ที่ขับเคลื่อนด้วย AI ไปใช้ด้วย DSPy


เพื่อสาธิตการใช้งานสถาปัตยกรรมซอฟต์แวร์ที่ขับเคลื่อนด้วย AI โดยใช้ DSPy ลองพิจารณาตัวอย่างง่ายๆ ของแชทบอตที่ใช้ RAG เพื่อให้เหตุผลเกี่ยวกับการสอบถามของผู้ใช้และสร้างการตอบกลับ

ใช้ dspy::chain;
ใช้ dspy::llm;

// สร้าง RAG
ให้ rag = chain::RAG::new(
    "แชทบอท_rag",
    เวค![
        chain::Node::new("สวัสดี", "สวัสดี มีอะไรให้ช่วยไหม?"),
        chain::Node::new("ลาก่อน", "ลาก่อน ยินดีที่ได้คุยกับคุณ")
    ],
    เวค![
        chain::Edge::new("ทักทาย", "ลาก่อน", "user_says_goodbye"),
    ],
);

// สร้าง LLM
ให้ llm = llm::LLM::new(
    "แชทบอท_llm",
    "ลามะ"
    100,
);

// สร้างห่วงโซ่แชทบอท
ให้ chain = chain::Chain::new(
    "แชทบอท_เชน",
    ฉันจะ
    ผ้าขี้ริ้ว,
);

// ทดสอบแชทบอท
ให้ user_input = "สวัสดี คุณสบายดีไหม";
ให้การตอบสนอง = chain.run(user_input);
println!("{}", ตอบกลับ);

คำสั่ง/ตัวอย่างที่ใช้มากที่สุด 5-10 อันดับแรก

นี่คือคำสั่งและตัวอย่างบางส่วนที่ใช้บ่อยที่สุดสำหรับ LangChain และ DSPy:

  • แลงเชน:
    • 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(): รันเชนและสร้างการตอบกลับ

การแสดงภาพ

นี่คือการแสดงภาพความสามารถของ RAG และ LLM อย่างง่ายโดยใช้ Chart.js:

const ctx = document.getElementById('myChart').getContext('2d');
แผนภูมิ const = แผนภูมิใหม่ (ctx, {
    ประเภท: 'บาร์',
    ข้อมูล: {
        ป้ายกำกับ: ['RAG', 'LLM'],
        ชุดข้อมูล: [{
            ป้ายกำกับ: 'ความสามารถ',
            ข้อมูล: [10, 20],
            สีพื้นหลัง: [
                'อาร์จีบีเอ(255, 99, 132, 0.2)',
                'อาร์จีบีเอ(54, 162, 235, 0.2)',
            ],
            ขอบสี: [
                'อาร์จีบีเอ(255, 99, 132, 1)',
                'อาร์จีบีเอ(54, 162, 235, 1)',
            ],
            เส้นขอบกว้าง: 1
        }]
    },
    ตัวเลือก: {
        ตาชั่ง: {
            ใช่: {
                startAtZero: จริง
            }
        }
    }
});

บทสรุป

โดยสรุป LangChain และ DSPy เป็นเครื่องมือประสานที่มีประสิทธิภาพที่ช่วยให้สามารถนำสถาปัตยกรรมซอฟต์แวร์ที่ขับเคลื่อนด้วย AI ไปใช้โดยใช้ความสามารถของ RAG และ LLM ด้วยการใช้ประโยชน์จากเครื่องมือเหล่านี้ นักพัฒนาสามารถสร้างระบบซอฟต์แวร์ที่ปรับขนาดได้ มีประสิทธิภาพ และปลอดภัย ซึ่งสามารถรองรับปริมาณงาน AI ที่ซับซ้อนได้ ด้วยความง่ายในการใช้งานและความยืดหยุ่น LangChain และ DSPy จึงเป็นตัวเลือกที่สมบูรณ์แบบสำหรับการสร้างสถาปัตยกรรมซอฟต์แวร์ที่ขับเคลื่อนด้วย AI

ข้อแนะนำ

จากการสนทนาในบทความนี้ ต่อไปนี้เป็นคำแนะนำบางส่วนสำหรับนักพัฒนาที่ต้องการใช้สถาปัตยกรรมซอฟต์แวร์ที่ขับเคลื่อนด้วย AI โดยใช้ LangChain และ DSPy:

  • เริ่มต้นด้วยการเรียนรู้พื้นฐานของ LangChain และ DSPy รวมถึงความสามารถ RAG และ LLM
  • ทดลองใช้ตัวอย่างง่ายๆ เช่น ตัวอย่างแชทบอท เพื่อทำความเข้าใจว่าเครื่องมือทำงานอย่างไร
  • ค่อยๆ ก้าวไปสู่โปรเจ็กต์ที่ซับซ้อนมากขึ้น เช่น การสร้างระบบการแนะนำหรือไปป์ไลน์การประมวลผลภาษาธรรมชาติ
  • ใช้ส่วนคำสั่ง/ตัวอย่างที่ใช้มากที่สุด 5-10 อันดับแรกเป็นแนวทางอ้างอิงสำหรับคำสั่งและตัวอย่างทั่วไป
  • แสดงภาพความสามารถ RAG และ LLM ของคุณโดยใช้ Chart.js เพื่อทำความเข้าใจความสัมพันธ์ระหว่างส่วนประกอบต่างๆ ให้ดียิ่งขึ้น

ด้วยการทำตามคำแนะนำเหล่านี้ นักพัฒนาสามารถปลดล็อกศักยภาพทั้งหมดของ LangChain และ DSPy และสร้างสถาปัตยกรรมซอฟต์แวร์ที่ขับเคลื่อนด้วย AI ซึ่งสามารถจัดการเวิร์กโหลดที่ซับซ้อน พร้อมมอบประสิทธิภาพและความสามารถในการปรับขนาดที่ยอดเยี่ยม


¿Tienes preguntas?

Hablemos

Contáctame en LinkedIn