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

Bu model, 2025-07-26 tarihinde Hugging Face Transformers'a katkıda bulunulmuştur.

Evolla

Genel Bakış

The Evolla model was proposed in Decoding the Molecular Language of Proteins with Evolla by Zhou et al..

Evolla, proteinlerin moleküler dilini çözmek için tasarlanmış gelişmiş 80 milyar parametreli bir protein-dil üretken modelidir. Protein dizileri, yapıları ve kullanıcı sorgularından gelen bilgileri birleştirerek protein işlevi hakkında hassas ve bağlama duyarlı içgörüler üretir. 546 milyon protein soru-cevap çifti ve 150 milyar kelime token'ından oluşan benzersiz yapay zekâ destekli bir veri setinde eğitilen Evolla, proteomik ve fonksiyonel genomik alanındaki araştırmaları önemli ölçüde ileriye taşır; uzman düzeyinde içgörüler sunarak proteinlerde kodlanan moleküler mantığı aydınlatır.

Makalenin özeti aşağıdaki gibidir:

Proteinler, doğanın karmaşık moleküler makineleri, milyarlarca yıllık evrimin ürünüdür ve yaşamı sürdürmede temel roller oynar. Bununla birlikte, moleküler dillerini çözmek, yani protein dizilerinin ve yapılarının biyolojik işlevleri nasıl kodladığını ve belirlediğini anlamak, modern biyolojide hâlâ köşe taşı niteliğinde bir zorluktur. Burada, proteinlerin moleküler dilini çözmek üzere tasarlanmış, 80 milyar parametreli bir sınır protein-dil üretken modeli olan Evolla'yı tanıtıyoruz. Protein dizilerinden, yapılardan ve kullanıcı sorgularından gelen bilgileri bir araya getirerek Evolla, protein işlevi hakkında hassas ve bağlama duyarlı içgörüler üretir. Evolla'nın temel yeniliği, proteinlerin devasa karmaşıklığını ve işlevsel çeşitliliğini yansıtmak üzere tasarlanmış, eşi görülmemiş bir yapay zekâ tarafından üretilen veri setinde eğitilmesinde yatar: 546 milyon protein soru-cevap çifti ve 150 milyar kelime token'ı. Ön eğitimin ardından Evolla, modelin tercih sinyallerine göre iyileştirilmesi için Doğrudan Tercih Optimizasyonu'nu (DPO) ve harici bilgi entegrasyonu için Arama Destekli Üretimi (RAG) birleştirerek yanıt kalitesini ve ilgiliğini artırır. Performansını değerlendirmek için, Evolla'nın uzman düzeyinde içgörüler sunduğunu gösteren, proteomik ve fonksiyonel genomik araştırmalarını ilerletirken proteinlerde kodlanan moleküler mantığı aydınlatan yeni bir çerçeve olan Instructional Response Space (IRS) öneriyoruz. Çevrimiçi demo http://www.chat-protein.com/ adresinde mevcuttur.

Örnekler:

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
)

İpuçları:

EvollaConfig

sınıf 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 )

Parametreler

  • protein_encoder_config (dict, isteğe bağlı) — SaProtConfig sınıfını başlatmak için kullanılan yapılandırma seçeneklerinin sözlüğü.
  • vocab_size (int, isteğe bağlı, varsayılan 128256) — Modelin sözlük boyutu. input_ids tarafından temsil edilebilecek farklı token sayısını tanımlar.
  • hidden_size (int, isteğe bağlı, varsayılan 4096) — Gizli temsillerin boyutu.
  • intermediate_size (int, isteğe bağlı, varsayılan 14336) — MLP temsillerinin boyutu.
  • num_hidden_layers (int, isteğe bağlı, varsayılan 32) — Transformer çözücüdeki gizli katman sayısı.
  • num_attention_heads (int, isteğe bağlı, varsayılan 32) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı.
  • num_key_value_heads (int, isteğe bağlı, varsayılan 8) — Bu, Grouped Query Attention uygulamasında kullanılacak key_value başlarının sayısıdır. num_key_value_heads=num_attention_heads ise model Multi Head Attention (MHA) kullanır, num_key_value_heads=1 ise model Multi Query Attention (MQA) kullanır, aksi halde GQA kullanılır. Çok başlı bir checkpoint'i GQA checkpoint'ine dönüştürürken, her grup key ve value başı, o gruptaki tüm orijinal başların ortalama havuzlanması (meanpooling) ile oluşturulmalıdır. Daha fazla ayrıntı için bu makaleye göz atın. Belirtilmezse, varsayılan olarak num_attention_heads kullanılır.
  • hidden_act (str, isteğe bağlı, varsayılan silu) — Çözücüdeki doğrusal olmayan aktivasyon fonksiyonu (fonksiyon veya dize). Örneğin, "gelu", "relu", "silu" vb.
  • max_position_embeddings (int, isteğe bağlı, varsayılan 8192) — Bu modelin kullanılabileceği en uzun dizi uzunluğu.
  • rms_norm_eps (float, isteğe bağlı, varsayılan 1e-05) — rms normalizasyon katmanları tarafından kullanılan epsilon.
  • rope_parameters (Union[~modeling_rope_utils.RopeParameters, dict], isteğe bağlı) — RoPE gömme yapılandırma parametrelerini içeren sözlük. Sözlük, rope_theta için bir değer ve daha uzun max_position_embeddings ile RoPE kullanmak istiyorsanız ölçekleme için kullanılan isteğe bağlı parametreleri içermelidir.
  • attention_bias (bool, isteğe bağlı, varsayılan False) — Öz-dikkat sırasında sorgu, anahtar, değer ve çıktı projeksiyon katmanlarında önyargı (bias) kullanılıp kullanılmayacağı.
  • attention_dropout (Union[float, int], isteğe bağlı, varsayılan 0.0) — Dikkat olasılıkları için dropout oranı.
  • mlp_bias (bool, isteğe bağlı, varsayılan False) — MLP katmanlarındaki up_proj, down_proj ve gate_proj katmanlarında bias kullanılıp kullanılmayacağı.
  • aligner_ffn_mult (int, isteğe bağlı, varsayılan 4) — Aligner katmanı için FFN çarpanı.
  • aligner_enable_bias (bool, isteğe bağlı, varsayılan True) — Aligner katmanında bias kullanılıp kullanılmayacağı.
  • aligner_attention_probs_dropout_prob (float, isteğe bağlı, varsayılan 0.1) — Aligner katmanındaki dikkat olasılıkları için dropout oranı.
  • aligner_num_add_layers (int, isteğe bağlı, varsayılan 8) — Aligner katmanı için ek katman sayısı.
  • resampler_depth (int, isteğe bağlı, varsayılan 6) — Llama modelindeki resampler katmanının derinliği.
  • resampler_dim_head (int, isteğe bağlı, varsayılan 64) — Llama modelindeki resampler katmanındaki başların boyutu.
  • resampler_heads (int, isteğe bağlı, varsayılan 8) — Llama modelindeki resampler katmanındaki baş sayısı.
  • resampler_num_latents (int, isteğe bağlı, varsayılan 64) — Llama modelindeki resampler katmanındaki latent sayısı.
  • resampler_ff_mult (int, isteğe bağlı, varsayılan 4) — Resampler katmanı için FFN çarpanı.
  • initializer_range (float, isteğe bağlı, varsayılan 0.02) — Tüm ağırlık matrislerini başlatmak için kullanılan truncated_normal_initializer'ın standart sapması.
  • pad_token_id (int, isteğe bağlı) — Sözlükte dolgu için kullanılan token kimliği.
  • bos_token_id (int, isteğe bağlı, varsayılan 128000) — Sözlükte akış başlangıcı için kullanılan token kimliği.
  • eos_token_id (Union[int, list[int]], isteğe bağlı, varsayılan 128009) — Sözlükte akış sonu için kullanılan token kimliği.
  • use_cache (bool, isteğe bağlı, varsayılan False) — Modelin son anahtar/değer dikkatlerini döndürüp döndürmeyeceğini belirtir (tüm modellerde kullanılmaz). Yalnızca config.is_decoder=True olduğunda veya model yalnızca decoder tabanlı üretken bir model olduğunda geçerlidir.
  • tie_word_embeddings (bool, isteğe bağlı, varsayılan False) — Modelin tied_weights_keys eşlemesine göre ağırlık gömme bağlamalarının yapılıp yapılmayacağı.
  • is_decoder (bool, isteğe bağlı, varsayılan False) — Modelin bir decoder olarak kullanılıp kullanılmadığı. False ise model bir encoder olarak kullanılır.
  • add_cross_attention (bool, isteğe bağlı, varsayılan False) — Modelde çapraz dikkat katmanlarının eklenip eklenmeyeceğini belirtir.

Bu, bir EvollaModel'in yapılandırmasını depolamak için kullanılan yapılandırma sınıfıdır. Belirtilen argümanlara göre bir Evolla modelini örneklemek ve model mimarisini tanımlamak için kullanılır. Varsayılan değerlerle bir yapılandırma örneği oluşturmak, westlake-repl/Evolla-10B-hf modelinin yapılandırmasına benzer bir yapılandırma elde edilmesini sağlar.

Yapılandırma nesneleri PreTrainedConfig sınıfından devralır ve model çıktılarını kontrol etmek için kullanılabilir. Daha fazla bilgi için PreTrainedConfig belgesini okuyun.

Örnek:

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

sınıf 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)

Parametreler

  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • position_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Girdi dizilerindeki her token'ın konum gömme (position embedding) içindeki konum indeksleri. Seçim aralığı [0, config.n_positions - 1].

    Pozisyon kimlikleri nedir?

  • past_key_values (~cache_utils.Cache, isteğe bağlı) — Sıralı çözümlemeyi hızlandırmak için kullanılabilen önceden hesaplanmış gizli durumlar (self-attention ve cross-attention bloklarındaki anahtar ve değerler). Bu genellikle past_key_values değerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülen use_cache=True veya config.use_cache=True.

    Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın. past_key_values geçirilmezse, varsayılan olarak DynamicCache başlatılır.

    Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.

    past_key_values kullanılıyorsa, kullanıcının tüm input_ids (şekli (batch_size, sequence_length)) yerine, bu modele geçmiş anahtar değer durumları verilmemiş olan, işlenmemiş input_ids (şekli (batch_size, unprocessed_length)) girmesi beklenir.

  • inputs_embeds (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • use_cache (bool, isteğe bağlı) — True olarak ayarlanırsa, past_key_values anahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz. past_key_values).
  • protein_input_ids (torch.LongTensor, isteğe bağlı) — Yapıya duyarlı token'lar içindeki protein dizisi için giriş kimlikleri. Şekli (batch_size, protein_seq_length) ve tipi torch.LongTensor olmalıdır.
  • protein_attention_mask (torch.Tensor, opsiyonel) — Protein dizisi için dikkat maskesi. Şekli (batch_size, protein_seq_length) ve tipi torch.Tensor olmalıdır.
  • structure_feats (torch.Tensor, isteğe bağlı) — Saf yapı tabanlı özellikler için girdi kimlikleri. Şekli (batch_size, structure_seq_length, structure_feat_dim) ve tipi torch.Tensor olmalıdır. Şimdilik sahte girdi.
  • msa_feats (torch.Tensor, isteğe bağlı) — Saf MSA tabanlı özellikler için girdi kimlikleri. Şekli (batch_size, msa_seq_length, msa_feat_dim) ve tipi torch.Tensor olmalıdır. Şimdilik sahte girdi.
  • structure_batch_mask (torch.Tensor, isteğe bağlı) — Hangi protein dizilerinin yalnızca yapıya dayalı olduğunu belirlemek için kullanılan parti maskesi. Şekli (batch_size) ve tipi torch.Tensor olmalıdır. structure_feats ile birlikte kullanılmalıdır. Şimdilik sahte girdi.
  • msa_batch_mask (torch.Tensor, isteğe bağlı) — Hangi protein dizilerinin tamamen MSA tabanlı olduğunu belirlemek için kullanılan batch maskesi. Şekli (batch_size) ve tipi torch.Tensor olmalıdır. msa_feats ile birlikte kullanılmalıdır. Şimdilik sahte girdi.

Dönüş değeri

BaseModelOutputWithPast veya tuple(torch.Tensor)

Bir BaseModelOutputWithPast veya bir torch.Tensor demeti (return_dict=False geçirildiğinde veya config.return_dict=False olduğunda), yapılandırmaya (None) ve girdilere bağlı olarak çeşitli öğelerden oluşur.

EvollaModel forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

  • last_hidden_state (torch.Tensor, şekli (batch_size, sequence_length, hidden_size)) — Modelin son katmanının çıktısındaki gizli durumlar dizisi.

    past_key_values kullanılırsa, yalnızca (batch_size, 1, hidden_size) biçimindeki dizilerin son gizli durumu (hidden-state) çıktı olarak verilir.

  • past_key_values (Cache, isteğe bağlı, use_cache=True geçirildiğinde veya config.use_cache=True olduğunda döndürülür) — Bir Cache örneğidir. Daha fazla ayrıntı için kv cache kılavuzumuza bakın.

    Sıralı çözümlemeyi hızlandırmak için (bkz. past_key_values girdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler ve isteğe bağlı olarak config.is_encoder_decoder=True ise cross-attention bloklarındaki anahtar ve değerler) içerir.

  • hidden_states (tuple(torch.Tensor), isteğe bağlı, output_hidden_states=True geçirildiğinde veya config.output_hidden_states=True olduğunda döndürülür) — torch.Tensor (modelin bir gömme katmanı varsa gömme katmanının çıktısı için bir tane + her katmanın çıktısı için birer tane) içeren, (batch_size, sequence_length, hidden_size) biçiminde bir demet.

    Her katmanın çıktısında modelin gizli durumları ve isteğe bağlı başlangıç gömme çıktıları.

  • attentions (tuple(torch.Tensor), isteğe bağlı, output_attentions=True geçirildiğinde veya config.output_attentions=True olduğunda döndürülür) — torch.Tensor (katman başına bir tane) içeren bir tuple, şekli (batch_size, num_heads, sequence_length, sequence_length).

    Dikkat softmax'ı sonrası dikkat ağırlıkları, öz-dikkat başlıklarında ağırlıklı ortalamanın hesaplanmasında kullanılır.

EvollaForProteinText2Text

sınıf 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 )

Parametreler

  • input_ids (torch.LongTensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Sözlükteki girdi dizisi belirteçlerinin (token) indeksleri. Varsayılan olarak dolgu (padding) yok sayılır.

    Dizinler AutoTokenizer kullanılarak elde edilebilir. Ayrıntılar için PreTrainedTokenizer.encode() ve PreTrainedTokenizer.call() konularına bakın.

    Girdi kimlikleri nelerdir?

  • attention_mask (torch.Tensor şeklinde (batch_size, sequence_length), isteğe bağlı) — Doldurma (padding) token indekslerinde dikkat (attention) işlemi yapmaktan kaçınmak için kullanılan maske. Seçilen maske değerleri [0, 1]:
    • 1, maskelenmemiş jetonlar için,
    • maskelenmiş jetonlar için 0.

    Dikkat maskeleri nedir?

  • inputs_embeds (torch.Tensor, şekli (batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak, input_ids yerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu, input_ids dizinlerini ilgili vektörlere dönüştürme biçimi üzerinde modelin dahili gömme arama matrisinden daha fazla kontrol sahibi olmak istiyorsanız faydalıdır.
  • labels (torch.LongTensor, şekli (batch_size, sequence_length), isteğe bağlı) — Maskeli dil modelleme kaybını hesaplamak için etiketler. Endeksler [0, ..., config.vocab_size] aralığında olmalı ya da -100 olmalı (input_ids docstring'ine bakın). Endeksleri -100 olarak ayarlanan tokenlar yok sayılır (maskelenir), kayıp yalnızca etiketleri [0, ..., config.vocab_size] aralığında olan tokenlar için hesaplanır.
  • protein_input_ids (torch.LongTensor, isteğe bağlı) — Protein dizisi için girdi kimlikleri. Şekli (batch_size, protein_seq_length) ve tipi torch.LongTensor olmalıdır.
  • protein_attention_mask (torch.Tensor, opsiyonel) — Protein dizisi için dikkat maskesi. Şekli (batch_size, protein_seq_length) ve tipi torch.Tensor olmalıdır.
  • use_cache (bool, isteğe bağlı) — True olarak ayarlanırsa, past_key_values anahtar değer durumları döndürülür ve çözümlemeyi hızlandırmak için kullanılabilir (bkz. past_key_values).
  • logits_to_keep (Union[int, torch.Tensor], isteğe bağlı, varsayılan 0) — int ise, son logits_to_keep token için logits hesaplanır. 0 ise, tüm input_ids için logits hesaplanır (özel durum). Üretim için yalnızca son token logits'leri gereklidir ve bunların yalnızca o token için hesaplanması bellek tasarrufu sağlar; bu, uzun diziler veya büyük sözlük boyutu için oldukça önemli hale gelir. torch.Tensor ise, dizi uzunluğu boyutundaki korunacak indekslere karşılık gelen 1B olmalıdır. Bu, paketlenmiş tensor biçimini (batch ve dizi uzunluğu için tek boyut) kullanırken faydalıdır.

EvollaForProteinText2Text forward metodu, __call__ özel metodunu geçersiz kılar.

İleri geçiş tarifi bu fonksiyon içinde tanımlanmalı olsa da, sonrasında bunun yerine Module örneğini çağırmak gerekir; çünkü önceki, ön ve son işleme adımlarını çalıştırmaktan sorumluyken ikincisi bunları sessizce yok sayar.

Örnek:

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

sınıf transformers.EvollaProcessor

< >

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

Parametreler

  • protein_tokenizer (EsmTokenizer) — EsmTokenizer sınıfının bir örneği. Protein tokenizer'ı zorunlu bir girdidir.
  • tokenizer (tokenizer_class) — Tokenizer zorunlu bir girdidir.
  • protein_max_length (int, isteğe bağlı, varsayılan 1024) — Üretilmesi gereken dizinin maksimum uzunluğu.
  • text_max_length (int, isteğe bağlı, varsayılan 512) — Üretilmesi gereken metnin maksimum uzunluğu.

Bir protein tokenizer'ı ve bir tokenizer'ı tek bir işlemciye sararak bir EvollaProcessor oluşturur.

EvollaProcessor, {protein_tokenizer_class} ve tokenizer_class sınıflarının tüm işlevlerini sunar. Daha fazla bilgi için ~{protein_tokenizer_class} ve ~tokenizer_class belgelerine bakın.

__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

Parametreler

  • proteins (Union[List[dict], dict]) — Aşağıdaki anahtarları içeren bir sözlük listesi veya tek bir sözlük:
    • "aa_seq" (str) — Proteinin amino asit dizisi.
    • "foldseek" (str) — Proteinin foldseek dizesi.
  • messages_list (Union[List[List[dict]], List[dict]]) — Aşağıdaki anahtarları içeren sözlüklerden oluşan bir liste listesi veya sözlüklerden oluşan bir liste:
    • "role" (str) — Mesajın rolü.
    • "content" (str) — Mesajın içeriği.
  • protein_max_length (int, isteğe bağlı, varsayılan 1024) — Üretilmesi gereken dizinin maksimum uzunluğu.
  • text_max_length (int, isteğe bağlı, varsayılan 512) — Metnin maksimum uzunluğu.
  • return_tensors (str veya TensorType, isteğe bağlı) — Belirlenirse, belirli bir çerçeveye ait tensörler döndürülür. Kabul edilen değerler şunlardır:
    • 'pt': PyTorch torch.Tensor nesnelerini döndürür.
    • 'np': NumPy np.ndarray nesnelerini döndürür.

Dönüş değeri

aşağıdaki anahtarlara sahip bir sözlük

  • protein_input_ids (torch.Tensor, şekli (batch_size, sequence_length)) — Protein dizisi için girdi kimlikleri.
  • protein_attention_mask (torch.Tensor, şekli (batch_size, sequence_length)) — Protein dizisi için dikkat maskesi.
  • text_input_ids (torch.Tensor, şekli (batch_size, sequence_length)) — Metin dizisi için girdi kimlikleri.
  • text_attention_mask (torch.Tensor, şekli (batch_size, sequence_length)) — Metin dizisi için dikkat maskesi.
Update on GitHub