Khám phá SwiGLU, chức năng kích hoạt nâng cao được sử dụng trong LLM và Ultralytics YOLO26. Tìm hiểu cách cơ chế điều khiển có cổng của nó cải thiện quá trình huấn luyện và hiệu quả của mạng nơ-ron.
SwiGLU (Swish Gated Linear Unit) là một hàm kích hoạt tiên tiến và khối kiến trúc mạng nơ-ron giúp tăng cường mạng truyền thẳng (Feed-Forward Network - FFN) truyền thống được sử dụng trong học máy sâu. Bằng cách kết hợp các đặc tính mượt mà, không đơ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 đặc trư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 cho đầu vào, truyền một nhánh qua hàm kích hoạt Swish và nhân từng phần tử với một nhánh tuyến tính khác, mạng sẽ đạ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 mối quan hệ phức tạp, phi tuyến tính 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.
Không giống như các mạng nơ-ron truyền thẳng truyền thống chỉ đơn giản là ánh xạ đầu vào lên chiều cao hơn, áp dụng một hàm phi tuyến tính cơ bản và chiếu ngược trở lại, SwiGLU giới thiệu một cơ chế cổng nhân. Đầu vào được chia thành hai phép chiếu tham số hóa: một "cổng" và một "giá trị". Nhánh cổng được kích hoạt bằng cách sử dụng hàm SiLU/Swish , giúp bảo toàn các giá trị âm nhỏ và đảm bảo đạo hàm mượt mà, khác không ở hầu hết mọi nơi. Cổng được kích hoạt này sau đó được nhân từng phần tử với nhánh giá trị. Việc lọc động này cho phép mạng nơ-ron kiểm soát luồng thông tin một cách thông minh, tránh các vấn đề "nơ-ron chết" thường gặp 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ú ý .
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 động các giá trị kích hoạt dựa trên chính dữ liệu đầu vào. So với GELU , hàm này trọng số hóa đầu vào theo xác suất của chúng theo phân phối Gaussian, SwiGLU đặc biệt tận dụng các lớp tuyến tính tham số hóa để học cách lọc thông tin. Về bản chất, SwiGLU không chỉ là một phép tính toán học theo từng 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 khối Transformer . Để so sánh chi tiết các thuộ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 toàn diện về hàm kích hoạt .
Nhờ hiệu quả tính toán và những cải tiến đáng kể về hiệu năng, SwiGLU đã trở thành một thành phần nền tảng trong các hệ thống trí tuệ nhân tạo hiện đại.
Dành cho các nhà phát triển xây dựng mạng tùy chỉnh hoặc điều chỉnh mô hình thị giác cho các thiết bị biên bằng cách sử dụng
Ultralytics Nền tảng, triển khai SwiGLU thông qua
PyTorch tài liệu Điều này khá đơ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...)
TensorFlow triển khai). Đoạn văn ngắn gọn sau đây Python Đoạn mã này minh họa một mô-đun SwiGLU cơ bản sử dụng PyTorch tích hợp sẵn
F.silu chức năng:
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))
Cách 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 mạng thần kinh tiên tiến có thể trích xuất các biểu diễn phong phú hơn từ dữ liệu huấn luyện phức tạp, cho 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 các 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.