Ngữ cảnh dài

Gemini 2.0 Flash và Gemini 1.5 Flash có cửa sổ ngữ cảnh 1 triệu mã thông báo, còn Gemini 1.5 Pro có cửa sổ ngữ cảnh 2 triệu mã thông báo. Trước đây, các mô hình ngôn ngữ lớn (LLM) bị giới hạn đáng kể bởi lượng văn bản (hoặc mã thông báo) có thể được truyền đến mô hình cùng một lúc. Cửa sổ ngữ cảnh dài Gemini 1.5, với khả năng truy xuất gần như hoàn hảo (>99%), mở ra nhiều trường hợp sử dụng mới và mô hình nhà phát triển.

Mã bạn đã sử dụng cho các trường hợp như tạo văn bản hoặc dữ liệu đầu vào đa phương thức sẽ hoạt động ngay lập tức với ngữ cảnh dài.

Trong suốt hướng dẫn này, bạn sẽ tìm hiểu nhanh về các khái niệm cơ bản của cửa sổ ngữ cảnh, cách nhà phát triển nên suy nghĩ về ngữ cảnh dài, nhiều trường hợp sử dụng thực tế cho ngữ cảnh dài và cách tối ưu hoá việc sử dụng ngữ cảnh dài.

Cửa sổ ngữ cảnh là gì?

Cách cơ bản để sử dụng các mô hình Gemini là truyền thông tin (ngữ cảnh) vào mô hình. Sau đó, mô hình này sẽ tạo ra một phản hồi. Bạn có thể so sánh cửa sổ ngữ cảnh với bộ nhớ ngắn hạn. Bộ nhớ ngắn hạn của con người chỉ có thể lưu trữ một lượng thông tin hạn chế, và điều này cũng đúng với các mô hình tạo sinh.

Bạn có thể đọc thêm về cách hoạt động của các mô hình trong hướng dẫn về mô hình tạo sinh.

Bắt đầu với ngữ cảnh dài

Hầu hết các mô hình tạo sinh được tạo trong vài năm qua chỉ có thể xử lý 8.000 mã thông báo cùng một lúc. Các mẫu mới hơn đã đẩy mạnh hơn nữa bằng cách chấp nhận 32.000 mã thông báo hoặc 128.000 mã thông báo. Gemini 1.5 là mô hình đầu tiên có thể chấp nhận 1 triệu mã thông báo và hiện là 2 triệu mã thông báo với Gemini 1.5 Pro.

Trong thực tế, 1 triệu mã thông báo sẽ có dạng như sau:

  • 50.000 dòng mã (với 80 ký tự tiêu chuẩn trên mỗi dòng)
  • Tất cả tin nhắn văn bản bạn đã gửi trong 5 năm qua
  • 8 cuốn tiểu thuyết tiếng Anh có độ dài trung bình
  • Bản chép lời của hơn 200 tập podcast có thời lượng trung bình

Mặc dù các mô hình có thể tiếp nhận ngày càng nhiều ngữ cảnh, nhưng hầu hết các quan điểm thông thường về việc sử dụng mô hình ngôn ngữ lớn đều giả định rằng mô hình này có giới hạn cố hữu. Tuy nhiên, kể từ năm 2024, điều này không còn đúng nữa.

Sau đây là một số chiến lược phổ biến để xử lý hạn chế của cửa sổ ngữ cảnh nhỏ:

  • Tự ý thả các tin nhắn / văn bản cũ khỏi cửa sổ ngữ cảnh khi văn bản mới xuất hiện
  • Tóm tắt nội dung trước đó và thay thế nội dung đó bằng bản tóm tắt khi cửa sổ ngữ cảnh sắp đầy
  • Sử dụng RAG với tính năng tìm kiếm ngữ nghĩa để di chuyển dữ liệu ra khỏi cửa sổ ngữ cảnh và vào cơ sở dữ liệu vectơ
  • Sử dụng bộ lọc có tính chất xác định hoặc tạo sinh để xoá một số văn bản/ký tự nhất định khỏi lời nhắc nhằm lưu mã thông báo

Mặc dù nhiều trong số này vẫn có liên quan trong một số trường hợp nhất định, nhưng vị trí mặc định để bắt đầu hiện chỉ là đưa tất cả mã thông báo vào cửa sổ ngữ cảnh. Vì các mô hình Gemini được xây dựng theo mục đích với một cửa sổ ngữ cảnh dài, nên chúng có khả năng học trong ngữ cảnh tốt hơn nhiều. Ví dụ: chỉ với tài liệu hướng dẫn (một cuốn ngữ pháp tham khảo gồm 500 trang, một từ điển và khoảng 400 câu song song bổ sung) được cung cấp theo ngữ cảnh, Gemini 1.5 Pro và Gemini 1.5 Flash có thể tìm hiểu cách dịch từ tiếng Anh sang Kalamang – một ngôn ngữ Papuan có ít hơn 200 người nói và do đó hầu như không có sự hiện diện trên mạng – với chất lượng tương tự như một người đã học từ cùng tài liệu.

Ví dụ này nhấn mạnh cách bạn có thể bắt đầu suy nghĩ về những gì có thể làm được với bối cảnh dài và khả năng học trong bối cảnh của các mô hình Gemini.

Các trường hợp sử dụng ngữ cảnh dài

Mặc dù trường hợp sử dụng tiêu chuẩn cho hầu hết các mô hình tạo sinh vẫn là nhập văn bản, nhưng gia đình mô hình Gemini 1.5 cho phép một mô hình mới về các trường hợp sử dụng đa phương thức. Các mô hình này có thể hiểu được văn bản, video, âm thanh và hình ảnh ngay từ đầu. Các API này đi kèm với API Gemini nhận các loại tệp đa phương thức để thuận tiện.

Văn bản dạng dài

Văn bản đã được chứng minh là lớp thông minh hỗ trợ phần lớn đà phát triển của LLM. Như đã đề cập trước đó, phần lớn hạn chế thực tế của LLM là do không có cửa sổ ngữ cảnh đủ lớn để thực hiện một số tác vụ nhất định. Điều này dẫn đến việc nhanh chóng áp dụng tính năng tạo tăng cường truy xuất (RAG) và các kỹ thuật khác giúp cung cấp linh động cho mô hình thông tin theo ngữ cảnh liên quan. Giờ đây, với các cửa sổ ngữ cảnh ngày càng lớn (hiện có thể lên đến 2 triệu trên Gemini 1.5 Pro), chúng tôi đã có các kỹ thuật mới để mở ra các trường hợp sử dụng mới.

Sau đây là một số trường hợp sử dụng tiêu chuẩn và mới nổi cho ngữ cảnh dài dựa trên văn bản:

  • Tóm tắt các tập hợp văn bản lớn
    • Các tuỳ chọn tóm tắt trước đây với mô hình ngữ cảnh nhỏ hơn sẽ yêu cầu một cửa sổ trượt hoặc một kỹ thuật khác để giữ trạng thái của các phần trước khi mã thông báo mới được truyền đến mô hình
  • Hỏi và trả lời
    • Trước đây, điều này chỉ có thể thực hiện được với RAG do lượng ngữ cảnh bị hạn chế và khả năng gợi nhắc thực tế của các mô hình thấp
  • Quy trình làm việc của đại lý
    • Văn bản là nền tảng của cách các tác nhân lưu giữ trạng thái của những việc đã làm và những việc cần làm; việc không có đủ thông tin về thế giới và mục tiêu của tác nhân là một giới hạn về độ tin cậy của tác nhân

Học nhiều lần theo bối cảnh là một trong những tính năng độc đáo nhất mà các mô hình ngữ cảnh dài mang lại. Nghiên cứu đã chỉ ra rằng việc lấy mô hình ví dụ "một lần chụp" hoặc "nhiều lần chụp" phổ biến, trong đó mô hình được trình bày bằng một hoặc một vài ví dụ về một nhiệm vụ và mở rộng quy mô lên hàng trăm, hàng nghìn hoặc thậm chí hàng trăm nghìn ví dụ, có thể dẫn đến các khả năng mô hình mới. Phương pháp nhiều lần chụp này cũng cho thấy hiệu suất tương tự như các mô hình được tinh chỉnh cho một nhiệm vụ cụ thể. Đối với các trường hợp sử dụng mà hiệu suất của mô hình Gemini chưa đủ để triển khai công khai, bạn có thể thử phương pháp nhiều ảnh. Như bạn có thể khám phá sau trong phần tối ưu hoá ngữ cảnh dài, việc lưu ngữ cảnh vào bộ nhớ đệm giúp loại tải trọng mã thông báo đầu vào cao này trở nên khả thi hơn về mặt kinh tế và thậm chí giảm độ trễ trong một số trường hợp.

Video dài

Lợi ích của nội dung video từ lâu đã bị hạn chế do chính phương tiện này thiếu khả năng hỗ trợ tiếp cận. Rất khó để lướt qua nội dung, bản chép lời thường không thể nắm bắt được sắc thái của video và hầu hết các công cụ không xử lý hình ảnh, văn bản và âm thanh cùng một lúc. Với Gemini 1.5, các tính năng văn bản ngữ cảnh dài chuyển thành khả năng suy luận và trả lời các câu hỏi về dữ liệu đầu vào đa phương thức với hiệu suất ổn định. Gemini 1.5 Flash, khi được thử nghiệm trên kim trong vấn đề về một đống video có 1 triệu mã thông báo, đã đạt được tỷ lệ gợi nhắc >99, 8% của video trong cửa sổ ngữ cảnh và 1.5 Pro đã đạt được hiệu suất hiện đại trên điểm chuẩn Video-MME.

Sau đây là một số trường hợp sử dụng tiêu chuẩn và mới nổi cho ngữ cảnh video dài:

  • Hỏi đáp qua video
  • Bộ nhớ video, như minh hoạ trong Project Astra của Google
  • Tạo phụ đề cho video
  • Hệ thống đề xuất video, bằng cách làm phong phú siêu dữ liệu hiện có bằng khả năng hiểu biết đa phương thức mới
  • Tuỳ chỉnh video bằng cách xem một tập hợp dữ liệu và siêu dữ liệu video liên quan, sau đó xoá những phần video không liên quan đến người xem
  • Kiểm duyệt nội dung video
  • Xử lý video theo thời gian thực

Khi xử lý video, bạn cần cân nhắc cách video được xử lý thành mã thông báo. Điều này ảnh hưởng đến giới hạn thanh toán và giới hạn sử dụng. Bạn có thể tìm hiểu thêm về cách đưa ra lời nhắc bằng tệp video trong Hướng dẫn về lời nhắc.

Âm thanh dài

Mô hình Gemini 1.5 là các mô hình ngôn ngữ lớn đa phương thức gốc đầu tiên có thể hiểu âm thanh. Trước đây, quy trình làm việc thông thường của nhà phát triển sẽ liên quan đến việc nối nhiều mô hình dành riêng cho miền, chẳng hạn như mô hình lời nói sang văn bản và mô hình văn bản sang văn bản, để xử lý âm thanh. Điều này dẫn đến độ trễ bổ sung cần thiết khi thực hiện nhiều yêu cầu đi và về, đồng thời giảm hiệu suất thường được quy cho cấu trúc không kết nối của chế độ thiết lập nhiều mô hình.

Trong các quy trình đánh giá âm thanh-cụm từ khoá chuẩn, Gemini 1.5 Pro có thể tìm thấy âm thanh ẩn trong 100% số lần kiểm thử và Gemini 1.5 Flash có thể tìm thấy âm thanh ẩn trong 98,7% số lần kiểm thử. Gemini 1.5 Flash chấp nhận tối đa 9,5 giờ âm thanh trong một yêu cầu và Gemini 1.5 Pro có thể chấp nhận tối đa 19 giờ âm thanh bằng cách sử dụng cửa sổ ngữ cảnh 2 triệu mã thông báo. Hơn nữa, trên một tập hợp các đoạn âm thanh dài 15 phút, Gemini 1.5 Pro lưu trữ tỷ lệ lỗi từ (WER) khoảng 5,5%, thấp hơn nhiều so với các mô hình chuyên biệt chuyển lời nói sang văn bản, mà không làm tăng độ phức tạp của việc phân đoạn đầu vào bổ sung và xử lý trước.

Sau đây là một số trường hợp sử dụng tiêu chuẩn và mới nổi cho ngữ cảnh âm thanh:

  • Dịch và chép lời theo thời gian thực
  • Hỏi đáp trong podcast / video
  • Bản chép lời và bản tóm tắt cuộc họp
  • Trợ lý thoại

Bạn có thể tìm hiểu thêm về cách đưa ra lời nhắc bằng tệp âm thanh trong Hướng dẫn đưa ra lời nhắc.

Tối ưu hoá ngữ cảnh dài

Phương pháp tối ưu hoá chính khi xử lý ngữ cảnh dài và mô hình Gemini 1.5 là sử dụng tính năng lưu ngữ cảnh vào bộ nhớ đệm. Ngoài việc trước đây không thể xử lý nhiều mã thông báo trong một yêu cầu, thì chi phí cũng là một hạn chế chính khác. Nếu có ứng dụng "trò chuyện với dữ liệu của bạn", trong đó người dùng tải lên 10 tệp PDF, một video và một số tài liệu công việc, thì trước đây, bạn sẽ phải làm việc với một công cụ/khung tạo dữ liệu truy xuất tăng cường (RAG) phức tạp hơn để xử lý các yêu cầu này và trả một khoản tiền đáng kể cho các mã thông báo được chuyển vào cửa sổ ngữ cảnh. Giờ đây, bạn có thể lưu các tệp mà người dùng tải lên vào bộ nhớ đệm và trả phí để lưu trữ các tệp đó theo giờ. Ví dụ: chi phí đầu vào / đầu ra cho mỗi yêu cầu bằng Gemini Flash 1.5 thấp hơn khoảng 4 lần so với chi phí đầu vào / đầu ra tiêu chuẩn. Vì vậy, nếu người dùng trò chuyện đủ dữ liệu, thì bạn (với tư cách là nhà phát triển) sẽ tiết kiệm được rất nhiều chi phí.

Giới hạn về ngữ cảnh dài

Trong nhiều phần của hướng dẫn này, chúng tôi đã thảo luận về cách các mô hình Gemini 1.5 đạt được hiệu suất cao trên nhiều hoạt động đánh giá truy xuất kim trong đống rơm. Các bài kiểm thử này xem xét chế độ thiết lập cơ bản nhất, trong đó bạn có một kim duy nhất mà bạn đang tìm kiếm. Trong trường hợp bạn có nhiều "kim" hoặc thông tin cụ thể mà bạn đang tìm kiếm, mô hình sẽ không hoạt động với cùng độ chính xác. Hiệu suất có thể thay đổi đáng kể tuỳ thuộc vào ngữ cảnh. Bạn cần cân nhắc điều này vì có một sự đánh đổi cố hữu giữa việc truy xuất thông tin chính xác và chi phí. Bạn có thể nhận được khoảng 99% trên một truy vấn, nhưng bạn phải trả phí mã thông báo đầu vào mỗi khi gửi truy vấn đó. Vì vậy, để truy xuất 100 phần thông tin, nếu cần hiệu suất 99%, bạn có thể cần gửi 100 yêu cầu. Đây là một ví dụ điển hình về việc lưu vào bộ nhớ đệm ngữ cảnh có thể làm giảm đáng kể chi phí liên quan đến việc sử dụng các mô hình Gemini trong khi vẫn duy trì hiệu suất cao.

Câu hỏi thường gặp

Hiệu suất của mô hình có bị giảm khi tôi thêm mã thông báo vào truy vấn không?

Nhìn chung, nếu bạn không cần truyền mã thông báo đến mô hình, tốt nhất là bạn nên tránh truyền các mã thông báo đó. Tuy nhiên, nếu bạn có một lượng lớn mã thông báo chứa một số thông tin và muốn đặt câu hỏi về thông tin đó, thì mô hình này có khả năng trích xuất thông tin đó (độ chính xác lên đến 99% trong nhiều trường hợp).

Gemini 1.5 Pro hoạt động như thế nào trong thử nghiệm tìm kim trong đống rơm tiêu chuẩn?

Gemini 1.5 Pro đạt được tỷ lệ thu hồi 100% đối với tối đa 530.000 mã thông báo và tỷ lệ thu hồi >99,7% đối với tối đa 1 triệu mã thông báo.

Làm cách nào để giảm chi phí bằng các cụm từ tìm kiếm theo ngữ cảnh dài?

Nếu bạn có một tập hợp mã thông báo / ngữ cảnh tương tự mà bạn muốn sử dụng lại nhiều lần, thì tính năng lưu ngữ cảnh vào bộ nhớ đệm có thể giúp giảm chi phí liên quan đến việc đặt câu hỏi về thông tin đó.

Làm cách nào để tôi có thể sử dụng cửa sổ ngữ cảnh 2 triệu token?

Tất cả nhà phát triển hiện có quyền sử dụng cửa sổ ngữ cảnh 2 triệu token với Gemini 1.5 Pro.

Độ dài ngữ cảnh có ảnh hưởng đến độ trễ của mô hình không?

Có một số độ trễ cố định trong bất kỳ yêu cầu cụ thể nào, bất kể kích thước, nhưng thường thì các truy vấn dài hơn sẽ có độ trễ cao hơn (thời gian đến mã thông báo đầu tiên).

Khả năng xử lý ngữ cảnh dài có khác biệt giữa Gemini 1.5 Flash và Gemini 1.5 Pro không?

Có, một số con số đã được đề cập trong các phần khác nhau của hướng dẫn này, nhưng nói chung, Gemini 1.5 Pro hoạt động hiệu quả hơn trong hầu hết các trường hợp sử dụng ngữ cảnh dài.