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

LoRA (Low-Rank Adaptation)

LoRA fine-tune các model lớn bằng cách đóng băng trọng số và huấn luyện các ma trận cập nhật hạng thấp nhỏ, qua đó giảm số tham số cần huấn luyện, bộ nhớ và dung lượng lưu trữ.

LoRA, viết tắt của Low-Rank Adaptation, là phương pháp tinh chỉnh hiệu quả tham số (PEFT), điều chỉnh một model pretrained lớn cho tác vụ mới bằng cách đóng băng các trọng số ban đầu và huấn luyện một cặp ma trận nhỏ bên cạnh các layer được chọn. Tích của hai ma trận này tạo thành một cập nhật hạng thấp được cộng vào các trọng số đã đóng băng, vì vậy chỉ một phần rất nhỏ tham số nhận gradient. Được Hu và các cộng sự tại Microsoft giới thiệu năm 2021, LoRA giảm số tham số có thể huấn luyện của GPT-3 175B xuống 10.000 lần và giảm bộ nhớ GPU khi huấn luyện xuống 3 lần so với tinh chỉnh toàn bộ bằng Adam, đồng thời đạt chất lượng ngang bằng hoặc tốt hơn tinh chỉnh toàn bộ trên RoBERTa, DeBERTa, GPT-2 và GPT-3. Hiện nay, LoRA được sử dụng rộng rãi để tùy chỉnh mô hình ngôn ngữ lớn (LLM), model khuếch tán và vision transformer trên phần cứng phổ thông. LoRa, giao thức vô tuyến tầm xa dành cho thiết bị IoT, là một thuật ngữ không liên quan.

Cách LoRA hoạt động#

Tinh chỉnh thay đổi ma trận trọng số pretrained W có kích thước d × k bằng một lượng cập nhật ΔW nào đó. LoRA giả định rằng cập nhật này có hạng nội tại thấp, do đó có thể biểu diễn bằng tích của hai ma trận mỏng: ΔW = B × A, trong đó A có kích thước r × k, B có kích thước d × r và hạng r nhỏ hơn nhiều so với d hoặc k. Đầu ra của layer trở thành h = Wx + (α / r) × BAx, trong đó α là hằng số tỷ lệ cố định. A được khởi tạo bằng các giá trị ngẫu nhiên nhỏ còn B được khởi tạo bằng số 0, vì vậy quá trình huấn luyện bắt đầu đúng từ model pretrained. Chỉ A và B được cập nhật trong quá trình lan truyền ngược, đồng thời loại bỏ trạng thái optimizer của toàn bộ trọng số bị đóng băng.

Với phép chiếu kích thước 4096 × 4096, tinh chỉnh toàn bộ huấn luyện khoảng 16,8 triệu trọng số, trong khi adapter hạng 8 chỉ huấn luyện 8 × (4096 + 4096) = 65.536 trọng số. Script PyTorch dưới đây tạo adapter như vậy rồi gộp adapter vào layer đã đóng băng:

import torch
from torch import nn

# A frozen pretrained 4096 x 4096 projection, like one in a transformer attention block
base = nn.Linear(4096, 4096).requires_grad_(False)

# LoRA's trainable rank-8 update: B @ A, scaled by alpha / r
# B starts at zero, so the adapted layer initially matches the pretrained one
r, alpha = 8, 16
A = nn.Parameter(torch.randn(r, 4096) * 0.01)
B = nn.Parameter(torch.zeros(4096, r))
trainable = A.numel() + B.numel()
total = trainable + sum(p.numel() for p in base.parameters())
print(f"Trainable: {trainable:,} of {total:,} parameters ({trainable / total:.2%})")

# After training, merge the update into the base weight so inference costs nothing extra
nn.init.normal_(B, std=0.01)  # stand-in for trained values
x = torch.randn(2, 4096)
adapted = base(x) + (alpha / r) * (x @ A.T @ B.T)
merged = nn.functional.linear(x, base.weight + (alpha / r) * B @ A, base.bias)
print(f"Merged layer matches adapter output: {torch.allclose(adapted, merged, atol=1e-5)}")

Adapter huấn luyện 65.536 trong tổng số 16.846.848 tham số của layer, tương đương 0,39%; gộp B × A vào W cho đầu ra giống với khi chạy adapter riêng. Vì vậy, model LoRA đã gộp chạy nhanh chính xác như model gốc — một ưu điểm so với các layer adapter trước đây vốn bổ sung phép tính cho mỗi lượt lan truyền xuôi.

Ứng dụng LoRA trong thực tế#

Bài báo ban đầu chỉ điều chỉnh các phép chiếu query và value của attention trong transformer, nhưng hiện nay nhiều công thức hướng đến mọi layer tuyến tính. Hạng và α là các hyperparameter chính: thư viện Hugging Face PEFT mặc định đặt r = 8 và α = 8. Vì model nền không bị thay đổi, một deployment có thể giữ một bản sao duy nhất của model và thay đổi các adapter nhỏ dành riêng cho từng tác vụ. Với hạng 4 trên các phép chiếu query và value của GPT-3 175B, mỗi checkpoint đã điều chỉnh giảm từ 350 GB xuống khoảng 35 MB, nhỏ hơn xấp xỉ 10.000 lần.

  • Mô hình ngôn ngữ: Các nhóm điều chỉnh LLM mở cho một lĩnh vực, phong cách hoặc định dạng chỉ dẫn cụ thể trên một GPU, thường kết hợp LoRA với dữ liệu instruction tuning.
  • Tạo ảnh: Các file LoRA giúp Stable Diffusion và các model tương tự học một nhân vật, sản phẩm hoặc phong cách nghệ thuật; các file này được chia sẻ và xếp chồng riêng biệt với checkpoint nền.
  • Model thị giác và đa phương thức: Adapter chuyên biệt hóa vision transformer và mô hình ngôn ngữ-thị giác (VLM) cho ảnh y tế, công nghiệp hoặc tài liệu mà không cần huấn luyện lại backbone.

Các biến thể#

  • QLoRA: Đóng băng model nền ở độ chính xác NormalFloat 4-bit rồi huấn luyện các adapter LoRA trên đó. Dettmers và các cộng sự đã dùng phương pháp này để tinh chỉnh model 65 tỷ tham số trên một GPU 48 GB, đồng thời duy trì hiệu năng tinh chỉnh đầy đủ ở 16-bit.
  • DoRA: Tách mỗi trọng số pretrained thành độ lớn và hướng, rồi chỉ áp dụng LoRA cho hướng; cách này thu hẹp khoảng cách chính xác so với tinh chỉnh toàn bộ với cùng chi phí suy luận.
  • Tinh chỉnh hiệu quả tham số: Thuật ngữ bao quát các phương pháp chỉ huấn luyện một phần nhỏ của model. Đóng băng layer là hình thức đơn giản nhất; Ultralytics YOLO cung cấp tính năng này qua đối số huấn luyện freeze, giữ N layer đầu tiên của model YOLO26 ở trọng số pretrained trong khi huấn luyện các layer còn lại.
  • Tinh chỉnh toàn bộ: Cập nhật mọi trọng số và lưu một bản sao đầy đủ của model cho mỗi tác vụ. Trong lập trình và toán học, tinh chỉnh toàn bộ vượt trội đáng kể so với LoRA tiêu chuẩn, trong khi LoRA ít gặp hiện tượng quên thảm họa hơn đối với các kỹ năng khác của model nền.
  • Tinh chỉnh prompt: Học các embedding prompt mềm được thêm vào trước đầu vào, trong khi mọi trọng số model vẫn được đóng băng.
  • Học chuyển giao: Ý tưởng tổng quát về việc tái sử dụng kiến thức từ tác vụ này cho tác vụ khác. LoRA là một cách hiệu quả để thực hiện điều đó.
  • Gộp model: Kết hợp trọng số của các model được tinh chỉnh riêng biệt; gộp nhiều adapter LoRA vào một model nền là trường hợp phổ biến.

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