본문 바로가기

필기 노트/Huggingface Transformers5

[Huggingface] Datasets / Preprocessing / Training / Evaluating 출처 : https://www.youtube.com/watch?v=_BZearw7f0w&list=PLo2EIpI_JMQvbh6diTDl2TwbAyu8QWdpx&ab_channel=HuggingFace Dataset / Preprocessing load_dataset() 을 통해서 Huggingface에서 제공하는 데이터셋을 불러와서 사용할 수 있다. load_dataset() 을 통해서 불러온 데이터셋은 DatasetDict 클래스로 제공된다. (그냥 dictionary라고 생각하면 된다.) split 에 따라서 "train", "validation", "test" 등으로 구분되어 있어서 해당 split의 이름으로 데이터셋에 접근할 수 있다. raw_dataset = load_dataset('...') .. 2021. 7. 18.
[Huggingface] PreTrainedTokenizer class 모든 Tokenizer들이 상속받는 기본 tokenizer 클래스이다. Tokenizer에 대한 간단한 정리는 여기에서 확인할 수 있다. Tokenizer는 모델에 어떠한 입력을 넣어주기 위해서 전처리를 담당한다. Huggingface transformers 라이브러리에서는 크게 두 가지 종류의 tokenizer를 지원하는데, 첫 번째로는 파이썬으로 구현된 일반 tokenizer와 Rust 로 구축된 "Fast" tokenizer로 구분할 수 있다. "Fast" tokenizer에서는 batched tokenization에서 속도를 더 빠르게 해주고, 입력으로 주어진 문장과 token 사이를 mapping 해주는 추가적인 함수를 지원한다. 참고로, "Fast" tokenizer들을 SentencePiec.. 2021. 7. 18.
[Huggingface] PretrainedConfig class PretrainedConfig 공식 문서 : https://huggingface.co/transformers/main_classes/configuration.html 코드 : https://huggingface.co/transformers/_modules/transformers/configuration_utils.html#PretrainedConfig 모든 모델들의 configuration class의 base class. 모델들의 configuration 값들을 가지고 있고, 모델을 저장하고 불러오는데 필요한 configuration 들도 가지고 있다. 공통적으로 사용되는 파라미터 - model_type - vocab_size - hidden_size - num_attention_heads : mult.. 2021. 7. 16.
[Huggingface] PreTrainedModel class 최근들어 Huggingface에서 제공하는 Transformers 라이브러리를 많이 사용하는데, 구체적인 동작 방식을 이해하고 사용하면 좋은 것 같아서 기초부터 차근차근 정리해본다. 간단하게 정히한거라, 공식 문서와 코드를 참고하면 더 도움이 될 듯! PreTrainedModel 공식 문서 : https://huggingface.co/transformers/main_classes/model.html 코드 : https://huggingface.co/transformers/_modules/transformers/modeling_utils.html 모델의 configuration을 저장하고, 모델을 불러오고 저장하는 역할을 수행한다. 추가적으로, 임베딩의 크기를 바꿔주는 역할, self-attention h.. 2021. 7. 16.
[Huggingface] Huggingface Tokenizer Huggingface의 tokenizer 동작 방식에 대한 간단한 정리. 컴퓨터는 (당연히) 텍스트를 이해하지 못하고, 각 텍스트에 대응하는 숫자들을 이해한다. 그러므로, 우리는 어떤 텍스트를 어떤식으로 분리해서, 분리된 텍스트를 특정한 숫자(id)에 대응시키고, 해당 id를 모델의 입력으로 넣어주는 과정이 필요하다. 우선, 입력으로 들어온 텍스트를 조금 더 작은 단위로 분리하는 과정이 있는데, 이 과정에서 크게 3가지 방식이 사용된다 : word-based, character-based, subword-based. 1. word-based : 단순하게 단어 단위로 분리하고, 각 단어별로 고유의 id 값을 부여한다. 상당히 단순한 방식이고 구현이 간단하지만 몇 가지 문제점이 있다. 첫 번째로, 각 id에.. 2021. 7. 9.