Transformers documentation

FalconH1

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

and get access to the augmented documentation experience

to get started

تمت مساهمة هذا النموذج في Hugging Face Transformers في 2025-05-21.

FalconH1

نظرة عامة

طُوِّر نموذج FalconH1 من قبل فريق ما قبل التدريب في TII. ومن المقرر نشر ورقة بحثية شاملة تغطي البنية المعمارية، وديناميكيات ما قبل التدريب، والنتائج التجريبية، والاستنتاجات. يمكنك قراءة المزيد عن هذه السلسلة في هذا الموقع.

المساهمون

تمت مساهمة هذا النموذج من قِبل DhiyaEddine وybelkada وJingweiZuo وIlyasChahed وMaksimVelikanov. يمكن العثور على الكود الأصلي هنا.

ملاحظات

  • استخدم التعبئة اليسرى (left padding) للتوليد المجمّع. راجع جانب التعبئة.

FalconH1Config

النموذجالعمقالأبعادرؤوس الانتباهKVرؤوس Mambad_headd_stateطول السياق
H1 0.5B361024822464 / 641284K، 16K-SFT
H1 1.5B2420488248128 / 64256128K
H1 1.5B-d6612806224128 / 64256128K
H1 3B32256010232128 / 128256128K
H1 7B44307212224128 / 128256256K
H1 34B72512020432128 / 128256256K

فئة transformers.FalconH1Config

< >

( 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 = 128000tie_word_embeddings: bool = Falsehidden_size: int = 4096intermediate_size: int = 14336num_hidden_layers: int = 32num_attention_heads: int = 32num_key_value_heads: int | None = 8hidden_act: str = 'silu'initializer_range: float = 0.02rms_norm_eps: float = 1e-05use_cache: bool | None = Truenum_logits_to_keep: int | None = 1pad_token_id: int | None = 0bos_token_id: int | None = 1eos_token_id: int | list[int] | None = 2max_position_embeddings: int = 8192attention_dropout: float | int | None = 0.0mamba_d_ssm: int | None = 1024mamba_n_heads: int | None = 128mamba_d_head: str | int | None = 'auto'mamba_n_groups: int | None = 1mamba_d_state: int | None = 256mamba_d_conv: int | None = 4mamba_expand: int | None = 2mamba_chunk_size: int | None = 256mamba_conv_bias: bool | None = Truemamba_proj_bias: bool | None = Falsemamba_norm_before_gate: bool | None = Truemamba_rms_norm: bool | None = Falsetime_step_limit: list[float, float] | tuple[float, float] | None = (0.0, inf)projectors_bias: bool | None = Falserope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Nonelm_head_multiplier: float | None = 1.0embedding_multiplier: float | None = 1.0mlp_multipliers: list[float] | None = Nonekey_multiplier: float | None = 1.0attention_out_multiplier: float | None = 1.0attention_in_multiplier: float | None = 1.0ssm_multipliers: list[float] | None = Nonessm_in_multiplier: float | None = 1.0ssm_out_multiplier: float | None = 1.0attention_bias: bool = Falsemlp_bias: bool = False )

المعاملات

  • vocab_size (int، اختياري، القيمة الافتراضية 128000) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطة input_ids.
  • tie_word_embeddings (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم ربط ترميزات الأوزان وفقاً لخريطة tied_weights_keys الخاصة بالنموذج.
  • 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.
  • hidden_act (str، اختياري، القيمة الافتراضية silu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وغيرها.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • rms_norm_eps (float، اختياري، القيمة الافتراضية 1e-05) — قيمة الإيبسلون المستخدمة في طبقات تطبيع rms.
  • use_cache (bool، اختياري، القيمة الافتراضية True) — ما إذا كان يجب على النموذج إرجاع قيم المفاتيح/القيم الأخيرة للانتباه (لا تستخدمها جميع النماذج). لا ينطبق إلا إذا كان config.is_decoder=True أو إذا كان النموذج نموذجًا توليديًا يعتمد على المُفكِّك فقط.
  • num_logits_to_keep (int أو None، اختياري، القيمة الافتراضية 1) — عدد قيم اللوجيت (logits) الخاصة بالموجّه (prompt) التي يجب حسابها أثناء التوليد. إذا كانت None، فسيتم حساب جميع قيم اللوجيت. وإذا كانت قيمة عددية صحيحة، فسيتم حساب آخر num_logits_to_keep قيم لوجيت فقط. القيمة الافتراضية هي 1 لأن قيم اللوجيت الخاصة بآخر رمز في الموجّه هي ما يلزم للتوليد فقط. في حال التسلسلات الطويلة، قد تستهلك قيم اللوجيت الخاصة بالتسلسل بأكمله ذاكرة كبيرة، لذا فإن ضبط num_logits_to_keep=1 سيقلل من استهلاك الذاكرة بشكل كبير.
  • pad_token_id (int، اختياري، القيمة الافتراضية 0) — معرّف الرمز المستخدم للتعبئة في المفردات.
  • bos_token_id (int، اختياري، القيمة الافتراضية 1) — معرّف الرمز المستخدم لبدء البث في المفردات.
  • eos_token_id (Union[int, list[int]]، اختياري، القيمة الافتراضية 2) — معرّف الرمز المستخدم لنهاية التدفق في المفردات.
  • max_position_embeddings (int، اختياري، القيمة الافتراضية 8192) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق.
  • attention_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه.
  • mamba_d_ssm (int، اختياري، القيمة الافتراضية 1024) — حجم الحالة الداخلية لنموذج فضاء الحالة (SSM) في طبقات Mamba الخاصة بـ FalconH1.
  • mamba_n_heads (int، اختياري، القيمة الافتراضية 128) — عدد رؤوس mamba المستخدمة في التنفيذ v2.
  • mamba_d_head (Union[str, int]، اختياري، القيمة الافتراضية auto) — حجم بُعد التضمين للرؤوس
  • mamba_n_groups (int، اختياري، القيمة الافتراضية 1) — عدد مجموعات mamba المستخدمة في التنفيذ الإصدار الثاني (v2).
  • mamba_d_state (int، اختياري، القيمة الافتراضية 256) — حجم حالة SSM (بعد الحالة الكامنة) في طبقات Mamba.
  • mamba_d_conv (int، اختياري، القيمة الافتراضية 4) — حجم نواة التمرير في mamba
  • mamba_expand (int، اختياري، القيمة الافتراضية 2) — معامل التوسيع (بالنسبة إلى hidden_size) المستخدم لتحديد حجم mamba الوسيط
  • mamba_chunk_size (int، اختياري، القيمة الافتراضية 256) — الحجم الذي تُقسَّم إليه التسلسلات عند تنفيذ التمهيد/التدريب
  • mamba_conv_bias (bool، اختياري، القيمة الافتراضية True) — علامة تُظهر ما إذا كان سيتم استخدام انحياز (bias) في طبقة الالتفاف (convolution) داخل كتلة mamba mixer أم لا.
  • mamba_proj_bias (bool، اختياري، القيمة الافتراضية False) — علامة تُظهر ما إذا كان سيتم استخدام الانحياز في الإسقاطات المدخلة والمخرجة ([“in_proj”, “out_proj”]) في كتلة mamba mixer أم لا
  • mamba_norm_before_gate (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم تطبيق التطبيع قبل آلية البوابة في مِزج Mamba.
  • mamba_rms_norm (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب استخدام تطبيع RMS في طبقات Mamba (بدلاً من LayerNorm القياسي).
  • time_step_limit (Union[list[float, float], tuple[float, float]]، اختياري، القيمة الافتراضية (0.0, inf)) — النطاق المقبول لقيم خطوة الزمن للتحكم بها.
  • projectors_bias (bool، اختياري، القيمة الافتراضية False) — علامة تُظهر ما إذا كان سيتم استخدام الانحياز في الإسقاطات المدخلة والمخرجة ([“in_proj”, “out_proj”]) ضمن كتلة الانتباه
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], اختياري) — قائمة تحتوي على معاملات التهيئة الخاصة بتضمينات RoPE. يجب أن تحتوي القائمة على قيمة لـ rope_theta، ومعاملات اختيارية تُستخدم للتوسيع في حال رغبتَ في استخدام RoPE مع max_position_embeddings أطول.
  • lm_head_multiplier (float, اختياري، القيمة الافتراضية 1.0) — المضاعف الخاص برأس النموذج اللغوي. يُستخدم هذا المضاعف لتغيير مقياس مخرجات رأس النموذج اللغوي.
  • embedding_multiplier (float, اختياري، القيمة الافتراضية 1.0) — المضاعف لطبقة التضمين. يُستخدم هذا المعامل لتغيير مقياس مخرجات طبقة التضمين.
  • mlp_multipliers (list[float], اختياري) — المضاعفات الخاصة بطبقات MLP. يُستخدم هذا لتغيير مقياس مخرجات طبقات MLP. القيمة الأولى هي مضاعف طبقة gate، والقيمة الثانية هي مضاعف طبقة down_proj.
  • key_multiplier (float, اختياري) — المضاعف لطبقة المفتاح. يُستخدم هذا المضاعف لتغيير مقياس مخرجات طبقة المفتاح.
  • attention_out_multiplier (float, اختياري) — المضاعف لطبقة مخرجات الانتباه. يُستخدم هذا المضاعف لتغيير مقياس مخرجات طبقة الانتباه
  • attention_in_multiplier (float, اختياري) — المضاعف لطبقة مدخلات الانتباه. يُستخدم هذا المضاعف لتغيير مقياس مخرجات طبقة مدخلات الانتباه.
  • ssm_multipliers (list[float], اختياري) — المضاعفات لطبقات SSM. يُستخدم هذا لتغيير مقياس مخرجات طبقات SSM.
  • ssm_in_multiplier (float, اختياري) — المضاعف لطبقة إدخال SSM. يُستخدم هذا المضاعف لتغيير مقياس مخرجات طبقة إدخال SSM.
  • ssm_out_multiplier (float, اختياري) — المضاعف لطبقة مخرج SSM. يُستخدم هذا المضاعف لتغيير مقياس مخرج طبقة SSM.
  • attention_bias (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام انحياز في طبقات الإسقاط للاستعلام والمفتاح والقيمة والمخرجات أثناء الانتباه الذاتي.
  • mlp_bias (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام انحياز في طبقات up_proj وdown_proj وgate_proj ضمن طبقات MLP.

هذه فئة الإعدادات المخزنة لإعدادات نموذج FalconH1Model. تُستخدم لاستحداث نموذج Falcon H1 وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ tiiuae/Falcon-H1-1.5B-Deep-Instruct

ترث كائنات التهيئة من PreTrainedConfig ويمكن استخدامها للتحكم في مخرجات النموذج. اقرأ التوثيق الخاص بـ PreTrainedConfig لمزيد من المعلومات.

FalconH1ForCausalLM

from transformers import AutoModelForCausalLM, AutoTokenizer


model = AutoModelForCausalLM.from_pretrained("tiiuae/Falcon-H1-7B-Instruct", device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("tiiuae/Falcon-H1-7B-Instruct")

message = ["Mamba is a snake with following properties  "]
inputs = tokenizer(message, return_tensors='pt', return_token_type_ids=False).to(model.device)
response = model.generate(**inputs, max_new_tokens=64)
print(tokenizer.batch_decode(response, skip_special_tokens=True)[0])

فئة transformers.FalconH1ForCausalLM

< >

( config: FalconH1Config )

المعاملات

  • config (FalconH1Config) — فئة إعدادات النموذج التي تحتوي على جميع معاملات النموذج. لا يؤدي التهيئة باستخدام ملف الإعدادات إلى تحميل الأوزان المرتبطة بالنموذج، بل الإعدادات فقط. راجع طريقة from_pretrained() لتحميل أوزان النموذج.

نموذج Falcon H1 لنمذجة اللغة السببية.

يرث هذا النموذج من PreTrainedModel. راجع توثيق الفئة الأصلية لمعرفة الطرق العامة التي تنفذها المكتبة لجميع نماذجها (مثل التحميل أو الحفظ، وتغيير حجم تضمينات الإدخال، وقص الرؤوس، وما إلى ذلك).

هذا النموذج هو أيضًا فئة فرعية من torch.nn.Module في PyTorch. استخدمه كوحدة PyTorch عادية، وارجع إلى توثيق PyTorch لكل ما يتعلق بالاستخدام العام والسلوك.

forward

< >

( 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 ) → 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_ids docstring). يتم تجاهل الرموز التي فهارسها مضبوطة على -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) وتتضمن عناصر مختلفة تعتمد على الإعداد (FalconH1Config) والمدخلات.

تتجاوز طريقة FalconH1ForCausalLM الخاصة بالتقديم (forward) الطريقة الخاصة __call__.

على الرغم من أنه يجب تعريف وصفة المرور الأمامي داخل هذه الدالة، إلا أنه ينبغي استدعاء كائن Module بدلاً من هذه الدالة، لأن الكائن يتولى تنفيذ خطوات المعالجة المسبقة والمعالجة اللاحقة، بينما تتجاهل الدالة هذه الخطوات بصمت.

  • loss (torch.Tensor of 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, FalconH1ForCausalLM

>>> model = FalconH1ForCausalLM.from_pretrained("...")
>>> tokenizer = AutoTokenizer.from_pretrained("...")

>>> 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."

هذا التنفيذ في HF ساهم فيه younesbelkada و DhiaEddineRhaiem.

Update on GitHub