Transformers documentation

QianfanOCR

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

and get access to the augmented documentation experience

to get started

Bu model, 2026-03-11 tarihinde HF papers'ta yayımlandı ve 2026-04-17 tarihinde Hugging Face Transformers'a katkıda bulunuldu.

QianfanOCR

Genel Bakış

Qianfan-OCR, Baidu Qianfan Ekibi tarafından geliştirilen 4B parametreli uçtan uca bir belge zekâsı modelidir. Daxiang Dong ve diğerleri tarafından Qianfan-OCR: A Unified End-to-End Model for Document Intelligence başlıklı makalede önerilmiştir.

Geleneksel çok aşamalı OCR boru hatlarının aksine Qianfan-OCR, doğrudan görüntüden metne dönüştürme gerçekleştirir ve yapılandırılmış belge ayrıştırma ile tablo çıkarımından grafik anlama, belge soru-cevabı ve anahtar bilgi çıkarımına kadar geniş bir yelpazede istem (prompt) tabanlı görevleri destekler; tüm bunları tek bir model içinde yapar.

Model, üç bileşenden oluşan çok modlu bir köprü mimarisi benimser:

  • Görüntü Kodlayıcı: AnyResolution tasarımına sahip Qianfan-ViT (4K'ye kadar), 448×448 karoyu başına 256 görsel jeton, görüntü başına en fazla 4.096 jeton
  • Dil Modeli: 32K bağlam (131K'ye kadar genişletilebilir) ile Qwen3-4B
  • Çapraz Modallı Adaptör: GELU aktivasyonlu 2 katmanlı MLP

Temel bir yenilik, Layout-as-Thought yaklaşımıdır: <think> token'ları tarafından tetiklenen isteğe bağlı bir düşünme aşamasıdır. Bu aşamada model, nihai çıktıları üretmeden önce yapılandırılmış yerleşim temsilleri (sınırlayıcı kutular, öğe türleri, okuma sırası) oluşturur. Bu özellik, karışık öğe türleri içeren heterojen sayfalar (sınav kâğıtları, teknik raporlar, gazeteler) için özellikle faydalıdır.

Model, çeşitli benchmarklarda son derece başarılı sonuçlar elde eder:

  • #1 uçtan uca model OmniDocBench v1.5'te genel puanı 93.12
  • #1 uçtan uca model OlmOCR Bench'te 79,8 puanla
  • Beş açık KIE benchmark'unda ortalama 87,9 puanla #1 on Key Information Extraction

Bu model, Baidu Qianfan Ekibi tarafından katkıda bulunmuştur.

Kullanım örneği

Belge ayrıştırma

from transformers import AutoModelForImageTextToText, AutoProcessor


model = AutoModelForImageTextToText.from_pretrained("baidu/Qianfan-OCR", device_map="auto")
processor = AutoProcessor.from_pretrained("baidu/Qianfan-OCR")

image = "https://huggingface.co/datasets/hf-internal-testing/fixtures_got_ocr/resolve/main/image_ocr.jpg"
messages = [{"role": "user", "content": [{"type": "image", "url": image}, {"type": "text", "text": "Parse this document to Markdown."}]}]

inputs = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=True, return_tensors="pt").to(model.device)

generate_ids = model.generate(**inputs, max_new_tokens=64)
processor.decode(generate_ids[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True)

Düzen-olarak-Düşünme (düşünme modu)

Karmaşık yerleşimlere, kalabalık öğelere veya standart olmayan okuma sıralarına sahip belgeler için, apply_chat_template içinde enable_thinking=True ayarlayarak düşünme modunu etkinleştirin. Model, önce yapılandırılmış yerleşim analizi (sınırlayıcı kutuları, öğe türleri, okuma sırası) oluşturur, ardından nihai çıktıyı üretir.

from transformers import AutoModelForImageTextToText, AutoProcessor


model = AutoModelForImageTextToText.from_pretrained("baidu/Qianfan-OCR", device_map="auto")
processor = AutoProcessor.from_pretrained("baidu/Qianfan-OCR")

image = "https://huggingface.co/datasets/hf-internal-testing/fixtures_got_ocr/resolve/main/image_ocr.jpg"
messages = [{"role": "user", "content": [{"type": "image", "url": image}, {"type": "text", "text": "Parse this document to Markdown."}]}]

inputs = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=True, return_tensors="pt", enable_thinking=True).to(model.device)

generate_ids = model.generate(**inputs, max_new_tokens=128)
processor.decode(generate_ids[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True)

Toplu çıkarım

from transformers import AutoModelForImageTextToText, AutoProcessor


model = AutoModelForImageTextToText.from_pretrained("baidu/Qianfan-OCR", device_map="auto")
processor = AutoProcessor.from_pretrained("baidu/Qianfan-OCR")

image1 = "https://huggingface.co/datasets/hf-internal-testing/fixtures_got_ocr/resolve/main/image_ocr.jpg"
image2 = "https://huggingface.co/datasets/hf-internal-testing/fixtures_got_ocr/resolve/main/multi_box.png"
messages = [
    [{"role": "user", "content": [{"type": "image", "url": image1}, {"type": "text", "text": "Parse this document to Markdown."}]}],
    [{"role": "user", "content": [{"type": "image", "url": image2}, {"type": "text", "text": "OCR the text in the image."}]}],
]

inputs = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=True, return_tensors="pt", padding=True).to(model.device)

generate_ids = model.generate(**inputs, max_new_tokens=64)
processor.batch_decode(generate_ids[:, inputs["input_ids"].shape[1]:], skip_special_tokens=True)

QianfanOCRConfig

sınıf transformers.QianfanOCRConfig

< >

( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneimage_token_id: int = 151667image_seq_length: int = 256downsample_ratio: float = 0.5projector_hidden_act: str = 'gelu'vision_feature_layer: int | list[int] = -1vision_feature_select_strategy: str = 'default'tie_word_embeddings: bool = False )

Parametreler

  • vision_config (Union[dict, ~configuration_utils.PreTrainedConfig], isteğe bağlı) — Görüntü omurgasının yapılandırma nesnesi veya sözlüğü.
  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig], isteğe bağlı) — Metin omurgasının yapılandırma nesnesi veya sözlüğü.
  • image_token_id (int, isteğe bağlı, varsayılan 151667) — Girdi görselleri için yer tutucu olarak kullanılan görsel belirteç indeksi.
  • image_seq_length (int, isteğe bağlı, varsayılan 256) — Tek bir gömme için dizi uzunluğu.
  • downsample_ratio (float, isteğe bağlı, varsayılan 0.5) — Görseli küçültmek için kullanılan çarpan.
  • projector_hidden_act (str, isteğe bağlı, varsayılan gelu) — Çok modlu projeksiyoncu tarafından kullanılan aktivasyon fonksiyonu.
  • vision_feature_layer (Union[int, list[int]], isteğe bağlı, varsayılan -1) — Görüntü özelliğinin seçileceği katmanın indeksi. Birden fazla indeks sağlanırsa, ilgili indekslere ait görüntü özellikleri birleştirilerek görüntü özellikleri oluşturulur.
  • vision_feature_select_strategy (str, isteğe bağlı, varsayılan default) — Görüntü omurgasından (vision backbone) görüntü özelliğini seçmek için kullanılan özellik seçme stratejisi.
  • tie_word_embeddings (bool, isteğe bağlı, varsayılan False) — Modelin tied_weights_keys eşlemesine göre ağırlık gömme bağlamalarının yapılıp yapılmayacağı.

Bu, bir QianfanOCRModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Qianfan Ocr modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, baidu/Qianfan-OCR ile benzer bir yapılandırma elde edilir.

Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.

Örnek:

>>> # Initializing a QianfanOCR style configuration
>>> configuration = QianfanOCRConfig()

>>> # Initializing a model from the configuration
>>> model = QianfanOCRForConditionalGeneration(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

QianfanOCRVisionConfig

sınıf transformers.QianfanOCRVisionConfig

< >

( 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 = 1024num_hidden_layers: int = 24num_attention_heads: int = 16attention_bias: bool = Trueuse_qk_norm: bool = Falseintermediate_size: int = 4096hidden_act: str = 'gelu'hidden_dropout_prob: float | int = 0.0attention_dropout: float | int = 0.0projection_dropout: float | int = 0.0initializer_range: float = 0.02norm_type: str = 'layer_norm'layer_norm_eps: float = 1e-06image_size: int | list[int] | tuple[int, ...] = (448, 448)patch_size: int | list[int] | tuple[int, ...] = (14, 14)num_channels: int = 3use_mask_token: bool = Falseuse_absolute_position_embeddings: bool = Truelayer_scale_init_value: float = 0.1use_mean_pooling: bool = Truedrop_path_rate: float = 0.1 )

Parametreler

  • hidden_size (int, isteğe bağlı, varsayılan 1024) — Gizli temsillerin boyutu.
  • num_hidden_layers (int, isteğe bağlı, varsayılan 24) — Transformer çözücüdeki gizli katman sayısı.
  • num_attention_heads (int, isteğe bağlı, varsayılan 16) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.
  • attention_bias (bool, isteğe bağlı, varsayılan True) — Öz-dikkat sırasında sorgu, anahtar, değer ve çıktı projeksiyon katmanlarında önyargı (bias) kullanılıp kullanılmayacağı.
  • use_qk_norm (bool, isteğe bağlı, varsayılan False) — Dikkat mekanizmasında sorgu-anahtar normalizasyonunun kullanılıp kullanılmayacağı.
  • intermediate_size (int, isteğe bağlı, varsayılan 4096) — MLP temsillerinin boyutu.
  • hidden_act (str, isteğe bağlı, varsayılan gelu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin, "gelu", "relu", "silu" vb.
  • hidden_dropout_prob (Union[float, int], isteğe bağlı, varsayılan 0.0) — Gömme, kodlayıcı ve havuzlayıcıdaki tüm tam bağlı katmanlar için dropout olasılığı.
  • attention_dropout (Union[float, int], isteğe bağlı, varsayılan 0.0) — Dikkat olasılıkları için dropout oranı.
  • projection_dropout (float, isteğe bağlı, varsayılan 0.0) — Projeksiyon katmanı için dropout olasılığı.
  • initializer_range (float, isteğe bağlı, varsayılan 0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.
  • norm_type (str, isteğe bağlı, varsayılan "layer_norm") — Encoder'da kullanılacak normalizasyon türü. "layer_norm" veya "rms_norm" olabilir.
  • layer_norm_eps (float, isteğe bağlı, varsayılan 1e-06) — Katman normalizasyon katmanları tarafından kullanılan epsilon.
  • image_size (Union[int, list[int], tuple[int, ...]], isteğe bağlı, varsayılan (448, 448)) — Her bir görüntünün boyutu (çözünürlüğü).
  • patch_size (Union[int, list[int], tuple[int, ...]], isteğe bağlı, varsayılan (14, 14)) — Her yamanın boyutu (çözünürlüğü).
  • num_channels (int, isteğe bağlı, varsayılan 3) — Giriş kanal sayısı.
  • use_mask_token (bool, isteğe bağlı, varsayılan False) — Maskeli görüntü modelleme için bir mask token'ı kullanılıp kullanılmayacağı.
  • use_absolute_position_embeddings (bool, isteğe bağlı, varsayılan True) — Mutlak konum gömme kullanılıp kullanılmayacağı.
  • layer_scale_init_value (float, isteğe bağlı, varsayılan 0.1) — Öz-dikkat katmanlarında kullanılacak ölçek. Baz modeller için 0.1, büyük modeller için 1e-6. Katman ölçeklemeyi devre dışı bırakmak için 0 olarak ayarlayın.
  • use_mean_pooling (bool, isteğe bağlı, varsayılan True) — Sınıflandırma başlığı uygulanmadan önce, CLS token'ının son gizli durumu yerine yamaların son gizli durumlarının ortalama havuzlamasının (mean pooling) kullanılıp kullanılmayacağı.
  • drop_path_rate (float, isteğe bağlı, varsayılan 0.1) — Stochastic depth için dropout oranı.

Bu, bir QianfanOCRModel yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Qianfan Ocr modelinin örneklenmesinde, model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneklendiğinde, baidu/Qianfan-OCR ile benzer bir yapılandırma elde edilir.

Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.

Örnek:

>>> # Initializing a QianfanOCR vision style configuration
>>> configuration = QianfanOCRVisionConfig()

>>> # Initializing a model from the configuration
>>> model = QianfanOCRVisionModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

QianfanOCRProcessor

sınıf transformers.QianfanOCRProcessor

< >

( image_processor = Nonetokenizer = Noneimage_seq_length: int = 256chat_template = Noneimage_placeholder_token: str = '<image>'**kwargs )

Parametreler

  • image_processor (GotOcr2ImageProcessor) — Görsel işleyici zorunlu bir girdidir.
  • tokenizer (Qwen2Tokenizer) — Tokenizer zorunlu bir girdidir.
  • image_seq_length (int, opsiyonel, varsayılan 256) — Girdideki her görüntü için kullanılacak görüntü jetonlarının sayısı. Geriye dönük uyumluluk için eklendi ancak bu, gelecekteki modellerde bir işlemci özniteliği olarak ayarlanmalıdır.
  • chat_template (str) — Bir sohbet içindeki mesaj listelerini tokenize edilebilir bir metne dönüştürmek için kullanılan Jinja şablonu.
  • image_placeholder_token (str, opsiyonel, varsayılan ””) — Görüntü konumlarını işaretlemek için sohbet şablonu tarafından üretilen belirteç. İşleme sırasında tam <img><IMG_CONTEXT>...<IMG_CONTEXT></img> dizisiyle değiştirilir.

Bir görüntü işleyiciyi ve bir belirteç oluşturucuyu tek bir işleyicide birleştiren bir QianfanOCRProcessor oluşturur.

[QianfanOCRProcessor], [GotOcr2ImageProcessor] ve [Qwen2Tokenizer] sınıflarının tüm işlevlerini sunar. Daha fazla bilgi için [~GotOcr2ImageProcessor] ve [~Qwen2Tokenizer] belgelerini inceleyin.

__call__

< >

( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor'], NoneType] = Nonetext: str | list[str] | list[list[str]] | None = None**kwargs: *<class 'transformers.models.qianfan_ocr.processing_qianfan_ocr.QianfanOCRProcessorKwargs'> ) → BatchFeature

Parametreler

  • images (Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]], isteğe bağlı) — Ön işleme yapılacak görüntü. Piksel değerleri 0 ile 255 arasında değişen tek bir görüntü veya görüntü grubu beklenir. Piksel değerleri 0 ile 1 arasında olan görüntüler geçiriliyorsa do_rescale=False olarak ayarlayın.
  • text (Union[str, list[str], list[list[str]]], isteğe bağlı) — Kodlanacak dizi veya dizi grubu. Her dizi bir metin veya metin listesi (önceden tokenize edilmiş metin) olabilir. Önceden tokenize edilmiş bir girdi geçirirseniz, gruplu girdilerle karışıklığı önlemek için is_split_into_words=True değerini ayarlayın.
  • return_tensors (str veya TensorType, isteğe bağlı) — Belirlenirse, belirli bir çerçeveye ait tensörler döndürülür. Kabul edilen değerler şunlardır:
    • 'pt': PyTorch torch.Tensor nesnelerini döndürür.
    • 'np': NumPy np.ndarray nesnelerini döndürür.
  • **kwargs (ProcessingKwargs, isteğe bağlı) — Her modalite (metin, görüntüler, videolar, ses) için ek işleme seçenekleri. Modelle ilgili parametreler yukarıda listelenmiştir; desteklenen argümanların tam listesi için TypedDict sınıfına bakın.

Dönüş değeri

BatchFeature

Aşağıdaki alanlara sahip bir BatchFeature:

  • input_ids — Bir modele verilecek token kimliklerinin listesi. text değeri None olmadığında döndürülür.
  • attention_mask — Modelin hangi token'lara dikkat etmesi gerektiğini belirleyen indeks listesi (return_attention_mask=True olduğunda veya “attention_mask” self.model_input_names içindeyse ve text None değilse).
  • pixel_values — Bir modele verilecek piksel değerleri. images None olmadığında döndürülür.

QianfanOCRVisionModel

sınıf transformers.QianfanOCRVisionModel

< >

( config: QianfanOCRVisionConfig )

Parametreler

  • config (QianfanOCRVisionConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Üzerinde herhangi bir özel head bulunmayan ve ham hidden-states çıktısı üreten çıplak Qianfan Ocr Model.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

( pixel_values: Tensorbool_masked_pos: typing.Optional[torch.BoolTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → QianfanOCRVisionModelOutputWithPooling or tuple(torch.Tensor)

Parametreler

  • pixel_values (torch.Tensor, şekli (batch_size, num_channels, image_size, image_size)) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri GotOcr2ImageProcessor kullanılarak elde edilebilir. Ayrıntılar için GotOcr2ImageProcessor.call()'a bakın (QianfanOCRProcessor, görüntü işleme için GotOcr2ImageProcessor kullanır).
  • bool_masked_pos (torch.BoolTensor, şekli (batch_size, num_patches), isteğe bağlı) — Boolean maskeli konumlar. Hangi yamaların maskelendiğini (1) ve hangilerinin maskelenmediğini (0) belirtir.

Dönüş değeri

QianfanOCRVisionModelOutputWithPooling veya tuple(torch.Tensor)

QianfanOCRVisionModelOutputWithPooling veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (QianfanOCRConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

QianfanOCRVisionModel forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • pooler_output (torch.Tensor, şekli (batch_size, hidden_size)) — config.use_mean_pooling True olarak ayarlanmışsa, yama tokenlarının son katman gizli durumlarının ortalaması ([CLS] tokenı hariç). False olarak ayarlanmışsa, [CLS] tokenının son gizli durumu döndürülür.

QianfanOCRModel

sınıf transformers.QianfanOCRModel

< >

( config: QianfanOCRConfig )

Parametreler

  • config (QianfanOCRConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Dil modelleme kafası olmadan, bir görsele iskelet ve bir dil modelinden oluşan QianfanOCR modeli.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonevision_feature_layer: int | list[int] | None = Nonevision_feature_select_strategy: str | None = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → QianfanOCRModelOutputWithPast or tuple(torch.Tensor)

Parametreler

  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • pixel_values (torch.Tensor, şekli (batch_size, num_channels, image_size, image_size), isteğe bağlı) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri GotOcr2ImageProcessor kullanılarak elde edilebilir. Ayrıntılar için GotOcr2ImageProcessor.call() bölümüne bakın (QianfanOCRProcessor, görüntüleri işlemek için GotOcr2ImageProcessor kullanır).
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • position_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı [0, config.n_positions - 1].

    Pozisyon kimlikleri nedir?

  • past_key_values (~cache_utils.Cache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genellikle past_key_values değerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülen use_cache=True veya config.use_cache=True.

    Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın. past_key_values geçirilmezse, varsayılan olarak DynamicCache başlatılır.

    Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.

    past_key_values kullanılıyorsa, kullanıcının tüm input_ids (şekli (batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemiş input_ids (şekli (batch_size, unprocessed_length)) girmesi beklenir.

  • inputs_embeds (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • vision_feature_layer (Union[int, list[int]], isteğe bağlı) — Görüntü özelliğinin seçileceği katmanın indeksi. Birden fazla indeks sağlanırsa, ilgili indekslere ait görüntü özellikleri birleştirilerek görüntü özellikleri oluşturulur.
  • vision_feature_select_strategy (str, isteğe bağlı) — Görüntü omurgasından (vision backbone) görüntü özelliğini seçmek için kullanılan özellik seçme stratejisi. "default" veya "full" değerlerinden biri olabilir.
  • mm_encoder_outputs (dict[str, ~modeling_outputs.BaseModelOutputWithPooling], isteğe bağlı) — Anahtarları desteklenen modaliteler, değerleri ise o modalite için kodlanmış çıktılar olan bir sözlük. Her kodlanmış çıktı, (pooler_output, isteğe bağlı: last_hidden_states, isteğe bağlı: hidden_states, isteğe bağlı: attentions) pooler_output (şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) biçiminde bir demettir ve kodlayıcının çok modlu özelliklerinin metin gömme (embedding) değerleriyle birleştirilmiş bir dizisidir.

Dönüş değeri

QianfanOCRModelOutputWithPast veya tuple(torch.Tensor)

QianfanOCRModelOutputWithPast veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (QianfanOCRConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

QianfanOCRModel forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • last_hidden_state (torch.Tensor, şekli (batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

    past_key_values kullanılırsa, yalnızca (batch_size, 1, hidden_size) biçimindeki dizilerin son gizli durumu (hidden-state) çıktı olarak verilir.

  • past_key_values (Cache, isteğe bağlı, use_cache=True geçirildiğinde veya config.use_cache=True olduğunda döndürülür) — Bir Cache örneğidir. Daha fazla ayrıntı için kv cache kılavuzumuza bakın.

    Sıralı çözümlemeyi hızlandırmak için (bkz. past_key_values girdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler ve isteğe bağlı olarak config.is_encoder_decoder=True ise cross-attention bloklarındaki anahtar ve değerler) içerir.

  • hidden_states (tuple(torch.Tensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.Tensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

  • image_hidden_states (torch.Tensor, isteğe bağlı) — Boyutu (batch_size, num_images, sequence_length, hidden_size) olan bir torch.Tensor. Görüntü kodlayıcısı tarafından üretilen ve son gizli durum projekte edildikten sonraki modelin image_hidden_states değerleri.

QianfanOCRForConditionalGeneration

sınıf transformers.QianfanOCRForConditionalGeneration

< >

( config: QianfanOCRConfig )

Parametreler

  • config (QianfanOCRConfig) — Modelin tüm parametrelerini içeren model yapılandırma sınıfı. Bir yapılandırma dosyasıyla başlatmak, modelle ilişkili ağırlıkları yüklemez, yalnızca yapılandırmayı yükler. Model ağırlıklarını yüklemek için from_pretrained() yöntemine bakın.

Bir görme omurgası ve bir dil modelinden oluşan QIANFAN_OCR modeli.

Bu model PreTrainedModel sınıfından devralır. Kütüphanenin tüm modelleri için uyguladığı genel yöntemler (indirme veya kaydetme, giriş gömme boyutlarını yeniden boyutlandırma, başları budama vb.) için üst sınıf belgelendirmesine bakın.

Bu model aynı zamanda bir PyTorch torch.nn.Module alt sınıfıdır. Bunu standart bir PyTorch Module olarak kullanın ve genel kullanım ve davranışla ilgili tüm konular için PyTorch dokümantasyonuna başvurun.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonevision_feature_layer: int | list[int] | None = Nonevision_feature_select_strategy: str | None = Nonelabels: typing.Optional[torch.LongTensor] = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0image_sizes: typing.Optional[torch.Tensor] = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → QianfanOCRCausalLMOutputWithPast or tuple(torch.Tensor)

Parametreler

  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • pixel_values (torch.Tensor, şekli (batch_size, num_channels, image_size, image_size), isteğe bağlı) — Girdi görüntülerine karşılık gelen tensörler. Piksel değerleri GotOcr2ImageProcessor kullanılarak elde edilebilir. Ayrıntılar için GotOcr2ImageProcessor.call() bölümüne bakın (QianfanOCRProcessor, görüntüleri işlemek için GotOcr2ImageProcessor kullanır).
  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • position_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı [0, config.n_positions - 1].

    Pozisyon kimlikleri nedir?

  • past_key_values (~cache_utils.Cache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genellikle past_key_values değerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülen use_cache=True veya config.use_cache=True.

    Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın. past_key_values geçirilmezse, varsayılan olarak DynamicCache başlatılır.

    Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.

    past_key_values kullanılıyorsa, kullanıcının tüm input_ids (şekli (batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemiş input_ids (şekli (batch_size, unprocessed_length)) girmesi beklenir.

  • inputs_embeds (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • vision_feature_layer (Union[int, list[int]], isteğe bağlı) — Görüntü özelliğinin seçileceği katmanın indeksi. Birden fazla indeks sağlanırsa, ilgili indekslere ait görüntü özellikleri birleştirilerek görüntü özellikleri oluşturulur.
  • vision_feature_select_strategy (str, isteğe bağlı) — Görüntü omurgasından (vision backbone) görüntü özelliğini seçmek için kullanılan özellik seçme stratejisi. "default" veya "full" değerlerinden biri olabilir.
  • labels (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler [0, ..., config.vocab_size] aralığında olmalı ya da -100 olmalı (input_ids docstring'ine bakın). Endeksleri -100 olarak ayarlanan tokenlar yok sayılır (maskelenir), kayıp yalnızca etiketleri [0, ..., config.vocab_size] aralığında olan tokenlar için hesaplanır.
  • logits_to_keep (Union[int, torch.Tensor], isteğe bağlı, varsayılan 0) — int ise, son logits_to_keep token için logits hesaplanır. 0 ise, tüm input_ids için logits hesaplanır (özel durum). Üretim için yalnızca son token logits'leri gereklidir ve bunların yalnızca o token için hesaplanması bellek tasarrufu sağlar; bu, uzun diziler veya büyük sözlük boyutu için oldukça önemli hale gelir. torch.Tensor ise, dizi uzunluğu boyutundaki korunacak indekslere karşılık gelen 1B olmalıdır. Bu, paketlenmiş tensor biçimini (batch ve dizi uzunluğu için tek boyut) kullanırken faydalıdır.
  • image_sizes (torch.Tensor, şekli (batch_size, 2), isteğe bağlı) — Toplumdaki görüntülerin boyutları, her görüntü için (yükseklik, genişlik).
  • mm_encoder_outputs (dict[str, ~modeling_outputs.BaseModelOutputWithPooling], isteğe bağlı) — Anahtarları desteklenen modaliteler, değerleri ise o modalite için kodlanmış çıktılar olan bir sözlük. Her kodlanmış çıktı, (pooler_output, isteğe bağlı: last_hidden_states, isteğe bağlı: hidden_states, isteğe bağlı: attentions) pooler_output (şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) biçiminde bir demettir ve kodlayıcının çok modlu özelliklerinin metin gömme (embedding) değerleriyle birleştirilmiş bir dizisidir.

Dönüş değeri

QianfanOCRCausalLMOutputWithPast veya tuple(torch.Tensor)

QianfanOCRCausalLMOutputWithPast veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (QianfanOCRConfig) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

QianfanOCRForConditionalGeneration forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • loss (torch.Tensor, şekli (1,), isteğe bağlı, labels sağlandığında döndürülür) — Dil modelleme kaybı (sonraki token tahmini için).

  • logits (torch.Tensor, şekli (batch_size, sequence_length, config.vocab_size)) — Dil modelleme başlığının tahmin puanları (SoftMax öncesi her sözlük jetonu için puanlar).

  • past_key_values (Cache, isteğe bağlı, use_cache=True geçirildiğinde veya config.use_cache=True olduğunda döndürülür) — Bir Cache örneğidir. Daha fazla ayrıntı için kv cache kılavuzumuza bakın.

    Sıralı çözümlemeyi hızlandırmak için (bkz. past_key_values girdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler) içerir.

  • hidden_states (tuple[torch.Tensor], isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için bir tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple[torch.Tensor], isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

  • image_hidden_states (torch.Tensor, isteğe bağlı) — Boyutu (batch_size, num_images, sequence_length, hidden_size) olan bir torch.Tensor. Görüntü kodlayıcısı tarafından üretilen ve son gizli durum projekte edildikten sonraki modelin image_hidden_states değerleri.

Örnek:

>>> import torch
>>> from transformers import AutoProcessor, AutoModelForImageTextToText
>>> torch_device = "cuda"
>>> processor = AutoProcessor.from_pretrained("baidu/Qianfan-OCR")
>>> model = AutoModelForImageTextToText.from_pretrained(
...     "baidu/Qianfan-OCR", dtype=torch.bfloat16, device_map=torch_device
... )
>>> messages = [
...     {
...         "role": "user",
...         "content": [
...             {"type": "image", "url": "https://example.com/image.jpg"},
...             {"type": "text", "text": "Describe this image."},
...         ],
...     },
... ]
>>> inputs = processor.apply_chat_template(messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt").to(torch_device)
>>> generate_ids = model.generate(**inputs, max_new_tokens=200)
>>> print(processor.decode(generate_ids[0, inputs["input_ids"].shape[1] :], skip_special_tokens=True))
Update on GitHub