Transformers documentation

Evolla

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-07-26.

Evolla

نظرة عامة

قُدِّم نموذج Evolla في فكّ الشفرة الجزيئية للبروتينات باستخدام Evolla بواسطة Zhou et al..

Evolla هو نموذج توليدي متقدم للبروتينات واللغة، يتكون من 80 مليار معامل، مصمم لفكّ الشفرة الجزيئية للبروتينات. يدمج النموذج المعلومات المستمدة من تسلسلات البروتينات وهيكلها واستعلامات المستخدم، لتوليد رؤى دقيقة ودقيقة السياق حول وظيفة البروتين. وقد تم تدريب Evolla على مجموعة بيانات غير مسبوقة مولّدة بالذكاء الاصطناعي، تضم 546 مليون زوج من أسئلة البروتينات وأجوبتها، و150 مليار رمز لفظي، مما يُحدث تقدماً كبيراً في أبحاث البروتيوميات وعلم الوراثة الوظيفي، ويوفر رؤى بمستوى الخبراء، ويكشف عن المنطق الجزيئي المُرمَّز في البروتينات.

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

البروتينات، وهي الآلات الجزيئية المعقدة في الطبيعة، هي نتاج مليارات السنين من التطور وتلعب أدواراً أساسية في الحفاظ على الحياة. ومع ذلك، لا يزال فكّ شيفرة لغتها الجزيئية - أي فهم كيفية ترميز تسلسلات البروتينات وهيكلها للوظائف البيولوجية وتحديد هذه الوظائف - تحدياً محورياً في علم الأحياء الحديث. هنا، نعرّف بـ Evolla، وهو نموذج توليدي لغوي للبروتينات من الطراز الأمامي بحجم 80 مليار معرّف، مصمّم لفكّ شيفرة اللغة الجزيئية للبروتينات. من خلال دمج المعلومات المستمدة من تسلسلات البروتينات وهيكلها واستعلامات المستخدم، يولّد Evolla رؤى دقيقة ودقيقة سياقياً حول وظيفة البروتين. تكمن إحدى الابتكارات الرئيسية في Evolla في تدريبه على مجموعة بيانات غير مسبوقة تم إنشاؤها بالذكاء الاصطناعي: 546 مليون زوج من أسئلة البروتينات وأجوبتها و150 مليار رمز كلمة، صُمّمت لتعكس التعقيد الهائل والتنوع الوظيفي للبروتينات. بعد ما قبل التدريب، يدمج Evolla تحسين التفضيل المباشر (DPO) لتحسين النموذج بناءً على إشارات التفضيل، والتوليد المعزّز بالاسترجاع (RAG) لدمج المعرفة الخارجية، مما يحسّن جودة الاستجابات وملاءمتها. لتقييم أدائه، نقترح إطاراً جديداً، وهو مساحة الاستجابة التوجيهية (IRS)، مما يثبت أن Evolla يوفر رؤى بمستوى الخبراء، مما يدفع أبحاث البروتيوميات وعلم الوراثة الوظيفي إلى الأمام، مع إلقاء الضوء على المنطق الجزيئي المرمّز في البروتينات. العرض التوضيحي عبر الإنترنت متاح في http://www.chat-protein.com/.

أمثلة:

processor = EvollaProcessor.from_pretrained("westlake-repl/Evolla-10B-DPO-hf")
model = EvollaForProteinText2Text.from_pretrained("westlake-repl/Evolla-10B-DPO-hf", device_map="auto")
# aa_seq should have same length as foldseek
protein_inputs = [
    {

        "aa_seq": "MATGGRRG...",
        "foldseek": "###lqpfd...", # hashtag means the low-confidence foldseek tokens
    },
    {
        "aa_seq": "MLPGLALL...",
        "foldseek": "dfwwkwad...",
    }
]
message_list = [
    [
        {
            "role": "system",
            "content": "You are an AI expert that can answer any questions about protein.",
        },
        {"role": "user", "content": "What is the function of this protein?"},
    ],
    [
        {
            "role": "system",
            "content": "You are an AI expert that can answer any questions about protein.",
        },
        {"role": "user", "content": "What is the function of this protein?"},
    ]
]
input_dict = processor(
    protein_inputs, messages_list, return_tensors="pt", text_max_length=512, protein_max_length=1024
)
with torch.no_grad():
    generated_ids = hf_model.generate(**input_dict)
generated_texts = processor.batch_decode(
    generated_ids, skip_special_tokens=True
)

نصائح:

  • تمت مساهمة هذا النموذج من قِبل Xibin Bayes Zhou.
  • يمكن العثور على الكود الأصلي هنا.

EvollaConfig

فئة transformers.EvollaConfig

< >

( 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 = Noneprotein_encoder_config: dict | transformers.configuration_utils.PreTrainedConfig | None = Nonevocab_size: int = 128256hidden_size: int = 4096intermediate_size: int = 14336num_hidden_layers: int = 32num_attention_heads: int = 32num_key_value_heads: int | None = 8hidden_act: str = 'silu'max_position_embeddings: int = 8192rms_norm_eps: float = 1e-05rope_parameters: transformers.modeling_rope_utils.RopeParameters | dict | None = Noneattention_bias: bool = Falseattention_dropout: float | int | None = 0.0mlp_bias: bool = Falsealigner_ffn_mult: int | None = 4aligner_enable_bias: bool | None = Truealigner_attention_probs_dropout_prob: float | None = 0.1aligner_num_add_layers: int | None = 8resampler_depth: int | None = 6resampler_dim_head: int | None = 64resampler_heads: int | None = 8resampler_num_latents: int | None = 64resampler_ff_mult: int | None = 4initializer_range: float = 0.02pad_token_id: int | None = Nonebos_token_id: int | None = 128000eos_token_id: int | list[int] | None = 128009use_cache: bool = Falsetie_word_embeddings: bool = Falseis_decoder: bool | None = Falseadd_cross_attention: bool | None = False )

المعاملات

  • protein_encoder_config (dict، اختياري) — قاموس لخيارات التهيئة المستخدمة في تهيئة SaProtConfig.
  • vocab_size (int، اختياري، القيمة الافتراضية 128256) — حجم مفردات النموذج. يحدد عدد الرموز المختلفة التي يمكن تمثيلها بواسطة 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.
  • hidden_act (str، اختياري، القيمة الافتراضية silu) — دالة التنشيط غير الخطية (دالة أو نص) في المُفكِّك. على سبيل المثال، "gelu"، "relu"، "silu"، وغيرها.
  • max_position_embeddings (int، اختياري، القيمة الافتراضية 8192) — أقصى طول تسلسل قد يُستخدم معه هذا النموذج على الإطلاق.
  • rms_norm_eps (float، اختياري، القيمة الافتراضية 1e-05) — قيمة الإيبسلون المستخدمة في طبقات تطبيع rms.
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], اختياري) — قائمة تحتوي على معاملات التهيئة الخاصة بتضمينات RoPE. يجب أن تحتوي القائمة على قيمة لـ rope_theta، ومعاملات اختيارية تُستخدم للتوسيع في حال رغبتَ في استخدام RoPE مع max_position_embeddings أطول.
  • attention_bias (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام انحياز في طبقات الإسقاط للاستعلام والمفتاح والقيمة والمخرجات أثناء الانتباه الذاتي.
  • attention_dropout (Union[float, int]، اختياري، القيمة الافتراضية 0.0) — نسبة إسقاط (dropout) لاحتمالات الانتباه.
  • mlp_bias (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم استخدام انحياز في طبقات up_proj وdown_proj وgate_proj ضمن طبقات MLP.
  • aligner_ffn_mult (int، اختياري، القيمة الافتراضية 4) — معامل FFN لطبقة المحاذاة.
  • aligner_enable_bias (bool، اختياري، القيمة الافتراضية True) — ما إذا كان سيتم استخدام الانحياز في طبقة المحاذاة.
  • aligner_attention_probs_dropout_prob (float، اختياري، القيمة الافتراضية 0.1) — نسبة الإسقاط (dropout) لاحتمالات الانتباه في طبقة المحاذاة (aligner).
  • aligner_num_add_layers (int، اختياري، القيمة الافتراضية 8) — عدد الطبقات الإضافية لطبقة المحاذاة.
  • resampler_depth (int، اختياري، القيمة الافتراضية 6) — عمق طبقة المعيد العينة في نموذج Llama.
  • resampler_dim_head (int، اختياري، القيمة الافتراضية 64) — أبعاد الرؤوس في طبقة المعيد العينة في نموذج Llama.
  • resampler_heads (int، اختياري، القيمة الافتراضية 8) — عدد الرؤوس في طبقة المعيد العينة في نموذج Llama.
  • resampler_num_latents (int، اختياري، القيمة الافتراضية 64) — عدد الكمونيات في طبقة المعيد العينة في نموذج Llama.
  • resampler_ff_mult (int, اختياري، القيمة الافتراضية 4) — معامل FFN لطبقة المعيد العينة.
  • initializer_range (float، اختياري، القيمة الافتراضية 0.02) — الانحراف المعياري لـ truncated_normal_initializer المستخدم في تهيئة جميع مصفوفات الأوزان.
  • pad_token_id (int, اختياري) — معرّف الرمز المستخدم للتعبئة في المفردات.
  • bos_token_id (int, اختياري، القيمة الافتراضية 128000) — معرّف الرمز المستخدم لبدء البث في المفردات.
  • eos_token_id (Union[int, list[int]]، اختياري، القيمة الافتراضية 128009) — معرّف الرمز المستخدم لنهاية البث في المفردات.
  • use_cache (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب على النموذج إرجاع قيم المفاتيح/القيم الأخيرة للانتباه (لا تستخدمها جميع النماذج). لا ينطبق إلا إذا كان config.is_decoder=True أو عندما يكون النموذج نموذجًا توليديًا يعتمد على المُفكِّك فقط.
  • tie_word_embeddings (bool، اختياري، القيمة الافتراضية False) — ما إذا كان سيتم ربط ترميزات الأوزان وفقاً لخريطة tied_weights_keys الخاصة بالنموذج.
  • is_decoder (bool، اختياري، القيمة الافتراضية False) — ما إذا كان النموذج يُستخدم كمفكّك (decoder) أم لا. إذا كانت القيمة False، يُستخدم النموذج كمُرمِّز (encoder).
  • add_cross_attention (bool، اختياري، القيمة الافتراضية False) — ما إذا كان يجب إضافة طبقات الانتباه المتقاطع إلى النموذج.

هذه فئة الإعدادات المخزنة لإعدادات نموذج EvollaModel. تُستخدم لاستحداث نموذج Evolla وفقاً للحجج المحددة، مع تعريف بنية النموذج. إن استحداث إعدادات باستخدام القيم الافتراضية سيؤدي إلى الحصول على إعدادات مشابهة لتلك الخاصة بـ westlake-repl/Evolla-10B-hf

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

مثال:

>>> from transformers import EvollaModel, EvollaConfig

>>> # Initializing a Evolla evolla-10b style configuration
>>> configuration = EvollaConfig()

>>> # Initializing a model from the evolla-10b style configuration
>>> model = EvollaModel(configuration)

>>> # Accessing the model configuration
>>> configuration = model.config

EvollaModel

فئة transformers.EvollaModel

< >

( config: EvollaConfig )

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] = Noneuse_cache: bool | None = Noneprotein_input_ids: typing.Optional[torch.LongTensor] = Noneprotein_attention_mask: typing.Optional[torch.Tensor] = Nonestructure_feats: typing.Optional[torch.Tensor] = Nonemsa_feats: typing.Optional[torch.Tensor] = Nonestructure_batch_mask: typing.Optional[torch.Tensor] = Nonemsa_batch_mask: typing.Optional[torch.Tensor] = None**kwargs ) → 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).
  • protein_input_ids (torch.LongTensor، اختياري) — المعرّفات المدخلة لتسلسل البروتين في رموز واعية بالبنية. يجب أن يكون شكلها (batch_size, protein_seq_length) ونوعها torch.LongTensor.
  • protein_attention_mask (torch.Tensor، اختياري) — قناع الانتباه (attention mask) الخاص بتسلسل البروتين. يجب أن يكون على شكل (batch_size, protein_seq_length) ونوعه torch.Tensor.
  • structure_feats (torch.Tensor، اختياري) — المعرّفات المدخلة للميزات القائمة على البنية فقط. يجب أن يكون شكلها (batch_size, structure_seq_length, structure_feat_dim) ونوعها torch.Tensor. مدخل وهمي حالياً.
  • msa_feats (torch.Tensor، اختياري) — المعرّفات المدخلة للميزات المستندة بالكامل إلى MSA. يجب أن يكون شكلها (batch_size, msa_seq_length, msa_feat_dim) ونوعها torch.Tensor. مدخل وهمي حاليًا.
  • structure_batch_mask (torch.Tensor, اختياري) — قناع الدفعة (batch mask) لتحديد أي تسلسلات البروتين تعتمد بحتاً على البنية. يجب أن يكون شكله (batch_size) ونوعه torch.Tensor. يجب أن يُستخدم مع structure_feats. مدخل وهمي حالياً.
  • msa_batch_mask (torch.Tensor، اختياري) — قناع الدفعة (batch mask) لتحديد أي تسلسلات البروتين تعتمد كليًا على MSA. يجب أن يكون شكله (batch_size) ونوعه torch.Tensor. يجب أن يُستخدم مع msa_feats. مدخل وهمي حاليًا.

يعيد

BaseModelOutputWithPast أو tuple(torch.Tensor)

BaseModelOutputWithPast أو مجموعة مرتبة من torch.Tensor (إذا تم تمرير return_dict=False أو عندما يكون config.return_dict=False) وتتكون من عناصر مختلفة تعتمد على الإعداد (None) والمدخلات.

تتجاوز طريقة EvollaModel الأمامية (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 على الانتباه، وتُستخدم لحساب المتوسط الموزون في رؤوس الانتباه الذاتي.

EvollaForProteinText2Text

فئة transformers.EvollaForProteinText2Text

< >

( config: EvollaConfig )

forward

< >

( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = Noneprotein_input_ids: typing.Optional[torch.LongTensor] = Noneprotein_attention_mask: typing.Optional[torch.Tensor] = Noneuse_cache: bool | None = Nonelogits_to_keep: typing.Union[int, torch.Tensor] = 0**kwargs )

المعاملات

  • 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 للرموز التي تم إخفاؤها.

    ما هي أقنعة الانتباه؟

  • 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].
  • protein_input_ids (torch.LongTensor، اختياري) — المعرّفات المدخلة لتسلسل البروتين. يجب أن يكون شكلها (batch_size, protein_seq_length) ونوعها torch.LongTensor.
  • protein_attention_mask (torch.Tensor، اختياري) — قناع الانتباه (attention mask) الخاص بتسلسل البروتين. يجب أن يكون على شكل (batch_size, protein_seq_length) ونوعه torch.Tensor.
  • 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) (بعد واحد لكل من الدفعة وطول التسلسل).

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

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

مثال:

>>> from transformers import EvollaProcessor, EvollaForProteinText2Text
>>> model = EvollaForProteinText2Text.from_pretrained("westlake/Evolla-10B-hf")
>>> processor = EvollaProcessor.from_pretrained("westlake/Evolla-10B-hf")

>>> protein_information = {
    "aa_seq": "your amino acid sequence",
    "foldseek": "your foldseek sequence",
}
>>> question = "What is the function of this protein?"
>>> message = [
    {"role": "system", "content": "You are an AI expert that can answer any questions about protein."},
    {"role": "user", "content": question},
]

>>> inputs = processor(proteins=[protein_information], messages_list=[message], return_tensors="pt", padding="longest")
>>> outputs = model.generate(**inputs)

>>> print(processor.batch_decode(outputs, skip_special_tokens=True))

EvollaProcessor

فئة transformers.EvollaProcessor

< >

( protein_tokenizertokenizer = Noneprotein_max_length = 1024text_max_length = 512**kwargs )

المعاملات

  • protein_tokenizer (EsmTokenizer) — مثال من EsmTokenizer. مُجزِّئ البروتين هو مدخل إلزامي.
  • tokenizer (tokenizer_class) — مُجزِّئ النص (tokenizer) هو مدخل إلزامي.
  • protein_max_length (int، اختياري، القيمة الافتراضية 1024) — الحد الأقصى لطول التسلسل المراد توليده.
  • text_max_length (int، اختياري، القيمة الافتراضية 512) — الحد الأقصى لطول النص المراد توليده.

ينشئ EvollaProcessor الذي يغلّف مُرمّز بروتينات ومُرمّز في مُعالِج واحد.

يوفر EvollaProcessor جميع وظائف {protein_tokenizer_class} وtokenizer_class. راجع ~{protein_tokenizer_class} و~tokenizer_class لمزيد من المعلومات.

__call__

< >

( proteins: list[dict] | dict | None = Nonemessages_list: list[list[dict]] | list[dict] | None = Noneprotein_max_length: int | None = Nonetext_max_length: int | None = None**kwargs ) → a dict with following keys

المعاملات

  • proteins (Union[List[dict], dict]) — قائمة من القواميس أو قاموس واحد يحتوي على المفاتيح التالية:
    • "aa_seq" (str) — تسلسل الأحماض الأمينية للبروتين.
    • "foldseek" (str) — سلسلة foldseek الخاصة بالبروتين.
  • messages_list (Union[List[List[dict]], List[dict]]) — قائمة قوائم من القواميس أو قائمة قواميس تحتوي على المفاتيح التالية:
    • "role" (str) — دور الرسالة.
    • "content" (str) — محتوى الرسالة.
  • protein_max_length (int، اختياري، القيمة الافتراضية 1024) — الحد الأقصى لطول التسلسل المراد توليده.
  • text_max_length (int، اختياري، القيمة الافتراضية 512) — الحد الأقصى لطول النص.
  • return_tensors (str أو TensorType, اختياري) — إذا تم تعيينه، فسيُعاد تينسورات من إطار عمل محدد. القيم المقبولة هي:
    • 'pt': إرجاع كائنات torch.Tensor من PyTorch.
    • 'np': إرجاع كائنات np.ndarray من NumPy.

يعيد

قواميس تحتوي على المفاتيح التالية

  • protein_input_ids (torch.Tensor من الشكل (batch_size, sequence_length)) — معرّفات الإدخال لسلسلة البروتين.
  • protein_attention_mask (torch.Tensor من الشكل (batch_size, sequence_length)) — قناع الانتباه (attention mask) الخاص بتسلسل البروتين.
  • text_input_ids (torch.Tensor من الشكل (batch_size, sequence_length)) — معرّفات الإدخال لسلسلة النص.
  • text_attention_mask (torch.Tensor من الشكل (batch_size, sequence_length)) — قناع الانتباه (attention mask) الخاص بالتسلسل النصي.
Update on GitHub