Bỏ qua tới nội dung chính
Quay lại tin tức

Quản lý Windows ngữ cảnh nhỏ trong mô hình ngôn ngữ

Machine Learning Mastery· Iván Palomares Carrascosa· 18/8/2026general

Trong bài viết này, bạn sẽ tìm hiểu ba chiến lược thực tế để quản lý các cửa sổ ngữ cảnh nhỏ trong các mô hình ngôn ngữ lớn, cùng với các ví dụ Python hoạt động minh họa...

Quản lý Windows ngữ cảnh nhỏ trong mô hình ngôn ngữ Bởi Iván Palomares Carrascosa vào ngày 15 tháng 8 năm 2026 trong Mô hình ngôn ngữ 0 Chia sẻ bài đăng Chia sẻ Trong bài viết này, bạn sẽ tìm hiểu ba chiến lược thực tế để quản lý các cửa sổ ngữ cảnh nhỏ trong các mô hình ngôn ngữ lớn, cùng với các ví dụ Python hoạt động minh họa cách triển khai hai chiến lược đó. Các chủ đề chúng tôi sẽ đề cập bao gồm: Cách cắt ngắn ngữ cảnh thông qua phương pháp cửa sổ trượt giúp việc sử dụng mã thông báo ổn định và có thể dự đoán được. Cách lập ngân sách mã thông báo kết hợp với việc tạo tăng cường truy xuất sẽ đảm bảo chỉ bối cảnh phù hợp nhất mới phù hợp với lời nhắc. Tổng quan ngắn gọn về các chiến lược bổ sung dành cho các trường hợp sử dụng chuyên biệt hơn — tóm tắt luân phiên, nén nhanh và che giấu quan sát. Giới thiệu Các ngành công nghiệp AI hàng đầu đã phần nào bị ám ảnh bởi các mô hình ngôn ngữ có khả năng sử dụng các cửa sổ ngữ cảnh lớn, ví dụ: toàn bộ cuốn sách trong một dấu nhắc duy nhất. Tuy nhiên, điều họ không dễ dàng thừa nhận là trong các ứng dụng LLM trong thế giới thực, các cửa sổ ngữ cảnh khổng lồ này đi kèm với nhiều hạn chế và thách thức khác nhau, bao gồm chi phí API tăng vọt, thời gian phản hồi không thể chấp nhận được và thậm chí tệ hơn là vấn đề được gọi là “bị mất ở giữa” trong đó một mô hình bỏ qua dữ liệu bị chôn sâu giữa dấu nhắc khổng lồ. Do đó, không có gì ngạc nhiên khi làm việc với các cửa sổ ngữ cảnh nhỏ nhưng được quản lý thông minh có thể mang lại kết quả vượt trội, giảm độ trễ, giảm thiểu chi phí và buộc mô hình phải tập trung vào những gì thực sự quan trọng để tạo ra phản hồi. Bài viết này trình bày ba trong số các chiến lược thực tế được áp dụng rộng rãi nhất để quản lý và làm chủ các cửa sổ ngữ cảnh nhỏ trong mô hình ngôn ngữ, cùng với các ví dụ mô phỏng cách triển khai một số chiến lược trong số đó để hiểu rõ hơn. Cắt ngắn bối cảnh: Cửa sổ trượt Có sự đồng thuận rằng cửa sổ trượt được cho là chiến lược phổ biến nhất và đơn giản nhất để quản lý cửa sổ ngữ cảnh rút gọn trong các mô hình ngôn ngữ. Thay vì cung cấp toàn bộ lịch sử hội thoại của người dùng cho mô hình, ngữ cảnh được coi là hàng đợi FIFO (Vào trước ra trước): khi có tương tác mới (tin nhắn đã trao đổi), những tương tác cũ nhất sẽ bị loại bỏ. Tất cả những gì cần làm là xác định kích thước của cửa sổ ngữ cảnh và tạo ra sự cân bằng giữa việc duy trì đủ ngữ cảnh trong quá khứ và kiểm soát chi phí độ trễ. Ưu điểm chính của việc cắt bớt bối cảnh thông qua cửa sổ trượt là khả năng kiểm soát và dự đoán tuyệt đối đối với việc sử dụng mã thông báo và chi phí tính toán. Số lượng tương tác tối đa mà mô hình xử lý tại một thời điểm nhất định vẫn cố định, giữ cho độ trễ ổn định và không có bất ngờ. Để hiểu rõ hơn cách thức hoạt động của phương pháp này, chúng ta hãy xem đoạn mã Python sau, trong đó bạn có thể tự do điều chỉnh giá trị của max_turns (kích thước cửa sổ ngữ cảnh) và xem nó ảnh hưởng như thế nào đến “bộ nhớ” được đưa vào dấu nhắc hiện tại: lớp SlidingWindowMemory: def __init__(self, max_turns=3): """Chỉ giữ lại `lượt_lượt tối đa` cuối cùng của cuộc trò chuyện.""" self.max_turns = max_turns self.history = [] def add_interaction(self, user_text, ai_text): self.history.append({"user": user_text, "ai": ai_text}) # Logic đằng sau cửa sổ trượt: bỏ lượt cũ nhất nếu vượt quá giới hạn if len(self.history) > self.max_turns: self.history = self.history[-self.max_turns:] def build_prompt(self, new_query): nhắc = "Hệ thống: Trả lời ngắn gọn dựa trên ngữ cảnh gần đây.\n\n" lần lượt trong self.history: nhắc += f"Người dùng: {turn['user']}\nAI: {turn['ai']}\n" nhắc += f"Người dùng: {new_query}\nAI:" lời nhắc trả lại # --- Kiểm tra cơ chế Cửa sổ trượt: tùy ý điều chỉnh giá trị max_turns --- bộ nhớ = SlidingWindowMemory(max_turns=2) # Mô phỏng một cuộc trò chuyện dài Memory.add_interaction("Xin chào, tôi đang học Python.", "Sự lựa chọn tuyệt vời!") Memory.add_interaction("Danh sách là gì?", "Danh sách là mảng có thể thay đổi.") Memory.add_interaction("Họ có thể chứa các loại hỗn hợp không?", "Có, họ có thể.") # Lời nhắc sẽ chỉ chứa các tương tác 'max_turns' cuối cùng, lưu mã thông báo print(memory.build_prompt("Làm cách nào để thêm vào một?")) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 lớp SlidingWindowMemory: def __init__(self, max_turns=3): """Chỉ giữ lại `max_turns` cuối cùng của cuộc trò chuyện.""" self.max_turns = max_turns self.history = [] def add_interaction(self, user_text, ai_text): self.history.append({"user": user_text, "ai": ai_text}) # Logic đằng sau cửa sổ trượt: bỏ lượt cũ nhất nếu vượt quá giới hạn if len(self.history) > self.max_turns: self.history = self.history[-self.max_turns:] def build_prompt(self, new_query): nhắc = "Hệ thống: Trả lời ngắn gọn dựa trên ngữ cảnh gần đây.\n\n" lần lượt trong self.history: nhắc += f"Người dùng: {turn['user']}\nAI: {turn['ai']}\n" nhắc += f"Người dùng: {new_query}\nAI:" lời nhắc trả lại # --- Kiểm tra cơ chế Cửa sổ trượt: tùy ý điều chỉnh giá trị max_turns --- bộ nhớ = SlidingWindowMemory(max_turns=2) # Mô phỏng một cuộc trò chuyện dài Memory.add_interaction("Xin chào, tôi đang học Python.", "Sự lựa chọn tuyệt vời!") Memory.add_interaction("Danh sách là gì?", "Danh sách là mảng có thể thay đổi.") Memory.add_interaction("Họ có thể chứa các loại hỗn hợp không?", "Có, họ có thể.") # Lời nhắc sẽ chỉ chứa các tương tác 'max_turns' cuối cùng, lưu mã thông báo print(memory.build_prompt("Làm cách nào để thêm vào một?")) Đầu ra: Hệ thống: Trả lời ngắn gọn dựa trên bối cảnh gần đây. Người dùng: Danh sách là gì? AI: Danh sách là mảng có thể thay đổi. Người dùng: Họ có thể đựng được nhiều loại khác nhau không? AI: Vâng, họ có thể. Người dùng: Làm cách nào để thêm vào một? AI: 1 2 3 4 5 6 7 8 Hệ thống: Trả lời ngắn gọn dựa trên bối cảnh gần đây. Người dùng: Danh sách là gì? AI: Danh sách là mảng có thể thay đổi. Người dùng: Họ có thể đựng được nhiều loại khác nhau không? AI: Vâng, họ có thể. Người dùng: Làm cách nào để thêm vào một? AI: Bạn cũng có thể thử mở rộng lịch sử hội thoại bằng cách thêm các lệnh gọi bộ nhớ.add_interaction() mới với các cặp phản hồi truy vấn bổ sung

Nguồn tin: Machine Learning Mastery — Tác giả: Iván Palomares Carrascosa. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.