Ultralytics YOLO27: Đăng ký vào danh sách chờ.
Cấp phép YOLO
Quay lại Bảng thuật ngữ Ultralytics

Model Pruning

Cắt tỉa model loại bỏ các trọng số, bộ lọc hoặc lớp có mức độ quan trọng thấp khỏi mạng nơ-ron để giảm kích thước và lượng tính toán. Tìm hiểu cắt tỉa phi cấu trúc và có cấu trúc, kèm code.

Cắt tỉa model loại bỏ các tham số ít ảnh hưởng đến đầu ra của mạng nơ-ron đã huấn luyện, từ từng trọng số riêng lẻ đến toàn bộ filter, head attention hoặc layer, nhằm giúp model nhỏ hơn và ít tốn chi phí vận hành hơn. Hầu hết mạng đều dư thừa tham số, vì vậy có thể loại bỏ phần lớn trọng số mà ít làm giảm độ chính xác, đặc biệt nếu model được tinh chỉnh sau đó. Một phương pháp cắt tỉa rồi huấn luyện lại năm 2015 giảm AlexNet từ 61 triệu xuống 6,7 triệu tham số và VGG-16 từ 138 triệu xuống 10,3 triệu mà không làm giảm độ chính xác trên ImageNet. Cắt tỉa là bước tiêu chuẩn để chuẩn bị model cho điện thoại, camera và phần cứng AI biên khác; hiện nay phương pháp này cũng được áp dụng cho mô hình ngôn ngữ lớn (LLM).

Cách cắt tỉa model hoạt động#

Cắt tỉa chấm điểm mức độ quan trọng của từng trọng số hoặc cấu trúc ứng viên, loại bỏ phần có điểm thấp nhất rồi tinh chỉnh các trọng số model còn lại để khôi phục độ chính xác. Tiêu chí đơn giản nhất và vẫn phổ biến nhất là độ lớn: các trọng số gần 0 hoặc các filter có chuẩn L1 hay L2 nhỏ sẽ làm thay đổi đầu ra ít nhất khi bị loại bỏ. Những tiêu chí khác dùng gradient hoặc activation để ước tính mức tăng của loss nếu thiếu từng thành phần. Loại bỏ cùng lúc một tỷ lệ lớn thường làm giảm độ chính xác, vì vậy quá trình cắt tỉa thường diễn ra theo nhiều vòng; mỗi vòng được tiếp nối bằng tinh chỉnh cho đến khi model đạt kích thước mục tiêu hoặc độ chính xác giảm quá ngưỡng cho phép:

Cắt tỉa cũng làm thay đổi cách các nhà nghiên cứu nhìn nhận kích thước mạng. Giả thuyết vé số cho rằng một mạng dày đặc chứa các mạng con nhỏ mà khi được huấn luyện riêng, bắt đầu từ trọng số khởi tạo ban đầu, vẫn đạt độ chính xác của mạng đầy đủ; các tác giả liên tục tìm thấy những mạng con như vậy với kích thước dưới 10-20% mạng gốc trên MNIST và CIFAR-10.

Cắt tỉa không cấu trúc và có cấu trúc#

Cắt tỉa không cấu trúc đặt các trọng số riêng lẻ ở bất kỳ vị trí nào trong tensor thành 0. Phương pháp này đạt độ thưa cao với mức giảm độ chính xác nhỏ, nhưng hình dạng tensor không đổi nên các kernel dense tiêu chuẩn vẫn thực hiện cùng lượng công việc; muốn tăng tốc phải có kernel thưa hoặc hỗ trợ phần cứng. GPU NVIDIA từ thế hệ Ampere có thể chạy một dạng như vậy — độ thưa 2:4, với hai số 0 trong mỗi bốn trọng số liên tiếp — nhanh gấp tối đa hai lần so với phép tính dense. Cắt tỉa có cấu trúc loại bỏ toàn bộ filter, channel, head hoặc layer, tạo ra model dense nhỏ hơn và chạy nhanh hơn trên mọi bộ xử lý, nhưng làm giảm độ chính xác nhiều hơn với cùng số lượng trọng số bị loại bỏ. Khi bỏ một filter, cũng cần bỏ channel đầu vào tương ứng của layer tiếp theo; các thư viện như Torch-Pruning tự động theo dõi những phụ thuộc này. Các tiện ích cắt tỉa của PyTorch minh họa sự khác nhau giữa hai phương pháp:

import torch
from torch.nn.utils import prune

# Two identical convolution layers, one for each pruning style
torch.manual_seed(0)
a = torch.nn.Conv2d(16, 32, kernel_size=3)
b = torch.nn.Conv2d(16, 32, kernel_size=3)

# Unstructured: zero the 50% of individual weights with the smallest magnitude
prune.l1_unstructured(a, name="weight", amount=0.5)

# Structured: zero the 50% of output filters with the smallest L2 norm
prune.ln_structured(b, name="weight", amount=0.5, n=2, dim=0)

for name, layer in [("unstructured", a), ("structured", b)]:
    zeros = (layer.weight == 0).float().mean().item()
    empty = (layer.weight.flatten(1) == 0).all(dim=1).sum().item()
    print(f"{name}: {zeros:.0%} of weights zero, {empty} of 32 filters empty")

Cả hai layer đều có 50% trọng số bằng 0. Chỉ layer được cắt tỉa có cấu trúc mới có các filter rỗng — 16 trong số 32 filter — và xóa chúng sẽ tạo ra một layer dense có số filter giảm một nửa, nhờ đó giảm một nửa lượng tính toán trên phần cứng thông thường. Phần cứng được thiết kế cho tính thưa cũng hưởng lợi từ phương pháp không cấu trúc: tích hợp CVflow cho Ultralytics YOLO của Ambarella, do Ambarella duy trì trong fork riêng của package, cắt tỉa trọng số dần trong quá trình huấn luyện YOLO và duy trì độ thưa đó qua bước xuất ONNX để biên dịch cho chip AI biên của hãng.

  • Lượng tử hóa model: Giảm độ chính xác biểu diễn của mọi trọng số, chẳng hạn từ số thực 32-bit xuống số nguyên 8-bit, nhưng vẫn giữ lại toàn bộ trọng số. Cắt tỉa và lượng tử hóa thường được kết hợp: cắt tỉa giảm số phép toán, còn lượng tử hóa giúp mỗi phép toán ít tốn kém hơn.
  • Chưng cất tri thức: Huấn luyện model student nhỏ hơn bắt chước model teacher lớn hơn; phương pháp này thường được áp dụng sau cắt tỉa có cấu trúc để khôi phục độ chính xác bị mất khi loại bỏ toàn bộ filter hoặc layer.
  • Dropout: Tạm thời đặt ngẫu nhiên một số activation thành 0 trong quá trình huấn luyện như một hình thức regularization; khi suy luận, model đầy đủ được sử dụng.

Cắt tỉa mô hình ngôn ngữ lớn#

Huấn luyện lại LLM sau mỗi vòng cắt tỉa quá tốn kém, vì vậy các phương pháp một lần cắt tỉa model trong một lượt bằng tập hiệu chỉnh nhỏ. SparseGPT cắt tỉa các model OPT 175 tỷ tham số và BLOOM 176 tỷ tham số xuống độ thưa không cấu trúc 60% trong chưa đầy 4,5 giờ, với mức tăng perplexity không đáng kể; phương pháp này cũng hỗ trợ dạng 2:4 được GPU tăng tốc. Cắt tỉa có cấu trúc kết hợp với chưng cất tri thức tạo ra các model dense nhỏ hơn: Minitron của NVIDIA tạo ra các model 8B và 4B từ model pretrained 15B bằng cách cắt tỉa channel embedding, neuron MLP và head attention, sau đó huấn luyện lại với số lượng token ít hơn tối đa 40 lần so với huấn luyện từ đầu.

Khám phá các giải pháp

Thị giác máy tính trong thể thao

Thị giác máy tính trong thể thao

Khám phá cách Ultralytics YOLO thúc đẩy thị giác máy tính trong thể thao với khả năng theo dõi cầu thủ và bóng, phân tích hiệu suất, cung cấp thông tin chuyên sâu cho huấn luyện và hỗ trợ phục hồi cho vận động viên.
Tìm hiểu thêm
Thị giác máy tính cho ảnh hàng không

Thị giác máy tính cho ảnh hàng không

Chuyển hình ảnh từ drone và ảnh hàng không thành thông tin chuyên sâu theo thời gian thực cho nông nghiệp, nuôi trồng thủy sản, bảo tồn và phân tích không gian địa lý với Ultralytics YOLO.
Tìm hiểu thêm
Thị giác máy tính trong hàng không vũ trụ

Thị giác máy tính trong hàng không vũ trụ

Ứng dụng computer vision trong ngành hàng không vũ trụ với Ultralytics YOLO cho kiểm tra máy bay, phát hiện dị vật trên đường băng (FOD), vận hành mặt đất tại sân bay và phát hiện lỗi vật liệu composite.
Tìm hiểu thêm
Computer vision trong lĩnh vực an ninh

Computer vision trong lĩnh vực an ninh

Bảo vệ mọi địa điểm bằng model Ultralytics YOLO. Vision AI hỗ trợ giám sát vành đai, phát hiện mối đe dọa, nhận dạng biển số và an toàn nơi làm việc.
Tìm hiểu thêm
Computer vision trong robotics

Computer vision trong robotics

Tăng cường năng lực cho máy móc thông minh bằng model Ultralytics YOLO. Vision AI trong lĩnh vực robotics hỗ trợ điều hướng tự động, nhận thức, theo dõi đối tượng và điều khiển theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong logistics

Thị giác máy tính trong logistics

Tinh giản hoạt động logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra kiện hàng, phân loại, theo dõi phương tiện và giám sát an toàn kho hàng theo thời gian thực.
Tìm hiểu thêm
Thị giác máy tính trong bán lẻ

Thị giác máy tính trong bán lẻ

Định hình lại hoạt động bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng chờ và phân tích khách hàng thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong chăm sóc sức khỏe

Thị giác máy tính trong chăm sóc sức khỏe

Xây dựng các giải pháp chăm sóc sức khỏe với model Ultralytics YOLO. Vision AI trong chăm sóc sức khỏe hỗ trợ xử lý hình ảnh y tế nhanh hơn, chẩn đoán thông minh hơn và theo dõi bệnh nhân.
Tìm hiểu thêm
Thị giác máy tính trong sản xuất

Thị giác máy tính trong sản xuất

Tối ưu hóa sản xuất bằng các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Thị giác máy tính trong ngành ô tô

Thị giác máy tính trong ngành ô tô

Ứng dụng thị giác máy tính trong ngành ô tô với các model Ultralytics YOLO. Vision AI nâng cao an toàn giao thông, hỗ trợ người lái và tự động hóa phương tiện để tạo nên những tuyến đường thông minh hơn.
Tìm hiểu thêm
Thị giác máy tính trong nông nghiệp

Thị giác máy tính trong nông nghiệp

Ứng dụng AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Hỗ trợ giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để nâng cao năng suất một cách thông minh hơn.
Tìm hiểu thêm

Hãy cùng nhau kiến tạo tương lai của AI!

Bắt đầu hành trình hướng đến tương lai của machine learning