Tại sao mô hình LLAMA lại sử dụng SwiGLU (Swish-Gated Linear Unit)
Trong bài báo của LLAMA - Open and Efficient Foundation Language Models, một số cải thiện của kiến trúc mô hình so với kiến trúc Transformer thông thường đó chính là hàm activation SwiGLU.
Thay vì sử dụng hàm phi tuyến ReLU như trong bài báo của Transformer thì tác giả sử dụng SwiGLU. Bây giờ chúng ta sẽ giải đáp vì sao LLAMA lại dùng activation này.
Rõ ràng hàm phi tuyến hay được gọi là hàm activation giúp cho mô hình có thể học được những đường cong để xấp xỉ các phân phối dữ liệu phức tạp.
Cấu thành của hàm activation SwiGLU là sự nâng cấp của 2 thành phần:
Hàm activation GLU
Hàm activation Swish
1) GLU - Gated Linear Units
Công thức của GLU:
Cơ chế theo cổng phần nào bạn có thể liên tưởng đến cổng trong mô hình LSTM khi cho phép các cơ chế thu nhận/bỏ thông tin có kiểm soát khi mô hình tính toán. Ví dụ khi đào tạo một câu dài trong ngôn ngữ tự nhiên:
Ví dụ câu:
Anh ấy tên Ngọc rất thích trèo cây, đánh đu, chơi piano và mặc _____??
Nhiệm vụ mô hình phải lưu trữ được thông tin ở đầu câu ví dụ từ Anh để có thể điền vào chỗ trống là từ vest thay vì từ váy.
Mô hình hoàn toàn có thể loại bỏ thông tin như rất thích trèo cây vì cho dù nam hoặc nữ đều có thể có sở thích này.
Việc kiểm soát tiếp nhận thông tin bao nhiêu phần % thường được sử dụng thông qua hàm sigmoid vì điều đặc biệt là hàm này sẽ có đầu ra là những giá trị nằm trong đoạn [0, 1] - một cách nôm na, nếu đầu hàm sigmoid này trả về 0.8 tức là ta chỉ cho phép sử dụng 80% thông tin của đầu vào x. Ngoài ra thì sigmoid(Wx+b) là một mạng nơ ron không lớp ẩn có thể học được W và b, một lần nữa tăng việc lựa chọn nơ ron và thông tin nơ ron hữu ích cho hàm mục tiêu của bài toán.
2) Swish activation
Hàm activation Swish cũng gần như tương tự với hàm GELU tuy nhiên tham số để học chỉ còn duy nhất tham số beta.
Mục tiêu vẫn là kiểm soát thông tin đầu vào. Thực nghiệm cho thấy hàm activation này cho khả năng hội tụ tốt hơn so với các hàm activation thông thường như RELU.
3) Kết hợp Swish và GLU ta có SwiGLU.
SwiGLU nổi tiếng khi được sử dụng trong mô hình ngôn ngữ lớn PALM và LLAMA. Trong kiến trúc của mô hình LLAMA thì SwishGLU là một trong 3 điểm cải tiến Meta sử dụng để đào tạo mô hình ngôn ngữ lớn tương tự họ GPT của OpenAI.
SwiGLU tạo ra một sự phối hợp phức tạp hơn GLU và Swish bằng việc cho thêm bộ tham số học được bao gồm bộ W và b và bộ V, c giúp tăng khả năng của hàm activation, hay nói cách khác sẽ học được nhiều hơn việc sử dụng đầu vào x. Việc thêm bộ tham số để học xảy ra thông thường trong học sâu.
Tuy nhiên cơ chế cổng vẫn là cốt lõi làm nên thành công của hàm activation này.
4) Thực nghiệm hiệu năng của SwiGLU
Theo bài báo GLU Variants Improve Transformer,
Với bài toán segment-filling thì hàm activation này cho điểm Perplexity là thấp nhất.
Perplexity là thang đo hiệu quả của một mô hình ngôn ngữ. Perplexity càng thấp thì model càng có chất lượng cao.
Rõ ràng ta nhận thấy trong một số bài toán của GLUE Language-Understanding Benchmark thì SwiGLU có kết quả tốt nhất, đây cũng chính là lý do hàm này được tác giả của LLAMA lựa chọn.
5) Một số ưu thế của hàm activation này
Cơ chế cổng lựa chọn thông tin giúp cho mô hình có khả năng lựa chọn các nơ ron có đóng góp cao cho kết quả của bài toán
Trái với RELU là hàm đơn điệu, SwiGLU là hàm không đơn điệu cho phép mô hình xấp xỉ được các quan hệ phi tuyến phức tạp
Ngoài ra thì hàm này làm cho bề mặt đồ thị hàm mất mát mịn hơn làm tăng khả năng hội tụ của mô hình.
Trên đây là cách SwiGLU hoạt động và các lý do để hàm này được sử dụng nhiều hơn trong các bài toán AI gần đây.
Nguồn tham khảo: