registration.md 2.05 KB
Newer Older
1
---
2
title: Registering a Model
3
---
4
5

vLLM relies on a model registry to determine how to run each model.
6
A list of pre-registered architectures can be found [here](../../models/supported_models.md).
7
8
9
10
11
12

If your model is not on this list, you must register it to vLLM.
This page provides detailed instructions on how to do so.

## Built-in models

13
To add a model directly to the vLLM library, start by forking our [GitHub repository](https://github.com/vllm-project/vllm) and then [build it from source][build-from-source].
14
15
This gives you the ability to modify the codebase and test your model.

16
After you have implemented your model (see [tutorial](basic.md)), put it into the <gh-dir:vllm/model_executor/models> directory.
17
Then, add your model class to `_VLLM_MODELS` in <gh-file:vllm/model_executor/models/registry.py> so that it is automatically registered upon importing vLLM.
18
Finally, update our [list of supported models](../../models/supported_models.md) to promote your model!
19

20
!!! important
21
    The list of models in each section should be maintained in alphabetical order.
22
23
24

## Out-of-tree models

25
You can load an external model [using a plugin](../../design/plugin_system.md) without modifying the vLLM codebase.
26
27
28
29

To register the model, use the following code:

```python
30
31
32
33
34
35
# The entrypoint of your plugin
def register():
    from vllm import ModelRegistry
    from your_code import YourModelForCausalLM

    ModelRegistry.register_model("YourModelForCausalLM", YourModelForCausalLM)
36
37
38
39
40
```

If your model imports modules that initialize CUDA, consider lazy-importing it to avoid errors like `RuntimeError: Cannot re-initialize CUDA in forked subprocess`:

```python
41
42
43
44
45
46
47
48
# The entrypoint of your plugin
def register():
    from vllm import ModelRegistry

    ModelRegistry.register_model(
        "YourModelForCausalLM",
        "your_code:YourModelForCausalLM"
    )
49
50
```

51
!!! important
52
    If your model is a multimodal model, ensure the model class implements the [SupportsMultiModal][vllm.model_executor.models.interfaces.SupportsMultiModal] interface.
53
    Read more about that [here](multimodal.md).