Context window (VI)

From Systems analysis Wiki
Jump to navigation Jump to search

Cửa sổ ngữ cảnh trong các mô hình ngôn ngữ lớn (LLM) là dung lượng thông tin văn bản tối đa (tính bằng token) mà mô hình có thể xem xét khi tạo ra câu trả lời[1]. Nói cách khác, đây là một dạng «bộ nhớ làm việc» của mô hình, xác định lượng văn bản (bao gồm cả câu truy vấn gốc của người dùng lẫn các câu mô hình đã tạo ra trước đó) mà nó có thể giữ trong ngữ cảnh cùng một lúc[1]. Kích thước cửa sổ ngữ cảnh được đo bằng token — các đơn vị văn bản quy ước (từ, các phần của từ hoặc ký tự) mà đầu vào được phân tách ra để mô hình xử lý[1]. Độ mạch lạc và tính phù hợp của các câu trả lời được tạo ra phụ thuộc trực tiếp vào độ dài cửa sổ ngữ cảnh: dung lượng ngữ cảnh lớn cho phép mô hình xem xét tốt hơn các thông tin trước đó, ghi nhớ các chi tiết trong các cuộc hội thoại kéo dài và không bị mất đi ý nghĩa khi làm việc với các tài liệu dài[1].

Sự phát triển của kích thước cửa sổ ngữ cảnh

Các mô hình ngôn ngữ dạng transformer đầu tiên có cửa sổ ngữ cảnh tương đối nhỏ. Ví dụ, trong giai đoạn 2018-2019, độ dài ngữ cảnh tối đa vào khoảng 512-1024 token[2]. Mô hình GPT-3 (2020) đã có thể xử lý lên đến 2048 token mỗi lần[2]. Vào giai đoạn đầu hoạt động của ChatGPT (2022), giới hạn ngữ cảnh là khoảng 4000 token (khoảng 3000 từ), điều này hạn chế độ dài của cuộc trò chuyện — khi vượt quá ~3000 từ, chatbot bắt đầu «bị lạc» và ảo giác ngoài chủ đề[1].

Các mô hình hàng đầu hiện nay đã tăng đáng kể ngưỡng này: GPT-4 có sẵn trong các phiên bản với cửa sổ 819232 768 token[1], còn mô hình Claude của công ty Anthropic vào năm 2023 đã nhận được cửa sổ 100 000 token (khoảng 75 nghìn từ, tức là vài trăm trang văn bản)[3]. Đến năm 2024, đã xuất hiện các mô hình với ngữ cảnh khoảng 128 nghìn token (ví dụ, LLaMA 3.1 của Meta)[2] và thậm chí lên đến 1 triệu token (Google Gemini 1.5 Pro)[2]. Vào năm 2025, LLAMA 4 Scout đã được công bố với cửa sổ ngữ cảnh kỷ lục lên đến 10 triệu token[4], tương đương với văn bản có dung lượng hàng chục nghìn trang[5]. Tuy nhiên, các giá trị cực đoan như vậy phần lớn mang tính lý thuyết: giới hạn về bộ nhớ và dữ liệu để huấn luyện không cho phép mô hình tận dụng hoàn toàn toàn bộ ngữ cảnh 10 triệu token trong thực tế[5]. Dù vậy, cuộc đua mở rộng cửa sổ ngữ cảnh đã trở thành một giai đoạn phát triển mới của LLM, có tầm quan trọng tương đương với sự gia tăng số lượng tham số của các mô hình[1].

Dưới đây là các ví dụ về độ dài ngữ cảnh tối đa của một số mô hình:

  • GPT-3 – lên đến ~2048 token[2]
  • GPT-4 – 8192 token (phiên bản tiêu chuẩn) và lên đến 32 768 ở phiên bản mở rộng[1]
  • Anthropic Claude – lên đến 100 000 token[3]
  • LLaMA 3.1 – lên đến 128000 token[2]
  • Google Gemini 1.5 Pro – lên đến 1 000 000 token[2]
  • Meta LLAMA 4 Scout – được công bố lên đến 10 000 000 token[4]

Sự gia tăng cửa sổ ngữ cảnh mở rộng đáng kể khả năng của các mô hình[3]. Nếu 32 nghìn token tương ứng với khoảng 50 trang văn bản, thì 100 nghìn token là khoảng 75 nghìn từ[3]. Trong khi đó, mô hình có thể xử lý khối lượng như vậy trong vài giây — ví dụ, phân tích toàn bộ một cuốn tiểu thuyết hay báo cáo kỹ thuật, xác định các chi tiết cần thiết[3]. Như vậy, các mô hình có ngữ cảnh dài có thể lưu giữ trong bộ nhớ cả những cuốn sách, tập hợp tài liệu lớn hay các cuộc hội thoại dài, mở ra các kịch bản ứng dụng mới — từ tóm tắt chi tiết và phân tích hỏi đáp xuyên tài liệu đến làm việc với các đoạn mã nguồn lớn.

Những hạn chế và vấn đề của ngữ cảnh dài

Việc tăng cửa sổ ngữ cảnh đi kèm với những thách thức kỹ thuật và thực tiễn nghiêm trọng[1]. Thách thức chính là sự tăng trưởng tổ hợp của độ phức tạp tính toán[1]. Trong các transformer, cơ chế tự chú ý (self-attention) có độ phức tạp bậc hai theo độ dài chuỗi: khi độ dài ngữ cảnh tăng gấp đôi, dung lượng bộ nhớ và lượng tính toán cần thiết tăng lên khoảng bốn lần[1]. Ví dụ, việc chuyển từ ngữ cảnh 1024 token lên 4096 token về mặt lý thuyết làm tăng chi phí tài nguyên lên ~16 lần[1]. Điều này đặt ra giới hạn cả ở giai đoạn huấn luyện (nơi các chuỗi quá dài khó sử dụng do giới hạn bộ nhớ GPU và thời gian huấn luyện), lẫn ở giai đoạn triển khai mô hình — các truy vấn dài làm chậm đáng kể quá trình tạo câu trả lời và làm tăng chi phí khi sử dụng các API thương mại[2]. Phí thường được tính cho việc xử lý các token đầu vào, vì vậy các văn bản dài được đưa vào mô hình làm tăng chi phí câu trả lời theo tỷ lệ thuận[2].

Quá tải thông tin là một yếu tố quan trọng khác[2]. Mặc dù cửa sổ lớn cho phép cung cấp cho mô hình nhiều dữ liệu hơn, sự dư thừa chi tiết có thể khiến mô hình không xác định được điều chính yếu trong «nhiễu»[2]. Nghiên cứu cho thấy các LLM hiện đại tiếp nhận thông tin liên quan không đồng đều: chúng có xu hướng chú ý nhiều hơn đến các sự kiện được đặt ở đầu hoặc cuối đầu vào ngữ cảnh dài (hiệu ứng ưu tiên đầu và ưu tiên cuối), và trích xuất kiến thức từ phần giữa của tài liệu lớn kém hơn nhiều[6]. Việc nhồi nhét prompt với các chi tiết không cần thiết có thể làm giảm độ chính xác của câu trả lời[6]. Do đó, sau một giới hạn nhất định, việc tăng thêm dung lượng ngữ cảnh có thể phản tác dụng[2]. Hệ quả thực tiễn của điều này là khuyến nghị chỉ đưa vào truy vấn dài những dữ liệu thực sự cần thiết và cấu trúc ngữ cảnh sao cho thông tin quan trọng nằm gần đầu (hoặc cuối) thông điệp[1].

Ngoài ra, trong thực tế đã phát hiện ra sự chênh lệch giữa độ dài cửa sổ danh nghĩa và độ dài mà mô hình thực sự sử dụng hiệu quả[7]. Nhiều mô hình không thể làm việc đồng đều tốt với toàn bộ độ dài sẵn có — độ sâu ngữ cảnh hiệu quả của chúng thấp hơn đáng kể so với tối đa[7]. Ví dụ, ở mô hình LLaMA 3.1 với ngữ cảnh huấn luyện 128k, trong các bài kiểm tra, thông tin nằm ngoài ~64k token từ đầu hầu như không ảnh hưởng đến câu trả lời[7]. Nhìn chung, đối với hầu hết các LLM mã nguồn mở, được ghi nhận rằng bộ nhớ hiệu quả thực tế của chúng ít hơn một nửa so với độ dài ngữ cảnh được quy định[7]. Các nhà nghiên cứu liên kết điều này với đặc điểm của quá trình huấn luyện: ngay cả khi mô hình được huấn luyện chính thức trên các chuỗi dài, các vị trí rất xa gặp trong dữ liệu ít thường xuyên hơn nhiều so với các vị trí đầu, khiến mô hình bị huấn luyện không đủ ở phần cuối cửa sổ[7]. Trong các kho văn bản điển hình, tần suất xuất hiện của các chuỗi rất dài giảm theo hàm mũ[7]. Sự phân bố vị trí «lệch trái» như vậy dẫn đến việc mô hình tiếp thu ngữ cảnh gần tốt hơn nhiều so với ngữ cảnh xa[7]. Giải pháp có thể là cả việc lựa chọn và gán nhãn dữ liệu huấn luyện cẩn thận hơn, lẫn các phương pháp đặc biệt bù đắp cho các vị trí được huấn luyện chưa đủ[7]. Nhìn chung, việc khắc phục giới hạn này là một lĩnh vực nghiên cứu tích cực[7].

Các phương pháp mở rộng cửa sổ ngữ cảnh

Việc mở rộng cửa sổ ngữ cảnh của LLM đòi hỏi sự kết hợp các cải tiến về kiến trúc và thuật toán. Các hướng chính được áp dụng trong các công trình hiện nay bao gồm:

  • Huấn luyện trên các chuỗi dài[2]. Cách tiếp cận hiển nhiên là cung cấp cho mô hình các ví dụ huấn luyện tương đương với độ dài ngữ cảnh mong muốn. Curriculum learning theo độ dài được áp dụng trong thực tế: tăng dần kích thước văn bản trong quá trình huấn luyện[2]. Cũng sử dụng các kỹ thuật như tích lũy gradient và các phương pháp tiền xử lý dữ liệu đặc biệt[2].
  • Tối ưu hóa cơ chế attention[2]. Do self-attention tiêu chuẩn có chi phí bậc hai, các phương án thay thế đang được nghiên cứu tích cực: sparse attention, sliding window (cửa sổ trượt), phân chia ngữ cảnh đa chiều và các phương pháp khác[2]. Ví dụ, Ring Attention — phương pháp tối ưu hóa attention do IBM đề xuất, giúp giảm tải tính toán với các chuỗi dài[1]. Trong mô hình IBM Granite, việc thêm ring attention đã cho phép tăng đáng kể ngữ cảnh[1].
  • Cải thiện mã hóa vị trí[2]. Phần quan trọng nhất của transformer là cách mã hóa vị trí của các token[2]. Các bộ mã hóa vị trí tuyệt đối cổ điển ngoại suy kém ra ngoài độ dài mà chúng đã được huấn luyện[2]. Vì vậy, đối với ngữ cảnh dài, người ta sử dụng vị trí tương đối và các phương pháp khác[2]. Ví dụ, mô hình Granite trong phiên bản ngữ cảnh 128k đã chuyển từ vị trí tuyệt đối sang mã hóa token theo vị trí tương đối[1]. Mã hóa vị trí xoay (RoPE) được sử dụng rộng rãi[2], giúp bảo toàn tốt hơn mối quan hệ vị trí của các token xa và cho phép mở rộng ngữ cảnh[2]. Cách tiếp cận khác — Attention with Linear Biases (ALiBi) — đưa vào cơ chế attention một độ lệch tăng tuyến tính cho các khoảng cách lớn[2]. Sự kết hợp các kỹ thuật như vậy — ví dụ, điều chỉnh tỷ lệ tần số cơ sở của RoPE (như được thực hiện trong LLaMA 3) — hiện nay được áp dụng để các mô hình có thể hỗ trợ cửa sổ 100k+ token[7].
  • Bộ nhớ và nén ngữ cảnh[1]. Con đường thay thế — không tăng trực tiếp độ dài cửa sổ, mà biểu diễn một cách nhỏ gọn đầu vào dài[1]. Ví dụ, một trong những công nghệ của IBM là mô hình tạo ra biểu diễn nén (tóm tắt) của văn bản dài bằng cách sử dụng một LLM khác[5]. Cách tiếp cận khác — kết nối bộ nhớ dài hạn bên ngoài hoặc cơ sở tri thức: mô hình lưu trữ các sự kiện quan trọng ngoài cửa sổ ngữ cảnh của nó và tải chúng khi cần thiết[5]. Phương án cuối cùng đã được phát triển dưới dạng các phương pháp được gọi là retrieval-augmented generation (RAG)[5].

Điều quan trọng cần lưu ý là mỗi chiến lược được liệt kê đều có cái giá của nó[2]. Huấn luyện trên các ngữ cảnh dài đòi hỏi tài nguyên tính toán khổng lồ và dữ liệu được lựa chọn cẩn thận[2]. Các cơ chế attention và vị trí mới làm phức tạp kiến trúc mô hình và đôi khi làm giảm chất lượng trên các văn bản ngắn[2]. Do đó, các kỹ sư phải cân bằng cẩn thận giữa kích thước cửa sổ, sự ổn định của quá trình huấn luyện và hiệu suất cuối cùng của mô hình[2].

Ngữ cảnh lớn vs. trích xuất thông tin (RAG)

Sự tăng trưởng ngữ cảnh tối đa trong LLM lên đến hàng trăm nghìn token và hơn nữa đã khởi phát cuộc tranh luận về việc liệu có cần thiết các cơ sở tri thức bên ngoài và các thuật toán tìm kiếm với những khả năng như vậy của mô hình hay không[1]. Nếu tất cả thông tin liên quan có thể đặt trực tiếp vào cửa sổ ngữ cảnh, mô hình về mặt lý thuyết có thể trả lời mà không cần truy cập các nguồn bên ngoài[1]. Một số nhà nghiên cứu cho rằng với việc tăng cửa sổ, các phương pháp như retrieval-augmented generation (RAG), khi mô hình nhận trước các văn bản được trích xuất từ cơ sở dữ liệu, có thể mất đi tính liên quan[1]. Điều này được chứng minh, ví dụ, bởi tổn thất thông tin ở giai đoạn trích xuất: tìm kiếm chỉ trả về một vài tài liệu hàng đầu, trong khi «prompt stuffing» (đưa trực tiếp dữ liệu vào truy vấn) cho phép cung cấp cho mô hình tất cả thông tin ngữ cảnh hoàn toàn[1]. Nhà nghiên cứu IBM Pin-Yu Chen lưu ý rằng không ai muốn vất vả với việc cấu hình RAG nếu có thể chỉ cần tải tất cả sách và tài liệu cần thiết vào mô hình ngay lập tức[1].

Tuy nhiên, quan điểm trái lại cho rằng ngay cả một cửa sổ rất lớn cũng không loại bỏ nhu cầu về RAG[1]. Các đại diện của IBM và các chuyên gia khác nhấn mạnh rằng tính cập nhật của dữ liệu và khả năng kiểm soát chúng vẫn là vấn đề nghiêm trọng[5]. Một mô hình với ngữ cảnh khổng lồ vẫn không biết những gì không có trong dữ liệu huấn luyện của nó — ví dụ, tin tức của ngày hôm nay[5]. Để đưa nhanh thông tin mới theo yêu cầu, cơ chế retriever là cần thiết[5]. Ngoài ra, trong các ứng dụng doanh nghiệp, RAG cho phép chọn lọc các sự kiện từ các kho lưu trữ được bảo vệ, tuân thủ quyền truy cập và không tiết lộ các dữ liệu bảo mật không cần thiết[5]. Cuối cùng, các cân nhắc kinh tế cũng quan trọng: xử lý hàng triệu token «không hiệu quả» là một việc tốn kém, và thường hợp lý hơn khi trước tiên tìm một vài đoạn thực sự liên quan (rút ngắn ngữ cảnh) hơn là mỗi lần buộc mô hình đọc đầu vào hàng nghìn trang[1]. Vì những lý do này, RAG hiện vẫn là một thành phần quan trọng của các ứng dụng AI[5], và các cửa sổ ngữ cảnh lớn được khuyến nghị sử dụng thận trọng[5]. Có thể, các phương pháp tiếp cận kết hợp — kết hợp ngữ cảnh mở rộng (để lưu trữ các dữ liệu thường dùng dưới dạng cache, Cache-Augmented Generation) và trích xuất chọn lọc kiến thức mới từ các nguồn bên ngoài — sẽ trở thành kiến trúc tối ưu[8][8].

Ứng dụng và triển vọng

Việc tăng ngữ cảnh sẵn có mở rộng đáng kể phạm vi các nhiệm vụ mà các mô hình ngôn ngữ có thể giải quyết. Tóm tắt và phân tích tài liệu dài là một trong những ứng dụng trực tiếp[3]. Mô hình với cửa sổ 100k token có thể đọc trong một truy vấn một báo cáo dài, một cuốn sách hoặc tài liệu kỹ thuật và đưa ra tóm tắt hoặc câu trả lời cho các câu hỏi về chúng[3]. Điều này được áp dụng trong lĩnh vực pháp lý (phân tích và tóm tắt hợp đồng), khoa học (tổng quan tài liệu tự động), phân tích kinh doanh. Ví dụ, Claude đã xử lý thành công toàn bộ tiểu thuyết «Đại gia Gatsby» (~72000 token) và có thể trong vài giây xác định các chỉnh sửa cụ thể trong văn bản[3].

Hỗ trợ các cuộc hội thoại kéo dài[2]. Đối với các chatbot, ngữ cảnh lớn có nghĩa là khả năng nhớ hàng chục và hàng trăm lượt trao đổi[2]. Cửa sổ mở rộng cũng cho phép tích hợp vào cuộc trò chuyện các dữ liệu tham khảo rộng rãi[2].

Lập trình và làm việc với mã[8]. Trong các nhiệm vụ liên quan đến phân tích mã nguồn, ngữ cảnh dài đặc biệt có giá trị[8]. Mã thường được phân bổ trên nhiều tệp; để đưa ra câu trả lời chính xác, mô hình phải «nhìn thấy» một phần cơ sở mã càng lớn càng tốt[8]. Nghiên cứu của IBM cho thấy việc mở rộng ngữ cảnh cải thiện đáng kể chất lượng của các mô hình trong các nhiệm vụ tạo mã[1]. Mô hình Granite với cửa sổ 128k token có thể tiếp nhận trong truy vấn một khối lượng lớn tài liệu về các thư viện[1].

Ứng dụng đa phương thức[3]. Các mô hình mới nhất (như LLaMA 4, Gemini đã đề cập) là đa phương thức và có thể nhận đầu vào không chỉ là văn bản mà còn các loại dữ liệu khác (âm thanh, hình ảnh, video)[3]. Ngữ cảnh lớn ở đây giúp ích, ví dụ, để phân tích các bản ghi âm dài (bản ghi chép cuộc trò chuyện) hoặc video (chuỗi khung hình kèm mô tả) trong một lần[2]. Được báo cáo rằng mô hình Gemini 1.5 với cửa sổ 1 triệu token có thể lưu giữ trong ngữ cảnh lên đến 1 giờ âm thanh hoặc 3 giờ video mà không mất đi các chi tiết quan trọng[2]. Điều này mở ra triển vọng cho việc tự động phiên âm và tóm tắt các cuộc họp, phim nhiều giờ và các nội dung khác[2].

Mặc dù có những thành tựu ấn tượng, các chuyên gia nhấn mạnh rằng ngữ cảnh lớn — không phải là phương thuốc chữa bách bệnh[8], mà là một công cụ đòi hỏi sử dụng có năng lực[8]. Nó làm tăng đáng kể yêu cầu đối với cơ sở hạ tầng (bộ nhớ, hiệu suất) và làm tốn kém hơn việc triển khai các mô hình[5]. Do đó, khi phát triển các hệ thống dựa trên LLM, khuyến nghị đánh giá cẩn thận dung lượng ngữ cảnh thực sự cần thiết cho nhiệm vụ và kết hợp các phương pháp tiếp cận[5]. Tuy nhiên, xu hướng rõ ràng: các mô hình tương lai sẽ hướng đến việc kết hợp ngữ cảnh ngày càng dài hơn với việc sử dụng nó một cách hiệu quả[2]. Việc giải quyết các vấn đề hiện tại (mở rộng attention, huấn luyện trên các chuỗi dài, loại bỏ «quên» phần giữa) sẽ cho phép LLM thế hệ mới xử lý khối lượng thông tin còn lớn hơn, trong khi vẫn duy trì độ chính xác và nhất quán[7]. Điều này sẽ mở rộng đáng kể phạm vi ứng dụng của AI — từ trợ lý toàn diện đến các hệ thống phân tích phức tạp[7].

Tham khảo

  • Why larger LLM context windows are all the rage - IBM Research
  • Context Length in LLMs: What Is It and Why It Is Important - DataNorth
  • Understanding the Impact of Increasing LLM Context Windows - Meibel
  • Introducing 100K Context Windows - Anthropic
  • Lost in the Middle: How Language Models Use Long Contexts (arXiv)
  • Why Does the Effective Context Length of LLMs Fall Short? (arXiv)
  • RAG in the Era of LLMs with 10 Million Token Context Windows - F5 Labs

Ghi chú

[1] [2] [8] [3] [4] [5] [6] [7] </references>



  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 1.27 «Why larger LLM context windows are all the rage». IBM Research Blog. [1]
  2. 2.00 2.01 2.02 2.03 2.04 2.05 2.06 2.07 2.08 2.09 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.26 2.27 2.28 2.29 2.30 2.31 2.32 2.33 2.34 2.35 «Context Length in LLMs: What Is It and Why It Is Important». DataNorth Blog. [2]
  3. 3.00 3.01 3.02 3.03 3.04 3.05 3.06 3.07 3.08 3.09 3.10 «Introducing 100K Context Windows». Anthropic Blog. [3]
  4. 4.0 4.1 4.2 «Meta's Llama 4 is now available on Workers AI». Cloudflare Blog. [4]
  5. 5.00 5.01 5.02 5.03 5.04 5.05 5.06 5.07 5.08 5.09 5.10 5.11 5.12 5.13 «RAG in the Era of LLMs with 10 Million Token Context Windows». F5 Labs Blog. [5]
  6. 6.0 6.1 6.2 Liu, Shi et al. (2023). «Lost in the Middle: How Language Models Use Long Contexts». arXiv. [6]
  7. 7.00 7.01 7.02 7.03 7.04 7.05 7.06 7.07 7.08 7.09 7.10 7.11 7.12 Yang, Qingyu et al. (2024). «Why Does the Effective Context Length of LLMs Fall Short?». arXiv. [7]
  8. 8.0 8.1 8.2 8.3 8.4 8.5 8.6 8.7 «Understanding the Impact of Increasing LLM Context Windows». Meibel Blog. [8]