Transformers documentation
GraniteDocling
تمت مساهمة هذا النموذج في Hugging Face Transformers في 2026-11-12.
GraniteDocling
GraniteDocling هو نموذج لغوي بصري لتحويل المستندات. عند تقديم صورة لصفحة، يولّد DocLang (<doclang>): عناصر التخطيط بترتيب القراءة مع صناديق الحدود الخاصة بها، والنصوص والجداول والمعادلات وأكواد البرمجة التي تحتويها. DocLang هو الترميز؛ بينما يقوم Docling (docling-core) بتحليل التنبؤ إلى مستند يمكنك تصديره إلى Markdown وHTML وJSON وغيرها من الصيغ.
تُقسَّم الصفحة إلى بلاطات بمقاس 512x512 بكسل، تُرتَّب على الشبكة التي تتطابق بشكل أفضل مع نسبة أبعادها، بالإضافة إلى صورة مصغّرة للصفحة بأكملها عندما تتجاوز البلاطة الواحدة. يقوم مُشفِّر الرؤية بتضمين كل بلاطة، ويحوّل مُوصِل خلط البكسلات رقعات الرؤية إلى رموز الصورة. كما تُستخرج حالات مُشفِّر الرؤية الوسيطة وتُضاف إلى رموز الصورة بعد طبقات المُفكِّك الأولى. ثم يولّد مُفكِّك نصي كثيف بنمط Granite لغة المستند DocLang.
يُصدر GraniteDocling على شكل نموذجين. يستخدم نموذج 500M 64 رمز صورة لكل بلاطة، ويمكنه تحويل صفحة كثيفة إلى 256 رمزًا؛ حيث يختار موجّه ذلك لكل صفحة. يستخدم نموذج 2B نسبة خلط بكسل تساوي 2، أي 256 رمز صورة لكل بلاطة، وهي نفس كثافة المسار الدقيق لنموذج 500M.
أنشأ مشروع Docling نموذج GraniteDocling. وقد نُشر كلا النموذجين على منظمة IBM Granite.
GraniteDocling هو معمارية مختلفة عن granite-docling-258M، حيث يستمر التحميل عبر Idefics3.
تمت مساهمة هذا النموذج من قبل فريق Docling.
انقر على نماذج GraniteDocling في الشريط الجانبي الأيمن لمزيد من الأمثلة حول كيفية تطبيق GraniteDocling على مهام تحويل المستندات المختلفة.
نصائح للاستخدام
- استخدم قالب المحادثة للتفاعل مع النموذج. يحول
<doclang>الصفحة كاملة. أضف قائمة بين قوسين لطلب مجموعة فرعية من العناصر، على سبيل المثال<doclang> [<ocr>]أو<doclang> [<ocr>, <layout>, <picture>]. - قم بفك الترميز باستخدام
skip_special_tokens=Falseإذا كنت ستحلل النص كـ DocLang. وإلا، سيتم حذف رموز التنسيق المخصصة. - في نموذج 500M، مرّر
fine_route=Trueللصفحات الكثيفة (النص الصغير، الجداول الطويلة، النص متعدد الأعمدة). يستخدم هذا المسار أربعة أضعاف عدد رموز الصور، لذا يكون الأمر أطول والاستدلال أبطأ. يستخدم نموذج 2B بالفعل ذلك الكثافة من الرموز ولا يحتوي على مسار ثانٍ، لذا يثيرfine_route=Trueخطأً له. - يتضمن نموذج 500M موجّه كثافة، وهو من يقرر ذلك نيابةً عنك: يعيد predict_fine_route() الصفحات من الدفعة التي تحتاج إلى المسار الدقيق.
تحوّل الأمثلة أدناه الصفحة 1 من التقرير التقني لـ Docling (arXiv:2408.09869). غيّر نص الأمر النصي فقط لتبديل المهمة؛ حيث يعيد النموذج DocLang مُصفّىً إلى العناصر المطلوبة.
| المهمة | الموجّه |
|---|---|
| الصفحة الكاملة | <doclang> |
| OCR | <doclang> [<ocr>] |
| التخطيط | <doclang> [<layout>] |
| الجداول | <doclang> [<table>] |
| المعادلات | <doclang> [<formula>] |
| Code | <doclang> [<code>] |
| الرسوم البيانية | <doclang> [<chart>] |
| صور | <doclang> [<picture>] |
| مجمّعة | <doclang> [<ocr>, <layout>, <picture>] |
الصفحة الكاملة
<doclang> يحوّل الصفحة بأكملها: التخطيط، والنصوص، والجداول، والمعادلات، والكود، والمخططات، والصور.
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)لتحويل بعض العناصر فقط، غيّر النص التوجيهي إلى أحد الخيارات الواردة في الجدول أعلاه، على سبيل المثال <doclang> [<ocr>, <layout>, <picture>]. تبقى كل العناصر الأخرى كما هي.
الصفحات الكثيفة: المسار الدقيق
يستهلك مسار الوصلة الدقيقة أربعة أضعاف عدد رموز الصورة لكل بلاطة، مما يساعد في التعامل مع النصوص الصغيرة والجداول الطويلة والنصوص متعددة الأعمدة. اختره لكل استدعاء باستخدام 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)يتنبأ نموذج 500M (حيث تم تعيين config.density_router_hidden_size) بالصفحات التي تحتاج إلى المسار الدقيق من رموز الصورة الافتراضية الخاصة به:
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)الاستدلال المجمّع
تستقبل الصفحات شبكات بلاطات مختلفة، لذا يتم ملء pixel_values حتى أكبر عدد من البلاطات في الدفعة. يحدد pixel_attention_mask البلاطات الفعلية ويتجاهل النموذج الحشو.
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())أضف "fine_route": True إلى processor_kwargs لتوجيه الدفعة الكاملة عبر المسار الدقيق؛ ثم يعيد المعالج tile_fine_mask. تتخذ الدفعة مسارًا واحدًا، لذا نفّذ الصفحات التي يرسلها الموجّه إلى المسار الدقيق كدفعة مستقلة.
تصدير DocLang باستخدام Docling
docling-core يحلل سلسلة doclang من مثال AutoModel إلى DoclingDocument، والتي يمكنك تسلسلها إلى ما تحتاجه.
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"))تتوفر مواصفة DocLang وأدوات doclang (التحقق / التغليف) في doclang-project/doclang. بينما يتواجد مُفكك التسلسل ومُصدِّرات DoclingDocument في docling-core.
ملاحظات
- الصفحة الكاملة طويلة: خصّص
max_new_tokensبالآلاف، وإلا فسيتم قطع DocLang بصمت. - تكون البلاطات بأبعاد 512x512، وتُرتَّب على الشبكة التي تتطابق بشكل أفضل مع نسبة أبعاد الصفحة، مع تحديد الحد الأقصى بواسطة
max_patches(الافتراضي 32) و16 بلاطة لكل جانب. الصفحة التي تتسع في بلاطة واحدة لا تحصل على صورة مصغّرة. - يمكن أن يحمل نقطة التفتيش قاعدة انتشار في إعدادات معالج الصور الخاص بها:
dense_max_patchesبدلاً منmax_patchesلصفحة واسعة منظر طبيعي (dense_min_aspect< width/height <=dense_max_aspect) التي كانت شبكةmax_patchesستقلّصها إلى ما دونdense_max_scale. تُعدّ صفحات الصحف المزدوجة الحالة النموذجية. تكون القاعدة معطّلة افتراضياً (dense_max_patches=0) ويجب أن تتطابق مع ما تم تدريب نقطة التفتيش به. - في نموذج 500M، يضاعف المسار الدقيق عدد رموز الصورة لكل بلاطة أربع مرات، من 64 إلى 256. استخدمه للصفحات الكثيفة فقط، أو اترك للموجّه اتخاذ القرار عبر predict_fine_route(). يستخدم نموذج 2B عدد 256 من رموز الصورة لكل بلاطة على مدار العملية (نسبة خلط البكسل 2).
GraniteDoclingConfig
فئة 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 )
المعاملات
- text_config (
Union[dict, ~configuration_utils.PreTrainedConfig]، اختياري) — كائن الإعدادات أو قاموس العمود الفقري النصي. - vision_config (
Union[dict, ~configuration_utils.PreTrainedConfig], اختياري) — كائن الإعدادات أو قاموس العمود الفقري البصري. - image_token_id (
int، اختياري، القيمة الافتراضية100337) — مؤشر رمز الصورة المستخدم كعنصر نائب للصور المدخلة. - tie_word_embeddings (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب ربط ترميزات الأوزان (weight embeddings) وفقاً لخريطةtied_weights_keysالخاصة بالنموذج. - use_cache (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب على النموذج إرجاع قيم المفاتيح/القيم الأخيرة للانتباه (لا تستخدمها جميع النماذج). لا ينطبق إلا إذا كانconfig.is_decoder=Trueأو إذا كان النموذج نموذجًا توليديًا يعتمد على المُفكِّك فقط. - pad_token_id (
int، اختياري، القيمة الافتراضية100256) — معرّف الرمز المستخدم للتعبئة في المفردات. - density_router_hidden_size (
int, اختياري) — حجم الطبقة المخفية لموجّه الكثافة، الذي يتنبأ من ميزات مُشفِّر الرؤية ما إذا كانت الصفحة بحاجة إلى مسار الوسيط الدقيق. لا يُبنى أي موجّه عندما تكون القيمةNone. - density_router_threshold (
float، اختياري، القيمة الافتراضية 0.4) — الاحتمال الذي إذا تجاوزه موجّه الكثافة يختار مسار الوصلة الدقيقة. - density_router_loss_weight (
float, اختياري، القيمة الافتراضية 0.1) — وزن خسارة موجّه الكثافة عند تقديمrouter_labels.
هذه فئة الإعدادات (configuration class) لتخزين إعدادات نموذج GraniteDoclingModel. تُستخدم لاستحداث نموذج Granite Docling وفقاً للحجج المحددة، مع تحديد بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ ibm-granite/granite-for-docling-500m
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
GraniteDoclingTextConfig
فئة 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 )
المعاملات
- vocab_size (
int، اختياري، القيمة الافتراضية133800) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطةinput_ids. - hidden_size (
int، اختياري، القيمة الافتراضية1024) — أبعاد التمثيلات المخفية. - intermediate_size (
int، اختياري، القيمة الافتراضية2048) — بعد تمثيلات MLP. - num_hidden_layers (
int، اختياري، القيمة الافتراضية28) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية16) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - num_key_value_heads (
int، اختياري، القيمة الافتراضية4) — هذا هو عدد رؤوس key_value التي يجب استخدامها لتنفيذ Grouped Query Attention. إذا كانnum_key_value_heads=num_attention_heads، فسيستخدم النموذج Multi Head Attention (MHA)، وإذا كانnum_key_value_heads=1فسيستخدم النموذج Multi Query Attention (MQA)، وإلا فسيتم استخدام GQA. عند تحويل نقطة تفتيش متعددة الرؤوس إلى نقطة تفتيش GQA، يجب بناء كل مجموعة من رؤوس key و value عن طريق meanpooling جميع الرؤوس الأصلية داخل تلك المجموعة. لمزيد من التفاصيل، راجع هذا الورقة. إذا لم يتم تحديد القيمة، فستكون القيمة الافتراضية هيnum_attention_heads. - hidden_act (
str، اختياري، القيمة الافتراضيةsilu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وغيرها. - max_position_embeddings (
int، اختياري، القيمة الافتراضية32768) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - rms_norm_eps (
float، اختياري، القيمة الافتراضية1e-05) — قيمة الإيبسلون المستخدمة في طبقات تطبيع rms. - use_cache (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب على النموذج إرجاع قيم المفاتيح/القيم الأخيرة للانتباه (لا تستخدمها جميع النماذج). لا ينطبق إلا إذا كانconfig.is_decoder=Trueأو إذا كان النموذج نموذجًا توليديًا يعتمد على المُفكِّك فقط. - pad_token_id (
int، اختياري، القيمة الافتراضية100256) — معرّف الرمز المستخدم للتعبئة في المفردات. - bos_token_id (
int، اختياري، القيمة الافتراضية100257) — معرّف الرمز المستخدم لبدء البث في المفردات. - eos_token_id (
Union[int, list[int]]، اختياري، القيمة الافتراضية100257) — معرّف الرمز المستخدم لنهاية التدفق في المفردات. - tie_word_embeddings (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب ربط ترميزات الأوزان (weight embeddings) وفقاً لخريطةtied_weights_keysالخاصة بالنموذج. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], اختياري) — قائمة تحتوي على معاملات التهيئة الخاصة بتضمينات RoPE. يجب أن تحتوي القائمة على قيمة لـrope_theta، ومعاملات اختيارية تُستخدم للتوسيع في حال رغبتَ في استخدام RoPE معmax_position_embeddingsأطول. - attention_bias (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام انحياز في طبقات الإسقاط للاستعلام والمفتاح والقيمة والمخرجات أثناء الانتباه الذاتي. - attention_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه. - mlp_bias (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام انحياز في طبقات up_proj وdown_proj وgate_proj ضمن طبقات MLP. - embedding_multiplier (
Union[float, int], اختياري، القيمة الافتراضية12.0) — معامل التوسيع المطبّق على تضمينات الكلمات. يُستخدم لتوسيع التضمينات نسبةً إلى حجم الطبقة المخفية. - logits_scaling (
Union[float, int], اختياري، القيمة الافتراضية4.0) — معامل التوسيع المطبَّق على قيم logits الناتجة قبل حساب توزيع الاحتمالات. - residual_multiplier (
Union[float, int]، اختياري، القيمة الافتراضية0.263) — معامل التوسيع المطبَّق على الاتصالات المتبقية. - attention_multiplier (
Union[float, int]، اختياري، القيمة الافتراضية0.015625) — معامل التوسيع المطبَّق على أوزان الانتباه.
هذه فئة الإعدادات (configuration class) لتخزين إعدادات نموذج GraniteDoclingModel. تُستخدم لاستحداث نموذج Granite Docling وفقاً للحجج المحددة، مع تحديد بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ ibm-granite/granite-for-docling-500m
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
>>> 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
فئة 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 )
المعاملات
- hidden_size (
int، اختياري، القيمة الافتراضية768) — أبعاد التمثيلات المخفية. - intermediate_size (
int، اختياري، القيمة الافتراضية3072) — أبعاد تمثيلات MLP. - num_hidden_layers (
int، اختياري، القيمة الافتراضية12) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية12) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - num_channels (
int، اختياري، القيمة الافتراضية3) — عدد قنوات الإدخال. - image_size (
Union[int, list[int], tuple[int, int]]، اختياري، القيمة الافتراضية512) — حجم (دقة) كل صورة. - patch_size (
Union[int, list[int], tuple[int, int]]، اختياري، القيمة الافتراضية16) — حجم (دقة) كل رقعة. - hidden_act (
str، اختياري، القيمة الافتراضيةgelu_pytorch_tanh) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وغيرها. - layer_norm_eps (
float, اختياري، القيمة الافتراضية1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة. - attention_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - out_hidden_size (
int، اختياري، القيمة الافتراضية 1024) — حجم المخفي لمفكك التشفير النصي الذي يقوم الوسيط (connector) بالمشروع إليه. - scale_factor (
int, اختياري، القيمة الافتراضية 4) — معامل خلط البكسلات (Pixel shuffle) للموصل. يتم تقليل كل بلاطة من(image_size // patch_size) ** 2من رموز الرؤية (vision tokens) بواسطةscale_factor ** 2. - deepstack_visual_indexes (
list[int]، اختياري، القيمة الافتراضية[3, 7, 10]) — فهارس طبقات مُشفِّر الرؤية التي تُسقط مدمجات DeepStack مخرجاتها. يشير الرقم 0 إلى مخرج الطبقة الأولى. - use_fine_route (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم بناء مسار الوصلة الدقيقة، الذي يُخلط البكسلات بمقدار نصفscale_factorويولّد أربعة أضعاف عدد رموز الصورة لكل بلاطة. يحتوي نقطة التفتيش بحجم 500 مليون على هذا الخيار، بينما لا تحتوي نقطة التفتيش بحجم 2 مليار عليه.
إعداد مُشفِّر الرؤية بنمط SigLIP الذي يُضمّن كل بلاطة 512x512 من الصفحة، وإعداد الوسيط الذي يُحوّل مخرجاته إلى رموز صورة.
مثال:
>>> 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
فئة transformers.GraniteDoclingImageProcessor
< source >( **kwargs: *<class 'transformers.models.granite_docling.image_processing_granite_docling.GraniteDoclingImageProcessorKwargs'> )
المعاملات
- do_convert_rgb (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية{'height' -- 512, 'width': 512}): يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت قيمة size من نوع int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None]، kwargs، القيمة الافتراضية3) — مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enumPILImageResampling. لا يؤثر إلا إذا كانت قيمةdo_resizeهيTrue. - do_rescale (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري، القيمة الافتراضية0.00392156862745098) — عامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطًا علىTrue. - do_normalize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.48145466, 0.4578275, 0.40821073]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم ضبطdo_normalizeعلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.26862954, 0.26130258, 0.27577711]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعمChannelDimension.FIRSTفقط. أُضيف من أجل التوافق مع المعالجات البطيئة. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - crop_to_patches (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تقسيم الصفحة إلى بلاطات 512x512 مرتبة على الشبكة التي تتطابق بشكل أفضل مع نسبة أبعادها (بحد أقصى 16 بلاطة لكل جانب). يمكن تجاوز ذلك عبر معاملcrop_to_patchesفي طريقةpreprocess. - min_patches (
int، kwargs، اختياري، القيمة الافتراضية 1) — الحد الأدنى لعدد البلاطات في الصفحة. لا يكون له تأثير إلا إذا تم تعيينcrop_to_patchesإلىTrue. يمكن تجاوز قيمته بواسطة معاملmin_patchesفي طريقةpreprocess. - max_patches (
int، kwargs، اختياري، القيمة الافتراضية 32) — الحد الأقصى لعدد البلاطات في الصفحة. لا يكون له تأثير إلا إذا تم تعيينcrop_to_patchesإلىTrue. يمكن تجاوز قيمته بواسطة معاملmax_patchesفي طريقةpreprocess. - fine_route (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كانت الصفحات تتبع مسار الوصلة الدقيقة، والذي ينتج أربعة أضعاف عدد رموز الصورة لكل بلاطة. - dense_max_patches (
int، kwargs، اختياري، القيمة الافتراضية 0) — الحد الأقصى لعدد البلاطات للصفحات التي تختارها قاعدة الانتشار (0 تعطّل القاعدة). تُقسَّم الصفحة إلى ما يصل إلىdense_max_patchesبلاطة بدلاً منmax_patchesعندما تُصغّر شبكةmax_patchesحجمها إلى ما دونdense_max_scaleوكان نسبة عرضها إلى ارتفاعها أعلى منdense_min_aspect(وأقصى قيمةdense_max_aspectعند ضبط ذلك). يجب أن يكون قد تم تدريب نقطة الحفظ باستخدام القاعدة نفسها. - dense_max_scale (
float، kwargs، اختياري، القيمة الافتراضية 0.0) — نسبة عرض اللوحة المُقسَّمة إلى عرض الصفحة عندmax_patches، والتي إذا كانت أقل منها تُحتسب الصفحة غير مُحلَّلة بدقة كافية. القيمة 0 تتخطى هذا الاختبار. - dense_min_aspect (
float، kwargs، اختياري، القيمة الافتراضية 0.0) — نسبة العرض إلى الارتفاع التي يجب أن تتجاوزها الصفحة للحصول علىdense_max_patches. القيمة 0 تتخطى هذا الاختبار. - dense_max_aspect (
float، kwargs، اختياري، القيمة الافتراضية 0.0) — نسبة العرض إلى الارتفاع التي لا يجوز أن تتجاوزها الصفحة للحصول علىdense_max_patches، مما يحافظ على الشرائح مثل أسطر الصيغة الواحدة علىmax_patches. القيمة 0 تعني عدم وجود حد أقصى.
يقسم الصفحة إلى بلاطات 512x512 على الشبكة التي تتطابق بشكل أفضل مع نسبة أبعادها (crop_to_patches، بحد أقصى max_patches بلاطة و16 لكل جانب)، ويضيف صورة مصغرة للصفحة بأكملها عندما تتجاوز البلاطة الواحدة، ويملأ عينات الدفعة حتى تساوي عدد البلاطات. pixel_attention_mask يحدد البلاطات الفعلية. fine_route=True يحدد العينات لمسار الوصلة الدقيقة (tile_fine_mask، قيمة واحدة لكل عينة).
preprocess
< 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
المعاملات
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — الصورة التي سيتم معالجتها مسبقاً. يتوقع صورة واحدة أو دفعة من الصور بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر صوراً بقيم بكسل بين 0 و1، فاضبطdo_rescale=False. - image_like_kwargs (
dict[str, Any], اختياري) — علامة مخصّصة للمطوّرين لإدخال مدخلات إضافية مشابهة للصور ستخضع أيضاً للمعالجة المسبقة. استخدم هذا الخيار فقط إذا لم يعمل تمرير المدخلات كحجج اسمية (kwargs). على سبيل المثال،preprocess(images, masks=masks)هو الخيار المفضّل، لكنه قد يسبّب مشاكل في أولوية الحُجج لبعض النماذج. في تلك الحالات يمكن استخدامpreprocess(images, image_like_inputs={"masks": masks})بدلاً منه. - do_convert_rgb (
bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت القيمة عددًا صحيحًا. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا تم تعيينdo_resizeإلىTrue. - do_rescale (
bool، kwargs، اختياري) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري) — معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطاً علىTrue. - do_normalize (
bool، kwargs، اختياري) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — انحراف المعيار للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعمChannelDimension.FIRSTفقط. أُضيف من أجل التوافق مع المعالجات البطيئة. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
يعيد
~image_processing_base.BatchFeature
- data (
dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’). - tensor_type (
Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.
معالجة صورة أو دفعة من الصور مسبقًا.
GraniteDoclingImageProcessorPil
فئة transformers.GraniteDoclingImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.granite_docling.image_processing_pil_granite_docling.GraniteDoclingImageProcessorKwargs'> )
المعاملات
- do_convert_rgb (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية{'height' -- 512, 'width': 512}): يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت قيمة size من نوع int. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None]، kwargs، القيمة الافتراضية3) — مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enumPILImageResampling. لا يؤثر إلا إذا كانت قيمةdo_resizeهيTrue. - do_rescale (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري، القيمة الافتراضية0.00392156862745098) — عامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطًا علىTrue. - do_normalize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.48145466, 0.4578275, 0.40821073]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم ضبطdo_normalizeعلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.26862954, 0.26130258, 0.27577711]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعمChannelDimension.FIRSTفقط. أُضيف من أجل التوافق مع المعالجات البطيئة. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - crop_to_patches (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تقسيم الصفحة إلى بلاطات 512x512 مرتبة على الشبكة التي تتطابق بشكل أفضل مع نسبة أبعادها (بحد أقصى 16 بلاطة لكل جانب). يمكن تجاوز ذلك عبر معاملcrop_to_patchesفي طريقةpreprocess. - min_patches (
int، kwargs، اختياري، القيمة الافتراضية 1) — الحد الأدنى لعدد البلاطات في الصفحة. لا يكون له تأثير إلا إذا تم تعيينcrop_to_patchesإلىTrue. يمكن تجاوز قيمته بواسطة معاملmin_patchesفي طريقةpreprocess. - max_patches (
int، kwargs، اختياري، القيمة الافتراضية 32) — الحد الأقصى لعدد البلاطات في الصفحة. لا يكون له تأثير إلا إذا تم تعيينcrop_to_patchesإلىTrue. يمكن تجاوز قيمته بواسطة معاملmax_patchesفي طريقةpreprocess. - fine_route (
bool، kwargs، اختياري، القيمة الافتراضيةFalse) — ما إذا كانت الصفحات تتبع مسار الوصلة الدقيقة، والذي ينتج أربعة أضعاف عدد رموز الصورة لكل بلاطة. - dense_max_patches (
int، kwargs، اختياري، القيمة الافتراضية 0) — الحد الأقصى لعدد البلاطات للصفحات التي تختارها قاعدة الانتشار (0 تعطّل القاعدة). تُقسَّم الصفحة إلى ما يصل إلىdense_max_patchesبلاطة بدلاً منmax_patchesعندما تُصغّر شبكةmax_patchesحجمها إلى ما دونdense_max_scaleوكان نسبة عرضها إلى ارتفاعها أعلى منdense_min_aspect(وأقصى قيمةdense_max_aspectعند ضبط ذلك). يجب أن يكون قد تم تدريب نقطة الحفظ باستخدام القاعدة نفسها. - dense_max_scale (
float، kwargs، اختياري، القيمة الافتراضية 0.0) — نسبة عرض اللوحة المُقسَّمة إلى عرض الصفحة عندmax_patches، والتي إذا كانت أقل منها تُحتسب الصفحة غير مُحلَّلة بدقة كافية. القيمة 0 تتخطى هذا الاختبار. - dense_min_aspect (
float، kwargs، اختياري، القيمة الافتراضية 0.0) — نسبة العرض إلى الارتفاع التي يجب أن تتجاوزها الصفحة للحصول علىdense_max_patches. القيمة 0 تتخطى هذا الاختبار. - dense_max_aspect (
float، kwargs، اختياري، القيمة الافتراضية 0.0) — نسبة العرض إلى الارتفاع التي لا يجوز أن تتجاوزها الصفحة للحصول علىdense_max_patches، مما يحافظ على الشرائح مثل أسطر الصيغة الواحدة علىmax_patches. القيمة 0 تعني عدم وجود حد أقصى.
واجهة GraniteDoclingImageProcessor الخاصة بـ PIL: نفس التقطيع 512x512، والمصغرات، وتعبئة القطع.
preprocess
< 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
المعاملات
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — الصورة التي سيتم معالجتها مسبقاً. يتوقع صورة واحدة أو دفعة من الصور بقيم بكسل تتراوح بين 0 و255. إذا كنت تمرر صوراً بقيم بكسل بين 0 و1، فاضبطdo_rescale=False. - image_like_kwargs (
dict[str, Any], اختياري) — علامة مخصّصة للمطوّرين لإدخال مدخلات إضافية مشابهة للصور ستخضع أيضاً للمعالجة المسبقة. استخدم هذا الخيار فقط إذا لم يعمل تمرير المدخلات كحجج اسمية (kwargs). على سبيل المثال،preprocess(images, masks=masks)هو الخيار المفضّل، لكنه قد يسبّب مشاكل في أولوية الحُجج لبعض النماذج. في تلك الحالات يمكن استخدامpreprocess(images, image_like_inputs={"masks": masks})بدلاً منه. - do_convert_rgb (
bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت القيمة عددًا صحيحًا. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا تم تعيينdo_resizeإلىTrue. - do_rescale (
bool، kwargs، اختياري) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري) — معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطاً علىTrue. - do_normalize (
bool، kwargs، اختياري) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — انحراف المعيار للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعمChannelDimension.FIRSTفقط. أُضيف من أجل التوافق مع المعالجات البطيئة. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية.
يعيد
~image_processing_base.BatchFeature
- data (
dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’). - tensor_type (
Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.
معالجة صورة أو دفعة من الصور مسبقًا.
GraniteDoclingProcessor
فئة transformers.GraniteDoclingProcessor
< source >( image_processortokenizer = Noneimage_seq_len: int = 64chat_template: str | None = None**kwargs )
المعاملات
- image_processor (
GraniteDoclingImageProcessor) — معالج الصور هو مدخل مطلوب. - tokenizer (
tokenizer_class) — مُجزِّئ النص (tokenizer) هو مدخل إلزامي. - image_seq_len (
int، اختياري، القيمة الافتراضية 64) — عدد رموز<image>لكل بلاطة في المسار الخشن. يتم حسابها على النحو التالي:image_seq_len = int(((image_size // patch_size) ** 2) / (scale_factor**2)). - chat_template (
str، اختياري) — قالب Jinja لتحويل قوائم الرسائل في المحادثة إلى نص قابل للتجزئة.
ينشئ GraniteDoclingProcessor الذي يغلّف معالج صور ومُرمِّز في معالج واحد.
يوفر GraniteDoclingProcessor جميع وظائف GraniteDoclingImageProcessor وtokenizer_class. راجع ~GraniteDoclingImageProcessor و~tokenizer_class لمزيد من المعلومات.
__call__
< source >( images = Nonetext = None**kwargs ) → BatchEncoding
المعاملات
- 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 (
strأو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات من إطار عمل محدد. القيم المقبولة هي:'pt': إرجاع كائناتtorch.Tensorمن PyTorch.'np': إرجاع كائناتnp.ndarrayمن NumPy.
يعيد
الموجّهات المُرمّزة مع pixel_values وpixel_attention_mask، وtile_fine_mask عندما يكون fine_route=True. تُنشئ شبكات البلاطات الموجّه فقط ولا تُعاد.
GraniteDoclingVisionModel
فئة transformers.GraniteDoclingVisionModel
< source >( config: GraniteDoclingVisionConfig )
المعاملات
- config (GraniteDoclingVisionConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
المُشفِّر البصري في GraniteDocling مع مُوصِله في الأعلى: يُضمّن بلاطات الصفحة ويعيد رموز الصورة لكل بلاطة معًا مع ميزات DeepStack المُساقطة.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( pixel_values: FloatTensorfine: bool = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
تتجاوز طريقة GraniteDoclingVisionModel الأمامية (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
GraniteDoclingModel
فئة transformers.GraniteDoclingModel
< source >( config: GraniteDoclingConfig )
المعاملات
- config (GraniteDoclingConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج GraniteDocling يتكون من مُشفِّر بصري، ومُوصِل، ومُفكِّك نصي، ويُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonecache: 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)
المعاملات
- input_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- position_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - cache (
~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً منcacheالذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندماuse_cache=Trueأوconfig.use_cache=True.يُسمح فقط بمرجع Cache كمدخل، راجد دليل kv cache الخاص بنا. إذا لم يتم تمرير أي
cache، فسيتم تهيئة DynamicCache افتراضيًا.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
إذا تم استخدام
cache، يُتوقع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - inputs_embeds (
torch.FloatTensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث التضمينية الداخلية للنموذج. - pixel_values (
torch.FloatTensorمن الشكل(batch_size, num_channels, image_size, image_size)، اختياري) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسلات باستخدامimage_processor_class. راجعimage_processor_class.__call__للتفاصيل (processor_classيستخدمimage_processor_classلمعالجة الصور). - tile_fine_mask (
torch.BoolTensorمن الشكل(batch_size,)، اختياري) — جميع القيم True عند استدعاء المعالج معfine_route=True: حيث يمر الدفعة عبر مسار الوصلة الدقيقة، والذي ينتج عنه أربعة أضعاف عدد رموز الصورة لكل بلاطة. - pixel_attention_mask (
torch.BoolTensorمن الشكل(batch_size, num_tiles)، اختياري) — البلاطات الفعلية، كما تُرجعها المعالجة. البلاطات المعبّأة تكون قيمتها false. مطلوب معpixel_values. - mm_encoder_outputs (
dict، اختياري) — قاموس تكون مفاتيحه هي الوسائط المدعومة وقيمها هي المخرجات المُرمّزة لذلك الوسط. كل مخرَج مُرمَّز هو مجموعة (tuple) تتكون من (pooler_output، اختياري:last_hidden_states، اختياري:hidden_states، اختياري:attentions)pooler_outputذو الشكل(batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من الميزات متعددة الوسائط للمُشفِّر المُدمجة في تضمينات النص.
يعيد
GraniteDoclingBaseModelOutputWithPast أو tuple(torch.Tensor)
GraniteDoclingBaseModelOutputWithPast أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر
مختلفة اعتمادًا على التهيئة (None) والمدخلات.
Inputs fed to the model can have an arbitrary number of images. To account for this, pixel_values fed to
the model have image padding -> (batch_size, max_num_tiles, 3, image_size, image_size) where max_num_tiles
is the maximum number of tiles among the batch_size samples in the batch. Padding tiles are false in pixel_attention_mask and are discarded before the vision encoder.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — تسلسل حالات مخفية عند مخرجات الطبقة الأخيرة من النموذج.cache (
~cache_utils.Cache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عندconfig.use_cache=True) — إنه كائن من Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي، وفي كتل الانتباه المتقاطع اختياريًا إذا كان
config.is_encoder_decoder=True) يمكن استخدامها (انظر مدخلcache) لتسريع فك الترميز التسلسلي.hidden_states (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
image_hidden_states (
tuple[torch.Tensor]من الشكل(batch_size, num_images, sequence_length, hidden_size)، اختياري) — حالات الخفاء للصور التي ينتجها نموذج الترميز البصري بعد إسقاط حالة الخفاء الأخيرة.router_logits (
torch.FloatTensorمن الشكل(batch_size,)، اختياري) — قيم اللوجيتس الخاصة بموجّه الكثافة، قيمة واحدة لكل عينة. تُعاد عندما يحتوي النموذج على موجّه وتُقدَّمpixel_values.
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)
المعاملات
- pixel_values (
torch.FloatTensorمن الشكل(batch_size, num_tiles, num_channels, image_size, image_size)) — المصفوفات (Tensors) المقابلة لبلاطات الصورة المدخلة. - pixel_attention_mask (
torch.BoolTensorمن الشكل(batch_size, num_tiles)) — البلاطات الفعلية، كما تُرجعها المعالجة. البلاطات المعبّأة تكون قيمتها false. - tile_fine_mask (
torch.BoolTensorمن الشكل(batch_size,)، اختياري) — يتطلب استدعاء المعالج معfine_route=True: حيث يسلك الدفعة مسار الوصلة الدقيقة، مما يؤدي إلى إنتاج أربعة أضعاف عدد رموز الصورة لكل بلاطة.
يعيد
GraniteDoclingImageFeaturesOutput أو tuple(torch.Tensor)
GraniteDoclingImageFeaturesOutput أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (GraniteDoclingConfig) والمدخلات.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.pooler_output (
tuple[torch.FloatTensor]بطولbatch_size) — رموز الصورة لكل عينة، بترتيب البلاطات، والمُسقطة إلى حجم الخفاء النصي. كل متجه له الشكل(num_image_tokens, hidden_size). تُنتج البلاطةimage_seq_lenرمزًا على مسار الوصلة الخشن، وأربعة أضعاف ذلك على المسار الدقيق. يكرر التوليد هذه المتجهات لكل عينة عبر الحزم.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
deepstack_features (
list[tuple[torch.FloatTensor]]، اختياري) — حالة مخفية واحدة مشروحة من مشفّر الرؤية الوسيط لكل عنصر فيconfig.deepstack_visual_indexes. يتم تقسيم كل عنصر لكل عينة، بنفس التخطيط الخاص بـpooler_output.router_logits (
torch.FloatTensorمن الشكل(batch_size,)، اختياري) — قيم اللوجيتس الخاصة بموجّه الكثافة، قيمة واحدة لكل عينة. تُعاد عندما يحتوي النموذج على موجّه.
predict_fine_route
< source >( pixel_values: FloatTensorpixel_attention_mask: BoolTensor ) → torch.BoolTensor of shape (batch_size,)
المعاملات
- pixel_values (
torch.FloatTensorمن الشكل(batch_size, num_tiles, num_channels, image_size, image_size)) — المصفوفات (Tensors) المقابلة لبلاطات الصورة المدخلة. - pixel_attention_mask (
torch.BoolTensorمن الشكل(batch_size, num_tiles)) — البلاطات الفعلية، كما تُرجعها المعالجة.
يعيد
torch.BoolTensor من الشكل (batch_size,)
True للعينات التي تحتاج إلى مسار الوصلة الدقيقة.
يتنبأ بموجّه الكثافة بالعينات التي تحتاج إلى مسار الوصلة الدقيقة. قم بتوجيهها عن طريق استدعاء المعالج مرة أخرى مع fine_route=True.
GraniteDoclingTextModel
فئة transformers.GraniteDoclingTextModel
< source >( config: GraniteDoclingTextConfig )
المعاملات
- config (GraniteDoclingTextConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Granite Docling Text الخام الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonecache: 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)
المعاملات
- input_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- position_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - cache (
~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً منcacheالذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندماuse_cache=Trueأوconfig.use_cache=True.يُسمح فقط بمرجع Cache كمدخل، راجد دليل kv cache الخاص بنا. إذا لم يتم تمرير أي
cache، فسيتم تهيئة DynamicCache افتراضيًا.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
إذا تم استخدام
cache، يُتوقع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - inputs_embeds (
torch.FloatTensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث التضمينية الداخلية للنموذج. - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، تُعاد حالات مفاتيح وقيمcacheويمكن استخدامها لتسريع فك الترميز (انظرcache). - visual_pos_masks (
torch.BoolTensorمن الشكل(batch_size, sequence_length)، اختياري) — مواضع رموز الصور التي تستقبل ميزات DeepStack. - deepstack_visual_embeds (
list[torch.Tensor]، اختياري) — ميزات DeepStack، حيث يكون شكل كل منها(num_image_tokens, hidden_size). يُضاف العنصرiإلى الحالات المخفية عندvisual_pos_masksبعد طبقة المُفكِّكi.
يعيد
BaseModelOutputWithPast أو tuple(torch.Tensor)
BaseModelOutputWithPast أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتكون من عناصر مختلفة
تعتمد على الإعداد (None) والمدخلات.
تتجاوز طريقة GraniteDoclingTextModel الأمامية (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.إذا تم استخدام
cache، فإن الحالة المخفية الأخيرة فقط لتسلسلات الشكل(batch_size, 1, hidden_size)هي التي تُخرج.cache (
Cache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عندconfig.use_cache=True) — إنه كائن من Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي، وفي كتل الانتباه المتقاطع اختياريًا إذا كان
config.is_encoder_decoder=True) يمكن استخدامها (انظر مدخلcache) لتسريع فك الترميز التسلسلي.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
GraniteDoclingForConditionalGeneration
فئة transformers.GraniteDoclingForConditionalGeneration
< source >( config: GraniteDoclingConfig )
المعاملات
- config (GraniteDoclingConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج GraniteDocling مع رأس لنمذجة اللغة. يتكون من مشفر بصري، وموصل، ومفكك نص، مع رأس لنمذجة اللغة في الأعلى.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonecache: 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)
المعاملات
- input_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- position_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - cache (
~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً منcacheالذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندماuse_cache=Trueأوconfig.use_cache=True.يُسمح فقط بمرجع Cache كمدخل، راجد دليل kv cache الخاص بنا. إذا لم يتم تمرير أي
cache، فسيتم تهيئة DynamicCache افتراضيًا.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
إذا تم استخدام
cache، يُتوقع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - inputs_embeds (
torch.FloatTensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. هذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث التضمينية الداخلية للنموذج. - pixel_values (
torch.FloatTensorمن الشكل(batch_size, num_channels, image_size, image_size)، اختياري) — المصفوفات المقابلة للصور المدخلة. يمكن الحصول على قيم البكسلات باستخدامimage_processor_class. راجعimage_processor_class.__call__للتفاصيل (processor_classيستخدمimage_processor_classلمعالجة الصور). - tile_fine_mask (
torch.BoolTensorمن الشكل(batch_size,)، اختياري) — جميع القيم True عند استدعاء المعالج معfine_route=True: حيث يمر الدفعة عبر مسار الوصلة الدقيقة، والذي ينتج عنه أربعة أضعاف عدد رموز الصورة لكل بلاطة. - pixel_attention_mask (
torch.BoolTensorمن الشكل(batch_size, num_tiles)، اختياري) — البلاطات الفعلية، كما تُرجعها المعالجة. البلاطات المعبّأة تكون قيمتها false. مطلوب معpixel_values. - mm_encoder_outputs (
dict، اختياري) — قاموس تكون مفاتيحه هي الوسائط المدعومة وقيمها هي المخرجات المُرمّزة لذلك الوسط. كل مخرَج مُرمَّز هو مجموعة (tuple) تتكون من (pooler_output، اختياري:last_hidden_states، اختياري:hidden_states، اختياري:attentions)pooler_outputذو الشكل(batch_size, sequence_length, hidden_size)، اختياري) هو تسلسل من الميزات متعددة الوسائط للمُشفِّر المُدمجة في تضمينات النص. - labels (
torch.LongTensorمن الشكل(batch_size, sequence_length)، اختياري) — التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس إما ضمن[0, ..., config.vocab_size]أوmodel.image_token_id(حيثmodelهو مثلك منGraniteDoclingForConditionalGeneration). تُتجاهل الرموز التي فهارسها مضبوطة علىmodel.image_token_id(تُقنَّع)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن[0, ..., config.vocab_size]. - router_labels (
torch.Tensorمن الشكل(batch_size,)، اختياري) — أهداف موجّه الكثافة،1(أوTrue) للعينات التي تحتاج إلى مسار الوصلة الدقيقة و0في الحالات الأخرى. يُقدَّم كرقم عشري أو منطقي أو صحيح؛ خسارة الموجّه هي إنتروبيا متقاطعة ثنائية على القيم اللوجستية. - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، تُعاد حالات مفاتيح وقيمcacheويمكن استخدامها لتسريع فك الترميز (انظرcache). - logits_to_keep (
Union[int, torch.Tensor]، اختياري، القيمة الافتراضية0) — إذا كانint، يتم حساب logits لآخرlogits_to_keepرموز. إذا كانت القيمة0، يتم حساب logits لجميعinput_ids(حالة خاصة). لا يُحتاج إلى logits إلا للرمز الأخير في عملية التوليد، ويمكن أن يوفر حسابها لذلك الرمز وحده ذاكرة كبيرة، وهو أمر مهم بشكل ملحوظ للتسلسلات الطويلة أو حجم المفردات الكبير. إذا كانtorch.Tensor، يجب أن يكون بعدًا واحدًا (1D) ويتوافق مع الفهارس التي يجب الاحتفاظ بها في بُعد طول التسلسل. يكون هذا مفيدًا عند استخدام تنسيق المصفوفات المعبأة (packed tensor format) (بعد واحد لكل من الدفعة وطول التسلسل).
يعيد
GraniteDoclingCausalLMOutputWithPast أو tuple(torch.Tensor)
GraniteDoclingCausalLMOutputWithPast أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر
مختلفة اعتمادًا على الإعداد (None) والمدخلات.
تتجاوز طريقة GraniteDoclingForConditionalGeneration الأمامية الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.FloatTensorمن الشكل(1,)، اختياري، يُعاد عند توفيرlabels) — خسارة نمذجة اللغة (لتوقع الرمز التالي).logits (
torch.FloatTensorمن الشكل(batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات كل رمز في المفردات قبل SoftMax).cache (
~cache_utils.Cache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عندconfig.use_cache=True) — إنه كائن من Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي، وفي كتل الانتباه المتقاطع اختياريًا إذا كان
config.is_encoder_decoder=True) يمكن استخدامها (انظر مدخلcache) لتسريع فك الترميز التسلسلي.hidden_states (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
image_hidden_states (
tuple[torch.Tensor]من الشكل(batch_size, num_images, sequence_length, hidden_size)، اختياري) — حالات الخفاء للصور التي ينتجها نموذج الترميز البصري بعد إسقاط حالة الخفاء الأخيرة.router_logits (
torch.FloatTensorمن الشكل(batch_size,)، اختياري) — قيم اللوجيتس الخاصة بموجّه الكثافة، قيمة واحدة لكل عينة. تُعاد عندما يحتوي النموذج على موجّه وتُقدَّمpixel_values.
مثال:
>>> 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)
المعاملات
- pixel_values (
torch.Tensorمن الشكل(batch_size, num_channels, image_size, image_size)) — المصفوفات المقابلة للصور المدخلة. - pixel_attention_mask (
torch.LongTensor، اختياري) — قناع الانتباه الذي يُظهر المناطق المُكمّلة في الصورة.
يعيد
BaseModelOutputWithPooling أو tuple(torch.Tensor)
BaseModelOutputWithPooling أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (GraniteDoclingConfig) والمدخلات.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.pooler_output (
torch.Tensorمن الشكل(batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول من التسلسل (رمز التصنيف) بعد المعالجة الإضافية عبر الطبقات المستخدمة في مهمة ما قبل التدريب المساعدة. على سبيل المثال، بالنسبة لعائلة نماذج BERT، تُرجع هذه الخاصية رمز التصنيف بعد معالجته عبر طبقة خطية ودالة تفعيل tanh. تُدرَّب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء ما قبل التدريب.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
مثال:
>>> 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]