Common¶
API 참조¶
Classes¶
RBLNModel
¶
Bases: RBLNBaseModel
Functions¶
from_model(model, config=None, rbln_config=None, model_save_dir=None, subfolder='', **kwargs)
classmethod
¶
Converts and compiles a pre-trained HuggingFace library model into a RBLN model. This method performs the actual model conversion and compilation process.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
model
|
PreTrainedModel
|
The PyTorch model to be compiled. The object must be an instance of the HuggingFace transformers PreTrainedModel class. |
required |
config
|
Optional[PretrainedConfig]
|
The configuration object associated with the model. |
None
|
rbln_config
|
Optional[Union[RBLNModelConfig, Dict]]
|
Configuration for RBLN model compilation and runtime.
This can be provided as a dictionary or an instance of the model's configuration class (e.g., |
None
|
kwargs
|
Any
|
Additional keyword arguments. Arguments with the prefix |
{}
|
The method performs the following steps:
- Compiles the PyTorch model into an optimized RBLN graph
- Configures the model for the specified NPU device
- Creates the necessary runtime objects if requested
- Saves the compiled model and configurations
Returns:
Type | Description |
---|---|
RBLNModel
|
A RBLN model instance ready for inference on RBLN NPU devices. |
forward(*args, return_dict=None, **kwargs)
¶
Defines the forward pass of RBLNModel
. The interface mirrors HuggingFace conventions so it can act as a drop-in
replacement in many cases.
This method executes the compiled RBLN model on RBLN NPU devices while remaining fully compatible with Hugging Face
Transformers and Diffusers APIs. In practice, RBLNModel
can replace models built on torch.nn.Module
— including
transformers.PreTrainedModel
implementations and Diffusers components based on diffusers.ModelMixin
— enabling
seamless integration into existing workflows.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
args
|
Any
|
Variable length argument list containing model inputs. The format matches the original HuggingFace model's forward method signature (e.g., input_ids, attention_mask for transformers models, or sample, timestep for diffusers models). |
()
|
return_dict
|
Optional[bool]
|
Whether to return outputs as a dictionary-like object or as a tuple. When |
None
|
kwargs
|
Any
|
Arbitrary keyword arguments containing additional model inputs and parameters, matching the original HuggingFace model's interface. |
{}
|
Returns:
Type | Description |
---|---|
Any
|
Model outputs in the same format as the original HuggingFace model. |
Any
|
If |
Any
|
If |
Note
- This method maintains the exact same interface as the original HuggingFace model's forward method
- The compiled model runs on RBLN NPU hardware for accelerated inference
- All HuggingFace model features (generation, attention patterns, etc.) are preserved
- Can be used directly in HuggingFace pipelines, transformers.Trainer, and other workflows
from_pretrained(model_id, export=None, rbln_config=None, **kwargs)
classmethod
¶
The from_pretrained()
function is utilized in its standard form as in the HuggingFace transformers library.
User can use this function to load a pre-trained model from the HuggingFace library and convert it to a RBLN model to be run on RBLN NPUs.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
model_id
|
Union[str, Path]
|
The model id of the pre-trained model to be loaded. It can be downloaded from the HuggingFace model hub or a local path, or a model id of a compiled model using the RBLN Compiler. |
required |
export
|
Optional[bool]
|
A boolean flag to indicate whether the model should be compiled. If None, it will be determined based on the existence of the compiled model files in the model_id. |
None
|
rbln_config
|
Optional[Union[Dict, RBLNModelConfig]]
|
Configuration for RBLN model compilation and runtime.
This can be provided as a dictionary or an instance of the model's configuration class (e.g., |
None
|
kwargs
|
Any
|
Additional keyword arguments. Arguments with the prefix |
{}
|
Returns:
Type | Description |
---|---|
RBLNModel
|
A RBLN model instance ready for inference on RBLN NPU devices. |
save_pretrained(save_directory, push_to_hub=False, **kwargs)
¶
Saves a model and its configuration file to a directory, so that it can be re-loaded using the
[~optimum.rbln.modeling_base.RBLNBaseModel.from_pretrained
] class method.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
save_directory
|
Union[str, Path]
|
Directory where to save the model file. |
required |
push_to_hub
|
bool
|
Whether or not to push your model to the HuggingFace model hub after saving it. |
False
|
Classes¶
RBLNBaseModel
¶
Bases: SubModulesMixin
, PushToHubMixin
, PreTrainedModel
Functions¶
from_pretrained(model_id, export=None, rbln_config=None, **kwargs)
classmethod
¶
The from_pretrained()
function is utilized in its standard form as in the HuggingFace transformers library.
User can use this function to load a pre-trained model from the HuggingFace library and convert it to a RBLN model to be run on RBLN NPUs.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
model_id
|
Union[str, Path]
|
The model id of the pre-trained model to be loaded. It can be downloaded from the HuggingFace model hub or a local path, or a model id of a compiled model using the RBLN Compiler. |
required |
export
|
Optional[bool]
|
A boolean flag to indicate whether the model should be compiled. If None, it will be determined based on the existence of the compiled model files in the model_id. |
None
|
rbln_config
|
Optional[Union[Dict, RBLNModelConfig]]
|
Configuration for RBLN model compilation and runtime.
This can be provided as a dictionary or an instance of the model's configuration class (e.g., |
None
|
kwargs
|
Any
|
Additional keyword arguments. Arguments with the prefix |
{}
|
Returns:
Type | Description |
---|---|
RBLNModel
|
A RBLN model instance ready for inference on RBLN NPU devices. |
save_pretrained(save_directory, push_to_hub=False, **kwargs)
¶
Saves a model and its configuration file to a directory, so that it can be re-loaded using the
[~optimum.rbln.modeling_base.RBLNBaseModel.from_pretrained
] class method.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
save_directory
|
Union[str, Path]
|
Directory where to save the model file. |
required |
push_to_hub
|
bool
|
Whether or not to push your model to the HuggingFace model hub after saving it. |
False
|
Classes¶
RBLNAutoConfig
¶
Resolver and factory for RBLN model configurations.
This class selects the concrete RBLNModelConfig
subclass, validates the
provided data, and returns a frozen configuration object that serves as the
single source of truth during export and load. It does not define the schema
or control model behavior.
Functions¶
load_from_dict(config_dict)
staticmethod
¶
Build a RBLNModelConfig
from a plain dictionary.
The dictionary must contain cls_name
, which identifies the concrete
configuration class to instantiate. All other keys are forwarded to the
target class initializer. This method does not mutate config_dict
.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
config_dict
|
Dict[str, Any]
|
Mapping typically created by |
required |
Returns:
Name | Type | Description |
---|---|---|
RBLNModelConfig |
RBLNModelConfig
|
A configuration instance. The specific subclass is |
RBLNModelConfig
|
selected by |
Raises:
Type | Description |
---|---|
ValueError
|
If |
Exception
|
Any error raised by the target config class during init. |
Examples:
register(config, exist_ok=False)
staticmethod
¶
Register a new configuration for this class.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
config
|
RBLNModelConfig
|
The config to register. |
required |
exist_ok
|
bool
|
Whether to allow registering an already registered model. |
False
|
load(path, passed_rbln_config=None, kwargs={}, return_unused_kwargs=False)
staticmethod
¶
Load RBLNModelConfig from a path.
Class name is automatically inferred from the rbln_config.json
file.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
path
|
str
|
Path to the RBLNModelConfig. |
required |
passed_rbln_config
|
Optional[RBLNModelConfig]
|
RBLNModelConfig to pass its runtime options. |
None
|
Returns:
Name | Type | Description |
---|---|---|
RBLNModelConfig |
Union[RBLNModelConfig, Tuple[RBLNModelConfig, Dict[str, Any]]]
|
The loaded RBLNModelConfig. |
RBLNModelConfig
¶
Bases: RBLNSerializableConfigProtocol
Base configuration class for RBLN models that handles compilation settings, runtime options, and submodules.
This class provides functionality for:
- Managing compilation configurations for RBLN devices
- Configuring runtime behavior such as device placement
- Handling nested configuration objects for complex model architectures
- Serializing and deserializing configurations
Examples:
Using with RBLNModel.from_pretrained():
Save and load configuration:
Converting between configuration formats:
Configuration for language models:
Working with models that have submodules:
Advanced multi-device deployment with tensor parallelism:
Compilation without runtime creation (create_runtimes=False):
Two-stage workflow with separate compilation and runtime:
Functions¶
__init__(cls_name=None, create_runtimes=None, optimize_host_memory=None, device=None, device_map=None, activate_profiler=None, npu=None, tensor_parallel_size=None, timeout=None, optimum_rbln_version=None, _torch_dtype=None, _compile_cfgs=[], **kwargs)
¶
Initialize a RBLN model configuration with runtime options and compile configurations.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
cls_name
|
Optional[str]
|
The class name of the configuration. Defaults to the current class name. |
None
|
create_runtimes
|
Optional[bool]
|
Whether to create RBLN runtimes. Defaults to True. |
None
|
optimize_host_memory
|
Optional[bool]
|
Whether to optimize host memory usage. Defaults to True. |
None
|
device
|
Optional[Union[int, List[int]]]
|
The device(s) to load the model onto. Can be a single device ID or a list. |
None
|
device_map
|
Optional[Dict[str, Union[int, List[int]]]]
|
Mapping from compiled model names to device IDs. |
None
|
activate_profiler
|
Optional[bool]
|
Whether to activate the profiler for performance analysis. |
None
|
npu
|
Optional[str]
|
The NPU device name to use for compilation. |
None
|
tensor_parallel_size
|
Optional[int]
|
Size for tensor parallelism to distribute the model across devices. |
None
|
timeout
|
Optional[int]
|
The timeout for the runtime in seconds. If it isn't provided, it will be set to 60 by default. |
None
|
optimum_rbln_version
|
Optional[str]
|
The optimum-rbln version used for this configuration. |
None
|
_torch_dtype
|
Optional[str]
|
The data type to use for the model. |
None
|
_compile_cfgs
|
List[RBLNCompileConfig]
|
List of compilation configurations for the model. |
[]
|
kwargs
|
Any
|
Additional keyword arguments. |
{}
|
Raises:
Type | Description |
---|---|
ValueError
|
If unexpected keyword arguments are provided. |
load(path, **kwargs)
classmethod
¶
Load a RBLNModelConfig from a path.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
path
|
str
|
Path to the RBLNModelConfig file or directory containing the config file. |
required |
kwargs
|
Any
|
Additional keyword arguments to override configuration values. Keys starting with 'rbln_' will have the prefix removed and be used to update the configuration. |
{}
|
Returns:
Name | Type | Description |
---|---|---|
RBLNModelConfig |
RBLNModelConfig
|
The loaded configuration instance. |
Note
This method loads the configuration from the specified path and applies any provided overrides. If the loaded configuration class doesn't match the expected class, a warning will be logged.