Prompt và ngữ cảnh

From Systems analysis wiki
Jump to navigation Jump to search

Promptngữ cảnh là những khái niệm nền tảng trong prompt engineering cho các mô hình ngôn ngữ lớn (LLM).

Ngữ cảnh là thành phần cực kỳ quan trọng của prompt, quyết định khả năng của LLM trong việc tạo ra các câu trả lời chính xác, phù hợp và hữu ích. Prompt engineering hiệu quả phần lớn nằm ở nghệ thuật thu thập, lọc, cấu trúc hóa và trình bày đúng ngữ cảnh cho mô hình vào đúng thời điểm, đồng thời vượt qua những hạn chế của các LLM hiện đại.

Định nghĩa Prompt

Prompt (tiếng Anh: prompt) — là toàn bộ tập hợp dữ liệu đầu vào được cung cấp cho LLM để tạo ra câu trả lời. Đây không chỉ đơn thuần là một câu hỏi hay lệnh, mà là một văn bản có cấu trúc, có thể bao gồm:

  • Hướng dẫn (Instructions): Chỉ dẫn trực tiếp cho mô hình về việc cần làm gì, theo định dạng, phong cách hay giọng điệu nào.
  • Yêu cầu chính (Query): Câu hỏi trực tiếp của người dùng hoặc mô tả nhiệm vụ chính.
  • Ngữ cảnh (Context): Thông tin bổ sung cần thiết để thực hiện đúng yêu cầu.
  • Ví dụ (Few-shot examples): Minh họa định dạng hoặc phong cách câu trả lời mong muốn trên các nhiệm vụ tương tự.

Chất lượng và sự đầy đủ của prompt quyết định trực tiếp mức độ phù hợp, độ chính xác và tính hữu ích của câu trả lời từ LLM.

Định nghĩa Ngữ cảnh

Ngữ cảnh trong khuôn khổ prompt engineering — là bất kỳ thông tin nào bên trong prompt giúp mô hình hiểu rõ hơn về nhiệm vụ, đặc thù của tình huống hoặc kỳ vọng của người dùng, nhưng không phải là một phần trong dữ liệu huấn luyện ban đầu của mô hình. Ngữ cảnh cung cấp các chi tiết tình huống cần thiết để tạo ra câu trả lời phù hợp.

Ngữ cảnh có thể bao gồm:

  • Lịch sử hội thoại trước đó (trong các chatbot).
  • Dữ liệu được trích xuất từ các nguồn bên ngoài (tài liệu, cơ sở dữ liệu, trang web) — nền tảng của RAG.
  • Thông tin về người dùng (hồ sơ, sở thích).
  • Các chi tiết cụ thể của nhiệm vụ hoặc tình huống hiện tại.
  • Ví dụ thực hiện các nhiệm vụ tương tự (như một phần của few-shot prompting).

Điều quan trọng là phân biệt ngữ cảnh được cung cấp trong prompt với kiến thức chung mà mô hình đã học được trong quá trình tiền huấn luyện. Prompt engineering tập trung vào việc cung cấp hiệu quả chính xác ngữ cảnh tình huống.

Mối liên hệ và Ảnh hưởng

Prompt và ngữ cảnh — là những khái niệm nền tảng khi làm việc với các transformer, quyết định cách mô hình tiếp nhận dữ liệu đầu vào và dựa trên cơ sở gì để tạo ra kết quả. Về mặt kiến trúc, transformer không phân biệt đặc biệt giữa «prompt» và «ngữ cảnh» — cả hai đều là các phần của chuỗi token đầu vào, được chuyển đổi thành các embedding, được bổ sung thông tin vị trí và được xử lý tổng thể bởi các lớp self-attention.

Prompt và ngữ cảnh gắn bó chặt chẽ với nhau: ngữ cảnh là thành phần cấu thành của prompt.

  • Ngữ cảnh tạo nên prompt: Kỹ sư lựa chọn và cấu trúc hóa ngữ cảnh phù hợp để đưa vào prompt.
  • Ngữ cảnh định hướng mô hình: Thông tin được cung cấp cho phép LLM thu hẹp không gian các câu trả lời có thể, tập trung vào các khía cạnh liên quan và tránh ảo giác (hallucination).
  • Chất lượng ngữ cảnh quyết định chất lượng câu trả lời: Ngữ cảnh không đầy đủ, không liên quan hoặc mâu thuẫn dẫn đến các câu trả lời không chính xác, chung chung hoặc sai lầm. Ngữ cảnh chính xác và đầy đủ làm tăng tính cụ thể và tính hữu ích của kết quả tạo ra.
  • Ảnh hưởng đến việc diễn giải hướng dẫn: Ngữ cảnh có thể làm rõ hoặc thay đổi cách diễn giải các hướng dẫn chung trong prompt.

Hiệu quả của prompt phần lớn phụ thuộc vào mức độ thành công mà kỹ sư có thể thu thập, lọc và trình bày ngữ cảnh phù hợp cho mô hình.

Các Loại Ngữ cảnh

Ngữ cảnh có thể được phân loại theo các tiêu chí khác nhau:

Theo nguồn gốc:

  • Do người dùng cung cấp: Đầu vào rõ ràng từ người dùng, câu hỏi hoặc mô tả nhiệm vụ của họ.
  • Từ lịch sử hội thoại: Các tin nhắn trước đó của người dùng và trợ lý (bộ nhớ ngắn hạn).
  • Được trích xuất (Retrieved): Dữ liệu từ các nguồn bên ngoài (tài liệu, cơ sở dữ liệu, web) thông qua RAG.
  • Từ hồ sơ/cơ sở tri thức: Thông tin dài hạn về người dùng hoặc lĩnh vực.
  • Tĩnh/Hướng dẫn: Thông tin được kỹ sư tích hợp vào template của prompt (hướng dẫn, ví dụ, định nghĩa vai trò).

Theo tính động:

  • Ngữ cảnh tĩnh: Phần không thay đổi của prompt (hướng dẫn, định nghĩa, ví dụ). Xác định nhiệm vụ tổng thể.
  • Ngữ cảnh động: Thông tin thay đổi theo từng yêu cầu (dữ liệu người dùng, kết quả RAG, thời gian hiện tại). Cung cấp các chi tiết cụ thể.

Theo thời gian lưu trữ (Bộ nhớ):

  • Ngữ cảnh ngắn hạn: Lịch sử phiên hội thoại hiện tại.
  • Ngữ cảnh dài hạn: Dữ liệu được lưu về người dùng hoặc các tương tác trước đây, đòi hỏi các cơ chế lưu trữ và truy xuất.

Quản lý Ngữ cảnh

Quản lý ngữ cảnh hiệu quả là nhiệm vụ then chốt của prompt engineering, đặc biệt trong bối cảnh các hạn chế của cửa sổ ngữ cảnh LLM. Các phương pháp chính:

  • RAG: Phương pháp phổ biến nhất để làm việc với khối lượng thông tin lớn. Cho phép tự động tìm kiếm và đưa vào prompt chỉ những đoạn liên quan nhất từ cơ sở tri thức rộng lớn. Yêu cầu có cơ sở dữ liệu vector và các cơ chế tìm kiếm hiệu quả (từ vựng hoặc ngữ nghĩa).
  • Chunking: Chia các tài liệu lớn thành các phần có liên quan về mặt ngữ nghĩa hoặc có kích thước cố định để lập chỉ mục và truy xuất sau đó thông qua RAG.
  • Tóm tắt (Sumarization): Nén lịch sử hội thoại dài hoặc các tài liệu dài để truyền đạt ý nghĩa chính trong cửa sổ ngữ cảnh hạn chế.
  • Quản lý Bộ nhớ (Memory Management): Sử dụng các chiến lược khác nhau để lưu trữ và truy xuất lịch sử hội thoại trong các chatbot và agent (ví dụ: ConversationBufferMemory, ConversationSummaryBufferMemory trong LangChain).
  • Cửa sổ trượt (Sliding Window): Chỉ giữ lại N tin nhắn cuối cùng của hội thoại trong ngữ cảnh.
  • Lọc và Ưu tiên hóa: Lựa chọn các đoạn ngữ cảnh liên quan nhất dựa trên mức độ quan trọng của chúng (ví dụ: dựa trên điểm liên quan được trả về khi tìm kiếm) trước khi tổng hợp prompt cuối cùng.

Vai trò của Ngữ cảnh trong Prompt Engineering

  • Tăng Tính Liên quan: Ngữ cảnh cho phép mô hình tạo ra các câu trả lời phù hợp chính xác với yêu cầu và tình huống của người dùng.
  • Giảm Ảo giác (Hallucination): Cung cấp thông tin thực tế (thông qua RAG) buộc mô hình dựa vào đó thay vì bịa đặt sự kiện.
  • Cá nhân hóa: Ngữ cảnh về người dùng (sở thích, lịch sử) cho phép điều chỉnh các câu trả lời.
  • Quản lý Trạng thái: Trong các hội thoại và quy trình nhiều bước, ngữ cảnh (lịch sử) đảm bảo tính liên tục và sự nhận thức của mô hình về các bước trước đó.
  • Vượt qua Hạn chế Kiến thức của Mô hình: RAG cho phép mô hình trả lời các câu hỏi về các sự kiện xảy ra sau khi huấn luyện, hoặc về dữ liệu cụ thể/riêng tư.

Hạn chế

  • Giới hạn Cửa sổ Ngữ cảnh: Mặc dù đã tăng lên đến 1-2 triệu token ở các mô hình hiện đại, việc xử lý khối lượng như vậy có thể tốn kém và chậm. Đòi hỏi các chiến lược nén và lựa chọn hiệu quả (RAG, tóm tắt).
  • Tìm kiếm Ngữ cảnh Liên quan: Hiệu quả của RAG phụ thuộc vào chất lượng tìm kiếm. Ngữ cảnh được trích xuất sai có thể làm mô hình bị lạc hướng («rác vào - rác ra»).
  • «Thung lũng Thờ ơ» (Valley of Meh): Thông tin nằm ở giữa một prompt rất dài có thể bị mô hình bỏ qua. Đòi hỏi phải cấu trúc hóa prompt (ví dụ: «kỹ thuật sandwich»).
  • Nguy cơ Context Injection: Nếu ngữ cảnh được trích xuất từ các nguồn không đáng tin cậy (ví dụ: trang web), nó có thể chứa các hướng dẫn độc hại (prompt injection).

Tài liệu tham khảo

  • Lewis, P. et al. (2020). Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks. arXiv:2005.11401.
  • Wei, J. et al. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
  • Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
  • Kojima, T. et al. (2022). Large Language Models are Zero-Shot Reasoners. arXiv:2205.11916.
  • Chen, S. et al. (2023). Extending Context Window of Large Language Models via Positional Interpolation. arXiv:2306.15595.
  • Schick, T. et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. arXiv:2302.04761.
  • Besta, M. et al. (2023). Graph of Thoughts: Solving Elaborate Problems with Large Language Models. arXiv:2308.09687.
  • Packer, C. et al. (2023). MemGPT: Towards LLMs as Operating Systems. arXiv:2310.08560.
  • Wang, Y. et al. (2023). Self-Instruct: Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.
  • Sahoo, P. et al. (2024). A Systematic Survey of Prompt Engineering in Large Language Models: Techniques and Applications. arXiv:2402.07927.
  • Kim, S. H. et al. (2024). Theanine: Revisiting Memory Management in Long-term Conversations with Timeline-augmented Response Generation. arXiv:2406.10996.
  • Chen, S. et al. (2024). StruQ: Defending Against Prompt Injection with Structured Queries. arXiv:2402.06363.
  • Zhong, M. et al. (2024). Understanding the RoPE Extensions of Long-Context LLMs: An Attention Perspective. arXiv:2406.13282.
  • Han, H. et al. (2025). Retrieval-Augmented Generation with Graphs (GraphRAG). arXiv:2501.00309.
  • Self-Instruct (2025). Aligning Language Models with Self-Generated Instructions. arXiv:2212.10560.

Xem thêm

  • Mô hình ngôn ngữ lớn
  • Cửa sổ ngữ cảnh
  • Cơ sở dữ liệu vector
  • LangChain