인프런 커뮤니티 질문&답변

vpdtlrdl님의 프로필 이미지
vpdtlrdl

작성한 질문수

처음하는 딥러닝과 파이토치(Pytorch) 부트캠프 (쉽게! 기본부터 챗GPT 핵심 트랜스포머까지) [데이터분석/과학 Part4]

Huggingface transforms 라이브러리 기반 Vision Transformer 적용 실습2 (CIFAR10 데이터셋)

from_pretrained 에 관한 질문입니다

해결된 질문

작성

·

1.5K

·

수정됨

0

강의 4:53 에 나오는 from_pretrained 함수에 관한 질문입니다.

공식 문서를 아무리 찾아봐도, 더 미궁 속으로 빠지는 듯한 느낌만 들어서(...) 질문 올립니다.

 

from_pretrained 메소드는 huggingface에서 제공하는 그 어떠한 클래스에도 공통적으로 적용이 가능한 것인지 궁금합니다.

공식 문서에서 from_pretrained를 검색해본 결과, 각 검색 페이지마다 from_pretrained의 파라미터가 다르게 나오고, 그에 대한 설명조차도 찾을 수가 없었습니다...

예를 들어, FeatureExtractionMixin 의 from_pretrained 메소드의 파라미터는 9개인 반면, AutoTokenizer의 from_pretrained 메소드의 파라미터는 13개 라고 서술되어 있는 경우를 볼 수 있었습니다.

또한, 강의에서 사용하였던

feature_extractor = ViTFeatureExtractor.from_pretrained("google/vit-base-patch16-224-in21k")
feature_extractor

이 코드와,

model = ViTForImageClassification.from_pretrained('google/vit-base-patch16-224-in21k',
                                                  num_labels=10, # 10개의 클래스로 분류를 해야 함
                                                  id2label=id2label,
                                                  label2id=label2id)

이 코드에서도 역시 from_pretrained 메소드가 사용되었는데,

공식 문서에서 ViTFeatureExtractor와 ViTForImageClassification을 아무리 찾아보아도 from_pretrained 메소드에 관한 설명은 볼 수가 없었으며, 각각의 경우에 적용되는 파라미터에 관한 내용 역시 찾아볼 수 없었습니다.

이런 경우, 다른 코드에 from_pretrained 메소드를 적용할 때에는 해당되는 내용을 어떻게 찾아야 하는 것인지 궁금합니다.

답변 1

0

안녕하세요. 답변도우미입니다.

from_pretrained 메소드는 Hugging Face의 Transformers 라이브러리에서 모델과 토크나이저를 불러올 때 주로 사용됩니다. 이 메소드는 다양한 클래스에서 사용할 수 있지만, 모두 공통적으로 적용되는 것은 아닙니다. 대부분의 사전 학습된 모델 및 토크나이저 클래스에서 사용할 수 있습니다.

예를 들어, 다음과 같은 모델 및 토크나이저 클래스에서 from_pretrained 메소드를 사용할 수 있습니다:

  1. BertModel

  2. BertTokenizer

  3. GPT2Model

  4. GPT2Tokenizer

  5. T5Model

  6. T5Tokenizer

  7. RobertaModel

  8. RobertaTokenizer

등등 다양한 모델과 토크나이저에 대해 사용할 수 있습니다. 하지만 Hugging Face의 모든 클래스에 공통적으로 적용되는 것은 아니며, 일부 특정 클래스에서는 사용할 수 없을 수 있습니다. 주로 사전 학습된 모델과 토크나이저에 대해 사용 가능합니다.

다음으로 Hugging Face 공식 문서에서 특정 클래스의 from_pretrained 메소드에 대한 정보를 찾지 못한 경우, 다음 방법들을 시도해 볼 수 있습니다만, 생각보다는 저희가 생각하는대로, 잘 설명이 되어 있지는 않습니다.

  1. GitHub 저장소 확인: Hugging Face Transformers의 GitHub 저장소에서 해당 클래스에 대한 구현 코드를 찾아보세요. 코드 내에 주석이나 사용 예시가 있을 수 있습니다. 예를 들어, ViTFeatureExtractorViTForImageClassification 클래스의 코드를 살펴보려면, 다음 링크를 확인하십시오: ViTFeatureExtractor, ViTForImageClassification.

  2. 예제 코드 검색: Hugging Face 공식 문서 외에도, 해당 클래스를 사용한 예제 코드를 찾아보세요. GitHub 저장소에서 제공하는 예제 코드나 다른 사용자가 작성한 블로그, 튜토리얼 등에서 유용한 정보를 얻을 수 있습니다.

  3. Hugging Face 포럼 이용: Hugging Face에서는 사용자들이 질문을 하고 답변을 받을 수 있는 포럼을 운영하고 있습니다. 여기에서 비슷한 질문이 있는지 검색해보거나, 새로운 질문을 작성하여 도움을 요청할 수 있습니다.

  4. 공식 문서의 다른 부분 참조: 때로는 클래스에 대한 from_pretrained 정보가 클래스 별로 설명된 부분이 아닌, 다른 문서의 일반적인 부분에 포함되어 있을 수 있습니다. 따라서, 전체 문서를 검색하거나, 검색 기능을 이용해 관련 정보를 찾아보세요.

  5. 소스 코드를 직접 확인: 필요한 경우, 직접 Hugging Face Transformers 라이브러리의 소스 코드를 확인하여 관련 메소드나 클래스의 동작 방식을 이해할 수 있습니다. 이를 통해, 어떤 파라미터가 필요한지, 어떻게 사용되는지 등에 대한 정보를 얻을 수 있습니다.

감사합니다.

vpdtlrdl님의 프로필 이미지
vpdtlrdl

작성한 질문수

질문하기