Transformers documentation
Nougat
نُشر هذا النموذج في أوراق HF في 25 أغسطس 2023، وأُضيف إلى مكتبة Hugging Face Transformers في 26 سبتمبر 2023.
Nougat
نظرة عامة
قُدِّم نموذج Nougat في Nougat: Neural Optical Understanding for Academic Documents من قِبل Lukas Blecher وGuillem Cucurull وThomas Scialom وRobert Stojnic. يستخدم Nougat نفس البنية المعمارية التي يستخدمها Donut، أي مُشفِّر Transformer للصور ومُفكِّك Transformer نصي ذاتي التوليد، لترجمة مستندات PDF العلمية إلى صيغة markdown، مما يسهّل الوصول إليها.
المستخلص من الورقة البحثية هو كالتالي:
يُخزَّن المعرفة العلمية بشكل رئيسي في الكتب والمجلات العلمية، وغالبًا في صيغة PDF. ومع ذلك، يؤدي تنسيق PDF إلى فقدان المعلومات الدلالية، لا سيما فيما يتعلق بالتعبيرات الرياضية. نقترح نموذج Nougat (Neural Optical Understanding for Academic Documents)، وهو نموذج Visual Transformer يقوم بمهمة التعرف الضوئي على الحروف (OCR) لمعالجة المستندات العلمية إلى لغة تعليمات، ونُظهر فعالية نموذجنا على مجموعة بيانات جديدة من المستندات العلمية. تقدم المقترحة حلًا واعدًا لتعزيز إمكانية الوصول إلى المعرفة العلمية في العصر الرقمي، من خلال سد الفجوة بين المستندات القابلة للقراءة من قبل البشر والنص القابل للقراءة آليًا. نُطلق النماذج والكود لتسريع الأعمال المستقبلية في مجال التعرف على النص العلمي.
Nougat high-level overview. Taken from the original paper. تمت مساهمة هذا النموذج من قِبل nielsr. يمكن العثور على الكود الأصلي هنا.
نصائح للاستخدام
- أسرع طريقة للبدء مع Nougat هي الاطلاع على دفاتر التعليم، التي تُظهر كيفية استخدام النموذج أثناء الاستدلال، فضلاً عن الضبط الدقيق على بيانات مخصصة.
- Nougat is always used within the VisionEncoderDecoder framework. The model is identical to Donut in terms of architecture.
الاستدلال
يقبل نموذج VisionEncoderDecoder في Nougat الصور كمدخلات، ويستفيد من generate() لتوليد النص بشكل ذاتي التراجع بناءً على الصورة المدخلة.
تتولى فئة NougatImageProcessor مسؤولية المعالجة المسبقة لصورة الإدخال، بينما تقوم فئة NougatTokenizerFast بفك ترميز الرموز المستهدفة المولّدة إلى النص المستهدف. وتُغلّف فئة NougatProcessor كلا من فئتي NougatImageProcessor وNougatTokenizerFast في كائن واحد، بغرض استخراج ميزات الإدخال وفك ترميز معرّفات الرموز المتوقعة.
- نسخ PDF خطوة بخطوة
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@'راجع مركز النماذج للبحث عن نقاط التفتيش الخاصة بـ Nougat.
النموذج مطابق لـ Donut من حيث البنية.
NougatConfig
فئة 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 )
المعاملات
- is_encoder_decoder (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان النموذج يُستخدم كمُشفِّر/مُفكِّك أم لا. - encoder (
Union[dict, ~configuration_utils.PreTrainedConfig], اختياري) — كائن الإعداد أو قاموس هيكل المشفّر. - decoder (
Union[dict, ~configuration_utils.PreTrainedConfig]، اختياري) — كائن الإعداد أو قاموس هيكل فك الترميز.
هذه فئة الإعدادات المخزنة لإعدادات نموذج NougatModel. تُستخدم لاستحداث نموذج Nougat وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ facebook/nougat-base
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
أمثلة:
>>> 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
مثال من كائن التهيئة
أنشئ كائنًا من VisionEncoderDecoderConfig (أو فئة مشتقة منها) من إعدادات نموذج المُشفِّر المُدرَّب مسبقًا وإعدادات نموذج المُفكِّك.
NougatImageProcessor
فئة transformers.NougatImageProcessor
< source >( **kwargs: *<class 'transformers.models.nougat.image_processing_nougat.NougatImageProcessorKwargs'> )
المعاملات
- do_convert_rgb (
bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية{'height' -- 896, 'width': 672}): يصف الأبعاد القصوى للمدخلات إلى النموذج. - 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، القيمة الافتراضية2) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا كانت قيمةdo_resizeهيTrue. - do_rescale (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري، القيمة الافتراضية0.00392156862745098) — عامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطًا علىTrue. - do_normalize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.485, 0.456, 0.406]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.229, 0.224, 0.225]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب ملء الصورة. يتم الملء إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الملء الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعمChannelDimension.FIRSTفقط. أُضيف من أجل التوافق مع المعالجات البطيئة. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - do_crop_margin (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_crop_margin) — ما إذا كان سيتم قص حواف الصورة. - do_thumbnail (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_thumbnail) — ما إذا كان سيتم تغيير حجم الصورة باستخدام طريقة thumbnail. - do_align_long_axis (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_align_long_axis) — ما إذا كان سيتم محاذاة المحور الطويل للصورة مع المحور الطويل لـsizeعن طريق تدويرها بزاوية 90 درجة.
ينشئ معالج صور NougatImageProcessor.
preprocess
< 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
المعاملات
- 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. - do_convert_rgb (
bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت القيمة عددًا صحيحًا. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا تم تعيينdo_resizeإلىTrue. - do_rescale (
bool، kwargs، اختياري) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري) — معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطاً علىTrue. - do_normalize (
bool، kwargs، اختياري) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — انحراف المعيار للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعمChannelDimension.FIRSTفقط. أُضيف من أجل التوافق مع المعالجات البطيئة. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - do_crop_margin (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_crop_margin) — ما إذا كان سيتم قص حواف الصورة. - do_thumbnail (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_thumbnail) — ما إذا كان سيتم تغيير حجم الصورة باستخدام طريقة thumbnail. - do_align_long_axis (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_align_long_axis) — ما إذا كان سيتم محاذاة المحور الطويل للصورة مع المحور الطويل لـsizeعن طريق تدويرها بزاوية 90 درجة.
يعيد
~image_processing_base.BatchFeature
- data (
dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’). - tensor_type (
Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.
NougatImageProcessorPil
فئة transformers.NougatImageProcessorPil
< source >( **kwargs: *<class 'transformers.models.nougat.image_processing_pil_nougat.NougatImageProcessorKwargs'> )
المعاملات
- do_convert_rgb (
bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None]، kwargs، القيمة الافتراضية{'height' -- 896, 'width': 672}): يصف الأبعاد القصوى للمدخلات إلى النموذج. - 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، القيمة الافتراضية2) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا كانت قيمةdo_resizeهيTrue. - do_rescale (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري، القيمة الافتراضية0.00392156862745098) — عامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطًا علىTrue. - do_normalize (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.485, 0.456, 0.406]) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري، القيمة الافتراضية[0.229, 0.224, 0.225]) — الانحراف المعياري للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب ملء الصورة. يتم الملء إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية الملء الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعمChannelDimension.FIRSTفقط. أُضيف من أجل التوافق مع المعالجات البطيئة. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - do_crop_margin (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_crop_margin) — ما إذا كان يجب قص حواف الصورة. - do_thumbnail (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_thumbnail) — ما إذا كان سيتم تغيير حجم الصورة باستخدام طريقة thumbnail. - do_align_long_axis (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_align_long_axis) — ما إذا كان سيتم محاذاة المحور الطويل للصورة مع المحور الطويل لـsizeعن طريق تدويرها بزاوية 90 درجة.
ينشئ معالج صور NougatImageProcessor.
preprocess
< 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
المعاملات
- 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. - do_convert_rgb (
bool، kwargs، اختياري) — ما إذا كان يجب تحويل الصورة إلى RGB. - do_resize (
bool، kwargs، اختياري) — ما إذا كان يجب تغيير حجم الصورة. - size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — يصف الأبعاد القصوى للمدخلات إلى النموذج. - default_to_square (
bool، kwargs، اختياري) — ما إذا كان يجب افتراض صورة مربعة عند تغيير الحجم، إذا كانت القيمة عددًا صحيحًا. - crop_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — حجم الصورة الناتجة بعد تطبيقcenter_crop. - resample (
Annotated[Union[int, PILImageResampling, NoneType], None], kwargs) — مرشّح إعادة العينة (Resampling filter) المستخدم عند تغيير حجم الصورة. يمكن أن يكون أحد قيم التعدادPILImageResampling. لا يكون له أي تأثير إلا إذا تم تعيينdo_resizeإلىTrue. - do_rescale (
bool، kwargs، اختياري) — ما إذا كان يجب إعادة تحجيم الصورة. - rescale_factor (
float، kwargs، اختياري) — معامل إعادة التحجيم لإعادة تحجيم الصورة إذا كانdo_rescaleمضبوطاً علىTrue. - do_normalize (
bool، kwargs، اختياري) — ما إذا كان سيتم تطبيع الصورة. - image_mean (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — متوسط الصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - image_std (
Union[float, list[float], tuple[float, ...]]، kwargs، اختياري) — انحراف المعيار للصورة المستخدم للتطبيع. لا يكون له أي تأثير إلا إذا تم تعيينdo_normalizeإلىTrue. - do_pad (
bool، kwargs، اختياري) — ما إذا كان سيتم توسيط الصورة. يتم التوسيط إما إلى أكبر حجم في الدفعة أو إلى حجم مربع ثابت لكل صورة. تعتمد استراتيجية التوسيط الدقيقة على النموذج. - pad_size (
Annotated[int | list[int] | tuple[int, ...] | dict[str, int] | None, None], kwargs) — الحجم على شكل{"height": int, "width" int}الذي يجب توسيد الصور إليه. يجب أن يكون أكبر من أي حجم صورة مُقدَّم للمعالجة المسبقة. إذا لم يُقدَّمpad_size، فسيتم توسيد الصور إلى أكبر ارتفاع وعرض في الدفعة. يُطبَّق فقط عندما يكونdo_pad=True. - do_center_crop (
bool، kwargs، اختياري) — ما إذا كان يجب قص الصورة من المنتصف. - data_format (
Union[str, ~image_utils.ChannelDimension]، kwargs، اختياري) — يُؤمَّن دعمChannelDimension.FIRSTفقط. أُضيف من أجل التوافق مع المعالجات البطيئة. - input_data_format (
Union[str, ~image_utils.ChannelDimension], kwargs, اختياري) — تنسيق بُعد القناة للصورة المدخلة. إذا لم يُضبط، يُستنتج تنسيق بُعد القناة من الصورة المدخلة. يمكن أن يكون أحد ما يلي:"channels_first"أوChannelDimension.FIRST: صورة بتنسيق (num_channels, height, width)."channels_last"أوChannelDimension.LAST: صورة بصيغة (الارتفاع، العرض، عدد القنوات)."none"أوChannelDimension.NONE: صورة بصيغة (الارتفاع، العرض).
- device (
Annotated[Union[str, torch.device, NoneType], None], kwargs) — الجهاز الذي تتم عليه معالجة مقاطع الفيديو. إذا لم يتم تعيينه، يُستنتج الجهاز من مقاطع الفيديو المدخلة. - return_tensors (
Annotated[str | ~utils.generic.TensorType | None, None], kwargs) — تُرجع تينسورات مكدّسة إذا تم ضبطها على'pt'، وإلا تُرجع قائمة من التينسورات. - disable_grouping (
bool، kwargs، اختياري) — ما إذا كان سيتم تعطيل تجميع الصور حسب الحجم لمعالجتها بشكل فردي بدلاً من دفعات. إذا كانت القيمة None، فسيتم تعيينها إلى True إذا كانت الصور على وحدة المعالجة المركزية (CPU)، وإلا فستكون False. تستند هذه الخيارات إلى ملاحظات تجريبية، كما هو موضح هنا: https://github.com/huggingface/transformers/pull/38157 - image_seq_length (
int، kwargs، اختياري) — عدد رموز الصورة التي سيتم استخدامها لكل صورة في المدخلات. تمت إضافته من أجل التوافق مع الإصدارات السابقة، لكن ينبغي ضبطه كخاصية للمعالج في النماذج المستقبلية. - do_crop_margin (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_crop_margin) — ما إذا كان سيتم قص حواف الصورة. - do_thumbnail (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_thumbnail) — ما إذا كان سيتم تغيير حجم الصورة باستخدام طريقة thumbnail. - do_align_long_axis (
bool، kwargs، اختياري، القيمة الافتراضيةself.do_align_long_axis) — ما إذا كان سيتم محاذاة المحور الطويل للصورة مع المحور الطويل لـsizeعن طريق تدويرها بزاوية 90 درجة.
يعيد
~image_processing_base.BatchFeature
- data (
dict) — قاموس من القوائم/المصفوفات/الموترات التي يعيدها أسلوب call (مثل ‘pixel_values’). - tensor_type (
Union[None, str, TensorType]، اختياري) — يمكنك تحديد tensor_type هنا لتحويل قوائم الأعداد الصحيحة إلى تينسورات PyTorch/Numpy عند التهيئة.
NougatTokenizer
فئة 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 )
المعاملات
- vocab_file (
str, اختياري) — مسار ملف المفردات. - merges_file (
str, اختياري) — مسار ملف الدمج. - tokenizer_file (
str، اختياري) — ملف tokenizers (يحمل عادةً امتداد .json) يحتوي على كل ما يلزم لتحميل مُجزّئ الرموز. - clean_up_tokenization_spaces (
str، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب تنظيف المسافات بعد فك الترميز، ويتضمن التنظيف إزالة أي عناصر غير مرغوب فيها مثل المسافات الزائدة. - unk_token (
str، اختياري، القيمة الافتراضية"<unk>") — رمز المجهول. لا يمكن تحويل الرمز غير الموجود في المفردات إلى معرّف، لذا يُعيَّن هذا الرمز بدلاً منه. - bos_token (
str، اختياري، القيمة الافتراضية"<s>") — رمز بداية التسلسل الذي تم استخدامه أثناء التدريب المسبق. يمكن استخدامه كرمز لتصنيف التسلسل. - eos_token (
str، اختياري، القيمة الافتراضية"</s>") — رمز نهاية التسلسل. - pad_token (
str، اختياري، القيمة الافتراضية"<pad>") — الرمز المستخدم للتعبئة، على سبيل المثال عند تجميع تسلسلات ذات أطوال مختلفة. - vocab (
strأوdictأوlist، اختياري) — قاموس مفردات مخصص. إذا لم يُقدَّم، يتم تحميل المفردات من vocab_file. - merges (
strأوlist، اختياري) — قائمة دمج مخصصة. إذا لم يتم تقديمها، يتم تحميل عمليات الدمج من merges_file.
مُجزِّئ (Tokenizer) لنموذج Nougat (مدعوم بمكتبة HuggingFace tokenizers).
يرث هذا المُجزِّئ من TokenizersBackend الذي يحتوي على معظم الطرق الرئيسية. ينبغي على المستخدمين الرجوع إلى هذه الفئة الأصلية لمزيد من المعلومات حول تلك الطرق. تضيف هذه الفئة بشكل رئيسي طرقاً خاصة بـ Nougat لمعالجة النص المُولَّد بعد التوليد.
correct_tables
< source >( generation: str ) → str
يستقبل نصًا مولّدًا ويصحّح الجداول/الأشكال الجدولية لجعلها متوافقة مع تنسيق Markdown المطلوب.
post_process_generation
< source >( generation: str | list[str]fix_markdown: bool = Truenum_workers: int | None = None ) → Union[str, list[str]]
المعاملات
- generation (Union[str, list[str]]) — النص المُولَّد أو قائمة بالنصوص المُولَّدة.
- fix_markdown (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم إجراء إصلاحات على تنسيق Markdown. - num_workers (
int, اختياري) — عدد اختياري من العمال (workers) يُمرَّر للاستفادة من المعالجة المتوازية (postprocessing) لعدة نصوص في وقت واحد.
يعيد
Union[str, list[str]]
النص بعد المعالجة أو قائمة النصوص بعد المعالجة.
معالجة نص مُولَّد أو قائمة من النصوص المُولَّدة بعد التوليد.
يمكن استخدام هذه الدالة لأداء المعالجة اللاحقة على النص المولّد، مثل إصلاح تنسيق Markdown.
تكون مرحلة ما بعد المعالجة بطيئة إلى حد ما، لذا يُوصى باستخدام المعالجة المتوازية (multiprocessing) لتسريع العملية.
post_process_single
< source >( generation: strfix_markdown: bool = True ) → str
معالجة نص واحد مولّد بعد التوليد. التبادلات النمطية المستخدمة هنا مأخوذة مباشرة من مؤلفي مقال Nougat. وقد أُضيفت تعليقات لهذه التبادلات من أجل الوضوح، وتم اختبارها من البداية إلى النهاية في معظم الحالات.
remove_hallucinated_references
< source >( text: str ) → str
إزالة المراجع المُختلَقة أو المفقودة من النص.
تحدد هذه الدالة الإحالات المُشار إليها بأنها مفقودة أو مُختلَقة، وتزيلها من النص المُدخل.
NougatProcessor
فئة transformers.NougatProcessor
< source >( image_processortokenizer )
ينشئ NougatProcessor الذي يغلّف معالج صور ومُرمِّز في معالج واحد.
يوفر NougatProcessor جميع وظائف NougatImageProcessor وNougatTokenizer. راجع ~NougatImageProcessor و~NougatTokenizer لمزيد من المعلومات.
__call__
< source >( images = Nonetext = None**kwargs )
المعاملات
- 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': إرجاع كائناتtorch.Tensorمن PyTorch.'np': إرجاع كائناتnp.ndarrayمن NumPy.
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 )
المعاملات
- pretrained_model_name_or_path (
strأوos.PathLike) — يمكن أن يكون هذا:- سلسلة نصية، وهي معرّف النموذج لمُستخرج ميزات مُدرَّب مسبقاً مستضاف داخل مستودع نموذج على huggingface.co.
- مسار إلى مجلد يحتوي على ملف مستخرج الميزات المحفوظ باستخدام طريقة
save_pretrained()، على سبيل المثال
./my_model_directory/. - مسار إلى ملف JSON لمُستخرج ميزات محفوظ، على سبيل المثال:
./my_model_directory/preprocessor_config.json.
- **kwargs —
حجج إضافية بالكلمات المفتاحية تُمرَّر إلى كلٍّ من
from_pretrained() و
~tokenization_utils_base.PreTrainedTokenizer.from_pretrained.
أنشئ معالجًا مرتبطًا بنموذج مُدرَّب مسبقًا.
تستدعي طريقة الفئة هذه ببساطة مستخرج الميزات from_pretrained() ومعالج الصور ImageProcessingMixin وطريقة المرمّز
~tokenization_utils_base.PreTrainedTokenizer.from_pretrained. يُرجى الرجوع إلى سلاسل التوثيق للطرق المذكورة أعلاه لمزيد من المعلومات.
save_pretrained
< source >( save_directorypush_to_hub: bool = False**kwargs )
المعاملات
- save_directory (
strأوos.PathLike) — المجلد الذي سيتم فيه حفظ ملف مستخرج الميزات بصيغة JSON وملفات المُرمِّز (سيتم إنشاء المجلد إذا لم يكن موجوداً). - push_to_hub (
bool، اختياري، الافتراضيFalse) — ما إذا كان سيتم دفع نموذجك إلى مركز نماذج Hugging Face بعد حفظه. يمكنك تحديد المستودع الذي تريد الدفع إليه باستخدامrepo_id(سيكون الافتراضي هو اسمsave_directoryفي نطاقك). - kwargs (
dict[str, Any]، اختياري) — حجج إضافية بأسماء تُمرَّر إلى طريقة push_to_hub().
يحفظ سمات هذا المعالج (مستخرج الميزات، المرمّز…) في المجلد المحدد بحيث يمكن إعادة تحميله باستخدام طريقة from_pretrained().
تستدعي طريقة الفئة هذه ببساطة save_pretrained() و save_pretrained(). يُرجى الرجوع إلى توثيق طرق الاستدعاء أعلاه لمزيد من المعلومات.
تُمرّر هذه الطريقة جميع معاملاتها إلى batch_decode() الخاصة بـ PreTrainedTokenizer. يُرجى الرجوع إلى سلسلة التوثيق (docstring) لهذه الطريقة لمزيد من المعلومات.
تُمرّر هذه الطريقة جميع معاملاتها إلى decode() الخاصة بـ PreTrainedTokenizer. يُرجى الرجوع إلى سلسلة التوثيق (docstring) لهذه الطريقة لمزيد من المعلومات.
تُمرّر هذه الطريقة جميع معاملاتها إلى ~PreTrainedTokenizer.post_process_generation الخاص بـ NougatTokenizer.
يرجى الرجوع إلى سلسلة التوثيق (docstring) لهذه الطريقة لمزيد من المعلومات.