Hướng dẫn prompt engineering: kỹ thuật viết prompt
Hướng dẫn prompt engineering miễn phí cho ChatGPT, Claude và Gemini: cách viết prompt, các kỹ thuật cốt lõi, prompt cho lập trình và những chỗ mô hình hay sai. Mọi prompt trên các trang này đều sửa được và mở ngay trong ứng dụng AI bạn dùng.
Bắt đầu khóa họcBắt đầu
- Prompt là gìPrompt là đoạn văn bản bạn đưa cho mô hình AI để nói cho nó biết cần tạo ra gì. Xem một prompt gồm những gì, các prompt thực tế cho văn bản, code và hình ảnh, và prompt khác câu trả lời và system prompt ra sao.
- Prompt engineeringPrompt engineering là việc viết và thử nghiệm các chỉ dẫn bạn đưa cho mô hình AI để nó tạo ra đúng kết quả bạn cần. Bài này giải thích vì sao cách làm này hiệu quả và tổng hợp mọi kỹ thuật cốt lõi.
- Cách viết promptMột prompt tốt là một bản giao việc ngắn: vai trò, nhiệm vụ, bối cảnh mà mô hình không thể đoán, nội dung cần xử lý, hình thức câu trả lời và các giới hạn. Mỗi thành phần khắc phục một kiểu câu trả lời bị sai khác nhau.
- Ví dụ promptMười ba prompt sẵn sàng để sao chép cho việc học, viết code, viết lách và lập kế hoạch. Điền vào chỗ trống, rồi sao chép prompt hoặc mở nó trong ChatGPT hay Claude.
- System promptSystem prompt là một bộ chỉ dẫn cố định áp dụng cho cả cuộc trò chuyện với mô hình AI. Tìm hiểu nó nằm ở đâu, nên viết gì trong đó, và nó khác tin nhắn người dùng ra sao.
- Token và context windowMô hình AI đọc văn bản dưới dạng token, những mẩu nhỏ của từ, và chỉ chứa được một số lượng token giới hạn cùng lúc: đó là context window. Tìm hiểu cách cả hai hoạt động và nên làm gì khi cuộc chat trở nên dài.
- TemperatureTemperature điều chỉnh mức độ ngẫu nhiên mà mô hình ngôn ngữ dùng khi chọn từng từ tiếp theo. Xem temperature thay đổi xác suất của mỗi từ ra sao, khi nào nên đặt thấp hay cao, và nó khác top_p thế nào.
Kỹ thuật cốt lõi
- Zero-shot promptingZero-shot prompting là yêu cầu mô hình làm một việc chỉ dựa vào chỉ dẫn, không kèm ví dụ đáp án nào. Đây là cách phần lớn mọi người dùng ChatGPT, Claude và Gemini, và nó hiệu quả khi việc cần làm phổ biến và chỉ dẫn rõ ràng.
- Few-shot promptingFew-shot prompting đưa vào prompt vài ví dụ mẫu, mỗi ví dụ gồm một đầu vào và câu trả lời bạn muốn, để mô hình làm theo khuôn mẫu đó. Đây là cách nhanh nhất để dạy một định dạng, một bộ nhãn hay một văn phong riêng mà mô hình không tự đoán ra.
- Chain of thoughtChain of thought prompting yêu cầu mô hình viết ra quá trình suy luận trước khi đưa ra câu trả lời. Kỹ thuật này hiệu quả nhất với các bài toán và bài logic nhiều bước, và ít quan trọng hơn với các mô hình suy luận vốn đã suy nghĩ trước khi trả lời.
- Role promptingRole prompting giao cho mô hình một vai để đóng, như gia sư, người review code hay người phỏng vấn. Vai thay đổi việc câu trả lời viết cho ai và theo tiêu chuẩn nào; nó không thêm kiến thức mà mô hình không có.
- Đầu ra có cấu trúcĐầu ra có cấu trúc (structured output) là yêu cầu mô hình trả lời theo một dạng cố định, như JSON, bảng hay mẫu, để chương trình hoặc con người dùng được ngay mà không phải sắp xếp lại. Đưa ra schema, nói rõ cách xử lý giá trị bị thiếu, và kiểm tra kết quả bằng code.
- Dấu phân cách và thẻ XMLDấu phân cách (delimiter) đánh dấu nơi bắt đầu và kết thúc của phần nội dung được dán vào, để mô hình phân biệt chỉ dẫn của bạn với văn bản cần xử lý. Dấu ngoặc kép, ba dấu backtick, dòng ### và thẻ XML đều dùng được; thẻ XML phù hợp nhất khi prompt chứa nhiều phần nội dung.
- Prompt mẫuPrompt mẫu (prompt template) là một prompt bạn đã thử nghiệm, có chỗ trống cho những phần thay đổi mỗi lần dùng. Sao chép các mẫu dựng sẵn có ô để điền, rồi biến prompt tốt nhất của bạn thành mẫu trong năm bước.
Kỹ thuật nâng cao
- Prompt chainingPrompt chaining chia một công việc thành chuỗi các prompt nhỏ hơn, trong đó đầu ra của mỗi bước trở thành đầu vào của bước tiếp theo. Mỗi bước làm một việc, và bạn có thể kiểm tra kết quả trước khi bước sau chạy.
- Self-consistencySelf-consistency prompting hỏi cùng một câu hỏi suy luận nhiều lần, để mỗi lần chạy tự suy luận theo cách riêng, rồi giữ lại đáp án xuất hiện nhiều nhất. Bài này giải thích cách nó hoạt động, cách làm thủ công và cách làm bằng code.
- Tree of thoughtTree of thought prompting cho mô hình khám phá nhiều lời giải dang dở, đánh giá từng lời giải, và chỉ giữ lại những nhánh hứa hẹn. Bài này giải thích phương pháp gốc hoạt động thế nào, một phiên bản dùng một prompt để bạn thử, và những điểm phiên bản đó còn thiếu.
- ReAct promptingReAct prompting khiến mô hình luân phiên giữa suy luận về nhiệm vụ và gọi công cụ, đọc từng kết quả rồi mới quyết định bước tiếp theo. Đây là vòng lặp đứng sau phần lớn các AI agent.
- Meta promptingMeta prompting là dùng model để làm việc với chính prompt: viết prompt từ đầu, cải thiện prompt bạn đang có, hoặc chia một tác vụ thành nhiều prompt cho các lần gọi model khác. Dưới đây là cách làm từng việc mà không nhận về một prompt dài lê thê.
- Context engineeringContext engineering là việc quyết định mọi thứ đưa vào cửa sổ ngữ cảnh của mô hình trong mỗi lần gọi: chỉ dẫn, tài liệu, kết quả công cụ, bộ nhớ và lịch sử trò chuyện, cùng thứ tự của chúng. Prompt bạn gõ chỉ là một phần.
Viết prompt cho code
- Prompt để viết codePrompt viết code hiệu quả khi nó đọc như một bản đặc tả nhỏ: ngôn ngữ và phiên bản, đầu vào và đầu ra, các trường hợp biên, và các test mà code phải vượt qua. Hãy yêu cầu từng bước nhỏ một.
- Prompt để gỡ lỗiĐể debug với ChatGPT hoặc Claude, hãy dán toàn bộ thông báo lỗi và đoạn code gây ra nó, nói rõ bạn mong đợi gì và điều gì đã xảy ra, liệt kê những gì bạn đã thử, và hỏi nguyên nhân trước khi hỏi cách sửa.
- Giải thích codeNhờ AI giải thích code từng dòng, đúng trình độ của bạn, kèm một bảng cho thấy các giá trị thay đổi thế nào khi code chạy. Nói rõ bạn đã biết gì để lời giải thích bắt đầu đúng chỗ bạn đang đứng.
- Prompt để review codeMột prompt review code tốt nói rõ cần tìm gì, yêu cầu mức độ nghiêm trọng cho mỗi phát hiện, đòi một đầu vào cụ thể gây lỗi kèm một diff, và dặn model bỏ qua chuyện phong cách. Sau đó bạn kiểm tra từng phát hiện, vì một số sẽ sai.
Giới hạn và an toàn
- Ảo giác AIẢo giác AI (AI hallucination) là một câu trả lời đầy tự tin nhưng sai: một sự thật, trích dẫn, hàm hay package do AI bịa ra. Nó xảy ra vì mô hình ngôn ngữ dự đoán văn bản có khả năng xuất hiện cao, chứ không tra cứu gì cả. Prompt có thể làm giảm ảo giác; chỉ có kiểm tra mới phát hiện được.
- Prompt injectionPrompt injection là kiểu tấn công trong đó văn bản mà model đọc, do người dùng gõ vào hoặc giấu trong email, trang web hay tệp, ghi đè lên chỉ dẫn mà ứng dụng đã đưa cho nó. Dấu phân cách có giúp nhưng không chặn được; giới hạn những gì model có thể làm mới chặn được.
- Cải tiến promptCải tiến một prompt hiệu quả nhất khi làm như một thí nghiệm nhỏ: xác định một câu trả lời tốt trông như thế nào, giữ cố định vài đầu vào thử nghiệm, mỗi lần chỉ thay đổi một điều và đặt các đầu ra cạnh nhau để so sánh.