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

Token Merging (ToMe)

Token merging (ToMe) tăng tốc vision transformer bằng cách lấy trung bình các token tương tự trong mỗi block, tăng gấp đôi thông lượng mà không cần huấn luyện lại.

Gộp token (ToMe) là phương pháp tăng tốc Transformer, đặc biệt là Vision Transformer (ViT), bằng cách kết hợp các token tương tự bên trong mạng để mỗi block xử lý ít token hơn. Ảnh chứa nhiều phần dư thừa, chẳng hạn các patch bầu trời hoặc mặt đường gần như giống nhau; lấy trung bình các token như vậy sẽ giảm phép tính mà vẫn giữ thông tin. ToMe hoạt động trên model đã huấn luyện mà không cần huấn luyện lại và cũng có thể được áp dụng trong quá trình huấn luyện. Daniel Bolya cùng các cộng sự tại Georgia Tech và Meta AI giới thiệu phương pháp này trong bài báo Token Merging: Your ViT But Faster, được trình bày miệng tại ICLR 2023. Khi dùng trực tiếp, phương pháp này tăng gấp đôi thông lượng của ViT-L ở 512 pixel và ViT-H ở 518 pixel trên ảnh, với mức giảm độ chính xác chỉ 0,2% đến 0,3%; đồng thời tăng tốc model video ViT-L lên 2,2 lần với mức giảm tương tự.

Cách gộp token hoạt động#

ViT chia ảnh thành các patch, mỗi patch tương ứng một token; mỗi block chạy self-attention, có chi phí tăng theo bình phương số token, rồi đến MLP, có chi phí tăng tuyến tính. ToMe chèn bước gộp giữa attention và MLP của mỗi block, mỗi lần loại bỏ một số token cố định r; vì vậy model 24 block với r = 8 kết thúc với ít hơn 192 token so với ban đầu. Phép gộp sử dụng ghép mềm hai phía, được chọn vì nhanh và không cần phân cụm lặp:

  1. Chia: Chia các token luân phiên thành hai tập A và B.
  2. Ghép: Kết nối mỗi token trong A với token tương tự nhất trong B, đo bằng độ tương đồng cosine của các key attention được lấy trung bình qua các head.
  3. Giữ các cạnh tốt nhất: Giữ lại r cặp tương tự nhất.
  4. Gộp: Lấy trung bình từng cặp được giữ lại để tạo thành một token, gán trọng số theo số patch ban đầu mà mỗi token đại diện, rồi nối lại hai tập.

Vì token đã gộp đại diện cho nhiều patch, ToMe cộng logarit kích thước của mỗi token vào điểm attention, gọi là attention tỷ lệ, để token được tạo từ nhiều patch nhận được phần attention tương ứng. Toàn bộ quy trình có thể vi phân, cho phép huấn luyện model bằng ToMe để tăng tốc hơn nữa.

Ví dụ PyTorch này áp dụng ghép mềm hai phía cho ViT DINOv2-small của Meta từ Transformers của Hugging Face, trên ảnh xe buýt kích thước 448 x 448; ví dụ gộp r token sau mỗi block trong 12 block và so sánh embedding ảnh thu được với embedding của model không gộp token:

from urllib.request import urlopen

import torch
import torch.nn.functional as F
from PIL import Image
from transformers import AutoImageProcessor, AutoModel

processor = AutoImageProcessor.from_pretrained("facebook/dinov2-small")
model = AutoModel.from_pretrained("facebook/dinov2-small")
image = Image.open(urlopen("https://ultralytics.com/images/bus.jpg")).resize((448, 448))
pixels = processor(images=image, do_resize=False, do_center_crop=False, return_tensors="pt").pixel_values


def merge(x, r):
    """Bipartite soft matching: merge the r most similar pairs between alternating token sets A and B."""
    cls, a, b = x[:, :1], x[:, 1::2], x[:, 2::2]
    similarity = F.normalize(a[0], dim=-1) @ F.normalize(b[0], dim=-1).T
    best, match = similarity.max(dim=-1)  # each A token's most similar B token
    order = best.argsort(descending=True)
    merged, kept = order[:r], order[r:]
    index = match[merged][None, :, None].expand(1, r, x.shape[-1])
    b = b.scatter_reduce(1, index, a[:, merged], reduce="mean")  # average merged A tokens into their B matches
    return torch.cat([cls, a[:, kept], b], dim=1)


with torch.no_grad():
    for r in (0, 32, 64):
        x, counts = model.embeddings(pixels), []
        for layer in model.encoder.layer:
            counts.append(x.shape[1])
            x = merge(layer(x), r)  # merge r tokens after every transformer block
        embedding = model.layernorm(x)[:, 0]  # CLS token: the image embedding
        reference = embedding if r == 0 else reference
        similarity = F.cosine_similarity(embedding, reference).item()
        print(f"r={r}: mean tokens per block {sum(counts) / 12:.0f}, CLS similarity to unmerged {similarity:.3f}")

Model không gộp xử lý 1025 token trong mỗi block, gồm 1.024 patch cộng với token CLS. Gộp 32 token mỗi block giảm mức trung bình xuống 849, trong khi embedding ảnh vẫn giữ độ tương đồng cosine 0.983 so với bản gốc; gộp 64 token mỗi block giảm xuống 673 với độ tương đồng 0.887, cho thấy r đánh đổi lượng tính toán để lấy độ trung thực.

Ứng dụng của gộp token#

Token Merging for Fast Stable Diffusion áp dụng cùng ý tưởng cho các block Transformer của mạng khử nhiễu Stable Diffusion, nơi phương pháp có thể loại bỏ tới 60% token, tạo ảnh nhanh hơn tới hai lần và dùng bộ nhớ ít hơn tới 5,6 lần mà không cần huấn luyện bổ sung. Ngoài ảnh, bài báo ToMe cho biết phương pháp tăng gấp đôi thông lượng của ViT-B âm thanh được huấn luyện với phép gộp, với mức giảm mAP 0,4%, đồng thời tăng tốc tinh chỉnh autoencoder có mặt nạ trên video lên tới 2 lần. Các nhà nghiên cứu áp dụng phép gộp và cắt tỉa tương tự cho token thị giác của model thị giác-ngôn ngữ, trong đó LLaVA-1.5 dùng 576 token trong ngữ cảnh của model ngôn ngữ cho mỗi ảnh.

Trong gói Ultralytics, Segment Anything Model (SAM) của Meta mã hóa mỗi ảnh kích thước 1024 x 1024 pixel thành 4.096 token patch; trong so sánh MobileSAM, bộ mã hóa ảnh ViT-H của model này chiếm 452 ms trong tổng 456 ms mà SAM cần cho mỗi ảnh trên GPU, chính là phần tính toán mà các phương pháp giảm token nhắm đến.

  • Cắt tỉa token: Các phương pháp như DynamicViT và EViT loại bỏ token bị đánh giá là không quan trọng, làm mất thông tin và thường cần huấn luyện. Thay vào đó, ToMe gộp token để lấy trung bình thông tin và hoạt động trên các model chưa được huấn luyện bằng phương pháp này.
  • Token hóa: Tạo các token ban đầu từ patch hoặc văn bản trước khi mạng chạy. ToMe giảm số lượng token bên trong mạng.
  • Flash attention và attention thưa: Giảm chi phí hoặc tăng tốc attention với số lượng token nhất định. ToMe giảm số lượng token, nhờ đó cũng tăng tốc các lớp MLP, và có thể kết hợp với hai phương pháp này.
  • Mixture of Depths (MoD): Cho phép bộ định tuyến được học quyết định token nào bỏ qua một block trong model ngôn ngữ. ToMe hợp nhất vĩnh viễn các token dư thừa bằng quy tắc tương đồng cố định.
  • Giảm độ phân giải đầu vào: Giảm đồng đều số lượng token trên toàn ảnh. ToMe chủ yếu gộp token ở các vùng dư thừa như nền, đồng thời giữ các vùng chi tiết ở độ phân giải đầy đủ.

Explore solutions

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

Biến hình ảnh từ drone và ảnh hàng không thành thông tin chi tiết theo thời gian thực cho nông nghiệp, nuôi trồng thủy sản, giám sát môi trường, 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ụ

Đưa AI thị giác vào hoạt động giám sát hàng không với các model Ultralytics YOLO. Thúc đẩy drone, quy trình hàng không vũ trụ, bảo tồn môi trường và các ngành không gian địa lý bằng giải pháp thị giác máy tính.
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
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

Biến hình ảnh từ drone và ảnh hàng không thành thông tin chi tiết theo thời gian thực cho nông nghiệp, nuôi trồng thủy sản, giám sát môi trường, 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ụ

Đưa AI thị giác vào hoạt động giám sát hàng không với các model Ultralytics YOLO. Thúc đẩy drone, quy trình hàng không vũ trụ, bảo tồn môi trường và các ngành không gian địa lý bằng giải pháp thị giác máy tính.
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
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

Biến hình ảnh từ drone và ảnh hàng không thành thông tin chi tiết theo thời gian thực cho nông nghiệp, nuôi trồng thủy sản, giám sát môi trường, 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ụ

Đưa AI thị giác vào hoạt động giám sát hàng không với các model Ultralytics YOLO. Thúc đẩy drone, quy trình hàng không vũ trụ, bảo tồn môi trường và các ngành không gian địa lý bằng giải pháp thị giác máy tính.
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