Transformers documentation
Mamba 2
نُشر هذا النموذج في أوراق HF في 31 مايو 2024، وأُضيف إلى Hugging Face Transformers في 6 أغسطس 2024.
Mamba 2
يعتمد Mamba 2 على إطار ازدواجية فضاء الحالة (SSD) الذي يربط بين نماذج فضاء الحالة المهيكلة (SSMs) ومتغيرات الانتباه. وهو يستخدم خوارزمية SSD أكثر كفاءة، أسرع من Mamba بمقدار 2 إلى 8 أضعاف، كما يعدّل البنية المعمارية لتمكين التوازي على مستوى المصفوفات (tensor parallelism) وهيكل رؤوس انتباه القيم المجمعة (GVA).
يمكنك العثور على جميع نقاط التفتيش الأصلية لنموذج Mamba 2 تحت منظمة State Space Models، لكن الأمثلة المعروضة أدناه تستخدم mistralai/Mamba-Codestral-7B-v0.1 لأن تطبيق Hugging Face غير مدعوم بعد لنقاط التفتيش الأصلية.
تشمل البنى الأخرى القائمة على Mamba 2 ما يلي: Bamba، وFalconH1، وZamba2.
تمت مساهمة هذا النموذج من قِبل ArthurZ. انقر على نماذج Mamba في الشريط الجانبي الأيمن لمزيد من الأمثلة حول كيفية تطبيق Mamba على مهام لغوية مختلفة.
يُظهر المثال أدناه كيفية توليد النص باستخدام Pipeline وAutoModel ومن سطر الأوامر.
from transformers import pipeline
pipeline = pipeline(
task="text-generation",
model="mistralai/Mamba-Codestral-7B-v0.1",
device=0
)
pipeline("Plants create energy through a process known as")from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("mistralai/Mamba-Codestral-7B-v0.1")
model = AutoModelForCausalLM.from_pretrained("mistralai/Mamba-Codestral-7B-v0.1", device_map="auto")
input_ids = tokenizer("Plants create energy through a process known as", return_tensors="pt").to(model.device)
output = model.generate(**input_ids)
print(tokenizer.decode(output[0], skip_special_tokens=True))تقلل عملية التكميم العبء على الذاكرة في النماذج الكبيرة من خلال تمثيل الأوزان بدقة أقل. راجع نظرة عامة على التكميم للاطلاع على المزيد من واجهات التكميم المتاحة.
يستخدم المثال أدناه torchao لاختزال الأوزان إلى أعداد صحيحة ذات 4 بت فقط.
from transformers import AutoModelForCausalLM, AutoTokenizer, TorchAoConfig
quantization_config = TorchAoConfig("int4_weight_only", group_size=128)
tokenizer = AutoTokenizer.from_pretrained("mistralai/Mamba-Codestral-7B-v0.1")
model = AutoModelForCausalLM.from_pretrained("mistralai/Mamba-Codestral-7B-v0.1", quantization_config=quantization_config, device_map="auto")
input_ids = tokenizer("Plants create energy through a process known as", return_tensors="pt").to(model.device)
output = model.generate(**input_ids)
print(tokenizer.decode(output[0], skip_special_tokens=True))ملاحظات
يتميز Codestral Mamba بـ
groups=8وهي تشبه عدد رؤوس kv في نموذج يعتمد على الانتباه.يحتوي Codestral Mamba على مساري تقدّم مختلفين،
torch_forwardأوcuda_kernels_forward، ومن المتوقع أن تكون نتائجهما مختلفة قليلاً.torch_forwardدون التجميع أسرع بـ 3 إلى 4 أضعاف منcuda_kernels_forward.cuda_kernels_forwardيستخدم نواة CUDA الأصلية إذا كانت متاحة في بيئتك. يكون أبطأ أثناء مرحلة التعبئة المسبقة (prefill) لأنه يتطلب "تشغيلة إحماء" بسبب العبء الأعلى على وحدة المعالجة المركزية (انظر هذه التعليقات لمزيد من التفاصيل).
لا توجد تمثيلات موضعية في هذا النموذج، لكن يوجد
attention_maskومنطق محدد لإخفاء الحالات المخفية في موضعين عند التوليد الدُفعي (انظر هذا تعليق لمزيد من التفاصيل). يؤدي هذا (بالإضافة إلى إعادة تنفيذ نواة Mamba 2) إلى اختلاف طفيف بين التوليد الدُفعي والتوليد المخزّن مؤقتًا.يعتمد خوارزمية SSM اعتماداً كبيراً على عمليات انكماش الموترات (tensor contractions)، والتي لها مكافئات في عمليات ضرب المصفوفات (matmul)، لكن ترتيب العمليات يختلف قليلاً. وهذا يجعل الفارق أكبر عند استخدام دقات أقل.
يتم اختبار الحشو (Padding) مع الحشو الأيسر فقط. يؤدي الحشو الأيمن إلى تحديث ذاكرة التخزين المؤقت بمواقع الحشو، مما يعطي نتائج غير موثوقة. اضبط
tokenizer.padding_side="left"عند التوليد الدُفعي. راجع جانب الحشو.يُبيّن المثال أدناه كيفية ضبط موديل Mamba 2 باستخدام PEFT.
from datasets import load_dataset
from peft import LoraConfig
from trl import SFTConfig, SFTTrainer
model_id = "mistralai/Mamba-Codestral-7B-v0.1"
dataset = load_dataset("Abirate/english_quotes", split="train")
training_args = SFTConfig(dataset_text_field="quote", gradient_checkpointing=True, per_device_train_batch_size=4)
lora_config = LoraConfig(target_modules=["x_proj", "embeddings", "in_proj", "out_proj"])
trainer = SFTTrainer(
model=model_id,
args=training_args,
train_dataset=dataset,
peft_config=lora_config,
)
trainer.train()Mamba2Config
فئة transformers.Mamba2Config
< 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 = Nonenum_heads: int = 128head_dim: int = 64vocab_size: int = 32768hidden_size: int = 4096state_size: int = 128num_hidden_layers: int = 64layer_norm_epsilon: float = 1e-05pad_token_id: int | None = 1bos_token_id: int | None = 0eos_token_id: int | list[int] | None = 2expand: int = 2conv_kernel: int = 4n_groups: int = 8use_bias: bool = Falseuse_conv_bias: bool = Truehidden_act: str = 'silu'initializer_range: float = 0.1residual_in_fp32: bool = Truetime_step_rank: str | int = 'auto'time_step_min: float = 0.001time_step_max: float = 0.1time_step_floor: float = 0.0001time_step_limit: list[float] | tuple[float, ...] = (0.0, inf)rescale_prenorm_residual: bool = Falseuse_cache: bool = Truechunk_size: int = 256tie_word_embeddings: bool = False )
المعاملات
- num_heads (
int، اختياري، القيمة الافتراضية128) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - head_dim (
int، اختياري، القيمة الافتراضية64) — بعد رأس الانتباه. إذا كانت القيمة None، فستكون القيمة الافتراضية هي hidden_size // num_attention_heads - vocab_size (
int، اختياري، القيمة الافتراضية32768) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطةinput_ids. - hidden_size (
int، اختياري، القيمة الافتراضية4096) — أبعاد التمثيلات المخفية. - state_size (
int، اختياري، القيمة الافتراضية128) — حجم حالة SSM (بعد الحالة الكامنة) في طبقات Mamba. - num_hidden_layers (
int، اختياري، القيمة الافتراضية64) — عدد الطبقات المخفية في مُفكِّك Transformer. - layer_norm_epsilon (
float، اختياري، القيمة الافتراضية 1e-05) — قيمة الإيبسلون المستخدمة في طبقات تطبيع الطبقة. - pad_token_id (
int، اختياري، القيمة الافتراضية1) — معرّف الرمز المستخدم للتعبئة في المفردات. - bos_token_id (
int, اختياري، القيمة الافتراضية0) — معرّف الرمز المستخدم لبدء البث في المفردات. - eos_token_id (
Union[int, list[int]]، اختياري، القيمة الافتراضية2) — معرّف الرمز المستخدم لنهاية التدفق في المفردات. - expand (
int, اختياري، القيمة الافتراضية 2) — معامل التوسيع المستخدم لتحديد الحجم الوسيط. - conv_kernel (
int، اختياري، القيمة الافتراضية4) — حجم نواة الالتفاف. - n_groups (
int، اختياري، القيمة الافتراضية 8) — عدد المجموعات لمصفوفات التطور في mamba 2. - use_bias (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم استخدام الانحياز في [“in_proj”, “out_proj”] داخل كتلة المخلّط - use_conv_bias (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم استخدام الانحياز في طبقة الالتفاف داخل كتلة المخلّط. - hidden_act (
str، اختياري، القيمة الافتراضيةsilu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وغيرها. - initializer_range (
float، اختياري، القيمة الافتراضية0.1) — انحراف معياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - residual_in_fp32 (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان ينبغي أن تكون البواقي (residuals) من نوعfloat32. إذا تم ضبطه علىFalse، فستحتفظ البواقي بنفسdtypeمثل باقي النموذج. - time_step_rank (
Union[str, int]، اختياري، القيمة الافتراضيةauto) — رتبة الإسقاط (خطوة الزمن). يمكن أن تكون"auto"لضبطها تلقائيًا. - time_step_min (
float، اختياري، القيمة الافتراضية0.001) — الحد الأدنى لـtime_stepالمستخدم لتحديد حدdt_proj.bias. - time_step_max (
float، اختياري، القيمة الافتراضية0.1) — القيمة القصوى لـtime_stepالمستخدمة لتحديد حدdt_proj.bias. - time_step_floor (
float، اختياري، القيمة الافتراضية0.0001) — القيمة الدنيا المسموح بها لخطوة الزمن المنفصلة الدلتا بعد تفعيل softplus. - time_step_limit (
Union[list[float], tuple[float, ...]]، اختياري، القيمة الافتراضية(0.0, inf)) — النطاق المقبول لقيم خطوة الزمن للتحكم بها. - rescale_prenorm_residual (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم إعادة تحجيم أوزانout_projعند التهيئة أم لا. - use_cache (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب على النموذج إرجاع قيم المفاتيح/القيم الأخيرة للانتباه (لا تستخدمها جميع النماذج). لا ينطبق إلا إذا كانconfig.is_decoder=Trueأو إذا كان النموذج نموذجًا توليديًا يعتمد على المُفكِّك فقط. - chunk_size (
int، اختياري، القيمة الافتراضية 256) — حجم المقاطع التي ستشكل التسلسل. - tie_word_embeddings (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم ربط ترميزات الأوزان وفقاً لخريطةtied_weights_keysالخاصة بالنموذج.
هذه فئة الإعدادات المخزنة لإعدادات نموذج Mamba2Model. تُستخدم لتوليد نموذج Mamba2 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن إنشاء إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ state-spaces/mamba2-2.8b
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
مثال:
>>> from transformers import Mamba2Config, Mamba2Model
>>> # Initializing a Mamba2 configuration
>>> configuration = Mamba2Config()
>>> # Initializing a model (with random weights) from the configuration
>>> model = Mamba2Model(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configMamba2Model
فئة transformers.Mamba2Model
< source >( config: Mamba2Config )
المعاملات
- config (Mamba2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Mamba2 الأساسي الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.LongTensor] = Nonecache_params: transformers.cache_utils.Cache | None = Noneuse_cache: bool | None = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Noneattention_mask: typing.Optional[torch.Tensor] = None**kwargs ) → Mamba2Output or tuple(torch.Tensor)
المعاملات
- input_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- inputs_embeds (
torch.LongTensorof shape(batch_size, sequence_length, hidden_size), اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج. - cache_params (
Cache، اختياري) — إذا تم تمريره، يستخدم النموذج الحالة السابقة في جميع الكتل (مما سيُنتج المخرجات الخاصة بـinput_idsالمُقدَّمة وكأن النموذج أضافstate_input_ids + input_idsكسياق). - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، يُعادcache_paramsويمكن استخدامه لتوليد logits التالية بسرعة. - output_hidden_states (
bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجعhidden_statesضمن الموترات المُرجعة للحصول على مزيد من التفاصيل. - return_dict (
bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي. - attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
يعيد
Mamba2Output أو tuple(torch.Tensor)
Mamba2Output أو مجموعة (tuple) من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (Mamba2Config) والمدخلات.
تتجاوز طريقة Mamba2Model الأمامية الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — تسلسل حالات مخفية عند مخرجات الطبقة الأخيرة من النموذج.cache_params (
~cache_utils.Cache، اختياري) — حالة النموذج عند آخر خطوة زمنية. يمكن استخدامه في طريقة الأمامية معinput_idsالتالية لتجنب تقديمinput_idsالقديمة.يتضمن مصفوفات حالة نموذج فضاء الحالة بعد المسح الانتقائي، وحالات التمرير
hidden_states (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
Mamba2LMHeadModel
فئة transformers.Mamba2ForCausalLM
< source >( config: Mamba2Config )
المعاملات
- config (Mamba2Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج MAMBA2 المُحوِّل (Transformer) مع رأس لنمذجة اللغة في الأعلى (طبقة خطية بأوزان غير مرتبطة بتضمينات الإدخال).
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonecache_params: transformers.cache_utils.Cache | None = Nonelabels: typing.Optional[torch.LongTensor] = Noneoutput_hidden_states: bool | None = Nonereturn_dict: bool | None = Noneuse_cache: bool | None = Noneattention_mask: typing.Optional[torch.Tensor] = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs ) → Mamba2CausalLMOutput or tuple(torch.Tensor)
المعاملات
- input_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- inputs_embeds (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج. - cache_params (
Cache، اختياري) — إذا تم تمريره، يستخدم النموذج الحالة السابقة في جميع الكتل (مما سيُنتج المخرجات الخاصة بـinput_idsالمُقدَّمة وكأن النموذج أضافstate_input_ids + input_idsكسياق). - labels (
torch.LongTensorمن الشكل(batch_size, sequence_length)، اختياري) — التسميات لنمذجة اللغة. لاحظ أن التسميات تُزاح داخل النموذج، أي يمكنك تعيينlabels = input_idsيتم اختيار الفهارس من[-100, 0, ..., config.vocab_size]تُتجاهل (تُقنَّع) جميع التسميات المعينة إلى-100ويتم حساب الخسارة فقط للتسميات الموجودة في[0, ..., config.vocab_size] - output_hidden_states (
bool، اختياري) — ما إذا كان يجب إرجاع حالات الطبقات المخفية لجميع الطبقات. راجعhidden_statesضمن الموترات المُرجعة للحصول على مزيد من التفاصيل. - return_dict (
bool، اختياري) — ما إذا كان يجب إرجاع ModelOutput بدلاً من tuple عادي. - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، يُعادcache_paramsويمكن استخدامه لتوليد logits التالية بسرعة. - attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- logits_to_keep (
Union[int, torch.Tensor]، اختياري، القيمة الافتراضية0) — إذا كانint، يتم حساب logits لآخرlogits_to_keepرموز. إذا كانت القيمة0، يتم حساب logits لجميعinput_ids(حالة خاصة). لا يُحتاج إلى logits إلا للرمز الأخير في عملية التوليد، ويمكن أن يوفر حسابها لذلك الرمز وحده ذاكرة كبيرة، وهو أمر مهم بشكل ملحوظ للتسلسلات الطويلة أو حجم المفردات الكبير. إذا كانtorch.Tensor، يجب أن يكون بعدًا واحدًا (1D) ويتوافق مع الفهارس التي يجب الاحتفاظ بها في بُعد طول التسلسل. يكون هذا مفيدًا عند استخدام تنسيق المصفوفات المعبأة (packed tensor format) (بعد واحد لكل من الدفعة وطول التسلسل).
يعيد
Mamba2CausalLMOutput أو tuple(torch.Tensor)
Mamba2CausalLMOutput أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (Mamba2Config) والمدخلات.
تتجاوز طريقة Mamba2ForCausalLM الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.Tensorof shape(1,), اختياري, يُعاد عند توفيرlabels) — خسارة نمذجة اللغة (لتوقع الرمز التالي).logits (
torch.Tensorمن الشكل(batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).cache_params (
~cache_utils.Cache، اختياري) — حالة النموذج عند آخر خطوة زمنية. يمكن استخدامه في طريقة الأمامية معinput_idsالتالية لتجنب تقديمinput_idsالقديمة.يتضمن مصفوفات حالة نموذج فضاء الحالة بعد المسح الانتقائي، وحالات التمرير
hidden_states (
tuple[torch.Tensor]، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.