Common¶
API 참조¶
RBLNModel ¶
Bases: RBLNBaseModel
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 | ModelMixin | The PyTorch model to be compiled. The object must be a HuggingFace transformers | required |
config | PretrainedConfig | None | The configuration object associated with the model. | None |
rbln_config | RBLNModelConfig | dict | None | 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 | bool | None | 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 | 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 | bool | None | 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 | dict | RBLNModelConfig | None | 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. |
get_hf_class() classmethod ¶
Lazily load and cache the HuggingFace class this model wraps.
The class is looked up in hf_library_name under the name without the RBLN prefix (e.g. RBLNLlamaForCausalLM -> LlamaForCausalLM).
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 | 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 |
RBLNBaseModel ¶
Bases: SubModulesMixin, PushToHubMixin, PreTrainedModel
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 | 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 | bool | None | 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 | dict | RBLNModelConfig | None | 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. |
get_hf_class() classmethod ¶
Lazily load and cache the HuggingFace class this model wraps.
The class is looked up in hf_library_name under the name without the RBLN prefix (e.g. RBLNLlamaForCausalLM -> LlamaForCausalLM).
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 | 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 |
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.
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 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 |
from_pretrained(path, rbln_config=None, return_unused_kwargs=False, **kwargs) classmethod ¶
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 |
rbln_config | dict[str, Any] | None | Additional configuration to override. | None |
return_unused_kwargs | bool | Whether to return unused kwargs. | False |
kwargs | Any | Additional keyword arguments to override configuration values. | {} |
Returns:
| Name | Type | Description |
|---|---|---|
RBLNModelConfig | Union[RBLNModelConfig, tuple[RBLNModelConfig, dict[str, Any]]] | The loaded RBLNModelConfig. |
Examples:
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:
initialize_submodule_config(submodule_config=None, force_kwargs=False, **kwargs) ¶
Build the config of a submodule from the parent's runtime options and kwargs.
Returns the submodule config instance when its class is known (an instance was passed, or cls_name was given), otherwise the merged kwargs dict for the model class to resolve later.
__init__(cls_name=None, create_runtimes=None, device=None, device_map=None, activate_profiler=None, npu=None, num_devices=None, timeout=None, optimum_rbln_version=None, dtype=None, _compile_cfgs=None, *, optimize_host_memory=None, **kwargs) ¶
Initialize a RBLN model configuration with runtime options and compile configurations.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cls_name | str | None | The class name of the configuration. Defaults to the current class name. | None |
create_runtimes | bool | None | Whether to create RBLN runtimes. Defaults to True. | None |
device | int | list[int] | None | The device(s) to load the model onto. Can be a single device ID or a list. | None |
device_map | dict[str, int | list[int]] | None | Mapping from compiled model names to device IDs. | None |
activate_profiler | bool | None | Whether to activate the profiler for performance analysis. | None |
npu | str | None | The NPU device name to use for compilation. | None |
num_devices | int | None | Number of devices to distribute the model across. | None |
timeout | int | None | The timeout for the runtime in seconds. If it isn't provided, it will be set to 60 by default. | None |
optimum_rbln_version | str | None | The optimum-rbln version used for this configuration. | None |
dtype | str | dtype | None | The data type to use for the model. | None |
_compile_cfgs | list[RBLNCompileConfig] | List of compilation configurations for the model. | None |
kwargs | Any | Additional keyword arguments. | {} |
Raises:
| Type | Description |
|---|---|
ValueError | If unexpected keyword arguments are provided. |
get_load_overrides() ¶
Extract the options that must cross the load boundary, for passing to from_pretrained.
Returns the explicitly-set runtime options (device, device_map, create_runtimes, activate_profiler, timeout) and the subclass-specific non-save attributes (load-behavior flags such as _load_visual_runtime, which are never serialized so they can only travel with the caller), recursively including submodules. Compile-time attributes are not included: when loading a compiled model they come from the artifact's rbln_config.json, and this dict is merged on top of it.
Returns:
| Type | Description |
|---|---|
dict[str, Any] | Dictionary of load overrides, keyed like the |
from_pretrained(path, rbln_config=None, return_unused_kwargs=False, **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 |
rbln_config | dict[str, Any] | None | Additional configuration to override. | None |
return_unused_kwargs | bool | Whether to return unused kwargs. | False |
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 | Self | tuple[Self, dict[str, Any]] | 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.
Examples: