Что такое adapter tuning и prefix tuning?
Ответ от нейросети
sobes.tech AI
Adapter tuning и prefix tuning — это методы эффективной донастройки больших языковых моделей (LLM) без необходимости полного переобучения всей модели.
Adapter tuning заключается во внедрении небольших дополнительных слоев (адаптеров) в уже обученную модель. При дообучении изменяются только параметры этих адаптеров, а основная модель остаётся замороженной. Это позволяет значительно снизить объём обучаемых параметров и ускорить процесс дообучения.
Prefix tuning — метод, при котором к входным данным модели добавляется обучаемый префикс (набор токенов или векторов), который влияет на поведение модели. При этом сама модель не изменяется, а обучается только этот префикс, который служит как контекст для генерации.
Оба подхода позволяют адаптировать большие модели под новые задачи с меньшими затратами ресурсов и времени по сравнению с полным fine-tuning.
Пример adapter tuning (упрощённо):
# Вставляем адаптер в трансформер
class Adapter(nn.Module):
def __init__(self, input_dim, adapter_dim):
super().__init__()
self.down_proj = nn.Linear(input_dim, adapter_dim)
self.up_proj = nn.Linear(adapter_dim, input_dim)
def forward(self, x):
return x + self.up_proj(torch.relu(self.down_proj(x)))
# В модели замораживаем все параметры, кроме адаптера
for param in model.parameters():
param.requires_grad = False
for param in adapter.parameters():
param.requires_grad = True