# SAM3-LiteText

## Ikhtisar

SAM3-LiteText diusulkan dalam [SAM3-LiteText: An Anatomical Study of the SAM3 Text Encoder for Efficient Vision-Language Segmentation](https://huggingface.co/papers/2602.12173) oleh Chengxi Zeng, Yuxuan Jiang, Ge Gao, Shuai Wang, Duolikun Danier, Bin Zhu, Stevan Rudinac, David Bull, dan Fan Zhang.

SAM3-LiteText adalah varian ringan dari [SAM3](sam3) yang mengganti text encoder SAM3 yang berat (353M parameter) dengan text encoder berbasis MobileCLIP yang ringkas dan dioptimalkan melalui knowledge distillation. Image encoder ViT-H dari SAM3 tetap dipertahankan. Hal ini mengurangi parameter text encoder hingga 88% sambil mempertahankan kinerja segmentasi yang sebanding dengan model aslinya.

Abstrak dari makalah tersebut adalah sebagai berikut:

*Model segmentasi vision-language seperti SAM3 memungkinkan grounding visual yang fleksibel dan dipandu prompt, tetapi mewarisi encoder teks besar dan serbaguna yang awalnya dirancang untuk pemahaman bahasa terbuka. Dalam praktiknya, prompt segmentasi bersifat pendek, terstruktur, dan secara semantik terbatas, sehingga menyebabkan over-provisioning yang signifikan pada kapasitas encoder teks serta overhead komputasi dan memori yang terus-menerus. Dalam makalah ini, kami melakukan analisis anatomis berskala besar terhadap text prompting dalam segmentasi vision-language, mencakup 404.796 prompt nyata di berbagai benchmark. Analisis kami mengungkapkan redundansi yang parah: sebagian besar context window tidak dimanfaatkan secara optimal, penggunaan kosakata sangat jarang, dan embedding teks berada pada manifold berdimensi rendah meskipun representasinya berdimensi tinggi. Didorong oleh temuan ini, kami mengusulkan SAM3-LiteText, sebuah framework encoding teks ringan yang mengganti encoder teks asli SAM3 dengan student MobileCLIP yang kompak dan dioptimalkan melalui knowledge distillation. Eksperimen ekstensif pada benchmark segmentasi gambar dan video menunjukkan bahwa SAM3-LiteText mengurangi parameter encoder teks hingga 88%, secara substansial mengurangi jejak memori statis, sambil mempertahankan kinerja segmentasi yang sebanding dengan model aslinya.*

Arsitektur text encoder didasarkan pada [MobileCLIP](https://huggingface.co/papers/2311.17049) dan hadir dalam tiga varian:

| Varian | Text Encoder | Param teks | Reduksi |
|---|---|---|---|
| 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% |

Model ini disumbangkan oleh [nielsr](https://huggingface.co/nielsr) dan [yonigozlan](https://huggingface.co/yonigozlan). Kode aslinya dapat ditemukan [di sini](https://github.com/SimonZeng7108/efficientsam3/tree/sam3_litetext).

## Penggunaan

SAM3-LiteText adalah pengganti langsung untuk SAM3 dengan encoder teks yang ringan. Model ini menggunakan processor yang sama ([Sam3Processor](/docs/transformers/main/id/model_doc/sam3#transformers.Sam3Processor)) dan mendukung antarmuka prompting yang sama. Silakan merujuk ke [dokumentasi SAM3](sam3) untuk contoh penggunaan terperinci, termasuk teks prompt, box prompt, inferensi batched, dan lainnya.

```python
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[[transformers.Sam3LiteTextConfig]]

#### transformers.Sam3LiteTextConfig[[transformers.Sam3LiteTextConfig]]

```python
transformers.Sam3LiteTextConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, vision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, text_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, geometry_encoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, detr_encoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, detr_decoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, mask_decoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None, initializer_range: float = 0.02)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_lite_text/configuration_sam3_lite_text.py#L145)

**Parameter:**

vision_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`, *opsional*) : Objek config atau dictionary dari vision backbone.

text_config (`Union[dict, ~configuration_utils.PreTrainedConfig]`, *opsional*) : Objek config atau dictionary dari text backbone.

geometry_encoder_config (`dict` atau `Sam3LiteTextGeometryEncoderConfig`, *opsional*) : Konfigurasi untuk encoder geometri.

detr_encoder_config (`dict` atau `Sam3LiteTextDETREncoderConfig`, *opsional*) : Konfigurasi untuk encoder DETR.

detr_decoder_config (`dict` atau `Sam3LiteTextDETRDecoderConfig`, *opsional*) : Konfigurasi untuk decoder DETR.

mask_decoder_config (`dict` atau `Sam3LiteTextMaskDecoderConfig`, *opsional*) : Konfigurasi untuk mask decoder.

initializer_range (`float`, *opsional*, defaultnya `0.02`) : Deviasi standar dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari Sam3LiteTextModel. Kelas ini digunakan untuk membuat instans model Sam3 Lite Text sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari [yonigozlan/sam3-litetext-s0](https://huggingface.co/yonigozlan/sam3-litetext-s0)

Objek konfigurasi mewarisi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) dan dapat digunakan untuk mengontrol keluaran model. Baca dokumentasi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) untuk informasi lebih lanjut.

Contoh:
```python
>>> 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.config
```

## Sam3LiteTextTextConfig[[transformers.Sam3LiteTextTextConfig]]

#### transformers.Sam3LiteTextTextConfig[[transformers.Sam3LiteTextTextConfig]]

```python
transformers.Sam3LiteTextTextConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, vocab_size: int = 49408, hidden_size: int = 512, intermediate_size: int = 2048, projection_dim: int = 512, num_hidden_layers: int = 12, num_attention_heads: int = 8, max_position_embeddings: int = 77, hidden_act: str = 'gelu', layer_norm_eps: float = 1e-05, attention_dropout: float = 0.0, use_repmixer_blocks: bool = True, layer_scale_init_value: float = 1e-05, repmixer_kernel_size: int = 11)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_lite_text/configuration_sam3_lite_text.py#L115)

**Parameter:**

vocab_size (`int`, *opsional*, defaultnya `49408`) : Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan oleh `input_ids`.

hidden_size (`int`, *opsional*, defaultnya `512`) : Dimensi dari representasi tersembunyi.

intermediate_size (`int`, *opsional*, defaultnya `2048`) : Dimensi dari representasi MLP.

projection_dim (`int`, *opsional*, defaultnya `512`) : Dimensi dari lapisan proyeksi teks dan visi.

num_hidden_layers (`int`, *opsional*, defaultnya `12`) : Jumlah lapisan tersembunyi dalam decoder Transformer.

num_attention_heads (`int`, *opsional*, defaultnya `8`) : Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder Transformer.

max_position_embeddings (`int`, *opsional*, defaultnya `77`) : Panjang maksimum urutan yang mungkin digunakan dengan model ini.

hidden_act (`str`, *opsional*, defaultnya `gelu`) : Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, `"gelu"`, `"relu"`, `"silu"`, dan sebagainya.

layer_norm_eps (`float`, *opsional*, defaultnya `1e-05`) : Epsilon yang digunakan oleh lapisan normalisasi lapisan.

attention_dropout (`float`, *opsional*, defaultnya `0.0`) : Rasio dropout untuk probabilitas perhatian.

use_repmixer_blocks (`bool`, *opsional*, defaultnya `True`) : Apakah akan menggunakan blok RepMixer (gaya MobileCLIP) untuk lapisan encoder pertama dan terakhir. Ketika `False`, semua lapisan adalah lapisan encoder Transformer standar.

layer_scale_init_value (`float`, *opsional*, defaultnya `1e-5`) : Nilai awal untuk parameter layer-scale yang dapat dipelajari di blok RepMixer (cabang residual).

repmixer_kernel_size (`int`, *opsional*, defaultnya `11`) : Ukuran kernel untuk konvolusi depthwise di blok RepMixer (jalur pencampur token dan feed-forward konvolusional).

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari Sam3LiteTextModel. Kelas ini digunakan untuk membuat instans model Sam3 Lite Text sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari [yonigozlan/sam3-litetext-s0](https://huggingface.co/yonigozlan/sam3-litetext-s0)

Objek konfigurasi mewarisi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) dan dapat digunakan untuk mengontrol keluaran model. Baca dokumentasi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) untuk informasi lebih lanjut.

## Sam3LiteTextGeometryEncoderConfig[[transformers.Sam3LiteTextGeometryEncoderConfig]]

#### transformers.Sam3LiteTextGeometryEncoderConfig[[transformers.Sam3LiteTextGeometryEncoderConfig]]

```python
transformers.Sam3LiteTextGeometryEncoderConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, hidden_size: int = 256, num_layers: int = 3, num_attention_heads: int = 8, intermediate_size: int = 2048, dropout: float | int = 0.1, hidden_act: str = 'relu', hidden_dropout: float | int = 0.0, layer_norm_eps: float = 1e-06, roi_size: int = 7, initializer_range: float = 0.02)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_lite_text/configuration_sam3_lite_text.py#L30)

**Parameter:**

hidden_size (`int`, *opsional*, defaultnya `256`) : Dimensi dari representasi tersembunyi.

num_layers (`int`, *opsional*, defaultnya `3`) : Jumlah lapisan tersembunyi dalam decoder Transformer.

num_attention_heads (`int`, *opsional*, defaultnya `8`) : Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder Transformer.

intermediate_size (`int`, *opsional*, defaultnya `2048`) : Dimensi dari representasi MLP.

dropout (`Union[float, int]`, *opsional*, defaultnya `0.1`) : Rasio untuk semua lapisan dropout.

hidden_act (`str`, *opsional*, defaultnya `relu`) : Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, `"gelu"`, `"relu"`, `"silu"`, dan sebagainya.

hidden_dropout (`Union[float, int]`, *opsional*, defaultnya `0.0`) : Probabilitas dropout untuk semua lapisan fully connected di embeddings, encoder, dan pooler.

layer_norm_eps (`float`, *opsional*, defaultnya `1e-06`) : Epsilon yang digunakan oleh lapisan normalisasi lapisan.

roi_size (`int`, *opsional*, defaultnya 7) : ukuran ROI untuk operasi box pooling.

initializer_range (`float`, *opsional*, defaultnya `0.02`) : Deviasi standar dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari Sam3LiteTextModel. Kelas ini digunakan untuk membuat instans model Sam3 Lite Text sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari [yonigozlan/sam3-litetext-s0](https://huggingface.co/yonigozlan/sam3-litetext-s0)

Objek konfigurasi mewarisi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) dan dapat digunakan untuk mengontrol keluaran model. Baca dokumentasi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) untuk informasi lebih lanjut.

## Sam3LiteTextDETREncoderConfig[[transformers.Sam3LiteTextDETREncoderConfig]]

#### transformers.Sam3LiteTextDETREncoderConfig[[transformers.Sam3LiteTextDETREncoderConfig]]

```python
transformers.Sam3LiteTextDETREncoderConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, hidden_size: int = 256, num_layers: int = 6, num_attention_heads: int = 8, intermediate_size: int = 2048, dropout: float | int = 0.1, hidden_act: str = 'relu', hidden_dropout: float | int = 0.0, layer_norm_eps: float = 1e-06, initializer_range: float = 0.02)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_lite_text/configuration_sam3_lite_text.py#L52)

**Parameter:**

hidden_size (`int`, *opsional*, defaultnya `256`) : Dimensi dari representasi tersembunyi.

num_layers (`int`, *opsional*, defaultnya `6`) : Jumlah lapisan tersembunyi dalam decoder Transformer.

num_attention_heads (`int`, *opsional*, defaultnya `8`) : Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder Transformer.

intermediate_size (`int`, *opsional*, defaultnya `2048`) : Dimensi dari representasi MLP.

dropout (`Union[float, int]`, *opsional*, defaultnya `0.1`) : Rasio untuk semua lapisan dropout.

hidden_act (`str`, *opsional*, defaultnya `relu`) : Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, `"gelu"`, `"relu"`, `"silu"`, dan sebagainya.

hidden_dropout (`float`, *opsional*, default 0.0) : Probabilitas dropout untuk hidden states.

layer_norm_eps (`float`, *opsional*, defaultnya `1e-06`) : Epsilon yang digunakan oleh lapisan normalisasi lapisan.

initializer_range (`float`, *opsional*, defaultnya `0.02`) : Deviasi standar dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari Sam3LiteTextModel. Kelas ini digunakan untuk membuat instans model Sam3 Lite Text sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari [yonigozlan/sam3-litetext-s0](https://huggingface.co/yonigozlan/sam3-litetext-s0)

Objek konfigurasi mewarisi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) dan dapat digunakan untuk mengontrol keluaran model. Baca dokumentasi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) untuk informasi lebih lanjut.

## Sam3LiteTextDETRDecoderConfig[[transformers.Sam3LiteTextDETRDecoderConfig]]

#### transformers.Sam3LiteTextDETRDecoderConfig[[transformers.Sam3LiteTextDETRDecoderConfig]]

```python
transformers.Sam3LiteTextDETRDecoderConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, hidden_size: int = 256, num_layers: int = 6, num_queries: int = 200, num_attention_heads: int = 8, intermediate_size: int = 2048, dropout: float | int = 0.1, hidden_act: str = 'relu', hidden_dropout: float | int = 0.0, layer_norm_eps: float = 1e-06, initializer_range: float = 0.02)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_lite_text/configuration_sam3_lite_text.py#L74)

**Parameter:**

hidden_size (`int`, *opsional*, defaultnya `256`) : Dimensi dari representasi tersembunyi.

num_layers (`int`, *opsional*, defaultnya `6`) : Jumlah lapisan tersembunyi dalam decoder Transformer.

num_queries (`int`, *opsional*, default 200) : Jumlah query objek.

num_attention_heads (`int`, *opsional*, defaultnya `8`) : Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder Transformer.

intermediate_size (`int`, *opsional*, defaultnya `2048`) : Dimensi dari representasi MLP.

dropout (`Union[float, int]`, *opsional*, defaultnya `0.1`) : Rasio untuk semua lapisan dropout.

hidden_act (`str`, *opsional*, defaultnya `relu`) : Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya, `"gelu"`, `"relu"`, `"silu"`, dan sebagainya.

hidden_dropout (`Union[float, int]`, *opsional*, defaultnya `0.0`) : Probabilitas dropout untuk semua lapisan fully connected di embeddings, encoder, dan pooler.

layer_norm_eps (`float`, *opsional*, defaultnya `1e-06`) : Epsilon yang digunakan oleh lapisan normalisasi lapisan.

initializer_range (`float`, *opsional*, defaultnya `0.02`) : Deviasi standar dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari Sam3LiteTextModel. Kelas ini digunakan untuk membuat instans model Sam3 Lite Text sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari [yonigozlan/sam3-litetext-s0](https://huggingface.co/yonigozlan/sam3-litetext-s0)

Objek konfigurasi mewarisi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) dan dapat digunakan untuk mengontrol keluaran model. Baca dokumentasi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) untuk informasi lebih lanjut.

## Sam3LiteTextMaskDecoderConfig[[transformers.Sam3LiteTextMaskDecoderConfig]]

#### transformers.Sam3LiteTextMaskDecoderConfig[[transformers.Sam3LiteTextMaskDecoderConfig]]

```python
transformers.Sam3LiteTextMaskDecoderConfig(transformers_version: str | None = None, architectures: list[str] | None = None, output_hidden_states: bool | None = False, return_dict: bool | None = True, dtype: str | torch.dtype | None = None, chunk_size_feed_forward: int = 0, is_encoder_decoder: bool = False, id2label: dict[int, str] | dict[str, str] | None = None, label2id: dict[str, int] | dict[str, str] | None = None, problem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = None, hidden_size: int = 256, num_upsampling_stages: int = 3, layer_norm_eps: float = 1e-06, dropout: float | int = 0.0, num_attention_heads: int = 8, initializer_range: float = 0.02)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_lite_text/configuration_sam3_lite_text.py#L97)

**Parameter:**

hidden_size (`int`, *opsional*, defaultnya `256`) : Dimensi dari representasi tersembunyi.

num_upsampling_stages (`int`, *opsional*, default 3) : Jumlah tahap upsampling dalam pixel decoder (FPN).

layer_norm_eps (`float`, *opsional*, defaultnya `1e-06`) : Epsilon yang digunakan oleh lapisan normalisasi lapisan.

dropout (`Union[float, int]`, *opsional*, defaultnya `0.0`) : Rasio untuk semua lapisan dropout.

num_attention_heads (`int`, *opsional*, defaultnya `8`) : Jumlah kepala perhatian untuk setiap lapisan perhatian dalam decoder Transformer.

initializer_range (`float`, *opsional*, defaultnya `0.02`) : Deviasi standar dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot.

Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari Sam3LiteTextModel. Kelas ini digunakan untuk membuat instans model Sam3 Lite Text sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Membuat instans konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari [yonigozlan/sam3-litetext-s0](https://huggingface.co/yonigozlan/sam3-litetext-s0)

Objek konfigurasi mewarisi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) dan dapat digunakan untuk mengontrol keluaran model. Baca dokumentasi dari [PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig) untuk informasi lebih lanjut.

## Sam3LiteTextTextModel[[transformers.Sam3LiteTextTextModel]]

#### transformers.Sam3LiteTextTextModel[[transformers.Sam3LiteTextTextModel]]

```python
transformers.Sam3LiteTextTextModel(config: Sam3LiteTextTextConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_lite_text/modeling_sam3_lite_text.py#L371)

**Parameter:**

config ([Sam3LiteTextTextConfig](/docs/transformers/main/id/model_doc/sam3_lite_text#transformers.Sam3LiteTextTextConfig)) : Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode [from_pretrained()](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel.from_pretrained) untuk memuat bobot model.

MobileCLIP MCT text encoder yang digunakan dalam EfficientSAM3 LiteText.

Ketika `config.use_repmixer_blocks` bernilai `True`, lapisan pertama dan terakhir adalah modul `Sam3LiteTextRepMixerBlock`; sisanya adalah lapisan standar `Sam3LiteTextTextEncoderLayer`.

Model ini mewarisi dari [PreTrainedModel](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka ini untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran input embeddings, memangkas heads, dll.)

Model ini juga merupakan subclass dari [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

#### forward[[transformers.Sam3LiteTextTextModel.forward]]

```python
forward(input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_lite_text/modeling_sam3_lite_text.py#L393)

**Parameter:**

input_ids (`torch.LongTensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default. Indeks dapat diperoleh menggunakan [AutoTokenizer](/docs/transformers/main/id/model_doc/auto#transformers.AutoTokenizer). Lihat [PreTrainedTokenizer.encode()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) dan [PreTrainedTokenizer.__call__()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) untuk detailnya. [Apa itu input IDs?](../glossary#input-ids)

attention_mask (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Mask untuk menghindari pelaksanaan attention pada indeks token padding. Nilai mask dipilih dalam `[0, 1]`:  - 1 untuk token yang **tidak di-mask**, - 0 untuk token yang **di-mask**.  [Apa itu attention masks?](../glossary#attention-mask)

**Mengembalikan:** `Sam3LiteTextTextEncoderOutput` atau `tuple(torch.Tensor)`

Sebuah `Sam3LiteTextTextEncoderOutput` atau tuple dari `torch.Tensor` (jika `return_dict=False` diteruskan atau ketika `config.return_dict=False`) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([Sam3LiteTextConfig](/docs/transformers/main/id/model_doc/sam3_lite_text#transformers.Sam3LiteTextConfig)) dan input.

Metode forward dari [Sam3LiteTextTextModel](/docs/transformers/main/id/model_doc/sam3_lite_text#transformers.Sam3LiteTextTextModel) menimpa metode khusus `__call__`.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance `Module` setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

- **last_hidden_state** (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, hidden_size)`) -- Urutan lengkap dari hidden states yang berasal dari text encoder.
- **pooler_output** (`torch.Tensor` dengan bentuk `(batch_size, projection_dim)`) -- Output yang dipooling EOT dan diproyeksikan ke `projection_dim` melalui proyeksi internal bergaya CLIP.
- **hidden_states** (`tuple(torch.Tensor)`, *opsional*) -- Tuple dari hidden states pada setiap layer, dikembalikan ketika `output_hidden_states=True`.
- **attentions** (`tuple(torch.Tensor)`, *opsional*) -- Tuple dari bobot perhatian pada setiap lapisan transformer, dikembalikan ketika `output_attentions=True`.

## Sam3LiteTextModel[[transformers.Sam3LiteTextModel]]

#### transformers.Sam3LiteTextModel[[transformers.Sam3LiteTextModel]]

```python
transformers.Sam3LiteTextModel(config: Sam3LiteTextConfig)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_lite_text/modeling_sam3_lite_text.py#L1922)

#### forward[[transformers.Sam3LiteTextModel.forward]]

```python
forward(pixel_values: typing.Optional[torch.Tensor] = None, vision_embeds: transformers.models.sam3_lite_text.modeling_sam3_lite_text.Sam3LiteTextVisionEncoderOutput | None = None, input_ids: typing.Optional[torch.LongTensor] = None, attention_mask: typing.Optional[torch.Tensor] = None, text_embeds: typing.Optional[torch.Tensor] = None, input_boxes: typing.Optional[torch.Tensor] = None, input_boxes_labels: typing.Optional[torch.LongTensor] = None, **kwargs: *<class 'transformers.utils.generic.TransformersKwargs'>)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_lite_text/modeling_sam3_lite_text.py#L2038)

**Parameter:**

pixel_values (`torch.Tensor` dengan bentuk `(batch_size, num_channels, image_size, image_size)`, *opsional*) : Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan [Sam3ImageProcessor](/docs/transformers/main/id/model_doc/sam3#transformers.Sam3ImageProcessor). Lihat [Sam3ImageProcessor.__call__()](/docs/transformers/main/id/model_doc/molmo2#transformers.Molmo2ImageProcessor.__call__) untuk detailnya ([Sam3Processor](/docs/transformers/main/id/model_doc/sam3#transformers.Sam3Processor) menggunakan [Sam3ImageProcessor](/docs/transformers/main/id/model_doc/sam3#transformers.Sam3ImageProcessor) untuk memproses gambar).

vision_embeds (`Sam3LiteTextVisionEncoderOutput`, *opsional*) : Embedding visual yang sudah dihitung sebelumnya. Dapat digunakan untuk dengan mudah menggunakan kembali embedding visual. Jika diberikan, `pixel_values` tidak boleh diteruskan. Saling eksklusif dengan `pixel_values`.

input_ids (`torch.LongTensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default. Indeks dapat diperoleh menggunakan [AutoTokenizer](/docs/transformers/main/id/model_doc/auto#transformers.AutoTokenizer). Lihat [PreTrainedTokenizer.encode()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.encode) dan [PreTrainedTokenizer.__call__()](/docs/transformers/main/id/internal/tokenization_utils#transformers.PreTrainedTokenizerBase.__call__) untuk detailnya. [Apa itu input IDs?](../glossary#input-ids)

attention_mask (`torch.Tensor` dengan bentuk `(batch_size, sequence_length)`, *opsional*) : Mask untuk menghindari pelaksanaan attention pada indeks token padding. Nilai mask dipilih dalam `[0, 1]`:  - 1 untuk token yang **tidak di-mask**, - 0 untuk token yang **di-mask**.  [Apa itu attention masks?](../glossary#attention-mask)

text_embeds (`torch.Tensor` dengan bentuk `(batch_size, sequence_length, hidden_size)`, *opsional*) : Embedding teks yang sudah dihitung sebelumnya. Dapat digunakan untuk dengan mudah menggunakan kembali embedding teks. Jika disediakan, `input_ids` tidak boleh diteruskan. Saling eksklusif dengan `input_ids`.

input_boxes (`torch.Tensor` dengan bentuk `(batch_size, num_boxes, 4)`, *opsional*) : Koordinat kotak ternormalisasi dalam rentang [0, 1], dalam format (cx, cy, w, h).

input_boxes_labels (`torch.LongTensor` dengan bentuk `(batch_size, num_boxes)`, *opsional*) : Label untuk kotak: 1 (positif), 0 (negatif).

**Mengembalikan:** `Sam3LiteTextImageSegmentationOutput` atau `tuple(torch.Tensor)`

Sebuah `Sam3LiteTextImageSegmentationOutput` atau tuple dari `torch.Tensor` (jika `return_dict=False` diteruskan atau ketika `config.return_dict=False`) yang terdiri dari berbagai elemen tergantung pada konfigurasi ([Sam3LiteTextConfig](/docs/transformers/main/id/model_doc/sam3_lite_text#transformers.Sam3LiteTextConfig)) dan input.

Metode forward dari [Sam3LiteTextModel](/docs/transformers/main/id/model_doc/sam3_lite_text#transformers.Sam3LiteTextModel) menimpa metode khusus `__call__`.

Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance `Module` setelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.

- **pred_masks** (`torch.Tensor` dengan bentuk `(batch_size, num_queries, height, width)`) -- Mask segmentasi yang diprediksi untuk setiap query.
- **pred_boxes** (`torch.Tensor` dengan bentuk `(batch_size, num_queries, 4)`) -- Kotak pembatas yang diprediksi dalam format (x1, y1, x2, y2).
- **pred_logits** (`torch.Tensor` dengan bentuk `(batch_size, num_queries)`, *opsional*) -- Skor kepercayaan klasifikasi untuk setiap query, dihitung melalui perkalian titik antara fitur query decoder dan fitur teks.
- **presence_logits** (`torch.Tensor` dengan bentuk `(batch_size, 1)`, *opsional*) -- Presence logits dari presence token decoder DETR (hanya lapisan terakhir). Nilai ini menunjukkan apakah ada objek yang hadir dalam adegan. Dapat digunakan untuk menghitung skor akhir dengan mengalikan dengan pred_logits: `final_scores = pred_logits.sigmoid() * presence_logits.sigmoid()`.
- **semantic_seg** (`torch.Tensor` dengan bentuk `(batch_size, 1, height, width)`, *opsional*) -- Output segmentasi semantik.
- **decoder_hidden_states** (`tuple[torch.Tensor]`, *opsional*) -- Tuple dari hidden states dari semua lapisan decoder DETR. Setiap tensor memiliki bentuk `(batch_size, num_queries, hidden_size)`.
- **decoder_reference_boxes** (`torch.Tensor` dengan bentuk `(num_layers, batch_size, num_queries, 4)`, *opsional*) -- Kotak referensi dari semua lapisan decoder DETR.
- **encoder_hidden_states** (`tuple[torch.Tensor]`, *opsional*) -- Tuple dari hidden states dari semua lapisan encoder DETR.
- **vision_hidden_states** (`tuple[torch.Tensor]`, *opsional*) -- Tuple dari hidden states dari semua lapisan vision encoder (ViT).
- **vision_attentions** (`tuple[torch.Tensor]`, *opsional*) -- Bobot perhatian dari lapisan vision encoder (ViT).
- **detr_encoder_attentions** (`tuple[torch.Tensor]`, *opsional*) -- Bobot perhatian dari lapisan encoder DETR.
- **detr_decoder_attentions** (`tuple[torch.Tensor]`, *opsional*) -- Bobot perhatian dari lapisan decoder DETR (self-attention dan cross-attention).
- **mask_decoder_attentions** (`tuple[torch.Tensor]`, *opsional*) -- Bobot perhatian dari lapisan mask decoder.

Contoh:

```python
>>> 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_boxes
```

## Sam3LiteTextPreTrainedModel[[transformers.Sam3LiteTextPreTrainedModel]]

#### transformers.Sam3LiteTextPreTrainedModel[[transformers.Sam3LiteTextPreTrainedModel]]

```python
transformers.Sam3LiteTextPreTrainedModel(config: PreTrainedConfig, *inputs, **kwargs)
```

[Sumber](https://github.com/huggingface/transformers/blob/main/src/transformers/models/sam3_lite_text/modeling_sam3_lite_text.py#L343)

**Parameter:**

config ([PreTrainedConfig](/docs/transformers/main/id/main_classes/configuration#transformers.PreTrainedConfig)) : Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode [from_pretrained()](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel.from_pretrained) untuk memuat bobot model.

Model ini mewarisi dari [PreTrainedModel](/docs/transformers/main/id/main_classes/model#transformers.PreTrainedModel). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka ini untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran input embeddings, memangkas heads, dll.)

Model ini juga merupakan subclass dari [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) PyTorch. Gunakan sebagai PyTorch Module biasa dan merujuk ke dokumentasi PyTorch untuk semua hal yang berkaitan dengan penggunaan dan perilaku umum.

#### forward[[transformers.Sam3LiteTextPreTrainedModel.forward]]

```python
forward(*args, **kwargs)
```

Nilai mock untuk jalur bertitik (misalnya `torch.float32`): rantai akses atribut, panggilan berperilaku sebagai dekorator pass-through, `repr` adalah jalur bertitik, dan penggunaannya sebagai kelas dasar menggantikan kelas dasar `type` polos (PEP 560 `__mro_entries__`), sehingga subclass asli tetap mempertahankan metaclass normal dan `inspect.signature` membaca `__init__` asli mereka, bukan milik mock.

