Vấn đề của prompt viết tay
Dù đã có Prompt Standard tốt, prompt viết tay vẫn có điểm yếu cốt lõi: chúng được tối ưu bằng trực giác con người, không phải bằng dữ liệu.
Bạn viết prompt, test vài case, sửa từ ngữ, và hy vọng nó tổng quát hóa được. Đây gọi là “vibes-based prompting,” và có 3 vấn đề:
- Dễ vỡ: Prompt tuned cho GPT-4 có thể chạy kém trên Claude.
- Khó mở rộng: Khi pipeline phức tạp (RAG → reasoning → tool → validate), tuning từng prompt trở thành cơn ác mộng.
- Thiếu minh bạch: Bạn không giải thích được tại sao một cách diễn đạt lại tốt hơn.
DSPy là gì?
DSPy (Declarative Self-improving Python) là framework xem prompt như tham số nội bộ cần tối ưu, không phải chuỗi ký tự cần viết tay.
| Prompting truyền thống | DSPy |
|---|---|
| Bạn viết prompt | Bạn định nghĩa Signature (đặc tả input/output) |
| Bạn chọn few-shot examples bằng tay | Framework tự chọn examples tối ưu |
| Bạn tune cho một model | Framework compile cho bất kỳ model nào |
| Bạn test thủ công | Bạn định nghĩa metric, framework tối ưu theo đó |
Cách hoạt động: Signatures, Modules, và Optimizers
1. Signatures
Khai báo module làm gì, không chỉ định làm thế nào:
class ReviewCode(dspy.Signature):
"""Review a code diff for bugs and security issues."""
diff: str = dspy.InputField(desc="The code diff to review")
findings: list[str] = dspy.OutputField(desc="List of issues found")
2. Modules
Các building block có thể kết hợp:
class CodeReviewer(dspy.Module):
def __init__(self):
self.review = dspy.ChainOfThought(ReviewCode)
def forward(self, diff):
return self.review(diff=diff)
3. Optimizers (Compilers)
Cho trước training examples + metric, optimizer tự tìm chiến lược prompt tốt nhất:
optimizer = dspy.BootstrapFewShot(metric=bug_detection_accuracy)
optimized_reviewer = optimizer.compile(CodeReviewer(), trainset=examples)
Khi nào dùng DSPy vs Prompt Standard truyền thống?
| Lớp | Công cụ |
|---|---|
| Cấu trúc tổ chức (roles, rules, workflows) | Prompt Standard |
| Tối ưu task-level (few-shot, CoT, model adaptation) | DSPy |
| Chất lượng dữ liệu và truy xuất | RAG / Context Engineering |
Ý chính cần nhớ
DSPy đại diện cho tương lai nơi chất lượng prompt là hàm của dữ liệu và metric, không phải trực giác. Mental model mới: ngừng viết prompt, bắt đầu định nghĩa contract và metric.
Đọc tiếp Phần 8 — Production PromptOps Pipeline.