Gộp adapter LoRA vào trọng số gốc
Sau khi huấn luyện, người ta thường gộp adapter LoRA vào trọng số gốc để suy luận không tốn
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: python-basics, numpy-matrix-multiplication.
Nội dung đề bài
Mô tả bài toán
Sau khi huấn luyện, người ta thường gộp adapter LoRA vào trọng số gốc để suy luận không tốn thêm phép tính: W' = W + (alpha / r) * B AT. Ma trận gộp W' có cùng kích thước với trọng số gốc.
Yêu cầu
Viết hàm merge_lora_adapter(base, b, a, alpha, r) trả về ma trận trọng số đã gộp dưới dạng danh sách các danh sách số thực.
Quy ước nộp bài
Nộp hàm merge_lora_adapter trong solution.py. Hệ thống gọi hàm trực tiếp và so giá trị với sai số 1e-6; không đọc stdin và không in ra stdout.
Input
- base: trọng số gốc W (kích thước d x k).
- b: vector cột B (danh sách d số thực).
- a: vector hàng A (danh sách k số thực).
- alpha: hệ số tỉ lệ của LoRA.
- r: hạng của adapter.
Output
Ma trận d x k với W'[i][j] = W[i][j] + (alpha / r) * b[i] * a[j].
Ràng buộc
- r phải dương; nếu r <= 0 thì ném ValueError.
- len(b) phải bằng số hàng và len(a) bằng số cột của base; nếu không thì ném
ValueError.
- Chỉ dùng NumPy cho tích ngoài và phép cộng.
Ví dụ 1
Input
merge_lora_adapter(base=[[1, 2], [3, 4]], b=[1, -1], a=[2, 3], alpha=2, r=1)
Output
[[5, 8], [-1, -2]]
Ví dụ 2
Input
merge_lora_adapter(base=[[1, 0], [0, 1]], b=[1, 1], a=[1, 1], alpha=1, r=1)
Output
[[2, 1], [1, 2]]
Giải thích
Với base = [[1, 2], [3, 4]], b = [1, -1], a = [2, 3], alpha = 2, r = 1: phần cập nhật là [[4, 6], [-4, -6]], nên W' = [[5, 8], [-1, -2]].
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.
