강의

멘토링

커뮤니티

Inflearn Community Q&A

kimsc's profile image
kimsc

asked

Natural Language Processing (NLP) with Deep Learning (From Basics to ChatGPT/Generative Models)

Practice - Transformer Translator Analysis - Part 3

강사님 궁금한게 있어 문의 드립니다.

Written on

·

122

0

강사님 seq2seq 모델의 경우 학습할 때와 추론할 때 서로 다른 모델을 정의하여 사용하였습니다. 하지만 트랜스포머는 그렇지 않고 추론할 때도 같은 모델을 사용하고 있습니다.

두 개의 모델 모두 교사강요학습을 사용하고 있고 인코더/디코더 구조를 가지고 있는데 왜 두개가 이렇게 차이가 있는 것인지요?

딥러닝tensorflowNLP

Answer 1

0

YoungJea Oh님의 프로필 이미지
YoungJea Oh
Instructor

이 차이는 두 모델의 기본 설계와 동작 방식에서 비롯됩니다.

Seq2Seq 모델의 학습단계 디코더 입력 : 인코더의 입력 + 디코더의 입력

model_teacher_forcing = Model([encoder_inputs_, decoder_inputs_], decoder_outputs)

Seq2Seq 모델의 추론용 디코더 입력 : 디코더의 입력 + 디코더의 state

decoder_model = Model(

[decoder_inputs_single] + decoder_states_inputs, # 디코더 입력과 상태를 입력으로 받음

[decoder_outputs] + decoder_states ) # 디코더 출력과 상태를 출력으로 반환
입력이 달라지므로 모델을 달리 할 수 밖에 없습니다. 물론 학습한 가중치는 교사 학습에서 만들어진 가중치를 그대로 사용하므로 추론 단계의 디코더는 새로 만드는 것이 아니라 입력 구조만 변경해서 그냥 사용하는 것입니다.

트랜스포머 모델도 Seq2Seq와 마찬가지로 학습 시 디코더에 실제 타겟 시퀀스를 입력으로 사용합니다. 그러나 트랜스포머는 학습과 추론 시 같은 네트워크 구조를 사용할 수 있으므로 별도의 디코더 모델을 만들 필요가 없습니다.
결론적으로 이 것은 RNN 과 Transformer 의 구조 차이에서 오는 것이므로 더 자세한 내용은 080_language_translation_KerasAPI_teacherForcing 프로그램 소스와 130_transformer 프로그램 소스를 비교해 보시기 바랍니다. 단순히 RNN 과 Transformer 의 구조 차이 외에 더 특별한 의미가 존재하는 것은 아닙니다.
좋은 질문 감사합니다.

kimsc's profile image
kimsc

asked

Ask a question