LLM

허깅페이스 트랜스포머 라이브러리(1)

won-ian 2024. 8. 14. 11:39

※ 'LLM을 활용한 실전 AI 애플리케이션 개발' 책을 정리한 내용입니다. 

 

허깅페이스 트랜스포머

다양한 트랜스포머 모델이 통일된 인터페이스로 사용할 수 있도록 지원하는 오픈소스 라이브러리다. 허깅페이스는 트랜스포머 모델과 토크나이저를 활용할 때 사용하는 transformers 라이브러리와 데이터셋을 공개하고 쉽게 가져다 쓸 수 있도록 지원하는 datasets 라이브러리를 제공해 트랜스포머 모델을 쉽게 학습하고 추론에 활용할 수 있도록 돕는다.

※토크나이저(tokenizer) : 자연어 처리(NLP)에서 텍스트를 단어, 부분 단어, 문장, 하위 단위 등으로 분할하는 도구 또는 알고리즘

 

허깅페이스 허브에서는 다양한 사전 학습 모델과 데이터셋을 탐색하고 사용할 수 있는 온라인 플렛폼이다.

(https://huggingface.co/models)

 

모델 허브에는 어떤 작업(task)에 사용하는지, 어떤 언어(language)로 학습한 모델인지 등 다양한 기준으로 모델이 분류 되어있다. 모델 허브에서는 자연어 처리, 컴퓨터 비전, 오디오 처리, 멀티 모달 등 다양한 모델을 찾아볼 수 있다. 모든 모델에 있는 것은 아니지만 모델의 성능, 관련 있는 논문 소개, 사용 방법 등의 정보를 제공해주는 모델들도 있으니 잘 활용해보길 추천한다.

 

허깅페이스 모델은 바디(body)와 헤드(head)로 구분되어 있는데, 바디란 사전 학습된 모델의 기본 구조를 이야기한다. 우리가 잘 아는 BERT, GPT 등이 이에 해당한다. 헤드는 모델의 출력 부분으로, 다운스트림 작업에 맞게 바디에서 생성된 임베딩을 받아 특정 작업에 맞는 출력으로 변환하는 역할을 진행한다.

 

이렇게 구분해서 사용하는 이유는 같은 바디를 사용하면서 다른 작업에 사용할 수 있도록 만들기 위함이다. 

 

간편하게 모델학습을 수행할 수 있도록 학습 과정을 추상화한 트레이너(trainer) API를 제공한다. 트레이너 API를 사용하면, 학습을 간편하게 할 수 있다는 장점이 있지만 내부에서 어떤 과정을 거쳐서 진행이 되는지 알 수 없다.

 

트레이너 API 내부적으로 수행하던 GPU로의 모델 이동을 직접 수행하면 내부에서 어떤 일이 벌어지는지 확인할 수 있다!

 

모델로 추론하기 위해서는 파이프라인(pipeline)을 활용하면 간단히 수행할 수 있다. 파이프라인에 추론하고자 하는 텍스트를 입력하면 예측 확률이 높은 레이블과 그 확률을 반환한다.

 

만약 파이프라인을 활용하지 않는다면, 직접 모델과 토크나이저를 불러와 구현할 수 있다. 토크나이저를 통해 토큰화를 수행하고 모델 추론을 수행하고 가장 큰 예측 확률을 갖는 클래스를 추출해 결과로 반환하는 순서를 거치면된다.

'LLM' 카테고리의 다른 글

LLM 모델 만들기(2)  (0) 2024.08.16
LLM 모델 만들기(1)  (0) 2024.08.15
트랜스포머 아키텍처(6)  (0) 2024.08.13
트랜스포머 아키텍처(5)  (0) 2024.08.12
트랜스포머 아키텍처(4)  (0) 2024.08.11