DSPy
DSPy là framework mã nguồn mở xây dựng pipeline LLM từ các chữ ký có kiểu và module, sau đó tối ưu prompt dựa trên một metric.
DSPy là framework Python mã nguồn mở để xây dựng ứng dụng dựa trên mô hình ngôn ngữ lớn (LLM) bằng code thay vì prompt viết thủ công. Developer khai báo đầu vào và đầu ra của từng bước, kết hợp các bước thành chương trình rồi để bộ tối ưu DSPy viết và tinh chỉnh prompt hoặc trọng số của model nhằm tối đa hóa một metric trên tập ví dụ. Tên gọi là viết tắt của Declarative Self-improving Python; dự án tự mô tả là framework để lập trình model ngôn ngữ thay vì prompting chúng. Omar Khattab và cộng sự tại Stanford giới thiệu DSPy trong bài báo tháng 10 năm 2023 DSPy: Biên dịch lời gọi model ngôn ngữ khai báo thành pipeline tự cải thiện. Chỉ vài phút sau khi biên dịch, một vài dòng DSPy giúp GPT-3.5 và Llama-2-13B-chat xây dựng pipeline vượt prompting few-shot tiêu chuẩn lần lượt hơn 25% và 65%, đồng thời vượt pipeline dùng ví dụ minh họa do chuyên gia viết đến 46% và 40%.
Signature, module và bộ tối ưu#
- Signature: Khai báo có kiểu cho đầu vào và đầu ra của một bước, viết trực tiếp dưới dạng
"question -> answer"hoặc dưới dạng class có docstring nêu tác vụ. Signature mô tả chức năng của bước và để DSPy quyết định cách diễn đạt prompt. - Module: Chiến lược chạy một signature.
dspy.Predictgọi model một lần,dspy.ChainOfThoughtthêm trường suy luận trước câu trả lời như trong prompting chuỗi suy nghĩ, còndspy.ReActchạy vòng lặp sử dụng công cụ theo kiểu prompting ReAct. Các module kết hợp với nhau như layer PyTorch để tạo chương trình nhiều bước, chẳng hạn pipeline sinh tăng cường truy xuất (RAG) tạo truy vấn tìm kiếm, truy xuất đoạn văn rồi trả lời dựa trên các đoạn đó. - Adapter: Chuyển signature thành thông điệp chat cho model và phân tích phản hồi của model trở lại thành các trường có kiểu.
- Bộ tối ưu: Thuật toán cải thiện chương trình dựa trên một metric.
BootstrapFewShotchạy chương trình trên ví dụ huấn luyện rồi giữ lại các trace đạt metric làm ví dụ minh họa,MIPROv2tìm kiếm trong các chỉ dẫn và tập ví dụ minh họa được đề xuất, cònBootstrapFinetunechưng cất chương trình thành trọng số model thông qua fine-tuning.
Vòng lặp tối ưu hóa mô phỏng quá trình huấn luyện model, trong đó prompt đóng vai trò tham số:
Bộ tối ưu GEPA năm 2025, có sẵn dưới dạng dspy.GEPA, đọc trace thực thi và phản hồi bằng văn bản của chương trình, yêu cầu một LLM phân tích vấn đề đã xảy ra rồi cải tiến chỉ dẫn. Trên sáu tác vụ, GEPA vượt phương pháp học tăng cường GRPO trung bình 6% và tối đa 20%, đồng thời dùng ít hơn đến 35 lần số lượt rollout; GEPA cũng vượt MIPROv2 hơn 10%.
Từ signature đến prompt#
DSPy tạo prompt từ signature, vì vậy có thể tối ưu lại cùng một chương trình cho model mới thay vì viết lại. Ở đây, đầu vào là bản tóm tắt phát hiện từ Ultralytics YOLO26: Results.verbose() trả về kết quả chế độ predict dưới dạng chuỗi ngắn gồm số lượng theo từng lớp; signature có thể nhận dữ liệu đó dưới dạng văn bản để bộ tối ưu tinh chỉnh bước suy luận trên đầu ra phát hiện đối tượng thực tế. Có thể định dạng thông điệp mà không cần model hay API key:
import dspy
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model("https://ultralytics.com/images/bus.jpg")
class SceneQA(dspy.Signature):
"""Answer a question about a photo from the objects a detector found in it."""
detections: str = dspy.InputField()
question: str = dspy.InputField()
answer: str = dspy.OutputField()
# The adapter turns the signature and inputs into the chat messages the model will receive
inputs = {"detections": results[0].verbose(), "question": "How many people are in the photo?"}
messages = dspy.ChatAdapter().format(SceneQA, demos=[], inputs=inputs)
for message in messages:
print(f"--- {message['role']} ---\n{message['content']}")Thông điệp hệ thống liệt kê các trường đầu vào và đầu ra, các marker [[ ## field ## ]] mà DSPy dùng để phân tích phản hồi, cùng docstring đóng vai trò mục tiêu; thông điệp người dùng chứa số lượng do detector trả về. Bộ tối ưu cải thiện chương trình này bằng cách viết lại mục tiêu đó và thêm ví dụ minh họa vào thông điệp, trong khi vẫn giữ nguyên code Python.
DSPy và các thuật ngữ liên quan#
- Kỹ thuật prompt: Tự viết và chỉnh sửa prompt. DSPy biến công việc này thành bài toán tối ưu hóa với metric và ví dụ.
- LangChain: Framework gồm các tích hợp, công cụ và vòng lặp agent để kết hợp ứng dụng LLM, trong đó developer duy trì prompt.
- Tinh chỉnh siêu tham số: Tìm kiếm các thiết lập huấn luyện dựa trên metric xác thực; đây là phép so sánh gần nhất với cách DSPy tìm kiếm prompt.
- Hệ thống AI hợp thành: Ứng dụng được xây dựng từ nhiều lần gọi model, bộ truy xuất và công cụ. DSPy được thiết kế để tối ưu các pipeline như vậy từ đầu đến cuối, tinh chỉnh prompt của từng bước dựa trên metric cuối cùng.










