inference, but also as the very product that we want to improve. Hence, when adding a model, the user is not only the
person that will use your model, but also everybody that will read, try to understand, and possibly tweak your code.
With this in mind, let's go a bit deeper into the general library design.
Overview of models
To successfully add a model, it is important to understand the interaction between your model and its config,
[PreTrainedModel], and [PretrainedConfig]. For exemplary purposes, we will
call the model to be added to 🤗 Transformers BrandNewBert.
Let's take a look:
As you can see, we do make use of inheritance in 🤗 Transformers, but we keep the level of abstraction to an absolute
minimum. There are never more than two levels of abstraction for any model in the library. BrandNewBertModel
