Transformers documentation
GraniteDocling
このモデルは2026年11月12日にHugging Face Transformersに貢献されました。
GraniteDocling
GraniteDoclingは、文書変換用のビジョン言語モデルです。ページ画像を入力すると、DocLang(<doclang>)を生成します。これは、読み取り順に並べられたレイアウト要素とそのバウンディングボックス、およびそれらが含むテキスト、表、数式、コードです。DocLangはマークアップであり、Docling(docling-core)は予測結果を解析し、Markdown、HTML、JSONなどの形式にエクスポート可能な文書に変換します。
ページは、アスペクト比に最もよく合うグリッド上に配置された512x512ピクセルのタイルに分割され、タイルが複数ある場合は、ページ全体のサムネイルも含まれます。ビジョンエンコーダーはすべてのタイルを埋め込み、ピクセルシャッフルコネクタはビジョンパッチをイメージトークンにマッピングします。ビジョンエンコーダーの中間状態も投影され、最初のデコーダー層の後にイメージトークンに追加されます。その後、DenseなGraniteスタイルのテキストデコーダーがDocLangを生成します。
GraniteDoclingは2つのモデルとしてリリースされています。500Mモデルは1タイルあたり64個の画像トークンを使用し、密集したページについては256個に切り替えることができます。この切り替えはページごとにルーターが選択します。2Bモデルはピクセルシャッフル比2を使用しており、これは1タイルあたり256個の画像トークンに相当し、500Mモデルのファインパスと同じ密度です。
DoclingプロジェクトがGraniteDoclingを作成しました。両方のモデルはIBM Granite組織によって公開されています。
GraniteDoclingは、Idefics3経由で読み込みを維持するgranite-docling-258Mとは異なるアーキテクチャです。
このモデルはDoclingチームによって提供されました。
GraniteDoclingを異なるドキュメント変換タスクに適用する方法のより多くの例については、右側のサイドバーにあるGraniteDoclingモデルをクリックしてください。
使用のコツ
- チャットテンプレートを通じてモデルにプロンプトを渡します。
<doclang>はページ全体を変換します。要素のサブセットを要求するには、角括弧で囲んだリストを付加します。例えば<doclang> [<ocr>]や<doclang> [<ocr>, <layout>, <picture>]などです。 - 文字列を DocLang として解析する場合は、
skip_special_tokens=Falseを指定してデコードしてください。そうしないと、専用のマークアップトークンは取り除かれます。 - 500Mモデルでは、密集したページ(小さな文字、長い表、複数カラムのテキスト)に対して
fine_route=Trueを渡します。このパスでは画像トークンが4倍使用されるため、プロンプトが長くなり、推論が遅くなります。2Bモデルはすでにそのトークン密度を使用しており、別のパスが存在しないため、fine_route=Trueを指定するとエラーが発生します。 - 500Mモデルには密度ルーターが含まれており、これが判断を代行します。predict_fine_route()は、バッチ内のどのページがファインパスを必要とするかを返します。
以下の例では、Docling Technical Report(arXiv:2408.09869)の1ページ目を変換しています。テキストプロンプトを変更するだけでタスクを切り替えることができ、モデルは要求された要素に絞り込まれたDocLangを返します。
| タスク | プロンプト |
|---|---|
| 全ページ | <doclang> |
| OCR | <doclang> [<ocr>] |
| レイアウト | <doclang> [<layout>] |
| テーブル | <doclang> [<table>] |
| 数式 | <doclang> [<formula>] |
| コード | <doclang> [<code>] |
| チャート | <doclang> [<chart>] |
| 画像 | <doclang> [<picture>] |
| 統合 | <doclang> [<ocr>, <layout>, <picture>] |
全ページ
<doclang> は、レイアウト、テキスト、表、数式、コード、チャート、画像を含むページ全体を変換します。
from transformers import pipeline
pipe = pipeline(
task="image-text-to-text",
model="ibm-granite/granite-for-docling-500m",
)
messages = [
{
"role": "user",
"content": [
{"type": "image", "url": "https://huggingface.co/ibm-granite/granite-for-docling-500m/resolve/main/docling_technical_report_p1.png"},
{"type": "text", "text": "<doclang>"},
],
}
]
pipe(text=messages, max_new_tokens=4096, return_full_text=False, skip_special_tokens=False)from transformers import AutoProcessor, AutoModelForImageTextToText
model_id = "ibm-granite/granite-for-docling-500m"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForImageTextToText.from_pretrained(model_id, device_map="auto")
conversation = [
{
"role": "user",
"content": [
{"type": "image", "url": "https://huggingface.co/ibm-granite/granite-for-docling-500m/resolve/main/docling_technical_report_p1.png"},
{"type": "text", "text": "<doclang>"},
],
},
]
inputs = processor.apply_chat_template(
conversation,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
output = model.generate(**inputs, max_new_tokens=4096)
# Keep the special tokens: they are the DocLang markup. Drop the end-of-text token that closes the generation.
doclang = processor.decode(output[0, inputs["input_ids"].shape[1] :], skip_special_tokens=False)
doclang = doclang.removesuffix(processor.tokenizer.eos_token).strip()
print(doclang)一部の要素のみを変換する場合は、テキストプロンプトを上記の表のいずれかに変更します。例えば、<doclang> [<ocr>, <layout>, <picture>]のようにします。それ以外はすべて同じです。
Dense pages: 細やかなパス
fine connector パスは、タイルあたりの画像トークン数を4倍にします。これにより、小さな文字、長い表、複数カラムのテキストの処理が向上します。呼び出しごとにfine_route=Trueを指定して選択できます。
inputs = processor.apply_chat_template(
conversation,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
processor_kwargs={"fine_route": True},
).to(model.device)
output = model.generate(**inputs, max_new_tokens=4096)500Mモデル(config.density_router_hidden_sizeが設定されている)は、デフォルトの画像トークンから、どのページがファインパスを必要とするかを予測します:
needs_fine = model.model.predict_fine_route(inputs["pixel_values"], inputs["pixel_attention_mask"]) # (batch_size,) bool
if needs_fine[0]:
inputs = processor.apply_chat_template(
conversation,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
processor_kwargs={"fine_route": True},
).to(model.device)
output = model.generate(**inputs, max_new_tokens=4096)バッチ推論
ページごとに異なるタイルグリッドが割り当てられるため、pixel_valuesはバッチ内の最大のタイル数に合わせてパディングされます。pixel_attention_maskは実際のタイルを示し、モデルはパディングを破棄します。
pages = [
"https://huggingface.co/ibm-granite/granite-for-docling-500m/resolve/main/docling_technical_report_p1.png",
"https://huggingface.co/ibm-granite/granite-for-docling-500m/resolve/main/docling_technical_report_p1.png",
]
conversations = [
[{"role": "user", "content": [{"type": "image", "url": url}, {"type": "text", "text": "<doclang>"}]}]
for url in pages
]
inputs = processor.apply_chat_template(
conversations,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
processor_kwargs={"padding": True},
).to(model.device)
output = model.generate(**inputs, max_new_tokens=4096)
for row in output:
doclang = processor.decode(row[inputs["input_ids"].shape[1] :], skip_special_tokens=False)
print(doclang.removesuffix(processor.tokenizer.eos_token).strip())processor_kwargs に "fine_route": True を追加すると、バッチ全体が fine パスにルーティングされ、プロセッサは tile_fine_mask を返します。バッチは1つのパスのみを使用するため、ルーターが fine パスに送信するページを独自のバッチとして実行してください。
DoclingでDocLangをエクスポート
docling-coreは、AutoModelの例にあるdoclang文字列をDoclingDocumentにパースし、必要に応じてシリアライズできます。
from pathlib import Path
from docling_core.transforms.deserializer.doclang import DocLangDocDeserializer
document = DocLangDocDeserializer().deserialize_str(doclang)
print(document.export_to_markdown())
print(document.export_to_html())
print(document.export_to_dict())
document.save_as_markdown(Path("page.md"))
document.save_as_html(Path("page.html"))
document.save_as_json(Path("page.json"))DocLang仕様とdoclangツールキット(validate / pack)は、doclang-project/doclangにあります。デシリアライザーとDoclingDocumentエクスポート機能は、docling-coreに含まれています。
注記
- 1ページ全体は長くなります。
max_new_tokensは数千単位で設定してください。そうしないと、DocLangが静かに切り捨てられてしまいます。 - Tiles は 512x512 のサイズで、ページの縦横比に最もよく合うグリッド上に配置され、
max_patches(デフォルト 32)および 1 辺あたり 16 タイルで上限が設定されています。1 つの Tile に収まるページにはサムネイルは生成されません。 - チェックポイントは、そのイメージプロセッサ設定にスプレッドルールを含めることができます。幅広のランドスケープページ(
dense_min_aspect< 幅/高さ <=dense_max_aspect)に対して、max_patchesグリッドがdense_max_scale以下に縮小してしまう場合に、max_patchesの代わりにdense_max_patchesタイルを使用します。新聞のスプレッドが典型的なケースです。このルールはデフォルトで無効(dense_max_patches=0)であり、チェックポイントが学習された際の設定と一致させる必要があります。 - 500Mモデルでは、fineパスによりタイルあたりの画像トークン数が4倍になり、64から256に増加します。これは高密度なページでのみ使用するか、predict_fine_route()でルーターに判断させることをお勧めします。2Bモデルでは、全体を通じてタイルあたり256の画像トークンを使用します(pixel-shuffle比率2)。
GraniteDoclingConfig
クラス transformers.GraniteDoclingConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonetext_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonevision_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Noneimage_token_id: int = 100337tie_word_embeddings: bool = Trueuse_cache: bool = Truepad_token_id: int | None = 100256density_router_hidden_size: int | None = Nonedensity_router_threshold: float = 0.4density_router_loss_weight: float = 0.1 )
パラメータ
- text_config (
Union[dict, ~configuration_utils.PreTrainedConfig]、省略可) — テキストバックボーンの設定オブジェクトまたは辞書。 - vision_config (
Union[dict, ~configuration_utils.PreTrainedConfig]、任意) — ビジョンバックボーンの config オブジェクトまたは辞書です。 - image_token_id (
int、任意、デフォルトは100337) — 入力画像のプレースホルダーとして使用される画像トークンのインデックスです。 - tie_word_embeddings (
bool、任意、デフォルトはTrue) — モデルのtied_weights_keysマッピングに従って重み埋め込みを共有するかどうかを指定します。 - use_cache (
bool、任意、デフォルトはTrue) — モデルが最後のキー/バリューの注意を返すかどうか(すべてのモデルで利用されるわけではありません)。config.is_decoder=Trueの場合、またはモデルがデコーダー専用の生成モデルである場合にのみ関連します。 - pad_token_id (
int、任意、デフォルトは100256) — 語彙内でパディングに使用されるトークン ID。 - density_router_hidden_size (
int, 省略可能) — 密度ルーターの隠れ層サイズです。ビジュアルエンコーダーの特徴量から、ページがファインコネクタパスを必要とするかどうかを予測します。Noneの場合はルーターが構築されません。 - density_router_threshold (
float, 任意、デフォルト値は 0.4) — 密度ルーターがファインコネクタパスを選択する確率の閾値です。 - density_router_loss_weight (
float、任意、デフォルト値は 0.1) —router_labelsが指定された場合の、density router loss の重み。
これはGraniteDoclingModelの設定を保存するための設定クラスです。指定された引数に基づいてGranite Doclingモデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、ibm-granite/granite-for-docling-500mと類似した設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
GraniteDoclingTextConfig
class transformers.GraniteDoclingTextConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonevocab_size: int = 133800hidden_size: int = 1024intermediate_size: int = 2048num_hidden_layers: int = 28num_attention_heads: int = 16num_key_value_heads: int | None = 4hidden_act: str = 'silu'max_position_embeddings: int = 32768initializer_range: float = 0.02rms_norm_eps: float = 1e-05use_cache: bool = Truepad_token_id: int | None = 100256bos_token_id: int | None = 100257eos_token_id: int | list[int] | None = 100257tie_word_embeddings: bool = Truerope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneattention_bias: bool = Falseattention_dropout: float | int = 0.0mlp_bias: bool = Falseembedding_multiplier: float | int = 12.0logits_scaling: float | int = 4.0residual_multiplier: float | int = 0.263attention_multiplier: float | int = 0.015625 )
パラメータ
- vocab_size (
int、任意、デフォルトは133800) — モデルの語彙サイズ。input_idsで表現できるトークンの種類数を定義します。 - hidden_size (
int、任意、デフォルトは1024) — 隠れ表現の次元数。 - intermediate_size (
int、任意、デフォルトは2048) — MLP 表現の次元数。 - num_hidden_layers (
int、任意、デフォルトは28) — Transformer デコーダーの隠れ層の数。 - num_attention_heads (
int、任意、デフォルトは16) — Transformer デコーダーの各アテンション層におけるアテンションヘッドの数。 - num_key_value_heads (
int、任意、デフォルトは4) — Grouped Query Attention の実装に使用する key_value ヘッドの数を指定します。num_key_value_heads=num_attention_headsの場合、モデルは Multi Head Attention (MHA) を使用し、num_key_value_heads=1の場合は Multi Query Attention (MQA) を使用し、それ以外の場合は GQA が使用されます。 マルチヘッドのチェックポイントを GQA のチェックポイントに変換する際は、各グループの key と value ヘッドは、そのグループ内の元のすべてのヘッドを平均プーリングして構築する必要があります。詳細については、この論文を参照してください。指定しない場合、デフォルトでnum_attention_headsが使用されます。 - hidden_act (
str、任意、デフォルトはsilu) — デコーダーで使用する非線形活性化関数(関数または文字列)。例えば、"gelu"、"relu"、"silu"など。 - max_position_embeddings (
int、任意、デフォルトは32768) — このモデルが使用される可能性のある最大シーケンス長です。 - initializer_range (
float、任意、デフォルトは0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。 - rms_norm_eps (
float、任意、デフォルト値は1e-05) — RMS正規化レイヤーで使用するepsilonです。 - use_cache (
bool、任意、デフォルトはTrue) — モデルが最後のキー/バリューの注意を返すかどうか(すべてのモデルで利用されるわけではありません)。config.is_decoder=Trueの場合、またはモデルがデコーダー専用の生成モデルである場合にのみ関連します。 - pad_token_id (
int、任意、デフォルトは100256) — 語彙内でパディングに使用されるトークン ID。 - bos_token_id (
int、任意、デフォルトは100257) — 語彙におけるストリーム開始に使用されるトークン ID。 - eos_token_id (
Union[int, list[int]]、任意、デフォルトは100257) — 語彙におけるストリーム終了に使用されるトークン ID。 - tie_word_embeddings (
bool、任意、デフォルトはTrue) — モデルのtied_weights_keysマッピングに従って重み埋め込みを共有するかどうかを指定します。 - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], 省略可) — RoPE 埋め込みの設定パラメータを含む辞書です。この辞書にはrope_thetaの値が含まれており、より長いmax_position_embeddingsで RoPE を使用する場合にスケーリングに使用されるパラメータが任意で含まれます。 - attention_bias (
bool、任意、デフォルトはFalse) — 自己注意機構において、クエリ、キー、バリュー、出力の投影層にバイアスを使用するかどうかを指定します。 - attention_dropout (
Union[float, int]、任意、デフォルトは0.0) — アテンション確率のドロップアウト率です。 - mlp_bias (
bool、任意、デフォルトはFalse) — MLP層のup_proj、down_proj、gate_proj層でバイアスを使用するかどうかを指定します。 - embedding_multiplier (
Union[float, int]、任意、デフォルトは12.0) — 単語埋め込みに適用されるスケーリング係数。隠れサイズに対する埋め込みのスケーリングに使用されます。 - logits_scaling (
Union[float, int]、任意、デフォルトは4.0) — 確率分布を計算する前に、出力 logits に適用されるスケーリング係数です。 - residual_multiplier (
Union[float, int]、任意、デフォルトは0.263) — 残差接続に適用されるスケーリング係数。 - attention_multiplier (
Union[float, int]、任意、デフォルトは0.015625) — アテンション重みに適用されるスケーリング係数。
これはGraniteDoclingModelの設定を保存するための設定クラスです。指定された引数に基づいてGranite Doclingモデルをインスタンス化し、モデルのアーキテクチャを定義するために使用されます。デフォルト値で設定をインスタンス化すると、ibm-granite/granite-for-docling-500mと類似した設定が得られます。
設定オブジェクトはPreTrainedConfigを継承し、モデルの出力を制御するために使用できます。詳細については、PreTrainedConfigのドキュメントを参照してください。
>>> from transformers import GraniteDoclingTextModel, GraniteDoclingTextConfig
>>> # Initializing a GraniteDoclingText granite_docling_text-3b style configuration
>>> configuration = GraniteDoclingTextConfig()
>>> # Initializing a model from the granite_docling_text-7b style configuration
>>> model = GraniteDoclingTextModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configGraniteDoclingVisionConfig
クラス transformers.GraniteDoclingVisionConfig
< source >( transformers_version: str | None = Nonearchitectures: list[str] | None = Noneoutput_hidden_states: bool | None = Falsereturn_dict: bool | None = Truedtype: str | torch.dtype | None = Nonechunk_size_feed_forward: int = 0is_encoder_decoder: bool = Falseid2label: dict[int, str] | dict[str, str] | None = Nonelabel2id: dict[str, int] | dict[str, str] | None = Noneproblem_type: Literal['regression', 'single_label_classification', 'multi_label_classification'] | None = Nonehidden_size: int = 768intermediate_size: int = 3072num_hidden_layers: int = 12num_attention_heads: int = 12num_channels: int = 3image_size: int | list[int] | tuple[int, int] = 512patch_size: int | list[int] | tuple[int, int] = 16hidden_act: str = 'gelu_pytorch_tanh'layer_norm_eps: float = 1e-06attention_dropout: float | int = 0.0initializer_range: float = 0.02out_hidden_size: int = 1024scale_factor: int = 4deepstack_visual_indexes: list[int] | None = Noneuse_fine_route: bool = True )
パラメータ
- hidden_size (
int、任意、デフォルトは768) — 隠れ表現の次元数。 - intermediate_size (
int、任意、デフォルトは3072) — MLP 表現の次元数。 - num_hidden_layers (
int、任意、デフォルトは12) — Transformer デコーダーの隠れ層の数。 - num_attention_heads (
int、任意、デフォルトは12) — Transformerデコーダーの各アテンション層におけるアテンションヘッドの数。 - num_channels (
int、任意、デフォルトは3) — 入力チャネル数。 - image_size (
Union[int, list[int], tuple[int, int]]、任意、デフォルトは512) — 各画像のサイズ(解像度)。 - patch_size (
Union[int, list[int], tuple[int, int]]、任意、デフォルトは16) — 各パッチのサイズ(解像度)です。 - hidden_act (
str、任意、デフォルトはgelu_pytorch_tanh) — デコーダーで使用する非線形活性化関数(関数または文字列)です。例えば、"gelu"、"relu"、"silu"などです。 - layer_norm_eps (
float、任意、デフォルトは1e-06) — レイヤーノーマル層で使用する epsilon です。 - attention_dropout (
Union[float, int]、任意、デフォルトは0.0) — アテンション確率のドロップアウト率です。 - initializer_range (
float、任意、デフォルトは0.02) — すべての重み行列を初期化するための truncated_normal_initializer の標準偏差です。 - out_hidden_size (
int、任意、デフォルトは 1024) — コネクタが射影するテキストデコーダーの隠れ層サイズ。 - scale_factor (
int、任意、デフォルトは 4) — コネクタのピクセルシャッフル係数です。(image_size // patch_size) ** 2個のビジョントークンからなる各タイルは、scale_factor ** 2倍に削減されます。 - deepstack_visual_indexes (
list[int]、任意、デフォルトは[3, 7, 10]) — DeepStack マージャーによって射影されるビジョンエンコーダーの層のインデックスです。インデックス 0 は最初の層の出力を指します。 - use_fine_route (
bool、省略可能、デフォルトはTrue) —scale_factorの半分だけピクセルをシャッフルするファインコネクタのパスを構築するかどうか。これにより、タイルあたりのイメージトークン数が4倍になります。500Mのチェックポイントには含まれていますが、2Bのチェックポイントには含まれていません。
ページ内の各512x512タイルを埋め込むSigLIPスタイルのビジョンエンコーダー、およびその出力をイメージトークンに変換するコネクタの構成です。
例:
>>> from transformers import GraniteDoclingVisionConfig, GraniteDoclingVisionModel
>>> # Initializing a GraniteDoclingVisionConfig with ibm-granite/granite-for-docling-500m style configuration
>>> configuration = GraniteDoclingVisionConfig()
>>> # Initializing a GraniteDoclingVisionModel (with random weights) from the ibm-granite/granite-for-docling-500m style configuration
>>> model = GraniteDoclingVisionModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configGraniteDoclingImageProcessor
class transformers.GraniteDoclingImageProcessor
< source >( **kwargs: *<class 'transformers.models.granite_docling.image_processing_granite_docling.GraniteDoclingImageProcessorKwargs'> )
パラメータ
- do_convert_rgb (
bool、kwargs、optional、デフォルトはTrue) — 画像を RGB に変換するかどうか。 - do_resize (
bool、kwargs、任意、デフォルトはTrue) — 画像をリサイズするかどうか。 - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs、デフォルトは{'height' -- 512, 'width': 512}): モデルへの最大入力サイズを指定します。 - default_to_square (
bool、kwargs、任意、デフォルトはTrue) — size が int の場合、リサイズ時に正方形の画像をデフォルトとするかどうかを指定します。 - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_cropを適用した後の出力画像のサイズ。 - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs、デフォルトは3) — 画像のリサイズ時に使用するリサンプリングフィルタです。PILImageResamplingの列挙型のいずれかを使用できます。do_resizeがTrueに設定されている場合のみ、効果が現れます。 - do_rescale (
bool、kwargs、任意、デフォルトはTrue) — 画像をリスケールするかどうかを指定します。 - rescale_factor (
float、kwargs、任意、デフォルト値は0.00392156862745098) —do_rescaleがTrueに設定されている場合、画像をリスケールするための係数です。 - do_normalize (
bool、kwargs、optional、デフォルトはTrue) — 画像を正規化するかどうかを指定します。 - image_mean (
Union[float, list[float], tuple[float, ...]]、kwargs、optional、デフォルトは[0.48145466, 0.4578275, 0.40821073]) — 正規化に使用する画像の平均値です。do_normalizeがTrueに設定されている場合のみ有効です。 - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, optional, デフォルト値は[0.26862954, 0.26130258, 0.27577711]) — 正規化に使用する画像の標準偏差です。do_normalizeがTrueに設定されている場合のみ、効果が現れます。 - do_pad (
bool, kwargs, optional) — 画像をパディングするかどうかを指定します。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。具体的なパディング戦略はモデルによって異なります。 - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — 画像をパディングする{"height": int, "width" int}のサイズです。前処理に提供されるすべての画像サイズより大きくなければなりません。pad_sizeが指定されない場合、バッチ内の最大の幅と高さにパディングされます。do_pad=True.の場合のみ適用されます。 - do_center_crop (
bool, kwargs, optional) — 画像を中央クロップするかどうかを指定します。 - data_format (
Union[str, ~image_utils.ChannelDimension]、kwargs、任意) — サポートされているのはChannelDimension.FIRSTのみです。slow processors との互換性のために追加されました。 - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, 省略可) — 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推測されます。次のいずれかになります:"channels_first"またはChannelDimension.FIRST: (num_channels, height, width) 形式の画像。"channels_last"またはChannelDimension.LAST: (高さ, 幅, チャネル数) 形式の画像。"none"またはChannelDimension.NONE: (height, width) 形式の画像。
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — 動画を処理するデバイスです。未設定の場合、入力動画からデバイスが推論されます。 - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) —'pt'に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。 - disable_grouping (
bool、kwargs、任意) — サイズごとに画像をグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうか。None の場合、画像が CPU にある場合は True、それ以外の場合は False に設定されます。この選択は、https://github.com/huggingface/transformers/pull/38157 に詳しく記載されている経験則に基づいています。 - image_seq_length (
int、kwargs、任意) — 入力内の各画像に使用される画像トークンの数です。 後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。 - crop_to_patches (
bool、kwargs、optional、デフォルトはTrue) — ページを、アスペクト比に最もよく合うグリッド(1辺あたり最大16タイル)に配置された512x512のタイルに分割するかどうか。preprocessメソッドのcrop_to_patchesパラメータで上書きできます。 - min_patches (
int, kwargs, オプション, デフォルト値は 1) — 1 ページあたりのタイルの最小数です。crop_to_patchesがTrueに設定されている場合のみ有効です。preprocessメソッドのmin_patchesパラメータによって上書きできます。 - max_patches (
int, kwargs, optional, デフォルト値は 32) — 1 ページあたりのタイルの最大数です。crop_to_patchesがTrueに設定されている場合のみ有効です。preprocessメソッドのmax_patchesパラメータによって上書きできます。 - fine_route (
bool、kwargs、optional、デフォルトはFalse) — ページがファインコネクタのパスを通るかどうか。このパスでは、タイルあたりのイメージトークン数が4倍になります。 - dense_max_patches (
int, kwargs, optional, デフォルト値は 0) — スプレッドルールが選択するページ用のタイルの最大数 (0 でルールを無効化します)。max_patchesのグリッドによってページがdense_max_scale未満に縮小され、かつその幅と高さの比率がdense_min_aspectを超えている場合 (設定されている場合はdense_max_aspect以下である場合)、max_patchesではなく最大dense_max_patches個のタイルでページがタイル化されます。チェックポイントは同じルールで訓練されていなければなりません。 - dense_max_scale (
float、kwargs、optional、デフォルト値は 0.0) —max_patchesにおいて、タイル化されたキャンバスの幅とページ幅の比率が、この値未満の場合にページが解像度不足とみなされます。0 を指定すると、このテストがスキップされます。 - dense_min_aspect (
float、kwargs、optional、デフォルト値は 0.0) —dense_max_patchesを取得するために、ページが超える必要がある幅/高さの比率です。0 を指定すると、このテストがスキップされます。 - dense_max_aspect (
float、kwargs、optional、デフォルト値は 0.0) —dense_max_patchesを取得するために、ページが超えてはならない幅/高さの比率です。これにより、単一の数式行などのストリップがmax_patchesに保持されます。0 は上限なしを意味します。
ページをアスペクト比に最もよく合うグリッドで512x512のタイルに分割し(crop_to_patches、最大max_patches枚、1辺あたり16枚)、タイルが複数ある場合はページ全体のサムネイルを追加し、バッチ内のサンプルを同じタイル数にパディングします。pixel_attention_maskは実際のタイルを示します。fine_route=Trueは、ファインコネクタパス用のサンプルを示します(tile_fine_mask、サンプルごとに1つの値)。
preprocess
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]*argsimage_like_kwargs: dict[str, typing.Any] | None = None**kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> ) → ~image_processing_base.BatchFeature
パラメータ
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — 前処理対象の画像です。ピクセル値が 0 から 255 の範囲にある単一の画像またはバッチを想定しています。ピクセル値が 0 から 1 の範囲にある画像を渡す場合は、do_rescale=Falseを設定してください。 - image_like_kwargs (
dict[str, Any], 省略可) — 追加の画像類似入力を前処理対象に含めるための開発者向けフラグです。引数として入力値を渡す方法が機能しない場合のみ使用してください。例えば、preprocess(images, masks=masks)が推奨される方法ですが、一部のモデルでは引数の優先順位の問題が発生します。そのような場合は、代わりにpreprocess(images, image_like_inputs={"masks": masks})を使用できます。 - do_convert_rgb (
bool、kwargs、任意) — 画像を RGB に変換するかどうかを指定します。 - do_resize (
bool、kwargs、optional) — 画像をリサイズするかどうか。 - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — モデルへの最大入力次元を記述します。 - default_to_square (
bool、kwargs、任意) — サイズが整数の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。 - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_cropを適用した後の出力画像のサイズ。 - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — 画像のリサイズ時に使用するリサンプリングフィルタ。PILImageResamplingの列挙型のいずれかを使用できます。do_resizeがTrueに設定されている場合のみ有効です。 - do_rescale (
bool、kwargs、optional) — 画像をリスケールするかどうかを指定します。 - rescale_factor (
float、kwargs、任意) —do_rescaleがTrueに設定されている場合、画像をリスケールするための係数。 - do_normalize (
bool, kwargs, optional) — 画像を正規化するかどうかを指定します。 - image_mean (
Union[float, list[float], tuple[float, ...]]、kwargs、optional) — 正規化に使用する画像の平均値。do_normalizeがTrueに設定されている場合のみ有効です。 - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, optional) — 正規化に使用する画像の標準偏差。do_normalizeがTrueに設定されている場合のみ有効です。 - do_pad (
bool, kwargs, optional) — 画像をパディングするかどうかを指定します。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。具体的なパディング戦略はモデルによって異なります。 - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — 画像をパディングする{"height": int, "width" int}のサイズです。前処理に提供されるすべての画像サイズより大きくなければなりません。pad_sizeが指定されない場合、バッチ内の最大の幅と高さにパディングされます。do_pad=True.の場合のみ適用されます。 - do_center_crop (
bool, kwargs, optional) — 画像を中央クロップするかどうかを指定します。 - data_format (
Union[str, ~image_utils.ChannelDimension]、kwargs、任意) — サポートされているのはChannelDimension.FIRSTのみです。slow processors との互換性のために追加されました。 - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, 省略可) — 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推測されます。次のいずれかになります:"channels_first"またはChannelDimension.FIRST: (num_channels, height, width) 形式の画像。"channels_last"またはChannelDimension.LAST: (高さ, 幅, チャネル数) 形式の画像。"none"またはChannelDimension.NONE: (height, width) 形式の画像。
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — 動画を処理するデバイスです。未設定の場合、入力動画からデバイスが推論されます。 - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) —'pt'に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。 - disable_grouping (
bool、kwargs、任意) — サイズごとに画像をグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうか。None の場合、画像が CPU にある場合は True、それ以外の場合は False に設定されます。この選択は、https://github.com/huggingface/transformers/pull/38157 に詳しく記載されている経験則に基づいています。 - image_seq_length (
int、kwargs、任意) — 入力内の各画像に使用される画像トークンの数です。 後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。
戻り値
~image_processing_base.BatchFeature
- data (
dict) — call メソッド(‘pixel_values’ など)によって返される、リスト/配列/テンソルの辞書。 - tensor_type (
Union[None, str, TensorType]、省略可) — 初期化時に PyTorch/Numpy の Tensor 内の整数リストを変換するために、ここで tensor_type を指定できます。
画像または画像のバッチを前処理します。
GraniteDoclingImageProcessorPil
class transformers.GraniteDoclingImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.granite_docling.image_processing_pil_granite_docling.GraniteDoclingImageProcessorKwargs'> )
パラメータ
- do_convert_rgb (
bool、kwargs、optional、デフォルトはTrue) — 画像を RGB に変換するかどうか。 - do_resize (
bool、kwargs、任意、デフォルトはTrue) — 画像をリサイズするかどうか。 - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs、デフォルトは{'height' -- 512, 'width': 512}): モデルへの最大入力サイズを指定します。 - default_to_square (
bool、kwargs、任意、デフォルトはTrue) — size が int の場合、リサイズ時に正方形の画像をデフォルトとするかどうかを指定します。 - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_cropを適用した後の出力画像のサイズ。 - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs、デフォルトは3) — 画像のリサイズ時に使用するリサンプリングフィルタです。PILImageResamplingの列挙型のいずれかを使用できます。do_resizeがTrueに設定されている場合のみ、効果が現れます。 - do_rescale (
bool、kwargs、任意、デフォルトはTrue) — 画像をリスケールするかどうかを指定します。 - rescale_factor (
float、kwargs、任意、デフォルト値は0.00392156862745098) —do_rescaleがTrueに設定されている場合、画像をリスケールするための係数です。 - do_normalize (
bool、kwargs、optional、デフォルトはTrue) — 画像を正規化するかどうかを指定します。 - image_mean (
Union[float, list[float], tuple[float, ...]]、kwargs、optional、デフォルトは[0.48145466, 0.4578275, 0.40821073]) — 正規化に使用する画像の平均値です。do_normalizeがTrueに設定されている場合のみ有効です。 - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, optional, デフォルト値は[0.26862954, 0.26130258, 0.27577711]) — 正規化に使用する画像の標準偏差です。do_normalizeがTrueに設定されている場合のみ、効果が現れます。 - do_pad (
bool, kwargs, optional) — 画像をパディングするかどうかを指定します。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。具体的なパディング戦略はモデルによって異なります。 - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — 画像をパディングする{"height": int, "width" int}のサイズです。前処理に提供されるすべての画像サイズより大きくなければなりません。pad_sizeが指定されない場合、バッチ内の最大の幅と高さにパディングされます。do_pad=True.の場合のみ適用されます。 - do_center_crop (
bool, kwargs, optional) — 画像を中央クロップするかどうかを指定します。 - data_format (
Union[str, ~image_utils.ChannelDimension]、kwargs、任意) — サポートされているのはChannelDimension.FIRSTのみです。slow processors との互換性のために追加されました。 - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, 省略可) — 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推測されます。次のいずれかになります:"channels_first"またはChannelDimension.FIRST: (num_channels, height, width) 形式の画像。"channels_last"またはChannelDimension.LAST: (高さ, 幅, チャネル数) 形式の画像。"none"またはChannelDimension.NONE: (height, width) 形式の画像。
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — 動画を処理するデバイスです。未設定の場合、入力動画からデバイスが推論されます。 - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) —'pt'に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。 - disable_grouping (
bool、kwargs、任意) — サイズごとに画像をグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうか。None の場合、画像が CPU にある場合は True、それ以外の場合は False に設定されます。この選択は、https://github.com/huggingface/transformers/pull/38157 に詳しく記載されている経験則に基づいています。 - image_seq_length (
int、kwargs、任意) — 入力内の各画像に使用される画像トークンの数です。 後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。 - crop_to_patches (
bool、kwargs、optional、デフォルトはTrue) — ページを、アスペクト比に最もよく合うグリッド(1辺あたり最大16タイル)に配置された512x512のタイルに分割するかどうか。preprocessメソッドのcrop_to_patchesパラメータで上書きできます。 - min_patches (
int, kwargs, オプション, デフォルト値は 1) — 1 ページあたりのタイルの最小数です。crop_to_patchesがTrueに設定されている場合のみ有効です。preprocessメソッドのmin_patchesパラメータによって上書きできます。 - max_patches (
int, kwargs, optional, デフォルト値は 32) — 1 ページあたりのタイルの最大数です。crop_to_patchesがTrueに設定されている場合のみ有効です。preprocessメソッドのmax_patchesパラメータによって上書きできます。 - fine_route (
bool、kwargs、optional、デフォルトはFalse) — ページがファインコネクタのパスを通るかどうか。このパスでは、タイルあたりのイメージトークン数が4倍になります。 - dense_max_patches (
int, kwargs, optional, デフォルト値は 0) — スプレッドルールが選択するページ用のタイルの最大数 (0 でルールを無効化します)。max_patchesのグリッドによってページがdense_max_scale未満に縮小され、かつその幅と高さの比率がdense_min_aspectを超えている場合 (設定されている場合はdense_max_aspect以下である場合)、max_patchesではなく最大dense_max_patches個のタイルでページがタイル化されます。チェックポイントは同じルールで訓練されていなければなりません。 - dense_max_scale (
float、kwargs、optional、デフォルト値は 0.0) —max_patchesにおいて、タイル化されたキャンバスの幅とページ幅の比率が、この値未満の場合にページが解像度不足とみなされます。0 を指定すると、このテストがスキップされます。 - dense_min_aspect (
float、kwargs、optional、デフォルト値は 0.0) —dense_max_patchesを取得するために、ページが超える必要がある幅/高さの比率です。0 を指定すると、このテストがスキップされます。 - dense_max_aspect (
float、kwargs、optional、デフォルト値は 0.0) —dense_max_patchesを取得するために、ページが超えてはならない幅/高さの比率です。これにより、単一の数式行などのストリップがmax_patchesに保持されます。0 は上限なしを意味します。
GraniteDoclingImageProcessorのPILバックエンド: 同じ512x512のタイル分割、サムネイル、およびタイルのパディング。
preprocess
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]*argsimage_like_kwargs: dict[str, typing.Any] | None = None**kwargs: *<class 'transformers.processing_utils.ImagesKwargs'> ) → ~image_processing_base.BatchFeature
パラメータ
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — 前処理対象の画像です。ピクセル値が 0 から 255 の範囲にある単一の画像またはバッチを想定しています。ピクセル値が 0 から 1 の範囲にある画像を渡す場合は、do_rescale=Falseを設定してください。 - image_like_kwargs (
dict[str, Any], 省略可) — 追加の画像類似入力を前処理対象に含めるための開発者向けフラグです。引数として入力値を渡す方法が機能しない場合のみ使用してください。例えば、preprocess(images, masks=masks)が推奨される方法ですが、一部のモデルでは引数の優先順位の問題が発生します。そのような場合は、代わりにpreprocess(images, image_like_inputs={"masks": masks})を使用できます。 - do_convert_rgb (
bool、kwargs、任意) — 画像を RGB に変換するかどうかを指定します。 - do_resize (
bool、kwargs、optional) — 画像をリサイズするかどうか。 - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — モデルへの最大入力次元を記述します。 - default_to_square (
bool、kwargs、任意) — サイズが整数の場合、リサイズ時に正方形の画像をデフォルトとするかどうか。 - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) —center_cropを適用した後の出力画像のサイズ。 - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — 画像のリサイズ時に使用するリサンプリングフィルタ。PILImageResamplingの列挙型のいずれかを使用できます。do_resizeがTrueに設定されている場合のみ有効です。 - do_rescale (
bool、kwargs、optional) — 画像をリスケールするかどうかを指定します。 - rescale_factor (
float、kwargs、任意) —do_rescaleがTrueに設定されている場合、画像をリスケールするための係数。 - do_normalize (
bool, kwargs, optional) — 画像を正規化するかどうかを指定します。 - image_mean (
Union[float, list[float], tuple[float, ...]]、kwargs、optional) — 正規化に使用する画像の平均値。do_normalizeがTrueに設定されている場合のみ有効です。 - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, optional) — 正規化に使用する画像の標準偏差。do_normalizeがTrueに設定されている場合のみ有効です。 - do_pad (
bool, kwargs, optional) — 画像をパディングするかどうかを指定します。パディングは、バッチ内の最大サイズに合わせるか、画像ごとに固定の正方形サイズに合わせるかのいずれかで行われます。具体的なパディング戦略はモデルによって異なります。 - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — 画像をパディングする{"height": int, "width" int}のサイズです。前処理に提供されるすべての画像サイズより大きくなければなりません。pad_sizeが指定されない場合、バッチ内の最大の幅と高さにパディングされます。do_pad=True.の場合のみ適用されます。 - do_center_crop (
bool, kwargs, optional) — 画像を中央クロップするかどうかを指定します。 - data_format (
Union[str, ~image_utils.ChannelDimension]、kwargs、任意) — サポートされているのはChannelDimension.FIRSTのみです。slow processors との互換性のために追加されました。 - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, 省略可) — 入力画像のチャネル次元の形式です。設定されていない場合、入力画像からチャネル次元の形式が推測されます。次のいずれかになります:"channels_first"またはChannelDimension.FIRST: (num_channels, height, width) 形式の画像。"channels_last"またはChannelDimension.LAST: (高さ, 幅, チャネル数) 形式の画像。"none"またはChannelDimension.NONE: (height, width) 形式の画像。
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — 動画を処理するデバイスです。未設定の場合、入力動画からデバイスが推論されます。 - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) —'pt'に設定されている場合はスタックされたテンソルを返し、それ以外の場合はテンソルのリストを返します。 - disable_grouping (
bool、kwargs、任意) — サイズごとに画像をグループ化してバッチ処理するのではなく、個別に処理するためにグループ化を無効にするかどうか。None の場合、画像が CPU にある場合は True、それ以外の場合は False に設定されます。この選択は、https://github.com/huggingface/transformers/pull/38157 に詳しく記載されている経験則に基づいています。 - image_seq_length (
int、kwargs、任意) — 入力内の各画像に使用される画像トークンの数です。 後方互換性のために追加されましたが、将来のモデルではプロセッサの属性として設定されるべきです。
戻り値
~image_processing_base.BatchFeature
- data (
dict) — call メソッド(‘pixel_values’ など)によって返される、リスト/配列/テンソルの辞書。 - tensor_type (
Union[None, str, TensorType]、省略可) — 初期化時に PyTorch/Numpy の Tensor 内の整数リストを変換するために、ここで tensor_type を指定できます。
画像または画像のバッチを前処理します。
GraniteDoclingProcessor
class transformers.GraniteDoclingProcessor
< source >( image_processortokenizer = Noneimage_seq_len: int = 64chat_template: str | None = None**kwargs )
パラメータ
- image_processor (
GraniteDoclingImageProcessor) — 画像プロセッサは必須の入力です。 - tokenizer (
tokenizer_class) — トークナイザーは必須の入力です。 - image_seq_len (
int、省略可能、デフォルトは 64) — 粗いパスにおけるタイルごとの<image>トークンの数です。image_seq_len = int(((image_size // patch_size) ** 2) / (scale_factor**2))として計算されます。 - chat_template (
str, 省略可) — チャット内のメッセージのリストをトークナイズ可能な文字列に変換するための Jinja テンプレートです。
GraniteDoclingProcessorを構築します。このクラスは、画像プロセッサとトークナイザーを単一のプロセッサとしてラップします。
GraniteDoclingProcessor は、GraniteDoclingImageProcessor と tokenizer_class のすべての機能を提供します。詳細については、~GraniteDoclingImageProcessor および ~tokenizer_class を参照してください。
__call__
< source >( images = Nonetext = None**kwargs ) → BatchEncoding
パラメータ
- images (`
) -- Image to preprocess. Expects a single or batch of images with pixel values ranging from 0 to 255. If passing in images with pixel values between 0 and 1, setdo_rescale=False`. - text (`
) -- The sequence or batch of sequences to be encoded. Each sequence can be a string or a list of strings (pretokenized string). If you pass a pretokenized input, setis_split_into_words=True` to avoid ambiguity with batched inputs. - return_tensors (
strまたは TensorType, 省略可) — 設定すると、特定のフレームワークのテンソルを返します。使用可能な値は以下の通りです:'pt': PyTorchのtorch.Tensorオブジェクトを返します。'np': NumPyのnp.ndarrayオブジェクトを返します。
戻り値
pixel_values と pixel_attention_mask を含むトークン化されたプロンプト、および fine_route=True の場合の tile_fine_mask です。タイルグリッドはプロンプトの構築にのみ使用され、返却されません。
GraniteDoclingVisionModel
クラス transformers.GraniteDoclingVisionModel
< source >( config: GraniteDoclingVisionConfig )
パラメータ
- config (GraniteDoclingVisionConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
GraniteDoclingのビジュアルエンコーダーと、その上に配置されたコネクタ: ページのタイルを埋め込み、すべてのタイルの画像トークンと射影されたDeepStack特徴量を返します。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( pixel_values: FloatTensorfine: bool = False**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> )
GraniteDoclingVisionModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
GraniteDoclingModel
クラス transformers.GraniteDoclingModel
< source >( config: GraniteDoclingConfig )
パラメータ
- config (GraniteDoclingConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
ビジョンエンコーダー、コネクタ、テキストデコーダーで構成されるGraniteDoclingモデル。特定のヘッドを上に置かず、生の隠れ状態を出力します。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonecache: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonepixel_values: typing.Optional[torch.FloatTensor] = Nonetile_fine_mask: typing.Optional[torch.BoolTensor] = Nonepixel_attention_mask: typing.Optional[torch.BoolTensor] = Nonemm_encoder_outputs: dict | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → GraniteDoclingBaseModelOutputWithPast or tuple(torch.Tensor)
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- attention_mask (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。[0, 1]:- マスクされていないトークンに対して1
- マスクされたトークンに対しては 0 です。
- position_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲[0, config.n_positions - 1]. - cache (
~cache_utils.Cache, 省略可能) — 逐次的なデコーディングを高速化するために使用できる、事前計算済みの隠れ状態(自己注意ブロックおよび相互注意ブロック内のキーとバリュー)。通常、これはcacheデコーディングの以前の段階でモデルが返したuse_cache=Trueまたはconfig.use_cache=True.入力として許可されるのはCacheインスタンスのみです。kv cache guideを参照してください。
cacheが渡されない場合、デフォルトでDynamicCacheが初期化されます。モデルは、入力として与えられたのと同じキャッシュ形式を出力します。
cacheが使用される場合、ユーザーは、すべてのinput_ids(形状(batch_size, sequence_length))ではなく、このモデルに過去のキーバリュー状態が与えられていない未処理のinput_ids(形状(batch_size, unprocessed_length))のみを入力することが期待されます。 - inputs_embeds (
torch.FloatTensor、形状(batch_size, sequence_length, hidden_size)、任意) —input_idsを渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。 - pixel_values (
torch.FloatTensor、形状(batch_size, num_channels, image_size, image_size)、任意) — 入力画像に対応するテンソルです。ピクセル値はimage_processor_classを使用して取得できます。詳細はimage_processor_class.__call__を参照してください(processor_classは画像の処理にimage_processor_classを使用します)。 - tile_fine_mask (
torch.BoolTensor、形状(batch_size,)、任意) — プロセッサがfine_route=Trueで呼び出された場合、すべて True になります。このとき、バッチはファインコネクタのパスを通り、1 タイルあたりの画像トークン数が 4 倍になります。 - pixel_attention_mask (
torch.BoolTensor、形状(batch_size, num_tiles)、任意) — プロセッサが返す実際のタイルです。パディング用のタイルは false になります。pixel_valuesと併せて指定する必要があります。 - mm_encoder_outputs (
dict, 省略可) — キーがサポートされているモダリティ、値がそのモダリティのエンコード済み出力である辞書です。各エンコード済み出力は、(pooler_output, 省略可:last_hidden_states, 省略可:hidden_states, 省略可:attentions)pooler_output(形状(batch_size, sequence_length, hidden_size), 省略可) からなるタプルです。pooler_outputは、エンコーダーのマルチモーダル特徴量をテキスト埋め込みにマージしたシーケンスです。
戻り値
GraniteDoclingBaseModelOutputWithPast または tuple(torch.Tensor)
GraniteDoclingBaseModelOutputWithPast または、torch.Tensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)。設定(None)や入力に応じて、さまざまな要素で構成されます。
Inputs fed to the model can have an arbitrary number of images. To account for this, pixel_values fed to
the model have image padding -> (batch_size, max_num_tiles, 3, image_size, image_size) where max_num_tiles
is the maximum number of tiles among the batch_size samples in the batch. Padding tiles are false in pixel_attention_mask and are discarded before the vision encoder.
last_hidden_state (
torch.Tensor、形状(batch_size, sequence_length, hidden_size)、任意) — モデルの最終層の出力における隠れ状態のシーケンス。cache (
~cache_utils.Cache、任意、use_cache=Trueが渡された場合またはconfig.use_cache=Trueの場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。自己注意ブロックおよび(
config.is_encoder_decoder=Trueの場合、任意で)相互注意ブロックの事前計算済み隠れ状態(キーとバリュー)が含まれており、シーケンシャルデコーディングを高速化するために使用できます(cache入力参照)。hidden_states (
tuple[torch.Tensor]、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます) —torch.Tensorのタプル(モデルに埋め込み層がある場合は埋め込みの出力用 1 つ、各層の出力用 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
attentions (
tuple[torch.Tensor]、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます) —torch.Tensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
image_hidden_states (
tuple[torch.Tensor]、形状(batch_size, num_images, sequence_length, hidden_size)、任意) — ビジョンエンコーダーによって生成され、最後の隠れ状態を投影した後のモデルの画像隠れ状態です。router_logits (
torch.FloatTensor、shape(batch_size,)、任意) — 密度ルーターのロジット。サンプルごとに1つ返されます。モデルにルーターがあり、pixel_valuesが指定された場合に返されます。
get_image_features
< source >( pixel_values: FloatTensorpixel_attention_mask: BoolTensortile_fine_mask: typing.Optional[torch.BoolTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → GraniteDoclingImageFeaturesOutput or tuple(torch.Tensor)
パラメータ
- pixel_values (
torch.FloatTensor、形状(batch_size, num_tiles, num_channels, image_size, image_size)) — 入力画像タイルに対応するテンソルです。 - pixel_attention_mask (
torch.BoolTensor、形状(batch_size, num_tiles)) — プロセッサが返す実際のタイルです。パディングのタイルは false です。 - tile_fine_mask (
torch.BoolTensor、形状(batch_size,)、任意) —fine_route=Trueを指定して呼び出されたプロセッサが必要です。バッチはファインコネクタのパスを通り、1タイルあたりの画像トークン数が4倍になります。
戻り値
GraniteDoclingImageFeaturesOutput または tuple(torch.Tensor)
GraniteDoclingImageFeaturesOutput、またはtorch.Tensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(GraniteDoclingConfig)や入力に応じて、さまざまな要素で構成されます。
last_hidden_state (
torch.Tensor、形状(batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。pooler_output (
tuple[torch.FloatTensor]、長さbatch_size) — 各サンプルの画像トークンをタイル順に並べ、テキストの隠れ層サイズに射影したものです。各テンソルの形状は(num_image_tokens, hidden_size)です。1タイルから得られるトークン数は、粗いコネクタパスではimage_seq_len個、細いパスではその4倍です。生成時には、これらのサンプルごとのテンソルがビーム全体にわたって繰り返し使用されます。hidden_states (
tuple(torch.Tensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます) —torch.Tensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
attentions (
tuple(torch.Tensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます) —torch.Tensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
deepstack_features (
list[tuple[torch.FloatTensor]], optional) —config.deepstack_visual_indexesの各エントリに対応する、1つの射影された中間ビジョンエンコーダーの隠れ状態。各エントリはサンプルごとに分割され、pooler_outputと同じレイアウトになっています。router_logits (
torch.FloatTensor、形状(batch_size,)、任意) — 密度ルーターのロジット。サンプルごとに1つずつ返されます。モデルにルーターがある場合に返されます。
predict_fine_route
< source >( pixel_values: FloatTensorpixel_attention_mask: BoolTensor ) → torch.BoolTensor of shape (batch_size,)
密度ルーターを使用して、ファインコネクタパスを必要とするサンプルを予測します。fine_route=Trueを指定してプロセッサを再度呼び出すことで、それらをルーティングします。
GraniteDoclingTextModel
class transformers.GraniteDoclingTextModel
< source >( config: GraniteDoclingTextConfig )
パラメータ
- config (GraniteDoclingTextConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
特定のヘッドを上に付加せずに、生の隠れ状態を出力する、素のGranite Docling Text Model。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonecache: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Noneuse_cache: bool | None = Nonevisual_pos_masks: typing.Optional[torch.BoolTensor] = Nonedeepstack_visual_embeds: list[torch.Tensor] | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.Tensor)
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- attention_mask (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。[0, 1]:- マスクされていないトークンに対して1
- マスクされたトークンに対しては 0 です。
- position_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲[0, config.n_positions - 1]. - cache (
~cache_utils.Cache, 省略可能) — 逐次的なデコーディングを高速化するために使用できる、事前計算済みの隠れ状態(自己注意ブロックおよび相互注意ブロック内のキーとバリュー)。通常、これはcacheデコーディングの以前の段階でモデルが返したuse_cache=Trueまたはconfig.use_cache=True.入力として許可されるのはCacheインスタンスのみです。kv cache guideを参照してください。
cacheが渡されない場合、デフォルトでDynamicCacheが初期化されます。モデルは、入力として与えられたのと同じキャッシュ形式を出力します。
cacheが使用される場合、ユーザーは、すべてのinput_ids(形状(batch_size, sequence_length))ではなく、このモデルに過去のキーバリュー状態が与えられていない未処理のinput_ids(形状(batch_size, unprocessed_length))のみを入力することが期待されます。 - inputs_embeds (
torch.FloatTensor、形状(batch_size, sequence_length, hidden_size)、任意) —input_idsを渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。 - use_cache (
bool, 省略可) —Trueに設定すると、cacheのキーとバリューの状態が返され、デコーディングの高速化に使用できます(cacheを参照)。 - visual_pos_masks (
torch.BoolTensor、形状(batch_size, sequence_length)、任意) — DeepStack 特徴を受け取る画像トークンの位置です。 - deepstack_visual_embeds (
list[torch.Tensor]、任意) — DeepStack 特徴量で、各要素の形状は(num_image_tokens, hidden_size)です。i番目の要素は、デコーダー層iの後にvisual_pos_masksにおける隠れ状態に追加されます。
戻り値
BaseModelOutputWithPast または tuple(torch.Tensor)
None や入力に応じて、さまざまな要素で構成される BaseModelOutputWithPast または torch.Tensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)。
GraniteDoclingTextModelのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
last_hidden_state (
torch.Tensor、形状(batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。cacheが使用されている場合、出力されるのは形状(batch_size, 1, hidden_size)のシーケンスの最後の隠れ状態のみです。cache (
Cache、任意、use_cache=Trueが渡された場合またはconfig.use_cache=Trueの場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。自己注意ブロックおよび(
config.is_encoder_decoder=Trueの場合、任意で)相互注意ブロックの事前計算済み隠れ状態(キーとバリュー)が含まれており、シーケンシャルデコーディングを高速化するために使用できます(cache入力参照)。hidden_states (
tuple(torch.Tensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます) —torch.Tensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
attentions (
tuple(torch.Tensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます) —torch.Tensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
GraniteDoclingForConditionalGeneration
クラス transformers.GraniteDoclingForConditionalGeneration
< source >( config: GraniteDoclingConfig )
パラメータ
- config (GraniteDoclingConfig) — モデルのパラメータをすべて含むモデル設定クラスです。設定ファイルで初期化しても、モデルに関連する重みは読み込まれず、設定のみが読み込まれます。モデルの重みをロードするには、from_pretrained() メソッドを参照してください。
言語モデリングヘッドを備えたGraniteDoclingモデルです。ビジュアルエンコーダー、コネクタ、テキストデコーダーで構成され、その上に言語モデリングヘッドが配置されています。
このモデルは PreTrainedModel を継承しています。すべてのモデルに実装されている汎用的なメソッド(ダウンロードや保存、入力埋め込みのリサイズ、ヘッドのプルーニングなど)については、スーパークラスのドキュメントを参照してください。
このモデルは、PyTorchのtorch.nn.Moduleのサブクラスでもあります。 通常のPyTorch Moduleとして使用し、一般的な使用方法や動作に関する詳細については、PyTorchのドキュメントを参照してください。
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonecache: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.FloatTensor] = Nonepixel_values: typing.Optional[torch.FloatTensor] = Nonetile_fine_mask: typing.Optional[torch.BoolTensor] = Nonepixel_attention_mask: typing.Optional[torch.BoolTensor] = Nonemm_encoder_outputs: dict | None = Nonelabels: typing.Optional[torch.LongTensor] = Nonerouter_labels: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → GraniteDoclingCausalLMOutputWithPast or tuple(torch.Tensor)
パラメータ
- input_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、省略可) — 語彙における入力シーケンスのトークンインデックスです。デフォルトではパディングは無視されます。インデックスはAutoTokenizerを使用して取得できます。詳細については、PreTrainedTokenizer.encode()およびPreTrainedTokenizer.call()を参照してください。
- attention_mask (
torch.Tensorの形状(batch_size, sequence_length), 、任意) — パディングトークンのインデックスに対するアテンションを回避するためのマスク。[0, 1]:- マスクされていないトークンに対して1
- マスクされたトークンに対しては 0 です。
- position_ids (
torch.LongTensorの形状(batch_size, sequence_length), 、任意) — 各入力シーケンスのトークンが位置埋め込み内で占める位置のインデックス。範囲[0, config.n_positions - 1]. - cache (
~cache_utils.Cache, 省略可能) — 逐次的なデコーディングを高速化するために使用できる、事前計算済みの隠れ状態(自己注意ブロックおよび相互注意ブロック内のキーとバリュー)。通常、これはcacheデコーディングの以前の段階でモデルが返したuse_cache=Trueまたはconfig.use_cache=True.入力として許可されるのはCacheインスタンスのみです。kv cache guideを参照してください。
cacheが渡されない場合、デフォルトでDynamicCacheが初期化されます。モデルは、入力として与えられたのと同じキャッシュ形式を出力します。
cacheが使用される場合、ユーザーは、すべてのinput_ids(形状(batch_size, sequence_length))ではなく、このモデルに過去のキーバリュー状態が与えられていない未処理のinput_ids(形状(batch_size, unprocessed_length))のみを入力することが期待されます。 - inputs_embeds (
torch.FloatTensor、形状(batch_size, sequence_length, hidden_size)、任意) —input_idsを渡す代わりに、埋め込み表現を直接渡すこともできます。これは、モデル内部の埋め込みルックアップ行列よりも、input_idsのインデックスを対応するベクトルに変換する方法をより細かく制御したい場合に有用です。 - pixel_values (
torch.FloatTensor、形状(batch_size, num_channels, image_size, image_size)、任意) — 入力画像に対応するテンソルです。ピクセル値はimage_processor_classを使用して取得できます。詳細はimage_processor_class.__call__を参照してください(processor_classは画像の処理にimage_processor_classを使用します)。 - tile_fine_mask (
torch.BoolTensor、形状(batch_size,)、任意) — プロセッサがfine_route=Trueで呼び出された場合、すべて True になります。このとき、バッチはファインコネクタのパスを通り、1 タイルあたりの画像トークン数が 4 倍になります。 - pixel_attention_mask (
torch.BoolTensor、形状(batch_size, num_tiles)、任意) — プロセッサが返す実際のタイルです。パディング用のタイルは false になります。pixel_valuesと併せて指定する必要があります。 - mm_encoder_outputs (
dict, 省略可) — キーがサポートされているモダリティ、値がそのモダリティのエンコード済み出力である辞書です。各エンコード済み出力は、(pooler_output, 省略可:last_hidden_states, 省略可:hidden_states, 省略可:attentions)pooler_output(形状(batch_size, sequence_length, hidden_size), 省略可) からなるタプルです。pooler_outputは、エンコーダーのマルチモーダル特徴量をテキスト埋め込みにマージしたシーケンスです。 - labels (
torch.LongTensor、形状(batch_size, sequence_length)、任意) — マスクド言語モデリング損失を計算するためのラベルです。インデックスは[0, ..., config.vocab_size]の範囲内であるか、model.image_token_id(ここでmodelはGraniteDoclingForConditionalGenerationのインスタンス)である必要があります。 インデックスがmodel.image_token_idに設定されているトークンは無視(マスク)され、損失は[0, ..., config.vocab_size]の範囲内のラベルを持つトークンのみに対して計算されます。 - router_labels (
torch.Tensor、形状(batch_size,)、任意) — 密度ルーターのターゲット。ファインコネクタパスを必要とするサンプルには1(またはTrue)、それ以外には0を指定します。float、bool、int のいずれかで指定でき、ルーターの損失は logits に対する二値交差エントロピーです。 - use_cache (
bool, 省略可) —Trueに設定すると、cacheのキーとバリューの状態が返され、デコーディングの高速化に使用できます(cacheを参照)。 - logits_to_keep (
Union[int, torch.Tensor]、省略可、デフォルトは0) —intの場合、最後のlogits_to_keepトークンについて logits を計算します。0の場合、すべてのinput_idsについて logits を計算します(特殊ケース)。生成には最後のトークンの logits だけで十分であり、そのトークンのみについて計算することでメモリを節約できます。これは、長いシーケンスや大規模な語彙サイズの場合に特に顕著な効果があります。torch.Tensorの場合、シーケンス長次元で保持するインデックスに対応する 1 次元テンソルである必要があります。これは、パックされたテンソル形式(バッチとシーケンス長を単一の次元にまとめた形式)を使用する場合に有用です。
戻り値
GraniteDoclingCausalLMOutputWithPast または tuple(torch.Tensor)
GraniteDoclingCausalLMOutputWithPast、またはtorch.Tensorのタプル(return_dict=Falseが渡された場合、またはconfig.return_dict=Falseの場合)。設定(None)や入力に応じて、さまざまな要素で構成されます。
GraniteDoclingForConditionalGenerationのforwardメソッドは、__call__特殊メソッドをオーバーライドします。
この関数内でフォワードパスの手順を定義する必要がありますが、その後、この関数ではなく
Moduleインスタンスを呼び出すべきです。前者は前処理と後処理の実行を適切に処理するのに対し、後者はそれらを黙って無視するためです。
loss (
torch.FloatTensor、shape(1,)、optional、labelsが指定された場合に返されます) — 言語モデリングの損失(次のトークン予測用)。logits (
torch.FloatTensor、shape(batch_size, sequence_length, config.vocab_size)) — 言語モデリングヘッドの予測スコア(SoftMax 適用前の各語彙トークンのスコア)。cache (
~cache_utils.Cache、任意、use_cache=Trueが渡された場合またはconfig.use_cache=Trueの場合に返されます) — Cache のインスタンスです。詳細については、kv cache ガイドを参照してください。自己注意ブロックおよび(
config.is_encoder_decoder=Trueの場合、任意で)相互注意ブロックの事前計算済み隠れ状態(キーとバリュー)が含まれており、シーケンシャルデコーディングを高速化するために使用できます(cache入力参照)。hidden_states (
tuple[torch.Tensor]、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます) —torch.Tensorのタプル(モデルに埋め込み層がある場合は埋め込みの出力用 1 つ、各層の出力用 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
attentions (
tuple[torch.Tensor]、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます) —torch.Tensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
image_hidden_states (
tuple[torch.Tensor]、形状(batch_size, num_images, sequence_length, hidden_size)、任意) — ビジョンエンコーダーによって生成され、最後の隠れ状態を投影した後のモデルの画像隠れ状態です。router_logits (
torch.FloatTensor、shape(batch_size,)、任意) — 密度ルーターのロジット。サンプルごとに1つ返されます。モデルにルーターがあり、pixel_valuesが指定された場合に返されます。
例:
>>> from transformers import AutoProcessor, AutoModelForImageTextToText
>>> from transformers.image_utils import load_image
>>> image = load_image("https://huggingface.co/ibm-granite/granite-for-docling-500m/resolve/main/docling_technical_report_p1.png")
>>> processor = AutoProcessor.from_pretrained("ibm-granite/granite-for-docling-500m")
>>> model = AutoModelForImageTextToText.from_pretrained("ibm-granite/granite-for-docling-500m", device_map="auto")
>>> messages = [
... {
... "role": "user",
... "content": [
... {"type": "image"},
... {"type": "text", "text": "<doclang>"},
... ],
... }
... ]
>>> prompt = processor.apply_chat_template(messages, add_generation_prompt=True)
>>> inputs = processor(text=prompt, images=image, return_tensors="pt").to(model.device)
>>> generated_ids = model.generate(**inputs, max_new_tokens=4096)
>>> print(processor.decode(generated_ids[0, inputs["input_ids"].shape[1] :], skip_special_tokens=False))get_image_features
< source >( pixel_values: Tensorpixel_attention_mask: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPooling or tuple(torch.Tensor)
パラメータ
- pixel_values (
torch.Tensor、形状(batch_size, num_channels, image_size, image_size)) — 入力画像に対応するテンソルです。 - pixel_attention_mask (
torch.LongTensor, 任意) — 画像内のパディング領域を示すアテンションマスクです。
戻り値
BaseModelOutputWithPooling または tuple(torch.Tensor)
torch.Tensor のタプル(return_dict=False が渡された場合、または config.return_dict=False の場合)または BaseModelOutputWithPooling。設定(GraniteDoclingConfig)と入力に応じて、さまざまな要素で構成されます。
last_hidden_state (
torch.Tensor、形状(batch_size, sequence_length, hidden_size)) — モデルの最終層の出力における隠れ状態のシーケンス。pooler_output (
torch.Tensor、shape(batch_size, hidden_size)) — シーケンスの最初のトークン(分類トークン)の最終層の隠れ状態を、補助的な事前学習タスクに使用される層でさらに処理した後の出力。例えば、BERT系のモデルでは、線形層とtanh活性化関数を経て処理された分類トークンを返します。この線形層の重みは、事前学習中の次の文予測(分類)目的から学習されます。hidden_states (
tuple(torch.Tensor)、optional、output_hidden_states=Trueが渡された場合またはconfig.output_hidden_states=Trueの場合に返されます) —torch.Tensorのタプル(埋め込み層を持つモデルの場合、埋め込みの出力が 1 つ、各層の出力がそれぞれ 1 つずつ)で、形状は(batch_size, sequence_length, hidden_size)です。各層の出力におけるモデルのHidden-states、および任意の初期埋め込み出力。
attentions (
tuple(torch.Tensor)、optional、output_attentions=Trueが渡された場合またはconfig.output_attentions=Trueの場合に返されます) —torch.Tensorのタプル(各レイヤーごとに1つ)、形状は(batch_size, num_heads, sequence_length, sequence_length)。アテンションのsoftmax後のアテンション重み。自己アテンションヘッド内で加重平均を計算するために使用されます。
例:
>>> from PIL import Image
>>> from transformers import AutoProcessor, GraniteDoclingForConditionalGeneration
>>> model = GraniteDoclingForConditionalGeneration.from_pretrained("ibm-granite/granite-for-docling-500m")
>>> processor = AutoProcessor.from_pretrained("ibm-granite/granite-for-docling-500m")
>>> messages = [
... {
... "role": "user", "content": [
... {"type": "image", "url": "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/pipeline-cat-chonk.jpeg"},
... {"type": "text", "text": "Where is the cat standing?"},
... ]
... },
... ]
>>> inputs = processor.apply_chat_template(
... messages,
... tokenize=True,
... return_dict=True,
... return_tensors="pt",
... add_generation_prompt=True
... )
>>> # Generate
>>> generate_ids = model.generate(**inputs)
>>> processor.batch_decode(generate_ids, skip_special_tokens=True)[0]