hug
The platform where the machine learning community collaborates on models, datasets, and applications.
https://huggingface.co/
NLP(Natural Language Processing)란 사람의 언어와 관련된 모든 것을 이해하는 데에 중점을 둔 언어학 및 기계 학습(머신 러닝) 분야를 말합니다. NLP의 목적은 단순히 하나의 개별 단어를 이해하는 것을 넘어, 해당 단어들의 문맥을 이해하는 것
전체 문장 분류(Classifying whole sentences) : 리뷰(review)의 감정(sentiment)을 식별, 이메일이 스팸인지 감지, 문장이 문법적으로 올바른지 또는 두 문장이 논리적으로 관련되어 있는지 여부를 판단
단일 문장에서 각 단어 분류(Classifying each word in a sentence) : 문장의 문법적 구성요소(명사, 동사, 형용사) 또는 명명된 개체(개체명, e.g., 사람, 위치, 조직) 식별
텍스트 컨텐트 생성(Generating text content) : 자동 생성된 텍스트로 프롬프트 완성(completing a prompt), 마스킹된 단어(masked words)로 텍스트의 공백 채우기
텍스트에서 정답 추출(Extracting an answer from a text) : 질문(question)과 맥락(context)이 주어지면, 맥락에서 제공된 정보를 기반으로 질문에 대한 답변을 추출
입력 텍스트에서 새로운 문장 생성(Generating a new sentence from an input text) : 텍스트를 다른 언어로 번역(translation), 텍스트 요약(summarization)
위에 언급한 NLP 문제를 해결하기 위해 사용
Hugging Face에서 모델을 공유하고 사용 - Transformer model만 있는 것은 아님, 어떠한 종류의 모델이나 데이터셋을 공유 가능
자가 지도 학습(self-supervised learning) : 비지도학습 기법 중 하나로, 다수의 레이블이 존재하지 않는 원본 데이터로부터 레이블을 자동으로 생성하여 지도학습에 이용
자가 지도 학습을 한 모델은 실생활 문제에 적합하지 않기 때문에 전이 학습(Transfer Learning) 과정을 거침
빅데이터를 이용해 사전 학습(Pretraining)을 진행
특정한 일(task)을 위한 데이터를 가지고 미세조정(Fine-tunning)하는 과정, 레이블 된 품질 좋은 데이터 필요
GPT-3을 파인튜닝한 모델이 ChatGPT, GTP-4를 파인튜닝한 모델이 GitHub Copilot
finetuning models
Model
Example
Tasks
인코더
ALBERT, BERT, DistilBERT, ELECTRA, RoBERTa
문장 분류, 개체명 인식, 추출 질의 응답
디코더
CTRL, GPT, GPT-2, Transformer XL
텍스트 생성
인코더-디코더
BART, T5, Marian, mBART
요약, 번역, 생성 질의 응답
핵심은 어떤 문제를 풀고 싶냐에 따라 전체구조(인코더-디코더 모두)를 사용하거나 인코더, 디코더만 사용 가능 🙃
트랜스포머 모델의 종류가 너무 많고, 수많은 파라미터를 가진 모델을 훈련시키고 배포하는 작업이 어렵기 때문에 만듬
Transformer 모델을 가져오고, 훈련시킨 후 저장할 수 있는 단일 API를 제공하는 것이 목표
사용 가능한 파이프라인(pipeline) = 트랜스포머 라이브러리 가장 기본 객체
feature-extraction : 특징 추출 (텍스트에 대한 벡터 표현 추출)
fill-mask : 마스크 채우기
ner : 개체명 인식 (named entity recognition)
question-answering : 질의응답
sentiment-analysis : 감정 분석
summarization : 요약
text-generation : 텍스트 생성
translation : 번역
zero-shot-classification : 제로샷 분류
전처리(tokenizer) → 모델(model)로 입력 전달 → 후처리
transformer model pipeline
파이프라인을 사용하기 위해서(모델로 학습/추론하기 위해서) 해당 모델과 모델을 학습 시 사용한 토크나이저가 필요
before finetuning
after finetuning
파인튜닝 전 모델은 '5만원 이상' 키워드를 QT(QUANTITY )라는 태그로 분석했지만, '지오지아'는 PS(PERSON)으로 인식
파인튜닝 후 '5만원 이상' QT(QUANTITY ), 지오지아 OG(ORGANIZATION), 여자 PS(PERSON), 가방(CIVILIZATION)으로 학습한 대로 분류됨
태그 카테고리는 이전 파인튜닝한 모델의 태깅 체계를 따라야 했음. 추가도 안 되는 것 같음,
원하는 태그 체계를 만들려면 NER태그가 학습되지 않은 base model을 가지고 처음부터 학습해야 할 것 같다.
🫤 좋은 파인튜닝 결과를 얻기 위해서는 고품질의 데이터가 필요(레이블 된) 해 보인다. 얼마 전 일론 머스크가 트위터를 인수한 것을 충동적인 행동으로 판단하는 기사들도 많이 봤지만, 아마 테슬라 LLM에 들어갈 고품질의 대화(instruction-dataset)가 필요했다는 분석들도 존재
prompt engineering vs finetuning
프롬프트 엔지니어링과 파인튜닝은 각각의 장단점을 가지고 있다.