인프런 커뮤니티 질문&답변

Seongc좋은ᅵᅵheol Kim님의 프로필 이미지
Seongc좋은ᅵᅵheol Kim

작성한 질문수

딥러닝을 활용한 자연어 처리 (NLP) 과정 (기초부터 ChatGPT/생성 모델까지)

실습 - Simple Chatbot 만들기

패딩과 관련한 질문 드립니다.

작성

·

81

0

교사학습용 데이터와 target 데이터 모두 post 패딩을 하였는데

교사학습용 데이터는 <sos> 가 중요하고 target 데이터는

<eos> 가 중요하기 때문에 교사학습용은 post, target 데이터는 pre 를 해야 하는거 아닌지요?

만약 post 패딩을 하게 되면 길이가 초과하는 교사학습용 데이터는 <sos>가 잘려지지 않을까 생각합니다.

강사님 부탁드리겠습니다.

답변 1

0

YoungJea Oh님의 프로필 이미지
YoungJea Oh
지식공유자

교사학습(Teacher Forcing)에서는 이전 시간 단계의 출력이 현재 시간 단계의 입력으로 사용됩니다. 여기서 중요한 것은 시퀀스의 시작을 알리는 <sos> 토큰입니다. 따라서 post padding을 사용하면 <sos> 토큰이 시퀀스의 앞에 오게 되어, 시퀀스의 시작을 명확하게 정의할 수 있습니다. 만약 데이터가 너무 길어져 잘린다면, 일반적으로 잘리는 부분은 시퀀스의 끝 부분입니다. 이 경우, 중요한 <sos> 토큰이 잘릴 가능성은 낮습니다.

target 데이터의 경우, 모델이 예측해야 하는 시퀀스의 마지막 부분에 <eos> 토큰이 존재합니다. post padding을 사용하면 이 <eos> 이후에 추가된 패딩 토큰은 모델이 예측할 때 무시됩니다.

예를 들어 드리면,

  • 교사학습용 입력 데이터: <sos> I am learning NLP

  • 타겟 데이터: I am learning NLP <eos>

     

  • Post-패딩 (교사학습용 입력 데이터):

    • 예를 들어, 최대 시퀀스 길이가 7이라고 가정하면,

    • ["<sos>", "I", "am", "learning", "NLP", "<pad>", "<pad>"]

  • Post-패딩 (타겟 데이터):

    • 동일한 최대 시퀀스 길이 7을 기준으로,

    • ["I", "am", "learning", "NLP", "<eos>", "<pad>", "<pad>"]

       

    따라서, 걱정하시듯이 동일한 길이의 sequence를 구성할 때 target의 <eos>가 잘릴 경우는 없습니다.
    좋은 질문 감사합니다.

Seongc좋은ᅵᅵheol Kim님의 프로필 이미지
Seongc좋은ᅵᅵheol Kim

작성한 질문수

질문하기