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

Phần cập nhật trọng số LoRA hạng 1

LoRA (Low-Rank Adaptation) đóng băng trọng số gốc và học thêm một phần cập nhật hạng thấp

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

numpyloraparameter-efficient-tuningentry-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

LoRA (Low-Rank Adaptation) đóng băng trọng số gốc và học thêm một phần cập nhật hạng thấp delta = (alpha / r) * B AT. Với r = 1, B là một vector cột và A là một vector hàng, nên B AT là tích ngoài của hai vector.

Yêu cầu

Viết hàm lora_rank1_delta(b, a, alpha, r) trả về ma trận cập nhật delta 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 lora_rank1_delta 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

  • 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 delta[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.
  • Hai vector phải khác rỗng; nếu không thì ném ValueError.
  • Chỉ dùng NumPy cho tích ngoài.

Ví dụ 1

Input

lora_rank1_delta(b=[1, -1], a=[2, 3], alpha=2, r=1)

Output

[[4, 6], [-4, -6]]

Ví dụ 2

Input

lora_rank1_delta(b=[1, 1], a=[1, 1], alpha=1, r=1)

Output

[[1, 1], [1, 1]]

Giải thích

Với b = [1, -1], a = [2, 3], alpha = 2 và r = 1: tích ngoài là [[2, 3], [-2, -3]], hệ số alpha / r = 2, nên delta = [[4, 6], [-4, -6]].

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