본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
*_1. 학습 인증샷 4장 이상 포함
*_① 오늘자 날짜, 공부 시작 시각 포함 사진 1장
② 오늘자 날짜, 공부 종료 시각 포함 사진 1장
③ 1개 클립 수강 인증 사진 (강의장 목록 캡쳐, 강의 내용이 담긴 수강화면이 보이지 않도록) 1장
④ 학습 인증샷 1장 이상 (ex. 필기 촬영, 작업물, 등)
2. 학습 후기 700자 이상 (공백 제외)
- 전처리 이해하기
input_ids와 labels는 어떻게 생성되는가?
LLM 학습에서 input_ids
와 labels
는 모델의 학습 목표에 따라 생성
예를 들어, 다음과 같은 대화 데이터를 모델이 학습해야 한다고 가정:
- 시스템 프롬프트:
당신은 친절하고 도움이 되는 AI 어시스턴트입니다.
- 사용자 메시지:
안녕하세요, 오늘 날씨는 어떤가요?
- 어시스턴트 응답:
안녕하세요! 오늘 날씨는 맑고 화창합니다.
LLaMA 3에서는 다음과 같은 템플릿 구조를 사용(줄바꿈 포함):
<|begin_of_text|><|start_header_id|>system<|end_header_id|>
당신은 친절하고 도움이 되는 AI 어시스턴트입니다.<|eot_id|><|start_header_id|>user<|end_header_id|>
안녕하세요, 오늘 날씨는 어떤가요?<|eot_id|><|start_header_id|>assistant<|end_header_id|>
안녕하세요! 오늘 날씨는 맑고 화창합니다.<|eot_id|>
이 전체 텍스트는 토크나이저에 의해 정수 시퀀스로 변환
(실제와 다르고 가정하여 정수를 맵핑하겠습니다.)
먼저 모든 특수 토큰들은 아래의 고유 ID를 가진다고 가정
- <|begin_of_text|> = 토큰 ID 1
- <|start_header_id|> = 토큰 ID 2
- <|end_header_id|> = 토큰 ID 4
- 줄바꿈 = 토큰 ID 5
- <|eot_id|> = 토큰 ID 10
역할 토큰들은 아래의 고유 ID를 가진다고 가정해봅시다.
- system = 토큰 ID 3
- user = 토큰 ID 11
- assistant = 토큰 ID 18
전체 통합된 input_ids는 다음과 같습니다:input_ids = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 2, 11, 4, 5, 12, 13, 14, 15, 16, 17, 10, 2, 18, 4, 5, 19, 20, 21, 22, 23, 10]
각 부분을 분리하면:
- 시스템 프롬프트 부분: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- 사용자 메시지 부분: [2, 11, 4, 5, 12, 13, 14, 15, 16, 17, 10]
- 어시스턴트 응답 부분: [2, 18, 4, 5, 19, 20, 21, 22, 23, 10]
모델이 예측해야 할 영역은 assistant의 응답 부분인 안녕하세요! 오늘 날씨는 맑고 화창합니다.
에 해당하는 토큰들입니다. 따라서 labels
는 다음과 같이 설정됩니다:
labels = [-100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, -100, 19, 20, 21, 22, 23, 10]
여기서 주목할 점:
- 시스템 프롬프트와 사용자 메시지에 해당하는 모든 토큰(줄바꿈 포함)은
-100
으로 마스킹됩니다. - 어시스턴트 헤더와 첫 줄바꿈 토큰도
-100
으로 마스킹됩니다. - 실제 어시스턴트 응답 내용(19-23)과 마지막 종료 태그(10)만 원래 토큰 ID를 유지합니다.
이처럼 labels
는 모델이 실제로 생성해야 할 출력 부분만을 포함하고, 나머지 부분은 -100
으로 채워져 손실 계산에서 제외됩니다. 이를 통해 모델은 입력(시스템 프롬프트+사용자 질문)을 기반으로 적절한 응답을 생성하는 방법을 학습합니다.
학습 과정에서는:
- 모델에
input_ids
전체를 입력으로 제공 - 모델은 각 위치에서 다음 토큰을 예측
- 손실 계산 시
labels
가-100
이 아닌 위치에서만 오차를 계산 - 이를 통해 모델은 주어진 맥락(시스템 프롬프트와 사용자 질문)에 대해 적절한 응답을 생성하는 방법을 학습
url : https://abit.ly/lisbva
'스타트업 투자 > 데이터 + 테크' 카테고리의 다른 글
패스트캠퍼스 환급챌린지 44일차 : 모델 호출 (0) | 2025.05.14 |
---|---|
패스트캠퍼스 환급챌린지 43일차 : 허깅페이스 TRL 파인튜닝 (0) | 2025.05.13 |
패스트캠퍼스 환급챌린지 41일차 : 주요코드 이해하기 (0) | 2025.05.11 |
패스트캠퍼스 환급챌린지 40일차 : 모델 호출 (0) | 2025.05.10 |
패스트캠퍼스 환급챌린지 39일차 : 모델업로드 및 다운로드 (0) | 2025.05.09 |
댓글