Transformers documentation

CPM

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

and get access to the augmented documentation experience

to get started

نُشر هذا النموذج في أوراق HF في 2020-12-01 وسُهم به في Hugging Face Transformers في 2021-04-10.

CPM

نظرة عامة

قُدِّم نموذج CPM في CPM: A Large-scale Generative Chinese Pre-trained Language Model من قِبل Zhengyan Zhang وXu Han وHao Zhou وPei Ke وYuxian Gu وDeming Ye وYujia Qin وYusheng Su وHaozhe Ji وJian Guan وFanchao Qi وXiaozhi Wang وYanan Zheng وGuoyang Zeng وHuanqi Cao وShengqi Chen وDaixuan Li وZhenbo Sun وZhiyuan Liu وMinlie Huang وWentao Han وJie Tang وJuanzi Li وXiaoyan Zhu وMaosong Sun.

المستخلص من الورقة البحثية هو كالتالي:

أثبتت النماذج اللغوية المُسبقة التدريب (PLMs) فائدتها في مهام معالجة اللغة الطبيعية (NLP) المختلفة. في الآونة الأخيرة، لفت GPT-3، الذي يحتوي على 175 مليار معامل وبيانات تدريب بحجم 570 جيجابايت، انتباهًا كبيرًا بسبب قدرته على التعلّم بعدد قليل من الأمثلة (few-shot) (بل حتى بدون أمثلة (zero-shot)). ومع ذلك، لا يزال تطبيق GPT-3 لمعالجة مهام NLP الصينية تحديًا، حيث أن مجموعة بيانات التدريب الخاصة بـ GPT-3 تتكون في الغالب من الإنجليزية، كما أن المعاملات غير متاحة للعامة. في هذا التقرير التقني، نُطلق النموذج اللغوي المُسبق التدريب الصيني (CPM) مع تدريب توليدي مسبق على بيانات تدريب صينية واسعة النطاق.据 أفضل ما نعلم، يُعد CPM، الذي يحتوي على 2.6 مليار معامل وبيانات تدريب صينية بحجم 100 جيجابايت، أكبر نموذج لغوي مُسبق التدريب للصينية، والذي يمكن أن يسهّل عدة مهام NLP صينية لاحقة، مثل المحادثة، وتوليد المقالات، واختبار الفراغات (cloze test)، وفهم اللغة. تُظهر التجارب الواسعة أن CPM يحقق أداءً قويًا في العديد من مهام NLP في إعدادات التعلّم بعدد قليل من الأمثلة (few-shot) (بل حتى بدون أمثلة (zero-shot)).

تمت مساهمة هذا النموذج من قِبل canwenxu. يمكن العثور على التنفيذ الأصلي هنا: https://github.com/TsinghuaAI/CPM-Generate

تتطابق بنية CPM مع بنية GPT-2، باستثناء طريقة الترميز. راجع توثيق GPT-2 للحصول على معلومات مرجعية حول واجهة برمجة التطبيقات.

CpmTokenizer

فئة transformers.CpmTokenizer

< >

( vocab_filedo_lower_case = Falseremove_space = Truekeep_accents = Falsebos_token = '<s>'eos_token = '</s>'unk_token = '<unk>'sep_token = '<sep>'pad_token = '<pad>'cls_token = '<cls>'mask_token = '<mask>'additional_special_tokens = ['<eop>', '<eod>']sp_model_kwargs: dict[str, typing.Any] | None = None**kwargs )

يُنفّذ ما قبل التقطيع باستخدام أداة التقطيع Jieba-RS. يُستخدم في نماذج CPM.

build_inputs_with_special_tokens

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

المعاملات

  • token_ids_0 (list[int]) — قائمة بالمعرّفات التي ستُضاف إليها الرموز الخاصة.
  • token_ids_1 (list[int]، اختياري) — قائمة اختيارية ثانية من المعرّفات لأزواج التسلسلات.

يعيد

list[int]

قائمة معرفات الإدخال مع الرموز الخاصة المناسبة.

إنشاء مدخلات النموذج من تسلسل أو زوج من التسلسلات لمهام تصنيف التسلسل عن طريق الربط وإضافة الرموز الخاصة. يتبع تسلسل XLNet التنسيق التالي:

  • تسلسل واحد: X <sep> <cls>
  • زوج من التسلسلات: A <sep> B <sep> <cls>

convert_tokens_to_string

< >

( tokens )

يحوّل تسلسلًا من الرموز (نصوص للكلمات الفرعية) داخل سلسلة واحدة.

create_token_type_ids_from_sequences

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

المعاملات

  • token_ids_0 (list[int]) — قائمة من المعرّفات.
  • token_ids_1 (list[int]، اختياري) — قائمة اختيارية ثانية من المعرّفات لأزواج التسلسلات.

يعيد

list[int]

قائمة معرّفات أنواع الرموز وفقاً للتسلسل(ات) المُعطى(ة).

أنشئ قناعًا من التسلسلين المُمرَّرين لاستخدامه في مهمة تصنيف أزواج التسلسلات. نموذج XLNet

للقناع المزدوج للترتيب (sequence pair mask) الصيغة التالية:

0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
| first sequence    | second sequence |

إذا كانت token_ids_1 تساوي None، فإن هذه الطريقة تُرجع الجزء الأول من القناع (الأصفار) فقط.

get_special_tokens_mask

< >

( token_ids_0: listtoken_ids_1: list[int] | None = Nonealready_has_special_tokens: bool = False ) → list[int]

المعاملات

  • token_ids_0 (list[int]) — قائمة من المعرّفات.
  • token_ids_1 (list[int]، اختياري) — قائمة اختيارية ثانية من المعرّفات لأزواج التسلسلات.
  • already_has_special_tokens (bool، اختياري، القيمة الافتراضية False) — ما إذا كانت قائمة الرموز (tokens) منسّقة مسبقًا برموز خاصة للنموذج أم لا.

يعيد

list[int]

قائمة من الأعداد الصحيحة في المدى [0, 1]: 1 للرمز الخاص، و0 لرمز التسلسل.

استرجاع معرّفات التسلسل من قائمة الرموز التي لم تُضف إليها رموز خاصة. يُستدعى هذا الأسلوب عند إضافة الرموز الخاصة باستخدام أسلوب prepare_for_model في مُجزّئ النص.

CpmTokenizerFast

فئة transformers.CpmTokenizerFast

< >

( vocab_file = Nonetokenizer_file = Nonedo_lower_case = Falseremove_space = Truekeep_accents = Falsebos_token = '<s>'eos_token = '</s>'unk_token = '<unk>'sep_token = '<sep>'pad_token = '<pad>'cls_token = '<cls>'mask_token = '<mask>'additional_special_tokens = ['<eop>', '<eod>']**kwargs )

يُنفّذ ما قبل التقطيع باستخدام أداة التقطيع Jieba-RS. يُستخدم في نماذج CPM.

build_inputs_with_special_tokens

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

المعاملات

  • token_ids_0 (list[int]) — قائمة بالمعرّفات التي ستُضاف إليها الرموز الخاصة.
  • token_ids_1 (list[int]، اختياري) — قائمة اختيارية ثانية من المعرّفات لأزواج التسلسلات.

يعيد

list[int]

قائمة معرفات الإدخال مع الرموز الخاصة المناسبة.

إنشاء مدخلات النموذج من تسلسل أو زوج من التسلسلات لمهام تصنيف التسلسل عن طريق الربط وإضافة الرموز الخاصة. يتبع تسلسل XLNet التنسيق التالي:

  • تسلسل واحد: X <sep> <cls>
  • زوج من التسلسلات: A <sep> B <sep> <cls>

create_token_type_ids_from_sequences

< >

( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]

المعاملات

  • token_ids_0 (list[int]) — قائمة من المعرّفات.
  • token_ids_1 (list[int]، اختياري) — قائمة اختيارية ثانية من المعرّفات لأزواج التسلسلات.

يعيد

list[int]

قائمة معرّفات أنواع الرموز وفقاً للتسلسل(ات) المُعطى(ة).

أنشئ قناعاً من التسلسلين المُمرَّرين لاستخدامه في مهمة تصنيف أزواج التسلسلات. نموذج XLNet

للقناع المزدوج للترتيب (sequence pair mask) الصيغة التالية:

0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
| first sequence    | second sequence |

إذا كانت token_ids_1 هي None، فإن هذه الطريقة تُرجع الجزء الأول من القناع (الأصفار) فقط.

Update on GitHub