Transformers documentation
ESM
이 모델은 2022-09-30에 Hugging Face Transformers에 기여되었습니다.
ESM
개요
이 페이지에서는 Meta AI의 Fundamental AI Research Team이 개발한 Transformer 단백질 언어 모델의 코드와 사전 학습된 가중치를 제공합니다. 여기에는 최첨단 성능을 갖춘 ESMFold와 ESM-2, 그리고 이전에 공개된 ESM-1b와 ESM-1v가 포함되어 있습니다. Transformer 단백질 언어 모델은 Alexander Rives, Joshua Meier, Tom Sercu, Siddharth Goyal, Zeming Lin, Jason Liu, Demi Guo, Myle Ott, C. Lawrence Zitnick, Jerry Ma, Rob Fergus가 저술한 Biological structure and function emerge from scaling unsupervised learning to 250 million protein sequences 논문에서 소개되었습니다. 이 논문의 첫 번째 버전은 2019년에 사전 인쇄되었습니다.
ESM-2는 다양한 구조 예측 작업에서 테스트된 모든 단일 시퀀스 단백질 언어 모델보다 우수한 성능을 보이며, 원자 수준의 구조 예측을 가능하게 합니다. Zeming Lin, Halil Akin, Roshan Rao, Brian Hie, Zhongkai Zhu, Wenting Lu, Allan dos Santos Costa, Maryam Fazel-Zarandi, Tom Sercu, Sal Candido, Alexander Rives의 논문 Language models of protein sequences at the scale of evolution enable accurate structure prediction과 함께 공개되었습니다.
이 논문에서는 ESMFold도 소개되었습니다. ESMFold는 ESM-2 stem을 사용하며, 최첨단 정확도로 접힌 단백질 구조를 예측할 수 있는 head를 갖추고 있습니다. AlphaFold2와 달리, ESMFold는 대규모 사전 학습된 단백질 언어 모델 stem의 토큰 임베딩에 의존하며 추론 시점에 다중 정렬(MSA) 단계를 수행하지 않습니다. 이는 ESMFold 체크포인트가 완전히 “독립적”임을 의미하며, 예측을 위해 알려진 단백질 서열과 구조의 데이터베이스 및 관련 외부 쿼리 도구가 필요하지 않고, 그 결과 훨씬 빠릅니다.
“2억 5천만 개의 단백질 서열로 무감독 학습을 확장하여 생물학적 구조와 기능이 나타남”의 초록은
인공지능 분야에서, 비지도 학습을 통해 가능해진 데이터와 모델 용량의 규모 확장은 표현 학습과 통계적 생성의 주요한 진보를 이끌어냈습니다. 생명과학 분야에서는 시퀀싱의 예상되는 성장이 자연 시퀀스 다양성에 대한 전례 없는 데이터를 약속합니다. 진화의 규모에 걸친 단백질 언어 모델링은 생물학에 대한 예측 및 생성형 인공지능으로 나아가는 논리적인 단계입니다. 이를 위해, 우리는 진화적 다양성을 아우르는 2억 5천만 개의 단백질 시퀀스에 걸친 860억 개의 아미노산에 대해 딥 컨텍스트 언어 모델을 비지도 학습으로 훈련했습니다. 결과적으로 생성된 모델은 그 표현 안에 생물학적 특성에 대한 정보를 포함합니다. 이러한 표현은 시퀀스 데이터만으로 학습됩니다. 학습된 표현 공간은 아미노산의 생화학적 특성 수준에서부터 단백질의 원격 동종성(remote homology)에 이르기까지 구조를 반영하는 다중 규모(multiscale) 조직을 가지고 있습니다. 2차 및 3차 구조에 대한 정보는 표현에 인코딩되어 있으며, 선형 투영(linear projections)을 통해 식별할 수 있습니다. 표현 학습은 다양한 응용 분야로 일반화되는 특징을 생성하여, 돌연변이 효과와 2차 구조에 대한 최첨단(supervised) 예측을 가능하게 하고, 장거리 접촉 예측(long-range contact prediction)을 위한 최첨단 특징을 개선합니다.
The abstract from “Language models of protein sequences at the scale of evolution enable accurate structure prediction” is
최근 대규모 언어 모델이 규모가 커짐에 따라 단순한 패턴 매칭을 넘어 더 높은 수준의 추론을 수행하고 생동감 있는 이미지와 텍스트를 생성하는 등 새로운 능력이 나타나는 것으로 밝혀졌습니다. 단백질 서열로 학습된 언어 모델은 소규모로 연구되어 왔지만, 규모가 커질 때 생물학에 대해 무엇을 학습하는지는 잘 알려져 있지 않습니다. 본 연구에서는 지금까지 평가된 가장 큰 단백질 언어 모델인 150억 개 매개변수까지의 모델을 학습시켰습니다. 모델의 규모가 커질수록 개별 원자 수준의 해상도로 단백질의 3차원 구조를 예측할 수 있는 정보를 학습한다는 사실을 발견했습니다. 개별 단백질 서열로부터 원자 수준의 구조를 직접 예측하는 ESMFold를 소개합니다. 언어 모델이 잘 이해하는 낮은 퍼플렉시티를 가진 서열에 대해 ESMFold는 AlphaFold2와 RoseTTAFold와 유사한 정확도를 보입니다. ESMFold의 추론은 AlphaFold2보다 10배 빠르며, 메타지노믹 단백질의 구조 공간을 실용적인 시간 내에 탐색할 수 있게 합니다.
원본 코드는 여기에서 찾을 수 있으며, Meta AI의 Fundamental AI Research 팀에서 개발했습니다. ESM-1b, ESM-1v 및 ESM-2는 jasonliu와 Matt가 huggingface에 기여했습니다.
ESMFold는 Matt와 Sylvain가 huggingface에 기여했으며, 이 과정에서 도움을 주신 Nikita Smetanin, Roshan Rao, Tom Sercu에게 감사드립니다!
사용 팁
- ESM 모델은 masked language modeling(MLM) 목적 함수로 학습됩니다.
- HuggingFace의 ESMFold 포팅 버전은 openfold 라이브러리의 일부 구성 요소를 사용합니다.
openfold라이브러리는 Apache License 2.0 라이선스 하에 배포됩니다.
리소스
EsmConfig
클래스 transformers.EsmConfig
< 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 | None = Nonemask_token_id: int | None = Nonepad_token_id: int | None = Nonehidden_size: int = 768num_hidden_layers: int = 12num_attention_heads: int = 12intermediate_size: int = 3072hidden_dropout_prob: float | None = 0.1attention_probs_dropout_prob: float | None = 0.1max_position_embeddings: int = 1026rope_theta: float = 10000.0initializer_range: float = 0.02layer_norm_eps: float | None = 1e-12position_embedding_type: str | None = 'absolute'use_cache: bool = Trueemb_layer_norm_before: bool | None = Nonetoken_dropout: bool | None = Falseis_folding_model: bool | None = Falseesmfold_config: dict | transformers.models.esm.configuration_esm.EsmFoldConfig | None = Nonevocab_list: list[str] | tuple[str, ...] | None = Noneis_decoder: bool | None = Falseadd_cross_attention: bool | None = Falsetie_word_embeddings: bool = Truebos_token_id: int | None = Noneeos_token_id: int | list[int] | None = 2 )
매개변수
- vocab_size (
int, 선택 사항) — 모델의 어휘 크기입니다.input_ids로 표현할 수 있는 서로 다른 토큰의 수를 정의합니다. - mask_token_id (
int, 선택) — 어휘 사전에서 mask 토큰의 인덱스입니다. “mask-dropout” 스케일링 트릭 때문에 설정에 포함해야 하며, 이 트릭은 마스킹된 토큰의 수에 따라 입력을 스케일링합니다. - pad_token_id (
int, 선택 사항) — 어휘에서 패딩에 사용되는 토큰 ID입니다. - hidden_size (
int, 선택 사항, 기본값768) — 숨겨진 표현의 차원입니다. - num_hidden_layers (
int, 선택 사항, 기본값12) — Transformer 디코더의 숨겨진 레이어 수. - num_attention_heads (
int, 선택 사항, 기본값12) — Transformer decoder의 각 attention layer에 사용할 attention head의 수입니다. - intermediate_size (
int, 선택 사항, 기본값3072) — MLP 표현의 차원입니다. - hidden_dropout_prob (
float, 선택 사항, 기본값0.1) — 임베딩, 인코더, 풀러의 모든 완전 연결 계층에 적용되는 dropout 확률입니다. - attention_probs_dropout_prob (
float, 선택 사항, 기본값0.1) — Attention 확률에 적용할 dropout 비율입니다. - max_position_embeddings (
int, 선택 사항, 기본값1026) — 이 모델이 사용될 수 있는 최대 시퀀스 길이입니다. - rope_theta (
float, 기본값 10000.0) — RoPE 임베딩의 기본 주기입니다.position_embedding_type가"rotary"로 설정된 경우에만 사용됩니다. - initializer_range (
float, 선택 사항, 기본값0.02) — 모든 가중치 행렬을 초기화하는 truncated_normal_initializer의 표준 편차입니다. - layer_norm_eps (
float, 선택 사항, 기본값1e-12) — 레이어 정규화 레이어에서 사용되는 epsilon 값입니다. - position_embedding_type (
str, 선택 사항, 기본값"absolute") — 위치 임베딩의 유형입니다."absolute"또는 “rotary”` 중 하나를 선택합니다. - use_cache (
bool, 선택 사항, 기본값True) — 모델이 마지막 key/values attention을 반환할지 여부입니다(모든 모델에서 사용되지 않음).config.is_decoder=True인 경우 또는 모델이 decoder-only 생성 모델인 경우에만 관련이 있습니다. - emb_layer_norm_before (
bool, 선택 사항) — 임베딩 이후, 네트워크의 메인 스템 이전에 레이어 정규화를 적용할지 여부. - token_dropout (
bool, 기본값False) — 이 옵션이 활성화되면, 마스킹된 토큰은 입력 dropout에 의해 드롭아웃된 것으로 취급됩니다. - is_folding_model (
bool, 기본값False) — 이 옵션을 활성화하면 ESMFold 모델이 초기화됩니다. - esmfold_config (
dict, 선택 사항) — ESMFold 모듈을 초기화하는 설정입니다. - vocab_list (
list, 선택 사항) — 어휘 항목 목록입니다. - is_decoder (
bool, 선택 사항, 기본값False) — 모델이 디코더로 사용되는지 여부입니다.False인 경우 모델은 인코더로 사용됩니다. - add_cross_attention (
bool, 선택 사항, 기본값False) — 모델에 cross-attention 레이어를 추가할지 여부. - tie_word_embeddings (
bool, 선택, 기본값True) — 모델의tied_weights_keys매핑에 따라 가중치 임베딩을 묶을지 여부. - bos_token_id (
int, 선택 사항) — 어휘에서 스트림 시작에 사용되는 토큰 ID입니다. - eos_token_id (
Union[int, list[int]], 선택 사항, 기본값2) — 어휘에서 스트림 종료에 사용되는 토큰 ID입니다.
이것은 EsmModel의 설정을 저장하기 위한 설정 클래스입니다. 지정된 인자에 따라 Esm 모델을 인스턴스화하고 모델 아키텍처를 정의하는 데 사용됩니다. 기본값으로 설정을 인스턴스화하면 facebook/esm-1b와 유사한 설정이 생성됩니다.
Configuration 객체는 PreTrainedConfig를 상속하며 모델 출력을 제어하는 데 사용할 수 있습니다. 자세한 내용은 PreTrainedConfig의 문서를 참고하세요.
예:
>>> from transformers import EsmModel, EsmConfig
>>> # Initializing a ESM facebook/esm-1b style configuration
>>> configuration = EsmConfig(vocab_size=33)
>>> # Initializing a model from the configuration
>>> model = EsmModel(configuration)
>>> # Accessing the model configuration
>>> configuration = model.configEsmTokenizer
클래스 transformers.EsmTokenizer
< source >( vocab_fileunk_token = '<unk>'cls_token = '<cls>'pad_token = '<pad>'mask_token = '<mask>'eos_token = '<eos>'**kwargs )
ESM 토크나이저를 생성합니다.
build_inputs_with_special_tokens
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None )
get_special_tokens_mask
< source >( token_ids_0: listtoken_ids_1: list | None = Nonealready_has_special_tokens: bool = False ) → A list of integers in the range [0, 1]
특수 토큰이 추가되지 않은 토큰 목록에서 시퀀스 ID를 가져옵니다. 이 메서드는 토크나이저의 prepare_for_model 또는 encode_plus 메서드를 사용하여 특수 토큰을 추가할 때 호출됩니다.
create_token_type_ids_from_sequences
< source >( token_ids_0: listtoken_ids_1: list[int] | None = None ) → list[int]
시퀀스-페어 분류 작업에 사용될 마스크를 전달된 두 시퀀스에서 생성합니다.
이 메서드는 토크나이저의 구성 속성을 기반으로 토큰 유형 ID를 동적으로 생성합니다:
token_type_ids_pattern: 사용할 패턴(“all_zeros” 또는 “bert_style”)token_type_ids_include_special_tokens: 길이 계산에 특수 토큰을 포함할지 여부
예:
# All zeros pattern (default, used by RoBERTa, BART, etc.)
tokenizer.token_type_ids_pattern = "all_zeros"
# Returns: [0, 0, 0, ...] for both sequences
# BERT-style pattern (first sequence gets 0s, second gets 1s)
tokenizer.token_type_ids_pattern = "bert_style"
# Returns: [0, 0, 0, ..., 1, 1, 1, ...] for sequence pairsEsmModel
클래스 transformers.EsmModel
< source >( config: EsmConfigadd_pooling_layer = True )
매개변수
- config (EsmConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
- add_pooling_layer (
bool, 선택 사항, 기본값True) — pooling layer를 추가할지 여부
상단에 특정 head 없이 원시 hidden-state를 출력하는 기본 Esm Model.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( input_ids: typing.Optional[torch.Tensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: typing.Optional[torch.Tensor] = Noneencoder_attention_mask: typing.Optional[torch.Tensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → BaseModelOutputWithPoolingAndCrossAttentions or tuple(torch.Tensor)
매개변수
- input_ids (
torch.LongTensor형상((batch_size, sequence_length))) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 인덱스는 AutoTokenizer를 사용하여 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()을 참조하세요. input ID란 무엇인가요?AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.
- attention_mask (
torch.Tensor형상이(batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- position_ids (
torch.LongTensorshape((batch_size, sequence_length)), 선택 사항) — 위치 임베딩에서 각 입력 시퀀스 토큰의 위치 인덱스. 범위[0, config.max_position_embeddings - 1]. - inputs_embeds (
torch.Tensor, shape((batch_size, sequence_length), hidden_size), 선택 사항) —input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다input_ids인덱스를 관련 벡터로 변환하는 방식에 대한 더 세밀한 제어가 필요한 경우 유용합니다. - encoder_hidden_states (
torch.Tensor, shape(batch_size, sequence_length, hidden_size), 선택 사항) — 인코더의 마지막 레이어 출력에서 생성된 hidden-states 시퀀스입니다. 모델이 decoder로 구성된 경우 cross-attention에 사용됩니다. - encoder_attention_mask (
torch.Tensor형상이(batch_size, sequence_length), 선택 사항) — 인코더 입력의 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 하는 마스크입니다. 모델이 decoder로 구성된 경우 cross-attention에 이 마스크가 사용됩니다.[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
반환값
BaseModelOutputWithPoolingAndCrossAttentions 또는 tuple(torch.Tensor)
torch.Tensor의 튜플 또는 BaseModelOutputWithPoolingAndCrossAttentions(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(EsmConfig)과 입력에 따라 다양한 요소를 포함합니다.
EsmModel의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
last_hidden_state (
torch.Tensor, shape(batch_size, sequence_length, hidden_size)) — 모델의 마지막 레이어 출력에서 생성된 hidden-state 시퀀스입니다.pooler_output (
torch.Tensor, shape(batch_size, hidden_size)) — 보조 사전 학습 작업을 위해 사용되는 레이어들을 통해 추가 처리된 시퀀스의 첫 번째 토큰(분류 토큰)의 마지막 레이어 hidden-state입니다. 예를 들어 BERT 계열 모델의 경우, 선형 레이어와 tanh 활성화 함수를 통해 처리된 후의 분류 토큰을 반환합니다. 선형 레이어의 가중치는 사전 학습 동안 다음 문장 예측(분류) 목적 함수를 통해 학습됩니다.hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
cross_attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True와config.add_cross_attention=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.decoder의 cross-attention 레이어에서 attention softmax를 적용한 후, cross-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention 가중치입니다.
past_key_values (
Cache, 선택 사항,use_cache=True가 전달되었거나config.use_cache=True인 경우 반환됨) — Cache 인스턴스입니다. 자세한 내용은 kv cache 가이드를 참고하세요.순차적 디코딩을 가속화하는 데 사용할 수 있는 사전 계산된 hidden-states(셀프 어텐션 블록의 key와 value, 그리고
config.is_encoder_decoder=True인 경우 크로스 어텐션 블록의 key와 value)를 포함합니다(입력past_key_values참조).
EsmForMaskedLM
클래스 transformers.EsmForMaskedLM
< source >( config: EsmConfig )
매개변수
- config (EsmConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
language modeling 헤드가 위에 있는 Esm Model입니다.”
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Noneencoder_hidden_states: typing.Optional[torch.Tensor] = Noneencoder_attention_mask: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → MaskedLMOutput or tuple(torch.Tensor)
매개변수
- input_ids (
torch.LongTensor형상이(batch_size, sequence_length), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.
- attention_mask (
torch.Tensor형상이(batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- position_ids (
torch.LongTensor의 shape(batch_size, sequence_length), , 선택 사항) — 위치 임베딩에서 각 입력 시퀀스 토큰의 위치 인덱스. 범위[0, config.n_positions - 1]. - inputs_embeds (
torch.Tensor, shape(batch_size, sequence_length, hidden_size), 선택) —input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다input_ids인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다. - encoder_hidden_states (
torch.Tensor, shape(batch_size, sequence_length, hidden_size), 선택 사항) — 인코더의 마지막 레이어 출력에서 생성된 hidden-states 시퀀스입니다. 모델이 decoder로 구성된 경우 cross-attention에 사용됩니다. - encoder_attention_mask (
torch.Tensor형상이(batch_size, sequence_length), 선택 사항) — 인코더 입력의 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 하는 마스크입니다. 모델이 decoder로 구성된 경우 cross-attention에 이 마스크가 사용됩니다.[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- labels (
torch.LongTensor, shape(batch_size, sequence_length), 선택 사항) — 마스크 언어 모델링 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는[-100, 0, ..., config.vocab_size]범위여야 합니다(input_idsdocstring 참조). 인덱스가-100으로 설정된 토큰은 무시(마스크)되며, 손실은 라벨이[0, ..., config.vocab_size]범위에 있는 토큰에 대해서만 계산됩니다.
반환값
MaskedLMOutput 또는 tuple(torch.Tensor)
torch.Tensor의 튜플 또는 MaskedLMOutput (인수가 return_dict=False인 경우 또는 config.return_dict=False인 경우). 구성(EsmConfig)과 입력에 따라 다양한 요소를 포함합니다.
EsmForMaskedLM의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
loss (
torch.Tensor, shape(1,), 선택 사항,labels이 제공될 때 반환됨) — Masked language modeling (MLM) loss.logits (
torch.Tensor, shape(batch_size, sequence_length, config.vocab_size)) — 언어 모델링 헤드에서 생성된 예측 점수(SoftMax 적용 전 각 어휘 토큰에 대한 점수).hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
예:
>>> from transformers import AutoTokenizer, EsmForMaskedLM
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("facebook/esm-1b")
>>> model = EsmForMaskedLM.from_pretrained("facebook/esm-1b")
>>> inputs = tokenizer("The capital of France is <mask>.", return_tensors="pt")
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> # retrieve index of <mask>
>>> mask_token_index = (inputs.input_ids == tokenizer.mask_token_id)[0].nonzero(as_tuple=True)[0]
>>> predicted_token_id = logits[0, mask_token_index].argmax(axis=-1)
>>> tokenizer.decode(predicted_token_id)
...
>>> labels = tokenizer("The capital of France is Paris.", return_tensors="pt")["input_ids"]
>>> # mask labels of non-<mask> tokens
>>> labels = torch.where(inputs.input_ids == tokenizer.mask_token_id, labels, -100)
>>> outputs = model(**inputs, labels=labels)
>>> round(outputs.loss.item(), 2)
...EsmForSequenceClassification
class transformers.EsmForSequenceClassification
< source >( config: EsmConfig )
매개변수
- config (EsmConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
ESM 모델 트랜스포머의 상단에 시퀀스 분류/회귀 헤드가 있는 구조(풀링된 출력 위에 선형 레이어를 배치)로, 예를 들어 GLUE 작업에 사용됩니다.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → SequenceClassifierOutput or tuple(torch.Tensor)
매개변수
- input_ids (
torch.LongTensor형상이(batch_size, sequence_length), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.
- attention_mask (
torch.Tensor형상이(batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- position_ids (
torch.LongTensor의 shape(batch_size, sequence_length), , 선택 사항) — 위치 임베딩에서 각 입력 시퀀스 토큰의 위치 인덱스. 범위[0, config.n_positions - 1]. - inputs_embeds (
torch.Tensor, shape(batch_size, sequence_length, hidden_size), 선택) —input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다input_ids인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다. - labels (
torch.LongTensor, shape(batch_size,), 선택 사항) — 시퀀스 분류/회귀 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는[0, ..., config.num_labels - 1]범위에 있어야 합니다.config.num_labels == 1인 경우 회귀 손실(Mean-Square loss)이 계산되고,config.num_labels > 1인 경우 분류 손실(Cross-Entropy)이 계산됩니다.
반환값
SequenceClassifierOutput 또는 tuple(torch.Tensor)
torch.Tensor의 튜플 또는 SequenceClassifierOutput입니다. 구성(EsmConfig)과 입력에 따라 다양한 요소를 포함하며, return_dict=False가 전달되거나 config.return_dict=False인 경우에도 동일합니다.
EsmForSequenceClassification의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
loss (
torch.Tensor, shape(1,), 선택 사항,labels이 제공될 때 반환됨) — 분류 (또는 config.num_labels==1인 경우 회귀) 손실.logits (
torch.Tensor, shape(batch_size, config.num_labels)) — SoftMax 적용 전 분류(또는 config.num_labels==1인 경우 회귀) 점수.hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
단일 레이블 분류의 예시:
>>> import torch
>>> from transformers import AutoTokenizer, EsmForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("facebook/esm-1b")
>>> model = EsmForSequenceClassification.from_pretrained("facebook/esm-1b")
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> predicted_class_id = logits.argmax().item()
>>> model.config.id2label[predicted_class_id]
...
>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = EsmForSequenceClassification.from_pretrained("facebook/esm-1b", num_labels=num_labels)
>>> labels = torch.tensor([1])
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...다중 레이블 분류의 예시:
>>> import torch
>>> from transformers import AutoTokenizer, EsmForSequenceClassification
>>> tokenizer = AutoTokenizer.from_pretrained("facebook/esm-1b")
>>> model = EsmForSequenceClassification.from_pretrained("facebook/esm-1b", problem_type="multi_label_classification")
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> predicted_class_ids = torch.arange(0, logits.shape[-1])[torch.sigmoid(logits).squeeze(dim=0) > 0.5]
>>> # To train a model on `num_labels` classes, you can pass `num_labels=num_labels` to `.from_pretrained(...)`
>>> num_labels = len(model.config.id2label)
>>> model = EsmForSequenceClassification.from_pretrained(
... "facebook/esm-1b", num_labels=num_labels, problem_type="multi_label_classification"
... )
>>> labels = torch.sum(
... torch.nn.functional.one_hot(predicted_class_ids[None, :].clone(), num_classes=num_labels), dim=1
... ).to(torch.float)
>>> loss = model(**inputs, labels=labels).lossEsmForTokenClassification
클래스 transformers.EsmForTokenClassification
< source >( config: EsmConfig )
매개변수
- config (EsmConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
토큰 분류 헤드가 위에 있는 Esm transformer(예: Named-Entity-Recognition(NER) 작업)입니다. 이 헤드는 hidden-states 출력 위에 있는 선형 레이어입니다.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( input_ids: typing.Optional[torch.LongTensor] = Noneattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.LongTensor] = Noneinputs_embeds: typing.Optional[torch.Tensor] = Nonelabels: typing.Optional[torch.LongTensor] = None**kwargs: *<class 'transformers.utils.generic.TransformersKwargs'> ) → TokenClassifierOutput or tuple(torch.Tensor)
매개변수
- input_ids (
torch.LongTensor형상이(batch_size, sequence_length), 선택 사항) — 어휘(input vocabulary)에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 패딩은 무시됩니다.AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.
- attention_mask (
torch.Tensor형상이(batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- position_ids (
torch.LongTensor의 shape(batch_size, sequence_length), , 선택 사항) — 위치 임베딩에서 각 입력 시퀀스 토큰의 위치 인덱스. 범위[0, config.n_positions - 1]. - inputs_embeds (
torch.Tensor, shape(batch_size, sequence_length, hidden_size), 선택) —input_ids를 전달하는 대신 임베딩 표현을 직접 전달할 수 있습니다. 이는 모델 내부의 임베딩 조회 행렬보다input_ids인덱스를 관련 벡터로 변환하는 방식에 대해 더 세밀한 제어가 필요한 경우에 유용합니다. - labels (
torch.LongTensor, shape(batch_size, sequence_length), 선택 사항) — 토큰 분류 손실을 계산하는 데 사용되는 라벨입니다. 인덱스는[0, ..., config.num_labels - 1]범위에 있어야 합니다.
반환값
TokenClassifierOutput 또는 tuple(torch.Tensor)
torch.Tensor의 튜플 또는 TokenClassifierOutput입니다. 구성(EsmConfig)과 입력에 따라 다양한 요소를 포함하며, return_dict=False가 전달되거나 config.return_dict=False인 경우에도 동일합니다.
EsmForTokenClassification의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
loss (
torch.Tensor, shape(1,), 선택 사항,labels이 제공될 때 반환됨) — 분류 손실.logits (
torch.Tensor, shape(batch_size, sequence_length, config.num_labels)) — SoftMax 적용 전 분류 점수.hidden_states (
tuple(torch.Tensor), 선택 사항,output_hidden_states=True가 전달되거나config.output_hidden_states=True인 경우 반환됨) —torch.Tensor의 튜플(모델에 임베딩 레이어가 있는 경우 임베딩 출력 1개 + 각 레이어의 출력 1개)로, 모양은(batch_size, sequence_length, hidden_size)입니다.각 레이어의 출력에서 모델의 Hidden-states와 선택적 초기 임베딩 출력을 포함합니다.
attentions (
tuple(torch.Tensor), 선택 사항,output_attentions=True가 전달되었거나config.output_attentions=True인 경우 반환됨) — 각 레이어마다 하나씩 포함된torch.Tensor의 튜플로, 모양은(batch_size, num_heads, sequence_length, sequence_length)입니다.self-attention 헤드에서 가중 평균을 계산하는 데 사용되는 attention softmax 이후의 attention 가중치.
예:
>>> from transformers import AutoTokenizer, EsmForTokenClassification
>>> import torch
>>> tokenizer = AutoTokenizer.from_pretrained("facebook/esm-1b")
>>> model = EsmForTokenClassification.from_pretrained("facebook/esm-1b")
>>> inputs = tokenizer(
... "HuggingFace is a company based in Paris and New York", add_special_tokens=False, return_tensors="pt"
... )
>>> with torch.no_grad():
... logits = model(**inputs).logits
>>> predicted_token_class_ids = logits.argmax(-1)
>>> # Note that tokens are classified rather then input words which means that
>>> # there might be more predicted token classes than words.
>>> # Multiple token classes might account for the same word
>>> predicted_tokens_classes = [model.config.id2label[t.item()] for t in predicted_token_class_ids[0]]
>>> predicted_tokens_classes
...
>>> labels = predicted_token_class_ids
>>> loss = model(**inputs, labels=labels).loss
>>> round(loss.item(), 2)
...EsmForProteinFolding
class transformers.EsmForProteinFolding
< source >( config: EsmConfig )
매개변수
- config (EsmConfig) — 모델의 모든 매개변수를 포함하는 모델 구성 클래스입니다. 구성 파일로 초기화하는 것은 모델과 연관된 가중치를 로드하지 않으며, 구성 정보만 로드합니다. 모델 가중치를 로드하려면 from_pretrained() 메서드를 확인하세요.
ESMForProteinFolding은 원래 ESMFold 모델의 HuggingFace 포팅 버전입니다. ESM-2 “stem”에 이어 단백질 접힘 “head”로 구성되지만, 대부분의 다른 출력 head와 달리 이 “head”는 나머지 모델 전체와 유사한 크기와 런타임을 가집니다. 입력 단백질에 대한 예측된 구조 정보를 포함하는 딕셔너리를 출력합니다.
이 모델은 PreTrainedModel에서 상속됩니다. 라이브러리가 모든 모델에 대해 구현하는 일반적 메서드(다운로드 또는 저장, 입력 임베딩 크기 조정, 헤드 프루닝 등)에 대한 세부 사항은 상위 클래스 문서를 확인하세요.
이 모델은 또한 PyTorch torch.nn.Module의 하위 클래스입니다. 일반적인 PyTorch Module처럼 사용하며, 일반적인 사용법 및 동작과 관련된 모든 사항은 PyTorch 문서를 참조하세요.
forward
< source >( input_ids: Tensorattention_mask: typing.Optional[torch.Tensor] = Noneposition_ids: typing.Optional[torch.Tensor] = Nonemasking_pattern: typing.Optional[torch.Tensor] = Nonenum_recycles: int | None = Noneoutput_hidden_states: bool | None = False**kwargs ) → EsmForProteinFoldingOutput or tuple(torch.Tensor)
매개변수
- input_ids (
torch.Tensor의 shape(batch_size, sequence_length)) — 어휘 사전에서 입력 시퀀스 토큰의 인덱스입니다. 기본적으로 Padding은 무시됩니다.AutoTokenizer를 사용하여 인덱스를 얻을 수 있습니다. 자세한 내용은 PreTrainedTokenizer.encode() 및 PreTrainedTokenizer.call()를 참조하세요.
- attention_mask (
torch.Tensor형상이(batch_size, sequence_length), 선택 사항) — 패딩 토큰 인덱스에 대한 attention을 수행하지 않도록 방지하는 마스크. [0, 1]에서 선택된 마스크 값: 마스크되지 않은 토큰은 1, 마스크된 토큰은 0. attention mask란 무엇인가요?[0, 1]:- 마스크되지 않은 토큰에 대해 1
- 마스크된 토큰에 대해 0
- position_ids (
torch.Tensor의 shape(batch_size, sequence_length), , 선택 사항) — 입력 시퀀스 토큰의 위치 임베딩에서 각 토큰의 위치 인덱스. 범위는[0, config.n_positions - 1]. - masking_pattern (
torch.LongTensor, shape(batch_size, sequence_length), 선택 사항) — 학습 시 정규화(regularization)의 일환으로 마스킹할 토큰의 위치입니다.[0, 1]범위에서 선택된 마스킹 값입니다. - num_recycles (
int, 선택 사항, 기본값None) — 입력 시퀀스를 재활용할 횟수입니다.None인 경우 기본값은config.num_recycles입니다. “재활용”은 폴딩 트렁크의 출력을 다시 트렁크의 입력으로 전달하는 과정을 의미합니다. 학습 단계에서는 각 배치마다 재활용 횟수를 다르게 설정하여, 모델이 각 재활용 이후에도 유효한 예측을 출력하도록 학습되도록 해야 합니다. 추론 단계에서는 num_recycles를 모델이 학습된 최고 값으로 설정하여 최대 정확도를 확보해야 합니다. 따라서 이 값이None으로 설정된 경우 config.max_recycles가 사용됩니다. - output_hidden_states (
bool, 선택 사항, 기본값False) — 모든 레이어의 hidden states를 반환할지 여부입니다. 자세한 내용은 반환되는 텐서 중hidden_states항목을 참고하세요.
반환값
EsmForProteinFoldingOutput 또는 tuple(torch.Tensor)
EsmForProteinFoldingOutput 또는 torch.Tensor의 튜플(return_dict=False가 전달되었거나 config.return_dict=False인 경우)로, 구성(EsmConfig)과 입력에 따라 다양한 요소를 포함합니다.
EsmForProteinFolding의 forward 메서드는 __call__ 특수 메서드를 오버라이드합니다.
이 함수 내에서 forward pass의 레시피를 정의해야 하지만, 이후에는 이 함수 대신
Module인스턴스를 호출해야 합니다. 전자는 전처리 및 후처리 단계를 실행하는 것을 처리하는 반면, 후자는 이를 조용히 무시하기 때문입니다.
- frames (
torch.Tensor, 선택 사항) — 출력 프레임. - sidechain_frames (
torch.Tensor, 선택 사항) — 출력 사이드체인 프레임. - unnormalized_angles (
torch.Tensor, 선택 사항) — 예측된 정규화되지 않은 백본 및 사이드 체인 토션 각도. - angles (
torch.Tensor, 선택 사항) — 예측된 백본 및 사이드 체인 토션 각도. - positions (
torch.Tensor, 선택 사항) — 백본 및 사이드 체인 원자의 예측된 위치. - states (
torch.Tensor, 선택 사항) — 단백질 접힘 트렁크에서 나온 숨겨진 상태입니다. - s_s (
torch.Tensor, 선택 사항) — ESM-2 LM stem의 각 레이어 숨겨진 상태를 연결하여 유도된 잔기별 임베딩. - s_z (
torch.Tensor, 선택 사항) — 쌍별 잔기 임베딩. - distogram_logits (
torch.Tensor, 선택 사항) — 잔기 거리(residue distances)를 계산하는 데 사용되는 distogram에 입력되는 logits입니다. - lm_logits (
torch.Tensor, 선택 사항) — ESM-2 단백질 언어 모델 스템이 출력하는 로짓입니다. - aatype (
torch.Tensor, 선택 사항) — 입력 아미노산 (AlphaFold2 인덱스). - atom14_atom_exists (
torch.Tensor, 선택 사항) — 각 원자가 atom14 표현에 존재하는지 여부입니다. - residx_atom14_to_atom37 (
torch.Tensor, optional) — Mapping between atoms in the atom14 and atom37 representations. - residx_atom37_to_atom14 (
torch.Tensor, optional) — Mapping between atoms in the atom37 and atom14 representations. - atom37_atom_exists (
torch.Tensor, 선택 사항) — 각 원자가 atom37 표현에 존재하는지 여부. - residue_index (
torch.Tensor, 선택 사항) — 단백질 체인에서 각 잔기의 인덱스입니다. 내부 패딩 토큰을 사용하지 않는 한, 이는 0부터sequence_length까지의 정수 시퀀스가 됩니다. - lddt_head (
torch.Tensor, 선택 사항) — plddt를 계산하는 데 사용되는 lddt head의 원시 출력입니다. - plddt (
torch.Tensor, 선택 사항) — 잔기(confidence)별 신뢰도 점수. 낮은 신뢰도의 영역은 모델의 예측이 불확실하거나 단백질 구조가 무질서한 영역을 나타낼 수 있습니다. - ptm_logits (
torch.Tensor, 선택 사항) — ptm을 계산하는 데 사용되는 원시 logits입니다. - ptm (
torch.Tensor, 선택 사항) — 모델의 전체 구조에 대한 고수준 신뢰도를 나타내는 TM-score 출력입니다. - aligned_confidence_probs (
torch.Tensor, 선택 사항) — 정렬된 구조의 잔기별 신뢰도 점수입니다. - predicted_aligned_error (
torch.Tensor, 선택 사항) — 모델의 예측값과 ground truth 사이의 예측 오차입니다. - max_predicted_aligned_error (
torch.Tensor, 선택 사항) — 샘플별 최대 예측 오류.
예:
>>> from transformers import AutoTokenizer, EsmForProteinFolding
>>> model = EsmForProteinFolding.from_pretrained("facebook/esmfold_v1")
>>> tokenizer = AutoTokenizer.from_pretrained("facebook/esmfold_v1")
>>> inputs = tokenizer(["MLKNVQVQLV"], return_tensors="pt", add_special_tokens=False) # A tiny random peptide
>>> outputs = model(**inputs)
>>> folded_positions = outputs.positions