Giới hạn ký tự Prompt AI: Hướng dẫn thực hành Prompt Engineering
Chất lượng đầu ra của AI phụ thuộc rất nhiều vào thiết kế prompt. Tuy nhiên, viết prompt dài hơn không tự động tạo ra kết quả tốt hơn. Hiểu giới hạn token của từng mô hình và tối đa hóa hiệu quả trong những ràng buộc đó chính là cốt lõi của prompt engineering. Hướng dẫn này đi sâu hơn các mẹo bề mặt, bao gồm cơ chế hoạt động của tokenizer, vấn đề Lost in the Middle và các mẫu prompt thực tế bạn có thể sử dụng ngay.
Cách Token hoạt động - Thuật toán BPE và mối quan hệ phi tuyến với số ký tự
Để thiết kế prompt hiệu quả, trước tiên bạn cần hiểu cách token được tạo ra. Các mô hình AI hiện đại sử dụng tokenizer dựa trên thuật toán BPE (Byte Pair Encoding). BPE hoạt động bằng cách liên tục ghép các cặp byte xuất hiện thường xuyên nhất trong dữ liệu huấn luyện để xây dựng bảng từ vựng.
Cơ chế này có nghĩa là mối quan hệ giữa số token và số ký tự là phi tuyến. Ví dụ, từ tiếng Anh "the" là một token duy nhất, trong khi "anthropomorphism" được chia thành 4 token. Trong tiếng Nhật, "東京" (Tokyo) là 1 token, nhưng kanji hiếm như "鬱" có thể chia thành 3 token trở lên. Cùng một số ký tự có thể tạo ra mức tiêu thụ token rất khác nhau tùy thuộc vào nội dung.
Một chi tiết quan trọng thường bị bỏ qua: tokenizer khác nhau giữa các phiên bản mô hình. cl100k_base của GPT-3.5 và o200k_base của GPT-4o có kích thước từ vựng chênh lệch gần gấp đôi, nghĩa là cùng một văn bản tạo ra số token khác nhau. Khi ước tính mức sử dụng token của prompt, hãy luôn xác minh bằng tokenizer của mô hình bạn thực sự định sử dụng. Sách về prompt engineering coi việc hiểu tokenizer là kiến thức nền tảng.
Tại sao ngôn ngữ CJK kém hiệu quả token hơn - Bối cảnh kỹ thuật
Văn bản CJK (tiếng Trung, tiếng Nhật, tiếng Hàn) tiêu thụ nhiều hơn khoảng 1,5–2,5 lần token so với tiếng Anh cho cùng nội dung ngữ nghĩa. Ba yếu tố tạo nên sự chênh lệch này.
Thứ nhất, tokenizer BPE được huấn luyện trên kho ngữ liệu mà tiếng Anh chiếm ưu thế. Ngôn ngữ có nhiều dữ liệu huấn luyện hơn phát triển các phép ghép token hiệu quả hơn, cho phép tiếng Anh diễn đạt nhiều ý nghĩa hơn trên mỗi token. Thứ hai, tiếng Nhật sử dụng hệ thống đa chữ viết (kanji, hiragana, katakana và ký tự Latin), và sự đa dạng ký tự này làm giảm hiệu quả tokenization. Thứ ba, tiếng Nhật không có ranh giới từ bằng khoảng trắng, khiến tokenizer khó xác định điểm chia tối ưu hơn.
Để hiểu sâu hơn về cách mã hóa đa byte ảnh hưởng đến hiệu quả token, hãy xem hướng dẫn của chúng tôi về số ký tự so với số byte. Như một quy tắc thực tế, hãy dự trù khoảng 1,5–2,5 token cho mỗi ký tự tiếng Nhật và 1–1,5 token cho mỗi từ tiếng Anh.
Cửa sổ ngữ cảnh và giới hạn Token
| Mô hình | Cửa sổ ngữ cảnh | Ký tự tiếng Anh (ước tính) | Token đầu ra tối đa |
|---|---|---|---|
| GPT-4o | 128K tokens | ~512,000 chars | 16,384 |
| Claude 4 Sonnet | 200K tokens | ~800,000 chars | 16,000 |
| Gemini 2.5 Pro | 1M tokens | ~4,000,000 chars | 65,536 |
| GPT-4o mini | 128K tokens | ~512,000 chars | 16,384 |
| Claude 4 Haiku | 200K tokens | ~800,000 chars | 16,000 |
Phạm vi ước tính ký tự rộng phản ánh sự biến đổi của hiệu quả token giữa các loại văn bản khác nhau. Tài liệu kỹ thuật với thuật ngữ chuyên ngành tiêu thụ nhiều token hơn trên mỗi ký tự so với văn bản hội thoại. Đối với các prompt quan trọng, hãy luôn xác minh bằng tokenizer thực tế của mô hình.
Vấn đề Lost in the Middle - Phân bổ Attention trong ngữ cảnh dài
Ngay cả các mô hình có cửa sổ ngữ cảnh lớn cũng không chú ý đều đến tất cả các phần của đầu vào. Nghiên cứu công bố năm 2023 ("Lost in the Middle") đã chứng minh rằng thông tin đặt ở giữa ngữ cảnh dài được tham chiếu kém tin cậy hơn so với thông tin ở đầu hoặc cuối.
Điều này có ảnh hưởng trực tiếp đến thiết kế prompt. Khi soạn một prompt 10.000 token, hãy đặt các hướng dẫn và ràng buộc quan trọng nhất ở đầu hoặc cuối. Sử dụng phần giữa cho thông tin bổ sung và dữ liệu tham khảo có mức ưu tiên thấp hơn.
Một biện pháp đối phó thực tế là "cấu trúc sandwich": khai báo các hướng dẫn quan trọng ở đầu, sau đó nhắc lại chúng ở cuối. Ngoài ra, đẩy đầu vào gần giới hạn cửa sổ ngữ cảnh có xu hướng làm giảm chất lượng đầu ra. Một hướng dẫn an toàn là sử dụng không quá 70–80% cửa sổ ngữ cảnh khả dụng.
Cấu trúc Prompt hiệu quả
Hiệu quả của prompt phụ thuộc vào cấu trúc cũng như độ dài. Thiết kế prompt với bốn thành phần sau, như được đề cập trong hướng dẫn kỹ thuật về AI chatbot:
- Định nghĩa vai trò (20–50 từ): Chỉ định persona của AI — "Bạn là chuyên gia tài liệu pháp lý."
- Mô tả nhiệm vụ (30–100 từ): Nêu rõ ràng những gì bạn cần thực hiện.
- Ràng buộc (20–60 từ): Xác định định dạng đầu ra, độ dài, giọng điệu và hạn chế.
- Dữ liệu đầu vào (thay đổi): Cung cấp văn bản hoặc tài liệu tham khảo cần xử lý.
Đối với hầu hết các nhiệm vụ, 100–250 từ prompt cho kết quả tốt. Nếu bạn cần hơn 300 từ, hãy cân nhắc chia nhỏ nhiệm vụ. Tuy nhiên, hướng dẫn này phụ thuộc vào độ phức tạp của nhiệm vụ. Các nhiệm vụ tạo code và phân tích dữ liệu có thể cần 400–800 từ prompt.
Thiết kế System Prompt và phân bổ Token
Khi sử dụng mô hình AI qua API, thiết kế system prompt trở nên quan trọng. System prompt được bao gồm trong mọi yêu cầu, nên độ dài của nó ảnh hưởng trực tiếp đến chi phí token ở quy mô lớn.
Trong thực tế, giữ system prompt trong khoảng 150–600 từ hoạt động tốt. Ngoài phạm vi đó, hãy cân nhắc sử dụng mô hình RAG (Retrieval-Augmented Generation) để chèn động chỉ thông tin liên quan. Phân bổ tốt cho ngân sách system prompt là khoảng: 30% cho vai trò và hướng dẫn, 25% cho đặc tả định dạng đầu ra, 25% cho ràng buộc và hạn chế, và 20% cho ví dụ few-shot.
Mẫu Prompt thực tế
Đây là mẫu prompt sẵn sàng sử dụng. Các phần biến được đánh dấu bằng {{...}}.
Mẫu nhiệm vụ đa năng (~80 từ):
You are an expert in {{domain}}.
Perform {{task description}} on the following input.
## Constraints
- Output format: {{format (e.g., bullet points, table, paragraphs)}}
- Length: {{limit}} words maximum
- Tone: {{tone (e.g., formal, casual)}}
## Input
{{input text}}
Lựa chọn thiết kế chính ở đây là cô đọng định nghĩa vai trò thành một dòng và làm rõ ràng các ràng buộc dưới dạng danh sách. Điều này hiệu quả token hơn so với văn xuôi và giảm nguy cơ AI bỏ qua các ràng buộc.
Kỹ thuật tối ưu hóa
- Loại bỏ các lời chào hỏi và mở đầu không cần thiết — đi thẳng vào hướng dẫn. Thay "Could you please kindly..." bằng "Do X" tiết kiệm hơn 10 từ mỗi prompt
- Sử dụng danh sách gạch đầu dòng và danh sách đánh số thay vì văn xuôi. Prompt có cấu trúc thường hiệu quả token hơn 20–30% so với văn xuôi tương đương
- Giới hạn ví dụ few-shot từ 1–3, chọn các trường hợp đại diện nhất
- Sử dụng biến và placeholder để tạo mẫu có thể tái sử dụng
- Viết ở dạng khẳng định ("Do X") thay vì phủ định ("Don't do Y")
- Tóm tắt tài liệu tham khảo dài trước khi đưa vào prompt
Tối ưu chi phí token quan trọng ở quy mô lớn. Giá token đầu vào của GPT-4o là $2,50/1M token. Tiết kiệm 500 token mỗi yêu cầu trên 1 triệu yêu cầu hàng tháng tương đương khoảng $1.250/tháng tiết kiệm.
Tương tác giữa Temperature và độ dài Prompt
Một yếu tố thường bị bỏ qua trong thiết kế prompt là sự tương tác giữa tham số temperature và độ dài prompt. Temperature kiểm soát tính ngẫu nhiên của đầu ra — giá trị gần 0 tạo đầu ra xác định, trong khi giá trị gần 1 tạo phản hồi đa dạng hơn.
Prompt ngắn kết hợp với temperature cao khuếch đại sự mơ hồ, khiến đầu ra biến đổi mạnh. Ngược lại, prompt chi tiết và có cấu trúc tốt vẫn ổn định ngay cả ở temperature tương đối cao. Hướng dẫn thực tế: với prompt ngắn (dưới 100 từ), giữ temperature ở 0–0,3. Với prompt chi tiết (250+ từ), temperature 0,5–0,7 vẫn cho kết quả nhất quán.
Phương pháp A/B Testing cho Prompt
Tối ưu prompt là quá trình lặp đi lặp lại, không phải nỗ lực một lần. Đây là quy trình A/B testing hiệu quả:
- Xác định tiêu chí đánh giá: độ chính xác, tính nhất quán phong cách, tuân thủ hướng dẫn — chọn các chỉ số bạn có thể đo lường định lượng
- Chuẩn bị test case: tập hợp 20–50 đầu vào đại diện, bao gồm các trường hợp biên (đầu vào rất ngắn, đầu vào nhiều thuật ngữ chuyên ngành, đầu vào đa ngôn ngữ)
- Kiểm soát biến: chỉ thay đổi một yếu tố prompt tại một thời điểm. Sửa đổi cả định nghĩa vai trò và ràng buộc cùng lúc khiến không thể quy kết hiệu quả
- Đánh giá thống kê: chạy ít nhất 30 lần thử cho mỗi biến thể và tính đến phương sai đầu ra trước khi tuyên bố người thắng
Lưu ý rằng ngay cả khi temperature đặt ở 0, đầu ra mô hình không hoàn toàn xác định. Cùng một prompt có thể tạo ra đầu ra hơi khác nhau giữa các lần chạy, khiến đánh giá thống kê qua nhiều lần thử là cần thiết.
Lỗi Prompt phổ biến và biện pháp khắc phục
- Lạm dụng hướng dẫn phủ định. "Don't do X" khó để mô hình tuân theo một cách đáng tin cậy. Điều này có thể do mô hình kích hoạt nội bộ khái niệm "doing X" trước khi áp dụng phủ định. Chuyển đổi thành hướng dẫn khẳng định để có kết quả nhất quán hơn
- Dán toàn bộ tài liệu tham khảo. Điều này lãng phí không gian cửa sổ ngữ cảnh và do vấn đề Lost in the Middle, khiến mô hình bỏ qua thông tin quan trọng. Hãy tóm tắt trước, hoặc sử dụng RAG để chèn động chỉ các phần liên quan
- Nhầm lẫn số token với số ký tự. Hướng dẫn như "Viết trong 1.000 ký tự" tạo ra mức tiêu thụ token rất khác nhau giữa tiếng Nhật và tiếng Anh. Để kiểm soát độ dài đầu ra đáng tin cậy hơn, hãy chỉ định số đoạn văn hoặc số gạch đầu dòng thay vì số ký tự
Kết luận
Prompt engineering hiệu quả là truyền đạt hướng dẫn chính xác trong ngân sách token hạn chế. Hiểu cơ chế tokenizer BPE, tính đến sự khác biệt hiệu quả token theo ngôn ngữ và cấu trúc prompt có chủ đích là nền tảng. Kết hợp những điều này với biện pháp đối phó Lost in the Middle, nhận thức về tương tác temperature-độ dài và A/B testing lặp đi lặp lại để đạt được cả chất lượng đầu ra và hiệu quả chi phí. Sử dụng Bộ đếm ký tự để kiểm tra độ dài prompt trước khi gửi — nó cũng giúp ước tính mức sử dụng token.