본문 바로가기
Computer/ML·DL·NLP

[ML] 머신러닝 모델에서의 head, backbone이란?

by injeolmialmond 2022. 8. 29.

태스크 : 주어진 텍스트를, HuggingFace에 serving되고 있는 Sentence Transformer를 활용하여 embedding 후, 분류하라

-> HuggingFace의 틀에 맞춰서 모델이 들어가 있으니, HuggingFace 사이트에서 각각 class와 attribute 등에 대한 문서를 살펴보도록 하자

-> HuggingFace의 'pipeline'기능은 모델 전체 기능을 활용하기보다, 선별적으로 사용하고 싶을 때 유용하다. 예를 들어 어떤 모델에서 ner(named entity recognition) 기능만 가져다 쓰고 싶다거나, 감성분석만 하고 싶다거나...

 

그래서 HuggingFace의 Feature Extraction Pipeline을 사용하려고 문서를 찾아보니...

https://huggingface.co/docs/transformers/v4.21.2/en/main_classes/pipelines#transformers.FeatureExtractionPipeline

 

Pipelines

The pipelines are a great and easy way to use models for inference. These pipelines are objects that abstract most of the complex code from the library, offering a simple API dedicated to several tasks, including Named Entity Recognition, Masked Language M

huggingface.co

Feature extraction pipeline using no model head. This pipeline extracts the hidden states from the base transformer, which can be used as features in downstream tasks.

'using no model head'라는 말이 어떤 뜻인지 궁금하여 찾아보니, 머신러닝에서는 head와 backbone이라는 용어를 서로 반대의 개념으로 사용한다.

 

Head, Backbone이 뭘까?

https://stackoverflow.com/questions/56004483/what-is-a-multi-headed-model-and-what-exactly-is-a-head-in-a-model

 

What is a multi-headed model? And what exactly is a 'head' in a model?

What is a multi-headed model in deep learning? The only explanation I found so far is this: Every model might be thought of as a backbone plus a head, and if you pre-train backbone and put a rando...

stackoverflow.com

쉽게 풀어서 얘기하면, backbone은 convolution & pooling이 진행되는, feature extraction이 이루어지는 부분이고 head는 이렇게 추출한 feature를 통해서 원하는 태스크를 실행하는 부분이라고 이해할 수 있다.

댓글