Transformers documentation

UnlimitedOcr

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

and get access to the augmented documentation experience

to get started

Mô hình này được công bố trên HF papers vào ngày 2026-06-23 và được đóng góp cho Hugging Face Transformers vào ngày 2026-10-14.

UnlimitedOcr

Tổng quan

Mô hình UnlimitedOcr được đề xuất trong Unlimited OCR Works bởi Youyang Yin, Huanhuan Liu, Qunyi Xie, Chaorun Liu, Shiqi Yang, Shaohua Wang, Zhanlong Liu, Hao Zou, Jinyue Chen, Shu Wei, Jingjing Wu, Mingxin Huang, Zhen Wu, Guibin Wang, Tengyu Du và Lei Jia từ Baidu Inc.

Đây là một mô hình đơn lẻ có 3 tỷ tham số với độ dài ngữ cảnh tiêu chuẩn là 32.768 token.

Tóm tắt từ bài báo như sau:

Gần đây, các mô hình OCR end-to-end, tiêu biểu là DeepSeek OCR, một lần nữa đưa OCR trở thành tâm điểm. Quan điểm phổ biến là việc sử dụng một large language model (LLM) làm decoder cho phép mô hình khai thác phân phối tiên nghiệm của ngôn ngữ, từ đó cải thiện hiệu suất OCR. Tuy nhiên, mặt trái cũng rõ ràng không kém: khi độ dài chuỗi đầu ra tăng lên, KV cache tích lũy làm tăng mức tiêu thụ bộ nhớ và dần làm chậm quá trình sinh. Điều này trái ngược hoàn toàn với con người, những người không hề suy giảm hiệu suất trong các tác vụ sao chép dài hạn. Trong báo cáo kỹ thuật này, chúng tôi đề xuất Unlimited OCR, một mô hình được thiết kế để mô phỏng bộ nhớ làm việc khi phân tích của con người. Lấy DeepSeek OCR làm baseline, chúng tôi thay thế tất cả các lớp attention trong decoder bằng Reference Sliding Window Attention (R-SWA) do chúng tôi đề xuất, giúp giảm chi phí tính toán attention trong khi duy trì KV cache không đổi trong suốt quá trình giải mã. Bằng cách kết hợp tỷ lệ nén cao của encoder DeepSeek OCR với thiết kế KV cache không đổi của chúng tôi, Unlimited OCR có thể chuyển tự hàng chục trang tài liệu trong một lần forward pass duy nhất dưới độ dài tối tiêu chuẩn 32K. Quan trọng hơn, R-SWA là một cơ chế attention phân tích tổng quát — ngoài OCR, nó còn áp dụng được cho các tác vụ như ASR, dịch thuật, v.v. Mã nguồn và trọng số mô hình được công khai tại http://github.com/baidu/Unlimited-OCR

Unlimited-OCR hỗ trợ hai cấu hình suy luận: chế độ “gundam” mặc định sử dụng các ô 640x640 với cắt động cho tài liệu độ phân giải cao, và chế độ “base” sử dụng một khung nhìn toàn cục 1024x1024 cho đầu vào độ phân giải tiêu chuẩn. Để bật chế độ base, hãy đặt crop_to_patches=False trong bộ xử lý, hoặc truyền nó qua processor_kwargs khi sử dụng apply_chat_template().

Tháp thị giác tuân theo cách tiếp cận hai giai đoạn từ DeepSeek-OCR-2: một bộ mã hóa SAM ViT-B cung cấp đầu vào cho bộ mã hóa CLIP ViT. Khác với DeepSeek-OCR-2, các đặc trưng CLIP còn được nối thêm với các đặc trưng SAM để tạo ra các token ảnh cuối cùng. Unlimited-OCR cũng bỏ qua các truy vấn patch có thể học được từ DeepSeek-OCR-2.

Mô hình văn bản giống hệt DeepSeek-OCR-2 với thêm Reference Sliding Window Attention (R-SWA). R-SWA chỉ áp dụng cho các token được sinh ra. Tất cả các token hình ảnh và prompt vẫn hiển thị đầy đủ trong suốt quá trình giải mã, do đó các tài liệu dài không mất ngữ cảnh từ các trang trước đó.

Mô hình này được đóng góp bởi guarin. Mã nguồn gốc có thể được tìm thấy tại đây.

Cài đặt gốc chạy mô hình với torch.autocast ở bfloat16. Bọc các lệnh gọi forward và generate trong một ngữ cảnh autocast để tái tạo các đầu ra của nó.

with torch.autocast(device_type=model.device.type, dtype=torch.bfloat16):
    output = model.generate(**inputs)
OCR trang đơn
OCR đa trang
from transformers import AutoProcessor, AutoModelForImageTextToText

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

image = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/ocr_suggestion_form.jpg"
messages = [
    {
        "role": "user",
        "content": [{"type": "image", "url": image}, {"type": "text", "text": "document parsing."}],
    }
]
inputs = processor.apply_chat_template(
    messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt"
).to(model.device, model.dtype)

output = model.generate(**inputs, max_new_tokens=512)
processor.decode(output[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True)
# image [383, 87, 497, 171]\ntext [333, 201, 558, 230]R&D QUALITY IMPROVEMENT\nSUGGESTION/SOLUTION FORM...

# All bounding boxes are in (x1, y1, x2, y2) format with coordinates normalized to [0, 999]

Xử lý theo lô

Để xử lý theo lô, hãy truyền một danh sách các tin nhắn. Đặt padding=True cho bộ xử lý nếu các hình ảnh có kích thước khác nhau.

from transformers import AutoProcessor, AutoModelForImageTextToText

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

image1 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/ocr_suggestion_form.jpg"
image2 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/ocr_receipt.jpeg"
messages = [
    [
        {
            "role": "user",
            "content": [{"type": "image", "url": image}, {"type": "text", "text": "document parsing."}],
        }
    ]
    for image in [image1, image2]
]
inputs = processor.apply_chat_template(
    messages,
    add_generation_prompt=True,
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
    processor_kwargs={"padding": True},
).to(model.device, model.dtype)

output = model.generate(**inputs)
processor.decode(output[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True)
# image [383, 87, 497, 171]\ntext [333, 201, 558, 230]R&D QUALITY IMPROVEMENT\nSUGGESTION/SOLUTION FORM...

# All bounding boxes are in (x1, y1, x2, y2) format with coordinates normalized to [0, 999]

Phát hiện vùng

Đặt skip_special_tokens=False để bọc tất cả các phát hiện và loại vùng trong các dấu <|det|>...<|/det|>. Điều này hữu ích cho việc xử lý hậu kỳ thêm trên đầu ra, chẳng hạn như vẽ các hộp bao (bounding box) được phát hiện trên hình ảnh. Mỗi phát hiện được bọc dưới dạng <|det|>region_type [x1, y1, x2, y2]<|/det|>text... với tọa độ được chuẩn hóa trong khoảng [0, 999]. Đặt return_detections=True để nhận thêm một danh sách các từ điển chứa tất cả các phát hiện đã được phân tích dưới dạng {"region_type": region_type, "box": [x1, y1, x2, y2], "text": "..."}.

from transformers import AutoProcessor, AutoModelForImageTextToText

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

image = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/ocr_suggestion_form.jpg"
messages = [
    {
        "role": "user",
        "content": [{"type": "image", "url": image}, {"type": "text", "text": "document parsing."}],
    }
]
inputs = processor.apply_chat_template(
    messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt"
).to(model.device, model.dtype)

output = model.generate(**inputs)
decoded, detections = processor.decode(output[0, inputs["input_ids"].shape[1]:], skip_special_tokens=False, return_detections=True)
# <|det|>image [383, 87, 497, 171]<|/det|>\n<|det|>text [333, 201, 558, 230]<|/det|>R&D QUALITY IMPROVEMENT\nSUGGESTION/SOLUTION FORM...

# Visualization
import random
import matplotlib.pyplot as plt
import matplotlib.patches as patches
from transformers.image_utils import load_image

image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/ocr_suggestion_form.jpg")
width, height = image.size

figure, axis = plt.subplots(figsize=(10, 12))
axis.imshow(image)
for detection in detections:
    region_type = detection["region_type"]
    x1, y1, x2, y2 = detection["box"]
    x1, y1, x2, y2 = int(x1) / 999 * width, int(y1) / 999 * height, int(x2) / 999 * width, int(y2) / 999 * height
    color = (random.random(), random.random(), random.random())
    rectangle = patches.Rectangle((x1, y1), x2 - x1, y2 - y1, linewidth=1.5, edgecolor=color, facecolor="none")
    axis.add_patch(rectangle)
    axis.text(x1, y1, region_type, color="white", fontsize=8, backgroundcolor=color, verticalalignment="top")
axis.axis("off")
plt.show()

UnlimitedOcrConfig

lớp transformers.UnlimitedOcrConfig

< >

( 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 = 128815tie_word_embeddings: bool = False )

Tham số

  • vision_config (dict hoặc UnlimitedOcrVisionConfig, tùy chọn) — Cấu hình cho các bộ mã hóa thị giác. Mặc định là UnlimitedOcrVisionConfig().
  • text_config (Union[dict, ~configuration_utils.PreTrainedConfig], tùy chọn) — Đối tượng cấu hình hoặc từ điển của bộ khung văn bản.
  • image_token_id (int, tùy chọn, mặc định là 128815) — Chỉ số token hình ảnh được dùng làm ký tự thay thế cho các hình ảnh đầu vào.
  • tie_word_embeddings (bool, tùy chọn, mặc định là False) — Có nên gắn kết các trọng số nhúng theo ánh xạ tied_weights_keys của mô hình hay không.

Đây là lớp cấu hình để lưu trữ cấu hình của một UnlimitedOcrModel. Nó được sử dụng để khởi tạo một mô hình Unlimited Ocr theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của baidu/Unlimited-OCR

Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.

Ví dụ:

>>> from transformers import UnlimitedOcrConfig, UnlimitedOcrModel

>>> configuration = UnlimitedOcrConfig()
>>> model = UnlimitedOcrModel(configuration)
>>> configuration = model.config

UnlimitedOcrTextConfig

lớp transformers.UnlimitedOcrTextConfig

< >

( 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 = 129280hidden_size: int = 1280intermediate_size: int = 6848num_hidden_layers: int = 12num_attention_heads: int = 10num_key_value_heads: int | None = 10hidden_act: str = 'silu'max_position_embeddings: int = 32768initializer_range: float = 0.02rms_norm_eps: float = 1e-06use_cache: bool = Truepad_token_id: int | None = Nonebos_token_id: int | None = 0eos_token_id: int | list[int] | None = 1pretraining_tp: int | None = 1tie_word_embeddings: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneattention_bias: bool = Falseattention_dropout: float | None = 0.0mlp_bias: bool = Falsehead_dim: int | None = Nonen_group: int | None = 1n_routed_experts: int = 64output_router_logits: bool = Falsen_shared_experts: int = 2routed_scaling_factor: float = 1.0topk_group: int | None = 1topk_method: str | None = 'greedy'num_experts_per_tok: int | None = 6moe_intermediate_size: int = 896mlp_layer_types: list[str] | None = Nonelayer_types: list[str] | None = Nonesliding_window: int | None = 128 )

Tham số

  • vocab_size (int, tùy chọn, mặc định là 129280) — Kích thước từ vựng của mô hình. Xác định số lượng token khác nhau có thể được biểu diễn bởi input_ids.
  • hidden_size (int, tùy chọn, mặc định là 1280) — Kích thước của các biểu diễn ẩn.
  • intermediate_size (int, tùy chọn, mặc định là 6848) — Kích thước của các biểu diễn MLP.
  • num_hidden_layers (int, tùy chọn, mặc định là 12) — Số lượng lớp ẩn trong bộ giải mã Transformer.
  • num_attention_heads (int, tùy chọn, mặc định là 10) — Số lượng đầu chú ý cho mỗi lớp chú ý trong bộ giải mã Transformer.
  • num_key_value_heads (int, tùy chọn, mặc định là 10) — Đây là số lượng key_value heads cần được sử dụng để triển khai Grouped Query Attention. Nếu num_key_value_heads=num_attention_heads, mô hình sẽ sử dụng Multi Head Attention (MHA), nếu num_key_value_heads=1 mô hình sẽ sử dụng Multi Query Attention (MQA), ngược lại sẽ sử dụng GQA. Khi chuyển đổi checkpoint multi-head sang checkpoint GQA, mỗi nhóm key và value head nên được xây dựng bằng cách meanpooling tất cả các head gốc trong nhóm đó. Để biết thêm chi tiết, hãy xem bài báo này. Nếu không được chỉ định, giá trị mặc định sẽ là num_attention_heads.
  • hidden_act (str, tùy chọn, mặc định là silu) — Hàm kích hoạt phi tuyến (hàm hoặc chuỗi) trong bộ giải mã. Ví dụ, "gelu", "relu", "silu", v.v.
  • max_position_embeddings (int, tùy chọn, mặc định là 32768) — Chiều dài chuỗi tối đa mà mô hình này có thể được sử dụng.
  • initializer_range (float, tùy chọn, mặc định là 0.02) — Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số.
  • rms_norm_eps (float, tùy chọn, mặc định là 1e-06) — Giá trị epsilon được sử dụng bởi các lớp chuẩn hóa rms.
  • use_cache (bool, tùy chọn, mặc định là True) — Xác định xem mô hình có nên trả về các chú ý key/values cuối cùng hay không (không được sử dụng bởi tất cả các mô hình). Chỉ liên quan nếu config.is_decoder=True hoặc khi mô hình là mô hình sinh chỉ có decoder.
  • pad_token_id (int, tùy chọn) — Token id được sử dụng để đệm trong từ vựng.
  • bos_token_id (int, tùy chọn, mặc định là 0) — Token id được sử dụng cho đầu luồng trong bảng từ vựng.
  • eos_token_id (Union[int, list[int]], tùy chọn, mặc định là 1) — Token id được sử dụng cho end-of-stream trong bảng từ vựng.
  • pretraining_tp (int, tùy chọn, mặc định là 1) — Tính năng thử nghiệm. Bậc song song tensor (tensor parallelism rank) được sử dụng trong quá trình tiền huấn luyện. Vui lòng tham khảo tài liệu này để hiểu thêm về nó. Giá trị này là cần thiết để đảm bảo khả năng tái lập chính xác các kết quả tiền huấn luyện. Vui lòng tham khảo vấn đề này.
  • tie_word_embeddings (bool, tùy chọn, mặc định là False) — Có nên gắn kết các trọng số nhúng theo ánh xạ tied_weights_keys của mô hình hay không.
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], tùy chọn) — Từ điển chứa các tham số cấu hình cho các embedding RoPE. Từ điển phải chứa một giá trị cho rope_theta và tùy chọn các tham số được sử dụng để mở rộng trong trường hợp bạn muốn sử dụng RoPE với max_position_embeddings dài hơn.
  • attention_bias (bool, tùy chọn, mặc định là False) — Có sử dụng bias trong các lớp chiếu query, key, value và output trong quá trình tự chú ý hay không.
  • attention_dropout (float, tùy chọn, mặc định là 0.0) — Tỷ lệ dropout cho các xác suất chú ý.
  • mlp_bias (bool, tùy chọn, mặc định là False) — Có sử dụng bias trong các lớp up_proj, down_proj và gate_proj của các lớp MLP hay không.
  • head_dim (int, tùy chọn) — Kích thước chiều của đầu chú ý. Nếu là None, giá trị mặc định sẽ là hidden_size // num_attention_heads
  • n_group (int, tùy chọn) — Số lượng nhóm cho định tuyến chuyên gia top-k theo nhóm.
  • n_routed_experts (int, tùy chọn, mặc định là 64) — Số lượng chuyên gia được định tuyến.
  • output_router_logits (bool, tùy chọn, mặc định là False) — Xác định xem có nên trả về router logits từ mô hình hay không. Bật tùy chọn này cũng cho phép mô hình xuất ra tổn thất bổ trợ, bao gồm tổn thất cân bằng tải và router z-loss.
  • n_shared_experts (int, tùy chọn, mặc định là 2) — Số lượng chuyên gia dùng chung.
  • routed_scaling_factor (float, tùy chọn, mặc định là 1.0) — Hệ số tỷ lệ cho các chuyên gia được định tuyến.
  • topk_group (int, tuỳ chọn, mặc định là 1) — Số lượng nhóm được chọn cho mỗi token (với mỗi token, đảm bảo các chuyên gia được chọn chỉ nằm trong topk_group nhóm).
  • topk_method (str, tùy chọn, mặc định là "greedy") — Phương pháp để chọn top-k chuyên gia trong các lớp MoE.
  • num_experts_per_tok (int, tuỳ chọn, mặc định là 6) — Số lượng chuyên gia để định tuyến mỗi token. Đây là giá trị top-k cho việc định tuyến chọn token.
  • moe_intermediate_size (int, tùy chọn, mặc định là 896) — Kích thước trung gian của các MLP chuyên gia được định tuyến.
  • mlp_layer_types (list[str], tùy chọn) — Loại MLP ("dense" hoặc "sparse") cho mỗi lớp decoder, ví dụ ["dense", "sparse", "sparse", ...].
  • layer_types (list[str], tùy chọn) — Loại Attention cho từng lớp decoder. Mặc định là "reference_sliding_attention" trên mọi lớp.
  • sliding_window (int, tùy chọn, mặc định là 128) — Kích thước cửa sổ trượt cho chú ý cửa sổ trượt tham chiếu. Nếu được đặt, mỗi token sẽ chú ý đến sliding_window cuối cùng và tất cả các token hình ảnh và prompt.

Đây là lớp cấu hình để lưu trữ cấu hình của một UnlimitedOcrModel. Nó được sử dụng để khởi tạo một mô hình Unlimited Ocr theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của baidu/Unlimited-OCR

Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.

Ví dụ:

>>> from transformers import UnlimitedOcrTextConfig, UnlimitedOcrTextModel

>>> configuration = UnlimitedOcrTextConfig()
>>> model = UnlimitedOcrTextModel(configuration)
>>> configuration = model.config

UnlimitedOcrVisionConfig

lớp transformers.UnlimitedOcrVisionConfig

< >

( 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 = Nonesam_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneencoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = None )

Tham số

  • sam_config (dict hoặc UnlimitedOcrSamVisionConfig, không bắt buộc) — Cấu hình cho bộ mã hóa thị giác SAM. Mặc định là UnlimitedOcrSamVisionConfig().
  • encoder_config (dict hoặc UnlimitedOcrVisionEncoderConfig, không bắt buộc) — Cấu hình cho bộ mã hóa thị giác. Mặc định là UnlimitedOcrVisionEncoderConfig().

Đây là lớp cấu hình để lưu trữ cấu hình của một UnlimitedOcrModel. Nó được sử dụng để khởi tạo một mô hình Unlimited Ocr theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của baidu/Unlimited-OCR

Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.

Ví dụ:

>>> from transformers import UnlimitedOcrVisionConfig, UnlimitedOcrVisionModel

>>> configuration = UnlimitedOcrVisionConfig()
>>> model = UnlimitedOcrVisionModel(configuration)
>>> configuration = model.config

UnlimitedOcrVisionEncoderConfig

lớp transformers.UnlimitedOcrVisionEncoderConfig

< >

( 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 = 1024intermediate_size: int = 4096num_hidden_layers: int = 24num_attention_heads: int = 16num_channels: int = 3image_size: int | list[int] | tuple[int, int] | None = 224patch_size: int | list[int] | tuple[int, int] | None = 14hidden_act: str = 'quick_gelu'layer_norm_eps: float = 1e-05attention_dropout: int | float | None = 0.0initializer_range: float = 0.02initializer_factor: float = 1.0 )

Tham số

  • hidden_size (int, tùy chọn, mặc định là 1024) — Kích thước của các biểu diễn ẩn.
  • intermediate_size (int, tùy chọn, mặc định là 4096) — Kích thước của các biểu diễn MLP.
  • num_hidden_layers (int, tùy chọn, mặc định là 24) — Số lượng lớp ẩn trong bộ giải mã Transformer.
  • num_attention_heads (int, tùy chọn, mặc định là 16) — Số lượng đầu attention cho mỗi lớp attention trong bộ giải mã Transformer.
  • num_channels (int, tùy chọn, mặc định là 3) — Số lượng kênh đầu vào.
  • image_size (Union[int, list[int], tuple[int, int]], tùy chọn, mặc định là 224) — Kích thước (độ phân giải) của mỗi hình ảnh.
  • patch_size (Union[int, list[int], tuple[int, int]], tùy chọn, mặc định là 14) — Kích thước (độ phân giải) của mỗi patch.
  • hidden_act (str, tùy chọn, mặc định là quick_gelu) — Hàm kích hoạt phi tuyến (hàm hoặc chuỗi) trong bộ giải mã. Ví dụ, "gelu", "relu", "silu", v.v.
  • layer_norm_eps (float, tùy chọn, mặc định là 1e-05) — Giá trị epsilon được sử dụng bởi các lớp chuẩn hóa lớp (layer normalization).
  • attention_dropout (Union[int, float], tùy chọn, mặc định là 0.0) — Tỷ lệ dropout cho các xác suất chú ý.
  • initializer_range (float, tùy chọn, mặc định là 0.02) — Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số.
  • initializer_factor (float, tùy chọn, mặc định là 1.0) — Hệ số để khởi tạo tất cả các ma trận trọng số (nên giữ ở mức 1, được sử dụng bên trong cho việc kiểm tra khởi tạo).

Đây là lớp cấu hình để lưu trữ cấu hình của một UnlimitedOcrModel. Nó được sử dụng để khởi tạo một mô hình Unlimited Ocr theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của baidu/Unlimited-OCR

Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.

Ví dụ:

>>> from transformers import UnlimitedOcrVisionEncoderConfig, UnlimitedOcrVisionEncoder

>>> configuration = UnlimitedOcrVisionEncoderConfig()
>>> model = UnlimitedOcrVisionEncoder(configuration)
>>> configuration = model.config

UnlimitedOcrSamVisionConfig

lớp transformers.UnlimitedOcrSamVisionConfig

< >

( 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 = 768output_channels: int = 256num_hidden_layers: int = 12num_attention_heads: int = 12num_channels: int = 3image_size: int | list[int] | tuple[int, int] = 1024patch_size: int | list[int] | tuple[int, int] = 16hidden_act: str = 'gelu'layer_norm_eps: float = 1e-06attention_dropout: float | int = 0.0initializer_range: float = 1e-10qkv_bias: bool = Trueuse_abs_pos: bool = Trueuse_rel_pos: bool = Truewindow_size: int = 14global_attn_indexes: list[int] | tuple[int, ...] = (2, 5, 8, 11)mlp_dim: int = 3072downsample_channels: list[int] | tuple[int, ...] = (512, 1024) )

Tham số

  • hidden_size (int, tùy chọn, mặc định là 768) — Kích thước của các biểu diễn ẩn.
  • output_channels (int, tùy chọn, mặc định là 256) — Kích thước của các kênh đầu ra trong Patch Encoder.
  • num_hidden_layers (int, tùy chọn, mặc định là 12) — Số lượng lớp ẩn trong bộ giải mã Transformer.
  • num_attention_heads (int, tùy chọn, mặc định là 12) — Số lượng đầu attention cho mỗi lớp attention trong bộ giải mã Transformer.
  • num_channels (int, tùy chọn, mặc định là 3) — Số lượng kênh đầu vào.
  • image_size (Union[int, list[int], tuple[int, int]], tùy chọn, mặc định là 1024) — Kích thước (độ phân giải) của mỗi hình ảnh.
  • patch_size (Union[int, list[int], tuple[int, int]], tùy chọn, mặc định là 16) — Kích thước (độ phân giải) của mỗi patch.
  • hidden_act (str, tùy chọn, mặc định là gelu) — Hàm kích hoạt phi tuyến (hàm hoặc chuỗi) trong bộ giải mã. Ví dụ, "gelu", "relu", "silu", v.v.
  • layer_norm_eps (float, tùy chọn, mặc định là 1e-06) — Giá trị epsilon được sử dụng bởi các lớp chuẩn hóa lớp (layer normalization).
  • attention_dropout (Union[float, int], tùy chọn, mặc định là 0.0) — Tỷ lệ dropout cho các xác suất chú ý.
  • initializer_range (float, tùy chọn, mặc định là 1e-10) — Độ lệch chuẩn của truncated_normal_initializer để khởi tạo tất cả các ma trận trọng số.
  • qkv_bias (bool, tùy chọn, mặc định là True) — Có thêm bias cho queries, keys và values hay không.
  • use_abs_pos (bool, tùy chọn, mặc định là True) — Có sử dụng nhúng vị trí tuyệt đối hay không.
  • use_rel_pos (bool, tùy chọn, mặc định là True) — Có sử dụng nhúng vị trí tương đối hay không.
  • window_size (int, tùy chọn, mặc định là 14) — Kích thước cửa sổ cho vị trí tương đối.
  • global_attn_indexes (list[int], tùy chọn, mặc định là [2, 5, 8, 11]) — Các chỉ số của các lớp chú ý toàn cục.
  • mlp_dim (int, tùy chọn, mặc định là 3072) — Kích thước của lớp MLP trong bộ mã hóa Transformer.
  • downsample_channels (list[int], tùy chọn, mặc định là (512, 1024)) — Các chiều kênh cho các lớp neck hạ mẫu đa tỷ lệ.

Đây là lớp cấu hình để lưu trữ cấu hình của một UnlimitedOcrModel. Nó được sử dụng để khởi tạo một mô hình Unlimited Ocr theo các đối số được chỉ định, xác định kiến trúc của mô hình. Khởi tạo một cấu hình với các giá trị mặc định sẽ tạo ra một cấu hình tương tự như cấu hình của baidu/Unlimited-OCR

Các đối tượng cấu hình kế thừa từ PreTrainedConfig và có thể được sử dụng để kiểm soát đầu ra của mô hình. Đọc tài liệu từ PreTrainedConfig để biết thêm thông tin.

UnlimitedOcrImageProcessor

lớp transformers.UnlimitedOcrImageProcessor

< >

( **kwargs: *<class 'transformers.models.unlimited_ocr.image_processing_unlimited_ocr.UnlimitedOcrImageProcessorKwargs'> )

Tham số

  • do_convert_rgb (bool, kwargs, tuỳ chọn, mặc định là True) — Có chuyển đổi ảnh sang RGB hay không.
  • do_resize (bool, kwargs, tuỳ chọn, mặc định là True) — Có nên thay đổi kích thước ảnh hay không.
  • size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, mặc định là {'height' -- 1024, 'width': 1024}): Mô tả kích thước đầu vào tối đa cho mô hình.
  • default_to_square (bool, kwargs, tùy chọn, mặc định là True) — Có nên mặc định dùng ảnh vuông khi thay đổi kích thước không, nếu size là một số nguyên.
  • crop_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Kích thước của ảnh đầu ra sau khi áp dụng center_crop.
  • resample (Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, mặc định là 3) — Bộ lọc lấy mẫu lại (resampling filter) được sử dụng khi thay đổi kích thước ảnh. Giá trị này có thể là một trong các hằng số liệt kê (enum) của PILImageResampling. Chỉ có hiệu lực khi do_resize được đặt thành True.
  • do_rescale (bool, kwargs, tuỳ chọn, mặc định là True) — Có nên điều chỉnh lại tỷ lệ ảnh hay không.
  • rescale_factor (float, kwargs, optional, mặc định là 0.00392156862745098) — Hệ số rescale để rescale ảnh nếu do_rescale được đặt thành True.
  • do_normalize (bool, kwargs, tuỳ chọn, mặc định là True) — Có nên chuẩn hóa hình ảnh hay không.
  • image_mean (Union[float, list[float], tuple[float, ...]], kwargs, optional, mặc định là [0.5, 0.5, 0.5]) — Giá trị trung bình của ảnh để sử dụng cho việc chuẩn hóa. Chỉ có hiệu lực nếu do_normalize được đặt thành True.
  • image_std (Union[float, list[float], tuple[float, ...]], kwargs, tuỳ chọn, mặc định là [0.5, 0.5, 0.5]) — Độ lệch chuẩn của ảnh để sử dụng cho việc chuẩn hóa. Chỉ có hiệu lực nếu do_normalize được đặt thành True.
  • do_pad (bool, kwargs, optional) — Có nên chèn padding cho ảnh hay không. Padding được thực hiện đến kích thước lớn nhất trong batch hoặc đến một kích thước vuông cố định cho mỗi ảnh. Chiến lược padding cụ thể phụ thuộc vào model.
  • pad_size (Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Kích thước ở dạng {"height": int, "width" int} để đệm cho các hình ảnh. Phải lớn hơn kích thước bất kỳ hình ảnh nào được cung cấp để tiền xử lý. Nếu không cung cấp pad_size, các hình ảnh sẽ được đệm đến chiều cao và chiều rộng lớn nhất trong lô. Chỉ được áp dụng khi do_pad=True.
  • do_center_crop (bool, kwargs, optional) — Có nên cắt ảnh ở vị trí trung tâm hay không.
  • data_format (Union[str, ~image_utils.ChannelDimension], kwargs, optional) — Chỉ hỗ trợ ChannelDimension.FIRST. Được thêm vào để tương thích với các bộ xử lý chậm.
  • input_data_format (Union[str, ~image_utils.ChannelDimension], kwargs, tùy chọn) — Định dạng chiều kênh cho ảnh đầu vào. Nếu không được đặt, định dạng chiều kênh sẽ được suy ra từ ảnh đầu vào. Có thể là một trong các giá trị:
    • "channels_first" hoặc ChannelDimension.FIRST: ảnh ở định dạng (num_channels, height, width).
    • "channels_last" hoặc ChannelDimension.LAST: ảnh ở định dạng (height, width, num_channels).
    • "none" hoặc ChannelDimension.NONE: ảnh ở định dạng (chiều cao, chiều rộng).
  • device (Annotated[Union[str, torch.device, NoneType], None], kwargs) — Thiết bị để xử lý các video. Nếu không được đặt, thiết bị sẽ được suy ra từ các video đầu vào.
  • return_tensors (Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Trả về các tensor được xếp chồng nếu được đặt thành 'pt', ngược lại trả về một danh sách các tensor.
  • disable_grouping (bool, kwargs, tuỳ chọn) — Có nên vô hiệu hóa việc nhóm các hình ảnh theo kích thước để xử lý chúng riêng lẻ thay vì theo lô hay không. Nếu là None, giá trị sẽ được đặt thành True nếu các hình ảnh nằm trên CPU, và False trong các trường hợp khác. Lựa chọn này dựa trên các quan sát thực nghiệm, như được mô tả chi tiết tại đây: https://github.com/huggingface/transformers/pull/38157
  • image_seq_length (int, kwargs, optional) — Số lượng token hình ảnh sẽ được sử dụng cho mỗi hình ảnh trong đầu vào. Được thêm vào để đảm bảo tương thích ngược, nhưng trong các mô hình tương lai, giá trị này nên được đặt như một thuộc tính của bộ xử lý.
  • crop_to_patches (bool, kwargs, optional, mặc định là True) — Có nên cắt ảnh thành các patch hay không. Có thể ghi đè bằng tham số crop_to_patches trong phương thức preprocess.
  • min_patches (int, kwargs, tuỳ chọn, mặc định là 2) — Số lượng tối thiểu các patch cần trích xuất từ ảnh. Chỉ có hiệu lực nếu crop_to_patches được đặt thành True. Có thể bị ghi đè bởi tham số min_patches trong phương thức preprocess.
  • max_patches (int, kwargs, tuỳ chọn, mặc định là 32) — Số lượng tối đa các patch được trích xuất từ ảnh. Chỉ có hiệu lực nếu crop_to_patches được đặt thành True. Có thể bị ghi đè bởi tham số max_patches trong phương thức preprocess.
  • tile_size (int, kwargs, tuỳ chọn, mặc định là 640) — Kích thước của mỗi tile cục bộ. Phải khớp với kích thước query embedding của mô hình.
  • background_color (list[int], kwargs, optional, mặc định là [127, 127, 127]) — Màu nền cho phần đệm.
  • maximum_pad_value (int, kwargs, tuỳ chọn, mặc định là 640) — Nếu crop_to_patches là False và max(size.height, size.width) nhỏ hơn hoặc bằng giá trị này, ảnh sẽ được thay đổi kích thước trực tiếp thành một hình vuông có kích thước max(size.height, size.width) mà không giữ nguyên tỷ lệ khung hình. Ngược lại, ảnh sẽ được thay đổi kích thước trong khi giữ nguyên tỷ lệ khung hình, sau đó được đệm thành một hình vuông bằng background_color.

Tạo một bộ xử lý ảnh UnlimitedOcrImageProcessor.

crop_image_to_patches

< >

( images: torch.Tensormin_patches: intmax_patches: inttile_size: intresample: PIL.Image.Resampling | None = None ) → tuple[torch.Tensor, int]

Tham số

  • images (torch.Tensor) — Các hình ảnh cần cắt, có dạng (batch, channels, height, width).
  • min_patches (int) — Số lượng tối thiểu của các patch.
  • max_patches (int) — Số lượng tối đa của các patch.
  • tile_size (int) — Kích thước của mỗi tile.
  • resample (PILImageResampling, tùy chọn) — Bộ lọc lấy mẫu lại để thay đổi kích thước.

Trả về

tuple[torch.Tensor, int]

Các patch xếp chồng (batch, num_patches, channels, tile_size, tile_size) và số lượng patch trên mỗi ảnh.

Cắt các ảnh trong lô thành các mảnh dựa trên việc lát tối ưu.

get_number_of_image_patches

< >

( height: intwidth: intimages_kwargs: dict | None = None )

Trả về số lượng image patches cho một kích thước ảnh đã cho (1 patch toàn cục + các patch cục bộ).

pad_to_square

< >

( images: torch.Tensorbackground_color: int | tuple[int, int, int] = 0 ) → torch.Tensor

Tham số

  • images (torch.Tensor) — Các hình ảnh cần chèn padding. Hình dạng: (batch_size, num_channels, height, width) hoặc (num_channels, height, width).
  • background_color (int hoặc tuple[int, int, int], không bắt buộc, mặc định là 0) — Màu sắc được sử dụng cho phần đệm. Có thể là một số nguyên cho kênh đơn hoặc một bộ ba số nguyên đại diện cho ảnh đa kênh. Nếu được truyền dưới dạng số nguyên trong chế độ đa kênh, giá trị mặc định sẽ là 0 cho các kênh tiếp theo.

Trả về

torch.Tensor

Các hình ảnh đã được đệm.

Đệm một ảnh thành hình vuông dựa trên cạnh dài nhất.

UnlimitedOcrProcessor

lớp transformers.UnlimitedOcrProcessor

< >

( image_processor = Nonetokenizer = Nonechat_template = Nonepatch_size = 16downsample_ratio = 4**kwargs )

Tham số

  • image_processor (UnlimitedOcrImageProcessor) — Bộ xử lý ảnh là một đầu vào bắt buộc.
  • tokenizer (tokenizer_class) — Tokenizer là đầu vào bắt buộc.
  • chat_template (str) — Một mẫu Jinja để chuyển đổi các danh sách tin nhắn trong một cuộc trò chuyện thành chuỗi có thể token hóa.
  • patch_size (int, tùy chọn, mặc định là 16) — Kích thước patch được sử dụng bởi bộ mã hóa thị giác (kích thước nhúng patch của SAM ViT).
  • downsample_ratio (int, tùy chọn, mặc định là 4) — Tỷ lệ hạ mẫu được áp dụng sau bộ mã hóa thị giác.

Tạo một UnlimitedOcrProcessor, đóng gói một image processor và một tokenizer thành một processor duy nhất.

UnlimitedOcrProcessor cung cấp đầy đủ các chức năng của UnlimitedOcrImageProcessor và tokenizer_class. Xem ~UnlimitedOcrImageProcessor và ~tokenizer_class để biết thêm thông tin.

batch_decode

< >

( *argsreturn_detections: bool = False**kwargs ) → list[str] or tuple[list[str], list[list[dict]]]

Tham số

  • return_detections (bool, tùy chọn, mặc định là False) — Có nên trả về cả các phát hiện bố cục được phân tích từ văn bản đã giải mã hay không.

Trả về

list[str] hoặc tuple[list[str], list[list[dict]]]

Văn bản đã giải mã. Nếu return_detections là True, một tuple gồm văn bản đã giải mã và các phát hiện của mọi chuỗi, trong đó mỗi phát hiện là một từ điển có các khóa region_type, box và text. Các hộp có định dạng [x1, y1, x2, y2] với tọa độ được chuẩn hóa về [0, 999].

Phương pháp này chuyển tiếp tất cả các đối số của nó đến batch_decode() của PreTrainedTokenizer. Vui lòng tham khảo docstring của phương pháp này để biết thêm thông tin.

decode

< >

( *argsreturn_detections: bool = False**kwargs ) → str or tuple[str, list[dict]]

Tham số

  • return_detections (bool, tùy chọn, mặc định là False) — Có nên trả về cả các phát hiện bố cục được phân tích từ văn bản đã giải mã hay không.

Trả về

str hoặc tuple[str, list[dict]]

Văn bản đã giải mã. Nếu return_detections là True, một tuple gồm văn bản đã giải mã và một danh sách các phát hiện, trong đó mỗi phát hiện là một từ điển với các khóa region_type, box và text. Các hộp có định dạng [x1, y1, x2, y2] với tọa độ được chuẩn hóa về [0, 999].

Phương pháp này chuyển tiếp tất cả các đối số của nó đến decode() của PreTrainedTokenizer. Vui lòng tham khảo docstring của phương pháp này để biết thêm thông tin.

UnlimitedOcrPreTrainedModel

lớp transformers.UnlimitedOcrPreTrainedModel

< >

( config: PreTrainedConfig*inputs**kwargs )

Tham số

  • config (PreTrainedConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

UnlimitedOcrTextPreTrainedModel

lớp transformers.UnlimitedOcrTextPreTrainedModel

< >

( config: PreTrainedConfig*inputs**kwargs )

Tham số

  • config (PreTrainedConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

UnlimitedOcrTextModel

lớp transformers.UnlimitedOcrTextModel

< >

( config: UnlimitedOcrTextConfig )

Tham số

  • config (UnlimitedOcrTextConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số của mô hình.

Mô hình Unlimited Ocr Text ở dạng thô, xuất ra các hidden-states thô mà không có bất kỳ head cụ thể nào ở phía trên.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MoeModelOutputWithPast or tuple(torch.Tensor)

Tham số

  • input_ids (torch.LongTensor có dạng (batch_size, sequence_length), tùy chọn) — Chỉ số của các token trong chuỗi đầu vào theo từ điển. Mặc định, padding sẽ bị bỏ qua.

    Các chỉ số có thể được lấy bằng cách sử dụng AutoTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.

    ID đầu vào là gì?

  • attention_mask (torch.Tensor có hình dạng (batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện chú ý trên các chỉ số token đệm. Các giá trị mặt nạ được chọn trong [0, 1]:
    • 1 cho các token không bị che,
    • 0 cho các token bị che.

    Mặt nạ chú ý là gì?

  • position_ids (torch.LongTensor có hình dạng (batch_size, sequence_length), tùy chọn) — Chỉ số vị trí của các token trong mỗi chuỗi đầu vào trong các position embeddings. Được chọn trong khoảng [0, config.n_positions - 1].

    ID vị trí là gì?

  • past_key_values (~cache_utils.Cache, tuỳ chọn) — Các hidden-state đã tính trước (key và value trong các khối self-attention và cross-attention) có thể được sử dụng để tăng tốc giải mã tuần tự. Điều này thường bao gồm past_key_values được trả về bởi mô hình ở một giai đoạn giải mã trước đó, khi use_cache=True hoặc config.use_cache=True.

    Chỉ cho phép Cache instance làm đầu vào, xem hướng dẫn kv cache của chúng tôi. Nếu không truyền past_key_values, DynamicCache sẽ được khởi tạo theo mặc định.

    Mô hình sẽ xuất ra cùng định dạng cache được đưa vào làm đầu vào.

    Nếu past_key_values được sử dụng, người dùng được kỳ vọng chỉ nhập input_ids chưa được xử lý (những phần chưa có trạng thái key value quá khứ được cung cấp cho mô hình này) có hình dạng (batch_size, unprocessed_length) thay vì toàn bộ input_ids có hình dạng (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyền input_ids, bạn có thể chọn truyền trực tiếp một biểu diễn nhúng. Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách chuyển đổi các chỉ số input_ids thành các vector liên quan so với ma trận tra cứu nhúng nội bộ của mô hình.
  • use_cache (bool, tùy chọn) — Nếu đặt thành True, các trạng thái key value của past_key_values sẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xem past_key_values).

Trả về

MoeModelOutputWithPast hoặc tuple(torch.Tensor)

Một MoeModelOutputWithPast hoặc một tuple của torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình (UnlimitedOcrConfig) và đầu vào.

Phương thức forward của UnlimitedOcrTextModel ghi đè lên phương thức đặc biệt __call__.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của Module sau đó thay vì gọi hàm này, vì instance Module sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.

  • last_hidden_state (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size)) — Chuỗi các hidden-state tại đầu ra của lớp cuối cùng của mô hình.

  • past_key_values (Cache, tùy chọn, được trả về khi use_cache=True được truyền vào hoặc khi config.use_cache=True) — Đây là một instance của Cache. Để biết thêm chi tiết, hãy xem hướng dẫn về kv cache của chúng tôi.

    Chứa các hidden-states đã được tính trước (key và values trong các khối self-attention và tùy chọn nếu config.is_encoder_decoder=True trong các khối cross-attention) có thể được sử dụng (xem đầu vào past_key_values) để tăng tốc độ giải mã tuần tự.

  • hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Bộ tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của mô hình tại đầu ra của mỗi lớp cùng với các đầu ra embedding ban đầu tùy chọn.

  • attentions (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_attentions=True được truyền vào hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý sau softmax của attention, được sử dụng để tính trung bình có trọng số trong các đầu self-attention.

  • router_logits (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_router_probs=True và config.add_router_probs=True được truyền vào hoặc khi config.output_router_probs=True) — Bộ ba torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, sequence_length, num_experts).

    Logits thô (sau softmax) được tính bởi các router MoE, các thuật ngữ này được sử dụng để tính toán tổn thất bổ trợ cho các mô hình Mixture of Experts.

UnlimitedOcrVisionModel

lớp transformers.UnlimitedOcrVisionModel

< >

( config: UnlimitedOcrVisionConfig )

Tham số

  • config (UnlimitedOcrVisionConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số mô hình.

Mô hình thị giác mã hóa hình ảnh trước tiên bằng SAM, sau đó bằng một mô hình bổ sung (CLIP).

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

< >

( pixel_values: Tensor**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutput or tuple(torch.Tensor)

Tham số

Trả về

BaseModelOutput hoặc tuple(torch.Tensor)

Một BaseModelOutput hoặc một tuple của torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình (UnlimitedOcrConfig) và đầu vào.

Phương thức forward của UnlimitedOcrVisionModel ghi đè lên phương thức đặc biệt __call__.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của Module sau đó thay vì gọi hàm này, vì instance Module sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.

  • last_hidden_state (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size)) — Chuỗi các hidden-state tại đầu ra của lớp cuối cùng của mô hình.

  • hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Bộ tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của mô hình tại đầu ra của mỗi lớp cùng với các đầu ra embedding ban đầu tùy chọn.

  • attentions (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_attentions=True được truyền vào hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý sau softmax của attention, được sử dụng để tính trung bình có trọng số trong các đầu self-attention.

Ví dụ:

>>> import torch
>>> from transformers import AutoConfig, AutoImageProcessor, AutoModel
>>> from transformers.image_utils import load_image

>>> model_id = "baidu/Unlimited-OCR"
>>> config = AutoConfig.from_pretrained(model_id)
>>> model = AutoModel.from_pretrained(model_id, config=config.vision_config, device_map="auto")
>>> image_processor = AutoImageProcessor.from_pretrained(model_id)

>>> image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/ocr_suggestion_form.jpg")
>>> inputs = image_processor(images=image, return_tensors="pt").to(model.device, model.dtype)

>>> with torch.no_grad():
...     outputs = model(**inputs)

>>> # Patch tokens without class tokens (batch_size, height * width, vision_hidden_size + sam_hidden_size)
>>> patch_tokens = outputs.last_hidden_state

UnlimitedOcrModel

lớp transformers.UnlimitedOcrModel

< >

( config: UnlimitedOcrConfig )

Tham số

  • config (UnlimitedOcrConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số mô hình.

Mô hình UnlimitedOcr bao gồm một bộ khung thị giác và một mô hình ngôn ngữ.

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Nonepixel_values_local: typing.Optional[torch.Tensor] = Nonenum_local_patches: list[int] | None = Nonepatches_grid: list[list[int]] | None = 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] = Noneuse_cache: bool | None = Nonemm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → UnlimitedOcrModelOutputWithPast or tuple(torch.Tensor)

Tham số

  • input_ids (torch.LongTensor có dạng (batch_size, sequence_length), tùy chọn) — Chỉ số của các token trong chuỗi đầu vào theo từ điển. Mặc định, padding sẽ bị bỏ qua.

    Các chỉ số có thể được lấy bằng cách sử dụng AutoTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.

    ID đầu vào là gì?

  • pixel_values (torch.Tensor có hình dạng (batch_size, num_channels, image_size, image_size), tùy chọn) — Các tensor tương ứng với các hình ảnh đầu vào. Giá trị pixel có thể được lấy bằng cách sử dụng UnlimitedOcrImageProcessor. Xem UnlimitedOcrImageProcessor.call() để biết chi tiết (UnlimitedOcrProcessor sử dụng UnlimitedOcrImageProcessor để xử lý hình ảnh).
  • pixel_values_local (torch.Tensor, tùy chọn) — Giá trị pixel của các patch cục bộ có hình dạng (total_patches, 3, H, W).
  • num_local_patches (list[int], tùy chọn) — Số lượng local patches trên mỗi ảnh trong batch.
  • patches_grid (list[list[int]], tùy chọn) — Lưới các patch (num_columns, num_rows) cho mỗi ảnh.
  • attention_mask (torch.Tensor có hình dạng (batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện chú ý trên các chỉ số token đệm. Các giá trị mặt nạ được chọn trong [0, 1]:
    • 1 cho các token không bị che,
    • 0 cho các token bị che.

    Mặt nạ chú ý là gì?

  • position_ids (torch.LongTensor có hình dạng (batch_size, sequence_length), tùy chọn) — Chỉ số vị trí của các token trong mỗi chuỗi đầu vào trong các position embeddings. Được chọn trong khoảng [0, config.n_positions - 1].

    ID vị trí là gì?

  • past_key_values (~cache_utils.Cache, tuỳ chọn) — Các hidden-state đã tính trước (key và value trong các khối self-attention và cross-attention) có thể được sử dụng để tăng tốc giải mã tuần tự. Điều này thường bao gồm past_key_values được trả về bởi mô hình ở một giai đoạn giải mã trước đó, khi use_cache=True hoặc config.use_cache=True.

    Chỉ cho phép Cache instance làm đầu vào, xem hướng dẫn kv cache của chúng tôi. Nếu không truyền past_key_values, DynamicCache sẽ được khởi tạo theo mặc định.

    Mô hình sẽ xuất ra cùng định dạng cache được đưa vào làm đầu vào.

    Nếu past_key_values được sử dụng, người dùng được kỳ vọng chỉ nhập input_ids chưa được xử lý (những phần chưa có trạng thái key value quá khứ được cung cấp cho mô hình này) có hình dạng (batch_size, unprocessed_length) thay vì toàn bộ input_ids có hình dạng (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyền input_ids, bạn có thể chọn truyền trực tiếp một biểu diễn nhúng. Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách chuyển đổi các chỉ số input_ids thành các vector liên quan so với ma trận tra cứu nhúng nội bộ của mô hình.
  • use_cache (bool, tùy chọn) — Nếu đặt thành True, các trạng thái key value của past_key_values sẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xem past_key_values).
  • mm_encoder_outputs (dict[str, ~modeling_outputs.BaseModelOutputWithPooling], tùy chọn) — Dict trong đó các khóa là các chế độ (modality) được hỗ trợ và các giá trị là kết quả mã hóa cho chế độ đó. Mỗi kết quả mã hóa là một tuple gồm (pooler_output, tùy chọn: last_hidden_states, tùy chọn: hidden_states, tùy chọn: attentions) pooler_output có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) là một chuỗi các đặc trưng đa phương tiện của bộ mã hóa đã được hợp nhất vào các nhúng văn bản.

Trả về

UnlimitedOcrModelOutputWithPast hoặc tuple(torch.Tensor)

Một UnlimitedOcrModelOutputWithPast hoặc một tuple của torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình (UnlimitedOcrConfig) và đầu vào.

Phương thức forward của UnlimitedOcrModel ghi đè lên phương thức đặc biệt __call__.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của Module sau đó thay vì gọi hàm này, vì instance Module sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.

  • last_hidden_state (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size)) — Chuỗi các hidden-state tại đầu ra của lớp cuối cùng của mô hình.

    Nếu past_key_values được sử dụng, chỉ có hidden-state cuối cùng của các chuỗi có shape (batch_size, 1, hidden_size) được xuất ra.

  • past_key_values (Cache, tùy chọn, được trả về khi use_cache=True được truyền vào hoặc khi config.use_cache=True) — Đây là một instance của Cache. Để biết thêm chi tiết, hãy xem hướng dẫn về kv cache của chúng tôi.

    Chứa các hidden-states đã được tính trước (key và values trong các khối self-attention) có thể được sử dụng (xem đầu vào past_key_values) để tăng tốc độ giải mã tuần tự.

  • hidden_states (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Bộ tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của mô hình tại đầu ra của mỗi lớp cùng với các đầu ra embedding ban đầu tùy chọn.

  • attentions (tuple(torch.Tensor), tuỳ chọn, được trả về khi output_attentions=True được truyền vào hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý sau softmax của attention, được sử dụng để tính trung bình có trọng số trong các đầu self-attention.

  • image_hidden_states (torch.Tensor, tuỳ chọn) — Một torch.Tensor có kích thước (batch_size, num_images, sequence_length, hidden_size). image_hidden_states của mô hình do bộ mã hóa thị giác tạo ra và sau khi chiếu trạng thái ẩn cuối cùng.

  • router_logits (tuple[torch.Tensor], tuỳ chọn, được trả về khi output_router_logits=True được truyền vào hoặc khi config.add_router_probs=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, sequence_length, num_experts).

    Logits của Router trong mô hình, hữu ích để tính toán tổn thất bổ trợ cho các mô hình Mixture of Experts.

UnlimitedOcrForConditionalGeneration

lớp transformers.UnlimitedOcrForConditionalGeneration

< >

( config: UnlimitedOcrConfig )

Tham số

  • config (UnlimitedOcrConfig) — Lớp cấu hình mô hình chứa tất cả các tham số của mô hình. Khởi tạo bằng tệp cấu hình sẽ không tải trọng số liên quan đến mô hình, chỉ tải cấu hình. Xem phương thức from_pretrained() để tải trọng số mô hình.

Mô hình Unlimited Ocr để tạo token có điều kiện dựa trên các phương thức khác (ví dụ: tạo văn bản từ hình ảnh-văn bản).

Mô hình này kế thừa từ PreTrainedModel. Xem tài liệu của lớp cha để biết các phương thức chung mà thư viện triển khai cho tất cả các mô hình của nó (chẳng hạn như tải xuống hoặc lưu trữ, thay đổi kích thước các nhúng đầu vào, cắt tỉa các đầu, v.v.)

Mô hình này cũng là một lớp con của torch.nn.Module trong PyTorch. Hãy sử dụng nó như một Module PyTorch thông thường và tham khảo tài liệu PyTorch cho mọi vấn đề liên quan đến cách sử dụng và hành vi chung.

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Nonepixel_values: typing.Optional[torch.Tensor] = Nonepixel_values_local: typing.Optional[torch.Tensor] = Nonenum_local_patches: list[int] | None = Nonepatches_grid: list[list[int]] | None = 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] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0mm_encoder_outputs: dict[str, transformers.modeling_outputs.BaseModelOutputWithPooling] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → UnlimitedOcrCausalLMOutputWithPast or tuple(torch.Tensor)

Tham số

  • input_ids (torch.LongTensor có dạng (batch_size, sequence_length), tùy chọn) — Chỉ số của các token trong chuỗi đầu vào theo từ điển. Mặc định, padding sẽ bị bỏ qua.

    Các chỉ số có thể được lấy bằng cách sử dụng AutoTokenizer. Xem PreTrainedTokenizer.encode() và PreTrainedTokenizer.call() để biết thêm chi tiết.

    ID đầu vào là gì?

  • pixel_values (torch.Tensor có hình dạng (batch_size, num_channels, image_size, image_size), tùy chọn) — Các tensor tương ứng với các hình ảnh đầu vào. Giá trị pixel có thể được lấy bằng cách sử dụng UnlimitedOcrImageProcessor. Xem UnlimitedOcrImageProcessor.call() để biết chi tiết (UnlimitedOcrProcessor sử dụng UnlimitedOcrImageProcessor để xử lý hình ảnh).
  • pixel_values_local (torch.Tensor, tùy chọn) — Giá trị pixel của các patch cục bộ có hình dạng (total_patches, 3, H, W).
  • num_local_patches (list[int], tùy chọn) — Số lượng local patches trên mỗi ảnh trong batch.
  • patches_grid (list[list[int]], tùy chọn) — Lưới các patch (num_columns, num_rows) cho mỗi ảnh.
  • attention_mask (torch.Tensor có hình dạng (batch_size, sequence_length), tùy chọn) — Mặt nạ để tránh thực hiện chú ý trên các chỉ số token đệm. Các giá trị mặt nạ được chọn trong [0, 1]:
    • 1 cho các token không bị che,
    • 0 cho các token bị che.

    Mặt nạ chú ý là gì?

  • position_ids (torch.LongTensor có hình dạng (batch_size, sequence_length), tùy chọn) — Chỉ số vị trí của các token trong mỗi chuỗi đầu vào trong các position embeddings. Được chọn trong khoảng [0, config.n_positions - 1].

    ID vị trí là gì?

  • past_key_values (~cache_utils.Cache, tuỳ chọn) — Các hidden-state đã tính trước (key và value trong các khối self-attention và cross-attention) có thể được sử dụng để tăng tốc giải mã tuần tự. Điều này thường bao gồm past_key_values được trả về bởi mô hình ở một giai đoạn giải mã trước đó, khi use_cache=True hoặc config.use_cache=True.

    Chỉ cho phép Cache instance làm đầu vào, xem hướng dẫn kv cache của chúng tôi. Nếu không truyền past_key_values, DynamicCache sẽ được khởi tạo theo mặc định.

    Mô hình sẽ xuất ra cùng định dạng cache được đưa vào làm đầu vào.

    Nếu past_key_values được sử dụng, người dùng được kỳ vọng chỉ nhập input_ids chưa được xử lý (những phần chưa có trạng thái key value quá khứ được cung cấp cho mô hình này) có hình dạng (batch_size, unprocessed_length) thay vì toàn bộ input_ids có hình dạng (batch_size, sequence_length).

  • inputs_embeds (torch.Tensor có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) — Tùy chọn, thay vì truyền input_ids, bạn có thể chọn truyền trực tiếp một biểu diễn nhúng. Điều này hữu ích nếu bạn muốn kiểm soát nhiều hơn cách chuyển đổi các chỉ số input_ids thành các vector liên quan so với ma trận tra cứu nhúng nội bộ của mô hình.
  • labels (torch.LongTensor có shape (batch_size, sequence_length), tùy chọn) — Nhãn để tính toán tổn thất mô hình hóa ngôn ngữ có che (masked language modeling loss). Chỉ số phải nằm trong [0, ..., config.vocab_size] hoặc -100 (xem docstring của input_ids). Các token có chỉ số được đặt thành -100 sẽ bị bỏ qua (che), tổn thất chỉ được tính cho các token có nhãn nằm trong [0, ..., config.vocab_size].
  • use_cache (bool, tùy chọn) — Nếu đặt thành True, các trạng thái key value của past_key_values sẽ được trả về và có thể được sử dụng để tăng tốc quá trình giải mã (xem past_key_values).
  • logits_to_keep (Union[int, torch.Tensor], tùy chọn, mặc định là 0) — Nếu là int, tính logits cho logits_to_keep token cuối. Nếu là 0, tính logits cho tất cả input_ids (trường hợp đặc biệt). Chỉ cần logits của token cuối cho quá trình sinh, và việc chỉ tính cho token đó có thể tiết kiệm bộ nhớ, điều này trở nên khá đáng kể với các chuỗi dài hoặc kích thước từ vựng lớn. Nếu là torch.Tensor, phải là 1 chiều tương ứng với các chỉ số cần giữ trong chiều độ dài chuỗi. Điều này hữu ích khi sử dụng định dạng tensor đóng gói (một chiều duy nhất cho batch và độ dài chuỗi).
  • mm_encoder_outputs (dict[str, ~modeling_outputs.BaseModelOutputWithPooling], tùy chọn) — Dict trong đó các khóa là các chế độ (modality) được hỗ trợ và các giá trị là kết quả mã hóa cho chế độ đó. Mỗi kết quả mã hóa là một tuple gồm (pooler_output, tùy chọn: last_hidden_states, tùy chọn: hidden_states, tùy chọn: attentions) pooler_output có hình dạng (batch_size, sequence_length, hidden_size), tùy chọn) là một chuỗi các đặc trưng đa phương tiện của bộ mã hóa đã được hợp nhất vào các nhúng văn bản.

Trả về

UnlimitedOcrCausalLMOutputWithPast hoặc tuple(torch.Tensor)

Một UnlimitedOcrCausalLMOutputWithPast hoặc một tuple của torch.Tensor (nếu return_dict=False được truyền hoặc khi config.return_dict=False) bao gồm các thành phần khác nhau tùy thuộc vào cấu hình (UnlimitedOcrConfig) và đầu vào.

Phương thức forward của UnlimitedOcrForConditionalGeneration ghi đè lên phương thức đặc biệt __call__.

Mặc dù công thức cho bước truyền tiến cần được định nghĩa bên trong hàm này, người dùng nên gọi instance của Module sau đó thay vì gọi hàm này, vì instance Module sẽ đảm nhận việc thực hiện các bước tiền xử lý và hậu xử lý, trong khi hàm này sẽ lặng lẽ bỏ qua chúng.

  • loss (torch.Tensor có shape (1,), tùy chọn, được trả về khi labels được cung cấp) — Loss của language modeling (cho next-token prediction).

  • logits (torch.Tensor có hình dạng (batch_size, sequence_length, config.vocab_size)) — Điểm dự đoán của đầu mô hình hóa ngôn ngữ (điểm cho mỗi token trong từ vựng trước SoftMax).

  • past_key_values (Cache, tùy chọn, được trả về khi use_cache=True được truyền vào hoặc khi config.use_cache=True) — Đây là một instance của Cache. Để biết thêm chi tiết, hãy xem hướng dẫn về kv cache của chúng tôi.

    Chứa các hidden-states đã được tính trước (key và values trong các khối self-attention) có thể được sử dụng (xem đầu vào past_key_values) để tăng tốc độ giải mã tuần tự.

  • hidden_states (tuple[torch.Tensor], tuỳ chọn, được trả về khi output_hidden_states=True được truyền vào hoặc khi config.output_hidden_states=True) — Tuple của torch.Tensor (một cho đầu ra của embeddings, nếu mô hình có lớp embedding, + một cho đầu ra của mỗi lớp) có hình dạng (batch_size, sequence_length, hidden_size).

    Trạng thái ẩn của mô hình tại đầu ra của mỗi lớp cùng với các đầu ra embedding ban đầu tùy chọn.

  • attentions (tuple[torch.Tensor], tuỳ chọn, được trả về khi output_attentions=True được truyền vào hoặc khi config.output_attentions=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, num_heads, sequence_length, sequence_length).

    Trọng số chú ý sau softmax của attention, được sử dụng để tính trung bình có trọng số trong các đầu self-attention.

  • image_hidden_states (torch.Tensor, tuỳ chọn) — Một torch.Tensor có kích thước (batch_size * num_patches, num_images, sequence_length, hidden_size)`. image_hidden_states của mô hình do bộ mã hóa thị giác tạo ra và sau khi chiếu trạng thái ẩn cuối cùng.

  • router_logits (tuple[torch.Tensor], tuỳ chọn, được trả về khi output_router_logits=True được truyền vào hoặc khi config.add_router_probs=True) — Tuple của torch.Tensor (một cho mỗi lớp) có hình dạng (batch_size, sequence_length, num_experts).

    Logits của Router trong mô hình, hữu ích để tính toán tổn thất bổ trợ cho các mô hình Mixture of Experts.

Ví dụ OCR một trang:

>>> from transformers import AutoProcessor, AutoModelForImageTextToText

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

>>> image = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/ocr_suggestion_form.jpg"
>>> messages = [
...     {
...         "role": "user",
...         "content": [{"type": "image", "url": image}, {"type": "text", "text": "document parsing."}],
...     }
... ]
>>> inputs = processor.apply_chat_template(
...     messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt"
... ).to(model.device, model.dtype)

>>> output = model.generate(**inputs)
>>> processor.decode(output[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True)
>>> # image [383, 87, 497, 171]\ntext [333, 201, 558, 230]R&D QUALITY IMPROVEMENT\nSUGGESTION/SOLUTION FORM...

Ví dụ OCR đa trang:

>>> from transformers import AutoProcessor, AutoModelForImageTextToText

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

>>> page1 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/ocr_suggestion_form.jpg"
>>> page2 = "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/transformers/model_doc/ocr_receipt.jpeg"

>>> messages = [
...     {
...         "role": "user",
...         "content": [{"type": "image", "url": page} for page in [page1, page2]]
...         + [{"type": "text", "text": "Multi page parsing."}],
...     }
... ]
>>> inputs = processor.apply_chat_template(
...     messages,
...     add_generation_prompt=True,
...     tokenize=True,
...     return_dict=True,
...     return_tensors="pt",
...     processor_kwargs={"crop_to_patches": False},
... ).to(model.device, model.dtype)

>>> output = model.generate(
...     **inputs,
...     no_repeat_ngram_window_size=1024,
... )
>>> processor.decode(output[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True)
>>> # <PAGE>image [382, 87, 489, 174]\ntitle [333, 201, 556, 230]R&D QUALITY IMPROVEMENT\nSUGGESTION/SCLUTION FORM...
Update on GitHub