You are on page 1of 14

BERT 미세조정

강사 : 안재학

2021 년 7 월 22 일 목요일
큰 그림
[CLS] " 아이유 " " 노래 " "듣" "고" "싶" "어"
슬롯태깅
&
의도분류
BERT pretrained model
(ETRI KorBERT)

[CLS] 를 " 아이 "노 "듣"을 "고"를 "싶"을 "어"를


나타내 유"를 래"를 나타내 나타내 나타내 나타내 pretrained model 의
는 나타내 나타내 는 는 는 는 아웃풋이면서 finetuning layer 의
벡터 는 는 벡터 벡터 벡터 벡터 인풋
벡터 벡터

Fine-tuning layer
(Dense layer = Fully connected layer = ANN)

[CLS] 아이유 노래 듣 고 싶 어
0.9 0.8 0.1 0 0 0 0
가수 이름으로 노래 가수 이름
finetuning layer 의 아웃풋
요청 노래 제목 0.2 0.4 0.4 0.2 0.4 0.4
0.1
노래 제목으로 노래 중요 슬롯 0 0.5 0.6 0.8 0.6 0.6

요청 아님
0
노래 중지 요청 합계 1 1 1 1 1 1
“ “언 “ “나 [SEP] “ “ 은” “…”
이순신” 태어났” 이순신”
질의응답 제” 요 ?”

BERT pretrained model


(ETRI KorBERT)

" 이순 “…” [SEP] 을 “ 이순 “언 “ 태어


신"을 를 나타내는 신 ”을 제"를 났"을 pretrained model 의
나타내는 나타내는 벡터 나타내는 나타내는 나타내는 아웃풋이면서 finetuning layer 의
벡터 벡터 벡터 벡터 벡터 인풋

Fine-tuning layer
(Dense layer = Fully connected layer = ANN)

이순신 은 1545
년 에 태어나 … 합계

Start 0 0.1 0.8 0.1 0 0 1 finetuning layer 의 아웃풋

End 0 0 0 0.9 0 0.1 1


프리트레인
" 지난 " "8" "월" " 시작 " "된" ... ( 생
략)

인코딩 ( 임베딩 ) : 각 토큰을 벡터로 만듦

"지 "8" 을 "월"을 "시 "된"을 ... ( 생략 )


난"을 나타내는 나타내는 작"을 나타내는
나타내는 벡터 벡터 나타내는 벡터
벡터 벡터

빈칸 채우기 , 문장 순서 맞히기를 수행하는 분류 모델

프리트레인
학습이
완료되면 버림

분류
결과물
미세조정
슬롯태 fine-tuning layer 가수이 노래제목 슬롯 X
름열 열 열

1 0 2 0 1 1.5 0.4
" 아이유 " 를 노래제목
" 아이유 "
가수이 슬롯 X
나타내는 열
벡터 름열 열
0 2 2 1 1.4 1 0.9
" 노래 " 를 0 0.5 0 " 노래 "
나타내는
벡터
2 2 1 1 0.9 1.5 0.7
"듣"을 0.2 0 0 "듣"
나타내는
벡터
0 2 1 0 X = 0.9 0.5 0.2
"고"를 0.5 0.5 0.2 "고"
나타내는
벡터
0 1 2 2 1.2 1 1.4
"싶"을 0 0 0.5 "싶"
나타내는
벡터
1 1 1 1 0.7 1 0.7
"어"를 "어"
나타내는
벡터
4 X ( 슬롯 수 )
행렬
( 토큰 수 ) X 4 fine-tuning layer ( 토큰 수 ) X ( 슬롯
행렬 수 ) 행렬
모델의 최종
가수이 노래제목 슬롯 X 아웃풋
가수이 노래제목 슬롯 X
름열 열 열 름열 열 열
1 1.5 0.4
" 아이유 " " 아이 0.3 0.5 0.2

유"

1.4 1 0.9
" 노래 " " 노래 "
0.4 0.3 0.3

0.9 1.5 0.7


"듣" "듣"
0.3 0.5 0.2

softmax
0.9 0.5 0.2
"고" "고"
0.5 0.3 0.2

1.2 1 1.4
"싶" "싶"
0.3 0.3 0.4

0.7 1 0.7
"어" "어"
0.3 0.4 0.3

( 토큰 수 ) X ( 슬롯 ( 토큰 수 ) X ( 슬롯
수 ) 행렬 수 ) 행렬
fine-tuning layer 가수이 노래제목 슬롯 X
슬롯태깅 름열 열 열
1 0 2 0 1 1.5 0.4
" 아이유 " 를 노래제목
" 아이유 "
가수이 슬롯 X
나타내는 열
벡터 름열 열
0 2 2 1 1.4 1 0.9
" 노래 " 를 0 0.5 0 " 노래 "
나타내는
벡터
2 2 1 1 0.9 1.5 0.7
"듣"을 0.2 0 0 "듣"
나타내는
벡터
0 2 1 0 X = 0.9 0.5 0.2
"고"를 0.5 0.5 0.2 "고"
나타내는
벡터
0 1 2 2 1.2 1 1.4
"싶"을 0 0 0.5 "싶"
나타내는
벡터
1 1 1 1 0.7 1 0.7
"어"를 "어"
나타내는
벡터
4 X ( 슬롯 수 )
행렬
( 토큰 수 ) X 4 fine-tuning layer ( 토큰 수 ) X ( 슬롯
행렬 수 ) 행렬
fine-tuning layer
의도 분류

가수이름 노래제목 노래중


으로 으로 지
노래 노래

0.5 0.5 0

가수이름 노래제목 노래중


으로 으로 지
0.2 0 0 노래 노래
1 0 1 2
[CLS] 를 [CLS] 2 1 1.2

나타내는 X =
벡터 0.5 0.5 0.2

( 토큰 수 ) X 4 0.5 0 0.5
( 토큰 수 ) X ( 의도
행렬 수 ) 행렬

4 X ( 의도 수 )
행렬
fine-tuning layer
모델의 최종
아웃풋

가수이름 노래제목 노래중 가수이름 노래제목 노래중


으로 으로 지 으로 으로
노래 노래

노래 노래
[CLS] 2 1 1.2
softmax [CLS] 0.55 0.2 0.25

( 토큰 수 ) X ( 의도 ( 토큰 수 ) X ( 의도
수 ) 행렬 수 ) 행렬
fine-tuning layer Start End
질의응답
1 0 0 0.5 0 0.5
“ 이순신 " 를 “ 이순신 "
나타내는 벡터 Start End

0 1 1 1 0.7 0.5
“은"를 0 0.5 “은"
나타내는
벡터
1 2 2 1 1.4 1.5
"1545" 을 0.2 0 “1545"
나타내는
벡터
2 0 2 0 X = 1 2
“년"를 0.5 0.5 “년"
나타내는
벡터
0 1 2 2 1.2 1
“ 태어나 " 을 0 0 “ 태어나 "
나타내는 벡터

“…” … … … … “…” … …
4 X ( 슬롯 수 )
행렬
( 토큰 수 ) X 4 fine-tuning layer ( 토큰 수 ) X ( 슬롯
행렬 수 ) 행렬
모델의 최종
Start End 아웃풋
Start End

0 0.5 0.1 0.1


“ 이순신 " “ 이순신 "

0.7 0.5 0.15 0.1


“은" “은"

1.4 1.5 0.3 0.25


“1545" “1545"
softmax
1 2 0.2 0.4
“년" “년"

1.2 1 0.25 0.15


“ 태어나 " “ 태어나 "

“…” … … “…” … …

( 토큰 수 ) X ( 슬롯 ( 토큰 수 ) X ( 슬롯
수 ) 행렬 수 ) 행렬

You might also like