Я пытаюсь получить доступ к градиенту потерь в DistilBERT по отношению к каждому весу внимания в первом слое. Я мог получить доступ к вычисленному значению градиента выходной матрицы весов с помощью следующего кода, когда requires_grad=True
loss.backward()
for name, param in model.named_parameters():
if name == 'transformer.layer.0.attention.out_lin.weight':
print(param.grad) #shape is [768,768]
где model
- загруженная модель дистилберта. У меня вопрос, как получить градиент относительно внимания [SEP] или [CLS] или других токенов? Он мне нужен, чтобы воспроизвести рисунок об «Градиентных оценках важности функций для внимания к [SEP]» по следующей ссылке: https://medium.com/analytics-vidhya/explainability-of-bert-through-Внимание-7dbbab8a7062
Аналогичный вопрос для той же цели был задан ниже, но это не моя проблема: Проблема с измерением важности токена BERT. Нет оценок