inflearn logo
강의

Course

Instructor

<From Scratch: Building and Learning LLMs> Commentary Lecture

(YouTube) 2.6 Sampling Data with Sliding Window

누적입력에서 겹치는 방식으로 넘어간 이유

Resolved

89

gunbam7156384

3 asked

0

앞 텍스트들로 다음 단어 하나를 예측한다고 했는데, 왜 슬라이딩 윈도에서는 입력과 타깃이 겹쳐져있는건가요?

또한 앞 텍스트부터 누적한 다음, 타깃 한 단어만 예측하는 것으로 이해했습니다. 왜 4개씩 나누는 것인지 궁금합니다.

왜 갑자기 슬라이딩 윈도우로 넘어간것인지 그 중간단계가 이해되지 않습니다.

 

pytorch gpt-2 transformer llm fine-tuning

Answer 2

0

haesunpark

안녕하세요. 세 개의 단어로 다음 하나의 단어를 예측한다고 했을 때 "I love you so much"란 텍스트에서 만들 수 있는 샘플은 2개입니다. 즉 3개의 단어 범위(윈도)로 "I love you" --> "so", "love you so" --> "much"입니다. 물론 슬라이딩 윈도를 겹치지 않게 샘플을 만들 수도 있지만 이런 경우 위 텍스트로는 하나의 샘플밖에 만들지 못합니다. 어떤 방식을 사용할지는 개발자의 몫입니다. 여기서는 훈련 텍스트를 최대한 효율적으로 사용한다고 가정하면 슬라이딩 윈도를 한 단어씩 이동하는 것입니다. 이렇게 하면 입력과 타깃이 겹칠 수 밖에 없습니다. 세 개의 단어가 아니라 4개, 10개, 100개의 단어를 입력 문맥으로 사용할 수도 있으며 이는 모델이 최대로 받을 수 있는 입력의 크기에 따라 달라집니다. 감사합니다.

0

gunbam7156384

답변 감사합니다!

그렇다면

입력: [In, the, heart, of]

출력: [the, heart, of, the]

일 때,

In 으로 the를

the로 heart를

heart로 of를

of로 the를 이렇게 한단어씩 예측하는 것이 아니라

 

In the heart 으로 of를 예측하고

the heart of 로 the를 예측하는 것이라고 이해해도 되나요?

0

haesunpark

네 맞습니다!

0

gunbam7156384

감사합니다! 헷갈리는 부분이 있어서 마지막으로 질문드립니다!

입력 4개로 타깃 4개를 예측하는 것이 아니라, 입력 4개로 타깃 1번째 것만 예측하는 것인가요?

그렇다면 왜 입력 윈도우와 타깃 윈도우의 크기를 같게 만든 건가요?

0

haesunpark

모델을 훈련할 때 모든 토큰 위치에서 예측을 생성하기 때문입니다. 2.6절의 그림 2-12와 이어지는 코드에서 이 과정이 잘 표시되어 있습니다!

0

gunbam7156384

아하!

2-12그림에서는 입력이 누적되고 타깃은 하나인데, 뒤에 코드에서는 왜 입력과 타깃 크기가 똑같은지 궁금했습니다.

그런데 <4개로 나눈 뒤, 4개 안에서 1개, 2개, 3개, 4개로 누적되는 방식>을 단어 한칸씩 옮기면서 반복하는 구조였군요!

감사합니다!

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 이름바꺼님.

슬라이딩 윈도우 방식에 대한 이해를 돕기 위해 몇 가지 설명을 드리겠습니다.

슬라이딩 윈도우란, 말 그대로 데이터를 일정 크기의 창(window)으로 잘라서 처리하는 방법입니다. 딥러닝에서 사용되는 슬라이딩 윈도우 방식은, 특히 자연어 처리(NLP)에서 매우 유용합니다. 이렇게 데이터를 나누는 이유는 다음과 같습니다:

  1. 문맥 정보 유지: NLP에서 문맥(Context)은 중요한 요소입니다. 슬라이딩 윈도우를 통해 겹치는 부분이 보정되며, 이는 문맥 정보를 유지하게 해줍니다. 각 윈도우는 이전과 다음 요소에 대한 정보를 조금씩 포함해, 학습 과정에서 문맥을 이해하는 데 도움을 줍니다.

  2. 효율적인 데이터 처리: 슬라이딩 윈도우는 데이터의 상대적인 독립성을 가지면서도, 효율적으로 모델을 학습시킬 수 있게 해줍니다. 모든 데이터를 한 번에 처리하는 것보다, 윈도우 단위로 처리하는 것이 메모리와 계산 측면에서 효율적입니다.

  3. 다양한 샘플링: 슬라이딩 윈도우를 통해 데이터의 다양한 부분을 샘플링하고, 여러 번 모델에 주입하여 학습의 다양성과 일반화를 가져올 수 있습니다.

처음의 누적 입력에서 타깃 예측으로 넘어가는 것은, 다양한 맥락에서 데이터를 이해하고 처리할 수 있도록 하기 위함입니다. 이는 모델이 더 많은 문맥을 고려하여 더 정확한 예측을 하도록 하는 데 목적이 있습니다.

관련 질문에 대한 지식공유자님의 답변 중 해당 링크를 참고하실 수 있습니다. 이 답변에서는 슬라이딩 윈도우의 설정 및 사용 이유에 대해 더 자세히 설명되어 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

클라우드 가입 시 회사 이메일

0

6

0

엥?? 화면이 안나옵니다.

0

10

1

깃허브 레포지토리 확인 요청

0

21

2

Langchain 공식문서 학습 질문

0

25

2

나머지 강의는 언제 업로드되나요?

0

23

1

[참고] Cannot connect to host host.docker.internal:8080

0

27

2

40강 Multi GPU 필요성 설명이 두번 나오는 것 같아요

0

35

2

There are no longer any instances available with the requested specifications. Please refresh and try again.

0

57

2

버전에 3.11이랑 3.11.X 랑 차이가 있나요?

0

31

1

왜 파이썬 버전을 같게 해야하는가?

0

51

3

poetry 설정을 어떻게 해야하나요?

0

61

5

강의 수강 순서

0

54

1

import 오류

0

29

1

온톨로지 활용

0

55

2

바흐다나우 어텐션을 시작하게 된 이유가 궁금해요!

0

68

2

인증 하는 방법

0

89

2

7장 3절 이후는 언제 올리나요?

0

83

3

2.2 텍스트 토큰화 하기 강의 질문

0

62

1

Chapter1에서 말하는 "모델"이 정확히 어떤건가요?

0

66

2

챌린지 쿠폰 재 발급 가능 여부 확인 드립니다.

0

85

3

gpt_download 관련 오류 질의입니다.

0

77

2

책관련 질문입니다.

0

67

2

챕터 4 밑바닥부터 GPT 모델 구현하기 강의 업로드 문의드립니다.

0

91

2

슬라이딩 윈도우를 위해 for Loop 만들시 stride 관련 질문

0

110

2