ai-459Đọc toàn bộ đề miễn phí

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

AICơ bản12 phút

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ủ đề

numpyloramodel-mergingentry-ramp

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]].

3 cấp độ gợi ýMở dần khi bạn thật sự cần hỗ trợ.
Phân tích lời giảiGiải thích hướng tư duy và thuật toán.
Code tham khảoDùng để đối chiếu sau khi tự làm.

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.

Nhóm Zalo