하이퍼파라미터
Hyperparameter
하이퍼파라미터란?
- 학습 전 사람이 정하는 설정값
- 학습률·층 수 등
- 성능을 크게 좌우
하이퍼파라미터는 학습 버튼을 누르는 순간 이미 고정되어 있어야 하는 값이라, 실제로는 모델 코드가 아니라 실험 설계 전체를 바꿔놓습니다. 구조를 한 줄도 건드리지 않아도 학습률만 10배 올리면 손실이 발산해 학습이 중단되고, 10배 낮추면 사흘이면 끝날 학습이 3주짜리 일정이 됩니다. 팀이 쓸 GPU 시간과 클라우드 비용, 납기가 여기서 먼저 결정된다는 뜻입니다.
값의 성격은 크게 세 갈래입니다. 학습 방식을 잡는 학습률·배치 크기·에폭 수, 모델 구조를 잡는 층 수·은닉 노드 수·LoRA 랭크, 과적합을 억제하는 드롭아웃 비율·가중치 감쇠 계수입니다. 보통 학습률은 1e-3에서 1e-5 사이를 로그 스케일로 훑고, 조합이 수십 개를 넘어가면 그리드 서치 대신 랜덤 서치나 베이지안 최적화로 바꿉니다. 역전파로 스스로 갱신되는 값은 파라미터, 사람이 고정하는 값은 하이퍼파라미터로 선을 긋는 것이 기본이고, LLM의 온도나 top-p는 학습이 아닌 추론 단계 설정이라 따로 구분해 관리합니다.
튜닝은 무한정 돌리는 작업이 아니라 예산 안에서 끊어야 하는 작업입니다. 데이터를 학습·검증·테스트 6:2:2로 나누고 검증 성능만 보며 비교하되, 데이터가 수천 건 규모로 적으면 5겹 교차검증으로 평균을 확인합니다. 시도 횟수를 20~30회로 묶고 열 번 연속 검증 지표가 0.5%p도 오르지 않으면 그 방향을 접는 식의 중단 기준을 미리 문서로 남겨야, 누가 어떤 설정으로 무엇을 얻었는지 나중에 재현할 수 있습니다.
현장에서 가장 자주 어긋나는 지점은 테스트 데이터로 튜닝하는 것입니다. 검증셋과 테스트셋을 구분하지 않고 같은 데이터로 수십 번 조합을 비교하면 그 숫자는 이미 답을 보고 맞춘 성적이라, 운영에 올리는 순간 성능이 주저앉습니다. '논문에 나온 값 그대로 썼습니다'도 흔한 오해인데, 데이터 규모와 배치 크기가 다르면 같은 학습률이 전혀 다르게 작동합니다. 배치를 2배로 키웠으면 학습률도 함께 손봐야 한다는 점을 놓친 채 원인을 모델 구조에서 찾다 보면 몇 주를 통째로 날립니다.
기계학습 모델 설계·학습 과정에서 '학습되지 않고 지정되는 값'을 가리키는 개념으로 정착했습니다.
가상의 사례로 살펴보겠습니다. 임직원 240명, 연매출 900억 원대인 자동차 부품 제조사 A사는 프레스 설비 이상탐지 모델을 3개월째 붙들고 있었습니다. 보고서상 검증 정확도는 92%였지만 현장에서는 하루 30건 넘는 오탐이 떠서, 반장들이 알람을 아예 꺼두고 작업하는 상태였습니다.
- 데이터분석팀 김 과장이 6주간의 실험 로그 47건을 열어보니, 모든 조합의 성능이 같은 테스트셋 점수로만 비교돼 있었고 검증셋은 아예 나뉘어 있지 않았습니다.
- 외부 자문 컨설턴트가 '이 92%는 이미 답을 보고 맞춘 점수입니다'라고 짚었고, 설비 로그 8만 건을 학습·검증·테스트 6:2:2로 다시 쪼개는 작업부터 시작했습니다.
- 생산기술팀장이 'GPU 한 대로 2주 안에 끝내라'고 못박아, 조합을 24개로 제한하고 랜덤 서치로 학습률 1e-3~1e-5, 배치 크기 32·64·128 구간만 훑기로 정리했습니다.
- 배치를 128로 키운 조합에서 손실이 발산하자 김 과장이 학습률을 함께 4분의 1로 낮춰 재실험했고, 드롭아웃을 0.2에서 0.4로 올려 과적합까지 잡았습니다.
- 최종 설정으로 재학습한 모델은 테스트 정확도 89%로 보고 수치는 3%p 내려갔지만, 현장 오탐은 하루 30건에서 6건으로 줄었고 반장들이 2주 만에 알람을 다시 켰습니다.