[Paper Notes] Hiểu hơn về lượng thông tin Mô hình ngôn ngữ lưu trữ thông tin qua "How much do language models memorize? "
Vào đề luôn, nay chúng ta sẽ tìm hiểu và note lại paper "How much do language models memorize".
Bối cảnh nghiên cứu
-
Xu hướng huấn luyện mô hình ngôn ngữ: Xu hướng hiện tại là các mô hình đang được huấn luyện với khối lượng dữ liệu khổng lồ (15k tỷ tokens, tương đương khoảng 7TB dữ liệu) trong khi đó số lượng tham số của mô hình thường nằm trong khoảng vài tỷ tham số (Ví dụ là 8 tỷ tham số, tương đương với khoảng 32gb lưu trức) → Có sự chênh lệch khá lớn ở đây → Vậy Các các mô hình này lưu trức và xử lý thông tin từ dư liệu huấn luyện là gì?
-
Vấn đề ghi nhớ: Một câu hỏi trọng tâm trong lĩnh vực nghiên cứu là liệu các mô hình ngôn ngữ có ghi nhớ dữ liệu huấn luyện một cách "có ý nghĩa" hay không. Các công trình trước đây (Carlini et al., 2019; Mireshghallah et al., 2022; Nasr et al., 2023, v.v.) đã tiếp cận vấn đề này qua hai góc độ chính:
- Trích xuất (Extraction): Cố gắng khôi phục toàn bộ dữ liệu huấn luyện từ trọng số mô hình.
- Suy luận thành viên (Membership Inference): Xác định liệu một điểm dữ liệu cụ thể có nằm trong tập huấn luyện hay không.
-
Hạn chế của các phương pháp hiện tại: Các phương pháp dựa trên trích xuất không đủ để chứng minh ghi nhớ vì mô hình có thể tạo ra dữ liệu mà không thực sự “ghi nhớ” (do khả năng khái quát hoá). Ví dụ, một mô hình có thể trả lời đúng một phép tính mà không có trong tập huấn luyện nhờ vào khả năng khái quát hoá → Tương tự các định nghĩa toán học hiện tại (như quyền riêng tu vi phân hoặc ảnh hưởng của mẫu) không đáp ứng được nhu cầu đo lương ghi nhớ ở mức mẫu cụ thể (instance-level)
Từ những vấn đề trên thì các tác giả đề xuất một phương án để định lượng mực độ ghi nhớ của một mô hình ngôn ngữ đối với một điểm dữ liệu cụ thể.
- Tách biệt các loại ghi nhớ không chủ ý (unintended memorization) và tổng quan (generalization)
- Ununtended Memorization: Hiểu đơn giả là những thông tin lưu trức về một tập dữ liệu cụ thể
- Generaliztion: Thông in về quá trình tạo dữ liệu thực (true data-generation process)
- Ước lương dung lượng mô hìnhL Đo lượng lượng thông tin tối đ ầm mô hình có thể lưu trữ (model capacity) bằng cách sử dụng đơn vị bit
- Hiểu hơn về hiện tượng “grokking”: Khám phá điểm mà tại đó mô hình chuyển từ ghi nhớ thông tin chủ ý sang khái quát hoá khi kích thước tập dữ liệu tăng vượt quá dung lượng mô hình
Phương án triển khai
1. Định nghĩa ghi nhớ dựa trên nén
Các tác giả sử dụng khái niệm tỷ lệ nén (compression rate) để định lượng ghi nhớ, lấy cảm hứng từ lý thuyết thông tin Kolmogorov và Shannon. Ý tưởng cốt lõi là một điểm dữ liệu được coi là "được ghi nhớ" nếu mô hình có thể nén nó thành một biểu diễn ngắn hơn đáng kể so với khi không có mô hình.
a. Lý thuyết nền tảng
- Độ phức tạp Kolmogorov: Độ phức tạp Kolmogorov của một chuỗi ( x ), ký hiệu ( H^K(x) ), là độ dài của chương trình ngắn nhất (trên một máy Turing phổ quát) có thể tạo ra ( x ). Nếu có một mô hình ( \hat{\theta} ), độ phức tạp có điều kiện ( H^K(x|\hat{\theta}) ) là độ dài ngắn nhất của chương trình tạo ra ( x ) khi đã có ( \hat{\theta} ).
- Thông tin chung Kolmogorov: Thông tin chung giữa ( x ) và ( \hat{\theta} ) được định nghĩa là:
Đây là lượng thông tin mà mô hình ( \hat{\theta} ) lưu trữ về ( x ), tức là mức độ ghi nhớ.
- Ghi nhớ không chủ ý: Được định nghĩa là:
trong đó ( \theta ) là mô hình tham chiếu (reference model) xấp xỉ phân phối dữ liệu thực, và ( \hat{\theta} ) là mô hình được huấn luyện trên tập dữ liệu cụ thể.
- Khái quát hóa: Là phần còn lại của tổng ghi nhớ:
b. Triển khai thực tiễn
Vì độ phức tạp Kolmogorov không thể tính toán trực tiếp (do tính chất không thể quyết định của nó), các tác giả sử dụng xác suất từ mô hình (likelihood) để ước lượng:
- Ước lượng ( H^K(x|\hat{\theta}) ): Tỷ lệ nén của ( x ) được liên kết với xác suất ( p(x|\hat{\theta}) ) theo lý thuyết thông tin Shannon. Cụ thể, độ dài mã tối ưu của ( x ) xấp xỉ ( -\log p(x|\hat{\theta}) ). Các tác giả tính xác suất này từ mô hình ngôn ngữ để ước lượng độ phức tạp Kolmogorov có điều kiện.
- Ước lượng ( H^K(x|\theta, \hat{\theta}) ): Khi có cả mô hình tham chiếu ( \theta ) và mô hình mục tiêu ( \hat{\theta} ), họ lấy xác suất tối đa giữa ( p(x|\hat{\theta}) ) và ( p(x|\theta) ). Điều này đảm bảo rằng mức nén tốt nhất được sử dụng để đo lường ghi nhớ không chủ ý.
- Mô hình tham chiếu: Thường là một mô hình lớn hơn với cùng kiến trúc, được huấn luyện trên một tập dữ liệu rộng hơn, đại diện cho phân phối dữ liệu thực.
c. Kỹ thuật nén nâng cao
Các tác giả đề xuất một kỹ thuật nén mới gọi là ensemble compression, cải tiến từ mã hóa số học (arithmetic coding):
- Mã hóa số học: Gán độ dài mã dựa trên xác suất dự đoán của mô hình. Độ dài mã trung bình xấp xỉ entropy của nguồn dữ liệu.
- Ensemble compression: Điều chỉnh linh hoạt các tham số lấy mẫu (top-( k ), nhiệt độ ( t )) để tối ưu hóa độ dài mã. Ví dụ, nếu mô hình có thể dự đoán chính xác một chuỗi dài (như trong trường hợp ghi nhớ mạnh), họ đặt ( k=1 ) (greedy decoding) để giảm độ dài mã.
- Tối ưu hóa bằng lập trình động: Sử dụng thuật toán lập trình động để tìm cấu hình mã hóa tối ưu, với độ phức tạp thời gian ( O(n \cdot T) ), trong đó ( n ) là số token và ( T ) là số cấu hình có thể có.
2. Tách biệt ghi nhớ và khái quát hóa
Để tách biệt ghi nhớ không chủ ý và khái quát hóa, các tác giả sử dụng hai chiến lược chính: huấn luyện trên dữ liệu ngẫu nhiên để loại bỏ khái quát hóa và phân tích trên dữ liệu văn bản thực để quan sát sự chuyển đổi giữa ghi nhớ và khái quát hóa.
a. Dữ liệu ngẫu nhiên
- Mục tiêu: Loại bỏ khái quát hóa để đo lường chính xác ghi nhớ không chủ ý và dung lượng mô hình.
- Triển khai:
- Tạo dữ liệu: Sử dụng chuỗi bit ngẫu nhiên đồng nhất (uniformly-sampled bitstrings) với kích thước tập dữ liệu ( N ), độ dài chuỗi ( S ), và kích thước từ vựng ( V ). Entropy của tập dữ liệu được tính chính xác bằng: [ H(x) = N \cdot S \cdot \log_2 V ]
- Huấn luyện mô hình: Các mô hình GPT-2 với số tham số từ 100K đến 20M được huấn luyện trên các tập dữ liệu này, sử dụng tối ưu hóa Adam, batch size 2048, và độ chính xác bfloat16 (một số thí nghiệm dùng fp32 để so sánh).
- Đo lường ghi nhớ: Tính ( H^K(x|\hat{\theta}) ) bằng cách sử dụng xác suất từ mô hình đã huấn luyện, sau đó tính ghi nhớ bằng: [ \text{mem}(x, \hat{\theta}) = H(x) - H^K(x|\hat{\theta}) ]
- Dung lượng mô hình: Dung lượng được xác định bằng cách lấy giá trị ghi nhớ tối đa trên tất cả các kích thước tập dữ liệu, thường đạt được khi mô hình bão hòa (plateau).
- Kết quả: Mô hình GPT lưu trữ khoảng 3.5-3.6 bit mỗi tham số. Khi tập dữ liệu lớn hơn dung lượng mô hình, ghi nhớ không tăng thêm, xác nhận giới hạn dung lượng.
b. Dữ liệu văn bản thực
- Mục tiêu: Quan sát sự chuyển đổi từ ghi nhớ không chủ ý sang khái quát hóa khi tập dữ liệu lớn hơn.
- Triển khai:
- Tập dữ liệu: Sử dụng FineWeb dataset, một tập dữ liệu văn bản được khử trùng lặp (deduplicated) kỹ lưỡng để tránh ghi nhớ do trùng lặp. Mỗi chuỗi có độ dài 64 token.
- Huấn luyện mô hình: Tương tự như với dữ liệu ngẫu nhiên, các mô hình GPT-2 với số tham số từ 100K đến 20M được huấn luyện trên các tập dữ liệu có kích thước khác nhau.
- Đo lường ghi nhớ và khái quát hóa:
- Ghi nhớ không chủ ý được tính bằng cách so sánh xác suất từ mô hình mục tiêu ( \hat{\theta} ) và mô hình tham chiếu ( \theta ) (thường là một mô hình lớn hơn hoặc mô hình cùng kích thước được huấn luyện trên toàn bộ tập dữ liệu).
- Khái quát hóa được suy ra bằng cách trừ ghi nhớ không chủ ý khỏi tổng ghi nhớ.
- Phân tích hiện tượng double descent: Khi kích thước tập dữ liệu vượt quá dung lượng mô hình (tính bằng bit), hiệu suất kiểm tra giảm rồi tăng trở lại (double descent), đánh dấu sự chuyển đổi sang khái quát hóa.
- Kết quả:
- Ghi nhớ không chủ ý tăng khi tập dữ liệu nhỏ, đạt đỉnh gần dung lượng mô hình, sau đó giảm khi mô hình bắt đầu khái quát hóa.
- Các mẫu có từ hiếm (đo bằng TF-IDF) thường được ghi nhớ nhiều hơn, đặc biệt là các chuỗi từ ngôn ngữ không phải tiếng Anh (như Nhật Bản, Trung Quốc, Hebrew).
3. Thí nghiệm cụ thể
Các tác giả đã triển khai hai nhóm thí nghiệm chính để kiểm tra phương pháp của họ:
a. Thí nghiệm với dữ liệu ngẫu nhiên (Section 3.2)
- Chi tiết kỹ thuật:
- Kiến trúc mô hình: Sử dụng kiến trúc GPT-2 với số tầng từ 1 đến 8, kích thước ẩn (hidden dimension) từ 32 đến 512, và số tham số từ 100K đến 20M.
- Huấn luyện: Huấn luyện trong ( 10^6 ) bước với batch size 2048, sử dụng tối ưu hóa Adam trên GPU A100. Nếu batch không vừa bộ nhớ, sử dụng gradient accumulation.
- Dữ liệu: Chuỗi bit ngẫu nhiên với ( V=2048 ), ( S=64 ), và số mẫu ( N ) thay đổi. Mỗi cấu hình được chạy với 5 seed ngẫu nhiên để đảm bảo tính ổn định.
- Đo lường:
- Tính entropy của tập dữ liệu:
- Ước lượng ( H^K(x|\hat{\theta}) ) bằng cách sử dụng xác suất từ mô hình để tính độ dài mã.
- Dung lượng mô hình được xác định bằng ghi nhớ tối đa trên tất cả các kích thước tập dữ liệu.
- Tính entropy của tập dữ liệu:
- Kết quả:
- Dung lượng mô hình đạt khoảng 3.5-3.6 bit/tham số ở độ chính xác bfloat16, và 3.83 bit/tham số ở fp32.
- Ghi nhớ đạt plateau khi tập dữ liệu đủ lớn, xác nhận giới hạn dung lượng.
b. Thí nghiệm với dữ liệu văn bản thực (Section 4)
- Chi tiết kỹ thuật:
- Tập dữ liệu: FineWeb, được khử trùng lặp kỹ lưỡng để đảm bảo không có trùng lặp (đặc biệt quan trọng để đo lường ghi nhớ chính xác).
- Huấn luyện: Tương tự như với dữ liệu ngẫu nhiên, nhưng trên các tập dữ liệu văn bản có kích thước khác nhau.
- Mô hình tham chiếu: Một mô hình lớn hơn hoặc mô hình cùng kích thước được huấn luyện trên toàn bộ tập dữ liệu.
- Đo lường:
- Tính ghi nhớ không chủ ý bằng cách so sánh xác suất từ mô hình mục tiêu và tham chiếu.
- Đo lường hiệu suất suy luận thành viên (membership inference) dựa trên mất mát (loss-based) và tỷ lệ trích xuất (extraction rate) bằng cách giải mã tham lam (greedy decoding) các tiền tố (prefix).
- Kết quả:
- Ghi nhớ không chủ ý tăng với số tham số và giảm khi kích thước tập dữ liệu tăng.
- Hiện tượng double descent xảy ra khi tỷ lệ kích thước dữ liệu/dung lượng mô hình vượt quá 1, cho thấy mô hình chuyển sang khái quát hóa.
- Tỷ lệ trích xuất giảm khi kích thước tập dữ liệu tăng, và với tập dữ liệu đủ lớn, trích xuất thành công chủ yếu là do khái quát hóa, không phải ghi nhớ.
4. Quy luật mở rộng (Scaling Laws) (Section 5.2)
Các tác giả triển khai một quy luật mở rộng dạng sigmoid để dự đoán hiệu suất suy luận thành viên dựa trên dung lượng mô hình và kích thước tập dữ liệu:
- Công thức:
trong đó ( \sigma(x) = \frac{1}{1+e^{-x}} ), và ( c_1, c_2, c_3 ) là các hằng số được khớp bằng phương pháp bình phương tối thiểu phi tuyến.
- Kết quả khớp: ( c_1 = 1.34 ), ( c_2 = -0.034 ), ( c_3 = -33.14 ). Quy luật này dự đoán chính xác F1 score trong khoảng sai số 1-2%.
- Xác nhận trên mô hình lớn: Thử nghiệm trên GPT-2 Small (125M tham số) và GPT-2 XL (1.5B tham số) với các kích thước tập dữ liệu được chọn để đạt F1 score mục tiêu (0.55, 0.75, 0.95).
5. Phân tích bổ sung
- Độ tin cậy của ước lượng dung lượng: Trong Appendix A.4, các tác giả kiểm tra độ chính xác của ước lượng dung lượng bằng cách thay đổi độ dài chuỗi ( S ). Kết quả cho thấy sai số trung bình 1.7-1.8%, xác nhận độ tin cậy.
- Phân phối ghi nhớ: Trong Appendix A.6, phân tích phân phối tỷ lệ nén cho thấy dữ liệu văn bản có phân phối mất mát trải rộng hơn so với dữ liệu ngẫu nhiên, giải thích tại sao suy luận thành viên khó hơn.
- Mẫu được ghi nhớ nhiều nhất: Trong Appendix A.18, các mẫu có từ hiếm (đo bằng TF-IDF) được ghi nhớ nhiều hơn, đặc biệt là các chuỗi từ ngôn ngữ không phải tiếng Anh.
6. Điểm mạnh và hạn chế của triển khai
- Điểm mạnh:
- Tính chính xác: Sử dụng dữ liệu ngẫu nhiên để loại bỏ khái quát hóa, cho phép đo lường dung lượng mô hình chính xác.
- Tính thực tiễn: Phương pháp dựa trên xác suất mô hình dễ triển khai với các mô hình ngôn ngữ hiện đại.
- Tính tổng quát: Quy luật mở rộng dự đoán chính xác hiệu suất suy luận thành viên trên các mô hình lớn hơn.
- Hạn chế:
- Không thể tính toán trực tiếp Kolmogorov: Phải dựa vào ước lượng qua xác suất, có thể gây sai số.
- Phụ thuộc vào mô hình tham chiếu: Kết quả có thể thay đổi tùy thuộc vào cách chọn mô hình tham chiếu.
- Giới hạn trong môi trường thử nghiệm: Kết quả chủ yếu dựa trên kiến trúc GPT-2 và tập dữ liệu FineWeb, có thể không tổng quát hóa hoàn toàn cho các kiến trúc hoặc tập dữ liệu khác (xem Appendix A.11).
Kết luận
Các tác giả đã triển khai một phương pháp chặt chẽ để đo lường ghi nhớ trong mô hình ngôn ngữ, sử dụng độ phức tạp Kolmogorov và xác suất mô hình để định lượng ghi nhớ không chủ ý và khái quát hóa. Thí nghiệm với dữ liệu ngẫu nhiên cho phép đo dung lượng mô hình chính xác (3.5-3.6 bit/tham số), trong khi thí nghiệm với văn bản thực khám phá sự chuyển đổi sang khái quát hóa và hiện tượng double descent. Kỹ thuật nén nâng cao (ensemble compression) và quy luật mở rộng sigmoid tăng cường tính thực tiễn của phương pháp. Phương án này không chỉ cung cấp cái nhìn sâu sắc về cách mô hình học mà còn có tiềm năng ứng dụng trong việc đánh giá và tối ưu hóa các mô hình ngôn ngữ.
Một số lời nhận xét của mình thì mình thấy đây có thể là một hướng để phát triển một metrics mới liên quan đến việc finetuning liệu mô hình sau quá trình này học được bao nhiêu.
References
All rights reserved