Prompt Engineering Basics: A Practical Glossary Entry
Giải thích rõ ràng, không lan man về những điều cơ bản của prompt engineering, kèm theo ví dụ và kỹ thuật bạn có thể sử dụng ngay lập tức.
Prompt engineering là thực hành viết văn bản đầu vào để khiến mô hình ngôn ngữ tạo ra kết quả bạn thực sự muốn. Nó nằm ở đâu đó giữa viết văn và gỡ lỗi: bạn không viết mã theo nghĩa truyền thống, nhưng bạn đang kiểm tra các giả thuyết về cách mô hình diễn giải hướng dẫn và điều chỉnh khi nó sai.
Prompt thực sự là gì
Prompt là mọi thứ bạn gửi đến mô hình trước khi nó tạo ra phản hồi — hướng dẫn, ngữ cảnh, ví dụ và câu hỏi hoặc nhiệm vụ thực tế. Hầu hết các mô hình trò chuyện hiện đại chia điều này thành các vai trò: một thông báo hệ thống (đặt hành vi và ràng buộc), thông báo của người dùng (yêu cầu thực tế) và đôi khi là thông báo của trợ lý (lượt trước đó hoặc ví dụ). Nếu bạn đang sử dụng một API như của OpenAI hoặc Anthropic, bạn sẽ đặt những thứ này một cách rõ ràng trong mã. Nếu bạn đang sử dụng giao diện trò chuyện, thông báo hệ thống thường bị ẩn hoặc được đặt một lần vào đầu cuộc trò chuyện.
Tại sao câu hỏi tương tự lại nhận được những câu trả lời khác nhau
Các mô hình ngôn ngữ dự đoán token tiếp theo dựa trên mọi thứ đứng trước nó, bao gồm cách diễn đạt, thứ tự từ của bạn, thậm chí cả dấu câu. Hỏi "Explain recursion" và bạn sẽ nhận được một câu trả lời sách giáo khoa chung chung. Hỏi "Explain recursion to a junior developer who understands loops but not recursion, using a single Python example with a base case and recursive case" và bạn sẽ nhận được thứ gì đó hữu ích hơn nhiều. Tính cụ thể của đầu vào của bạn trực tiếp hình thành tính cụ thể của đầu ra. Đây là hiểu biết cơ bản mà những người mới bắt đầu cần: mô hình không đọc được ý định của bạn, nó đang so khớp mẫu với các từ của bạn.
Các kỹ thuật cơ bản đáng học trước tiên
Zero-shot prompting có nghĩa là hỏi trực tiếp không có ví dụ: "Write a regex that matches US phone numbers." Điều này hoạt động tốt cho các nhiệm vụ phổ biến, được xác định rõ ràng.
Few-shot prompting có nghĩa là cung cấp cho mô hình một hoặc nhiều ví dụ về mẫu đầu vào/đầu ra mà bạn muốn trước khi yêu cầu nó tiếp tục mẫu đó. Nếu bạn muốn mô hình phân loại các vé hỗ trợ thành các danh mục, việc hiển thị cho nó ba ví dụ được gắn nhãn trước sẽ tạo ra kết quả nhất quán hơn so với việc chỉ mô tả các danh mục bằng văn bản.
Chain-of-thought prompting yêu cầu mô hình suy luận từng bước trước khi đưa ra câu trả lời cuối cùng, thường bằng cách đăng "think step by step" hoặc bằng cách yêu cầu nó hiển thị công việc của nó. Điều này giúp với toán học, logic và các nhiệm vụ nhiều bước, mặc dù nó cũng tăng sử dụng token và độ dài phản hồi.
Role prompting gán cho mô hình một nhân vật — "You are a senior security engineer reviewing this code for vulnerabilities" — có thể thay đổi tông, từ vựng và loại chi tiết mà nó ưu tiên. Nó không cấp cho mô hình các khả năng mới, nhưng nó làm neo chắc kiểu dáng đầu ra của nó.
Cấu trúc quan trọng hơn độc đáo
Người mới bắt đầu thường giả định rằng prompt engineering là về việc tìm một cụm từ kỳ diệu. Trong thực tế, cấu trúc hầu như luôn chiến thắng độc đáo. Chia prompt của bạn thành các phần rõ ràng: ngữ cảnh, nhiệm vụ, ràng buộc và định dạng. Ví dụ:
Context: You're reviewing a Python Flask app for a security audit.
Task: Identify SQL injection risks in the code below.
Constraints: Only flag issues in the /login and /search routes.
Format: Return a numbered list with the line number and a one-sentence explanation.
Kiểu định dạng rõ ràng này giảm sự mơ hồ và làm cho kết quả dễ phân tích theo chương trình hơn nếu bạn đang xâu chuỗi các prompt lại với nhau trong một tập lệnh.
Những lỗi phổ biến sớm
Một lỗi thường gặp là sự mơ hồ được che giấu dưới vỏ bản tóm tắt — hỏi "make this better" mà không xác định "better" có nghĩa là gì (nhanh hơn? dễ đọc hơn? an toàn hơn?). Cái khác là nhồi một prompt duy nhất với năm nhiệm vụ không liên quan, điều này có xu hướng tạo ra câu trả lời nông cạn cho tất cả năm thay vì một câu trả lời vững chắc cho một. Người mới bắt đầu cũng quên rằng các mô hình không có bộ nhớ giữa các lệnh gọi API riêng biệt trừ khi bạn rõ ràng chuyển lại lịch sử cuộc trò chuyện trước đó, điều này gây nhầm lẫn cho mọi người khi xây dựng bất cứ điều gì có trạng thái.
Kiểm tra và lặp lại như một kỹ sư
Hãy coi prompts như mã bạn phiên bản và kiểm tra, không phải văn bản một lần bạn vứt đi. Giữ một nhật ký các biến thể prompt và kết quả của chúng, đặc biệt là những thứ bạn sẽ sử dụng lại trong sản xuất, như một bot hỗ trợ khách hàng hoặc trợ lý xem xét mã. Các thay đổi từ ngữ nhỏ — "summarize" vs "summarize in exactly three bullet points" — có thể tạo ra những kết quả khác nhau có ý nghĩa, và cách duy nhất để biết điều gì hoạt động cho trường hợp sử dụng của bạn là tự chạy so sánh thay vì giả định.
Điều này phù hợp ở đâu trong việc xây dựng những thứ thực tế
Sau khi các prompt trở nên đáng tin cậy, bước tiếp theo thường là sử dụng lập trình: gọi một API với các cài đặt temperature và max_tokens được điều chỉnh cho nhiệm vụ của bạn, thêm logic thử lại cho các kết quả được định dạng sai và xác thực phản hồi trước khi chúng tiếp cận người dùng. Đó là nơi prompt engineering bắt đầu trùng lặp với kỷ luật kỹ thuật phần mềm thông thường, và đó là một điểm tốt để chuyển từ thử nghiệm trong cửa sổ trò chuyện sang viết các tập lệnh thực tế.
Nếu bạn muốn đi xa hơn, hãy xem các phân đoạn của Korra Studio về cách làm việc với LLM APIs trong Python và về xây dựng các công cụ do AI hỗ trợ nhỏ từ đầu.
Viết với hỗ trợ của AI, được xem xét và đăng bởi Michal Pilch (CISSP), Korra Studio.
Đây là một ghi chép từ cơ sở kiến thức Korra Studio — nền tảng kết hợp mỗi chủ đề với phiên hỗ trợ 1-kèm-1.
Bắt đầu miễn phíarrow_forward