Transformers documentation
SAM3-LiteText
Ce modèle a été publié dans les papiers HF le 2026-02-12 et contribué à Hugging Face Transformers le 2026-04-13.
SAM3-LiteText
Aperçu
SAM3-LiteText a été proposé dans SAM3-LiteText: An Anatomical Study of the SAM3 Text Encoder for Efficient Vision-Language Segmentation par Chengxi Zeng, Yuxuan Jiang, Ge Gao, Shuai Wang, Duolikun Danier, Bin Zhu, Stevan Rudinac, David Bull et Fan Zhang.
SAM3-LiteText est une variante allégée de SAM3 qui remplace l’encodeur de texte lourd de SAM3 (353 M de paramètres) par un encodeur de texte compact basé sur MobileCLIP, optimisé par distillation de connaissances. L’encodeur d’images ViT-H de SAM3 est conservé tel quel. Cette approche réduit le nombre de paramètres de l’encodeur de texte de jusqu’à 88 % tout en maintenant des performances de segmentation comparables à celles du modèle d’origine.
L'abstract de l'article est le suivant :
Les modèles de segmentation vision-langage tels que SAM3 permettent un ancrage visuel flexible et piloté par des invites, mais ils héritent de grands encodeurs de texte généralistes initialement conçus pour la compréhension du langage ouvert. En pratique, les invites de segmentation sont courtes, structurées et sémantiquement contraintes, ce qui entraîne un surdimensionnement important de la capacité de l'encodeur de texte ainsi qu'un surcoût computationnel et mémoire persistant. Dans cet article, nous réalisons une analyse anatomique à grande échelle du promptage textuel dans la segmentation vision-langage, couvrant 404 796 invites réelles sur plusieurs benchmarks. Notre analyse révèle une redondance sévère : la plupart des fenêtres de contexte sont sous-exploitées, l'utilisation du vocabulaire est très creuse et les embeddings de texte se situent sur une variété de faible dimension malgré des représentations de haute dimension. Motivés par ces constats, nous proposons SAM3-LiteText, un cadre d'encodage textuel léger qui remplace l'encodeur de texte original de SAM3 par un élève MobileCLIP compact optimisé par distillation de connaissances. Des expériences exhaustives sur des benchmarks de segmentation d'images et de vidéos montrent que SAM3-LiteText réduit le nombre de paramètres de l'encodeur de texte de jusqu'à 88 %, réduisant considérablement l'empreinte mémoire statique, tout en maintenant des performances de segmentation comparables à celles du modèle original.
L'architecture de l'encodeur de texte est basée sur MobileCLIP et existe en trois variantes :
| Variante | Encodeur de texte | Paramètres du texte | Réduction |
|---|---|---|---|
| SAM3-LiteText-S0-16 | MobileCLIP-S0 | 42.54M | ~88% |
| SAM3-LiteText-S1-16 | MobileCLIP-S1 | 63.53M | ~82% |
| SAM3-LiteText-L-16 | MobileCLIP2-L | 123.80M | ~65% |
Ce modèle a été contribué par nielsr et yonigozlan. Le code d'origine peut être trouvé ici.
Utilisation
SAM3-LiteText est un substitut direct de SAM3 doté d'un encodeur de texte léger. Il utilise le même processeur (Sam3Processor) et prend en charge la même interface de sollicitation. Consultez la documentation de SAM3 pour des exemples d'utilisation détaillés, notamment les sollicitations par texte, les sollicitations par boîte, l'inférence par lots, et plus encore.
from io import BytesIO
from huggingface_hub.utils import httpx
from PIL import Image
from transformers import AutoModel, AutoProcessor
model = AutoModel.from_pretrained("yonigozlan/sam3-litetext-s0", device_map="auto")
processor = AutoProcessor.from_pretrained("yonigozlan/sam3-litetext-s0")
image_url = "http://images.cocodataset.org/val2017/000000077595.jpg"
image = Image.open(BytesIO(httpx.get(image_url).content)).convert("RGB")
inputs = processor(images=image, text="ear", return_tensors="pt").to(model.device)
outputs = model(**inputs)
results = processor.post_process_instance_segmentation(
outputs,
threshold=0.5,
mask_threshold=0.5,
target_sizes=inputs.get("original_sizes").tolist(),
)[0]
print(f"Found {len(results['masks'])} objects")Sam3LiteTextConfig
classe transformers.Sam3LiteTextConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonegeometry_encoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonedetr_encoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonedetr_decoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonemask_decoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneinitializer_range: float = 0.02 )
Paramètres
- vision_config (
Union[dict, ~configuration_utils.PreTrainedConfig], facultatif) — L'objet de configuration ou le dictionnaire du backbone visuel. - text_config (
Union[dict, ~configuration_utils.PreTrainedConfig], facultatif) — L'objet de configuration ou le dictionnaire du backbone de texte. - geometry_encoder_config (
dictouSam3LiteTextGeometryEncoderConfig, facultatif) — Configuration de l'encodeur de géométrie. - detr_encoder_config (
dictouSam3LiteTextDETREncoderConfig, facultatif) — Configuration de l'encodeur DETR. - detr_decoder_config (
dictouSam3LiteTextDETRDecoderConfig, facultatif) — Configuration du décodeur DETR. - mask_decoder_config (
dictouSam3LiteTextMaskDecoderConfig, facultatif) — Configuration du décodeur de masque. - initializer_range (
float, facultatif, par défaut0.02) — L'écart-type de la truncated_normal_initializer utilisé pour initialiser toutes les matrices de poids.
Il s'agit de la classe de configuration destinée à stocker la configuration d'un Sam3LiteTextModel. Elle est utilisée pour instancier un modèle Sam3 Lite Text en fonction des arguments spécifiés, en définissant l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle du yonigozlan/sam3-litetext-s0
Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.
Exemple :
>>> from transformers import Sam3LiteTextConfig, Sam3LiteTextModel
>>> # Initializing a SAM3_LITE_TEXT configuration
>>> configuration = Sam3LiteTextConfig()
>>> # Initializing a model from the configuration
>>> model = Sam3LiteTextModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configSam3LiteTextTextConfig
classe transformers.Sam3LiteTextTextConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 49408hidden_size: int = 512intermediate_size: int = 2048projection_dim: int = 512num_hidden_layers: int = 12num_attention_heads: int = 8max_position_embeddings: int = 77hidden_act: str = 'gelu'layer_norm_eps: float = 1e-05attention_dropout: float = 0.0use_repmixer_blocks: bool = Truelayer_scale_init_value: float = 1e-05repmixer_kernel_size: int = 11 )
Paramètres
- vocab_size (
int, facultatif, par défaut49408) — Taille du vocabulaire du modèle. Définit le nombre de jetons différents qui peuvent être représentés parinput_ids. - hidden_size (
int, facultatif, par défaut512) — Dimension des représentations cachées. - intermediate_size (
int, facultatif, par défaut2048) — Dimension des représentations du MLP. - projection_dim (
int, facultatif, par défaut512) — Dimension des couches de projection du texte et de la vision. - num_hidden_layers (
int, facultatif, par défaut12) — Nombre de couches cachées dans le décodeur Transformer. - num_attention_heads (
int, facultatif, valeur par défaut8) — Nombre de têtes d'attention pour chaque couche d'attention du décodeur Transformer. - max_position_embeddings (
int, facultatif, par défaut77) — La longueur de séquence maximale avec laquelle ce modèle pourrait être utilisé. - hidden_act (
str, facultatif, par défautgelu) — La fonction d'activation non linéaire (fonction ou chaîne de caractères) du décodeur. Par exemple,"gelu","relu","silu", etc. - layer_norm_eps (
float, facultatif, valeur par défaut1e-05) — L'épsilon utilisé par les couches de normalisation de couche. - attention_dropout (
float, facultatif, valeur par défaut0.0) — Le taux de dropout appliqué aux probabilités d'attention. - use_repmixer_blocks (
bool, facultatif, valeur par défautTrue) — Indique s'il faut utiliser des blocs RepMixer (de type MobileCLIP) pour les premières et dernières couches de l'encodeur. Lorsque la valeur estFalse, toutes les couches sont des couches d'encodeur Transformer standard. - layer_scale_init_value (
float, facultatif, valeur par défaut1e-5) — Valeur initiale des paramètres d'échelle de couche apprenables dans les blocs RepMixer (branches résiduelles). - repmixer_kernel_size (
int, facultatif, valeur par défaut11) — Taille du noyau pour les convolutions en profondeur dans les blocs RepMixer (mélangeur de jetons et chemin de réseau de neurones avant convolutif).
Il s'agit de la classe de configuration destinée à stocker la configuration d'un Sam3LiteTextModel. Elle est utilisée pour instancier un modèle Sam3 Lite Text en fonction des arguments spécifiés, en définissant l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle du yonigozlan/sam3-litetext-s0
Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.
Sam3LiteTextGeometryEncoderConfig
classe transformers.Sam3LiteTextGeometryEncoderConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 256num_layers: int = 3num_attention_heads: int = 8intermediate_size: int = 2048dropout: float | int = 0.1hidden_act: str = 'relu'hidden_dropout: float | int = 0.0layer_norm_eps: float = 1e-06roi_size: int = 7initializer_range: float = 0.02 )
Paramètres
- hidden_size (
int, facultatif, par défaut256) — Dimension des représentations cachées. - num_layers (
int, facultatif, par défaut3) — Nombre de couches cachées dans le décodeur Transformer. - num_attention_heads (
int, facultatif, valeur par défaut8) — Nombre de têtes d'attention pour chaque couche d'attention du décodeur Transformer. - intermediate_size (
int, facultatif, par défaut2048) — Dimension des représentations du MLP. - dropout (
Union[float, int], facultatif, par défaut0.1) — Le taux appliqué à toutes les couches de dropout. - hidden_act (
str, facultatif, par défautrelu) — La fonction d'activation non linéaire (fonction ou chaîne de caractères) dans le décodeur. Par exemple,"gelu","relu","silu", etc. - hidden_dropout (
Union[float, int], facultatif, valeur par défaut0.0) — Probabilité de dropout pour toutes les couches entièrement connectées des embeddings, de l’encodeur et du pooler. - layer_norm_eps (
float, facultatif, valeur par défaut1e-06) — L'épsilon utilisé par les couches de normalisation de couche. - roi_size (
int, facultatif, valeur par défaut : 7) — Taille de la ROI pour les opérations de box pooling. - initializer_range (
float, facultatif, par défaut0.02) — L'écart-type de la truncated_normal_initializer utilisé pour initialiser toutes les matrices de poids.
Il s'agit de la classe de configuration destinée à stocker la configuration d'un Sam3LiteTextModel. Elle est utilisée pour instancier un modèle Sam3 Lite Text en fonction des arguments spécifiés, en définissant l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle du yonigozlan/sam3-litetext-s0
Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.
Sam3LiteTextDETREncoderConfig
classe transformers.Sam3LiteTextDETREncoderConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 256num_layers: int = 6num_attention_heads: int = 8intermediate_size: int = 2048dropout: float | int = 0.1hidden_act: str = 'relu'hidden_dropout: float | int = 0.0layer_norm_eps: float = 1e-06initializer_range: float = 0.02 )
Paramètres
- hidden_size (
int, facultatif, par défaut256) — Dimension des représentations cachées. - num_layers (
int, facultatif, par défaut6) — Nombre de couches cachées dans le décodeur Transformer. - num_attention_heads (
int, facultatif, valeur par défaut8) — Nombre de têtes d'attention pour chaque couche d'attention du décodeur Transformer. - intermediate_size (
int, facultatif, par défaut2048) — Dimension des représentations du MLP. - dropout (
Union[float, int], facultatif, par défaut0.1) — Le taux appliqué à toutes les couches de dropout. - hidden_act (
str, facultatif, par défautrelu) — La fonction d'activation non linéaire (fonction ou chaîne de caractères) dans le décodeur. Par exemple,"gelu","relu","silu", etc. - hidden_dropout (
float, facultatif, valeur par défaut 0.0) — Probabilité de dropout pour les états cachés. - layer_norm_eps (
float, facultatif, valeur par défaut1e-06) — L'épsilon utilisé par les couches de normalisation de couche. - initializer_range (
float, facultatif, par défaut0.02) — L'écart-type de la truncated_normal_initializer utilisé pour initialiser toutes les matrices de poids.
Il s'agit de la classe de configuration destinée à stocker la configuration d'un Sam3LiteTextModel. Elle est utilisée pour instancier un modèle Sam3 Lite Text en fonction des arguments spécifiés, en définissant l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle du yonigozlan/sam3-litetext-s0
Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.
Sam3LiteTextDETRDecoderConfig
classe transformers.Sam3LiteTextDETRDecoderConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 256num_layers: int = 6num_queries: int = 200num_attention_heads: int = 8intermediate_size: int = 2048dropout: float | int = 0.1hidden_act: str = 'relu'hidden_dropout: float | int = 0.0layer_norm_eps: float = 1e-06initializer_range: float = 0.02 )
Paramètres
- hidden_size (
int, facultatif, par défaut256) — Dimension des représentations cachées. - num_layers (
int, facultatif, par défaut6) — Nombre de couches cachées dans le décodeur Transformer. - num_queries (
int, facultatif, valeur par défaut : 200) — Nombre de requêtes d'objets. - num_attention_heads (
int, facultatif, valeur par défaut8) — Nombre de têtes d'attention pour chaque couche d'attention du décodeur Transformer. - intermediate_size (
int, facultatif, par défaut2048) — Dimension des représentations du MLP. - dropout (
Union[float, int], facultatif, par défaut0.1) — Le taux appliqué à toutes les couches de dropout. - hidden_act (
str, facultatif, par défautrelu) — La fonction d'activation non linéaire (fonction ou chaîne de caractères) dans le décodeur. Par exemple,"gelu","relu","silu", etc. - hidden_dropout (
Union[float, int], facultatif, valeur par défaut0.0) — Probabilité de dropout pour toutes les couches entièrement connectées des embeddings, de l’encodeur et du pooler. - layer_norm_eps (
float, facultatif, valeur par défaut1e-06) — L'épsilon utilisé par les couches de normalisation de couche. - initializer_range (
float, facultatif, par défaut0.02) — L'écart-type de la truncated_normal_initializer utilisé pour initialiser toutes les matrices de poids.
Il s'agit de la classe de configuration destinée à stocker la configuration d'un Sam3LiteTextModel. Elle est utilisée pour instancier un modèle Sam3 Lite Text en fonction des arguments spécifiés, en définissant l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle du yonigozlan/sam3-litetext-s0
Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.
Sam3LiteTextMaskDecoderConfig
classe transformers.Sam3LiteTextMaskDecoderConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 256num_upsampling_stages: int = 3layer_norm_eps: float = 1e-06dropout: float | int = 0.0num_attention_heads: int = 8initializer_range: float = 0.02 )
Paramètres
- hidden_size (
int, facultatif, par défaut256) — Dimension des représentations cachées. - num_upsampling_stages (
int, facultatif, valeur par défaut : 3) — Nombre d'étapes de remonte en résolution dans le décodeur de pixels (FPN). - layer_norm_eps (
float, facultatif, valeur par défaut1e-06) — L'épsilon utilisé par les couches de normalisation de couche. - dropout (
Union[float, int], facultatif, par défaut0.0) — Le taux appliqué à toutes les couches de dropout. - num_attention_heads (
int, facultatif, valeur par défaut8) — Nombre de têtes d'attention pour chaque couche d'attention du décodeur Transformer. - initializer_range (
float, facultatif, par défaut0.02) — L'écart-type de la truncated_normal_initializer utilisé pour initialiser toutes les matrices de poids.
Il s'agit de la classe de configuration destinée à stocker la configuration d'un Sam3LiteTextModel. Elle est utilisée pour instancier un modèle Sam3 Lite Text en fonction des arguments spécifiés, en définissant l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle du yonigozlan/sam3-litetext-s0
Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.
Sam3LiteTextTextModel
classe transformers.Sam3LiteTextTextModel
< source >( config: Sam3LiteTextTextConfig )
Paramètres
- config (Sam3LiteTextTextConfig) — Classe de configuration du modèle contenant tous les paramètres du modèle. L'initialisation à partir d'un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.
Encodeur de texte MobileCLIP MCT utilisé dans EfficientSAM3 LiteText.
Lorsque config.use_repmixer_blocks est True, la première et la dernière couche sont des modules Sam3LiteTextRepMixerBlock ; les autres sont des couches standard Sam3LiteTextTextEncoderLayer.
Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)
Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sam3LiteTextTextEncoderOutput or tuple(torch.Tensor)
Paramètres
- input_ids (
torch.LongTensorde forme(batch_size, sequence_length), facultatif) — Indices des jetons de la séquence d'entrée dans le vocabulaire. Le bourrage (padding) sera ignoré par défaut.Les indices peuvent être obtenus à l'aide de AutoTokenizer. Consultez PreTrainedTokenizer.encode() et PreTrainedTokenizer.call() pour plus de détails.
- attention_mask (
torch.Tensorde forme(batch_size, sequence_length), facultatif) — Masque pour éviter d'appliquer l'attention aux indices des jetons de bourrage. Les valeurs du masque sont choisies dans[0, 1]:- 1 pour les jetons qui ne sont pas masqués,
- 0 pour les jetons masqués.
Retourne
Sam3LiteTextTextEncoderOutput ou tuple(torch.Tensor)
Un Sam3LiteTextTextEncoderOutput ou un tuple de
torch.Tensor (si return_dict=False est passé ou lorsque config.return_dict=False) comprenant divers
éléments en fonction de la configuration (Sam3LiteTextConfig) et des entrées.
La méthode forward du modèle Sam3LiteTextTextModel redéfinit la méthode spéciale __call__.
Bien que la recette de la passe avant doive être définie dans cette fonction, il faut ensuite appeler l'instance
Moduleplutôt que celle-ci, car la première gère l'exécution des étapes de prétraitement et de post-traitement, tandis que la seconde les ignore silencieusement.
- last_hidden_state (
torch.Tensorde forme(batch_size, sequence_length, hidden_size)) — Séquence complète des états cachés provenant de l'encodeur de texte. - pooler_output (
torch.Tensorde forme(batch_size, projection_dim)) — Sortie agrégée par EOT projetée surprojection_dimvia la projection interne de type CLIP. - hidden_states (
tuple(torch.Tensor), facultatif) — Tuple des états cachés à chaque couche, renvoyé lorsqueoutput_hidden_states=True. - attentions (
tuple(torch.Tensor), facultatif) — Tuple des poids d'attention à chaque couche du transformeur, renvoyé lorsqueoutput_attentions=True.
Sam3LiteTextModel
forward
< source >( pixel_values: typing.Optional[torch.Tensor] = Nonevision_embeds: transformers.models.sam3_lite_text.modeling_sam3_lite_text.Sam3LiteTextVisionEncoderOutput | None = Noneinput_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Nonetext_embeds: typing.Optional[torch.Tensor] = Noneinput_boxes: typing.Optional[torch.Tensor] = Noneinput_boxes_labels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → Sam3LiteTextImageSegmentationOutput or tuple(torch.Tensor)
Paramètres
- pixel_values (
torch.Tensorde forme(batch_size, num_channels, image_size, image_size), facultatif) — Les tenseurs correspondant aux images d'entrée. Les valeurs de pixels peuvent être obtenues à l'aide de Sam3ImageProcessor. Voir Sam3ImageProcessor.call() pour plus de détails (Sam3Processor utilise Sam3ImageProcessor pour le traitement des images). - vision_embeds (
Sam3LiteTextVisionEncoderOutput, facultatif) — Embeddings visuels précalculés. Peut être utilisé pour réutiliser facilement des embeddings visuels. S'il est fourni,pixel_valuesne doit pas être passé. Mutuellement exclusif avecpixel_values. - input_ids (
torch.LongTensorde forme(batch_size, sequence_length), facultatif) — Indices des jetons de la séquence d'entrée dans le vocabulaire. Le bourrage (padding) sera ignoré par défaut.Les indices peuvent être obtenus à l'aide de AutoTokenizer. Consultez PreTrainedTokenizer.encode() et PreTrainedTokenizer.call() pour plus de détails.
- attention_mask (
torch.Tensorde forme(batch_size, sequence_length), facultatif) — Masque pour éviter d'appliquer l'attention aux indices des jetons de bourrage. Les valeurs du masque sont choisies dans[0, 1]:- 1 pour les jetons qui ne sont pas masqués,
- 0 pour les jetons masqués.
- text_embeds (
torch.Tensorde forme(batch_size, sequence_length, hidden_size), facultatif) — Embeddings de texte précalculés. Peut être utilisé pour réutiliser facilement des embeddings de texte. S’il est fourni,input_idsne doit pas être passé. Mutuellement exclusif avecinput_ids. - input_boxes (
torch.Tensorde forme(batch_size, num_boxes, 4), facultatif) — Coordonnées de boîtes normalisées dans l'intervalle [0, 1], au format (cx, cy, w, h). - input_boxes_labels (
torch.LongTensorde forme(batch_size, num_boxes), facultatif) — Étiquettes des boîtes : 1 (positif), 0 (négatif).
Retourne
Sam3LiteTextImageSegmentationOutput ou tuple(torch.Tensor)
Un Sam3LiteTextImageSegmentationOutput ou un tuple de
torch.Tensor (si return_dict=False est passé ou lorsque config.return_dict=False) comprenant divers
éléments en fonction de la configuration (Sam3LiteTextConfig) et des entrées.
La méthode forward du modèle Sam3LiteTextModel redéfinit la méthode spéciale __call__.
Bien que la recette de la passe avant doive être définie dans cette fonction, il faut ensuite appeler l'instance
Moduleplutôt que celle-ci, car la première gère l'exécution des étapes de prétraitement et de post-traitement, tandis que la seconde les ignore silencieusement.
- pred_masks (
torch.Tensorde forme(batch_size, num_queries, height, width)) — Masques de segmentation prédits pour chaque requête. - pred_boxes (
torch.Tensorde forme(batch_size, num_queries, 4)) — Boîtes englobantes prédites au format (x1, y1, x2, y2). - pred_logits (
torch.Tensorde forme(batch_size, num_queries), facultatif) — Scores de confiance de classification pour chaque requête, calculés par produit scalaire entre les caractéristiques des requêtes du décodeur et les caractéristiques du texte. - presence_logits (
torch.Tensorde forme(batch_size, 1), facultatif) — Logits de présence issus du jeton de présence du décodeur DETR (dernière couche uniquement). Ils indiquent si des objets sont présents dans la scène. Ils peuvent être utilisés pour calculer les scores finaux en les multipliant par pred_logits :final_scores = pred_logits.sigmoid() * presence_logits.sigmoid(). - semantic_seg (
torch.Tensorde forme(batch_size, 1, height, width), facultatif) — Sortie de segmentation sémantique. - decoder_hidden_states (
tuple[torch.Tensor], facultatif) — Tuple des états cachés de toutes les couches du décodeur DETR. Chaque tenseur a la forme(batch_size, num_queries, hidden_size). - decoder_reference_boxes (
torch.Tensorde forme(num_layers, batch_size, num_queries, 4), facultatif) — Boîtes de référence issues de toutes les couches du décodeur DETR. - encoder_hidden_states (
tuple[torch.Tensor], facultatif) — Tuple des états cachés de toutes les couches de l'encodeur DETR. - vision_hidden_states (
tuple[torch.Tensor], facultatif) — Tuple des états cachés de toutes les couches de l'encodeur visuel (ViT). - vision_attentions (
tuple[torch.Tensor], facultatif) — Poids d'attention des couches de l'encodeur visuel (ViT). - detr_encoder_attentions (
tuple[torch.Tensor], facultatif) — Poids d'attention des couches encodeur de DETR. - detr_decoder_attentions (
tuple[torch.Tensor], facultatif) — Poids d'attention des couches décodeur de DETR (auto-attention et attention croisée). - mask_decoder_attentions (
tuple[torch.Tensor], facultatif) — Poids d'attention des couches du décodeur de masque.
Exemple :
>>> from PIL import Image
>>> from huggingface_hub.utils import httpx
>>> from io import BytesIO
>>> from transformers import AutoModel, AutoProcessor
>>> model = AutoModel.from_pretrained("facebook/sam3_lite_text")
>>> processor = AutoProcessor.from_pretrained("facebook/sam3_lite_text")
>>> url = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/sam-car.png"
>>> with httpx.stream("GET", url) as response:
... image = Image.open(BytesIO(response.read())).convert("RGB")
>>> text = "car"
>>> inputs = processor(images=image, text=text, return_tensors="pt")
>>> # Get segmentation output
>>> outputs = model(**inputs)
>>> pred_masks = outputs.pred_masks
>>> pred_boxes = outputs.pred_boxesSam3LiteTextPreTrainedModel
classe transformers.Sam3LiteTextPreTrainedModel
< source >( config: PreTrainedConfig*inputs**kwargs )
Paramètres
- config (PreTrainedConfig) — Classe de configuration du modèle contenant tous les paramètres du modèle. L’initialisation à partir d’un fichier de configuration ne charge pas les poids associés au modèle, uniquement la configuration. Consultez la méthode from_pretrained() pour charger les poids du modèle.
Ce modèle hérite de PreTrainedModel. Consultez la documentation de la classe parente pour les méthodes génériques que la bibliothèque implémente pour tous ses modèles (tels que le téléchargement ou l'enregistrement, le redimensionnement des embeddings d'entrée, la taille des têtes, etc.)
Ce modèle est également une sous-classe de torch.nn.Module de PyTorch. Utilisez-le comme un module PyTorch standard et consultez la documentation de PyTorch pour tout ce qui concerne l'utilisation et le comportement généraux.
Valeur factice pour un chemin pointé (par exemple torch.float32) : les chaînes d’accès aux attributs et les appels se comportent comme des décorateurs de pass-through, repr est le chemin pointé, et son utilisation comme classe de base substitue une base type ordinaire (PEP 560 __mro_entries__), de sorte que les vraies sous-classes conservent un métaclasse normal et que inspect.signature lit leur __init__ réel plutôt que celui d’une valeur factice.