TROISINH
Context EngineeringQuản lý Context

Context Compression: Nén thông tin mà không mất ý

Bí quyết giảm 70% token nhưng AI vẫn hiểu đúng ý. Học ngay context compression - chiến lược tiết kiệm chi phí và tăng tốc độ xử lý cho mọi ứng dụng AI.

Định nghĩa

Context compression là kỹ thuật biến đổi nội dung đầu vào thành dạng ngắn gọn hơn (ít token hơn) nhưng vẫn giữ nguyên toàn bộ ý nghĩa quan trọng cho tác vụ. Khác với việc cắt bỏ thông tin (truncation), compression là tái cấu trúc để tăng mật độ thông tin trên mỗi token — tương tự như nén file ZIP nhưng cho não AI đọc.

Giải thích chi tiết

Vấn đề: Context Window không phải bộ nhớ vô hạn

Context window của AI giống như RAM máy tính: có giới hạn cứng, tốn chi phí để "mua" thêm (token pricing), và khi đầy sẽ làm chậm toàn bộ hệ thống. Nhiều developer nghĩ rằng cứ dùng model có context window 128K là xong, nhưng thực tế:

  • Chi phí: API tính tiền theo token đầu vào. Đưa 10.000 token văn bản thô vào khi chỉ cần 500 token đã nén là đốt tiền vô ích.
  • Hiệu suất: AI bị "ngộp" khi phải đọc quá nhiều văn bản thừa — hiện tượng lost in the middle khiến model bỏ qua thông tin quan trọng nằm giữa đoạn dài dòng.
  • Latency: Prompt càng dài, thời gian xử lý càng lâu (thường tăng tuyến tính hoặc hơn).

Context compression giải quyết bằng cách tăng "năng lượng thông tin" trên mỗi token. Thay vì đưa 10.000 tokens lộn xộn, bạn đưa 2.000 tokens đã tinh chế — AI hiểu nhanh hơn, trả lời chính xác hơn, chi phí thấp hơn 80%.

Chiến lược nén hiệu quả

1. Semantic Summarization (Tóm tắt ngữ nghĩa)

Không phải cắt đoạn đầu đoạn cuối. Bạn dùng một model nhẹ (hoặc thuật toán trích xuất) đọc toàn bộ văn bản, trích xuất:

  • Core arguments (luận điểm chính)
  • Key entities (thực thể quan trọng: người, công ty, số liệu)
  • Relationships (mối quan hệ giữa các thực thể)
  • Evidence (bằng chứng hoặc dữ liệu số cụ thể)

Ví dụ: Email thread 20 hồi thoại lộn xộn → nén thành 5 bullet points: "Alice đề xuất tăng ngân sách X, Bob phản đối vì rủi ro Y, quyết định cuối: thực hiện Z vào thứ 6 với budget giới hạn 50 triệu."

2. Structured Extraction (Trích xuất cấu trúc)

AI đọc dữ liệu có cấu trúc (JSON, YAML, bảng Markdown) nhanh hơn nhiều so với prose tự do. Thay vì đoạn văn dài, trích thành:

{
  "project": "Migration to Cloud",
  "stakeholders": ["CTO", "DevOps Lead"],
  "blockers": ["Budget approval pending", "Legacy API compatibility"],
  "timeline": "Q3 2024",
  "budget": "2.5B VND"
}

3. Selective Detail Preservation (Giữ chi tiết có chọn lọc)

Phân biệt "summary" và "detail":

  • Phần lớn nội dung: giữ ở dạng summary cao
  • Phần cực kỳ quan trọng với task hiện tại: giữ nguyên verbatim (nguyên văn)

Pattern này đặc biệt quan trọng khi debug: Bạn nén toàn bộ codebase thành API signatures và comments, nhưng giữ nguyên implementation của hàm đang bị lỗi để AI có thể phân tích chi tiết.

4. Hybrid Multi-Layer (Nén nhiều tầng)

Trong hệ thống RAG phức tạp:

  • Layer 1: Raw documents (lưu trữ)
  • Layer 2: Chunk summaries (tóm tắt từng đoạn)
  • Layer 3: Meta-summary (tóm tắt của các tóm tắt — chỉ dùng cho overview)

Khi query đến, chỉ "expand" (giải nén) những chunk có relevance cao, giữ phần còn lại ở dạng nén.

Ví dụ thực tế

Chatbot hỗ trợ khách hàng (RAG)

Before (3,200 tokens):

"Chào shop, tôi đặt đơn hàng #12345 ngày 2/1 nhưng nhận hàng bị móp góc. Tôi đã gọi hotline lúc 10h sáng và chị Hương bảo sẽ xử lý. Đến chiều chị ấy nhắn lại là hết hàng đổi. Tôi bực mình vì sao không báo sớm. Hôm sau tôi chat lại, lần này anh Minh tiếp nhận và đề xuất hoàn tiền 80%. Tôi không đồng ý vì lỗi do shop. Sau 3 lần trao đổi, thứ 5 tuần sau shop mới đồng ý đổi mới toàn bộ. Bây giờ tôi muốn hỏi về chính sách bảo hành của sản phẩm này..."

After (180 tokens):

Khách hàng: Nguyễn Văn A (VIP)
Lịch sử Đơn #12345:
- 2/1: Khiếu nại hàng lỗi → Đã đổi mới sau 3 lượt trao đổi
- Sentiment: Từ negative → neutral (đã giải quyết xong)
Current intent: Hỏi chính sách bảo hành sản phẩm mới
Constraint: Trả lời nhanh, xác nhận thời hạn bảo hành 12 tháng

Kết quả: Giảm 94% token. AI vẫn trả lời đúng tone (cẩn trọng vì khách VIP đã từng khiếu nại), biết đề cập đến đơn hàng cũ để tạo liên kết, nhưng phản hồi trong dưới 1 giây thay vì 3 giây.

Code Review Assistant

Before (2,800 tokens — toàn bộ file):

# 500 dòng code của module authentication...
# Bao gồm: import, class definition, 20 methods, 
# utilities, test cases inline...

After (340 tokens — nén có chọn lọc):

# File: auth.py (Architecture Overview)
# - AuthManager: Quản lý JWT token ( HS256 )
# - UserModel: SQLAlchemy ORM mapping
# - Function: refresh_token(old_token) -> new_token | None
#   [FULL IMPLEMENTATION HERE - 45 dòng]
# - Function: validate_password() (không đổi, bỏ qua)
# Issue context: CVE-2024-xxx liên quan đến JWT refresh

Kết quả: Tiết kiệm 88% chi phí API. Vì chỉ đưa đúng hàm refresh_token đang có lỗi security, AI tập trung phân tích sâu lỗ hổng thay vì bị phân tâm bởi 20 hàm khác.

Phân tích tài liệu pháp lý

Before (8,500 tokens — hợp đồng 20 trang):

"HỢP ĐỒNG CUNG CẤP DỊCH VỤ... (toàn bộ điều khoản từ 1-20)... Điều 12. Bảo mật thông tin: Bên B cam kết không tiết lộ..."

After (420 tokens — trích xuất có cấu trúc):

Contract #2024-001: X (Provider) ↔ Y (Client)
Scope: Cloud migration services
Key Clauses:
- Clause 8 (Payment): 30% upfront, 70% on delivery
- Clause 12 (NDA): 
  "Bên B không được tiết lộ dữ liệu khách hàng 
   cho bên thứ 3 trong 5 năm sau termination"
- Clause 15 (SLA): Uptime 99.9%, penalty 0.1%/hour downtime
Irrelevant sections: [Recitals, Definitions, Force Majeure - compressed]
Query focus: NDA enforcement period

Kết quả: AI trích dẫn chính xác điều khoản 12 với thời hạn 5 năm, không bị nhầm lẫn với các điều khoản bảo mật khác ở phụ lục (đã được loại bỏ trong quá trình nén).

Ứng dụng

Sinh viên & Học sinh

Nén tài liệu học: Khi dùng AI để ôn thi, thay vì copy-paste cả chương sách giáo khoa 50 trang, nén thành "knowledge graph" với các node: Concept → Formula → Common Mistakes. AI vẫn giải bài tập đúng nhưng tránh được tình trạng "quá tải context" khiến model bỏ qua công thức quan trọng nằm ở giữa chương.

Developer & Kỹ sư AI

RAG với codebase enterprise: Trong hệ thống retrieval-augmented generation, compress-to-expand là pattern chuẩn: lưu trữ code ở dạng summary (signatures + docstrings), khi query liên quan đến hàm cụ thể mới "hydrate" (giải nén) phần implementation. Giảm 90% token cho các query tổng quát như "explain architecture".

Log analysis: Nén 50.000 dòng log thành frequency table (lỗi A xuất hiện 45 lần, lỗi B 3 lần) và temporal patterns (peak error 14:00-14:05) trước khi đưa vào AI phân tích root cause.

Product Manager & Business Analyst

Requirement grooming: Nén user stories dài dòng thành structured format:

[Role] As a merchant
[Goal] I want bulk import via CSV
[Benefit] To save 5hrs/month on manual entry
[Constraints] Max 10MB file, UTF-8 encoding
[Acceptance] Validate email format before save

AI phân tích edge cases và suggest test scenarios nhanh hơn đọc văn bản tự do 3 trang.

Doanh nghiệp & Customer Support

Session continuity: Trong hệ thống support đa lượt, nén lịch sử chat 40 lượt tương tác thành customer journey summary: "Khách hỏi về feature X → Agent giải thích sai → Khách tức giận → Supervisor vào cuộc → Issue resolved → Khách hỏi thêm về pricing". Agent AI mới vào cuộc nắm bắt ngay tình huống không cần đọc lại toàn bộ log.

So sánh

Tiêu chíContext CompressionContext SelectionTruncation (Cắt xén đơn thuần)
Bản chấtTái cấu trúc nội dung để giảm tokenChọn lọc thông tin nào đưa vàoCắt bỏ phần cuối hoặc đầu theo số lượng
Xử lý ngữ nghĩaCó (hiểu nội dung để tóm tắt)Có (đánh giá relevance)Không (chỉ đếm token)
Mất mát thông tinLossy có chọn lọc (giữ ý chính) hoặc Lossless (nén cấu trúc)Lossless (bỏ qua phần không chọn)Lossy ngẫu nhiên (có thể cắt mất phần quan trọng)
Chi phí xử lýCao (cần pre-processing)Trung bình (cần retrieval/scoring)Thấp (O(1) cutting)
Khi nào dùngKhi cần giữ "bức tranh toàn cảnh" nhưng ngắn gọnKhi có nhiều nguồn, chỉ chọn phần liên quan nhấtKhi không quan tâm đến context cũ/lỗi thời (streaming)
Tác động hiệu suất AITăng đáng kể (thông tin dày đặc)Tăng vừa phải (loại bỏ nhiễu)Rủi ro cao (mất context quan trọng)

Kết luận: Truncation là "cách chữa cháy" khi quá giới hạn token. Context Selection là "chọn đúng người vào phòng họp". Context Compression là "dạy mọi người nói súc tích, đi thẳng vào vấn đề". Trong thực tế production, bạn thường kết hợp cả ba: chọn đúng tài liệu (selection), nén chúng lại (compression), và cắt bỏ phần thừa cuối cùng nếu vẫn còn vượt ngưỡng (truncation).

Bài viết liên quan

Cùng cụm

Context Selection: Chọn đúng thông tin đưa vào

Trước khi nén, bạn cần biết chọn gì để nén. Học cách lọc nhiễu và giữ lại thông tin có giá trị nhất.

Context Ordering: Thứ tự thông tin ảnh hưởng kết quả

Sau khi nén, việc sắp xếp thông tin theo đúng thứ tự sẽ giúp AI "nhớ" tốt hơn và tránh bias primacy/recency.

Context Isolation: Tách biệt context tránh nhiễu

Khi nén nhiều nguồn khác nhau, cần tách biệt rõ ràng để tránh thông tin bị lẫn lộn vào nhau (context bleed).

Tối ưu Context Window: Chiến lược khi token có hạn

Chiến lược tổng thể để quản lý giới hạn token, kết hợp nén, chọn lọc và sắp xếp hiệu quả như quản lý RAM.

Đọc tiếp

Memory & Conversation: Quản lý trạng thái dài hạn

Context compression thường đi đôi với hệ thống memory. Tìm hiểu cách lưu trữ và nén lịch sử hội thoại qua nhiều lượt tương tác.

State & Session Management (Level 2)

Khi đã thành thạo nén context ở Level 1, học cách thiết kế state machine và session management cho AI agent phức tạp.

On this page