SwiGLU
Khám phá SwiGLU, hàm kích hoạt (activation function) tiên tiến được sử dụng trong các LLM và Ultralytics YOLO26. Tìm hiểu cách cơ chế cổng (gated mechanism) của nó cải thiện khả năng huấn luyện và hiệu suất của mạng thần kinh.
SwiGLU (Swish Gated Linear Unit) là một hàm kích hoạt tiên tiến và là một khối kiến trúc mạng thần kinh giúp nâng cao Mạng truyền thẳng (FFN) truyền thống được sử dụng trong học máy chuyên sâu. Bằng cách kết hợp các đặc tính mượt mà, phi đơn điệu của hàm kích hoạt Swish với cơ chế Gated Linear Unit (GLU), SwiGLU cung cấp khả năng định tuyến tính năng động, phụ thuộc vào dữ liệu. Bằng cách áp dụng phép chiếu tuyến tính lên dữ liệu đầu vào, truyền một nhánh qua hàm kích hoạt Swish và nhân nó theo phần tử với một nhánh tuyến tính khác, mạng đạt được sức mạnh biểu đạt vượt trội. Điều này cho phép các kiến trúc AI hiện đại nắm bắt các phụ thuộc phi tuyến tính phức tạp hiệu quả hơn nhiều so với các lớp tĩnh tiêu chuẩn được sử dụng trong các mô hình học sâu cũ hơn.
Link to this sectionSwiGLU hoạt động như thế nào#
Không giống như các mạng truyền thẳng truyền thống chỉ đơn giản ánh xạ dữ liệu đầu vào sang một chiều cao hơn, áp dụng phi tuyến tính cơ bản và chiếu ngược lại, SwiGLU giới thiệu cơ chế cổng nhân (multiplicative gating). Dữ liệu đầu vào được chia thành hai phép chiếu được tham số hóa: một "cổng" (gate) và một "giá trị" (value). Nhánh cổng được kích hoạt bằng hàm SiLU / Swish, giúp bảo toàn các giá trị âm nhỏ và đảm bảo các đạo hàm mượt mà, khác không ở hầu hết mọi nơi. Cổng đã kích hoạt này sau đó được nhân theo phần tử với nhánh giá trị. Việc lọc động này cho phép mạng thần kinh kiểm soát thông minh luồng thông tin, tránh các vấn đề "neuron chết" (dead neuron) phổ biến trong các kiến trúc cũ hơn, đồng thời ổn định tín hiệu gradient trong quá trình huấn luyện mô hình, một khái niệm được nghiên cứu rộng rãi trong các cơ chế chú ý.
Link to this sectionPhân biệt SwiGLU với các Hàm kích hoạt khác#
Trong khi các Hàm kích hoạt tiêu chuẩn như ReLU sử dụng ngưỡng cố định để cắt các giá trị âm về 0, SwiGLU điều chỉnh linh hoạt các kích hoạt dựa trên chính dữ liệu đầu vào. So với GELU, vốn gán trọng số cho các đầu vào theo xác suất của chúng dưới phân phối Gaussian, SwiGLU đặc biệt tận dụng các lớp tuyến tính được tham số hóa để học cách điều khiển thông tin. Về bản chất, SwiGLU không chỉ là một phép tính toán học theo phần tử; nó hoạt động như một thành phần cấu trúc toàn diện, thường thay thế toàn bộ cơ chế lớp ẩn bên trong một khối Transformer. Để so sánh mở rộng về các đặc tính toán học, các nhà nghiên cứu thường tham khảo các hướng dẫn về hàm kích hoạt toàn diện.
Link to this sectionCác ứng dụng thực tế#
Nhờ hiệu quả tính toán và những cải thiện hiệu suất đáng kể, SwiGLU đã trở thành thành phần nền tảng trong các hệ thống AI hiện đại.
- Mô hình ngôn ngữ lớn (LLMs): Các ứng dụng AI tạo sinh hàng đầu dựa nhiều vào SwiGLU. Ví dụ, Meta tích hợp SwiGLU vào kiến trúc Llama 3 của mình để thay thế các lớp truyền thẳng dựa trên GeLU truyền thống, giúp ổn định quá trình huấn luyện tốt hơn và xử lý các cửa sổ ngữ cảnh khổng lồ. Các kiến trúc tương tự được triển khai trong mô hình ngôn ngữ pathways của Google (PaLM) và được phân tích rộng rãi trên các cuộc thảo luận về học sâu trên Kaggle.
- Thị giác máy tính nâng cao: Các mô hình đa phương thức và hệ thống thị giác máy tính nâng cao sử dụng SwiGLU trong các khối transformer của chúng để xử lý hiệu quả các mối quan hệ hình ảnh-văn bản phức tạp. Các khung làm việc thị giác sáng tạo, bao gồm Ultralytics YOLO26 gốc đầu cuối, liên tục khám phá các khối kiến trúc tối ưu hóa và điều chỉnh siêu tham số để tối đa hóa hiệu suất tham số cho các tác vụ như Phát hiện đối tượng.
Link to this sectionTriển khai SwiGLU trong PyTorch#
Đối với các nhà phát triển xây dựng mạng tùy chỉnh hoặc tùy biến các mô hình thị giác cho thiết bị biên sử dụng Nền tảng Ultralytics, việc triển khai SwiGLU thông qua tài liệu PyTorch rất đơn giản. (Ngoài ra, các nhà phát triển trong các hệ sinh thái khác có thể sử dụng triển khai TensorFlow). Đoạn mã Python ngắn gọn sau đây minh họa một module SwiGLU cơ bản sử dụng hàm F.silu tích hợp sẵn của PyTorch:
import torch
import torch.nn as nn
import torch.nn.functional as F
class SwiGLU(nn.Module):
def __init__(self, in_features, hidden_features):
super().__init__()
# SwiGLU requires two projections: one for the gate, one for the value
self.gate_proj = nn.Linear(in_features, hidden_features)
self.value_proj = nn.Linear(in_features, hidden_features)
self.out_proj = nn.Linear(hidden_features, in_features)
def forward(self, x):
# Element-wise multiplication of the SiLU-activated gate and the linear value
hidden = F.silu(self.gate_proj(x)) * self.value_proj(x)
return self.out_proj(hidden)
# Example usage with a dummy input tensor
module = SwiGLU(in_features=512, hidden_features=1365)
output = module(torch.randn(1, 512))Phương pháp tiếp cận cấu trúc này đối với các khối kích hoạt đảm bảo rằng các kiến trúc thần kinh tiên tiến trích xuất được các biểu diễn phong phú hơn từ dữ liệu huấn luyện phức tạp, dù được áp dụng cho Xử lý ngôn ngữ tự nhiên (NLP) hay phân tích không gian thời gian thực. Để hiểu sâu hơn về việc xây dựng và tăng tốc các mô hình hiệu quả, các nhà phát triển thường tham khảo nghiên cứu nền tảng về các biến thể GLU gốc trên arXiv, các kho lưu trữ mã nguồn mở của Meta và tài liệu tối ưu hóa của PyTorch để tối đa hóa thông lượng phần cứng.






