임베딩과 스태킹

임베딩과 스태킹

모든 Flair 모델은 임베딩 위에서 훈련되므로, 임베딩을 이해하는 게 중요해요. 문장 단위로 임베딩하려면 Sentence를 만들고 임베딩 객체의 embed()를 호출해요.

from flair.data import Sentence

sentence = Sentence('The grass is green .')

트랜스포머 워드 임베딩은 Flair에서 가장 중요한 개념이에요. 여러 임베딩을 조합하고 싶을 땐 StackedEmbeddings 클래스를 써요. 파인튜닝하지 않을 때는 여러 임베딩을 조합하는 게 가장 좋은 결과를 내는 경우가 많아요.

from flair.embeddings import WordEmbeddings, FlairEmbeddings, StackedEmbeddings

# 조합할 임베딩 생성
glove_embedding = WordEmbeddings('glove')
flair_embedding_forward = FlairEmbeddings('news-forward')
flair_embedding_backward = FlairEmbeddings('news-backward')

# 스택 생성
stacked_embeddings = StackedEmbeddings([
    glove_embedding,
    flair_embedding_forward,
    flair_embedding_backward,
])

만든 스택은 일반 임베딩처럼 embed()로 문장에 적용하면 돼요. 각 단어는 세 임베딩의 연결(concatenation)로 표현되고, 결과 벡터는 여전히 단일 PyTorch 벡터예요.

전체 문서(documents) 임베딩이 필요하면 DocumentEmbeddings 클래스를 쓰면 돼요.

더 알아보기