LLM context window: kỹ thuật mở rộng ngữ cảnh cho mô hình AI

Context window là gì?

Context window (cửa sổ ngữ cảnh) là số token tối đa mà một mô hình ngôn ngữ lớn (LLM) có thể xử lý cùng trong một lượt forward pass, bao gồm cả input (prompt) và output (generated text). Điều này xác định mức độ “nhìn thấy” thông tin mà model có trong một lần suy luận.

Độ phức tạp tính toán của self-attention chuẩn là O(n²) đối với độ dài chuỗi n, do đó việc tăng context window làm tăng đáng kể chi phí inference.


Biểu đồ transformer với các khối encoder, decoder và cơ chế self-attention minh họa cách model xử lý ngữ cảnh

Kích thước context window phổ biến

Các mô hình LLM hiện đại có các mức độ context window khác nhau, thường được tăng dần qua các phiên bản mới:

Mô hình Context window Ghi chú
GPT-4 (chuẩn) 8.192 token GPT-4 Technical Report
GPT-4 (32k) 32.768 token GPT-4 Technical Report
GPT-4 Turbo / GPT-4o 128.000 token OpenAI blog 2023-2024
Claude 2.1 200.000 token ~150.000 từ, ~500 trang
Claude 3 Opus / Sonnet / Haiku 200.000 token (mặc định), lên tới >1M token Anthropic news 2024
Gemini 1.5 Pro 1.048.576 token (~1M) Google blog Feb 2024
Llama 3 (8B/70B) 8.192 token HuggingFace blog
Llama 3.1 (8B/70B/405B) 128.000 token Meta AI blog Jul 2024
Mistral 7B v0.1 8.192 token (sliding window 4.096) arXiv:2310.06825

Các model như Claude 3.5 và Gemini 1.5 Pro mang lại khả năng xử lý tài liệu dài như cuốn sách, bộ mã nguồn, hoặc transcript video trong một lần truy vấn.

Kỹ thuật mở rộng context window

Để vượt qua giới hạn O(n²) của self-attention chuẩn, các nhà nghiên cứu đã đề xuất nhiều kỹ thuật:

RoPE (Rotary Position Embedding)

Mã hóa vị trí bằng ma trận xoay, đồng thời nhúng phụ thuộc vị trí tương đối vào self-attention. RoPE cho phép thay đổi độ dài chuỗi linh hoạt và được dùng bởi Llama, Mistral, Qwen, Yi.

RoFormer: Enhanced Transformer with Rotary Position Embedding (Su et al., 2021)


Minh họa cơ chế self-attention: từng token được gán trọng số query, key, value để liên kết với các token khác trong cửa sổ ngữ cảnh

Sliding Window Attention (SWA)

Mỗi layer chỉ attend vào một cửa sổ gần nhất thay vì toàn bộ chuỗi. Mistral 7B sử dụng SWA với window = 4.096 hidden states, nhờ stacked layers cho phép attend xa hơn một cách ngầm định.

Mistral 7B (Jiang et al., 2023)

Sparse Attention

Chỉ tính attention trên tập con các cặp token (pattern: global tokens, sliding window, dilated window). Longformer kết hợp local windowed attention + global attention, giảm O(n²) → O(n).

Longformer: The Long-Document Transformer (Beltagy et al., 2020)

LongRoPE

Kỹ thuật dựa trên RoPE đạt tới ~2 triệu token cho LLaMA2/Mistral. Sử dụng non-uniformity trong positional interpolation và progressive extension strategy (fine-tune 256k → 2.048k).

LongRoPE: Extending LLM Context Window Beyond 2 Million Tokens (Ding et al., 2024)

YaRN (Yet another RoPE extensioN method)

Phương pháp hiệu quả, yêu cầu 10x ít tokens và 2.5x ít training steps để mở rộng context window của các model RoPE-based.

YaRN: Efficient Context Window Extension of Large Language Models (Peng et al., 2023)

RAG (Retrieval-Augmented Generation)

Thay vì nhồi toàn bộ kiến thức vào context window, RAG lấy các đoạn văn bản liên quan từ vector database đưa vào prompt. Giảm nhu cầu context window và cung cấp nguồn trích dẫn.

Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks (Lewis et al., 2020)

Context Compression (LLMLingua)

LLMLingua thực hiện nén prompt từ coarse-to-fine, đạt tới 20x nén với mất mát performance nhỏ, giảm chi phí inference và latency.

LLMLingua: Compressing Prompts for Accelerated Inference of Large Language Models (Jiang et al., 2023)

Hạn chế của việc mở rộng context

Dù có nhiều kỹ thuật, vẫn còn những thách thức quan trọng:

  • Lost in the Middle: Performance giảm mạnh khi thông tin quan trọng nằm ở giữa context — model hay nhớ tốt nhất ở đầu và cuối, kém ở giữa.
  • Chi phí tính toán: Attention cost tăng theo bình phương độ dài (dense attention).
  • Catastrophic values: Vị trí mới ngoài training window có thể gây giá trị bất thường vào RoPE.

Vì vậy, RAG và context compression thường là lựa chọn hiệu quả hơn cho nhiều trường hợp thực tế.

Kết luận

Context window là yếu tố then chốt quyết định khả năng xử lý dữ liệu dài của LLM. Mặc dù có nhiều kỹ thuật mở rộng như RoPE, SWA, LongRoPE, YaRN, việc lựa chọn kỹ thuật phù hợp vẫn phụ thuộc vào trade-off giữa độ dài, chi phí và chất lượng. Trong thực tế, kết hợp RAG hoặc context compression thường mang lại kết quả tốt nhất cho nhiều ứng dụng.

Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

So sánh tốc độ và RAM usage của Phi-3.5-mini, Gemma 2 2B, Qwen2.5 3B trên Raspberry Pi 5

So sánh SLM trên thiết bị biên Phi-3.5-mini Gemma 2 2B Qwen2.5 3B

Giới thiệu về Small Language Models (SLMs) Small Language Models (SLMs) đang trở thành xu hướng mới trong lĩnh vực AI cho thiết bị biên (Edge AI) với kích thước…

Xem thêm

RAG là gì: Retrieval Augmented Generation cho AI hiện đại

RAG: Retrieval Augmented Generation nâng cấp LLM RAG (Retrieval Augmented Generation) là kỹ thuật kết hợp truy xuất tài liệu từ cơ sở tri thức bên ngoài với khả năng…

Xem thêm

TinyML: Chạy Machine Learning Trên Vi Điều Khiển Siêu Nhỏ

TinyML là gì? TinyML là nhánh trí tuệ nhân tạo intelligence chạy trực tiếp trên vi điều khiển siêu nhỏ — những chip có RAM chỉ vài KB, không cần…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất