Transformers documentation
GraniteDocling
Model ini disumbangkan ke Hugging Face Transformers pada 2026-11-12.
GraniteDocling
GraniteDocling adalah model vision-language untuk konversi dokumen. Diberikan gambar halaman, model ini menghasilkan DocLang (<doclang>): elemen tata letak dalam urutan baca beserta bounding box-nya, serta teks, tabel, rumus, dan kode yang dikandungnya. DocLang adalah markup; Docling (docling-core) memparse prediksi menjadi dokumen yang dapat diekspor ke Markdown, HTML, JSON, dan format lainnya.
Halaman dipecah menjadi ubin berukuran 512x512 piksel yang disusun pada grid yang paling sesuai dengan rasio aspeknya, ditambah thumbnail seluruh halaman jika terdapat lebih dari satu ubin. Vision encoder menyematkan setiap ubin, dan konektor pixel-shuffle memetakan vision patches ke image tokens. State vision encoder antara juga diproyeksikan dan ditambahkan ke image tokens setelah lapisan decoder pertama. Decoder teks padat bergaya Granite kemudian menghasilkan DocLang.
GraniteDocling dirilis sebagai dua model. Model 500M menggunakan 64 token gambar per tile dan dapat beralih ke 256 untuk halaman padat; sebuah router memilih hal itu per halaman. Model 2B menggunakan rasio pixel-shuffle 2, yang setara dengan 256 token gambar per tile, dengan kepadatan yang sama dengan jalur halus (fine path) 500M.
Proyek Docling membuat GraniteDocling. Kedua model dipublikasikan di organisasi IBM Granite.
GraniteDocling memiliki arsitektur yang berbeda dari granite-docling-258M, yang tetap dimuat melalui Idefics3.
Model ini disumbangkan oleh tim Docling.
Klik pada model GraniteDocling di bilah sisi kanan untuk melihat lebih banyak contoh cara menerapkan GraniteDocling pada berbagai tugas konversi dokumen.
Tips penggunaan
- Prompt model melalui chat template.
<doclang>mengonversi seluruh halaman. Tambahkan daftar kurung siku untuk meminta subset elemen, misalnya<doclang> [<ocr>]atau<doclang> [<ocr>, <layout>, <picture>]. - Gunakan
skip_special_tokens=Falsesaat melakukan decode jika Anda akan memparse string sebagai DocLang. Token markup khusus akan dihapus jika tidak. - Pada model 500M, gunakan
fine_route=Trueuntuk halaman padat (teks kecil, tabel panjang, teks multi-kolom). Jalur tersebut menggunakan empat kali lebih banyak token gambar, sehingga prompt menjadi lebih panjang dan inferensi lebih lambat. Model 2B sudah menggunakan kepadatan token tersebut dan tidak memiliki jalur kedua, sehinggafine_route=Trueakan memicu error untuk model ini. - Model 500M mencakup density router, yang memutuskan hal tersebut untuk Anda: predict_fine_route() mengembalikan halaman mana dari batch yang memerlukan jalur fine.
Contoh di bawah ini mengonversi halaman 1 dari Docling Technical Report (arXiv:2408.09869). Ubah hanya teks prompt untuk beralih tugas; model mengembalikan DocLang yang difilter ke elemen yang diminta.
| Tugas | Prompt |
|---|---|
| Seluruh halaman | <doclang> |
| OCR | <doclang> [<ocr>] |
| Tata letak | <doclang> [<layout>] |
| Tabel | <doclang> [<table>] |
| Rumus | <doclang> [<formula>] |
| Kode | <doclang> [<code>] |
| Grafik | <doclang> [<chart>] |
| Gambar | <doclang> [<picture>] |
| Kombinasi | <doclang> [<ocr>, <layout>, <picture>] |
Seluruh halaman
<doclang> mengonversi seluruh halaman: tata letak, teks, tabel, rumus, kode, grafik, dan gambar.
from transformers import pipeline
pipe = pipeline(
task="image-text-to-text",
model="ibm-granite/granite-for-docling-500m",
)
messages = [
{
"role": "user",
"content": [
{"type": "image", "url": "https://huggingface.co/ibm-granite/granite-for-docling-500m/resolve/main/docling_technical_report_p1.png"},
{"type": "text", "text": "<doclang>"},
],
}
]
pipe(text=messages, max_new_tokens=4096, return_full_text=False, skip_special_tokens=False)from transformers import AutoProcessor, AutoModelForImageTextToText
model_id = "ibm-granite/granite-for-docling-500m"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(model_id, device_map="auto")
conversation = [
{
"role": "user",
"content": [
{"type": "image", "url": "https://huggingface.co/ibm-granite/granite-for-docling-500m/resolve/main/docling_technical_report_p1.png"},
{"type": "text", "text": "<doclang>"},
],
},
]
inputs = processor.apply_chat_template(
conversation,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
output = model.generate(**inputs, max_new_tokens=4096)
# Keep the special tokens: they are the DocLang markup. Drop the end-of-text token that closes the generation.
doclang = processor.decode(output[0, inputs["input_ids"].shape[1] :], skip_special_tokens=False)
doclang = doclang.removesuffix(processor.tokenizer.eos_token).strip()
print(doclang)Untuk mengonversi hanya beberapa elemen, ubah prompt teks menjadi salah satu dari tabel di atas, misalnya <doclang> [<ocr>, <layout>, <picture>]. Hal lainnya tetap sama.
Halaman padat: jalur yang tepat
Jalur konektor halus menghabiskan empat kali lebih banyak token gambar per ubin, yang membantu pada teks cetak kecil, tabel panjang, dan teks multi-kolom. Pilih jalur ini per panggilan dengan fine_route=True:
inputs = processor.apply_chat_template(
conversation,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
processor_kwargs={"fine_route": True},
).to(model.device)
output = model.generate(**inputs, max_new_tokens=4096)Model 500M (config.density_router_hidden_size diset) memprediksi halaman mana yang memerlukan jalur halus dari token gambar default-nya:
needs_fine = model.model.predict_fine_route(inputs["pixel_values"], inputs["pixel_attention_mask"]) # (batch_size,) bool
if needs_fine[0]:
inputs = processor.apply_chat_template(
conversation,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
processor_kwargs={"fine_route": True},
).to(model.device)
output = model.generate(**inputs, max_new_tokens=4096)Inferensi berbatch
Halaman memiliki grid ubin yang berbeda, sehingga pixel_values di-pad hingga jumlah ubin terbesar dalam batch. pixel_attention_mask menandai ubin yang sebenarnya dan model membuang padding.
pages = [
"https://huggingface.co/ibm-granite/granite-for-docling-500m/resolve/main/docling_technical_report_p1.png",
"https://huggingface.co/ibm-granite/granite-for-docling-500m/resolve/main/docling_technical_report_p1.png",
]
conversations = [
[{"role": "user", "content": [{"type": "image", "url": url}, {"type": "text", "text": "<doclang>"}]}]
for url in pages
]
inputs = processor.apply_chat_template(
conversations,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
processor_kwargs={"padding": True},
).to(model.device)
output = model.generate(**inputs, max_new_tokens=4096)
for row in output:
doclang = processor.decode(row[inputs["input_ids"].shape[1] :], skip_special_tokens=False)
print(doclang.removesuffix(processor.tokenizer.eos_token).strip())Tambahkan "fine_route": True ke processor_kwargs untuk merutekan seluruh batch melalui jalur fine; processor kemudian mengembalikan tile_fine_mask. Satu batch mengambil satu jalur, jadi jalankan halaman yang dikirim router ke jalur fine sebagai batch tersendiri.
Ekspor DocLang dengan Docling
docling-core mem-parsing string doclang dari contoh AutoModel menjadi DoclingDocument, yang dapat Anda serialisasi menjadi format apa pun yang Anda butuhkan.
from pathlib import Path
from docling_core.transforms.deserializer.doclang import DocLangDocDeserializer
document = DocLangDocDeserializer().deserialize_str(doclang)
print(document.export_to_markdown())
print(document.export_to_html())
print(document.export_to_dict())
document.save_as_markdown(Path("page.md"))
document.save_as_html(Path("page.html"))
document.save_as_json(Path("page.json"))Spesifikasi DocLang dan toolkit doclang (validate / pack) tersedia di doclang-project/doclang. Deserializer dan exporter DoclingDocument tersedia di docling-core.
Catatan
- Satu halaman penuh itu panjang: alokasikan
max_new_tokensdalam ribuan, selain itu DocLang akan terpotong secara diam-diam. - Tiles berukuran 512x512, disusun pada grid yang paling sesuai dengan rasio aspek halaman, dibatasi oleh
max_patches(default 32) dan 16 tiles per sisi. Halaman yang muat dalam satu tile tidak mendapatkan thumbnail. - Checkpoint dapat membawa aturan penyebaran dalam konfigurasi pemroses gambarnya:
dense_max_patchesubin alih-alihmax_patchesuntuk halaman lanskap lebar (dense_min_aspect< lebar/tinggi <=dense_max_aspect) yang akan diperkecil di bawahdense_max_scaleoleh gridmax_patches. Halaman koran yang tersambung adalah kasus yang umum. Aturan ini nonaktif secara default (dense_max_patches=0) dan harus sesuai dengan yang digunakan saat checkpoint dilatih. - Pada model 500M, jalur fine mengalikan empat jumlah token gambar per tile, dari 64 menjadi 256. Gunakan jalur ini hanya untuk halaman padat, atau biarkan router memutuskannya dengan predict_fine_route(). Model 2B menggunakan 256 token gambar per tile di seluruhnya (rasio pixel-shuffle 2).
GraniteDoclingConfig
kelas transformers.GraniteDoclingConfig
< 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 = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonevision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneimage_token_id: int = 100337tie_word_embeddings: bool = Trueuse_cache: bool = Truepad_token_id: int | None = 100256density_router_hidden_size: int | None = Nonedensity_router_threshold: float = 0.4density_router_loss_weight: float = 0.1 )
Parameter
- text_config (
Union[dict, ~configuration_utils.PreTrainedConfig], opsional) — Objek config atau dictionary dari text backbone. - vision_config (
Union[dict, ~configuration_utils.PreTrainedConfig], opsional) — Objek config atau dictionary dari vision backbone. - image_token_id (
int, opsional, default100337) — Indeks token gambar yang digunakan sebagai placeholder untuk gambar input. - tie_word_embeddings (
bool, opsional, defaultTrue) — Apakah akan mengikat bobot embedding sesuai dengan pemetaantied_weights_keysmodel. - use_cache (
bool, opsional, defaultnyaTrue) — Apakah model harus mengembalikan perhatian kunci/nilai terakhir (tidak digunakan oleh semua model). Hanya relevan jikaconfig.is_decoder=Trueatau ketika model adalah model generatif yang hanya decoder. - pad_token_id (
int, opsional, default100256) — ID token yang digunakan untuk padding dalam kosakata. - density_router_hidden_size (
int, opsional) — Ukuran tersembunyi dari density router, yang memprediksi dari fitur encoder visual apakah sebuah halaman memerlukan jalur konektor halus. Tidak ada router yang dibangun jikaNone. - density_router_threshold (
float, opsional, default 0.4) — Probabilitas di mana router densitas memilih jalur konektor halus. - density_router_loss_weight (
float, opsional, default 0.1) — Bobot dari density router loss ketikarouter_labelsdiberikan.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari GraniteDoclingModel. Kelas ini digunakan untuk menginstansiasi model Granite Docling sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Menginstansiasi konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari ibm-granite/granite-for-docling-500m
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
GraniteDoclingTextConfig
kelas transformers.GraniteDoclingTextConfig
< 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 = 133800hidden_size: int = 1024intermediate_size: int = 2048num_hidden_layers: int = 28num_attention_heads: int = 16num_key_value_heads: int | None = 4hidden_act: str = 'silu'max_position_embeddings: int = 32768initializer_range: float = 0.02rms_norm_eps: float = 1e-05use_cache: bool = Truepad_token_id: int | None = 100256bos_token_id: int | None = 100257eos_token_id: int | list[int] | None = 100257tie_word_embeddings: bool = Truerope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneattention_bias: bool = Falseattention_dropout: float | int = 0.0mlp_bias: bool = Falseembedding_multiplier: float | int = 12.0logits_scaling: float | int = 4.0residual_multiplier: float | int = 0.263attention_multiplier: float | int = 0.015625 )
Parameter
- vocab_size (
int, opsional, default133800) — Ukuran kosakata model. Menentukan jumlah token berbeda yang dapat direpresentasikan olehinput_ids. - hidden_size (
int, opsional, default1024) — Dimensi dari representasi tersembunyi. - intermediate_size (
int, opsional, default2048) — Dimensi representasi MLP. - num_hidden_layers (
int, opsional, default28) — Jumlah lapisan tersembunyi dalam decoder Transformer. - num_attention_heads (
int, opsional, default16) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer. - num_key_value_heads (
int, opsional, default4) — Ini adalah jumlah key_value heads yang harus digunakan untuk mengimplementasikan Grouped Query Attention. Jikanum_key_value_heads=num_attention_heads, model akan menggunakan Multi Head Attention (MHA), jikanum_key_value_heads=1model akan menggunakan Multi Query Attention (MQA), selain itu GQA yang digunakan. Saat mengkonversi checkpoint multi-head menjadi checkpoint GQA, setiap group key dan value head harus dibangun dengan meanpooling semua head asli di dalam group tersebut. Untuk detail lebih lanjut, lihat paper ini. Jika tidak ditentukan, akan default kenum_attention_heads. - hidden_act (
str, opsional, defaultnyasilu) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - max_position_embeddings (
int, opsional, default32768) — Panjang maksimum urutan yang mungkin digunakan dengan model ini. - initializer_range (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - rms_norm_eps (
float, opsional, defaultnya1e-05) — Epsilon yang digunakan oleh lapisan normalisasi rms. - use_cache (
bool, opsional, defaultnyaTrue) — Apakah model harus mengembalikan perhatian kunci/nilai terakhir (tidak digunakan oleh semua model). Hanya relevan jikaconfig.is_decoder=Trueatau ketika model adalah model generatif yang hanya decoder. - pad_token_id (
int, opsional, default100256) — ID token yang digunakan untuk padding dalam kosakata. - bos_token_id (
int, opsional, default100257) — ID token yang digunakan untuk penanda awal aliran (beginning-of-stream) dalam kosakata. - eos_token_id (
Union[int, list[int]], opsional, default100257) — ID token yang digunakan untuk end-of-stream dalam kosakata. - tie_word_embeddings (
bool, opsional, defaultTrue) — Apakah akan mengikat bobot embedding sesuai dengan pemetaantied_weights_keysmodel. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], opsional) — Kamus yang berisi parameter konfigurasi untuk embedding RoPE. Kamus tersebut harus berisi nilai untukrope_thetadan secara opsional parameter yang digunakan untuk penskalaan jika Anda ingin menggunakan RoPE denganmax_position_embeddingsyang lebih panjang. - attention_bias (
bool, opsional, defaultFalse) — Apakah akan menggunakan bias pada lapisan proyeksi query, key, value, dan output selama self-attention. - attention_dropout (
Union[float, int], opsional, default0.0) — Rasio dropout untuk probabilitas perhatian. - mlp_bias (
bool, opsional, defaultFalse) — Apakah akan menggunakan bias pada lapisan up_proj, down_proj, dan gate_proj di dalam lapisan MLP. - embedding_multiplier (
Union[float, int], opsional, default12.0) — Faktor penskalaan yang diterapkan pada embedding kata. Digunakan untuk menskalakan embedding relatif terhadap ukuran tersembunyi (hidden size). - logits_scaling (
Union[float, int], opsional, default4.0) — Faktor penskalaan yang diterapkan pada logits output sebelum menghitung distribusi probabilitas. - residual_multiplier (
Union[float, int], opsional, defaultnya0.263) — Faktor penskalaan yang diterapkan pada koneksi residual. - attention_multiplier (
Union[float, int], opsional, default0.015625) — Faktor penskalaan yang diterapkan pada bobot perhatian.
Ini adalah kelas konfigurasi untuk menyimpan konfigurasi dari GraniteDoclingModel. Kelas ini digunakan untuk menginstansiasi model Granite Docling sesuai dengan argumen yang ditentukan, yang mendefinisikan arsitektur model. Menginstansiasi konfigurasi dengan nilai bawaan akan menghasilkan konfigurasi yang serupa dengan konfigurasi dari ibm-granite/granite-for-docling-500m
Objek konfigurasi mewarisi dari PreTrainedConfig dan dapat digunakan untuk mengontrol output model. Baca dokumentasi dari PreTrainedConfig untuk informasi lebih lanjut.
>>> from transformers import GraniteDoclingTextModel, GraniteDoclingTextConfig
>>> # Initializing a GraniteDoclingText granite_docling_text-3b style configuration
>>> configuration = GraniteDoclingTextConfig()
>>> # Initializing a model from the granite_docling_text-7b style configuration
>>> model = GraniteDoclingTextModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configGraniteDoclingVisionConfig
kelas transformers.GraniteDoclingVisionConfig
< 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 = 768intermediate_size: int = 3072num_hidden_layers: int = 12num_attention_heads: int = 12num_channels: int = 3image_size: int | list[int] | tuple[int, int] = 512patch_size: int | list[int] | tuple[int, int] = 16hidden_act: str = 'gelu_pytorch_tanh'layer_norm_eps: float = 1e-06attention_dropout: float | int = 0.0initializer_range: float = 0.02out_hidden_size: int = 1024scale_factor: int = 4deepstack_visual_indexes: list[int] | None = Noneuse_fine_route: bool = True )
Parameter
- hidden_size (
int, opsional, default768) — Dimensi dari representasi tersembunyi. - intermediate_size (
int, opsional, default3072) — Dimensi representasi MLP. - num_hidden_layers (
int, opsional, default12) — Jumlah lapisan tersembunyi dalam decoder Transformer. - num_attention_heads (
int, opsional, default12) — Jumlah attention head untuk setiap lapisan attention di decoder Transformer. - num_channels (
int, opsional, defaultnya3) — Jumlah saluran input. - image_size (
Union[int, list[int], tuple[int, int]], opsional, defaultnya512) — Ukuran (resolusi) dari setiap gambar. - patch_size (
Union[int, list[int], tuple[int, int]], opsional, defaultnya16) — Ukuran (resolusi) dari setiap patch. - hidden_act (
str, opsional, defaultnyagelu_pytorch_tanh) — Fungsi aktivasi non-linear (fungsi atau string) di decoder. Misalnya,"gelu","relu","silu", dan sebagainya. - layer_norm_eps (
float, opsional, defaultnya1e-06) — Epsilon yang digunakan oleh lapisan normalisasi lapisan. - attention_dropout (
Union[float, int], opsional, default0.0) — Rasio dropout untuk probabilitas perhatian. - initializer_range (
float, opsional, defaultnya0.02) — Standar deviasi dari truncated_normal_initializer untuk menginisialisasi semua matriks bobot. - out_hidden_size (
int, opsional, default 1024) — Ukuran tersembunyi dari decoder teks yang menjadi target proyeksi connector. - scale_factor (
int, opsional, default 4) — Faktor pixel shuffle dari konektor. Setiap tile berisi(image_size // patch_size) ** 2token visual dikurangi menjadiscale_factor ** 2. - deepstack_visual_indexes (
list[int], opsional, default[3, 7, 10]) — Indeks dari lapisan vision encoder yang output-nya diproyeksikan oleh DeepStack mergers. Indeks 0 adalah output dari lapisan pertama. - use_fine_route (
bool, opsional, defaultTrue) — Apakah akan membangun jalur konektor halus, yang mengacak piksel sebesar setengah dariscale_factordan menghasilkan empat kali lebih banyak token gambar per tile. Checkpoint 500M memilikinya, sedangkan checkpoint 2B tidak.
Konfigurasi dari vision encoder bergaya SigLIP yang meng-embed setiap tile 512x512 dari sebuah halaman, serta dari connector yang mengubah output-nya menjadi image tokens.
Contoh:
>>> from transformers import GraniteDoclingVisionConfig, GraniteDoclingVisionModel
>>> # Initializing a GraniteDoclingVisionConfig with ibm-granite/granite-for-docling-500m style configuration
>>> configuration = GraniteDoclingVisionConfig()
>>> # Initializing a GraniteDoclingVisionModel (with random weights) from the ibm-granite/granite-for-docling-500m style configuration
>>> model = GraniteDoclingVisionModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configGraniteDoclingImageProcessor
kelas transformers.GraniteDoclingImageProcessor
< source >( **kwargs: *<class 'transformers.models.granite_docling.image_processing_granite_docling.GraniteDoclingImageProcessorKwargs'> )
Parameter
- do_convert_rgb (
bool, kwargs, opsional, defaultTrue) — Apakah akan mengkonversi gambar ke RGB. - do_resize (
bool, kwargs, opsional, defaultTrue) — Apakah akan mengubah ukuran gambar. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, defaultnya{'height' -- 512, 'width': 512}): Menggambarkan dimensi input maksimum untuk model. - default_to_square (
bool, kwargs, opsional, defaultnyaTrue) — Apakah akan menggunakan gambar persegi sebagai default saat melakukan resize, jika size berupa int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya3) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional, defaultTrue) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional, default0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional, defaultTrue) — Apakah akan menormalisasi gambar. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya[0.48145466, 0.4578275, 0.40821073]) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya[0.26862954, 0.26130258, 0.27577711]) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - do_pad (
bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam{"height": int, "width" int}untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jikapad_sizetidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketikado_pad=True. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.NONE: gambar dalam format (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang. - crop_to_patches (
bool, kwargs, opsional, defaultTrue) — Apakah halaman akan dipecah menjadi ubin 512x512 yang disusun pada grid yang paling sesuai dengan rasio aspeknya (maksimal 16 ubin per sisi). Dapat ditimpa oleh parametercrop_to_patchespada metodepreprocess. - min_patches (
int, kwargs, opsional, default 1) — Jumlah minimum ubin per halaman. Hanya berpengaruh jikacrop_to_patchesdiatur keTrue. Dapat ditimpa oleh parametermin_patchespada metodepreprocess. - max_patches (
int, kwargs, opsional, default 32) — Jumlah maksimum ubin per halaman. Hanya berpengaruh jikacrop_to_patchesdiatur keTrue. Dapat ditimpa oleh parametermax_patchespada metodepreprocess. - fine_route (
bool, kwargs, opsional, defaultFalse) — Apakah halaman mengambil jalur konektor halus, yang menghasilkan empat kali lebih banyak token gambar per ubin. - dense_max_patches (
int, kwargs, opsional, default 0) — Jumlah maksimum ubin untuk halaman yang dipilih oleh aturan spread (0 menonaktifkan aturan). Sebuah halaman di-ubin dengan hinggadense_max_patchesubin alih-alihmax_patchesketika gridmax_patchesmengecilkannya di bawahdense_max_scaledan rasio lebar/tingginya di atasdense_min_aspect(dan paling banyakdense_max_aspectketika itu diset). Checkpoint harus telah dilatih dengan aturan yang sama. - dense_max_scale (
float, kwargs, opsional, default 0.0) — Rasio lebar kanvas bertile terhadap lebar halaman padamax_patchesdi bawahnya halaman dihitung sebagai kurang teresolusi. 0 melewati tes ini. - dense_min_aspect (
float, kwargs, opsional, default 0.0) — Rasio lebar/tinggi yang harus dilewati halaman untuk mendapatkandense_max_patches. 0 melewati pengujian ini. - dense_max_aspect (
float, kwargs, opsional, default 0.0) — Rasio lebar/tinggi yang tidak boleh dilewati oleh halaman untuk mendapatkandense_max_patches, yang menjaga strip seperti baris rumus tunggal tetap padamax_patches. 0 berarti tidak ada batas atas.
Memecah halaman menjadi ubin 512x512 pada grid yang paling sesuai dengan rasio aspeknya (crop_to_patches, maksimal max_patches ubin dan 16 per sisi), menambahkan thumbnail seluruh halaman jika ada lebih dari satu ubin, dan
mengisi sampel dalam batch hingga jumlah ubin yang sama. pixel_attention_mask menandai ubin yang asli. fine_route=True menandai sampel untuk jalur konektor halus (tile_fine_mask, satu nilai per sampel).
praproses
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]*argsimage_like_kwargs: dict[str, typing.Any] | None = None**kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> ) → ~image_processing_base.BatchFeature
Parameter
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Gambar yang akan dipreprocess. Mengharapkan satu gambar atau batch gambar dengan nilai piksel berkisar dari 0 hingga 255. Jika mengirimkan gambar dengan nilai piksel antara 0 dan 1, aturdo_rescale=False. - image_like_kwargs (
dict[str, Any], opsional) — Flag pengembang untuk input tambahan yang mirip gambar yang juga akan dipreprocess. Gunakan ini hanya jika melewati input sebagai kwarg tidak berhasil. Misalnya,preprocess(images, masks=masks)adalah opsi yang lebih disukai, tetapi menyebabkan masalah prioritas argumen untuk beberapa model. Dalam kasus tersebut,preprocess(images, image_like_inputs={"masks": masks})dapat digunakan sebagai gantinya. - do_convert_rgb (
bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB. - do_resize (
bool, kwargs, opsional) — Apakah akan mengubah ukuran gambar. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Menggambarkan dimensi input maksimum untuk model. - default_to_square (
bool, kwargs, opsional) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini dapat berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional) — Apakah akan menormalisasi gambar. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - do_pad (
bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam{"height": int, "width" int}untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jikapad_sizetidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketikado_pad=True. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.NONE: gambar dalam format (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang.
Mengembalikan
~image_processing_base.BatchFeature
- data (
dict) — Kamus berisi daftar/array/tensor yang dikembalikan oleh metode call (‘pixel_values’, dll.). - tensor_type (
Union[None, str, TensorType], opsional) — Anda dapat memberikan tensor_type di sini untuk mengonversi daftar bilangan bulat menjadi Tensor PyTorch/Numpy saat inisialisasi.
Praproses sebuah gambar atau kumpulan gambar.
GraniteDoclingImageProcessorPil
kelas transformers.GraniteDoclingImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.granite_docling.image_processing_pil_granite_docling.GraniteDoclingImageProcessorKwargs'> )
Parameter
- do_convert_rgb (
bool, kwargs, opsional, defaultTrue) — Apakah akan mengkonversi gambar ke RGB. - do_resize (
bool, kwargs, opsional, defaultTrue) — Apakah akan mengubah ukuran gambar. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, defaultnya{'height' -- 512, 'width': 512}): Menggambarkan dimensi input maksimum untuk model. - default_to_square (
bool, kwargs, opsional, defaultnyaTrue) — Apakah akan menggunakan gambar persegi sebagai default saat melakukan resize, jika size berupa int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, defaultnya3) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini bisa berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional, defaultTrue) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional, default0.00392156862745098) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional, defaultTrue) — Apakah akan menormalisasi gambar. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya[0.48145466, 0.4578275, 0.40821073]) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsional, defaultnya[0.26862954, 0.26130258, 0.27577711]) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - do_pad (
bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam{"height": int, "width" int}untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jikapad_sizetidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketikado_pad=True. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.NONE: gambar dalam format (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang. - crop_to_patches (
bool, kwargs, opsional, defaultTrue) — Apakah halaman akan dipecah menjadi ubin 512x512 yang disusun pada grid yang paling sesuai dengan rasio aspeknya (maksimal 16 ubin per sisi). Dapat ditimpa oleh parametercrop_to_patchespada metodepreprocess. - min_patches (
int, kwargs, opsional, default 1) — Jumlah minimum ubin per halaman. Hanya berpengaruh jikacrop_to_patchesdiatur keTrue. Dapat ditimpa oleh parametermin_patchespada metodepreprocess. - max_patches (
int, kwargs, opsional, default 32) — Jumlah maksimum ubin per halaman. Hanya berpengaruh jikacrop_to_patchesdiatur keTrue. Dapat ditimpa oleh parametermax_patchespada metodepreprocess. - fine_route (
bool, kwargs, opsional, defaultFalse) — Apakah halaman mengambil jalur konektor halus, yang menghasilkan empat kali lebih banyak token gambar per ubin. - dense_max_patches (
int, kwargs, opsional, default 0) — Jumlah maksimum ubin untuk halaman yang dipilih oleh aturan spread (0 menonaktifkan aturan). Sebuah halaman di-ubin dengan hinggadense_max_patchesubin alih-alihmax_patchesketika gridmax_patchesmengecilkannya di bawahdense_max_scaledan rasio lebar/tingginya di atasdense_min_aspect(dan paling banyakdense_max_aspectketika itu diset). Checkpoint harus telah dilatih dengan aturan yang sama. - dense_max_scale (
float, kwargs, opsional, default 0.0) — Rasio lebar kanvas bertile terhadap lebar halaman padamax_patchesdi bawahnya halaman dihitung sebagai kurang teresolusi. 0 melewati tes ini. - dense_min_aspect (
float, kwargs, opsional, default 0.0) — Rasio lebar/tinggi yang harus dilewati halaman untuk mendapatkandense_max_patches. 0 melewati pengujian ini. - dense_max_aspect (
float, kwargs, opsional, default 0.0) — Rasio lebar/tinggi yang tidak boleh dilewati oleh halaman untuk mendapatkandense_max_patches, yang menjaga strip seperti baris rumus tunggal tetap padamax_patches. 0 berarti tidak ada batas atas.
Backend PIL dari GraniteDoclingImageProcessor: penilekan 512x512, thumbnail, dan padding tile yang sama.
praproses
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]*argsimage_like_kwargs: dict[str, typing.Any] | None = None**kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> ) → ~image_processing_base.BatchFeature
Parameter
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Gambar yang akan dipreprocess. Mengharapkan satu gambar atau batch gambar dengan nilai piksel berkisar dari 0 hingga 255. Jika mengirimkan gambar dengan nilai piksel antara 0 dan 1, aturdo_rescale=False. - image_like_kwargs (
dict[str, Any], opsional) — Flag pengembang untuk input tambahan yang mirip gambar yang juga akan dipreprocess. Gunakan ini hanya jika melewati input sebagai kwarg tidak berhasil. Misalnya,preprocess(images, masks=masks)adalah opsi yang lebih disukai, tetapi menyebabkan masalah prioritas argumen untuk beberapa model. Dalam kasus tersebut,preprocess(images, image_like_inputs={"masks": masks})dapat digunakan sebagai gantinya. - do_convert_rgb (
bool, kwargs, opsional) — Apakah akan mengonversi gambar ke RGB. - do_resize (
bool, kwargs, opsional) — Apakah akan mengubah ukuran gambar. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Menggambarkan dimensi input maksimum untuk model. - default_to_square (
bool, kwargs, opsional) — Apakah akan menggunakan gambar persegi sebagai default saat mengubah ukuran, jika size berupa int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran gambar keluaran setelah menerapkancenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filter resampling yang digunakan jika mengubah ukuran gambar. Ini dapat berupa salah satu enumPILImageResampling. Hanya berpengaruh jikado_resizediatur keTrue. - do_rescale (
bool, kwargs, opsional) — Apakah akan melakukan penskalaan ulang pada gambar. - rescale_factor (
float, kwargs, opsional) — Faktor rescale untuk menskalakan ulang gambar jikado_rescalediatur keTrue. - do_normalize (
bool, kwargs, opsional) — Apakah akan menormalisasi gambar. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Rata-rata gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, opsional) — Standar deviasi gambar yang digunakan untuk normalisasi. Hanya berpengaruh jikado_normalizediatur keTrue. - do_pad (
bool, kwargs, opsional) — Apakah akan melakukan padding pada gambar. Padding dilakukan ke ukuran terbesar dalam batch atau ke ukuran persegi tetap per gambar. Strategi padding yang tepat bergantung pada model. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Ukuran dalam{"height": int, "width" int}untuk melakukan padding pada gambar. Harus lebih besar dari ukuran gambar mana pun yang disediakan untuk pra-pemrosesan. Jikapad_sizetidak disediakan, gambar akan di-pad hingga tinggi dan lebar terbesar dalam batch. Diterapkan hanya ketikado_pad=True. - do_center_crop (
bool, kwargs, opsional) — Apakah akan melakukan center crop pada gambar. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — HanyaChannelDimension.FIRSTyang didukung. Ditambahkan untuk kompatibilitas dengan prosesor lambat. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, opsional) — Format dimensi channel untuk gambar input. Jika tidak diset, format dimensi channel akan disimpulkan dari gambar input. Bisa berupa salah satu dari:"channels_first"atauChannelDimension.FIRST: gambar dalam format (num_channels, height, width)."channels_last"atauChannelDimension.LAST: gambar dalam format (height, width, num_channels)."none"atauChannelDimension.NONE: gambar dalam format (height, width).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — Perangkat untuk memproses video. Jika tidak disetel, perangkat akan disimpulkan dari video input. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Mengembalikan tensor bertumpuk jika diset ke'pt', selain itu mengembalikan daftar tensor. - disable_grouping (
bool, kwargs, opsional) — Apakah akan menonaktifkan pengelompokan gambar berdasarkan ukuran untuk memprosesnya secara individual dan bukan dalam batch. Jika None, akan diatur ke True jika gambar berada di CPU, dan False selain itu. Pilihan ini didasarkan pada pengamatan empiris, seperti yang dijelaskan di sini: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, opsional) — Jumlah token gambar yang akan digunakan untuk setiap gambar dalam input. Ditambahkan untuk kompatibilitas mundur, tetapi ini seharusnya diatur sebagai atribut prosesor pada model-model mendatang.
Mengembalikan
~image_processing_base.BatchFeature
- data (
dict) — Kamus berisi daftar/array/tensor yang dikembalikan oleh metode call (‘pixel_values’, dll.). - tensor_type (
Union[None, str, TensorType], opsional) — Anda dapat memberikan tensor_type di sini untuk mengonversi daftar bilangan bulat menjadi Tensor PyTorch/Numpy saat inisialisasi.
Praproses sebuah gambar atau kumpulan gambar.
GraniteDoclingProcessor
kelas transformers.GraniteDoclingProcessor
< source >( image_processortokenizer = Noneimage_seq_len: int = 64chat_template: str | None = None**kwargs )
Parameter
- image_processor (
GraniteDoclingImageProcessor) — Pemroses gambar adalah input yang wajib. - tokenizer (
tokenizer_class) — Tokenizer adalah input yang wajib. - image_seq_len (
int, opsional, default 64) — Jumlah token<image>per tile pada jalur kasar. Dihitung sebagaiimage_seq_len = int(((image_size // patch_size) ** 2) / (scale_factor**2)). - chat_template (
str, opsional) — Template Jinja untuk mengonversi daftar pesan dalam chat menjadi string yang dapat ditokenisasi.
Membangun GraniteDoclingProcessor yang membungkus image processor dan tokenizer menjadi satu processor.
GraniteDoclingProcessor menyediakan semua fungsionalitas dari GraniteDoclingImageProcessor dan tokenizer_class. Lihat ~GraniteDoclingImageProcessor dan ~tokenizer_class untuk informasi lebih lanjut.
__call__
< source >( images = Nonetext = None**kwargs ) → BatchEncoding
Parameter
- images (`
) -- Image to preprocess. Expects a single or batch of images with pixel values ranging from 0 to 255. If passing in images with pixel values between 0 and 1, setdo_rescale=False`. - text (`
) -- The sequence or batch of sequences to be encoded. Each sequence can be a string or a list of strings (pretokenized string). If you pass a pretokenized input, setis_split_into_words=True` to avoid ambiguity with batched inputs. - return_tensors (
stratau TensorType, opsional) — Jika diset, akan mengembalikan tensor dari framework tertentu. Nilai yang dapat diterima adalah:'pt': Mengembalikan objek PyTorchtorch.Tensor.'np': Mengembalikan objek NumPynp.ndarray.
Mengembalikan
Prompt yang ditokenisasi dengan pixel_values dan pixel_attention_mask, serta
tile_fine_mask ketika fine_route=True. Grid tile hanya membangun prompt dan tidak dikembalikan.
GraniteDoclingVisionModel
kelas transformers.GraniteDoclingVisionModel
< source >( config: GraniteDoclingVisionConfig )
Parameter
- config (GraniteDoclingVisionConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Vision encoder dari GraniteDocling dengan konektornya di atasnya: menyematkan (embed) ubin-ubin dari sebuah halaman dan mengembalikan token gambar dari setiap ubin bersama dengan fitur DeepStack yang diproyeksikan.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari 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
< source >( pixel_values: FloatTensorfine: bool = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
Parameter
- pixel_values (
torch.FloatTensordengan bentuk(num_tiles, num_channels, image_size, image_size)) — Ubin yang diratakan di seluruh batch, tanpa ubin padding. - fine (
bool, opsional, defaultFalse) — Apakah tile mengambil jalur konektor fine, yang menghasilkan empat kali lebih banyak token gambar per tile.
Metode forward dari GraniteDoclingVisionModel menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
GraniteDoclingModel
kelas transformers.GraniteDoclingModel
< source >( config: GraniteDoclingConfig )
Parameter
- config (GraniteDoclingConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model GraniteDocling yang terdiri dari encoder visual, konektor, dan decoder teks, yang menghasilkan hidden states mentah tanpa head spesifik di atasnya.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari 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
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonepixel_values: typing.Optional[torch.FloatTensor] = Nonetile_fine_mask: typing.Optional[torch.BoolTensor] = Nonepixel_attention_mask: typing.Optional[torch.BoolTensor] = Nonemm_encoder_outputs: dict | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → GraniteDoclingBaseModelOutputWithPast or tuple(torch.Tensor)
Parameter
- input_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- position_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - inputs_embeds (
torch.FloatTensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - pixel_values (
torch.FloatTensordengan bentuk(batch_size, num_channels, image_size, image_size), opsional) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan GraniteDoclingImageProcessor. Lihat GraniteDoclingImageProcessor.call() untuk detailnya (GraniteDoclingProcessor menggunakan GraniteDoclingImageProcessor untuk memproses gambar). - tile_fine_mask (
torch.BoolTensordengan bentuk(batch_size,), opsional) — Semua True ketika pemroses dipanggil denganfine_route=True: batch mengambil jalur konektor halus, yang menghasilkan empat kali lebih banyak token gambar per tile. - pixel_attention_mask (
torch.BoolTensordengan bentuk(batch_size, num_tiles), opsional) — Tile asli, sebagaimana dikembalikan oleh processor. Tile padding bernilai false. Wajib disertakan bersamapixel_values. - mm_encoder_outputs (
dict, opsional) — Dict di mana kuncinya adalah modalitas yang didukung dan nilainya adalah output terenkod untuk modalitas tersebut. Setiap output terenkod adalah tuple yang terdiri dari (pooler_output, opsional:last_hidden_states, opsional:hidden_states, opsional:attentions)pooler_outputdengan bentuk(batch_size, sequence_length, hidden_size), opsional) adalah rangkaian fitur multimodal dari encoder yang digabungkan ke dalam embedding teks.
Mengembalikan
GraniteDoclingBaseModelOutputWithPast atau tuple(torch.Tensor)
GraniteDoclingBaseModelOutputWithPast atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (GraniteDoclingConfig) dan input.
Input yang diberikan ke model dapat memiliki jumlah gambar yang sewenang-wenang. Untuk mengakomodasi hal ini, pixel_values yang diberikan ke model memiliki padding gambar -> (batch_size, max_num_tiles, 3, image_size, image_size) di mana max_num_tiles adalah jumlah maksimum tile di antara batch_size sampel dalam batch. Tile padding bernilai false di pixel_attention_mask dan dibuang sebelum vision encoder.
last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Urutan hidden-states pada keluaran lapisan terakhir model.past_key_values (
~cache_utils.Cache, opsional, dikembalikan saatuse_cache=Truediteruskan atau saatconfig.use_cache=True) — Ini adalah instance Cache. Untuk detail lebih lanjut, lihat panduan kv cache kami.Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention, dan secara opsional jika
config.is_encoder_decoder=Truedi blok cross-attention) yang dapat digunakan (lihat inputpast_key_values) untuk mempercepat decoding berurutan.hidden_states (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
image_hidden_states (
tuple[torch.Tensor]dengan bentuk(batch_size, num_images, sequence_length, hidden_size), opsional) — Image hidden states dari model yang dihasilkan oleh vision encoder dan setelah memproyeksikan last hidden state.router_logits (
torch.FloatTensordengan bentuk(batch_size,), opsional) — Logits dari density router, satu per sampel. Dikembalikan ketika model memiliki router danpixel_valuesdiberikan.
get_image_features
< source >( pixel_values: FloatTensorpixel_attention_mask: BoolTensortile_fine_mask: typing.Optional[torch.BoolTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → GraniteDoclingImageFeaturesOutput or tuple(torch.Tensor)
Parameter
- pixel_values (
torch.FloatTensordengan bentuk(batch_size, num_tiles, num_channels, image_size, image_size)) — Tensor yang sesuai dengan ubin gambar input. - pixel_attention_mask (
torch.BoolTensordengan bentuk(batch_size, num_tiles)) — Ubin asli, sebagaimana dikembalikan oleh prosesor. Ubin padding bernilai false. - tile_fine_mask (
torch.BoolTensordengan bentuk(batch_size,), opsional) — Memerlukan pemroses yang dipanggil denganfine_route=True: batch mengambil jalur konektor halus, yang menghasilkan empat kali lebih banyak token gambar per ubin.
Mengembalikan
GraniteDoclingImageFeaturesOutput atau tuple(torch.Tensor)
GraniteDoclingImageFeaturesOutput atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (GraniteDoclingConfig) dan input.
last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.pooler_output (
tuple[torch.FloatTensor]dengan panjangbatch_size) — Token gambar dari setiap sampel, dalam urutan tile, yang diproyeksikan ke ukuran tersembunyi teks. Setiap tensor memiliki bentuk(num_image_tokens, hidden_size). Satu tile menghasilkanimage_seq_lentoken pada jalur konektor kasar dan empat kali lipat jumlah tersebut pada jalur halus. Proses generasi mengulang tensor per sampel ini di antara beam.hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
deepstack_features (
list[tuple[torch.FloatTensor]], opsional) — Satu state tersembunyi encoder visual perantara yang diproyeksikan untuk setiap entriconfig.deepstack_visual_indexes. Setiap entri dipecah per sampel, dengan tata letak yang sama sepertipooler_output.router_logits (
torch.FloatTensordengan bentuk(batch_size,), opsional) — Logits dari density router, satu per sampel. Dikembalikan ketika model memiliki router.
predict_fine_route
< source >( pixel_values: FloatTensorpixel_attention_mask: BoolTensor ) → torch.BoolTensor of shape (batch_size,)
Parameter
- pixel_values (
torch.FloatTensordengan bentuk(batch_size, num_tiles, num_channels, image_size, image_size)) — Tensor yang sesuai dengan ubin gambar input. - pixel_attention_mask (
torch.BoolTensordengan bentuk(batch_size, num_tiles)) — Ubin asli, sebagaimana dikembalikan oleh prosesor.
Mengembalikan
torch.BoolTensor dengan bentuk (batch_size,)
True untuk sampel yang memerlukan jalur konektor halus.
Memprediksi dengan density router sampel mana yang membutuhkan jalur konektor halus. Arahkan mereka dengan memanggil
processor lagi dengan fine_route=True.
GraniteDoclingTextModel
kelas transformers.GraniteDoclingTextModel
< source >( config: GraniteDoclingTextConfig )
Parameter
- config (GraniteDoclingTextConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model Granite Docling Text polos yang menghasilkan hidden-states mentah tanpa head spesifik di atasnya.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari 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
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneuse_cache: bool | None = Nonevisual_pos_masks: typing.Optional[torch.BoolTensor] = Nonedeepstack_visual_embeds: list[torch.Tensor] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.Tensor)
Parameter
- input_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- position_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - inputs_embeds (
torch.FloatTensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_key_values). - visual_pos_masks (
torch.BoolTensordengan bentuk(batch_size, sequence_length), opsional) — Posisi token gambar yang menerima fitur DeepStack. - deepstack_visual_embeds (
list[torch.Tensor], opsional) — Fitur DeepStack, masing-masing dengan bentuk(num_image_tokens, hidden_size). Entriiditambahkan ke hidden states padavisual_pos_maskssetelah decoder layeri.
Mengembalikan
BaseModelOutputWithPast atau tuple(torch.Tensor)
A BaseModelOutputWithPast atau tuple dari
torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (GraniteDoclingConfig) dan input.
Metode forward dari GraniteDoclingTextModel menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya 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.Tensordengan bentuk(batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.Jika
past_key_valuesdigunakan, hanya hidden-state terakhir dari sekuens dengan bentuk(batch_size, 1, hidden_size)yang dioutput.past_key_values (
Cache, opsional, dikembalikan saatuse_cache=Truedilewatkan atau saatconfig.use_cache=True) — Ini adalah instance Cache. Untuk detail lebih lanjut, lihat panduan kv cache kami.Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention, dan secara opsional jika
config.is_encoder_decoder=Truedi blok cross-attention) yang dapat digunakan (lihat inputpast_key_values) untuk mempercepat decoding berurutan.hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
GraniteDoclingForConditionalGeneration
kelas transformers.GraniteDoclingForConditionalGeneration
< source >( config: GraniteDoclingConfig )
Parameter
- config (GraniteDoclingConfig) — Kelas konfigurasi model dengan semua parameter model. Inisialisasi dengan file konfigurasi tidak memuat bobot yang terkait dengan model, hanya konfigurasinya. Lihat metode from_pretrained() untuk memuat bobot model.
Model GraniteDocling dengan kepala pemodelan bahasa. Model ini terdiri dari encoder visual, konektor, dan decoder teks, dengan kepala pemodelan bahasa di atasnya.
Model ini mewarisi dari PreTrainedModel. Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan oleh pustaka untuk semua model (seperti mengunduh atau menyimpan, mengubah ukuran embedding input, memangkas kepala, dll.)
Model ini juga merupakan subclass dari 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
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonepixel_values: typing.Optional[torch.FloatTensor] = Nonetile_fine_mask: typing.Optional[torch.BoolTensor] = Nonepixel_attention_mask: typing.Optional[torch.BoolTensor] = Nonemm_encoder_outputs: dict | None = Nonelabels: typing.Optional[torch.LongTensor] = Nonerouter_labels: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → GraniteDoclingCausalLMOutputWithPast or tuple(torch.Tensor)
Parameter
- input_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks token dari urutan input dalam kosakata. Padding akan diabaikan secara default.Indeks dapat diperoleh menggunakan AutoTokenizer. Lihat PreTrainedTokenizer.encode() dan PreTrainedTokenizer.call() untuk detailnya.
- attention_mask (
torch.Tensordengan bentuk(batch_size, sequence_length), opsional) — Mask untuk menghindari eksekusi attention pada indeks token padding. Nilai mask dipilih dari[0, 1]:- 1 untuk token yang tidak dimasker,
- 0 untuk token yang dimasker.
- position_ids (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Indeks posisi token dari setiap urutan input dalam position embeddings. Dipilih dalam rentang[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, opsional) — Hidden-states yang sudah dihitung sebelumnya (key dan values di blok self-attention dan di blok cross-attention) yang dapat digunakan untuk mempercepat decoding berurutan. Ini biasanya terdiri daripast_key_valuesyang dikembalikan oleh model pada tahap decoding sebelumnya, ketikause_cache=Trueatauconfig.use_cache=True.Hanya instance Cache yang diizinkan sebagai input, lihat panduan kv cache kami. Jika tidak ada
past_key_valuesyang diteruskan, DynamicCache akan diinisialisasi secara default.Model akan menghasilkan format cache yang sama dengan yang diberikan sebagai input.
Jika
past_key_valuesdigunakan, pengguna diharapkan hanya memasukkaninput_idsyang belum diproses (yang tidak memiliki state past key value yang diberikan ke model ini) dengan bentuk(batch_size, unprocessed_length)alih-alih semuainput_idsdengan bentuk(batch_size, sequence_length). - inputs_embeds (
torch.FloatTensordengan bentuk(batch_size, sequence_length, hidden_size), opsional) — Secara opsional, alih-alih meneruskaninput_ids, Anda dapat memilih untuk langsung meneruskan representasi tertanam. Hal ini berguna jika Anda ingin memiliki kendali lebih atas cara mengonversi indeksinput_idsmenjadi vektor terkait, dibandingkan dengan matriks pencarian penanaman internal model. - pixel_values (
torch.FloatTensordengan bentuk(batch_size, num_channels, image_size, image_size), opsional) — Tensor yang sesuai dengan gambar input. Nilai piksel dapat diperoleh menggunakan GraniteDoclingImageProcessor. Lihat GraniteDoclingImageProcessor.call() untuk detailnya (GraniteDoclingProcessor menggunakan GraniteDoclingImageProcessor untuk memproses gambar). - tile_fine_mask (
torch.BoolTensordengan bentuk(batch_size,), opsional) — Semua True ketika pemroses dipanggil denganfine_route=True: batch mengambil jalur konektor halus, yang menghasilkan empat kali lebih banyak token gambar per tile. - pixel_attention_mask (
torch.BoolTensordengan bentuk(batch_size, num_tiles), opsional) — Tile asli, sebagaimana dikembalikan oleh processor. Tile padding bernilai false. Wajib disertakan bersamapixel_values. - mm_encoder_outputs (
dict, opsional) — Dict di mana kuncinya adalah modalitas yang didukung dan nilainya adalah output terenkod untuk modalitas tersebut. Setiap output terenkod adalah tuple yang terdiri dari (pooler_output, opsional:last_hidden_states, opsional:hidden_states, opsional:attentions)pooler_outputdengan bentuk(batch_size, sequence_length, hidden_size), opsional) adalah rangkaian fitur multimodal dari encoder yang digabungkan ke dalam embedding teks. - labels (
torch.LongTensordengan bentuk(batch_size, sequence_length), opsional) — Label untuk menghitung kerugian pemodelan bahasa yang dimasker. Indeks harus berada di[0, ..., config.vocab_size]ataumodel.image_token_id(di manamodeladalah instans Anda dariGraniteDoclingForConditionalGeneration). Token dengan indeks yang disetel kemodel.image_token_iddiabaikan (dimasker), kerugian hanya dihitung untuk token dengan label di[0, ..., config.vocab_size]. - router_labels (
torch.Tensordengan bentuk(batch_size,), opsional) — Target dari density router,1(atauTrue) untuk sampel yang membutuhkan jalur fine connector dan0lainnya. Diberikan sebagai float, bool, atau int; kerugian router adalah binary cross-entropy pada logits. - use_cache (
bool, opsional) — Jika diset keTrue, state kunci-nilaipast_key_valuesakan dikembalikan dan dapat digunakan untuk mempercepat decoding (lihatpast_key_values). - logits_to_keep (
Union[int, torch.Tensor], opsional, default0) — Jika berupaint, hitung logits untuklogits_to_keeptoken terakhir. Jika0, hitung logits untuk semuainput_ids(kasus khusus). Hanya logits token terakhir yang diperlukan untuk generasi, dan menghitungnya hanya untuk token tersebut dapat menghemat memori, yang menjadi cukup signifikan untuk urutan panjang atau ukuran kosakata besar. Jika berupatorch.Tensor, harus 1D yang sesuai dengan indeks yang akan dipertahankan pada dimensi panjang urutan. Ini berguna saat menggunakan format tensor terpadu (satu dimensi untuk batch dan panjang urutan).
Mengembalikan
GraniteDoclingCausalLMOutputWithPast atau tuple(torch.Tensor)
GraniteDoclingCausalLMOutputWithPast atau tuple dari
torch.Tensor (jika return_dict=False diteruskan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (GraniteDoclingConfig) dan input.
Metode forward dari GraniteDoclingForConditionalGeneration menimpa metode khusus __call__.
Meskipun resep untuk forward pass perlu didefinisikan di dalam fungsi ini, sebaiknya panggil instance
Modulesetelahnya alih-alih fungsi ini, karena yang pertama menangani langkah-langkah pra-pemrosesan dan pasca-pemrosesan, sedangkan yang kedua mengabaikannya secara diam-diam.
loss (
torch.FloatTensordengan bentuk(1,), opsional, dikembalikan saatlabelsdisediakan) — Loss pemodelan bahasa (untuk prediksi token berikutnya).logits (
torch.FloatTensordengan bentuk(batch_size, sequence_length, config.vocab_size)) — Skor prediksi dari kepala pemodelan bahasa (skor untuk setiap token kosakata sebelum SoftMax).past_key_values (
~cache_utils.Cache, opsional, dikembalikan saatuse_cache=Truediteruskan atau saatconfig.use_cache=True) — Ini adalah instance Cache. Untuk detail lebih lanjut, lihat panduan kv cache kami.Berisi hidden-states yang telah dihitung sebelumnya (key dan values di blok self-attention, dan secara opsional jika
config.is_encoder_decoder=Truedi blok cross-attention) yang dapat digunakan (lihat inputpast_key_values) untuk mempercepat decoding berurutan.hidden_states (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple[torch.Tensor], opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
image_hidden_states (
tuple[torch.Tensor]dengan bentuk(batch_size, num_images, sequence_length, hidden_size), opsional) — Image hidden states dari model yang dihasilkan oleh vision encoder dan setelah memproyeksikan last hidden state.router_logits (
torch.FloatTensordengan bentuk(batch_size,), opsional) — Logits dari density router, satu per sampel. Dikembalikan ketika model memiliki router danpixel_valuesdiberikan.
Contoh:
>>> from transformers import AutoProcessor, AutoModelForImageTextToText
>>> from transformers.image_utils import load_image
>>> image = load_image("https://huggingface.co/ibm-granite/granite-for-docling-500m/resolve/main/docling_technical_report_p1.png")
>>> processor = AutoProcessor.from_pretrained("ibm-granite/granite-for-docling-500m")
>>> model = AutoModelForImageTextToText.from_pretrained("ibm-granite/granite-for-docling-500m", device_map="auto")
>>> messages = [
... {
... "role": "user",
... "content": [
... {"type": "image"},
... {"type": "text", "text": "<doclang>"},
... ],
... }
... ]
>>> prompt = processor.apply_chat_template(messages, add_generation_prompt=True)
>>> inputs = processor(text=prompt, images=image, return_tensors="pt").to(model.device)
>>> generated_ids = model.generate(**inputs, max_new_tokens=4096)
>>> print(processor.decode(generated_ids[0, inputs["input_ids"].shape[1] :], skip_special_tokens=False))get_image_features
< source >( pixel_values: Tensorpixel_attention_mask: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
Parameter
- pixel_values (
torch.Tensordengan bentuk(batch_size, num_channels, image_size, image_size)) — Tensor yang sesuai dengan gambar input. - pixel_attention_mask (
torch.LongTensor, opsional) — Mask perhatian yang menunjukkan area bantalan (padded) dalam gambar.
Mengembalikan
BaseModelOutputWithPooling atau tuple(torch.Tensor)
A BaseModelOutputWithPooling atau tuple dari
torch.Tensor (jika return_dict=False dilewatkan atau ketika config.return_dict=False) yang terdiri dari berbagai
elemen tergantung pada konfigurasi (GraniteDoclingConfig) dan input.
last_hidden_state (
torch.Tensordengan bentuk(batch_size, sequence_length, hidden_size)) — Urutan hidden-states pada keluaran lapisan terakhir model.pooler_output (
torch.Tensordengan bentuk(batch_size, hidden_size)) — Hidden-state lapisan terakhir dari token pertama dalam urutan (token klasifikasi) setelah diproses lebih lanjut melalui lapisan yang digunakan untuk tugas pra-pelatihan tambahan. Misalnya, untuk keluarga model BERT, ini mengembalikan token klasifikasi setelah diproses melalui lapisan linear dan fungsi aktivasi tanh. Bobot lapisan linear dilatih dari tujuan prediksi kalimat berikutnya (klasifikasi) selama pra-pelatihan.hidden_states (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_hidden_states=Truedilewatkan atau saatconfig.output_hidden_states=True) — Tuple daritorch.Tensor(satu untuk output dari embeddings, jika model memiliki lapisan embedding, + satu untuk output dari setiap lapisan) dengan bentuk(batch_size, sequence_length, hidden_size).Hidden-states model pada output setiap layer ditambah output embedding awal yang opsional.
attentions (
tuple(torch.Tensor), opsional, dikembalikan saatoutput_attentions=Truedilewatkan atau saatconfig.output_attentions=True) — Tuple daritorch.Tensor(satu untuk setiap layer) dengan bentuk(batch_size, num_heads, sequence_length, sequence_length).Bobot perhatian setelah softmax perhatian, digunakan untuk menghitung rata-rata berbobot di kepala perhatian diri (self-attention).
Contoh:
>>> from PIL import Image
>>> from transformers import AutoProcessor, GraniteDoclingForConditionalGeneration
>>> model = GraniteDoclingForConditionalGeneration.from_pretrained("ibm-granite/granite-for-docling-500m")
>>> processor = AutoProcessor.from_pretrained("ibm-granite/granite-for-docling-500m")
>>> messages = [
... {
... "role": "user", "content": [
... {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
... {"type": "text", "text": "Where is the cat standing?"},
... ]
... },
... ]
>>> inputs = processor.apply_chat_template(
... messages,
... tokenize=True,
... return_dict=True,
... return_tensors="pt",
... add_generation_prompt=True
... )
>>> # Generate
>>> generate_ids = model.generate(**inputs)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]