LoRA Từ Đầu – Low-Rank Adaptation Cho Fine-Tuning LLM
LoRA thêm hai ma trận hạng thấp A ∈ Rr × din và B ∈ Rdout × r:
Tiến độ của tôi ở bài này
Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: knowledge-distillation-soft-targets.
Nội dung đề bài
Mục tiêu kiến thức
LoRA thêm hai ma trận hạng thấp A ∈ Rr × din và B ∈ Rdout × r: Delta W = B · A W' = W0 + alphar · B · A
Trong đó:
- W0: frozen pre-trained weight
- A: khởi tạo Gaussian random, B: khởi tạo zero (nên Delta W = 0 lúc đầu)
- alpha: LoRA scaling factor
- Chỉ train A và B (~2dr tham số thay vì d2)
Yêu cầu
class LoRALinear(nn.Module):
def __init__(self, in_features, out_features, rank=4, alpha=1.0, bias=True):
# Frozen W0, trainable A (r, in_f) and B (out_f, r)
pass
def forward(self, x: torch.Tensor) -> torch.Tensor:
pass
def merge_weights(self) -> None:
# Merge LoRA into W0: W0 += (alpha/r) * B @ A
pass
def lora_parameters_count(self) -> int:
# Count only LoRA trainable params (A + B, not W0)
passInput
- Lớp LoRALinear(in_features, out_features, rank, alpha, bias): Khởi tạo đối tượng với các tham số, trọng số hoặc cấu hình tương ứng.
Output
- Các phương thức của LoRALinear: Trả về kết quả tính toán hoặc cập nhật trạng thái nội bộ của đối tượng.
Ràng buộc
- Thời gian chạy tối đa: 5000ms.
- Giới hạn bộ nhớ: 512MB.
- Dữ liệu đầu vào hợp lệ theo đúng kiểu dữ liệu và miền giá trị được mô tả.
Ví dụ 1
Input
layer = LoRALinear(16, 32, rank=4, alpha=2.0)
x = torch.randn(8, 16)
layer(x)
Output
Tensor shape: (8, 32), dtype=torch.float32
Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
Ví dụ 2
Input
layer = LoRALinear(8, 16, rank=2, alpha=1.0)
x = torch.randn(4, 8)
base_out = x @ layer.weight.T
if layer.bias is not None:
base_out += layer.bias
full_out = layer(x)
Output
Tensor shape: (4, 16), dtype=torch.float32
Giải thích
Hàm/lớp được gọi với các tham số mẫu trên và trả về kết quả số học / kích thước tensor tương ứng theo đúng thiết kế.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
