Vllm.Multimodal.MultiModalRegistry (VLLM v0.3.0)

Copy Markdown View Source

A registry that dispatches data processing according to the model.

Summary

Functions

Python method MultiModalRegistry._create_processing_ctx.

Python method MultiModalRegistry._create_processing_info.

Extract multimodal dummy options from model config.

Python method MultiModalRegistry._get_model_cls.

Create a multi-modal processor for a specific model and tokenizer.

Create dummy data for profiling the memory usage of a model.

Get the maximum length of the encoder input for encoder-decoder models.

Create dummy data for profiling the memory usage of a model.

Get the maximum number of tokens per data item from each modality based

Get the maximum number of multi-modal input instances for each modality

Initialize self. See help(type(self)) for accurate signature.

Register a multi-modal processor to a model class. The processor

Checks if the model supports multimodal inputs.

Types

t()

@opaque t()

Functions

_create_processing_ctx(ref, model_config, args, opts \\ [])

@spec _create_processing_ctx(SnakeBridge.Ref.t(), term(), [term()], keyword()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}

Python method MultiModalRegistry._create_processing_ctx.

Parameters

  • model_config (term())
  • observability_config (term() default: None)
  • tokenizer (term() default: None)

Returns

  • term()

_create_processing_info(ref, model_config, args, opts \\ [])

@spec _create_processing_info(SnakeBridge.Ref.t(), term(), [term()], keyword()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}

Python method MultiModalRegistry._create_processing_info.

Parameters

  • model_config (term())
  • observability_config (term() default: None)
  • tokenizer (term() keyword-only default: None)

Returns

  • term()

_extract_mm_options(ref, model_config, opts \\ [])

@spec _extract_mm_options(SnakeBridge.Ref.t(), term(), keyword()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}

Extract multimodal dummy options from model config.

Returns None if no configurable options are found, otherwise returns a mapping of modality names to their dummy options.

Parameters

  • model_config (term())

Returns

  • term()

_get_model_cls(ref, model_config, opts \\ [])

@spec _get_model_cls(SnakeBridge.Ref.t(), term(), keyword()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}

Python method MultiModalRegistry._get_model_cls.

Parameters

  • model_config (term())

Returns

  • term()

create_processor(ref, model_config, args, opts \\ [])

@spec create_processor(SnakeBridge.Ref.t(), term(), [term()], keyword()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}

Create a multi-modal processor for a specific model and tokenizer.

Parameters

  • model_config (term())
  • observability_config (term() default: None)
  • tokenizer (term() keyword-only default: None)
  • cache (term() keyword-only default: None)

Returns

  • term()

get_decoder_dummy_data(ref, model_config, seq_len, args, opts \\ [])

@spec get_decoder_dummy_data(
  SnakeBridge.Ref.t(),
  term(),
  integer(),
  [term()],
  keyword()
) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}

Create dummy data for profiling the memory usage of a model.

The model is identified by model_config.

Parameters

  • model_config (term())
  • seq_len (integer())
  • mm_counts (term() default: None)
  • cache (term() keyword-only default: None)
  • observability_config (term() keyword-only default: None)

Returns

  • term()

get_encdec_max_encoder_len(ref, model_config, opts \\ [])

@spec get_encdec_max_encoder_len(SnakeBridge.Ref.t(), term(), keyword()) ::
  {:ok, integer()} | {:error, Snakepit.Error.t()}

Get the maximum length of the encoder input for encoder-decoder models.

Parameters

  • model_config (term())

Returns

  • integer()

get_encoder_dummy_data(ref, model_config, seq_len, args, opts \\ [])

@spec get_encoder_dummy_data(
  SnakeBridge.Ref.t(),
  term(),
  integer(),
  [term()],
  keyword()
) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}

Create dummy data for profiling the memory usage of a model.

The model is identified by model_config.

Parameters

  • model_config (term())
  • seq_len (integer())
  • mm_counts (term() default: None)
  • cache (term() keyword-only default: None)
  • observability_config (term() keyword-only default: None)

Returns

  • term()

get_max_tokens_per_item_by_modality(ref, model_config, opts \\ [])

@spec get_max_tokens_per_item_by_modality(SnakeBridge.Ref.t(), term(), keyword()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}

Get the maximum number of tokens per data item from each modality based

on underlying model configuration.

Parameters

  • model_config (term())
  • cache (term() keyword-only default: None)
  • profiler_limits (term() keyword-only default: None)
  • observability_config (term() keyword-only default: None)

Returns

  • term()

get_mm_limits_per_prompt(ref, model_config, opts \\ [])

@spec get_mm_limits_per_prompt(SnakeBridge.Ref.t(), term(), keyword()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}

Get the maximum number of multi-modal input instances for each modality

that are allowed per prompt for a model class.

Parameters

  • model_config (term())
  • cache (term() keyword-only default: None)
  • observability_config (term() keyword-only default: None)

Returns

  • term()

new(args, opts \\ [])

@spec new(
  [term()],
  keyword()
) :: {:ok, SnakeBridge.Ref.t()} | {:error, Snakepit.Error.t()}

Initialize self. See help(type(self)) for accurate signature.

Parameters

  • args (term())
  • kwargs (term())

register_processor(ref, processor, opts \\ [])

@spec register_processor(SnakeBridge.Ref.t(), term(), keyword()) ::
  {:ok, term()} | {:error, Snakepit.Error.t()}

Register a multi-modal processor to a model class. The processor

is constructed lazily, hence a factory method should be passed.

When the model receives multi-modal data, the provided function is invoked to transform the data into a dictionary of model inputs.

Parameters

  • processor (term())
  • info (term() keyword-only, required)
  • dummy_inputs (term() keyword-only, required)

Returns

  • term()

supports_multimodal_inputs(ref, model_config, opts \\ [])

@spec supports_multimodal_inputs(SnakeBridge.Ref.t(), term(), keyword()) ::
  {:ok, boolean()} | {:error, Snakepit.Error.t()}

Checks if the model supports multimodal inputs.

Returns True if the model is multimodal with any non-zero supported modalities, otherwise returns False, effectively running in text-only mode.

Parameters

  • model_config (term())

Returns

  • boolean()