Transformers documentation
Nougat
Ce modèle a été publié dans HF papers le 2023-08-25 et contribué à Hugging Face Transformers le 2023-09-26.
Nougat
Aperçu
Le modèle Nougat a été proposé dans Nougat: Neural Optical Understanding for Academic Documents par Lukas Blecher, Guillem Cucurull, Thomas Scialom, Robert Stojnic. Nougat utilise la même architecture que Donut, c'est-à-dire un encodeur Transformer d'images et un décodeur Transformer de texte autorégressif pour traduire les PDF scientifiques en markdown, facilitant ainsi leur accès.
L'abstract de l'article est le suivant :
Les connaissances scientifiques sont principalement stockées dans des livres et des revues scientifiques, souvent sous forme de PDF. Cependant, le format PDF entraîne une perte d’informations sémantiques, en particulier pour les expressions mathématiques. Nous proposons Nougat (Neural Optical Understanding for Academic Documents), un modèle Visual Transformer qui exécute une tâche de reconnaissance optique de caractères (OCR) pour traiter les documents scientifiques en langage de balisage, et nous démontrons l’efficacité de notre modèle sur un nouveau jeu de données de documents scientifiques. L’approche proposée offre une solution prometteuse pour améliorer l’accessibilité des connaissances scientifiques à l’ère numérique, en comblant le fossé entre les documents lisibles par l’homme et le texte lisible par machine. Nous publions les modèles et le code pour accélérer les travaux futurs sur la reconnaissance de texte scientifique.
Nougat high-level overview. Taken from the original paper. Ce modèle a été contribué par nielsr. Le code d'origine peut être trouvé ici.
Conseils d'utilisation
- La façon la plus rapide de se lancer avec Nougat est de consulter les carnets de tutoriel, qui montrent comment utiliser le modèle lors de l'inférence ainsi que comment l'ajuster finement sur des données personnalisées.
- Nougat est toujours utilisé dans le cadre de VisionEncoderDecoder. Le modèle est identique à Donut en termes d'architecture.
Inférence
Le modèle VisionEncoderDecoder de Nougat accepte des images en entrée et utilise generate() pour générer du texte de manière autorégressive à partir de l'image d'entrée.
La classe NougatImageProcessor est chargée de la prétraitement de l'image d'entrée et NougatTokenizerFast décode les jetons cibles générés en chaîne de caractères cible. La classe NougatProcessor encapsule les classes NougatImageProcessor et NougatTokenizerFast dans une seule instance afin d'extraire les caractéristiques d'entrée et de décoder les identifiants de jetons prédits.
- Transcription de PDF étape par étape
from huggingface_hub import hf_hub_download
from PIL import Image
from transformers import AutoModelForImageTextToText, NougatProcessor
processor = NougatProcessor.from_pretrained("facebook/nougat-base")
model = AutoModelForImageTextToText.from_pretrained("facebook/nougat-base", device_map="auto")
model.to(model.device) # doctest: +IGNORE_RESULT
# prepare PDF image for the model
filepath = hf_hub_download(repo_id="hf-internal-testing/fixtures_docvqa", filename="nougat_paper.png", repo_type="dataset")
image = Image.open(filepath)
pixel_values = processor(image, return_tensors="pt").to(model.device).pixel_values
# generate transcription (here we only generate 30 tokens)
outputs = model.generate(
pixel_values.to(model.device),
min_length=1,
max_new_tokens=30,
bad_words_ids=[[processor.tokenizer.unk_token_id]],
)
sequence = processor.batch_decode(outputs, skip_special_tokens=True)[0]
sequence = processor.post_process_generation(sequence, fix_markdown=False)
# note: we're using repr here such for the sake of printing the \n characters, feel free to just print the sequence
print(repr(sequence))
'\n\n# Nougat: Neural Optical Understanding for Academic Documents\n\n Lukas Blecher\n\nCorrespondence to: lblecher@'Consultez le model hub pour rechercher des points de contrôle Nougat.
Le modèle est identique à Donut en termes d'architecture.
NougatConfig
classe transformers.NougatConfig
< 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 = 0id2label: 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 = Noneis_encoder_decoder: bool = Trueencoder: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonedecoder: dict | transformers.configuration_utils.PreTrainedConfig | None = None )
Paramètres
- is_encoder_decoder (
bool, facultatif, valeur par défautTrue) — Indique si le modèle est utilisé comme encodeur/décodeur ou non. - encoder (
Union[dict, ~configuration_utils.PreTrainedConfig], facultatif) — L’objet de configuration ou le dictionnaire du backbone de l’encodeur. - decoder (
Union[dict, ~configuration_utils.PreTrainedConfig], facultatif) — L’objet de configuration ou le dictionnaire du backbone du décodeur.
Ceci est la classe de configuration destinée à stocker la configuration d'un NougatModel. Elle est utilisée pour instancier un modèle Nougat en fonction des arguments spécifiés, définissant ainsi l'architecture du modèle. L'instanciation d'une configuration avec les valeurs par défaut produira une configuration similaire à celle de facebook/nougat-base
Les objets de configuration héritent de PreTrainedConfig et peuvent être utilisés pour contrôler les sorties du modèle. Consultez la documentation de PreTrainedConfig pour plus d’informations.
Exemples :
>>> from transformers import NougatConfig, VisionEncoderDecoderModel
>>> # Initializing a Nougat configuration
>>> config = NougatConfig()
>>> # Initializing a VisionEncoderDecoder model (with random weights) from a Nougat configurations
>>> model = VisionEncoderDecoderModel(config=config)from_encoder_decoder_configs
< source >( encoder_config: PreTrainedConfigdecoder_config: PreTrainedConfig**kwargs ) → VisionEncoderDecoderConfig
Retourne
Une instance d'un objet de configuration
Instanciez un VisionEncoderDecoderConfig (ou une classe dérivée) à partir de la configuration d'un modèle encodeur pré-entraîné et de la configuration d'un modèle décodeur.
NougatImageProcessor
classe transformers.NougatImageProcessor
< source >( **kwargs: *<class 'transformers.models.nougat.image_processing_nougat.NougatImageProcessorKwargs'> )
Paramètres
- do_convert_rgb (
bool, kwargs, facultatif) — Indique s'il faut convertir l'image en RGB. - do_resize (
bool, kwargs, facultatif, valeur par défautTrue) — Indique s'il faut redimensionner l'image. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, par défaut{'height' -- 896, 'width': 672}) : Définit les dimensions d'entrée maximales du modèle. - default_to_square (
bool, kwargs, facultatif, valeur par défautTrue) — Indique s'il faut utiliser une image carrée par défaut lors du redimensionnement, si la taille est un entier. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Taille de l'image de sortie après application decenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, par défaut2) — Filtre de rééchantillonnage à utiliser lors du redimensionnement de l’image. Il peut s’agir de l’une des valeurs de l’enumPILImageResampling. N’a un effet que sido_resizeest défini surTrue. - do_rescale (
bool, kwargs, facultatif, par défautTrue) — Indique s'il faut rééchelonner l'image. - rescale_factor (
float, kwargs, facultatif, valeur par défaut0.00392156862745098) — Facteur de remise à l'échelle appliqué à l'image sido_rescaleest défini surTrue. - do_normalize (
bool, kwargs, facultatif, valeur par défautTrue) — Indique s'il faut normaliser l'image. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, facultatif, valeur par défaut[0.485, 0.456, 0.406]) — Moyenne de l'image à utiliser pour la normalisation. N'a un effet que sido_normalizeest défini surTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, facultatif, valeur par défaut[0.229, 0.224, 0.225]) — Écart-type de l'image à utiliser pour la normalisation. N'a un effet que sido_normalizeest défini surTrue. - do_pad (
bool, kwargs, facultatif, valeur par défautTrue) — Indique s'il faut appliquer un bourrage (padding) à l'image. Le bourrage est effectué soit jusqu'à la plus grande taille du lot, soit jusqu'à une taille carrée fixe par image. La stratégie de bourrage exacte dépend du modèle. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — La taille au format{"height": int, "width" int}à laquelle les images doivent être remplies. Elle doit être supérieure à la taille de n'importe quelle image fournie pour la prétraitement. Sipad_sizen'est pas fourni, les images seront remplies jusqu'à la hauteur et la largeur maximales du lot. Appliqué uniquement lorsquedo_pad=True. - do_center_crop (
bool, kwargs, facultatif) — Indique s'il faut effectuer un recadrage centré de l'image. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, facultatif) — SeulChannelDimension.FIRSTest pris en charge. Ajouté pour la compatibilité avec les processeurs lents. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, facultatif) — Le format de la dimension des canaux pour l'image d'entrée. Si non défini, le format de la dimension des canaux est déduit de l'image d'entrée. Peut être l'un des éléments suivants :"channels_first"ouChannelDimension.FIRST: image au format (num_channels, height, width)."channels_last"ouChannelDimension.LAST: image au format (hauteur, largeur, nombre de canaux)."none"ouChannelDimension.NONE: image au format (hauteur, largeur).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — L’appareil sur lequel traiter les vidéos. Si non défini, l’appareil est déduit des vidéos d’entrée. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Retourne des tenseurs empilés si défini sur'pt', sinon retourne une liste de tenseurs. - disable_grouping (
bool, kwargs, facultatif) — Indique s'il faut désactiver le regroupement des images par taille afin de les traiter individuellement plutôt que par lots. Si la valeur est None, elle est définie sur True si les images sont sur CPU, et sur False dans le cas contraire. Ce choix repose sur des observations empiriques, comme détaillé ici : https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, facultatif) — Le nombre de jetons d’image à utiliser pour chaque image de l’entrée. Ajouté pour la compatibilité ascendante, mais cela devrait être défini comme un attribut du processeur dans les futurs modèles. - do_crop_margin (
bool, kwargs, facultatif, par défautself.do_crop_margin) — Indique s'il faut rogner les marges de l'image. - do_thumbnail (
bool, kwargs, facultatif, par défautself.do_thumbnail) — Indique s'il faut redimensionner l'image en utilisant la méthode thumbnail. - do_align_long_axis (
bool, kwargs, facultatif, valeur par défautself.do_align_long_axis) — Indique s'il faut aligner l'axe long de l'image avec l'axe long desizeen effectuant une rotation de 90 degrés.
Construit un processeur d’images NougatImageProcessor.
prétraiter
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]**kwargs: *<class 'transformers.models.nougat.image_processing_nougat.NougatImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
Paramètres
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Image à prétraiter. S'attend à une image unique ou à un lot d'images dont les valeurs de pixels vont de 0 à 255. Si vous passez des images dont les valeurs de pixels sont comprises entre 0 et 1, définissezdo_rescale=False. - do_convert_rgb (
bool, kwargs, facultatif) — Indique s'il faut convertir l'image en RGB. - do_resize (
bool, kwargs, facultatif) — Indique s'il faut redimensionner l'image. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Définit les dimensions maximales des entrées du modèle. - default_to_square (
bool, kwargs, facultatif) — Indique s'il faut par défaut redimensionner l'image en carré si la taille est un entier. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Taille de l'image de sortie après application decenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filtre de rééchantillonnage à utiliser lors du redimensionnement de l’image. Il peut s’agir de l’une des valeurs de l’enumPILImageResampling. N’a un effet que sido_resizeest défini surTrue. - do_rescale (
bool, kwargs, facultatif) — Indique s'il faut rééchelonner l'image. - rescale_factor (
float, kwargs, facultatif) — Facteur de remise à l'échelle à appliquer à l'image sido_rescaleest défini surTrue. - do_normalize (
bool, kwargs, facultatif) — Indique s'il faut normaliser l'image. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, facultatif) — Moyenne de l'image à utiliser pour la normalisation. N'a un effet que sido_normalizeest défini surTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, facultatif) — Écart-type de l'image à utiliser pour la normalisation. N'a un effet que sido_normalizeest défini surTrue. - do_pad (
bool, kwargs, facultatif) — Indique s'il faut effectuer un bourrage (padding) de l'image. Le bourrage est effectué soit jusqu'à la plus grande taille du lot, soit jusqu'à une taille carrée fixe par image. La stratégie de bourrage exacte dépend du modèle. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — La taille au format{"height": int, "width" int}à laquelle les images doivent être remplies. Elle doit être supérieure à la taille de n'importe quelle image fournie pour la prétraitement. Sipad_sizen'est pas fourni, les images seront remplies jusqu'à la hauteur et la largeur maximales du lot. Appliqué uniquement lorsquedo_pad=True. - do_center_crop (
bool, kwargs, facultatif) — Indique s'il faut effectuer un recadrage centré de l'image. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, facultatif) — SeulChannelDimension.FIRSTest pris en charge. Ajouté pour la compatibilité avec les processeurs lents. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, facultatif) — Le format de la dimension des canaux pour l'image d'entrée. Si non défini, le format de la dimension des canaux est déduit de l'image d'entrée. Peut être l'un des éléments suivants :"channels_first"ouChannelDimension.FIRST: image au format (num_channels, height, width)."channels_last"ouChannelDimension.LAST: image au format (hauteur, largeur, nombre de canaux)."none"ouChannelDimension.NONE: image au format (hauteur, largeur).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — L’appareil sur lequel traiter les vidéos. Si non défini, l’appareil est déduit des vidéos d’entrée. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Retourne des tenseurs empilés si défini sur'pt', sinon retourne une liste de tenseurs. - disable_grouping (
bool, kwargs, facultatif) — Indique s'il faut désactiver le regroupement des images par taille afin de les traiter individuellement plutôt que par lots. Si la valeur est None, elle est définie sur True si les images sont sur CPU, et sur False dans le cas contraire. Ce choix repose sur des observations empiriques, comme détaillé ici : https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, facultatif) — Le nombre de jetons d’image à utiliser pour chaque image de l’entrée. Ajouté pour la compatibilité ascendante, mais cela devrait être défini comme un attribut du processeur dans les futurs modèles. - do_crop_margin (
bool, kwargs, facultatif, par défautself.do_crop_margin) — Indique s'il faut rogner les marges de l'image. - do_thumbnail (
bool, kwargs, facultatif, par défautself.do_thumbnail) — Indique s'il faut redimensionner l'image en utilisant la méthode thumbnail. - do_align_long_axis (
bool, kwargs, facultatif, valeur par défautself.do_align_long_axis) — Indique s'il faut aligner l'axe long de l'image avec l'axe long desizeen effectuant une rotation de 90 degrés.
Retourne
~image_processing_base.BatchFeature
- data (
dict) — Dictionnaire de listes/tableaux/tenseurs renvoyé par la méthode call (« pixel_values », etc.). - tensor_type (
Union[None, str, TensorType], facultatif) — Vous pouvez spécifier un tensor_type ici pour convertir les listes d'entiers en tenseurs PyTorch/Numpy lors de l'initialisation.
NougatImageProcessorPil
classe transformers.NougatImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.nougat.image_processing_pil_nougat.NougatImageProcessorKwargs'> )
Paramètres
- do_convert_rgb (
bool, kwargs, facultatif) — Indique s'il faut convertir l'image en RGB. - do_resize (
bool, kwargs, facultatif, valeur par défautTrue) — Indique s'il faut redimensionner l'image. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs, par défaut{'height' -- 896, 'width': 672}) : Définit les dimensions d'entrée maximales du modèle. - default_to_square (
bool, kwargs, facultatif, valeur par défautTrue) — Indique s'il faut utiliser une image carrée par défaut lors du redimensionnement, si la taille est un entier. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Taille de l'image de sortie après application decenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs, par défaut2) — Filtre de rééchantillonnage à utiliser lors du redimensionnement de l’image. Il peut s’agir de l’une des valeurs de l’enumPILImageResampling. N’a un effet que sido_resizeest défini surTrue. - do_rescale (
bool, kwargs, facultatif, par défautTrue) — Indique s'il faut rééchelonner l'image. - rescale_factor (
float, kwargs, facultatif, valeur par défaut0.00392156862745098) — Facteur de remise à l'échelle appliqué à l'image sido_rescaleest défini surTrue. - do_normalize (
bool, kwargs, facultatif, valeur par défautTrue) — Indique s'il faut normaliser l'image. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, facultatif, valeur par défaut[0.485, 0.456, 0.406]) — Moyenne de l'image à utiliser pour la normalisation. N'a un effet que sido_normalizeest défini surTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, facultatif, valeur par défaut[0.229, 0.224, 0.225]) — Écart-type de l'image à utiliser pour la normalisation. N'a un effet que sido_normalizeest défini surTrue. - do_pad (
bool, kwargs, facultatif, valeur par défautTrue) — Indique s'il faut appliquer un bourrage (padding) à l'image. Le bourrage est effectué soit jusqu'à la plus grande taille du lot, soit jusqu'à une taille carrée fixe par image. La stratégie de bourrage exacte dépend du modèle. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — La taille au format{"height": int, "width" int}à laquelle les images doivent être remplies. Elle doit être supérieure à la taille de n'importe quelle image fournie pour la prétraitement. Sipad_sizen'est pas fourni, les images seront remplies jusqu'à la hauteur et la largeur maximales du lot. Appliqué uniquement lorsquedo_pad=True. - do_center_crop (
bool, kwargs, facultatif) — Indique s'il faut effectuer un recadrage centré de l'image. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, facultatif) — SeulChannelDimension.FIRSTest pris en charge. Ajouté pour la compatibilité avec les processeurs lents. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, facultatif) — Le format de la dimension des canaux pour l'image d'entrée. Si non défini, le format de la dimension des canaux est déduit de l'image d'entrée. Peut être l'un des éléments suivants :"channels_first"ouChannelDimension.FIRST: image au format (num_channels, height, width)."channels_last"ouChannelDimension.LAST: image au format (hauteur, largeur, nombre de canaux)."none"ouChannelDimension.NONE: image au format (hauteur, largeur).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — L’appareil sur lequel traiter les vidéos. Si non défini, l’appareil est déduit des vidéos d’entrée. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Retourne des tenseurs empilés si défini sur'pt', sinon retourne une liste de tenseurs. - disable_grouping (
bool, kwargs, facultatif) — Indique s'il faut désactiver le regroupement des images par taille afin de les traiter individuellement plutôt que par lots. Si la valeur est None, elle est définie sur True si les images sont sur CPU, et sur False dans le cas contraire. Ce choix repose sur des observations empiriques, comme détaillé ici : https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, facultatif) — Le nombre de jetons d’image à utiliser pour chaque image de l’entrée. Ajouté pour la compatibilité ascendante, mais cela devrait être défini comme un attribut du processeur dans les futurs modèles. - do_crop_margin (
bool, kwargs, facultatif, par défautself.do_crop_margin) — Indique s'il faut rogner les marges de l'image. - do_thumbnail (
bool, kwargs, facultatif, par défautself.do_thumbnail) — Indique s'il faut redimensionner l'image en utilisant la méthode thumbnail. - do_align_long_axis (
bool, kwargs, facultatif, valeur par défautself.do_align_long_axis) — Indique s'il faut aligner l'axe long de l'image avec l'axe long desizeen effectuant une rotation de 90 degrés.
Construit un processeur d’images NougatImageProcessor.
prétraiter
< source >( images: typing.Union[ForwardRef('PIL.Image.Image'), numpy.ndarray, ForwardRef('torch.Tensor'), list['PIL.Image.Image'], list[numpy.ndarray], list['torch.Tensor']]**kwargs: *<class 'transformers.models.nougat.image_processing_pil_nougat.NougatImageProcessorKwargs'> ) → ~image_processing_base.BatchFeature
Paramètres
- images (
Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]) — Image à prétraiter. S'attend à une image unique ou à un lot d'images dont les valeurs de pixels vont de 0 à 255. Si vous passez des images dont les valeurs de pixels sont comprises entre 0 et 1, définissezdo_rescale=False. - do_convert_rgb (
bool, kwargs, facultatif) — Indique s'il faut convertir l'image en RGB. - do_resize (
bool, kwargs, facultatif) — Indique s'il faut redimensionner l'image. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Définit les dimensions maximales des entrées du modèle. - default_to_square (
bool, kwargs, facultatif) — Indique s'il faut par défaut redimensionner l'image en carré si la taille est un entier. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — Taille de l'image de sortie après application decenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — Filtre de rééchantillonnage à utiliser lors du redimensionnement de l’image. Il peut s’agir de l’une des valeurs de l’enumPILImageResampling. N’a un effet que sido_resizeest défini surTrue. - do_rescale (
bool, kwargs, facultatif) — Indique s'il faut rééchelonner l'image. - rescale_factor (
float, kwargs, facultatif) — Facteur de remise à l'échelle à appliquer à l'image sido_rescaleest défini surTrue. - do_normalize (
bool, kwargs, facultatif) — Indique s'il faut normaliser l'image. - image_mean (
Union[float, list[float], tuple[float, ...]], kwargs, facultatif) — Moyenne de l'image à utiliser pour la normalisation. N'a un effet que sido_normalizeest défini surTrue. - image_std (
Union[float, list[float], tuple[float, ...]], kwargs, facultatif) — Écart-type de l'image à utiliser pour la normalisation. N'a un effet que sido_normalizeest défini surTrue. - do_pad (
bool, kwargs, facultatif) — Indique s'il faut effectuer un bourrage (padding) de l'image. Le bourrage est effectué soit jusqu'à la plus grande taille du lot, soit jusqu'à une taille carrée fixe par image. La stratégie de bourrage exacte dépend du modèle. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — La taille au format{"height": int, "width" int}à laquelle les images doivent être remplies. Elle doit être supérieure à la taille de n'importe quelle image fournie pour la prétraitement. Sipad_sizen'est pas fourni, les images seront remplies jusqu'à la hauteur et la largeur maximales du lot. Appliqué uniquement lorsquedo_pad=True. - do_center_crop (
bool, kwargs, facultatif) — Indique s'il faut effectuer un recadrage centré de l'image. - data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, facultatif) — SeulChannelDimension.FIRSTest pris en charge. Ajouté pour la compatibilité avec les processeurs lents. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, facultatif) — Le format de la dimension des canaux pour l'image d'entrée. Si non défini, le format de la dimension des canaux est déduit de l'image d'entrée. Peut être l'un des éléments suivants :"channels_first"ouChannelDimension.FIRST: image au format (num_channels, height, width)."channels_last"ouChannelDimension.LAST: image au format (hauteur, largeur, nombre de canaux)."none"ouChannelDimension.NONE: image au format (hauteur, largeur).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — L’appareil sur lequel traiter les vidéos. Si non défini, l’appareil est déduit des vidéos d’entrée. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — Retourne des tenseurs empilés si défini sur'pt', sinon retourne une liste de tenseurs. - disable_grouping (
bool, kwargs, facultatif) — Indique s'il faut désactiver le regroupement des images par taille afin de les traiter individuellement plutôt que par lots. Si la valeur est None, elle est définie sur True si les images sont sur CPU, et sur False dans le cas contraire. Ce choix repose sur des observations empiriques, comme détaillé ici : https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int, kwargs, facultatif) — Le nombre de jetons d’image à utiliser pour chaque image de l’entrée. Ajouté pour la compatibilité ascendante, mais cela devrait être défini comme un attribut du processeur dans les futurs modèles. - do_crop_margin (
bool, kwargs, facultatif, par défautself.do_crop_margin) — Indique s'il faut rogner les marges de l'image. - do_thumbnail (
bool, kwargs, facultatif, par défautself.do_thumbnail) — Indique s'il faut redimensionner l'image en utilisant la méthode thumbnail. - do_align_long_axis (
bool, kwargs, facultatif, valeur par défautself.do_align_long_axis) — Indique s'il faut aligner l'axe long de l'image avec l'axe long desizeen effectuant une rotation de 90 degrés.
Retourne
~image_processing_base.BatchFeature
- data (
dict) — Dictionnaire de listes/tableaux/tenseurs renvoyé par la méthode call (« pixel_values », etc.). - tensor_type (
Union[None, str, TensorType], facultatif) — Vous pouvez spécifier un tensor_type ici pour convertir les listes d'entiers en tenseurs PyTorch/Numpy lors de l'initialisation.
NougatTokenizer
classe transformers.NougatTokenizer
< source >( errors: str = 'replace'unk_token: str = '<unk>'bos_token: str = '<s>'eos_token: str = '</s>'pad_token: str = '<pad>'vocab: str | dict | list | None = Nonemerges: str | list | None = None**kwargs )
Paramètres
- vocab_file (
str, facultatif) — Chemin vers le fichier de vocabulaire. - merges_file (
str, facultatif) — Chemin vers le fichier de fusions. - tokenizer_file (
str, facultatif) — fichier tokenizers (généralement avec une extension .json) qui contient tout ce qui est nécessaire pour charger le tokenizer. - clean_up_tokenization_spaces (
str, facultatif, par défautFalse) — Indique s'il faut nettoyer les espaces après le décodage. Le nettoyage consiste à supprimer les artefacts potentiels, comme les espaces superflus. - unk_token (
str, facultatif, par défaut"<unk>") — Le jeton inconnu. Un jeton qui n'est pas dans le vocabulaire ne peut pas être converti en identifiant et est remplacé par ce jeton. - bos_token (
str, facultatif, par défaut"<s>") — Le jeton de début de séquence utilisé lors de la préformation. Peut être utilisé comme jeton de classifieur de séquence. - eos_token (
str, facultatif, par défaut"</s>") — Le jeton de fin de séquence. - pad_token (
str, facultatif, par défaut"<pad>") — Le jeton utilisé pour le bourrage, par exemple lors du regroupement de séquences de longueurs différentes. - vocab (
str,dictoulist, facultatif) — Dictionnaire de vocabulaire personnalisé. S'il n'est pas fourni, le vocabulaire est chargé depuis vocab_file. - merges (
stroulist, facultatif) — Liste de fusions personnalisée. Si non fournie, les fusions sont chargées depuis merges_file.
Tokeniseur pour Nougat (basé sur la bibliothèque HuggingFace tokenizers).
Ce tokenizer hérite de TokenizersBackend, qui contient la plupart des méthodes principales. Les utilisateurs doivent se référer à cette superclasse pour plus d'informations sur ces méthodes. Cette classe ajoute principalement des méthodes spécifiques à Nougat pour le post-traitement du texte généré.
correct_tables
< source >( generation: str ) → str
Prend une chaîne générée et corrige les tableaux pour qu’ils correspondent au format Markdown requis.
post_process_generation
< source >( generation: str | list[str]fix_markdown: bool = Truenum_workers: int | None = None ) → Union[str, list[str]]
Paramètres
- generation (Union[str, list[str]]) — Le texte généré ou une liste de textes générés.
- fix_markdown (
bool, facultatif, par défautTrue) — Indique s'il faut effectuer des corrections de formatage Markdown. - num_workers (
int, facultatif) — Nombre facultatif de workers à passer pour exploiter le multiprocessing (post-traitement de plusieurs textes en parallèle).
Retourne
Union[str, list[str]]
Le texte post-traité ou la liste de textes post-traités.
Post-traitez un texte généré ou une liste de textes générés.
Cette fonction peut être utilisée pour effectuer un post-traitement sur le texte généré, par exemple pour corriger le formatage Markdown.
Le post-traitement est assez lent, il est donc recommandé d'utiliser le multiprocessing pour accélérer le processus.
post_process_single
< source >( generation: strfix_markdown: bool = True ) → str
Post-traite un texte généré unique. Les expressions régulières utilisées ici sont reprises directement des auteurs de l’article Nougat. Ces expressions sont commentées pour plus de clarté et testées de bout en bout dans la plupart des cas.
remove_hallucinated_references
< source >( text: str ) → str
Supprimez les références hallucinées ou manquantes du texte.
Cette fonction identifie et supprime les références marquées comme manquantes ou hallucinées dans le texte d'entrée.
NougatProcessor
classe transformers.NougatProcessor
< source >( image_processortokenizer )
Construit un NougatProcessor qui encapsule un processeur d’images et un tokenizer en un seul processeur.
NougatProcessor offre toutes les fonctionnalités de NougatImageProcessor et de NougatTokenizer. Consultez ~NougatImageProcessor et ~NougatTokenizer pour plus d’informations.
__call__
< source >( images = Nonetext = None**kwargs )
Paramètres
- 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 (
strou TensorType, facultatif) — Si défini, renvoie des tenseurs d'un framework particulier. Les valeurs acceptées sont :'pt': Renvoie des objetstorch.Tensorde PyTorch.'np': Renvoie des objets NumPynp.ndarray.
from_pretrained
< source >( pretrained_model_name_or_path: str | os.PathLikecache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'**kwargs )
Paramètres
- pretrained_model_name_or_path (
strouos.PathLike) — Cela peut être soit :- une chaîne de caractères, l'identifiant du modèle d'un feature_extractor pré-entraîné hébergé dans un dépôt de modèles sur huggingface.co.
- un chemin vers un dossier contenant un fichier d’extracteur de caractéristiques enregistré à l’aide de la méthode
save_pretrained(), par exemple
./my_model_directory/. - un chemin vers un fichier JSON d’extracteur de caractéristiques enregistré fichier, par exemple
./my_model_directory/preprocessor_config.json.
- **kwargs —
Arguments supplémentaires passés à la fois à
from_pretrained() et à
~tokenization_utils_base.PreTrainedTokenizer.from_pretrained.
Instanciez un processeur associé à un modèle pré-entraîné.
Cette méthode d’appel de classe invoque simplement la méthode from_pretrained() de l’extracteur de caractéristiques, la méthode de la classe ImageProcessingMixin du processeur d’images et la méthode
~tokenization_utils_base.PreTrainedTokenizer.from_pretraineddu tokeniseur. Veuillez consulter les docstrings des méthodes ci-dessus pour plus d’informations.
save_pretrained
< source >( save_directorypush_to_hub: bool = False**kwargs )
Paramètres
- save_directory (
strouos.PathLike) — Répertoire où le fichier JSON de l'extracteur de caractéristiques et les fichiers du tokenizer seront enregistrés (le répertoire sera créé s'il n'existe pas). - push_to_hub (
bool, facultatif, par défautFalse) — Indique s'il faut ou non pousser votre modèle sur le hub de modèles Hugging Face après l'avoir enregistré. Vous pouvez spécifier le dépôt auquel vous souhaitez pousser avecrepo_id(par défaut, il s'agit du nom desave_directorydans votre espace de noms). - kwargs (
dict[str, Any], facultatif) — Arguments supplémentaires passés à la méthode push_to_hub().
Enregistre les attributs de ce processeur (extracteur de caractéristiques, tokeniseur…) dans le répertoire spécifié afin qu’il puisse être rechargé à l’aide de la méthode from_pretrained().
Cette méthode de classe appelle simplement save_pretrained() et save_pretrained(). Veuillez consulter les docstrings des méthodes ci-dessus pour plus d'informations.
Cette méthode transmet tous ses arguments à batch_decode() de PreTrainedTokenizer. Veuillez consulter la docstring de cette méthode pour plus d’informations.
Cette méthode transmet tous ses arguments à decode() de PreTrainedTokenizer. Veuillez consulter la docstring de cette méthode pour plus d’informations.
Cette méthode transmet tous ses arguments à ~PreTrainedTokenizer.post_process_generation de NougatTokenizer.
Veuillez consulter la docstring de cette méthode pour plus d'informations.