42 lines
2.3 KiB
Markdown
42 lines
2.3 KiB
Markdown
<!--Copyright 2020 The HuggingFace Team. All rights reserved.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
|
the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
|
|
an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
|
|
specific language governing permissions and limitations under the License.
|
|
|
|
⚠️ Note that this file is in Markdown but contain specific syntax for our doc-builder (similar to MDX) that may not be
|
|
rendered properly in your Markdown viewer.
|
|
|
|
-->
|
|
|
|
# BERTology
|
|
|
|
There is a growing field of study concerned with investigating the inner working of large-scale transformers like BERT
|
|
(that some call "BERTology"). Some good examples of this field are:
|
|
|
|
|
|
- BERT Rediscovers the Classical NLP Pipeline by Ian Tenney, Dipanjan Das, Ellie Pavlick:
|
|
https://arxiv.org/abs/1905.05950
|
|
- Are Sixteen Heads Really Better than One? by Paul Michel, Omer Levy, Graham Neubig: https://arxiv.org/abs/1905.10650
|
|
- What Does BERT Look At? An Analysis of BERT's Attention by Kevin Clark, Urvashi Khandelwal, Omer Levy, Christopher D.
|
|
Manning: https://arxiv.org/abs/1906.04341
|
|
- CAT-probing: A Metric-based Approach to Interpret How Pre-trained Models for Programming Language Attend Code Structure: https://arxiv.org/abs/2210.04633
|
|
|
|
In order to help this new field develop, we have included a few additional features in the BERT/GPT/GPT-2 models to
|
|
help people access the inner representations, mainly adapted from the great work of Paul Michel
|
|
(https://arxiv.org/abs/1905.10650):
|
|
|
|
|
|
- accessing all the hidden-states of BERT/GPT/GPT-2,
|
|
- accessing all the attention weights for each head of BERT/GPT/GPT-2,
|
|
- retrieving heads output values and gradients to be able to compute head importance score and prune head as explained
|
|
in https://arxiv.org/abs/1905.10650.
|
|
|
|
To help you understand and use these features, we have added a specific example script: [bertology.py](https://github.com/huggingface/transformers/tree/main/examples/research_projects/bertology/run_bertology.py) while extract information and prune a model pre-trained on
|
|
GLUE.
|