RNN có phải là tất cả?
(arxiv.org)- Transformer đã tái định hình deep learning kể từ năm 2017, nhưng với chuỗi dài, chi phí của self-attention tăng cao, khiến các mô hình tuần hoàn có thể huấn luyện song song lại được chú ý
- LSTM và GRU, vốn được dùng rộng rãi trong mô hình hóa chuỗi suốt 20 năm trước Transformer, mở ra khả năng huấn luyện song song nếu giảm sự phụ thuộc của gate vào trạng thái trước đó
- minLSTM và minGRU được đơn giản hóa có ít tham số hơn LSTM·GRU truyền thống, được song song hóa hoàn toàn trong quá trình huấn luyện, và cho thấy hiệu năng cạnh tranh với các mô hình hiện đại, bao gồm Transformer, trên nhiều tác vụ
- Việc tối ưu hiệu quả Transformer đã dẫn đến các hướng như độ thưa, xấp xỉ hạng thấp và tiling; gần đây, các mô hình tuần hoàn thay thế như mô hình không gian trạng thái, attention tuyến tính hóa và RNN tuyến tính cũng cho thấy hiệu năng mạnh
- Nhờ phần triển khai plain PyTorch chỉ vài dòng trong phụ lục, minGRU và minLSTM có thể được xem là mô hình nhẹ dễ thử nghiệm cho người mới, người làm thực tế và nhà nghiên cứu
Các mô hình tuần hoàn được chú ý trở lại sau Transformer
- RNN đã được dùng rộng rãi từ thập niên 1990 trong các tác vụ mô hình hóa chuỗi như dịch máy và sinh văn bản
- Các mô hình tiêu biểu là LSTM (1997) và GRU (2014)
- Do có cấu trúc tuần tự về bản chất, khả năng song song hóa bị hạn chế, và khi huấn luyện trên chuỗi dài thì hiệu quả tính toán dễ giảm
- Transformer nhanh chóng thành công trong mô hình hóa chuỗi sau khi giới thiệu cơ chế huấn luyện song song thông qua self-attention vào năm 2017
- Sau đó được mở rộng không chỉ sang các mô hình ngôn ngữ lớn mà còn sang thị giác máy tính, học tăng cường và tin sinh học
- Self-attention mô hình hóa tương tác giữa các token, nhưng độ phức tạp tính toán tăng theo bình phương độ dài chuỗi
- Với chuỗi dài hoặc môi trường hạn chế tài nguyên, chi phí có thể tăng đáng kể
- Các nghiên cứu nhằm nâng cao hiệu quả của Transformer đã đi theo nhiều hướng
- Độ thưa
- Xấp xỉ hạng thấp
- Tiling
- Gần đây, các mô hình tuần hoàn có thể song song hóa và mở rộng hiệu quả hơn đang nổi lên trở lại
- Mô hình không gian trạng thái
- Attention tuyến tính hóa
- RNN tuyến tính
- Những mô hình tuần hoàn hiện đại này tận dụng chuyển tiếp phụ thuộc đầu vào và cho thấy hiệu năng mạnh tương tự Transformer
- Chúng được áp dụng không chỉ cho các mô hình ngôn ngữ lớn mà còn cho dữ liệu dựa trên hình ảnh và đồ thị
Ý tưởng cốt lõi của minLSTM và minGRU
- Nghiên cứu này xem xét lại LSTM và GRU, vốn được dùng trong thời gian dài trước Transformer, từ góc nhìn lịch sử
- Hai mô hình này có thể được xem là các ví dụ ban đầu của mô hình tuần hoàn phụ thuộc đầu vào
- Nếu loại bỏ phần gate phụ thuộc vào trạng thái trước đó, LSTM và GRU cũng có thể huấn luyện song song
- Thông qua việc đơn giản hóa thêm, các phiên bản tối giản gọi là minLSTM và minGRU được rút ra
- Có số lượng tham số ít hơn LSTM·GRU truyền thống
- Có thể song song hóa hoàn toàn trong quá trình huấn luyện
- Dù có cấu trúc đơn giản, chúng vẫn cho thấy hiệu năng cạnh tranh trên nhiều tác vụ
- Đối tượng so sánh bao gồm cả Transformer và các mô hình gần đây
- Kết quả này đặt câu hỏi về xu hướng tiếp tục làm tăng độ phức tạp của cấu trúc mô hình và thuật toán
- Phụ lục bao gồm phần triển khai plain PyTorch của minGRU và minLSTM chỉ bằng vài dòng mã
- Mô hình nhẹ và dễ thích nghi
- Có hình thức dễ sử dụng cho người mới, người làm thực tế và nhà nghiên cứu
1 bình luận
Các ý kiến trên Hacker News
Nếu xem cấu trúc hồi quy là bộ lọc IIR, còn cấu trúc chỉ feedforward là bộ lọc FIR, thì có vẻ có nhiều điểm tương đồng với xử lý tín hiệu số
Bộ lọc IIR thường cần ít thành phần hơn nhiều so với bộ lọc FIR cho cùng đáp ứng, còn bộ lọc FIR thì dễ triển khai, điều khiển và đo lường hơn
Có cảm giác phần cứng số học dấu phẩy cố định giống với các cấu trúc học máy chạy tốt trên GPU, và để AI thật sự bước vào một giai đoạn hàm mũ đáng sợ, có vẻ về cơ bản cần một cấu trúc hồi quy
Trong phép ví von này, LSTM giống một bản hack trung gian kiểu FIR có hệ số động hơn; về dài hạn, cách tiếp cận neuromorphic có vẻ tốt nhất về hiệu quả
Nếu không, bộ lọc IIR sẽ suy giảm theo hàm mũ về 0 hoặc tăng theo hàm mũ đến vô hạn
Các cell RNN như LSTM gần với bộ lọc suy giảm có thêm các cổng phi tuyến để ngăn suy giảm và “ghi nhớ” thứ gì đó
Bộ lọc FIR đơn giản hơn nhiều về thiết kế và vẫn có thể chứa ký ức mà không cần những bản hack như vậy
Với tư cách người ngoài ngành, ấn tượng đầu tiên của tôi là nó không chỉ mô phỏng neuron, mà giống ý tưởng kiểu 《The Society of Mind》, nơi nhiều “agent” hoặc hệ con tương tác với nhau theo nhiều cách khác nhau
Tính hồi quy có thể neuromorphic hơn và quan trọng về dài hạn, nhưng có lẽ không thiết yếu đối với siêu trí tuệ
Dù vậy, tôi là người ngoài ngành với hiểu biết liên quan còn nông nên cũng có thể sai hoàn toàn
Toàn bộ lĩnh vực này có vẻ còn thiếu đối với bài toán chân trời dài
Cách giải phổ biến hiện nay là mở rộng quy mô, nhưng vẫn hoàn toàn chưa đạt tới quy mô chân trời mà bộ não của một loài thú nhỏ xử lý
Mô hình có thể có hàng nghìn tỷ tham số, nhưng trong các nhiệm vụ dài hạn và về hiệu quả, tôi nghĩ não chuột vẫn sẽ thắng
Nói cách khác, tồn tại một thuật toán tìm kiếm nhỏ, đơn giản và thanh lịch, gần như tìm được đường đi tối ưu trong ngân sách tính toán nhỏ và tiếp tục học
Tôi cũng thấy hơi ghen tị khi nghĩ rằng một ngày nào đó các kỹ sư tương lai sẽ giải được những vấn đề như vậy bằng một notebook Jupyter 100 dòng trên laptop
Nếu tìm được phương pháp hoặc thuật toán phù hợp cho bài toán chân trời dài, có lẽ ngay cả mô hình 2 tỷ tham số cũng có thể vượt các mô hình hiện tại trong mọi lĩnh vực, ngoại trừ các bài toán suy luận ngắn và cực đoan
Về một lời giải khả dĩ, tôi từng nghĩ đến hướng mở rộng chiều của mô hình theo thời gian thay vì tìm bộ trọng số hoàn hảo
Số chiều càng cao thì dung lượng lưu trữ lý thuyết càng lớn; nó có thể giống một mô hình 2 tầng, trong đó một tầng hoạt động như sự chồng chập của nhiều điểm dị thường, còn tầng kia biết cách sử dụng chúng
Nếu xem cảnh quan mất mát có nhiều cực tiểu cho các tác vụ cụ thể, thì bằng cách tái cấu trúc mô hình khi cần để di chuyển giữa các cực tiểu đó, ta có thể tạo ra một mô hình đơn lẻ có gần như vô hạn cực tiểu cục bộ, tức ký ức ở chiều cao hơn
Nếu não người tạo và ngắt hàng nghìn kết nối mỗi ngày, có thể các kết nối này đang điều hướng cảnh quan mất mát nội bộ giữa những cực tiểu khác nhau cần dùng trong ngày
Nhưng không cần não chuột để phân loại email rác
Các mô hình lớn từ hơn 2 tỷ tham số vẫn quá nặng để chạy thực tế, gần như là công cụ cho mục đích đặc thù; vẫn còn nhiều chỗ cho các mô hình nhỏ và thông minh, chỉ giải quyết những vấn đề hữu ích trên phần cứng và tập dữ liệu hạn chế
Các mô hình có kích thước thay đổi theo nhu cầu cũng đã được thử nghiệm, nhưng trong ngân sách điện năng hạn chế, chúng quá kém hiệu quả hoặc khó tối ưu
Dù vậy, nếu muốn tiếp tục mở rộng lên quy mô lớn hơn, cuối cùng có khả năng sẽ cần những mô hình như thế
Nút thắt thật sự có thể là đột phá trong chính quá trình huấn luyện
Hàm mất mát của lan truyền ngược quá đơn giản để tối ưu hoàn hảo ngay cả các mô hình hiện tại, và càng thiếu hụt hơn cho các mô hình lớn hơn trong tương lai
Cũng không có gì đảm bảo rằng tồn tại một lựa chọn thay thế tốt hơn, nên cách tiếp cận học máy hiện nay có thể có một giới hạn cố định nào đó
Việc thảo luận bị phân tán ở nhiều nơi vừa là ưu điểm vừa là nhược điểm
Bài viết của François Chollet mà tôi thấy trên Twitter/X khá thú vị: https://x.com/fchollet/status/1841902521717293273
“Một công trình thú vị về việc hồi sinh RNN. https://arxiv.org/abs/2410.01201 — Nhìn chung, việc các kiến trúc gần đây xuất phát từ những hướng khác nhau lại gần như ngang ngửa Transformer là bằng chứng cho thấy trong paradigm khớp đường cong, tức deep learning, kiến trúc về cơ bản không quan trọng
Khớp đường cong là việc embedding dataset lên một đường cong. Yếu tố cốt lõi là dataset, chứ không phải những trang trí hard-code cụ thể nhằm giới hạn hình dạng đường cong. Nếu đường cong có đủ sức biểu đạt, trong môi trường dữ liệu quy mô lớn, mọi kiến trúc đều hội tụ về cùng hiệu năng”
Dataset đã có rất nhiều từ lâu, và tiến bộ trong 10 năm qua đến từ cách thiết kế đường cong, cách khớp nó với dữ liệu, và cách dùng nhiều tính toán hơn
Có thể về mặt lý thuyết, các mô hình cũ nếu dùng nhiều tính toán hơn cỡ 1 triệu lần cũng giải được các bài toán mới tương tự, nhưng gọi đó là “chỉ là tối ưu hóa” thì chẳng khác nào bỏ qua tầm quan trọng của phân tích độ phức tạp trong thiết kế thuật toán và nói bogosort với quicksort là như nhau
Khi xét đến việc xếp chồng nhiều kỹ thuật regularization để giảm overfitting, và cả những cấu trúc mang tính agent hơn như thiết kế không gian tìm kiếm trong Deep Q Learning hay OpenAI o1, góc nhìn coi tất cả chỉ là tối ưu hóa đơn giản trở nên kém thuyết phục
Chỉ thêm nhiều tính toán hơn thì các kiến trúc cũ đã không thể giải được những bài toán như vậy
Có những nội dung như “có thể song song hóa hoàn toàn trong quá trình huấn luyện, nhanh hơn 175 lần với chuỗi độ dài 512”
Ngay cả khi nhiều kiến trúc theo thời gian hội tụ về cùng mức loss, xét đến chi phí GPU quy mô lớn thì việc tìm ra kiến trúc hội tụ nhanh nhất vẫn khá có giá trị
CNN thống trị computer vision không phải vì nó làm được điều mà mạng neural dày đặc không làm được, mà vì nó loại bỏ nhiều kết nối không quá quan trọng, cho phép dùng ngân sách huấn luyện cho các mạng sâu hơn
Tương tự, Transformer xuất sắc vì nó cho phép huấn luyện các mạng khổng lồ một cách tương đối hiệu quả
Bài báo này cũng cho thấy nếu làm cho việc huấn luyện RNN nhanh hơn nhiều thì trên thực tế nó khá tốt
Nút thắt lớn là tốc độ và hiệu quả huấn luyện, hơn là năng lực biểu đạt thực sự của kiến trúc
Một MLP khổng lồ cũng có thể cho ra kết quả giống Transformer
Vấn đề nằm ở quy mô, và ở chỗ ta không thể huấn luyện một MLP đủ lớn
Transformer hữu ích vì nó là một tối ưu hóa hiệu năng
Ta không muốn tái huấn luyện mỗi tháng một lần, mà muốn tái huấn luyện liên tục; không muốn một agent trò chuyện với 5 LLM, mà muốn hàng nghìn LLM cùng hoạt động
Câu trả lời có vẻ gần với “không”
Những RNN như vậy trong một số trường hợp có thể đủ tốt và trong vài trường hợp thậm chí thắng Transformer, nhưng có lẽ sẽ không thay thế Transformer một cách phổ quát trong LLM
Ví dụ, khi người dùng đưa một văn bản dài và nói “dịch cái này sang tiếng Đức”, Transformer có thể nhìn lại toàn bộ lịch sử
RNN, dù có độ dài ngữ cảnh không giới hạn, thì lượng thông tin nó ghi nhớ tại bất kỳ thời điểm nào cũng bị giới hạn trong trạng thái ẩn
Bài báo liên quan: https://arxiv.org/abs/2402.01032
Transformer rốt cuộc cũng bị ràng buộc trong một trạng thái hữu hạn, chỉ là trạng thái đó được tổ chức theo cách khác
Có vấn đề độ chính xác thông tin về việc trạng thái cũ phải truyền bao nhiêu bit, vấn đề suy giảm khi thông tin càng cũ càng yếu đi, và vấn đề trộn lẫn khi các biểu diễn bị pha trộn hoặc cộng lại với nhau
Điều tôi tò mò là khi cố định số phép toán dấu phẩy động, RNN có thể cạnh tranh với Transformer hay không, nhưng bài báo gốc dường như không xử lý thỏa đáng phần này
Thay vào đó, nếu nói “hãy dịch phần sau sang tiếng Đức”, thì thứ cần ghi nhớ chỉ là tác vụ hiện tại và một lượng nhỏ hơn nhiều của input gần đây
Tất nhiên cũng cần khả năng xuất output song song trong khi xử lý input
Theo tôi hiểu, lý do Transformer tạo điều kiện cho làn sóng bùng nổ sau đó là vì nó giải quyết được hai vấn đề lớn của RNN
mất gradient đã giới hạn ngữ cảnh và kích thước mô hình, còn việc khó song song hóa đã giới hạn kích thước dữ liệu huấn luyện
Tôi tò mò liệu hiện nay đã có lời giải cho hai vấn đề này chưa
RNN liên tục cập nhật và ghi đè bộ nhớ, nên nó phải dự đoán trước và lưu lại thông tin sẽ hữu ích sau này
Trong các trường hợp sử dụng dạng hội thoại như ChatGPT, đây là lợi thế cực lớn của Transformer
Khi cung cấp ngữ cảnh rồi đặt câu hỏi qua nhiều lượt, chỉ đến phần sau của chuỗi token ta mới biết ngữ cảnh nào là quan trọng cho một câu hỏi cụ thể
Nói chính xác hơn thì đây là lợi thế của mô hình dựa trên attention, và cũng có các mô hình lai như Jamba kết hợp thành công cả hai cách tiếp cận
LSTM, được đề xuất lần đầu năm 1997, đã đưa ra giải pháp trước: https://www.semanticscholar.org/paper/Long-Short-Term-Memory...
Thật thú vị khi kiến thức này dường như gần như bị lãng quên
Khoảng năm 2014, LSTM từng cực kỳ phổ biến: https://karpathy.github.io/2015/05/21/rnn-effectiveness/
https://colah.github.io/posts/2015-08-Understanding-LSTMs/
Tuy vậy, có vẻ việc đơn giản hóa đơn vị hồi quy đã cải thiện cả hai
Đây là một công trình khá thông minh và thú vị
Bài báo liên tục gọi đó là “kiến trúc 10 năm tuổi”, nhưng thực tế nó vẫn được dùng cực kỳ nhiều vì dễ thích nghi với nhiều miền khác nhau
Đặt nó làm “đối thủ” của Transformer cũng không hoàn toàn công bằng, vì Transformer và RNN không loại trừ lẫn nhau và có nhiều cách để kết hợp cả hai
Cải tiến RNN có thể dẫn tới cải tiến ở nhiều nơi bất ngờ
Tôi thật sự thích sự đơn giản của kiến trúc minGRU
Về cơ bản, nó tạo trạng thái ẩn đề xuất và hệ số trộn từ token bằng các phép biến đổi tuyến tính riêng, rồi trộn chúng bằng
torch.lerp(proposed_hidden_state, previous_hidden_state, mix_factors)Vì trạng thái ẩn đề xuất và hệ số trộn của mỗi lớp chỉ phụ thuộc vào token hiện tại, nếu biết trước toàn bộ chuỗi như khi huấn luyện, ta có thể tính song song tất cả rồi kết hợp trong thời gian tuyến tính bằng parallel scan
Việc điều này có thể cạnh tranh với Transformer và mô hình không gian trạng thái trong các thử nghiệm quy mô nhỏ làm thỏa mãn cảm giác của những người tin rằng “PR tốt nhất là PR xóa code”
Dù vậy, trước khi mở rộng lên quy mô tham số và dữ liệu tương tự các mô hình tốt nhất hiện nay, ta vẫn chưa biết liệu đây có phải là Breakthrough viết hoa chữ B hay không
Nhìn phụ lục thì có vẻ mọi phép tính đều được thực hiện trong không gian log, được nói là vì độ ổn định số học
Tôi chưa nắm được trực giác liệu có phải vì nếu bỏ tanh ở đầu ra rồi tính trong không gian tuyến tính thì giá trị có thể bùng nổ hay không
Bản thân việc kiểu mô hình hóa chuỗi này hoạt động được cũng rất thú vị
Cảm giác như xé mọi trang của một cuốn sách, đưa theo thứ tự ngẫu nhiên, rồi khi hoàn toàn không biết các trang trước đó, yêu cầu tạo vector cho từng trang và “cách trộn vector này với vector tổng của tất cả trang trước đó”, sau đó tôi trộn lại theo đúng thứ tự và chấm xem vector cuối cùng tóm tắt cả cuốn sách tốt đến đâu
Hiện tại họ chỉ dùng hai lớp tuyến tính dense để biến token thành trạng thái ẩn đề xuất và hệ số trộn nội suy; tôi cũng tò mò nếu biến phép chuyển đổi này thành MLP thay vì một lớp tuyến tính đơn thì sẽ ra sao
Ít nhất tôi nghĩ sẽ phát sinh các vấn đề kiểu bổ đề bơm
Nếu
[the ][cat ][is ][black ]tạo ra đầu ra gần với một vector nào đó, thì đầu vào lặp lại[the ][cat ][is ][black ]ba lần chẳng phải sẽ càng gần vector đó hơn và xa hơn với vector “tại sao lại lặp cùng một câu ba lần?” sao?Nếu không có trộn phi tuyến giữa token đầu vào và trạng thái ẩn, có vẻ nhiều tính tương đồng tuyến tính giữa các chuỗi token giống nhau sẽ vẫn còn
Nếu đây là một sự đơn giản hóa giúp cải thiện huấn luyện và hiệu năng, nó sẽ tạo sân khấu để lại chồng thêm độ phức tạp ở mức cao hơn lên trên
Có lý do khiến việc khớp cực đại khả năng luôn được thực hiện bằng log-likelihood
Tôi từng làm một RNN cho dự án đại học; khi đó tôi quan tâm đến các công nghệ lịch sử đã biến mất, nên nghĩ rằng sau khi rời trường có lẽ sẽ không bao giờ còn nghe nói về mạng nơ-ron nữa và mình phải nắm lấy cơ hội
Thứ tôi làm có chạy, nhưng rất đơn giản và cực kỳ chậm trên chiếc laptop cũ
Trên chiếc laptop đó thì chẳng thứ gì có thể nhanh được, nhưng tôi vẫn nhớ RNN chậm hơn đáng kể so với mạng feedforward
Tôi từng chắc chắn đây là một công nghệ đã chết, chỉ còn là đối tượng tò mò học thuật của thập niên 1980–1990, nên việc thấy nó thay đổi nhanh đến mức nào khiến tôi cảm thấy kỳ lạ
Khoảng năm 2000 tôi viết luận văn thạc sĩ về học hệ động lực, chẳng hạn RNN cho mục đích điều khiển, và lúc đó đây là một chủ đề khá mới
Tôi tự viết backpropagation bằng C++ và để chạy qua đêm; nó thật sự chậm vì gradient nhỏ
Kiến trúc mạng cũng chỉ là một tầng ẩn duy nhất với khoảng 5 hoặc 10 neuron
Mạng nơ-ron khi ấy là một chủ đề nhỏ, nếu tìm được môn học về nó đã là may; vậy mà chỉ chớp mắt rồi nhìn lại vào năm 2015, mọi thứ đã hoàn toàn khác
Các tác giả, trong đó có cả Yoshua Bengio, đáng được ghi nhận ở chỗ họ không trình bày bài báo như thể đã biết câu trả lời, mà kết thúc bằng một câu hỏi
Các mô hình này rất nhỏ ngay cả theo chuẩn học thuật, nên không thể cho rằng kết quả nào đó nhất thiết sẽ mở rộng được tới quy mô LLM hiện nay
Kết luận cốt lõi là các mạng họ RNN cũng có thể được huấn luyện hiệu quả như các phương án hiện đại, nhưng tính cạnh tranh của hiệu năng đầu ra mới chỉ được xác nhận ở quy mô nhỏ
Tôi nghĩ kết luận cũng nên là “việc hiệu năng đầu ra có tính cạnh tranh mới chỉ được xác nhận ở quy mô nhỏ”
Mô hình trong bài báo, do được thiết kế để có thể song song hóa, không phải là RNN “thật sự” vì những lý do như mô tả trong https://arxiv.org/abs/2404.08819, và do đó về mặt lý thuyết kém mạnh hơn RNN truyền thống
Nó gặp khó khăn ở một số lớp bài toán mà RNN vốn làm tốt
Ngược lại, https://arxiv.org/abs/2405.04517 có các thành phần RNN “thật sự” và cho thấy cải thiện lớn trong bài toán theo dõi trạng thái mà Transformer gặp khó
Chúng vẫn phụ thuộc vào trạng thái ẩn trước đó, chỉ là không phụ thuộc vào gating mà thôi
Phương trình RNN cơ bản có thể được song song hóa bằng thuật toán quét tiền tố song song
Tôi chưa đọc kỹ bài báo, nhưng hy vọng có ai đó trả lời giúp
Như đã nói, nếu loại bỏ trạng thái ẩn khỏi RNN thì còn lại gì? Một MLP dự đoán từ một token đơn lẻ à?
Tôi chưa tiêu hóa hết bài báo, nhưng với GRU thì có vẻ nghĩa là masking khi cập nhật trạng thái ẩn, tức
z_tvàr_ttrong công thức của bài báo chỉ phụ thuộc vào đầu vào mới, chứ không phụ thuộc vào tổng của đầu vào và trạng thái ẩn trước đóVẫn có trạng thái ẩn
Điều này phần nào giống với những gì Mamba đã làm