บทนำสู่เฟรมเวิร์ก DSPy
เหตุใด DSPy จึงใช้ลายเซ็นเชิงประกาศแทนพรอมต์ที่เขียนด้วยมือ
บทนำสู่เฟรมเวิร์ก DSPy เป็นบทเรียน AI Prompt Engineering ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AI Prompt Engineering และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AI Prompt Engineering มีบทเรียนทั้งหมด 4 บทเรียน
ความเปราะบางของพรอมป์ต์ที่เขียนด้วยตนเอง
พรอมป์ต์ที่สร้างขึ้นเองมีความเปราะบาง การเปลี่ยนคำเพียงคำเดียวอาจทำให้พฤติกรรมของโมเดลเปลี่ยนไปอย่างมาก และสิ่งที่ใช้ได้กับ GPT-4 มักใช้ไม่ได้กับ Claude หรือ Gemini
วิศวกรพรอมป์ต์ใช้เวลาหลายชั่วโมงปรับถ้อยคำ แต่กลับพบว่าการเปลี่ยนแปลงเหล่านั้นใช้ไม่ได้กับชุดข้อมูลหรือรุ่นของโมเดลที่แตกต่างกัน ความเปราะบางนี้คือปัญหาหลักที่ DSPy แก้ไข
DSPy คืออะไร
DSPy (Python แบบประกาศที่ปรับปรุงตนเองได้) คือเฟรมเวิร์กจาก Stanford ที่มองว่าการกำหนดพรอมป์ต์เป็นปัญหาด้านการคอมไพล์ ไม่ใช่งานที่ต้องอาศัยทักษะเชิงศิลป์
แทนที่จะเขียนว่า "Think step by step and answer the following question..." คุณเพียงประกาศ สิ่งที่ต้องการ (signature) แล้วปล่อยให้ DSPy หาวิธีสร้างพรอมป์ต์ให้โมเดลทำงานได้ตามนั้น
การติดตั้ง DSPy
DSPy พร้อมใช้งานบน PyPI ติดตั้งโปรแกรมและกำหนดค่าระบบเบื้องหลังของโมเดลภาษาเพื่อเริ่มต้นใช้งาน
pip install dspy-ai
# Basic setup in Python
import dspy
# Configure the language model
lm = dspy.LM('openai/gpt-4o-mini', api_key='sk-...')
dspy.configure(lm=lm)
print('DSPy configured successfully')แนวคิดหลัก: แยกตรรกะออกจากการกำหนดพรอมป์ต์
ในการกำหนดพรอมป์ต์แบบดั้งเดิม ตรรกะของโปรแกรมกับข้อความพรอมป์ต์จะพันกันอยู่ หากต้องการเปลี่ยนวิธีที่โมเดลใช้เหตุผล คุณต้องเขียนสตริงพรอมป์ต์ใหม่
DSPy แยกเรื่องเหล่านี้ออกจากกัน โดยคุณเขียนตรรกะ Python ด้วยโมดูล และ DSPy จะสร้าง (และเพิ่มประสิทธิภาพ) ข้อความพรอมป์ต์จริงโดยอัตโนมัติในขั้นตอนการคอมไพล์
การประกาศเจตนาด้วย signature
signature ใน DSPy คือการประกาศอินพุตและเอาต์พุตที่ระบุชนิดข้อมูล เป็นการบอก สิ่งที่ต้องการ ไม่ใช่ วิธีการ
DSPy ใช้ signature เพื่อสร้างพรอมป์ต์ที่เหมาะสมขณะคอมไพล์ โดยคุณไม่จำเป็นต้องเขียนพรอมป์ต์เอง
import dspy
# Declare: given a question, produce an answer
class SimpleQA(dspy.Signature):
"""Answer questions with short factual responses."""
question: str = dspy.InputField()
answer: str = dspy.OutputField(desc='A concise factual answer')
# DSPy turns this declaration into a real prompt automatically
print(SimpleQA.__doc__)โมดูล: บล็อกการให้เหตุผลที่นำมาประกอบกันได้
DSPy มีโมดูลที่ใช้รูปแบบการให้เหตุผลทั่วไป คุณใช้งานโมดูลเหล่านี้คล้ายเลเยอร์ของ PyTorch แล้วนำมาประกอบเป็นโปรแกรมขนาดใหญ่ขึ้น
dspy.Predict— การทำนายโดยตรงdspy.ChainOfThought— เพิ่มขั้นตอนการให้เหตุผลdspy.ReAct— การให้เหตุผลและการใช้เครื่องมือ
import dspy
class SimpleQA(dspy.Signature):
"""Answer questions with short factual responses."""
question: str = dspy.InputField()
answer: str = dspy.OutputField()
# Three different module strategies for the same signature
predict_module = dspy.Predict(SimpleQA)
cot_module = dspy.ChainOfThought(SimpleQA)
# Call just like a function
result = predict_module(question='What is the capital of France?')
print(result.answer)การคอมไพล์ทำอะไร
การคอมไพล์ คือกระบวนการที่ DSPy เพิ่มประสิทธิภาพพรอมป์ต์ของโปรแกรมโดยใช้ชุดข้อมูลฝึกและฟังก์ชันเมตริก
ก่อนการคอมไพล์: DSPy ใช้พรอมป์ต์เริ่มต้นแบบพื้นฐาน หลังการคอมไพล์: DSPy ค้นพบตัวอย่างจำนวนน้อย คำสั่งที่ดีขึ้น หรือตัวอย่างสาธิตการให้เหตุผลเป็นลำดับที่ทำให้เมตริกมีค่าสูงสุด พรอมป์ต์ที่เพิ่มประสิทธิภาพแล้วจะถูกบันทึกและนำกลับมาใช้ในช่วงการอนุมาน
โปรแกรม DSPy ขั้นต่ำ
นี่คือโปรแกรม DSPy ขั้นต่ำที่สมบูรณ์ ประกอบด้วย signature โมดูล และการเรียกใช้งาน โดยไม่มีการเขียนสตริงพรอมป์ต์ไว้ที่ใดเลย
import dspy
# 1. Configure LM
lm = dspy.LM('openai/gpt-4o-mini', api_key='sk-...')
dspy.configure(lm=lm)
# 2. Define signature
class Summarize(dspy.Signature):
"""Summarize text into one sentence."""
text: str = dspy.InputField()
summary: str = dspy.OutputField()
# 3. Create module
summarizer = dspy.Predict(Summarize)
# 4. Use it
result = summarizer(text='DSPy is a framework for programming language models.')
print(result.summary)DSPy กับการสร้างพรอมป์ต์แบบดั้งเดิม
ความแตกต่างเชิงแนวคิดที่สำคัญคือ:
- แบบดั้งเดิม: คุณเขียนข้อความพรอมป์ต์ → โมเดลประมวลผล → คุณปรับข้อความด้วยตนเอง
- DSPy: คุณเขียนตรรกะ Python → ตัวเพิ่มประสิทธิภาพค้นหาข้อความพรอมป์ต์ที่ดีที่สุด → โมเดลประมวลผลพรอมป์ต์ที่เพิ่มประสิทธิภาพแล้ว
DSPy มองว่าพรอมป์ต์เป็นรายละเอียดการใช้งานที่คอมไพเลอร์ควรจัดการ เช่นเดียวกับที่คอมไพเลอร์แปลง Python เป็นไบต์โค้ด
เมื่อใดจึงควรใช้ DSPy
DSPy มีประโยชน์อย่างมากเมื่อคุณมี:
- เมตริกที่ชัดเจนสำหรับการเพิ่มประสิทธิภาพ (ความแม่นยำ, F1, คะแนนจากผู้ใช้)
- ชุดข้อมูลฝึกที่มีตัวอย่าง (แม้มีเพียง 20–50 ตัวอย่างก็เพียงพอ)
- กระบวนการประมวลผลที่มีขั้นตอนการให้เหตุผลหลายขั้นซึ่งทำงานสัมพันธ์กัน
สำหรับพรอมป์ต์ง่าย ๆ ที่ใช้เพียงครั้งเดียว ค่าใช้จ่ายเพิ่มเติมของ DSPy อาจไม่คุ้มค่า แต่สำหรับกระบวนการประมวลผล LLM ในระบบจริงที่มีเป้าหมายวัดผลได้ DSPy จะเปลี่ยนวิธีการทำงานได้อย่างมาก
ภาพรวมระบบนิเวศของ DSPy
DSPy ไม่ใช่เพียงตัวห่อหุ้ม API แต่เป็นระบบนิเวศที่ครบถ้วน:
- signature: ประกาศอินพุตและเอาต์พุต
- โมดูล: กลยุทธ์การให้เหตุผล
- ตัวเพิ่มประสิทธิภาพ: BootstrapFewShot, MIPRO, COPRO
- Evaluate: ชุดเครื่องมือประเมินผลในตัว
- การยืนยันเงื่อนไข: จำกัดเอาต์พุตด้วยการประกาศ
คุณจะได้ศึกษาแต่ละส่วนในบทเรียนถัดไปของหลักสูตรนี้
ตรวจสอบความรู้: แนวคิดหลักของ DSPy
DSPy แตกต่างจากการเขียนพรอมป์ต์ด้วยตนเองในแนวทางหลักอย่างไร
ทบทวน: พื้นฐานเฟรมเวิร์ก DSPy
DSPy แก้ปัญหาความเปราะบางของพรอมป์ต์ที่เขียนด้วยตนเอง โดยมองว่าการกำหนดพรอมป์ต์เป็นปัญหาด้านการคอมไพล์ คุณเขียนsignature (การประกาศอินพุตและเอาต์พุตที่ระบุชนิดข้อมูล) แล้วนำมาประกอบกับโมดูลอย่าง Predict และ ChainOfThought จากนั้นตัวเพิ่มประสิทธิภาพจะค้นหาข้อความพรอมป์ต์ที่ดีที่สุดโดยอัตโนมัติจากข้อมูลฝึกและเมตริกของคุณ ผลลัพธ์คือกระบวนการประมวลผลพรอมป์ต์ที่นำไปใช้กับระบบอื่นได้ ทดสอบได้ และปรับปรุงได้โดยอัตโนมัติ โดยไม่ต้องสร้างพรอมป์ต์ด้วยตนเอง
เรียนรู้ AI Prompt Engineering ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 53
- บทเรียน
- 199
คำถามที่พบบ่อย
บทเรียน “บทนำสู่เฟรมเวิร์ก DSPy” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “บทนำสู่เฟรมเวิร์ก DSPy” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AI Prompt Engineering ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AI Prompt Engineering มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “บทนำสู่เฟรมเวิร์ก DSPy”
เหตุใด DSPy จึงใช้ลายเซ็นเชิงประกาศแทนพรอมต์ที่เขียนด้วยมือ คุณปฏิบัติ AI Prompt Engineering ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AI Prompt Engineering หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AI Prompt Engineering บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “บทนำสู่เฟรมเวิร์ก DSPy” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AI Prompt Engineering นี้ได้ไหม
ได้ บทเรียน AI Prompt Engineering ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- บทนำสู่เฟรมเวิร์ก DSPy
- การกำหนดลายเซ็นและโมดูล
- การคอมไพล์และปรับพรอมต์ให้เหมาะที่สุด
- การประเมินไปป์ไลน์ DSPy