Transformers documentation
Evolla
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ı:
- Bu model Xibin Bayes Zhou tarafından katkıda bulunmuştur.
- Orijinal kod burada bulunabilir.
EvollaConfig
sınıf transformers.EvollaConfig
< 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 = 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ı) —SaProtConfigsınıfını başlatmak için kullanılan yapılandırma seçeneklerinin sözlüğü. - vocab_size (
int, isteğe bağlı, varsayılan128256) — Modelin sözlük boyutu.input_idstarafından temsil edilebilecek farklı token sayısını tanımlar. - hidden_size (
int, isteğe bağlı, varsayılan4096) — Gizli temsillerin boyutu. - intermediate_size (
int, isteğe bağlı, varsayılan14336) — MLP temsillerinin boyutu. - num_hidden_layers (
int, isteğe bağlı, varsayılan32) — Transformer çözücüdeki gizli katman sayısı. - num_attention_heads (
int, isteğe bağlı, varsayılan32) — Transformer decoder'ındaki her dikkat katmanı için dikkat başı sayısı. - num_key_value_heads (
int, isteğe bağlı, varsayılan8) — Bu, Grouped Query Attention uygulamasında kullanılacak key_value başlarının sayısıdır.num_key_value_heads=num_attention_headsise model Multi Head Attention (MHA) kullanır,num_key_value_heads=1ise 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 olaraknum_attention_headskullanılır. - hidden_act (
str, isteğe bağlı, varsayılansilu) — Çö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ılan8192) — Bu modelin kullanılabileceği en uzun dizi uzunluğu. - rms_norm_eps (
float, isteğe bağlı, varsayılan1e-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_thetaiçin bir değer ve daha uzunmax_position_embeddingsile 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ılanFalse) — Ö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ılan0.0) — Dikkat olasılıkları için dropout oranı. - mlp_bias (
bool, isteğe bağlı, varsayılanFalse) — 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ılanTrue) — 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ılan0.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ılan128000) — 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ılan128009) — Sözlükte akış sonu için kullanılan token kimliği. - use_cache (
bool, isteğe bağlı, varsayılanFalse) — Modelin son anahtar/değer dikkatlerini döndürüp döndürmeyeceğini belirtir (tüm modellerde kullanılmaz). Yalnızcaconfig.is_decoder=Trueolduğunda veya model yalnızca decoder tabanlı üretken bir model olduğunda geçerlidir. - tie_word_embeddings (
bool, isteğe bağlı, varsayılanFalse) — Modelintied_weights_keyseş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ılanFalse) — Modelin bir decoder olarak kullanılıp kullanılmadığı.Falseise model bir encoder olarak kullanılır. - add_cross_attention (
bool, isteğe bağlı, varsayılanFalse) — 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.configEvollaModel
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 = 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.
- 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.
- 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]. - 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 genelliklepast_key_valuesdeğerinin, çözümlemenin önceki bir aşamasında model tarafından döndürülenuse_cache=Trueveyaconfig.use_cache=True.Girdi olarak yalnızca Cache örneği kabul edilir, kv cache kılavuzumuza bakın.
past_key_valuesgeçirilmezse, varsayılan olarak DynamicCache başlatılır.Model, girdi olarak verilen aynı önbellek biçimini çıktı olarak üretecektir.
past_key_valueskullanılıyorsa, kullanıcının tüminput_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_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini 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ı) —Trueolarak ayarlanırsa,past_key_valuesanahtar 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 tipitorch.LongTensorolmalıdır. - protein_attention_mask (
torch.Tensor, opsiyonel) — Protein dizisi için dikkat maskesi. Şekli(batch_size, protein_seq_length)ve tipitorch.Tensorolmalı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 tipitorch.Tensorolmalı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 tipitorch.Tensorolmalı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 tipitorch.Tensorolmalıdır.structure_featsile 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 tipitorch.Tensorolmalıdır.msa_featsile 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_valueskullanı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=Truegeçirildiğinde veyaconfig.use_cache=Trueolduğ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_valuesgirdisi) kullanılabilen, önceden hesaplanmış gizli durumları (self-attention bloklarındaki anahtar ve değerler ve isteğe bağlı olarakconfig.is_encoder_decoder=Trueise cross-attention bloklarındaki anahtar ve değerler) içerir.hidden_states (
tuple(torch.Tensor), isteğe bağlı,output_hidden_states=Truegeçirildiğinde veyaconfig.output_hidden_states=Trueolduğ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=Truegeçirildiğinde veyaconfig.output_attentions=Trueolduğ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
forward
< source >( 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.
- 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.
- inputs_embeds (
torch.Tensor, şekli(batch_size, sequence_length, hidden_size), isteğe bağlı) — İsteğe bağlı olarak,input_idsyerine gömülü bir temsil doğrudan geçmeyi tercih edebilirsiniz. Bu,input_idsdizinlerini 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_idsdocstring'ine bakın). Endeksleri-100olarak 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 tipitorch.LongTensorolmalıdır. - protein_attention_mask (
torch.Tensor, opsiyonel) — Protein dizisi için dikkat maskesi. Şekli(batch_size, protein_seq_length)ve tipitorch.Tensorolmalıdır. - use_cache (
bool, isteğe bağlı) —Trueolarak ayarlanırsa,past_key_valuesanahtar 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ılan0) —intise, sonlogits_to_keeptoken için logits hesaplanır.0ise, tüminput_idsiç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.Tensorise, 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
< source >( 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__
< source >( 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 (
strveya 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': PyTorchtorch.Tensornesnelerini döndürür.'np': NumPynp.ndarraynesnelerini 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.