Transformers documentation
Mistral
نُشر هذا النموذج في أوراق HF في 2023-10-10 وسُهم به في Hugging Face Transformers في 2023-09-27.
Mistral
Mistral هو نموذج لغوي يحتوي على 7 مليارات من المعاملات، متوفر بنسختين: نسخة مُدرَّبة مسبقًا ونسخة مُعدَّلة للتعليمات، ويركّز على تحقيق التوازن بين تكاليف توسيع النماذج الكبيرة والأداء والاستدلال الفعّال. يستخدم هذا نموذج الانتباه النافذي المنزلق (SWA) المُدرَّب بطول سياق يبلغ 8K وحجم ذاكرة مؤقتة ثابتة للتعامل مع التسلسلات الأطول بشكل أكثر فعالية. يسرّع الانتباه الاستعلامي المجمّع (GQA) عملية الاستدلال ويقلّل من متطلبات الذاكرة. كما يمتاز Mistral بمعالج رموز BPE مع بديل على مستوى البايت لتحسين معالجة الرموز وكفاءتها من خلال ضمان عدم تعيين أي أحرف إلى رموز خارج نطاق المفردات.
يمكنك العثور على جميع نقاط التفتيش الأصلية لنموذج Mistral تحت منظمة Mistral AI_.
انقر على نماذج Mistral في الشريط الجانبي الأيمن لمزيد من الأمثلة حول كيفية تطبيق Mistral على مهام لغوية مختلفة.
اضبط
use_kernels=Trueفي from_pretrained() لاستبدال الطبقات المدعومة بنوى مُحسَّنة من Hub. راجع تحميل النوى لمعرفة المزيد.
يُظهر المثال أدناه كيفية الدردشة مع Pipeline أو AutoModel، ومن سطر الأوامر.
from transformers import pipeline
messages = [
{"role": "user", "content": "What is your favourite condiment?"},
{"role": "assistant", "content": "Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!"},
{"role": "user", "content": "Do you have mayonnaise recipes?"}
]
chatbot = pipeline("text-generation", model="mistralai/Mistral-7B-Instruct-v0.3", device=0)
chatbot(messages)from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("mistralai/Mistral-7B-Instruct-v0.3", attn_implementation="sdpa", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.3")
messages = [
{"role": "user", "content": "What is your favourite condiment?"},
{"role": "assistant", "content": "Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!"},
{"role": "user", "content": "Do you have mayonnaise recipes?"}
]
model_inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to(model.device)
generated_ids = model.generate(**model_inputs, max_new_tokens=100, do_sample=True)
tokenizer.batch_decode(generated_ids)[0]
"Mayonnaise can be made as follows: (...)"echo -e "My favorite condiment is" | transformers chat mistralai/Mistral-7B-v0.3 --dtype auto --device 0 --attn_implementation flash_attention_2تقلل عملية التكميم العبء على الذاكرة في النماذج الكبيرة من خلال تمثيل الأوزان بدقة أقل. راجع نظرة عامة على التكميم للاطلاع على المزيد من واجهات التكميم المتاحة.
يستخدم المثال أدناه bitsandbytes لاختزال الأوزان إلى 4 بتات فقط.
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
# specify how to quantize the model
quantization_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_quant_type="nf4",
bnb_4bit_compute_dtype=torch.float16,
)
model = AutoModelForCausalLM.from_pretrained("mistralai/Mistral-7B-Instruct-v0.3", quantization_config=quantization_config, device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.3")
prompt = "My favourite condiment is"
messages = [
{"role": "user", "content": "What is your favourite condiment?"},
{"role": "assistant", "content": "Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!"},
{"role": "user", "content": "Do you have mayonnaise recipes?"}
]
model_inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to(model.device)
generated_ids = model.generate(**model_inputs, max_new_tokens=100, do_sample=True)
tokenizer.batch_decode(generated_ids)[0]
"The expected output"استخدم AttentionMaskVisualizer لفهم أفضل للرموز التي يمكن للنموذج الانتباه إليها والتي لا يمكنه الانتباه إليها.
from transformers.utils.attention_visualizer import AttentionMaskVisualizer
visualizer = AttentionMaskVisualizer("mistralai/Mistral-7B-Instruct-v0.3")
visualizer("Do you have mayonnaise recipes?")
MistralConfig
فئة transformers.MistralConfig
< 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 = Nonevocab_size: int = 32000hidden_size: int = 4096intermediate_size: int = 14336num_hidden_layers: int = 32num_attention_heads: int = 32num_key_value_heads: int = 8head_dim: int | None = Nonehidden_act: str = 'silu'max_position_embeddings: int = 131072initializer_range: float = 0.02rms_norm_eps: float = 1e-06use_cache: bool = Truepad_token_id: int | None = Nonebos_token_id: int | None = 1eos_token_id: int | list[int] | None = 2tie_word_embeddings: bool = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonesliding_window: int | None = 4096attention_dropout: float | int = 0.0 )
المعاملات
- vocab_size (
int، اختياري، القيمة الافتراضية32000) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطةinput_ids. - hidden_size (
int، اختياري، القيمة الافتراضية4096) — أبعاد التمثيلات المخفية. - intermediate_size (
int، اختياري، القيمة الافتراضية14336) — أبعاد تمثيلات MLP. - num_hidden_layers (
int، اختياري، القيمة الافتراضية32) — عدد الطبقات المخفية في مُفكِّك Transformer. - num_attention_heads (
int، اختياري، القيمة الافتراضية32) — عدد رؤوس الانتباه لكل طبقة انتباه في مُفكِّك Transformer. - num_key_value_heads (
int، اختياري، القيمة الافتراضية8) — هذا هو عدد رؤوس key_value التي يجب استخدامها لتنفيذ Grouped Query Attention. إذا كانnum_key_value_heads=num_attention_heads، فسيستخدم النموذج Multi Head Attention (MHA)، وإذا كانnum_key_value_heads=1فسيستخدم النموذج Multi Query Attention (MQA)، وإلا فسيتم استخدام GQA. عند تحويل نقطة تفتيش متعددة الرؤوس إلى نقطة تفتيش GQA، يجب بناء كل مجموعة من رؤوس key و value عن طريق تجميع المتوسط لجميع الرؤوس الأصلية داخل تلك المجموعة. لمزيد من التفاصيل، راجع هذا الورقة. إذا لم يتم تحديد القيمة، فستكون القيمة الافتراضية هيnum_attention_heads. - head_dim (
int، اختياري) — بعد بُعد رأس الانتباه. إذا كان None، فسيتم افتراضه على hidden_size // num_attention_heads - hidden_act (
str، اختياري، القيمة الافتراضيةsilu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال،"gelu"،"relu"،"silu"، وغيرها. - max_position_embeddings (
int، اختياري، القيمة الافتراضية131072) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق. - initializer_range (
float، اختياري، القيمة الافتراضية0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان. - rms_norm_eps (
float، اختياري، القيمة الافتراضية1e-06) — قيمة الإيبسلون المستخدمة في طبقات تطبيع rms. - use_cache (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان يجب على النموذج إرجاع قيم المفاتيح/القيم الأخيرة للانتباه (لا تستخدمها جميع النماذج). لا ينطبق إلا إذا كانconfig.is_decoder=Trueأو إذا كان النموذج نموذجًا توليديًا يعتمد على المُفكِّك فقط. - pad_token_id (
int, اختياري) — معرّف الرمز المستخدم للتعبئة في المفردات. - bos_token_id (
int، اختياري، القيمة الافتراضية1) — معرّف الرمز المستخدم لبدء البث في المفردات. - eos_token_id (
Union[int, list[int]]، اختياري، القيمة الافتراضية2) — معرّف الرمز المستخدم لنهاية التدفق في المفردات. - tie_word_embeddings (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم ربط ترميزات الأوزان وفقاً لخريطةtied_weights_keysالخاصة بالنموذج. - rope_parameters (
Union[~modeling_rope_utils.RopeParameters, dict], اختياري) — قائمة تحتوي على معاملات التهيئة الخاصة بتضمينات RoPE. يجب أن تحتوي القائمة على قيمة لـrope_theta، ومعاملات اختيارية تُستخدم للتوسيع في حال رغبتَ في استخدام RoPE معmax_position_embeddingsأطول. - sliding_window (
int، اختياري، القيمة الافتراضية4096) — حجم نافذة الانتباه المنزلقة. إذا كانتNone، فلا تُطبَّق نافذة منزلقة. - attention_dropout (
Union[float, int]، اختياري، القيمة الافتراضية0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه.
هذه فئة الإعدادات المخزنة لإعدادات نموذج MistralModel. تُستخدم لاستحداث نموذج Mistral وفقًا للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى إعدادات مشابهة لتلك الخاصة بـ mistralai/Mistral-7B-v0.1
ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.
مثال:
>>> from transformers import MistralModel, MistralConfig
>>> # Initializing a Mistral 7B style configuration
>>> configuration = MistralConfig()
>>> # Initializing a model from the Mistral 7B style configuration
>>> model = MistralModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configMistralCommonBackend
فئة transformers.MistralCommonBackend
< source >( tokenizer_path: str | os.PathLike | pathlib.Pathmode: str | ValidationMode = 'test'model_max_length: int = 1000000000000000019884624838656padding_side: str = 'left'truncation_side: str = 'right'model_input_names: list[str] | None = Noneclean_up_tokenization_spaces: bool = False**kwargs )
فئة لتغليف مُجزّئات mistral-common.
mistral-common هي مكتبة التوكنيزر الرسمية لنماذج Mistral AI. لاستخدامها، تحتاج إلى تثبيتها باستخدام:
pip install transformers[mistral-common]
وإلا فإن مُجزّئ النص يعود إلى تنفيذ Transformers لمُجزّئ النص.
لمزيد من المعلومات حول mistral-common، راجع mistral-common.
هذا الصنف هو غلاف حول mistral_common.tokens.tokenizers.mistral.MistralTokenizer.
يوفر واجهة متوافقة مع Hugging Face لتجزئة النص باستخدام مجزئ mistral-common الرسمي، ويرث من صنف PreTrainedTokenizerBase.
إليك الفروقات الرئيسية في السلوك مع فئة PythonBackend:
- لا يُدعم زوج من التسلسلات. تم الحفاظ على التوقيع من أجل التوافق، لكن جميع الحُجج المتعلقة بزوج من التسلسلات تُتجاهل. تُعاد قيم الإرجاع للأزواج على أنها
None. - لا يُدعم الحجة
is_split_into_words. - لا يمكن إضافة رموز جديدة إلى مُجزّئ الرموز. يتم التعامل مع الرموز الخاصة بشكل مختلف في Transformers. في
mistral-common، لا يتم ترميز الرموز الخاصة مباشرةً أبدًا. وهذا يعني أن:tokenizer.encode("<s>")لن يعيد المعرّف الخاص برمز<s>. وبدلاً من ذلك، سيعيد قائمة بالمعرّفات المقابلة لتجزئة السلسلة"<s>". لمزيد من المعلومات، راجع توثيق mistral-common.
إذا كان لديك اقتراحات لتحسين هذه الفئة، فيرجى فتح مشكلة على مستودع mistral-common على GitHub إذا كانت متعلقة بمجزّئ الرموز، أو على مستودع Transformers على GitHub إذا كانت متعلقة بواجهة Hugging Face.
add_special_tokens
< source >( special_tokens_dict: dictreplace_extra_special_tokens: bool = True )
لا ينفّذ MistralCommonBackend الدالة add_special_tokens عمداً.
إذا كنت ترغب في تطبيق هذا السلوك، فيرجى فتح مشكلة في مستودعات Transformers أو mistral-common للطلب.
لا ينفّذ MistralCommonBackend الدالة add_special_tokens عمداً.
إذا كنت ترغب في تطبيق هذا السلوك، فيرجى فتح مشكلة في مستودعات Transformers أو mistral-common للطلب.
apply_chat_template
< source >( conversation: list[dict[str, str]] | list[list[dict[str, str]]]tools: list[dict | collections.abc.Callable] | None = Noneadd_generation_prompt: bool = Falsecontinue_final_message: bool = Falsetokenize: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool = Falsemax_length: int | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_dict: bool = Truereasoning_effort: ReasoningEffort | None = None**kwargs ) → Union[str, list[int], list[str], list[list[int]], BatchEncoding]
المعاملات
- conversation (Union[List[Dict[str, str]], List[List[Dict[str, str]]]]) — قائمة من القواميس تحتوي على مفاتيح “role” و “content”، وتمثل سجل المحادثة حتى الآن.
- tools (
List[Union[Dict, Callable]]، اختياري) — قائمة بالأدوات (دوال قابلة للاستدعاء) التي ستكون متاحة للنموذج. إذا لم يدعم القالب استدعاء الدوال، فلن يكون لهذا الحجة أي تأثير. يجب تمرير كل أداة كمخطط JSON Schema، مع تحديد اسم الأداة ووصفها وأنواع الحجج الخاصة بها. راجد دليلنا حول قوالب المحادثة لمزيد من المعلومات. - add_generation_prompt (
bool, اختياري) — هذا الحُجج لا يُحدث أي تغيير فيMistralCommonBackend. ومع ذلك، لا يمكن استخدامه في الوقت نفسه معcontinue_final_messageللحفاظ على اتساق الواجهة البرمجية. إذا انتهى أي محادثة برسالة من المساعد، فسيُطلق خطأ. في مثل هذه الحالات، استخدمcontinue_final_messageبدلاً من ذلك. - continue_final_message (bool، اختياري) —
إذا تم تعيين هذا، فسيتم تنسيق المحادثة بحيث تكون الرسالة الأخيرة في المحادثة مفتوحة النهاية، دون أي رموز EOS. سيواصل النموذج هذه الرسالة بدلاً من بدء رسالة جديدة. يتيح لك ذلك “تعبئة مسبقة” لجزء من استجابة النموذج. لا يمكن استخدامه في الوقت نفسه مع
add_generation_prompt. - tokenize (
bool، القيمة الافتراضيةTrue) — ما إذا كان سيتم ترميز المخرجات. إذا كانتFalse، فستكون المخرجات نصًا. - padding (
bool,strأو PaddingStrategy, اختياري, الافتراضي هوFalse) — اختر استراتيجية لإضافة الحشو إلى التسلسلات المُعادَة (وفقًا لجانب الحشو وفهرس الحشو الخاص بالنموذج) من بين الخيارات التالية:Trueأو'longest': يتم ملء التسلسلات حتى أطول تسلسل في الدفعة (أو لا يتم أي ملء إذا تم تقديم تسلسل واحد فقط).'max_length': يتم ملء النص حتى الطول الأقصى المحدد عبر الحجةmax_lengthأو حتى الطول الأقصى المقبول لإدخال النموذج إذا لم تُقدَّم تلك الحجة.Falseأو'do_not_pad'(الافتراضي): لا يوجد حشو (أي، يمكن إخراج دفعة تحتوي على تسلسلات بطول مختلف).
- truncation (
bool، القيمة الافتراضيةFalse) — ما إذا كان سيتم تقصير التسلسلات عند الحد الأقصى للطول. لا يؤثر إذا كان tokenize هوFalse. - max_length (
int, اختياري) — الحد الأقصى للطول (بالرموز) المستخدم للتعبئة أو الاقتطاع. لا يؤثر إذا كان tokenize هوFalse. إذا لم يُحدد، فسيتم استخدام خاصيةmax_lengthلمُقسّم النص كقيمة افتراضية. - return_tensors (
strأو TensorType, اختياري) — إذا تم تعيينه، فسيُرجع تينسورات لإطار عمل معين. لا يؤثر إذا كان tokenize هوFalse. القيم المقبولة هي:'pt': إرجاع كائناتtorch.Tensorمن PyTorch.
- return_dict (
bool، القيمة الافتراضيةFalse) — ما إذا كان يجب إرجاع قاموس بمخرجات مُسماة. لا يؤثر إذا كان tokenize هوFalse. إذا احتوى محادثة واحدة على الأقل على صورة، فسيتم إرجاع قيم بكسلها في المفتاحpixel_valuesوأحجام الصور في المفتاحimage_sizes. - reasoning_effort (
ReasoningEffort, اختياري) — مستوى الجهد الاستدلالي الذي سيُستخدم لإكمال المحادثة في النماذج التي تدعمه. القيم الممكنة هي:ReasoningEffort.none: لن يُجري النموذج أي استدلال.ReasoningEffort.high: سيعتمد النموذج على نهج الاستدلال. إذا لم يتم تحديد ذلك، فسيتم استخدام جهد الاستدلال الافتراضي.
- kwargs (معلمات إضافية، اختيارية) —
معلمات إضافية تُمرَّر إلى طريقة mistral-common
ChatCompletionRequest.from_openai.
يعيد
Union[str, list[int], list[str], list[list[int]], BatchEncoding]
المحادثة المُرمَّزة حتى الآن، بما في ذلك الرموز الضابطة. هذا المخرَج جاهز للتقديم إلى النموذج، إما مباشرةً أو عبر طرق مثل generate().
يحوّل قائمة من القواميس التي تحتوي على مفاتيح "role" و"content" إلى قائمة من معرّفات الرموز (token ids).
batch_decode
< source >( sequences: typing.Union[list[int], list[list[int]], numpy.ndarray, ForwardRef('torch.Tensor')]skip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → list[str]
المعاملات
- sequences (
Union[list[int], list[list[int]], np.ndarray, torch.Tensor]) — قائمة من معرّفات المدخلات المُرمّزة. يمكن الحصول عليها باستخدام طريقة__call__. - skip_special_tokens (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إزالة الرموز الخاصة أثناء فك الترميز أم لا. - clean_up_tokenization_spaces (
bool, اختياري) — ما إذا كان سيتم تنظيف مسافات الترميز أم لا. إذا كانتNone، فسيتم افتراضself.clean_up_tokenization_spaces. - kwargs (معلمات إضافية بالكلمات المفتاحية، اختيارية) —
غير مدعومة بواسطة
MistralCommonBackend.batch_decode. سيتم رفع خطأ في حال استخدامها.
يعيد
list[str]
قائمة الجمل المُفكَّكة.
تحويل قائمة من قوائم معرّفات الرموز إلى قائمة من النصوص عن طريق استدعاء decode.
يُوفَّر هذا الأسلوب من أجل التوافق مع الإصدارات السابقة. يتعامل أسلوب decode الآن مع المدخلات المجمعة بشكل أصلي،
لذا يمكنك استخدام decode مباشرة بدلاً من batch_decode.
build_inputs_with_special_tokens
< source >( token_ids_0: listtoken_ids_1: None = None ) → list[int]
إنشاء مدخلات النموذج من تسلسل عن طريق إضافة الرموز الخاصة.
تقوم هذه الطريقة ببناء المدخلات ديناميكيًا بناءً على mode الخاص بمجزّئ النص:
"test": seq0 [EOS]"finetuning": [BOS] seq0
convert_added_tokens
< source >( obj: tokenizers.AddedToken | typing.Anysave: bool = Falseadd_type_field: bool = True )
لا ينفّذ MistralCommonBackend الدالة convert_added_tokens عمداً.
إذا كنت ترغب في تطبيق هذا السلوك، فيرجى فتح مشكلة في مستودعات Transformers أو mistral-common للطلب.
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: None = None ) → list[int]
أنشئ قناعًا من الأصفار من معرّفات الرموز مع إضافة الرموز الخاصة.
تم الحفاظ عليه ليتوافق مع تنفيذ Transformers.
decode
< source >( token_ids: typing.Union[int, list[int], list[list[int]], numpy.ndarray, ForwardRef('torch.Tensor')]skip_special_tokens: bool = Falseclean_up_tokenization_spaces: bool | None = None**kwargs ) → Union[str, list[str]]
المعاملات
- token_ids (
Union[int, list[int], list[list[int]], np.ndarray, torch.Tensor]) — تسلسل واحد أو دفعة (قائمة من التسلسلات) من معرّفات المدخلات المُرمّزة. يمكن الحصول عليها باستخدام طريقة__call__. - skip_special_tokens (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إزالة الرموز الخاصة أثناء فك الترميز أم لا. - clean_up_tokenization_spaces (
bool, اختياري) — ما إذا كان سيتم تنظيف مسافات الترميز أم لا. إذا كانتNone، فسيتم افتراضself.clean_up_tokenization_spaces. - kwargs (معلمات إضافية بالكلمات المفتاحية، اختيارية) —
غير مدعومة بواسطة
MistralCommonBackend.decode. سيتم رفع خطأ في حال استخدامها.
يعيد
Union[str, list[str]]
النص المُفكَّك تسلسل واحد، أو قائمة من النصوص المُفكَّكة لدفعة من التسلسلات.
يحوّل تسلسلًا من المعرّفات في نص، باستخدام مُجزّئ الرموز (tokenizer) وقاموس الرموز، مع خيارات لإزالة الرموز الخاصة وتنظيف مسافات تجزئة الرموز.
encode
< source >( text: str | list[int]text_pair: None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Noneverbose: bool = Truereturn_offsets_mapping: typing.Literal[False] = Falsesplit_special_tokens: typing.Literal[False] = False**kwargs ) → list[int], torch.Tensor
المعاملات
- text (
strأوlist[int]) — التسلسل الأول الذي سيتم ترميزه. يمكن أن يكون نصًا أو قائمة من الأعداد الصحيحة (معرفات النص المرمّز). - text_pair (
None، اختياري) — غير مدعوم بواسطةMistralCommonBackend.encode. تم الاحتفاظ به لمطابقة توقيعPreTrainedTokenizerBase.encode. - add_special_tokens (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم إضافة الرموز الخاصة عند ترميز التسلسلات أم لا. سيستخدم هذا الدالة الأساسيةPretrainedTokenizerBase.build_inputs_with_special_tokens، التي تحدد الرموز التي تُضاف تلقائيًا إلى معرفات الإدخال. يكون هذا مفيدًا إذا كنت ترغب في إضافة رموزbosأوeosتلقائيًا. عند تحميل المقسّم (Tokenizer) في وضعfinetuning، فإنه يضيف كلًا منbosوeos. أما في وضع الاختبار (“test”)، فيضيفbosفقط. - padding (
bool,strأو PaddingStrategy, اختياري, الافتراضي هوFalse) — يُفعّل التحكم في الحشو. يقبل القيم التالية:Trueأو'longest': يتم ملء التسلسلات حتى أطول تسلسل في الدفعة (أو لا يتم أي ملء إذا تم تقديم تسلسل واحد فقط).'max_length': يتم ملء النص حتى الطول الأقصى المحدد عبر الحجةmax_lengthأو حتى الطول الأقصى المقبول لإدخال النموذج إذا لم تُقدَّم تلك الحجة.Falseأو'do_not_pad'(الافتراضي): لا يوجد حشو (أي، يمكن إخراج دفعة تحتوي على تسلسلات بطول مختلف).
- truncation (
bool,strأو TruncationStrategy, اختياري, الافتراضي هوFalse) — يُفعّل التحكم في القص. يقبل القيم التالية:Trueأو'longest_first': يُقصّ النص إلى الحد الأقصى للطول المحدد عبر الحجةmax_lengthأو إلى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة.Falseأو'do_not_truncate'(الافتراضي): لا يوجد اقتطاع (أي، يمكن إخراج دفعة بأطوال تسلسلات أكبر من الحد الأقصى المقبول لحجم الإدخال في النموذج).
- max_length (
int, اختياري) — يتحكم في الحد الأقصى للطول الذي ستستخدمه إحدى معاملات القص/الحشو.إذا تُرك غير مُعيَّن أو عُدِّل إلى
None، فسيتم استخدام الطول الأقصى المُعرَّف مسبقًا للنموذج إذا كان أحد معاملات القص/الحشو يتطلب طولًا أقصى. وإذا لم يكن للنموذج طول إدخال أقصى محدد (مثل XLNet)، فسيتم تعطيل القص/الحشو إلى طول أقصى. - stride (
int، اختياري، القيمة الافتراضية 0) — إذا تم تعيينه إلى رقم معmax_length، فستحتوي الرموز الزائدة المُعاد عندreturn_overflowing_tokens=Trueعلى بعض الرموز من نهاية التسلسل المُقتطع المُعاد، لتوفير بعض التداخل بين التسلسلات المُقتطعة والتسلسلات الزائدة. تحدد قيمة هذا الحجة عدد الرموز المتداخلة. - pad_to_multiple_of (
int, اختياري) — إذا تم ضبطه، سيتم توسيط التسلسل إلى مضاعف للقيمة المقدمة. يتطلب تفعيلpadding. هذا مفيد بشكل خاص لتمكين استخدام نوى Tensor على أجهزة NVIDIA التي تتمتع بقابلية حساب>= 7.5(Volta). - padding_side (
str، اختياري) — الجهة التي يجب تطبيق الحشو عليها في النموذج. يجب اختيارها من بين [‘right’، ‘left’]. القيمة الافتراضية تُختار من سمة الفئة التي تحمل الاسم نفسه. - return_tensors (
strأو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات بدلاً من قائمة من الأعداد الصحيحة في Python. القيم المقبولة هي:'pt': إرجاع كائناتtorch.Tensorمن PyTorch.
- **kwargs — غير مدعومة بواسطة
MistralCommonBackend.encode. سيتم رفع خطأ في حال استخدامها.
يعيد
list[int], torch.Tensor
المعرّفات المُرمّزة للنص.
يحوّل نصًا إلى تسلسل من المعرّفات (أعداد صحيحة)، باستخدام مُجزّئ النص (tokenizer) والمفردات (vocabulary).
from_pretrained
< source >( pretrained_model_name_or_path: str | os.PathLike*init_inputsmode: str | ValidationMode = 'test'cache_dir: str | os.PathLike | None = Noneforce_download: bool = Falselocal_files_only: bool = Falsetoken: str | bool | None = Nonerevision: str = 'main'model_max_length: int = 1000000000000000019884624838656padding_side: str = 'left'truncation_side: str = 'right'model_input_names: list[str] | None = Noneclean_up_tokenization_spaces: bool = False**kwargs )
المعاملات
- pretrained_model_name_or_path (
strأوos.PathLike) — يمكن أن يكون:- سلسلة نصية، وهي معرف النموذج لمُقسِّم محدد مسبقًا مستضاف داخل مستودع نموذج على huggingface.co.
- مسار إلى مجلد يحتوي على إعدادات المُجزّئ، على سبيل المثال تلك المحفوظة باستخدام طريقة
MistralCommonBackend.tokenization_mistral_common.save_pretrained، مثل./my_model_directory/.
- mode (
Union[str, ValidationMode], اختياري, الافتراضي هوValidationMode.test) — وضع التحقق من صحةMistralTokenizerالمجزّئ. القيم الممكنة هي:"finetuning"أوValidationMode.finetuning: وضع الضبط الدقيق."test"أوValidationMode.test: وضع الاختبار. يُغيّر طريقة مُجزّئ الكلمات في التحقق من المدخلات وتجهيز الطلب للنموذج.
- cache_dir (
strأوos.PathLike، اختياري) — المسار إلى مجلد يجب تخزين ملفات مفردات المرمّز المسبق التعريف المُحمّلة فيه إذا لم يُستخدم المجلد المؤقت القياسي. - force_download (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إجبار إعادة تنزيل ملفات المفردات وتجاوز النسخ المخزنة مؤقتًا في حال وجودها. - token (
strأو bool، اختياري) — الرمز الذي يُستخدم كتفويض حامل HTTP للملفات البعيدة. إذا كانTrue، فسيتم استخدام الرمز الذي تم إنشاؤه عند تشغيلhf auth login(المخزَّن في~/.huggingface). - local_files_only (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب الاعتماد على الملفات المحلية فقط دون محاولة تنزيل أي ملفات. - revision (
str، اختياري، القيمة الافتراضية"main") — الإصدار المحدد من النموذج الذي سيتم استخدامه. يمكن أن يكون اسم فرع، أو اسم وسم، أو معرف commit، نظرًا لاستخدامنا نظامًا قائمًا على git لتخزين النماذج والمخرجات الأخرى على huggingface.co، لذا يمكن أن يكونrevisionأي معرّف يسمح به git. - max_length (
int, اختياري) — يتحكم في الحد الأقصى للطول الذي ستستخدمه إحدى معاملات القص/الحشو.إذا تُرك غير مُعيَّن أو عُدِّل إلى
None، فسيتم استخدام الطول الأقصى المُعرَّف مسبقًا للنموذج إذا كان أحد معاملات القص/الحشو يتطلب طولًا أقصى. وإذا لم يكن للنموذج طول إدخال أقصى محدد (مثل XLNet)، فسيتم تعطيل القص/الحشو إلى طول أقصى. - padding_side (
str، اختياري، القيمة الافتراضية"left") — الجهة التي يجب تطبيق الحشو عليها في النموذج. يجب اختيارها من بين [‘right’، ‘left’]. تُختار القيمة الافتراضية من سمة الفئة التي تحمل الاسم نفسه. - truncation_side (
str، اختياري، الافتراضي"right") — الجهة التي يجب تطبيق القص عليها في النموذج. يجب اختيارها من بين [‘right’، ‘left’]. - model_input_names (
List[str]، اختياري) — قائمة المدخلات التي يقبلها التمرير الأمامي للنموذج (مثل"token_type_ids"أو"attention_mask"). القيمة الافتراضية تُختار من سمة الفئة التي تحمل الاسم نفسه. - clean_up_tokenization_spaces (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب على النموذج تنظيف المسافات التي أُضيفت عند تقسيم النص المدخل أثناء عملية الترميز. - kwargs (معلمات إضافية بالكلمات المفتاحية، اختيارية) —
غير مدعومة بواسطة
MistralCommonBackend.from_pretrained. سيتم رفع خطأ في حال استخدامها.
أنشئ كائن MistralCommonBackend من مُجزِّئ (tokenizer) مُعرَّف مسبقًا.
لا ينفّذ MistralCommonBackend الدالة get_chat_template عمداً، لأن mistral-common لا يستخدم قوالب المحادثة.
get_special_tokens_mask
< source >( token_ids_0: listtoken_ids_1: None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]
المعاملات
- token_ids_0 (
list[int]) — قائمة معرّفات التسلسل. - token_ids_1 (
None، اختياري) — None، تم الاحتفاظ بها لتطابق تنفيذ Transformers. - already_has_special_tokens (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كانت قائمة الرموز (tokens) منسّقة مسبقًا برموز خاصة للنموذج أم لا.
يعيد
قائمة من الأعداد الصحيحة في المدى [0, 1]
1 لرمز خاص، 0 لرمز التسلسل.
يسترجع معرّفات التسلسلات من قائمة الرموز التي لم تُضف إليها رموز خاصة. يُستدعى هذا الأسلوب عند إضافة الرموز الخاصة باستخدام أساليب prepare_for_model أو encode_plus في المُرمِّز.
يعيد المفردات على شكل قاموس يربط كل رمز بمؤشره.
هذا تحويل يفقد بعض البيانات. قد يكون هناك عدة معرّفات رموز (token ids) تُفكّك إلى نفس النص بسبب تحويل تسلسلات بايت UTF-8 الجزئية إلى �.
num_special_tokens_to_add
< source >( pair: typing.Literal[False] = False ) → int
يعيد عدد الرموز المضافة عند ترميز تسلسل مع الرموز الخاصة.
يقوم هذا بتشفير مدخل وهمي والتحقق من عدد الرموز المضافة، وبالتالي فهو غير فعّال. لا تضع هذا داخل حلقة التدريب الخاصة بك.
prepare_for_model
< source >( ids: listpair_ids: None = Noneadd_special_tokens: bool = Truepadding: bool | str | transformers.utils.generic.PaddingStrategy = Falsetruncation: bool | str | transformers.tokenization_utils_base.TruncationStrategy | None = Nonemax_length: int | None = Nonestride: int = 0pad_to_multiple_of: int | None = Nonepadding_side: str | None = Nonereturn_tensors: str | transformers.utils.generic.TensorType | None = Nonereturn_token_type_ids: bool | None = Nonereturn_attention_mask: bool | None = Nonereturn_overflowing_tokens: bool = Falsereturn_special_tokens_mask: bool = Falsereturn_length: bool = Falseverbose: bool = Trueprepend_batch_axis: bool = Falsereturn_offsets_mapping: typing.Literal[False] = Falsesplit_special_tokens: typing.Literal[False] = False**kwargs ) → BatchEncoding
المعاملات
- ids (
list[int]) — معرّفات المدخلات المُرمّزة للتسلسل الأول. - pair_ids (
None، اختياري) — غير مدعوم بواسطةMistralCommonBackend. تم الاحتفاظ به لمطابقة واجهةPreTrainedTokenizerBase. - add_special_tokens (
bool، اختياري، القيمة الافتراضيةTrue) — ما إذا كان سيتم إضافة الرموز الخاصة عند ترميز التسلسلات أم لا. سيستخدم هذا الدالة الأساسيةPretrainedTokenizerBase.build_inputs_with_special_tokens، التي تحدد الرموز التي تُضاف تلقائيًا إلى معرفات الإدخال. يكون هذا مفيدًا إذا كنت ترغب في إضافة رموزbosأوeosتلقائيًا. عند تحميل المقسّم (Tokenizer) في وضعfinetuning، فإنه يضيف كلًا منbosوeos. أما في وضع الاختبار (“test”)، فيضيفbosفقط. - padding (
bool,strأو PaddingStrategy, اختياري, الافتراضي هوFalse) — يُفعّل التحكم في الحشو. يقبل القيم التالية:Trueأو'longest': يتم ملء التسلسلات حتى أطول تسلسل في الدفعة (أو لا يتم أي ملء إذا تم تقديم تسلسل واحد فقط).'max_length': يتم ملء النص حتى الطول الأقصى المحدد عبر الحجةmax_lengthأو حتى الطول الأقصى المقبول لإدخال النموذج إذا لم تُقدَّم تلك الحجة.Falseأو'do_not_pad'(الافتراضي): لا يوجد حشو (أي، يمكن إخراج دفعة تحتوي على تسلسلات بطول مختلف).
- truncation (
bool,strأو TruncationStrategy, اختياري, الافتراضي هوFalse) — يُفعّل التحكم في القص. يقبل القيم التالية:Trueأو'longest_first': يُقصّ النص إلى الحد الأقصى للطول المحدد عبر الحجةmax_lengthأو إلى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة.Falseأو'do_not_truncate'(الافتراضي): لا يوجد اقتطاع (أي، يمكن إخراج دفعة بأطوال تسلسلات أكبر من الحد الأقصى المقبول لحجم الإدخال في النموذج).
- max_length (
int, اختياري) — يتحكم في الحد الأقصى للطول الذي ستستخدمه إحدى معاملات القص/الحشو.إذا تُرك غير مُعيَّن أو عُدِّل إلى
None، فسيتم استخدام الطول الأقصى المُعرَّف مسبقًا للنموذج إذا كان أحد معاملات القص/الحشو يتطلب طولًا أقصى. وإذا لم يكن للنموذج طول إدخال أقصى محدد (مثل XLNet)، فسيتم تعطيل القص/الحشو إلى طول أقصى. - stride (
int، اختياري، القيمة الافتراضية 0) — إذا تم تعيينه إلى رقم معmax_length، فستحتوي الرموز الزائدة المُعاد عندreturn_overflowing_tokens=Trueعلى بعض الرموز من نهاية التسلسل المُقتطع المُعاد، لتوفير بعض التداخل بين التسلسلات المُقتطعة والتسلسلات الزائدة. تحدد قيمة هذا الحجة عدد الرموز المتداخلة. - pad_to_multiple_of (
int, اختياري) — إذا تم ضبطه، سيتم توسيط التسلسل إلى مضاعف للقيمة المقدمة. يتطلب تفعيلpadding. هذا مفيد بشكل خاص لتمكين استخدام نوى Tensor على أجهزة NVIDIA التي تتمتع بقابلية حساب>= 7.5(Volta). - padding_side (
str، اختياري) — الجهة التي يجب تطبيق الحشو عليها في النموذج. يجب اختيارها من بين [‘right’، ‘left’]. القيمة الافتراضية تُختار من سمة الفئة التي تحمل الاسم نفسه. - return_tensors (
strأو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات بدلاً من قائمة من الأعداد الصحيحة في Python. القيم المقبولة هي:'pt': إرجاع كائناتtorch.Tensorمن PyTorch.
- return_token_type_ids (
bool, اختياري) — ما إذا كان يجب إرجاع معرّفات أنواع الرموز. بالنسبة إلىMistralCommonBackendتُرجع قائمة من الأصفار بطول التسلسل، حيث لا يُدعم تسلسل واحد فقط. - return_attention_mask (
bool, اختياري) — ما إذا كان يجب إرجاع قناع الانتباه. إذا تُركت القيمة الافتراضية، فسيتم إرجاع قناع الانتباه وفقًا للقيمة الافتراضية الخاصة بمجزّئ الرموز المحدد، كما هو معرّف بواسطةreturn_outputsالخاصية. - return_overflowing_tokens (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان سيتم إرجاع تسلسلات الرموز الزائدة أم لا. إذا تم تقديم زوج من تسلسلات معرفات الإدخال (أو دفعة من الأزواج) معtruncation_strategy = longest_firstأوTrue، فسيتم رفع خطأ بدلاً من إرجاع الرموز الزائدة. - return_special_tokens_mask (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إرجاع معلومات قناع الرموز الخاصة أم لا. - return_length (
bool، اختياري، القيمة الافتراضيةFalse) — ما إذا كان يجب إرجاع أطوال المدخلات المُرمّزة أم لا. - verbose (
bool، اختياري، الافتراضيTrue) — ما إذا كان يجب طباعة مزيد من المعلومات والتحذيرات أم لا. - return_offsets_mapping (
Literal[False]، اختياري) — False، ويُحافظ عليه ليتطابق مع توقيع Transformers. - split_special_tokens (
Literal[False]، اختياري) — False، ويُحافظ عليه لمطابقة توقيع Transformers. - **kwargs — تُمرَّر إلى طريقة
self.tokenize()
يعيد
BatchEncoding يحتوي على الحقول التالية:
-
input_ids — قائمة معرّفات الرموز التي تُغذّى بها النموذج.
-
attention_mask — قائمة بالفهارس تحدد الرموز التي ينبغي للنموذج الانتباه إليها (عندما يكون
return_attention_mask=Trueأو إذا كان “attention_mask” ضمنself.model_input_names). -
overflowing_tokens — قائمة تسلسلات الرموز المتجاوزة (عند تحديد
max_lengthوreturn_overflowing_tokens=True). -
num_truncated_tokens — عدد الرموز المقصوصة (عند تحديد
max_lengthوreturn_overflowing_tokens=True). -
special_tokens_mask — قائمة من الأصفار والواحدات، حيث تشير الواحدة إلى الرموز الخاصة المضافة وتصفّر إلى رموز التسلسل العادية (عندما يكون
add_special_tokens=Trueوreturn_special_tokens_mask=True). -
length — طول المدخلات (عندما يكون
return_length=True)
يُعدّ تسلسلًا من معرّفات الإدخال (input id) بحيث يمكن استخدامه من قبل النموذج. فهو يضيف الرموز الخاصة، ويقصّ التسلسلات إذا تجاوزت الحد الأقصى مع مراعاة الرموز الخاصة، ويدير نافذة متحركة (بخطوة يحددها المستخدم) للرموز الزائدة.
save_chat_templates
< source >( save_directory: str | os.PathLiketokenizer_config: dictfilename_prefix: str | Nonesave_jinja_files: bool )
لا ينفّذ MistralCommonBackend الدالة save_chat_templates عمداً، لأن mistral-common لا يستخدم قوالب المحادثة.
save_pretrained
< source >( save_directory: str | os.PathLike | pathlib.Pathpush_to_hub: bool = Falsetoken: str | bool | None = Nonecommit_message: str | None = Nonerepo_id: str | None = Noneprivate: bool | None = Nonesave_format: str | None = None**kwargs ) → tuple[str, ...]
المعاملات
- save_directory (
str | os.PathLike | Path) — المجلد الذي سيتم حفظ مُجزّئ النص فيه. - push_to_hub (
bool، اختياري، القيمة الافتراضيةFalse) — دفع إلى HF Hub بعد الحفظ. - token (
strأوbool، اختياري) — رمز المصادقة الخاص بـ Hub. - commit_message (
str, اختياري) — رسالة الالتزام عند الدفع. - repo_id (
str، اختياري) — معرّف المستودع في Hub. - private (
bool، اختياري) — ما إذا كان المستودع خاصًا. - save_format (
str، اختياري) —"mistral"لحفظ الصيغة الأصلية لـ tekken، و"hf"لصيغة HuggingFace. يُحافظ None على الصيغة الأصلية. - kwargs (
dict، اختياري) — غير مدعوم — سيؤدي إلى رفع خطأ.
يعيد
tuple[str, ...]
مسارات الملفات المحفوظة.
احفظ حالة المرمّز الكاملة.
عندما يكون save_format هو "mistral" (أو None لمُقسِّم tekken)،
يتم كتابة ملف المُقسِّم الأصلي (مثل tekken.json) في save_directory. وعندما يكون save_format هو "hf"، يتم إنتاج ملفات بصيغة HF بدلاً من ذلك
(tokenizer.json + tokenizer_config.json).
لا ينفّذ MistralCommonBackend الدالة save_vocabulary عمداً.
وذلك لأن mistral-common مُهيأ بواسطة ملف مُجزّئ واحد. إذا كنت ترغب في حفظ المفردات، فيُرجى النظر في استخدام طريقة save_pretrained بدلاً من ذلك.
tokenize
< source >( text: strreturn_offsets_mapping: typing.Literal[False] = Falsesplit_special_tokens: typing.Literal[False] = False**kwargs ) → list[str]
المعاملات
- text (
str) — التسلسل المراد ترميزه. - return_offsets_mapping (
Literal[False]، اختياري) — False، ويُحافظ عليه ليتطابق مع توقيع Transformers. - split_special_tokens (
Literal[False]، اختياري) — False، ويُحافظ عليه لمطابقة توقيع Transformers. - **kwargs (معلمات إضافية) —
غير مدعومة بواسطة
MistralCommonBackend.tokenize. سيتم رفع خطأ في حال استخدامها.
يعيد
list[str]
قائمة الرموز.
يحوّل سلسلة نصية إلى تسلسل من الرموز، باستخدام مُجزّئ الرموز.
Split إلى كلمات للمفردات القائمة على الكلمات، أو إلى مقاطع فرعية للكلمات للمفردات القائمة على المقاطع الفرعية للكلمات.
truncate_sequences
< source >( ids: listpair_ids: None = Nonenum_tokens_to_remove: int = 0truncation_strategy: str | transformers.tokenization_utils_base.TruncationStrategy = 'longest_first'stride: int = 0**kwargs ) → Tuple[list[int], None, list[int]]
المعاملات
- ids (
list[int]) — معرّفات المدخلات المُرمّزة. يمكن الحصول عليها من نص عن طريق ربط طريقتيtokenizeوconvert_tokens_to_ids. - pair_ids (
None، اختياري) — غير مدعوم بواسطةMistralCommonBackend. تم الاحتفاظ به لمطابقة توقيعPreTrainedTokenizerBase.truncate_sequences. - num_tokens_to_remove (
int، اختياري، القيمة الافتراضية 0) — عدد الرموز التي يجب إزالتها باستخدام استراتيجية الاقتطاع. - truncation_strategy (
strأو TruncationStrategy, اختياري, الافتراضي هو'longest_first') — الاستراتيجية المتبعة للقص. يمكن أن تكون:'longest_first': يُقصّ النص إلى الحد الأقصى للطول المحدد عبر الحجةmax_lengthأو إلى الحد الأقصى المقبول لطول الإدخال للنموذج إذا لم تُقدَّم تلك الحجة.'do_not_truncate'(الافتراضي): لا يوجد اقتطاع (أي، يمكن إخراج دفعة بأطوال تسلسلات أكبر من الحد الأقصى المقبول لحجم الإدخال في النموذج).
- stride (
int، اختياري، القيمة الافتراضية 0) — إذا تم تعيينه إلى رقم موجب، فإن الرموز المتجاوزة المُعادة ستحتوي على بعض الرموز من التسلسل الرئيسي المُعاد. تحدد قيمة هذا الحجة عدد الرموز الإضافية.
يعيد
Tuple[list[int], None, list[int]]
المعرّفات المقطوعة ids وقائمة الرموز المتجاوزة. يُعاد None لمطابقة توقيع Transformers.
يقوم بقصّ زوج تسلسلات في مكانه وفقاً للاستراتيجية.
MistralModel
فئة transformers.MistralModel
< source >( config: MistralConfig )
المعاملات
- config (MistralConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Mistral الأساسي الذي يُخرج حالات مخفية خام دون أي رأس محدد في الأعلى.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPast or tuple(torch.Tensor)
المعاملات
- input_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- position_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً منpast_key_valuesالذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندماuse_cache=Trueأوconfig.use_cache=True.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - inputs_embeds (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج. - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، تُعاد حالات المفاتيح والقيمpast_key_valuesويمكن استخدامها لتسريع فك الترميز (انظرpast_key_values).
يعيد
BaseModelOutputWithPast أو tuple(torch.Tensor)
BaseModelOutputWithPast أو مجموعة مرتبة من
torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة اعتماداً على الإعداد (MistralConfig) والمدخلات.
تتجاوز طريقة MistralModel الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
last_hidden_state (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)) — تسلسل حالات مخفية عند مخرج الطبقة الأخيرة من النموذج.إذا تم استخدام
past_key_values، فإن الحالة المخفية الأخيرة فقط من التسلسلات ذات الشكل(batch_size, 1, hidden_size)هي التي تُخرج.past_key_values (
Cache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عند تعيينconfig.use_cache=True) — إنه كائن من نوع Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي، وفي كتل الانتباه المتقاطع اختياريًا إذا كان
config.is_encoder_decoder=True) يمكن استخدامها (انظر مدخلpast_key_values) لتسريع فك الترميز التسلسلي.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
MistralForCausalLM
فئة transformers.MistralForCausalLM
< source >( config: MistralConfig )
المعاملات
- config (MistralConfig) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعداد إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.
نموذج Mistral لنمذجة اللغة السببية.
يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).
هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Nonepast_key_values: transformers.cache_utils.Cache | None = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → CausalLMOutputWithPast or tuple(torch.Tensor)
المعاملات
- input_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- position_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - past_key_values (
~cache_utils.Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً منpast_key_valuesالذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندماuse_cache=Trueأوconfig.use_cache=True.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - inputs_embeds (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج. - labels (
torch.LongTensorمن الشكل(batch_size, sequence_length)، اختياري) — التسميات لحساب خسارة نمذجة اللغة المقنّعة. يجب أن تكون الفهارس ضمن[0, ..., config.vocab_size]أو -100 (انظرinput_idsdocstring). يتم تجاهل الرموز التي فهارسها مضبوطة على-100(مقنّعة)، ولا تُحسب الخسارة إلا للرموز التي تسمياتها ضمن[0, ..., config.vocab_size]. - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، تُعاد حالات المفاتيح والقيمpast_key_valuesويمكن استخدامها لتسريع فك الترميز (انظرpast_key_values). - logits_to_keep (
Union[int, torch.Tensor]، اختياري، القيمة الافتراضية0) — إذا كانint، يتم حساب logits لآخرlogits_to_keepرموز. إذا كانت القيمة0، يتم حساب logits لجميعinput_ids(حالة خاصة). لا يُحتاج إلى logits إلا للرمز الأخير في عملية التوليد، ويمكن أن يوفر حسابها لذلك الرمز وحده ذاكرة كبيرة، وهو أمر مهم بشكل ملحوظ للتسلسلات الطويلة أو حجم المفردات الكبير. إذا كانtorch.Tensor، يجب أن يكون بعدًا واحدًا (1D) ويتوافق مع الفهارس التي يجب الاحتفاظ بها في بُعد طول التسلسل. يكون هذا مفيدًا عند استخدام تنسيق المصفوفات المعبأة (packed tensor format) (بعد واحد لكل من الدفعة وطول التسلسل).
يعيد
CausalLMOutputWithPast أو tuple(torch.Tensor)
CausalLMOutputWithPast أو مجموعة (tuple) من
torch.Tensor (في حال تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتضمن عناصر مختلفة
تعتمد على الإعداد (MistralConfig) والمدخلات.
تتجاوز طريقة MistralForCausalLM الخاصة بالتقديم (forward) الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
loss (
torch.Tensorof shape(1,), اختياري, يُعاد عند توفيرlabels) — خسارة نمذجة اللغة (لتوقع الرمز التالي).logits (
torch.Tensorمن الشكل(batch_size, sequence_length, config.vocab_size)) — درجات التنبؤ لرأس نمذجة اللغة (درجات لكل رمز في المفردات قبل SoftMax).past_key_values (
Cache، اختياري، يُعاد عند تمريرuse_cache=Trueأو عند تعيينconfig.use_cache=True) — إنه كائن من نوع Cache. لمزيد من التفاصيل، راجع دليل ذاكرة kv.تحتوي على حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي) يمكن استخدامها (انظر مدخل
past_key_values) لتسريع فك الترميز التسلسلي.hidden_states (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_hidden_states=Trueأو عند تعيينconfig.output_hidden_states=True) — مجموعة منtorch.Tensor(واحدة لإخراج الطبقات المضمنة، إذا كان النموذج يحتوي على طبقة تضمين، + واحدة لإخراج كل طبقة) من الشكل(batch_size, sequence_length, hidden_size).حالات النموذج المخفية عند مخرج كل طبقة بالإضافة إلى مخرجات التضمين الأولي الاختيارية.
attentions (
tuple(torch.Tensor)، اختياري، يُعاد عند تمريرoutput_attentions=Trueأو عند تعيينconfig.output_attentions=True) — مجموعة منtorch.Tensor(واحدة لكل طبقة) بأبعاد(batch_size, num_heads, sequence_length, sequence_length).أوزان الانتباه بعد تطبيق دالة softmax على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.
مثال:
>>> from transformers import AutoTokenizer, MistralForCausalLM
>>> model = MistralForCausalLM.from_pretrained("meta-mistral/Mistral-2-7b-hf")
>>> tokenizer = AutoTokenizer.from_pretrained("meta-mistral/Mistral-2-7b-hf")
>>> prompt = "Hey, are you conscious? Can you talk to me?"
>>> inputs = tokenizer(prompt, return_tensors="pt")
>>> # Generate
>>> generate_ids = model.generate(inputs.input_ids, max_length=30)
>>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0]
"Hey, are you conscious? Can you talk to me?\nI'm not conscious, but I can talk to you."MistralForSequenceClassification
forward
< source >( input_ids: torch.LongTensor | None = Noneattention_mask: torch.Tensor | None = Noneposition_ids: torch.LongTensor | None = Nonepast_key_values: Cache | None = Noneinputs_embeds: torch.Tensor | None = Nonelabels: torch.LongTensor | None = Noneuse_cache: bool | None = None**kwargs: Unpack[TransformersKwargs] ) → SequenceClassifierOutputWithPast
المعاملات
- input_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- position_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - past_key_values (
Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً منpast_key_valuesالذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندماuse_cache=Trueأوconfig.use_cache=True.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - 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يتم حساب خسارة التصنيف (الإنتروبيا المتقاطعة). - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، تُعاد حالات المفاتيح والقيمpast_key_valuesويمكن استخدامها لتسريع فك الترميز (انظرpast_key_values).
يعيد
SequenceClassifierOutputWithPast
تُعيد طريقة GenericForSequenceClassification الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
MistralForTokenClassification
forward
< source >( input_ids: torch.LongTensor | None = Noneattention_mask: torch.Tensor | None = Noneposition_ids: torch.LongTensor | None = Nonepast_key_values: Cache | None = Noneinputs_embeds: torch.Tensor | None = Nonelabels: torch.LongTensor | None = Noneuse_cache: bool | None = None**kwargs: Unpack[TransformersKwargs] ) → TokenClassifierOutput
المعاملات
- input_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- position_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - past_key_values (
Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً منpast_key_valuesالذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندماuse_cache=Trueأوconfig.use_cache=True.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - 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]. - use_cache (
bool، اختياري) — إذا تم تعيينه إلىTrue، تُعاد حالات المفاتيح والقيمpast_key_valuesويمكن استخدامها لتسريع فك الترميز (انظرpast_key_values).
يعيد
TokenClassifierOutput
تُعيد طريقة GenericForTokenClassification الخاصة بالتقديم (forward) تعريف الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.
MistralForQuestionAnswering
forward
< source >( input_ids: torch.LongTensor | None = Noneattention_mask: torch.Tensor | None = Noneposition_ids: torch.LongTensor | None = Nonepast_key_values: Cache | None = Noneinputs_embeds: torch.Tensor | None = Nonestart_positions: torch.LongTensor | None = Noneend_positions: torch.LongTensor | None = None**kwargs: Unpack[TransformersKwargs] ) → QuestionAnsweringModelOutput
المعاملات
- input_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات رموز تسلسل الإدخال في قاموس الكلمات. سيتم تجاهل الحشو افتراضيًا.يمكن الحصول على الفهارس باستخدام AutoTokenizer. راجع PreTrainedTokenizer.encode() و PreTrainedTokenizer.call() للتفاصيل.
- attention_mask (
torch.Tensorبشكل(batch_size, sequence_length), اختياري) — قناع لتجنب تنفيذ الانتباه على فهارس رموز الحشو. القيم المختارة للقناع هي[0, 1]:- 1 للرموز التي لم تُقنَّع،
- 0 للرموز التي تم إخفاؤها.
- position_ids (
torch.LongTensorبشكل(batch_size, sequence_length), اختياري) — مؤشرات مواضع رموز كل تسلسل إدخال في تضمينات المواضع. يتم اختيارها ضمن النطاق[0, config.n_positions - 1]. - past_key_values (
Cache, اختياري) — حالات مخفية محسوبة مسبقًا (المفاتيح والقيم في كتل الانتباه الذاتي وكتل الانتباه المتقاطع) يمكن استخدامها لتسريع فك الترميز التسلسلي. يتكون هذا عادةً منpast_key_valuesالذي يعيده النموذج في مرحلة سابقة من فك الترميز، عندماuse_cache=Trueأوconfig.use_cache=True.يُسمح فقط بمرجع Cache كمدخل، راجع دليل ذاكرة kv لدينا. إذا لم يتم تمرير
past_key_values، فسيتم تهيئة DynamicCache افتراضياً.سيُخرج النموذج نفس صيغة الكاش التي تُمرَّر كمدخل.
عند استخدام
past_key_values، يُتوقَّع من المستخدم إدخالinput_idsغير المعالجة فقط (تلك التي لم تُقدَّم حالات مفاتيحها وقيمها السابقة إلى هذا النموذج) بأبعاد(batch_size, unprocessed_length)بدلاً من جميعinput_idsبأبعاد(batch_size, sequence_length). - inputs_embeds (
torch.Tensorمن الشكل(batch_size, sequence_length, hidden_size)، اختياري) — اختياريًا، بدلاً من تمريرinput_ids، يمكنك اختيار تمرير تمثيل مضمّن مباشرة. وهذا مفيد إذا كنت ترغب في الحصول على مزيد من التحكم في كيفية تحويل فهارسinput_idsإلى المتجهات المرتبطة بها، مقارنةً بمصفوفة البحث المضمّنة الداخلية للنموذج. - start_positions (
torch.LongTensorof shape(batch_size,), اختياري) — التسميات لموضع (فهرس) بداية المقطع المُسمّى لحساب خسارة تصنيف الرموز. تُثبَّت المواضع على طول التسلسل (sequence_length). لا تُؤخذ المواضع خارج التسلسل في الاعتبار عند حساب الخسارة. - end_positions (
torch.LongTensorمن الشكل(batch_size,)، اختياري) — تسميات لموضع (فهرس) نهاية المقطع المُسمّى لحساب خسارة تصنيف الرموز. تُثبَّت المواضع على طول التسلسل (sequence_length). لا تُؤخذ المواضع خارج التسلسل في الاعتبار عند حساب الخسارة.
يعيد
QuestionAnsweringModelOutput
تتجاوز طريقة GenericForQuestionAnswering الأمامية الطريقة الخاصة __call__.
على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن
Moduleبدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.