- DSPy (Declarative Self-improving Python) เป็นเฟรมเวิร์กที่ออกแบบมาเพื่อควบคุมภาษาจำลอง (LM) ผ่านการเขียนโปรแกรม
- สามารถสร้างระบบ AI แบบโมดูลาร์ได้อย่างรวดเร็ว ตั้งแต่ตัวจำแนกอย่างง่ายไปจนถึงไปป์ไลน์ RAG ที่ซับซ้อนและเอเจนต์ลูป พร้อมทั้งมีอัลกอริทึมสำหรับปรับแต่งพรอมป์ต์และค่าน้ำหนัก
- แทนที่จะใช้พรอมป์ต์ที่ไม่เสถียรแบบเดิม สามารถเขียนโค้ด Python ที่ประกอบต่อกันได้ เพื่อสร้างระบบ AI แบบโมดูลาร์อย่างรวดเร็ว และฝึกให้ LM สร้างผลลัพธ์คุณภาพสูงได้
- ใช้ Module เพื่ออธิบายพฤติกรรมของ AI ด้วยโค้ดแทนสตริง
- การสร้างระบบ AI ที่เชื่อถือได้จำเป็นต้องทำซ้ำและปรับปรุงได้อย่างรวดเร็ว
- แต่การดูแลรักษาพรอมป์ต์ทำได้ยาก เพราะทุกครั้งที่เปลี่ยน LM, เมตริก หรือไปป์ไลน์ ก็ต้องแก้สตริงหรือข้อมูลตามไปด้วย
- DSPy ถูกพัฒนาขึ้นเพื่อแยกการนิยามระบบ LM ออกจากตัวเลือกที่ซับซ้อนซึ่งผูกกับ LM เฉพาะตัวหรือกลยุทธ์การพรอมป์ต์
- แนวทางการเขียนโปรแกรมของ DSPy
- DSPy เปลี่ยนจุดเน้นจากการปรับแต่งสตริงพรอมป์ต์ ไปสู่การเขียนโปรแกรมด้วยโมดูลภาษาธรรมชาติแบบมีโครงสร้างและเชิงประกาศ
- กำหนดพฤติกรรมอินพุต/เอาต์พุตขององค์ประกอบ AI ทุกส่วนในระบบเป็น signature และเลือกโมดูลเพื่อกำหนดกลยุทธ์การเรียกใช้ LM
- DSPy สามารถขยาย signature ให้เป็นพรอมป์ต์ และพาร์สเอาต์พุตที่มีการระบุชนิด ทำให้เขียนระบบ AI ที่ใช้งานง่าย พกพาได้ และปรับแต่งได้ง่าย
- Optimizer ปรับแต่งพรอมป์ต์และค่าน้ำหนักของโมดูล AI
- DSPy มีเครื่องมือที่คอมไพล์โค้ดระดับสูงซึ่งมีคำอธิบายภาษาธรรมชาติ ให้กลายเป็นการทำงานระดับล่าง พรอมป์ต์ หรือการอัปเดตค่าน้ำหนัก
- ทำให้สามารถจัดแนว LM ให้สอดคล้องกับโครงสร้างของโปรแกรมและเมตริกได้
- หากเปลี่ยนโค้ดหรือเมตริก ก็สามารถคอมไพล์ใหม่ให้สอดคล้องได้อย่างง่ายดาย
- กระบวนการปรับแต่งของ DSPy
- หากมีอินพุตตัวอย่างที่เป็นตัวแทนของงานจำนวนหลายสิบหรือหลายร้อยรายการ และมีเมตริกที่ใช้วัดคุณภาพของผลลัพธ์ระบบ ก็สามารถใช้ DSPy Optimizer ได้
dspy.BootstrapRS สังเคราะห์ตัวอย่าง few-shot ที่ดีสำหรับทุกโมดูล
dspy.MIPROv2 เสนอคำสั่งภาษาธรรมชาติที่ดีกว่าสำหรับทุกพรอมป์ต์และสำรวจอย่างชาญฉลาด
dspy.BootstrapFinetune สร้างชุดข้อมูลสำหรับโมดูล และใช้ชุดข้อมูลนั้นเพื่อทำ fine-tune ค่าน้ำหนัก LM ของระบบ
- ระบบนิเวศของ DSPy ช่วยผลักดันงานวิจัย AI โอเพนซอร์สให้ก้าวหน้า
- กระบวนทัศน์แบบโมดูลาร์ของ DSPy เปิดโอกาสให้นักวิจัยจำนวนมากขึ้น เมื่อเทียบกับกรณีของโมเดลภาษาขนาดใหญ่ ให้สามารถร่วมกันปรับปรุงสถาปัตยกรรมเชิงประกอบของโปรแกรม LM กลยุทธ์ในเวลาอนุมาน และเครื่องมือเพิ่มประสิทธิภาพแบบกระจายศูนย์ได้
- สิ่งนี้ให้ประโยชน์แก่ผู้ใช้ DSPy ด้วยการเพิ่มการควบคุม ช่วยให้ทำงานแบบวนซ้ำได้เร็วขึ้น และทำให้โปรแกรมพัฒนาต่อเนื่องตามเวลาได้ด้วยการนำเครื่องมือหรือโมดูลปรับแต่งล่าสุดมาใช้
- งานวิจัย DSPy เริ่มต้นที่ Stanford NLP ในเดือนกุมภาพันธ์ 2022 และสร้างขึ้นจากบทเรียนที่ได้จากการพัฒนาระบบ LM เชิงประกอบยุคแรก เช่น ColBERT-QA, Baleen และ Hindsight
- เปิดตัวครั้งแรกในชื่อ DSP เมื่อเดือนธันวาคม 2022 และพัฒนาเป็น DSPy ในเดือนตุลาคม 2023 โดยด้วยแรงสนับสนุนจากผู้มีส่วนร่วม 250 คน ทำให้ผู้คนหลายหมื่นคนได้เรียนรู้วิธีสร้างและปรับแต่งโปรแกรม LM แบบโมดูลาร์
- ชุมชน DSPy ได้สร้างผลงานวิจัยจำนวนมาก ทั้งเครื่องมือปรับแต่งอย่าง MIPROv2, BetterTogether, LeReT และสถาปัตยกรรมโปรแกรมอย่าง STORM, IReRa, DSPy Assertions
- ยังมีกรณีการประยุกต์ใช้กับปัญหาใหม่ที่ประสบความสำเร็จจำนวนมาก เช่น PAPILLON, PATH, กรณีศึกษาการพรอมป์ต์ของ WangLab@MEDIQA และ UMD รวมถึงโปรแกรม Red-Teaming ของ Haize
- นอกจากนี้ ความสามารถใช้งานจริงของ DSPy ยังได้รับการพิสูจน์ผ่านโครงการโอเพนซอร์สจำนวนมาก แอปพลิเคชันโปรดักชัน และกรณีใช้งานอื่น ๆ
ยังไม่มีความคิดเห็น