Transformers documentation
Longformer
نُشر هذا النموذج في أوراق HF في 10 أبريل 2020، وأُضيف إلى مكتبة Hugging Face Transformers في 16 نوفمبر 2020.
Longformer
Longformer هو نموذج تحويلي مصمم لمعالجة المستندات الطويلة. عادةً ما تتضاعف عملية الانتباه الذاتي بشكل تربيعي مع طول التسلسل، مما يمنع نماذج التحويل من معالجة تسلسلات أطول. يتغلب آلية الانتباه في Longformer على هذه المشكلة من خلال التوسع الخطي مع طول التسلسل. فهو يجمع بين الانتباه المحلي النافذ والانتباه العام المحدد بالمهمة، مما يتيح معالجة مستندات تحتوي على آلاف الرموز بكفاءة.
يمكنك العثور على جميع نقاط التفتيش الأصلية لنموذج Longformer تحت منظمة Ai2.
انقر على نماذج Longformer في الشريط الجانبي الأيمن لمزيد من الأمثلة حول كيفية تطبيق Longformer على مهام لغوية مختلفة.
يُبيّن المثال أدناه كيفية ملء رمز <mask> باستخدام Pipeline وAutoModel ومن سطر الأوامر.
from transformers import pipeline
pipeline = pipeline(
task="fill-mask",
model="allenai/longformer-base-4096",
device=0
)
pipeline("""San Francisco 49ers cornerback Shawntae Spencer will miss the rest of the <mask> with a torn ligament in his left knee.
Spencer, a fifth-year pro, will be placed on injured reserve soon after undergoing surgery Wednesday to repair the ligament. He injured his knee late in the 49ers’ road victory at Seattle on Sept. 14, and missed last week’s victory over Detroit.
Tarell Brown and Donald Strickland will compete to replace Spencer with the 49ers, who kept 12 defensive backs on their 53-man roster to start the season. Brown, a second-year pro, got his first career interception last weekend while filling in for Strickland, who also sat out with a knee injury.""")from transformers import AutoModelForMaskedLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-base-4096")
model = AutoModelForMaskedLM.from_pretrained("allenai/longformer-base-4096", device_map="auto")
text = (
"""
San Francisco 49ers cornerback Shawntae Spencer will miss the rest of the <mask> with a torn ligament in his left knee.
Spencer, a fifth-year pro, will be placed on injured reserve soon after undergoing surgery Wednesday to repair the ligament. He injured his knee late in the 49ers’ road victory at Seattle on Sept. 14, and missed last week’s victory over Detroit.
Tarell Brown and Donald Strickland will compete to replace Spencer with the 49ers, who kept 12 defensive backs on their 53-man roster to start the season. Brown, a second-year pro, got his first career interception last weekend while filling in for Strickland, who also sat out with a knee injury.
"""
)
input_ids = tokenizer([text], return_tensors="pt").to(model.device)["input_ids"]
logits = model(input_ids).logits
masked_index = (input_ids[0] == tokenizer.mask_token_id).nonzero().item()
probs = logits[0, masked_index].softmax(dim=0)
values, predictions = probs.topk(5)
tokenizer.decode(predictions).split()ملاحظات
Longformer is based on RoBERTa and doesn’t have
token_type_ids. You don’t need to indicate which token belongs to which segment. You only need to separate the segments with the separation token</s>ortokenizer.sep_token.يمكنك تحديد الرموز التي يمكنها الانتباه محلياً والرموز التي تنتبه عالمياً باستخدام
global_attention_maskأثناء الاستدلال (انظر هذا مثال لمزيد من التفاصيل). القيمة0تعني أن الرمز ينتبه محلياً، والقيمة1تعني أن الرمز ينتبه عالمياً.يتم تدريب LongformerForMaskedLM بنفس طريقة تدريب RobertaForMaskedLM، وينبغي استخدامه كما هو موضح أدناه.
input_ids = tokenizer.encode("This is a sentence from [MASK] training data", return_tensors="pt").to(model.device) mlm_labels = tokenizer.encode("This is a sentence from the training data", return_tensors="pt").to(model.device) loss = model(input_ids, labels=input_ids, masked_lm_labels=mlm_labels)[0]
LongformerConfig
فئة transformers.LongformerConfig
< 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 = Noneattention_window: list[int] | int = 512sep_token_id: int | None = 2pad_token_id: int | None = 1bos_token_id: int | None = 0eos_token_id: int | list[int] | None = 2vocab_size: int = 30522hidden_size: int = 768num_hidden_layers: int = 12num_attention_heads: int = 12intermediate_size: int = 3072hidden_act: str = 'gelu'hidden_dropout_prob: float | int = 0.1attention_probs_dropout_prob: float | int = 0.1max_position_embeddings: int = 512type_vocab_size: int = 2initializer_range: float = 0.02layer_norm_eps: float = 1e-12onnx_export: bool = Falsetie_word_embeddings: bool = True )
المعاملات
- attention_window (
intأوlist[int]، اختياري، القيمة الافتراضية 512) — حجم نافذة الانتباه حول كل رمز. إذا كانint، فسيتم استخدام نفس الحجم لجميع الطبقات. لتحديد حجم نافذة مختلف لكل طبقة، استخدمlist[int]حيثlen(attention_window) == num_hidden_layers. - sep_token_id (
int، اختياري، القيمة الافتراضية2) — معرّف الرمز المستخدم كفاصل في المفردات. - pad_token_id (
int، اختياري، القيمة الافتراضية1) — معرّف الرمز المستخدم للتعبئة في المفردات. - bos_token_id (
int, اختياري، القيمة الافتراضية0) — معرّف الرمز المستخدم لبدء البث في المفردات. - eos_token_id (
Union[int, list[int]]، اختياري، القيمة الافتراضية2) — معرّف الرمز المستخدم لنهاية التدفق في المفردات. - vocab_size (
int، اختياري، القيمة الافتراضية30522) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطةinput_ids. - hidden_size (
int، اختياري، القيمة الافتراضية768) — أبعاد التمثيلات المخفية. - num_hidden_layers (
int، اختياري، القيمة الافتراضية12) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية12) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - intermediate_size (
int، اختياري، القيمة الافتراضية3072) — أبعاد تمثيلات MLP. - hidden_act (
str، اختياري، القيمة الافتراضيةgelu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وما إلى ذلك. - hidden_dropout_prob (
Union[float, int]، اختياري، القيمة الافتراضية0.1) — احتمال الإسقاط (dropout) لجميع الطبقات المتصلة بالكامل في التضمينات، والمُشفِّر، والمُجمِّع. - attention_probs_dropout_prob (
Union[float, int]، اختياري، القيمة الافتراضية0.1) — نسبة إسقاط الاحتمالات الانتباهية. - max_position_embeddings (
int، اختياري، القيمة الافتراضية512) — أقصى طول تسلسل قد يُستخدم مع هذا النموذج. - type_vocab_size (
int، اختياري، القيمة الافتراضية2) — حجم مفرداتtoken_type_ids. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - layer_norm_eps (
float, اختياري، القيمة الافتراضية1e-12) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة. - onnx_export (
bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم إنشاء النموذج بحيث يمكن تصديره إلى ONNX أم لا. - tie_word_embeddings (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب ربط ترميزات الأوزان (weight embeddings) وفقاً لخريطةtied_weights_keysالخاصة بالنموذج.
هذه فئة الإعدادات المخزنة لإعدادات نموذج LongformerModel. تُستخدم لتوليد نموذج Longformer وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن إنشاء إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ allenai/longformer-base-4096
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
مثال:
>>> from transformers import LongformerConfig, LongformerModel
>>> # Initializing a Longformer configuration
>>> configuration = LongformerConfig()
>>> # Initializing a model from the configuration
>>> model = LongformerModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configLongformerTokenizer
فئة transformers.RobertaTokenizer
< source >( vocab: str | dict[str, int] | None = Nonemerges: str | list[str] | None = Noneerrors: str = 'replace'bos_token: str = '<s>'eos_token: str = '</s>'sep_token: str = '</s>'cls_token: str = '<s>'unk_token: str = '<unk>'pad_token: str = '<pad>'mask_token: str = '<mask>'add_prefix_space: bool = Falsetrim_offsets: bool = True**kwargs )
المعاملات
- vocab (
strأوdictأوlist، اختياري) — قاموس مفردات مخصص. إذا لم يُقدَّم، يتم تحميل المفردات من vocab_file. - merges (
strأوlist، اختياري) — قائمة دمج مخصصة. إذا لم يتم تقديمها، يتم تحميل عمليات الدمج من merges_file. - errors (
str، اختياري، القيمة الافتراضية"replace") — النموذج الذي يجب اتباعه عند فك ترميز البايتات إلى UTF-8. راجع bytes.decode لمزيد من المعلومات. - bos_token (
str, اختياري, الافتراضي هو"<s>") — رمز بداية التسلسل الذي تم استخدامه أثناء التدريب المسبق. يمكن استخدامه كرمز لتصنيف التسلسل. عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لبداية التسلسل، بل يُستخدم رمز cls_token.عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لبدء التسلسل. الرمز المستخدم هو
cls_token. - eos_token (
str, اختياري, الافتراضي هو"</s>") — رمز نهاية التسلسل. عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لنهاية التسلسل، بل يُستخدم رمز الفاصل (sep_token) لهذا الغرض.عند بناء تسلسل باستخدام الرموز الخاصة، لا يُستخدم هذا الرمز لنهاية التسلسل. الرمز المستخدم هو
sep_token. - sep_token (
str، اختياري، القيمة الافتراضية"</s>") — رمز الفاصل، الذي يُستخدم عند بناء تسلسل من عدة تسلسلات، على سبيل المثال تسلسلان لتصنيف التسلسل أو نص وسؤال للإجابة على الأسئلة. كما يُستخدم كآخر رمز في تسلسل مبني باستخدام الرموز الخاصة. - cls_token (
str، اختياري، القيمة الافتراضية"<s>") — رمز التصنيف الذي يُستخدم عند إجراء تصنيف التسلسل (تصنيف التسلسل بأكمله بدلاً من التصنيف لكل رمز على حدة). وهو الرمز الأول في التسلسل عند بناؤه باستخدام الرموز الخاصة. - unk_token (
str، اختياري، القيمة الافتراضية"<unk>") — رمز المجهول. لا يمكن تحويل الرمز غير الموجود في المفردات إلى معرّف، لذا يُعيَّن هذا الرمز بدلاً منه. - pad_token (
str، اختياري، القيمة الافتراضية"<pad>") — الرمز المستخدم للتعبئة، على سبيل المثال عند تجميع تسلسلات ذات أطوال مختلفة. - mask_token (
str، اختياري، القيمة الافتراضية"<mask>") — الرمز المستخدم لإخفاء القيم. هذا هو الرمز المستخدم عند تدريب هذا النموذج باستخدام نمذجة اللغة المقنّعة. وهو الرمز الذي سيحاول النموذج التنبؤ به. - add_prefix_space (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إضافة مسافة أولية إلى المدخلات أم لا. هذا يتيح التعامل مع الكلمة الأولى تمامًا مثل أي كلمة أخرى. (يعمل مُجزِّئ RoBERTa على اكتشاف بداية الكلمات من خلال المسافة التي تسبقها). - trim_offsets (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان ينبغي لخطوة ما بعد المعالجة أن تقصّ الإزاحات لتجنّب تضمين مسافات بيضاء.
أنشئ مُجزِّئ RoBERTa (مدعوم بمكتبة tokenizers من HuggingFace). يعتمد على ترميز زوج البايت (Byte-Pair-Encoding).
تم تدريب هذا المُجزِّئ على التعامل مع المسافات كجزء من الرموز (بشكل يشبه sentencepiece) لذا فإن الكلمة
تُرمَّز بشكل مختلف سواء كانت في بداية الجملة (بدون مسافة) أو لا:
>>> from transformers import RobertaTokenizer
>>> tokenizer = RobertaTokenizer.from_pretrained("FacebookAI/roberta-base")
>>> tokenizer("Hello world")["input_ids"]
[0, 31414, 232, 2]
>>> tokenizer(" Hello world")["input_ids"]
[0, 20920, 232, 2]يمكنك تجاوز هذا السلوك عن طريق تمرير add_prefix_space=True عند إنشاء هذا المُجزّئ أو عند استدعائه على بعض النص، ولكن نظرًا لأن النموذج لم يتم تدريبه مسبقًا بهذه الطريقة، فقد يؤدي ذلك إلى انخفاض في الأداء.
عند استخدامه مع
is_split_into_words=True، يجب إنشاء هذا المُجزِّئ معadd_prefix_space=True.
يرث هذا المُجزِّئ من TokenizersBackend الذي يحتوي على معظم الطرق الرئيسية. ينبغي للمستخدمين الرجوع إلى هذه الفئة الأصلية لمزيد من المعلومات حول تلك الطرق.
المخرجات الخاصة بـ Longformer
فئة transformers.models.longformer.modeling_longformer.LongformerBaseModelOutput
< source >( last_hidden_state: FloatTensorhidden_states: tuple[torch.FloatTensor, ...] | None = Noneattentions: tuple[torch.FloatTensor, ...] | None = Noneglobal_attentions: tuple[torch.FloatTensor, ...] | None = None )
المعاملات
- last_hidden_state (
torch.FloatTensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج. - hidden_states (
tuple[torch.FloatTensor, ...], اختياري, يُعاد عندoutput_hidden_states=Trueتمريرconfig.output_hidden_states=True) — مجموعة منtorch.FloatTensor(واحد لكل من مخرجات الطبقات التضمينية (إذا كان النموذج يحتوي على طبقة تضمين) + واحد لكل من مخرجات كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- attentions (
tuple(torch.FloatTensor), اختياري, يُعاد عندoutput_attentions=Trueيُمرَّر أو عندconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(لطبقة واحدة) من الشكل(batch_size, num_heads, sequence_length, x + attention_window + 1), حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل. أوزان الانتباه المحلي بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. هذه هي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز في نافذة الانتباه (القيم المتبقية attention_window + 1). لاحظ أن القيم الأولى x تشير إلى رموز بمواضع ثابتة في النص، بينما تشير القيم المتبقية attention_window + 1 إلى رموز بمواضع نسبية: يقع وزن الانتباه للرمز لنفسه عند الفهرس x + attention_window / 2، والقيم السابقة (اللاحقة) attention_window / 2 هي أوزان الانتباه للرموز السابقة (اللاحقة) attention_window / 2. إذا احتوت نافذة الانتباه على رمز ذي انتباه شامل، يُضبط وزن الانتباه عند الفهرس المقابل إلى 0؛ يجب الوصول إلى القيمة من أوزان الانتباه الأولى x. إذا كان للرمز انتباه شامل، تُضبط أوزان الانتباه لجميع الرموز الأخرى في attentions إلى 0، ويجب الوصول إلى القيم من global_attentions.أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى
x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window- 1
values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
- 1
- global_attentions (
tuple(torch.FloatTensor), اختياري, يُعاد عندoutput_attentions=Trueيُمرَّر أو عندconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(من الشكل(batch_size, num_heads, sequence_length, x), حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل.أوزان الانتباه العالمية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز ذي انتباه عالمي إلى كل رمز في التسلسل.
الفئة الأساسية لمخرجات Longformer، مع حالات مخفية محتملة، وانتباه محلي وعالمي.
class transformers.models.longformer.modeling_longformer.LongformerBaseModelOutputWithPooling
< source >( last_hidden_state: FloatTensorpooler_output: typing.Optional[torch.FloatTensor] = Nonehidden_states: tuple[torch.FloatTensor, ...] | None = Noneattentions: tuple[torch.FloatTensor, ...] | None = Noneglobal_attentions: tuple[torch.FloatTensor, ...] | None = None )
المعاملات
- last_hidden_state (
torch.FloatTensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج. - pooler_output (
torch.FloatTensorمن الشكل(batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول في التسلسل (رمز التصنيف) بعد معالجتها بواسطة طبقة Linear ودالة تفعيل Tanh. تُدرَّب أوزان طبقة Linear من هدف التنبؤ بالجملة التالية (التصنيف) أثناء التدريب المسبق. - hidden_states (
tuple[torch.FloatTensor, ...], اختياري, يُعاد عندoutput_hidden_states=Trueتمريرconfig.output_hidden_states=True) — مجموعة منtorch.FloatTensor(واحد لكل من مخرجات الطبقات التضمينية (إذا كان النموذج يحتوي على طبقة تضمين) + واحد لكل من مخرجات كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- attentions (
tuple(torch.FloatTensor), اختياري, يُعاد عندoutput_attentions=Trueيُمرَّر أو عندconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(لطبقة واحدة) من الشكل(batch_size, num_heads, sequence_length, x + attention_window + 1), حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل. أوزان الانتباه المحلي بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. هذه هي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز في نافذة الانتباه (القيم المتبقية attention_window + 1). لاحظ أن القيم الأولى x تشير إلى رموز بمواضع ثابتة في النص، بينما تشير القيم المتبقية attention_window + 1 إلى رموز بمواضع نسبية: يقع وزن الانتباه للرمز لنفسه عند الفهرس x + attention_window / 2، والقيم السابقة (اللاحقة) attention_window / 2 هي أوزان الانتباه للرموز السابقة (اللاحقة) attention_window / 2. إذا احتوت نافذة الانتباه على رمز ذي انتباه شامل، يُضبط وزن الانتباه عند الفهرس المقابل إلى 0؛ يجب الوصول إلى القيمة من أوزان الانتباه الأولى x. إذا كان للرمز انتباه شامل، تُضبط أوزان الانتباه لجميع الرموز الأخرى في attentions إلى 0، ويجب الوصول إلى القيم من global_attentions.أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى
x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window- 1
values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
- 1
- global_attentions (
tuple(torch.FloatTensor), اختياري, يُعاد عندoutput_attentions=Trueيُمرَّر أو عندconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(من الشكل(batch_size, num_heads, sequence_length, x), حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل.أوزان الانتباه العالمية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز ذي انتباه عالمي إلى كل رمز في التسلسل.
الفئة الأساسية لمخرجات Longformer التي تتضمن أيضًا تجميعًا للحالات المخفية الأخيرة.
فئة transformers.models.longformer.modeling_longformer.LongformerMaskedLMOutput
< source >( loss: typing.Optional[torch.FloatTensor] = Nonelogits: typing.Optional[torch.FloatTensor] = Nonehidden_states: tuple[torch.FloatTensor, ...] | None = Noneattentions: tuple[torch.FloatTensor, ...] | None = Noneglobal_attentions: tuple[torch.FloatTensor, ...] | None = None )
المعاملات
- loss (
torch.FloatTensorمن الشكل(1,)، اختياري، يُعاد عند توفيرlabels) — خسارة نمذجة اللغة المقنّعة (MLM). - logits (
torch.FloatTensorمن الشكل(batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax). - hidden_states (
tuple[torch.FloatTensor, ...], اختياري, يُعاد عندoutput_hidden_states=Trueتمريرconfig.output_hidden_states=True) — مجموعة منtorch.FloatTensor(واحد لكل من مخرجات الطبقات التضمينية (إذا كان النموذج يحتوي على طبقة تضمين) + واحد لكل من مخرجات كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- attentions (
tuple(torch.FloatTensor), اختياري, يُعاد عندoutput_attentions=Trueيُمرَّر أو عندconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(لطبقة واحدة) من الشكل(batch_size, num_heads, sequence_length, x + attention_window + 1), حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل. أوزان الانتباه المحلي بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. هذه هي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز في نافذة الانتباه (القيم المتبقية attention_window + 1). لاحظ أن القيم الأولى x تشير إلى رموز بمواضع ثابتة في النص، بينما تشير القيم المتبقية attention_window + 1 إلى رموز بمواضع نسبية: يقع وزن الانتباه للرمز لنفسه عند الفهرس x + attention_window / 2، والقيم السابقة (اللاحقة) attention_window / 2 هي أوزان الانتباه للرموز السابقة (اللاحقة) attention_window / 2. إذا احتوت نافذة الانتباه على رمز ذي انتباه شامل، يُضبط وزن الانتباه عند الفهرس المقابل إلى 0؛ يجب الوصول إلى القيمة من أوزان الانتباه الأولى x. إذا كان للرمز انتباه شامل، تُضبط أوزان الانتباه لجميع الرموز الأخرى في attentions إلى 0، ويجب الوصول إلى القيم من global_attentions.أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى
x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window- 1
values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
- 1
- global_attentions (
tuple(torch.FloatTensor), اختياري, يُعاد عندoutput_attentions=Trueيُمرَّر أو عندconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(من الشكل(batch_size, num_heads, sequence_length, x), حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل.أوزان الانتباه العالمية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز ذي انتباه عالمي إلى كل رمز في التسلسل.
الفئة الأساسية لمخرجات نماذج اللغة المقنّعة.
فئة transformers.models.longformer.modeling_longformer.LongformerQuestionAnsweringModelOutput
< source >( loss: typing.Optional[torch.FloatTensor] = Nonestart_logits: typing.Optional[torch.FloatTensor] = Noneend_logits: typing.Optional[torch.FloatTensor] = Nonehidden_states: tuple[torch.FloatTensor, ...] | None = Noneattentions: tuple[torch.FloatTensor, ...] | None = Noneglobal_attentions: tuple[torch.FloatTensor, ...] | None = None )
المعاملات
- loss (
torch.FloatTensorمن الشكل(1,)، اختياري، يُعاد عند توفيرlabels) — إجمالي خسارة استخراج المقاطع هو مجموع دالة Cross-Entropy لموقعي البداية والنهاية. - start_logits (
torch.FloatTensorمن الشكل(batch_size, sequence_length)، اختياري) — درجات بداية المقطع (قبل SoftMax). - end_logits (
torch.FloatTensorمن الشكل(batch_size, sequence_length)، اختياري) — درجات نهاية المقطع (قبل SoftMax). - hidden_states (
tuple[torch.FloatTensor, ...], اختياري, يُعاد عندoutput_hidden_states=Trueتمريرconfig.output_hidden_states=True) — مجموعة منtorch.FloatTensor(واحد لكل من مخرجات الطبقات التضمينية (إذا كان النموذج يحتوي على طبقة تضمين) + واحد لكل من مخرجات كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- attentions (
tuple(torch.FloatTensor), اختياري, يُعاد عندoutput_attentions=Trueيُمرَّر أو عندconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(لطبقة واحدة) من الشكل(batch_size, num_heads, sequence_length, x + attention_window + 1), حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل. أوزان الانتباه المحلي بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. هذه هي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز في نافذة الانتباه (القيم المتبقية attention_window + 1). لاحظ أن القيم الأولى x تشير إلى رموز بمواضع ثابتة في النص، بينما تشير القيم المتبقية attention_window + 1 إلى رموز بمواضع نسبية: يقع وزن الانتباه للرمز لنفسه عند الفهرس x + attention_window / 2، والقيم السابقة (اللاحقة) attention_window / 2 هي أوزان الانتباه للرموز السابقة (اللاحقة) attention_window / 2. إذا احتوت نافذة الانتباه على رمز ذي انتباه شامل، يُضبط وزن الانتباه عند الفهرس المقابل إلى 0؛ يجب الوصول إلى القيمة من أوزان الانتباه الأولى x. إذا كان للرمز انتباه شامل، تُضبط أوزان الانتباه لجميع الرموز الأخرى في attentions إلى 0، ويجب الوصول إلى القيم من global_attentions.أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى
x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window- 1
values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
- 1
- global_attentions (
tuple(torch.FloatTensor), اختياري, يُعاد عندoutput_attentions=Trueيُمرَّر أو عندconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(من الشكل(batch_size, num_heads, sequence_length, x), حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل.أوزان الانتباه العالمية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز ذي انتباه عالمي إلى كل رمز في التسلسل.
الفئة الأساسية لمخرجات نماذج Longformer للإجابة عن الأسئلة.
فئة transformers.models.longformer.modeling_longformer.LongformerSequenceClassifierOutput
< source >( loss: typing.Optional[torch.FloatTensor] = Nonelogits: typing.Optional[torch.FloatTensor] = Nonehidden_states: tuple[torch.FloatTensor, ...] | None = Noneattentions: tuple[torch.FloatTensor, ...] | None = Noneglobal_attentions: tuple[torch.FloatTensor, ...] | None = None )
المعاملات
- loss (
torch.FloatTensorمن الشكل(1,)، اختياري، يُعاد عند توفيرlabels) — فقد التصنيف (أو الانحدار إذا كان config.num_labels==1). - logits (
torch.FloatTensorمن الشكل(batch_size, config.num_labels)) — درجات التصنيف (أو الانحدار إذا كان config.num_labels==1) (قبل SoftMax). - hidden_states (
tuple[torch.FloatTensor, ...], اختياري, يُعاد عندoutput_hidden_states=Trueتمريرconfig.output_hidden_states=True) — مجموعة منtorch.FloatTensor(واحد لكل من مخرجات الطبقات التضمينية (إذا كان النموذج يحتوي على طبقة تضمين) + واحد لكل من مخرجات كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- attentions (
tuple(torch.FloatTensor), اختياري, يُعاد عندoutput_attentions=Trueيُمرَّر أو عندconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(لطبقة واحدة) من الشكل(batch_size, num_heads, sequence_length, x + attention_window + 1), حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل. أوزان الانتباه المحلي بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. هذه هي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز في نافذة الانتباه (القيم المتبقية attention_window + 1). لاحظ أن القيم الأولى x تشير إلى رموز بمواضع ثابتة في النص، بينما تشير القيم المتبقية attention_window + 1 إلى رموز بمواضع نسبية: يقع وزن الانتباه للرمز لنفسه عند الفهرس x + attention_window / 2، والقيم السابقة (اللاحقة) attention_window / 2 هي أوزان الانتباه للرموز السابقة (اللاحقة) attention_window / 2. إذا احتوت نافذة الانتباه على رمز ذي انتباه شامل، يُضبط وزن الانتباه عند الفهرس المقابل إلى 0؛ يجب الوصول إلى القيمة من أوزان الانتباه الأولى x. إذا كان للرمز انتباه شامل، تُضبط أوزان الانتباه لجميع الرموز الأخرى في attentions إلى 0، ويجب الوصول إلى القيم من global_attentions.أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى
x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window- 1
values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
- 1
- global_attentions (
tuple(torch.FloatTensor), اختياري, يُعاد عندoutput_attentions=Trueيُمرَّر أو عندconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(من الشكل(batch_size, num_heads, sequence_length, x), حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل.أوزان الانتباه العالمية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز ذي انتباه عالمي إلى كل رمز في التسلسل.
الفئة الأساسية لمخرجات نماذج تصنيف الجمل.
فئة transformers.models.longformer.modeling_longformer.LongformerMultipleChoiceModelOutput
< source >( loss: typing.Optional[torch.FloatTensor] = Nonelogits: typing.Optional[torch.FloatTensor] = Nonehidden_states: tuple[torch.FloatTensor, ...] | None = Noneattentions: tuple[torch.FloatTensor, ...] | None = Noneglobal_attentions: tuple[torch.FloatTensor, ...] | None = None )
المعاملات
- loss (
torch.FloatTensorمن الشكل (1,)، اختياري، يُعاد عند تقديمlabels) — خسارة التصنيف. - logits (
torch.FloatTensorبشكل(batch_size, num_choices)) — هو البُعد الثاني من المصفوفات المدخلة. (انظر في الأعلى). درجات التصنيف (قبل SoftMax). في الأعلى).درجات التصنيف (قبل SoftMax).
- hidden_states (
tuple[torch.FloatTensor, ...], اختياري, يُعاد عندoutput_hidden_states=Trueتمريرconfig.output_hidden_states=True) — مجموعة منtorch.FloatTensor(واحد لكل من مخرجات الطبقات التضمينية (إذا كان النموذج يحتوي على طبقة تضمين) + واحد لكل من مخرجات كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- attentions (
tuple(torch.FloatTensor), اختياري, يُعاد عندoutput_attentions=Trueيُمرَّر أو عندconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(لطبقة واحدة) من الشكل(batch_size, num_heads, sequence_length, x + attention_window + 1), حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل. أوزان الانتباه المحلي بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. هذه هي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز في نافذة الانتباه (القيم المتبقية attention_window + 1). لاحظ أن القيم الأولى x تشير إلى رموز بمواضع ثابتة في النص، بينما تشير القيم المتبقية attention_window + 1 إلى رموز بمواضع نسبية: يقع وزن الانتباه للرمز لنفسه عند الفهرس x + attention_window / 2، والقيم السابقة (اللاحقة) attention_window / 2 هي أوزان الانتباه للرموز السابقة (اللاحقة) attention_window / 2. إذا احتوت نافذة الانتباه على رمز ذي انتباه شامل، يُضبط وزن الانتباه عند الفهرس المقابل إلى 0؛ يجب الوصول إلى القيمة من أوزان الانتباه الأولى x. إذا كان للرمز انتباه شامل، تُضبط أوزان الانتباه لجميع الرموز الأخرى في attentions إلى 0، ويجب الوصول إلى القيم من global_attentions.أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى
x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window- 1
values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
- 1
- global_attentions (
tuple(torch.FloatTensor), اختياري, يُعاد عندoutput_attentions=Trueيُمرَّر أو عندconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(من الشكل(batch_size, num_heads, sequence_length, x), حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل.أوزان الانتباه العالمية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز ذي انتباه عالمي إلى كل رمز في التسلسل.
الفئة الأساسية لمخرجات نماذج Longformer متعددة الخيارات.
فئة transformers.models.longformer.modeling_longformer.LongformerTokenClassifierOutput
< source >( loss: typing.Optional[torch.FloatTensor] = Nonelogits: typing.Optional[torch.FloatTensor] = Nonehidden_states: tuple[torch.FloatTensor, ...] | None = Noneattentions: tuple[torch.FloatTensor, ...] | None = Noneglobal_attentions: tuple[torch.FloatTensor, ...] | None = None )
المعاملات
- loss (
torch.FloatTensorمن الشكل(1,)، اختياري، يُعاد عند توفيرlabels) — خسارة التصنيف. - logits (
torch.FloatTensorمن الشكل(batch_size, sequence_length, config.num_labels)) — درجات التصنيف (قبل SoftMax). - hidden_states (
tuple[torch.FloatTensor, ...], اختياري, يُعاد عندoutput_hidden_states=Trueتمريرconfig.output_hidden_states=True) — مجموعة منtorch.FloatTensor(واحد لكل من مخرجات الطبقات التضمينية (إذا كان النموذج يحتوي على طبقة تضمين) + واحد لكل من مخرجات كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
- attentions (
tuple(torch.FloatTensor), اختياري, يُعاد عندoutput_attentions=Trueيُمرَّر أو عندconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(لطبقة واحدة) من الشكل(batch_size, num_heads, sequence_length, x + attention_window + 1), حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل. أوزان الانتباه المحلي بعد دالة softmax للانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. هذه هي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى x) وإلى كل رمز في نافذة الانتباه (القيم المتبقية attention_window + 1). لاحظ أن القيم الأولى x تشير إلى رموز بمواضع ثابتة في النص، بينما تشير القيم المتبقية attention_window + 1 إلى رموز بمواضع نسبية: يقع وزن الانتباه للرمز لنفسه عند الفهرس x + attention_window / 2، والقيم السابقة (اللاحقة) attention_window / 2 هي أوزان الانتباه للرموز السابقة (اللاحقة) attention_window / 2. إذا احتوت نافذة الانتباه على رمز ذي انتباه شامل، يُضبط وزن الانتباه عند الفهرس المقابل إلى 0؛ يجب الوصول إلى القيمة من أوزان الانتباه الأولى x. إذا كان للرمز انتباه شامل، تُضبط أوزان الانتباه لجميع الرموز الأخرى في attentions إلى 0، ويجب الوصول إلى القيم من global_attentions.أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى
x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window- 1
values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
- 1
- global_attentions (
tuple(torch.FloatTensor), اختياري, يُعاد عندoutput_attentions=Trueيُمرَّر أو عندconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(من الشكل(batch_size, num_heads, sequence_length, x), حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل.أوزان الانتباه العالمية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز ذي انتباه عالمي إلى كل رمز في التسلسل.
الفئة الأساسية لمخرجات نماذج تصنيف الرموز.
LongformerModel
فئة transformers.LongformerModel
< source >( config: LongformerConfigadd_pooling_layer = True )
المعاملات
- config (LongformerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
- add_pooling_layer (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب إضافة طبقة تجميع
نموذج Longformer الأساسي الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneglobal_attention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → LongformerBaseModelOutputWithPooling or tuple(torch.FloatTensor)
المعاملات
- input_ids (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على المؤشرات باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل. ما هي معرّفات الإدخال؟يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- global_attention_mask (
torch.FloatTensorبشكل(batch_size, sequence_length), اختياري) — قناع لتحديد نوع الانتباه الممنوح لكل رمز، سواء كان انتباهًا محليًا أو انتباهًا شاملًا. الرموز التي يتم منحها انتباهًا شاملًا تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها. وهذا أمر مهم عند الضبط الدقيق لمهام محددة لأنه يجعل النموذج أكثر مرونة في تمثيل المهمة. على سبيل المثال، في مهام التصنيف، يجب منح الرمزانتباهًا شاملًا. وفي مهام الإجابة على الأسئلة، يجب أن يتمتع جميع رموز السؤال أيضًا بانتباه شامل. يُرجى الرجوع إلى ورقة Longformer لمزيد من التفاصيل. القيم المختارة للقناع في[0, 1]:- 0 للانتباه المحلي (انتباه نافذة منزلقة)،
- 1 للانتباه العام (الرموز التي تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها).
- token_type_ids (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من[0, 1]:- 0 يتوافق مع رمز sentence A،
- 1 يتوافق مع رمز sentence B.
- position_ids (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - inputs_embeds (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج. - output_attentions (
bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجعattentionsضمن tensors المُرجعة لمزيد من التفاصيل. - output_hidden_states (
bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجعhidden_statesضمن الموترات المُرجعة للحصول على مزيد من التفاصيل. - return_dict (
bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.
يعيد
LongformerBaseModelOutputWithPooling أو tuple(torch.FloatTensor)
LongformerBaseModelOutputWithPooling أو مجموعة مرتبة من
torch.FloatTensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (LongformerConfig) والمدخلات.
تتجاوز طريقة LongformerModel الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.FloatTensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.pooler_output (
torch.FloatTensorمن الشكل(batch_size, hidden_size)) — حالة الطبقة المخفية الأخيرة للرمز الأول في التسلسل (رمز التصنيف)، بعد معالجتها بواسطة طبقة خطية ودالة تفعيل Tanh. تُدرَّب أوزان الطبقة الخطية من هدف التنبؤ بالجملة التالية (التصنيف) أثناء التدريب المسبق.hidden_states (
tuple[torch.FloatTensor, ...]، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.FloatTensor(واحدة لمخرجات الطبقة المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.FloatTensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, x + attention_window + 1)، حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل.أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى
x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window- 1
values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
- 1
global_attentions (
tuple(torch.FloatTensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, x)، حيثxهو عدد الرموز التي لديها قناع انتباه شامل.أوزان الانتباه العالمية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز ذي انتباه عالمي إلى كل رمز في التسلسل.
أمثلة:
>>> import torch
>>> from transformers import LongformerModel, AutoTokenizer
>>> model = LongformerModel.from_pretrained("allenai/longformer-base-4096")
>>> tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-base-4096")
>>> SAMPLE_TEXT = " ".join(["Hello world! "] * 1000) # long input document
>>> input_ids = torch.tensor(tokenizer.encode(SAMPLE_TEXT)).unsqueeze(0) # batch of size 1
>>> attention_mask = torch.ones(
... input_ids.shape, dtype=torch.long, device=input_ids.device
... ) # initialize to local attention
>>> global_attention_mask = torch.zeros(
... input_ids.shape, dtype=torch.long, device=input_ids.device
... ) # initialize to global attention to be deactivated for all tokens
>>> global_attention_mask[
... :,
... [
... 1,
... 4,
... 21,
... ],
... ] = 1 # Set global attention to random tokens for the sake of this example
>>> # Usually, set global attention based on the task. For example,
>>> # classification: the <s> token
>>> # QA: question tokens
>>> # LM: potentially on the beginning of sentences and paragraphs
>>> outputs = model(input_ids, attention_mask=attention_mask, global_attention_mask=global_attention_mask)
>>> sequence_output = outputs.last_hidden_state
>>> pooled_output = outputs.pooler_outputLongformerForMaskedLM
فئة transformers.LongformerForMaskedLM
< source >( config: LongformerConfig )
المعاملات
- config (LongformerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Longformer مع رأس language modeling في الأعلى.”
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneglobal_attention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → LongformerMaskedLMOutput or tuple(torch.FloatTensor)
المعاملات
- input_ids (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على المؤشرات باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل. ما هي معرّفات الإدخال؟يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- global_attention_mask (
torch.FloatTensorبشكل(batch_size, sequence_length), اختياري) — قناع لتحديد نوع الانتباه الممنوح لكل رمز، سواء كان انتباهًا محليًا أو انتباهًا شاملًا. الرموز التي تخضع للانتباه الشامل تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها. وهذا أمر مهم في الضبط الدقيق الخاص بالمهام لأنه يجعل النموذج أكثر مرونة في تمثيل المهمة. على سبيل المثال، في تصنيف النصوص، يجب منح الرمزانتباهًا شاملًا. وفي مهام الإجابة على الأسئلة، يجب أن يتمتع جميع رموز السؤال أيضًا بانتباه شامل. يرجى الرجوع إلى ورقة Longformer لمزيد من التفاصيل. القيم المختارة للقناع في[0, 1]:- 0 للانتباه المحلي (انتباه نافذة منزلقة)،
- 1 للانتباه العام (الرموز التي تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها).
- token_type_ids (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من[0, 1]:- 0 يتوافق مع رمز sentence A،
- 1 يتوافق مع رمز sentence B.
- position_ids (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - inputs_embeds (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج. - labels (
torch.LongTensorمن الشكل(batch_size, sequence_length)، اختياري) — التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس ضمن[-100, 0, ..., config.vocab_size](انظرinput_idsdocstring). يتم تجاهل الرموز التي فهارسها مضبوطة على-100(مقنّعة)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن[0, ..., config.vocab_size]. - output_attentions (
bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجعattentionsضمن tensors المُرجعة لمزيد من التفاصيل. - output_hidden_states (
bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجعhidden_statesضمن الموترات المُرجعة للحصول على مزيد من التفاصيل. - return_dict (
bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.
يعيد
LongformerMaskedLMOutput أو tuple(torch.FloatTensor)
LongformerMaskedLMOutput أو مجموعة مرتبة من
torch.FloatTensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعدادات (LongformerConfig) والمدخلات.
تتجاوز طريقة LongformerForMaskedLM الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.FloatTensorمن الشكل(1,)، اختياري، يُعاد عند توفيرlabels) — خسارة نمذجة اللغة المقنّعة (MLM).logits (
torch.FloatTensorمن الشكل(batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات كل رمز في المفردات قبل SoftMax).hidden_states (
tuple[torch.FloatTensor, ...]، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.FloatTensor(واحدة لمخرجات الطبقة المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.FloatTensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, x + attention_window + 1)، حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل.أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى
x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window- 1
values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
- 1
global_attentions (
tuple(torch.FloatTensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, x)، حيثxهو عدد الرموز التي لديها قناع انتباه شامل.أوزان الانتباه العالمية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز ذي انتباه عالمي إلى كل رمز في التسلسل.
مثال على ملء القناع:
>>> from transformers import AutoTokenizer, LongformerForMaskedLM
>>> tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-base-4096")
>>> model = LongformerForMaskedLM.from_pretrained("allenai/longformer-base-4096")لنحاول إدخال مدخلات طويلة جداً.
>>> TXT = (
... "My friends are <mask> but they eat too many carbs."
... + " That's why I decide not to eat with them." * 300
... )
>>> input_ids = tokenizer([TXT], return_tensors="pt")["input_ids"]
>>> logits = model(input_ids).logits
>>> masked_index = (input_ids[0] == tokenizer.mask_token_id).nonzero().item()
>>> probs = logits[0, masked_index].softmax(dim=0)
>>> values, predictions = probs.topk(5)
>>> tokenizer.decode(predictions).split()
['healthy', 'skinny', 'thin', 'good', 'vegetarian']LongformerForSequenceClassification
فئة transformers.LongformerForSequenceClassification
< source >( config: LongformerConfig )
المعاملات
- config (LongformerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Longformer مع رأس تصنيف/انحدار تسلسلي في الأعلى (طبقة خطية فوق المخرجات المجمّعة) على سبيل المثال لمهام GLUE.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneglobal_attention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → LongformerSequenceClassifierOutput or tuple(torch.FloatTensor)
المعاملات
- input_ids (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على المؤشرات باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل. ما هي معرّفات الإدخال؟يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- global_attention_mask (
torch.FloatTensorبشكل(batch_size, sequence_length), اختياري) — قناع لتحديد نوع الانتباه الممنوح لكل رمز، سواء كان انتباهًا محليًا أو انتباهًا شاملًا. الرموز التي تخضع للانتباه الشامل تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها. هذا أمر مهم في الضبط الدقيق الخاص بالمهام لأنه يجعل النموذج أكثر مرونة في تمثيل المهمة. على سبيل المثال، في تصنيف النصوص، يجب منح الرمزانتباهًا شاملًا. وفي مهام الإجابة عن الأسئلة، يجب أن تخضع جميع رموز السؤال أيضًا للانتباه الشامل. يُرجى الرجوع إلى ورقة Longformer لمزيد من التفاصيل. القيم المختارة للقناع في[0, 1]:- 0 للانتباه المحلي (انتباه نافذة منزلقة)،
- 1 للانتباه العام (الرموز التي تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها).
- token_type_ids (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من[0, 1]:- 0 يتوافق مع رمز sentence A،
- 1 يتوافق مع رمز sentence B.
- position_ids (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - inputs_embeds (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج. - labels (
torch.LongTensorمن الشكل(batch_size,)، اختياري) — التسميات لحساب خسارة تصنيف/الانحدار التسلسلي. يجب أن تكون الفهارس ضمن[0, ..., config.num_labels - 1]. إذا كانconfig.num_labels == 1يتم حساب خسارة الانحدار (خسارة متوسط المربع)، وإذا كانconfig.num_labels > 1يتم حساب خسارة التصنيف (الإنتروبيا المتقاطعة). - output_attentions (
bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجعattentionsضمن tensors المُرجعة لمزيد من التفاصيل. - output_hidden_states (
bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجعhidden_statesضمن الموترات المُرجعة للحصول على مزيد من التفاصيل. - return_dict (
bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.
يعيد
LongformerSequenceClassifierOutput أو tuple(torch.FloatTensor)
LongformerSequenceClassifierOutput أو مجموعة مرتبة من
torch.FloatTensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
حسب الإعداد (LongformerConfig) والمدخلات.
تتجاوز طريقة LongformerForSequenceClassification الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.FloatTensorمن الشكل(1,)، اختياري، يُعاد عند توفيرlabels) — خسارة التصنيف (أو الانحدار إذا كان config.num_labels==1).logits (
torch.FloatTensorمن الشكل(batch_size, config.num_labels)) — درجات التصنيف (أو الانحدار إذا كان config.num_labels==1) (قبل SoftMax).hidden_states (
tuple[torch.FloatTensor, ...]، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.FloatTensor(واحدة لمخرجات الطبقة المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.FloatTensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, x + attention_window + 1)، حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل.أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى
x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window- 1
values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
- 1
global_attentions (
tuple(torch.FloatTensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, x)، حيثxهو عدد الرموز التي لديها قناع انتباه شامل.أوزان الانتباه العالمية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز ذي انتباه عالمي إلى كل رمز في التسلسل.
مثال على تصنيف بوسم واحد:
>>> import torch
>>> from transformers import AutoTokenizer, LongformerForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-base-4096")
>>> model = LongformerForSequenceClassification.from_pretrained("allenai/longformer-base-4096")
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> predicted_class_id = logits.argmax().item()
>>> model.config.id2label[predicted_class_id]
...
>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = LongformerForSequenceClassification.from_pretrained("allenai/longformer-base-4096", num_labels=num_labels)
>>> labels = torch.tensor([1])
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...مثال على تصنيف متعدد التسميات:
>>> import torch
>>> from transformers import AutoTokenizer, LongformerForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-base-4096")
>>> model = LongformerForSequenceClassification.from_pretrained("allenai/longformer-base-4096", problem_type="multi_label_classification")
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> predicted_class_ids = torch.arange(0, logits.shape[-1])[torch.sigmoid(logits).squeeze(dim=0) > 0.5]
>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = LongformerForSequenceClassification.from_pretrained(
... "allenai/longformer-base-4096", num_labels=num_labels, problem_type="multi_label_classification"
... )
>>> labels = torch.sum(
... torch.nn.functional.one_hot(predicted_class_ids[None, :].clone(), num_classes=num_labels), dim=1
... ).to(torch.float)
>>> loss = model(**inputs, labels=labels).lossLongformerForMultipleChoice
فئة transformers.LongformerForMultipleChoice
< source >( config: LongformerConfig )
المعاملات
- config (LongformerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Longformer مع رأس تصنيف متعدد الخيارات في الأعلى (طبقة خطية فوق المخرجات المجمعة وsoftmax) على سبيل المثال لمهام RocStories/SWAG.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneglobal_attention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → LongformerMultipleChoiceModelOutput or tuple(torch.FloatTensor)
المعاملات
- input_ids (
torch.LongTensorبشكل(batch_size, num_choices, sequence_length)) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- token_type_ids (
torch.LongTensorبشكل(batch_size, num_choices, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من[0, 1]:- 0 يتوافق مع رمز sentence A،
- 1 يتوافق مع رمز sentence B.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- global_attention_mask (
torch.FloatTensorبشكل(batch_size, num_choices, sequence_length), اختياري) — قناع يحدد نوع الانتباه الممنوح لكل رمز، سواء كان انتباهًا محليًا أو انتباهًا شاملًا. الرموز التي تخضع للانتباه الشامل تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها. هذا أمر مهم في الضبط الدقيق الخاص بالمهام لأنه يجعل النموذج أكثر مرونة في تمثيل المهمة. على سبيل المثال، في مهام التصنيف، يجب منح الرمزانتباهًا شاملًا. وفي مهام الإجابة على الأسئلة، يجب أن تخضع جميع رموز السؤال أيضًا للانتباه الشامل. يرجى الرجوع إلى ورقة Longformer لمزيد من التفاصيل. القيم المختارة للقناع في[0, 1]:- 0 للانتباه المحلي (انتباه نافذة منزلقة)،
- 1 للانتباه العام (الرموز التي تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها).
- labels (
torch.LongTensorمن الشكل(batch_size,)، اختياري) — التسميات لحساب خسارة تصنيف الاختيار المتعدد. يجب أن تكون الفهارس ضمن[0, ..., num_choices-1]حيثnum_choicesهو حجم البُعد الثاني من المصفوفات المدخلة. (انظرinput_idsأعلاه) - position_ids (
torch.LongTensorبشكل(batch_size, num_choices, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.max_position_embeddings - 1]. - inputs_embeds (
torch.FloatTensorمن الشكل(batch_size, num_choices, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث التضمينية الداخلية للنموذج. - output_attentions (
bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجعattentionsضمن tensors المُرجعة لمزيد من التفاصيل. - output_hidden_states (
bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجعhidden_statesضمن الموترات المُرجعة للحصول على مزيد من التفاصيل. - return_dict (
bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.
يعيد
LongformerMultipleChoiceModelOutput أو tuple(torch.FloatTensor)
LongformerMultipleChoiceModelOutput أو مجموعة مرتبة من
torch.FloatTensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعدادات (LongformerConfig) والمدخلات.
تتجاوز طريقة LongformerForMultipleChoice الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.FloatTensorمن الشكل (1,)، اختياري، يُعاد عند توفيرlabels) — خسارة التصنيف.logits (
torch.FloatTensorمن الشكل(batch_size, num_choices)) — num_choices هو البُعد الثاني لمصفوفات الإدخال. (انظر input_ids أعلاه).درجات التصنيف (قبل SoftMax).
hidden_states (
tuple[torch.FloatTensor, ...]، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.FloatTensor(واحدة لمخرجات الطبقة المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.FloatTensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, x + attention_window + 1)، حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل.أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى
x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window- 1
values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
- 1
global_attentions (
tuple(torch.FloatTensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, x)، حيثxهو عدد الرموز التي لديها قناع انتباه شامل.أوزان الانتباه العالمية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز ذي انتباه عالمي إلى كل رمز في التسلسل.
مثال:
>>> from transformers import AutoTokenizer, LongformerForMultipleChoice
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-base-4096")
>>> model = LongformerForMultipleChoice.from_pretrained("allenai/longformer-base-4096")
>>> prompt = "In Italy, pizza served in formal settings, such as at a restaurant, is presented unsliced."
>>> choice0 = "It is eaten with a fork and a knife."
>>> choice1 = "It is eaten while held in the hand."
>>> labels = torch.tensor(0).unsqueeze(0) # choice0 is correct (according to Wikipedia ;)), batch size 1
>>> encoding = tokenizer([prompt, prompt], [choice0, choice1], return_tensors="pt", padding=True)
>>> outputs = model(**{k: v.unsqueeze(0) for k, v in encoding.items()}, labels=labels) # batch size is 1
>>> # the linear classifier still needs to be trained
>>> loss = outputs.loss
>>> logits = outputs.logitsLongformerForTokenClassification
فئة transformers.LongformerForTokenClassification
< source >( config: LongformerConfig )
المعاملات
- config (LongformerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Longformer transformer مع رأس تصنيف الرموز في الأعلى (طبقة خطية فوق مخرجات الحالات المخفية) على سبيل المثال لمهام التعرف على الكيانات المسمّاة (NER).
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneglobal_attention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → LongformerTokenClassifierOutput or tuple(torch.FloatTensor)
المعاملات
- input_ids (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على المؤشرات باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل. ما هي معرّفات الإدخال؟يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- global_attention_mask (
torch.FloatTensorبشكل(batch_size, sequence_length), اختياري) — قناع لتحديد نوع الانتباه الممنوح لكل رمز، سواء كان انتباهًا محليًا أو انتباهًا شاملًا. الرموز التي تخضع للانتباه الشامل تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها. وهذا أمر مهم في الضبط الدقيق الخاص بالمهام لأنه يجعل النموذج أكثر مرونة في تمثيل المهمة. على سبيل المثال، في تصنيف النصوص، يجب منح الرمزانتباهًا شاملًا. وفي مهام الإجابة على الأسئلة، يجب أن يتمتع جميع رموز السؤال أيضًا بانتباه شامل. يرجى الرجوع إلى ورقة Longformer لمزيد من التفاصيل. القيم المختارة للقناع في[0, 1]:- 0 للانتباه المحلي (انتباه نافذة منزلقة)،
- 1 للانتباه العام (الرموز التي تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها).
- token_type_ids (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من[0, 1]:- 0 يتوافق مع رمز sentence A،
- 1 يتوافق مع رمز sentence B.
- position_ids (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - inputs_embeds (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج. - labels (
torch.LongTensorمن الشكل(batch_size, sequence_length)، اختياري) — التسميات لحساب خسارة تصنيف الرموز. يجب أن تكون الفهارس ضمن[0, ..., config.num_labels - 1]. - output_attentions (
bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجعattentionsضمن tensors المُرجعة لمزيد من التفاصيل. - output_hidden_states (
bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجعhidden_statesضمن الموترات المُرجعة للحصول على مزيد من التفاصيل. - return_dict (
bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.
يعيد
LongformerTokenClassifierOutput أو tuple(torch.FloatTensor)
LongformerTokenClassifierOutput أو مجموعة مرتبة من
torch.FloatTensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعدادات (LongformerConfig) والمدخلات.
تتجاوز طريقة LongformerForTokenClassification الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.FloatTensorمن الشكل(1,)، اختياري، يُعاد عند توفيرlabels) — خسارة التصنيف.logits (
torch.FloatTensorمن الشكل(batch_size, sequence_length, config.num_labels)) — درجات التصنيف (قبل SoftMax).hidden_states (
tuple[torch.FloatTensor, ...]، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.FloatTensor(واحدة لمخرجات الطبقة المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.FloatTensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, x + attention_window + 1)، حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل.أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى
x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window- 1
values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
- 1
global_attentions (
tuple(torch.FloatTensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, x)، حيثxهو عدد الرموز التي لديها قناع انتباه شامل.أوزان الانتباه العالمية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز ذي انتباه عالمي إلى كل رمز في التسلسل.
مثال:
>>> from transformers import AutoTokenizer, LongformerForTokenClassification
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-base-4096")
>>> model = LongformerForTokenClassification.from_pretrained("allenai/longformer-base-4096")
>>> inputs = tokenizer(
... "HuggingFace is a company based in Paris and New York", add_special_tokens=False, return_tensors="pt"
... )
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> predicted_token_class_ids = logits.argmax(-1)
>>> # Note that tokens are classified rather then input words which means that
>>> # there might be more predicted token classes than words.
>>> # Multiple token classes might account for the same word
>>> predicted_tokens_classes = [model.config.id2label[t.item()] for t in predicted_token_class_ids[0]]
>>> predicted_tokens_classes
...
>>> labels = predicted_token_class_ids
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...LongformerForQuestionAnswering
فئة transformers.LongformerForQuestionAnswering
< source >( config: LongformerConfig )
المعاملات
- config (LongformerConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Longformer transformer مع رأس تصنيف مقاطع (span classification head) في الأعلى لمهام الإجابة الاستخراجية على الأسئلة مثل SQuAD (طبقة خطية فوق مخرجات الحالات المخفية لحساب span start logits وspan end logits).
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneglobal_attention_mask: typing.Optional[torch.Tensor] = Nonetoken_type_ids: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonestart_positions: typing.Optional[torch.Tensor] = Noneend_positions: typing.Optional[torch.Tensor] = Noneoutput_attentions: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = None**kwargs ) → LongformerQuestionAnsweringModelOutput or tuple(torch.FloatTensor)
المعاملات
- input_ids (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا. يمكن الحصول على المؤشرات باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل. ما هي معرّفات الإدخال؟يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- global_attention_mask (
torch.FloatTensorبشكل(batch_size, sequence_length), اختياري) — قناع لتحديد نوع الانتباه الممنوح لكل رمز، سواء كان انتباهًا محليًا أو انتباهًا شاملًا. الرموز التي تخضع للانتباه الشامل تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها. هذا أمر مهم في الضبط الدقيق الخاص بالمهام لأنه يجعل النموذج أكثر مرونة في تمثيل المهمة. على سبيل المثال، في تصنيف النصوص، يجب منح الرمزانتباهًا شاملًا. وفي مهام الإجابة عن الأسئلة، يجب أن تخضع جميع رموز السؤال أيضًا للانتباه الشامل. يُرجى الرجوع إلى ورقة Longformer لمزيد من التفاصيل. القيم المختارة للقناع في[0, 1]:- 0 للانتباه المحلي (انتباه نافذة منزلقة)،
- 1 للانتباه العام (الرموز التي تنتبه إلى جميع الرموز الأخرى، وتنتبه جميع الرموز الأخرى إليها).
- token_type_ids (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز المقاطع لتحديد الجزء الأول والثاني من المدخلات. يتم اختيار المؤشرات من[0, 1]:- 0 يتوافق مع رمز sentence A،
- 1 يتوافق مع رمز sentence B.
- position_ids (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - inputs_embeds (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج. - start_positions (
torch.Tensorمن الشكل(batch_size,)، اختياري) — تسميات لموضع (فهرس) بداية المقطع المُسمّى لحساب خسارة تصنيف الرموز. تُثبَّت المواضع على طول التسلسل (sequence_length). لا تُؤخذ المواضع خارج التسلسل في الاعتبار عند حساب الخسارة. - end_positions (
torch.Tensorمن الشكل(batch_size,)، اختياري) — تسميات لموضع (فهرس) نهاية المقطع المُسمّى لحساب خسارة تصنيف الرموز. تُثبَّت المواضع على طول التسلسل (sequence_length). لا تُؤخذ المواضع خارج التسلسل في الاعتبار عند حساب الخسارة. - output_attentions (
bool، اختياري) — ما إذا كان يجب إرجاع تensors الانتباه لجميع طبقات الانتباه أم لا. راجعattentionsضمن tensors المُرجعة لمزيد من التفاصيل. - output_hidden_states (
bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجعhidden_statesضمن الموترات المُرجعة للحصول على مزيد من التفاصيل. - return_dict (
bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي.
يعيد
LongformerQuestionAnsweringModelOutput أو tuple(torch.FloatTensor)
LongformerQuestionAnsweringModelOutput أو مجموعة مرتبة من
torch.FloatTensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (LongformerConfig) والمدخلات.
تتجاوز طريقة LongformerForQuestionAnswering الخاصة بالتقديم الأمامي الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.FloatTensorمن الشكل(1,)، اختياري، يُعاد عند توفيرlabels) — إجمالي خسارة استخراج المقاطع هو مجموع دالة Cross-Entropy لموقعي البداية والنهاية.start_logits (
torch.FloatTensorمن الشكل(batch_size, sequence_length)، اختياري) — درجات بداية المقاطع (قبل SoftMax).end_logits (
torch.FloatTensorمن الشكل(batch_size, sequence_length)، اختياري) — درجات نهاية المقطع (قبل SoftMax).hidden_states (
tuple[torch.FloatTensor, ...]، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.FloatTensor(واحدة لمخرجات الطبقة المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لمخرجات كل طبقة) بأبعاد(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.FloatTensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, x + attention_window + 1)، حيثxهو عدد الرموز التي تحمل قناع الانتباه الشامل.أوزان الانتباه المحلية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز في التسلسل إلى كل رمز ذي انتباه شامل (القيم الأولى
x) وإلى كل رمز ضمن نافذة الانتباه (القيم المتبقية `attention_window- 1
values). Note that the firstxvalues refer to tokens with fixed positions in the text, but the remainingattention_window + 1values refer to tokens with relative positions: the attention weight of a token to itself is located at indexx + attention_window / 2and theattention_window / 2preceding (succeeding) values are the attention weights to theattention_window / 2preceding (succeeding) tokens. If the attention window contains a token with global attention, the attention weight at the corresponding index is set to 0; the value should be accessed from the firstxattention weights. If a token has global attention, the attention weights to all other tokens inattentionsis set to 0, the values should be accessed fromglobal_attentions`.
- 1
global_attentions (
tuple(torch.FloatTensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.FloatTensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, x)، حيثxهو عدد الرموز التي لديها قناع انتباه شامل.أوزان الانتباه العالمية بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي. وهي أوزان الانتباه من كل رمز ذي انتباه عالمي إلى كل رمز في التسلسل.
أمثلة:
>>> from transformers import AutoTokenizer, LongformerForQuestionAnswering
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-large-4096-finetuned-triviaqa")
>>> model = LongformerForQuestionAnswering.from_pretrained("allenai/longformer-large-4096-finetuned-triviaqa")
>>> question, text = "Who was Jim Henson?", "Jim Henson was a nice puppet"
>>> encoding = tokenizer(question, text, return_tensors="pt")
>>> input_ids = encoding["input_ids"]
>>> # default is local attention everywhere
>>> # the forward method will automatically set global attention on question tokens
>>> attention_mask = encoding["attention_mask"]
>>> outputs = model(input_ids, attention_mask=attention_mask)
>>> start_logits = outputs.start_logits
>>> end_logits = outputs.end_logits
>>> all_tokens = tokenizer.convert_ids_to_tokens(input_ids[0].tolist())
>>> answer_tokens = all_tokens[torch.argmax(start_logits) : torch.argmax(end_logits) + 1]
>>> answer = tokenizer.decode(
... tokenizer.convert_tokens_to_ids(answer_tokens)
... ) # remove space prepending space token