Alterna · учебный материал
16.6 Небольшая добавка к большой таблице
Заморозим прежние веса и обучим меньшие таблицы, задающие добавку. Это возвращает идею ограниченного по рангу обновления из главы 02.
Что в этом материале
- Обучаем низкоранговую добавку, не копию всей матрицы
Содержание и основные понятия
На предыдущей странице: учимся по сравнению двух ответов.
Заморозим прежние веса и обучим меньшие таблицы, задающие добавку. Это возвращает идею ограниченного по рангу обновления из главы 02.
Каждый известный токен готовит прогноз следующего. Ошибка проходит назад по программе, оптимизатор меняет веса, а отдельные данные проверяют результат. Разметка диалога и предпочтений меняет objective.
Для изменения рисунка включитеJavaScript; расчёт и теория доступны далее.
Обучаем низкоранговую добавку, не копию всей матрицы
Для frozen base matrix
W∈R^(d_out×d_in)
LoRA задаёт update как произведение двух меньших matrices. Если rank
r
существенно меньше обеих размерностей, trainable scalar count равен
r(d_in+d_out)
, а dense update имел бы
d_in*d_out
. F05.
h
=
W
x
+
α
r
B
A
x
,
A
∈
R
r
×
d
i
n
,
B
∈
R
d
o
u
t
×
r
.
h=Wx+\frac{\alpha}{r}BAx,
\qquad A\in\mathbb R^{r\times d_{in}},\quad
B\in\mathbb R^{d_{out}\times r}.
h
=
W
x
+
r
α
B
A
x
,
A
∈
R
r
×
d
in
,
B
∈
R
d
o
u
t
×
r
.
При инициализации одной factor нулями начальный update равен нулю и поведение base model сохраняется. После обучения adapter можно хранить отдельно или merge в
W
; merge меняет deployment artefact и должен фиксироваться в manifest. Выбор target modules, rank, alpha, dropout и dtype входит в config.
Что показывает модель.
В inspector отдельно видны frozen path
Wx
, adapter path
BAx
, scaling и сумма. Изменение rank меняет максимальный rank update и число обучаемых параметров, но не гарантирует нужное качество. Несколько adapters могут использовать одну base model, если совпадают architecture, tensor names и tokenizer contract.
Граница применимости.
PEFT уменьшает trainable parameters и optimizer state, но forward всё ещё использует base weights. Adapter способен наследовать и усиливать ограничения base model. Нельзя смешивать несовместимые checkpoints по совпадающим shapes без provenance; shape compatibility не доказывает семантическую совместимость.
W_16f=[[1,0,0],[0,1,0]]; A_16f=[[1,2,0]]; B_16f=[[0.5],[-0.5]]; x_16f=[1,1,1]
rank_16f,alpha_16f=1,2
ax_16f=[sum(a*x for a,x in zip(A_16f[0],x_16f))]
delta_16f=[alpha_16f/rank_16f*row[0]*ax_16f[0] for row in B_16f]
base_16f=[sum(a*x for a,x in zip(row,x_16f)) for row in W_16f]
assert base_16f==[1,1] and delta_16f==[3.0,-3.0] and rank_16f*(3+2)==5
Код повторяет только что разобранные операции.
Полный проверяемыйPython-пример главы
доступен отдельным файлом; показанный короткий фрагмент не заменяет его реализацию.
Trainable factors задают low-rank ΔW, не переписывая base W.
Как пользоваться им, не повторяя обучение при каждом запросе?
Python-примеры главы 16
Академическая база →