Transformers documentation

GraniteDocling

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.23.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

تمت مساهمة هذا النموذج في Hugging Face Transformers في 2026-11-12.

FlashAttention SDPA

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> يحوّل الصفحة بأكملها: التخطيط، والنصوص، والجداول، والمعادلات، والكود، والمخططات، والصور.

خط أنابيب
AutoModel
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)

لتحويل بعض العناصر فقط، غيّر النص التوجيهي إلى أحد الخيارات الواردة في الجدول أعلاه، على سبيل المثال <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

< >

( 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

< >

( 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.config

GraniteDoclingVisionConfig

فئة transformers.GraniteDoclingVisionConfig

< >

( 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.config

GraniteDoclingImageProcessor

فئة transformers.GraniteDoclingImageProcessor

< >

( **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) — مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enum PILImageResampling. لا يؤثر إلا إذا كانت قيمة 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

< >

( 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

< >

( **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) — مرشح إعادة العينة المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم enum PILImageResampling. لا يؤثر إلا إذا كانت قيمة 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

< >

( 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

< >

( 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__

< >

( 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, set do_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, set is_split_into_words=True` to avoid ambiguity with batched inputs.
  • return_tensors (str أو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات من إطار عمل محدد. القيم المقبولة هي:
    • 'pt': إرجاع كائنات torch.Tensor من PyTorch.
    • 'np': إرجاع كائنات np.ndarray من NumPy.

يعيد

BatchEncoding

الموجّهات المُرمّزة مع pixel_values وpixel_attention_mask، وtile_fine_mask عندما يكون fine_route=True. تُنشئ شبكات البلاطات الموجّه فقط ولا تُعاد.

GraniteDoclingVisionModel

فئة transformers.GraniteDoclingVisionModel

< >

( config: GraniteDoclingVisionConfig )

المعاملات

  • config (GraniteDoclingVisionConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

المُشفِّر البصري في GraniteDocling مع مُوصِله في الأعلى: يُضمّن بلاطات الصفحة ويعيد رموز الصورة لكل بلاطة معًا مع ميزات DeepStack المُساقطة.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( pixel_values: FloatTensorfine: bool = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )

المعاملات

  • pixel_values (torch.FloatTensor من الشكل (num_tiles, num_channels, image_size, image_size)) — بلاطات مُسطّحة عبر الدفعة، دون بلاطات الحشو.
  • fine (bool، اختياري، الافتراضي False) — ما إذا كانت البلاطات تتبع مسار الوصلة الدقيقة، والذي ينتج أربعة أضعاف عدد رموز الصورة لكل بلاطة.

تتجاوز طريقة GraniteDoclingVisionModel الأمامية (forward) الطريقة الخاصة __call__.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن Module بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

GraniteDoclingModel

فئة transformers.GraniteDoclingModel

< >

( config: GraniteDoclingConfig )

المعاملات

  • config (GraniteDoclingConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج GraniteDocling يتكون من مُشفِّر بصري، ومُوصِل، ومُفكِّك نصي، ويُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( 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

< >

( 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

< >

( 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

< >

( config: GraniteDoclingTextConfig )

المعاملات

  • config (GraniteDoclingTextConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج Granite Docling Text الخام الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( 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

< >

( config: GraniteDoclingConfig )

المعاملات

  • config (GraniteDoclingConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج GraniteDocling مع رأس لنمذجة اللغة. يتكون من مشفر بصري، وموصل، ومفكك نص، مع رأس لنمذجة اللغة في الأعلى.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( 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

< >

( 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]
Update on GitHub