Transformer (mô hình học máy)
Một phần của loạt bài về |
Học máy và khai phá dữ liệu |
---|
Diễn đàn/tạp chí |
Transformer là một mô hình học sâu được giới thiệu năm 2017, được dùng chủ yếu ở lĩnh vực xử lý ngôn ngữ tự nhiên (NLP)[1] và thị giác máy tính (CV)[2].
Giống như các mạng thần kinh hồi quy (recurrent neural network - RNN), các Transformer được thiết kế để xử lý dữ liệu tuần tự, chẳng hạn như ngôn ngữ tự nhiên, cho các tác vụ như dịch máy thống kê hay tóm tắt tự động. Tuy nhiên, khác với RNN, các Transformer không yêu cầu dữ liệu tuần tự được xử lý theo thứ tự. Ví dụ, nếu dữ liệu đầu vào là một câu ngôn ngữ tự nhiên, Transformer không cần phải xử lý phần đầu câu trước phần cuối câu. Do tính năng này, Transformer cho phép nhiều phép tính toán song song và vì vậy giảm thời gian huấn luyện.[1]
Transformer được ra mắt vào năm 2017 bởi một nhóm tác giả tại Google Brain và càng ngày nó là mô hình được nhiều sự lựa chọn cho các vấn đề về NLP[3] để thay thế các mô hình RNN như Bộ nhớ dài-ngắn hạn (LSTM). Transformer có khả năng đào tạo song song (training parallelization) cho phép đào tạo trên các tập dữ lớn hơn. Điều này mở ra thời kỳ phát triển của các mô hình đào tạo trước như BERT[4] (Bidirectional Encoder Representations from Transformers) và GPT [5](Generative Pre-trained Transformer). Các mô hình này được đào tạo với các bộ dữ liệu ngôn ngữ lớn như Wikipedia Corpus và Common Crawl, và có thể được tinh chỉnh phù hợp cho các nhiệm vụ cụ thể.
Cơ sở lý thuyết
[sửa | sửa mã nguồn]Trước khi có transformer, hầu hết các hệ thống NLP tiên tiến dựa trên các mạng RNN có cổng, chẳng hạn như LSTMs và đơn vị hồi tiếp có cổng (GRUs), kết hợp với cơ chế chú ý. Transformer cũng sử dụng cơ chế chú ý nhưng, không giống như RNN, không có cấu trúc hồi tiếp. Điều này có nghĩa là, với đủ dữ liệu huấn luyện, cơ chế chú ý đơn thuần có thể đạt được hiệu suất tương đương với RNN kèm cơ chế chú ý.[6]
Xử lý chuỗi
[sửa | sửa mã nguồn]Các RNN có cổng xử lý các token theo chuỗi, duy trì một vector trạng thái chứa đại diện của dữ liệu đã xem trước token hiện tại. Để xử lý token thứ, mô hình kết hợp trạng thái biểu diễn câu đến token với thông tin của token mới để tạo ra một trạng thái mới, đại diện cho câu đến token . Lý thuyết cho rằng thông tin từ một token có thể lan truyền xa xôi trong chuỗi, nếu tại mỗi điểm trạng thái tiếp tục mã hóa thông tin ngữ cảnh về token. Trên thực tế, cơ chế này có nhược điểm: vấn đề suy giảm độ dốc khiến trạng thái của mô hình ở cuối một câu dài không có thông tin chính xác và có thể trích xuất về các token trước đó. Sự phụ thuộc vào kết quả tính toán token trước đó cũng khiến việc tính toán song song trên phần cứng học sâu hiện đại trở nên khó khăn. Điều này có thể khiến việc huấn luyện RNN trở nên kém hiệu quả.
Tự chú ý
[sửa | sửa mã nguồn]Những vấn đề này đã được giải quyết bằng cơ chế chú ý. Cơ chế chú ý cho phép mô hình rút ra thông tin từ trạng thái tại bất kỳ điểm nào trước đó trên chuỗi. Lớp chú ý có thể truy cập tất cả các trạng thái trước đó và đánh trọng số chúng theo một thước đo tầm quan trọng đã học, cung cấp thông tin liên quan về các token xa xôi.
Một ví dụ rõ ràng về giá trị của sự chú ý là trong dịch thuật, nơi ngữ cảnh rất quan trọng để gán ý nghĩa của một từ trong câu. Trong hệ thống dịch từ tiếng Anh sang tiếng Pháp, từ đầu tiên của đầu ra tiếng Pháp rất có thể phụ thuộc nặng nề vào vài từ đầu tiên của đầu vào tiếng Anh. Tuy nhiên, trong một mô hình LSTM cổ điển, để tạo ra từ đầu tiên của đầu ra tiếng Pháp, mô hình chỉ được cung cấp vector trạng thái sau khi xử lý từ cuối cùng tiếng Anh. Trên lý thuyết, vector này có thể mã hóa thông tin về cả câu tiếng Anh, cung cấp cho mô hình tất cả kiến thức cần thiết. Trên thực tế, thông tin này thường không được LSTM bảo tồn tốt. Một cơ chế chú ý có thể được thêm vào để giải quyết vấn đề này: bộ giải mã được cung cấp truy cập vào vector trạng thái của mỗi từ đầu vào tiếng Anh, không chỉ từ cuối cùng, và có thể học trọng số chú ý quyết định mức độ chú ý đến từng vector trạng thái đầu vào tiếng Anh.
Khi được thêm vào RNN, cơ chế chú ý làm tăng hiệu suất. Sự phát triển của kiến trúc Transformer cho thấy rằng cơ chế chú ý rất mạnh mẽ và không cần thiết phải xử lý tuần tự dữ liệu hồi tiếp để đạt được những lợi ích về chất lượng của RNN với cơ chế chú ý. Transformer sử dụng cơ chế chú ý mà không có RNN, xử lý tất cả các token cùng một lúc và tính trọng số chú ý giữa chúng trong các lớp tiếp theo. Vì cơ chế chú ý chỉ sử dụng thông tin về các token khác từ các lớp thấp hơn, nó có thể được tính toán cho tất cả các token song song, dẫn đến tốc độ huấn luyện được cải thiện.
Tham khảo
[sửa | sửa mã nguồn]- ^ a b Polosukhin, Illia; Kaiser, Lukasz; Gomez, Aidan N.; Jones, Llion; Uszkoreit, Jakob; Parmar, Niki; Shazeer, Noam; Vaswani, Ashish (ngày 12 tháng 6 năm 2017). "Attention Is All You Need". arΧiv:1706.03762 [cs.CL].
- ^ Wolfe, Cameron (5 tháng 10 năm 2022). “Using Transformers for Computer Vision”. Medium (bằng tiếng Anh). Truy cập ngày 30 tháng 1 năm 2023.
- ^ Wolf, Thomas; Debut, Lysandre; Sanh, Victor; Chaumond, Julien; Delangue, Clement; Moi, Anthony; Cistac, Pierric; Rault, Tim; Louf, Remi (2020). “Transformers: State-of-the-Art Natural Language Processing”. Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: System Demonstrations. Stroudsburg, PA, USA: Association for Computational Linguistics. doi:10.18653/v1/2020.emnlp-demos.6.
- ^ “Open Sourcing BERT: State-of-the-Art Pre-training for Natural Language Processing”. ai.googleblog.com (bằng tiếng Anh). Truy cập ngày 30 tháng 1 năm 2023.
- ^ “Papers with Code - GPT Explained”. paperswithcode.com (bằng tiếng Anh). Truy cập ngày 30 tháng 1 năm 2023.
- ^ Vaswani, Ashish; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, Llion; Gomez, Aidan N.; Kaiser, Lukasz; Polosukhin, Illia (5 tháng 12 năm 2017). “Attention Is All You Need”. arXiv:1706.03762 [cs].