AI/Transformers 2

HuggingFace Transformers에서 Zero-shot Classification의 원리

HuggingFace Transformers 라이브러리에서는 다양한 파이프라인들을 제공한다. 그 중 하나로 ZeroShotClassificationPipeline 이라는 것이 있는데, 미리 학습되지 않은 라벨들에 대해서 분류를 하는 기법이다. 알다시피, 모델 학습에는 다양한 공수와 리소스가 소요되기 때문에 현업에서는 필요에 따라 ZeroShot 혹은 FewShot 모델들을 잘 활용해야 하는 경우가 많이 있다. GPT-4와 같은 생성형 모델에서는 LLM의 성능을 통해 이러한 Zero Shot Classification을 수행하게 되는데, BERT와 같은 임베딩 모델 기반 환경에서는 Zero Shot Classification을 어떻게 다루게 될까? 허깅페이스 트랜스포머 소스코드 (transformers/s..

AI/Transformers 2024.03.06

Transformers Decoder의 "past_key_values"에 대하여

허깅페이스 Transformers를 통해 생성 모델을 사용하다보면 생성 결과 자료구조 내에 "past_key_values"라는 값이 있는 것을 확인할 수 있다. 이를 보면 아마 두가지 의문점이 들 것이다: 1) 왜 과거의 key, value 값들이 중요한가 2) 왜 query는 포함되지 않는가? 이에 대해서 자세히 알아보기 위해서는 Transformer Decoder의 Causal Masking Self Attention에 대해서 알아야 한다. 기본적으로, transformer는 모든 단어를 병렬적으로 처리하기 때문에 autoregressive 한 특성이 없다. 따라서, Causal Masking을 사용해서 목표하는 문장의 일부를 가려서 인위적으로 연속성을 학습하게 한다. Vanilla Transform..

AI/Transformers 2023.10.26