English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

게스트
1 / ?
수업 목록으로

eval_chat_quality()가 잘못된 러너에 연결되어 있었다

3일 만에 멈춰야 했던 10일 실패

ANDREA-120M v1은 RTX 4090에서 130W 연속으로 16.1일 동안 훈련되었습니다. 샘플 출력은 200 스텝마다 저장되었지만 실행 중 분석되지 않았습니다. 80K 스텝(4일째)까지 샘플은 region region region region region으로 읽혔습니다. 110K 스텝까지 ''''' ''''' '' ''' ''로 변했습니다. 훈련은 165K 스텝에서 수동으로 중지될 때까지 11일 더 계속되었습니다.


화재 경보기에 무슨 일이 잘못되었나요

eval_chat_quality()가 코드베이스에 존재했습니다. 샘플 품질을 점수화했습니다. 심지어 올바르게 작동했습니다. 하지만 레거시 멀티-페이즈 러너에만 연결되어 있었습니다. v1 firehose 커리큘럼은 다른 코드 경로를 사용했으며 eval을 호출하지 않았습니다. 연기 감지기가 문이 닫힌 다른 방에 있는 셈이었습니다.


비용

16.1일의 컴퓨트. 130W 연속. ~50 kWh의 전기. 모델은 어느 시점에서도 사용 가능한 출력을 생성하지 않았습니다. Loss EMA는 110K 스텝에서 3.23으로 최저점을 찍은 후, 훈련이 중단된 165K 스텝에서 4.54로 다시 올라갔습니다. 수치적으로는 합리적; 의미적으로는 비어 있음.


8449-토큰 어휘에 대한 무작위 확률은 9.04입니다. v1은 region region region을 생성하면서 3.23 EMA loss에 도달했습니다. Loss만으로는 일관성 붕괴를 감지할 수 없습니다. 크로스-엔트로피를 최소화하기 위해 하나의 고빈도 토큰을 반복하는 모델은 실패 모드에 대해 수치적으로 보상을 받습니다.

왜 Loss 곡선이 거짓말을 했나

v1은 `region region region region`을 생성하면서 EMA loss 3.23(무작위 확률 9.04보다 훨씬 낮음)에 도달했습니다. 모델이 수치적으로 합리적인 loss를 달성하면서 퇴화된 출력을 생성할 수 있는 이유를 2-3문장으로 설명하세요. 크로스-엔트로피 메커니즘을 참조하세요.

네 가지 축에서 모든 샘플 점수 매기기

복합 점수

v2는 화력 훈련 중 매 100 스텝마다 가져온 모든 샘플을 네 가지 지표로 점수 매기는 일관성 게이트를 배포합니다:


일관성 게이트 흐름


메트릭범위그것이 포착하는 것
빅그램 다양성0-35두 토큰 수준의 반복 (region region)
트리그램 다양성0-35세 토큰 수준의 반복 (a, b, a, b, a, b)
영어 단어 존재0-20비영어로의 전이 (CJK, 키릴 문자, 난해한 글자)
문자 다양성0-10단일 문자 붕괴 (''''', ... ... ...)

총 가능 점수: 100. 기준: 30.


왜 네 가지 지표인가, 하나가 아닌가

각 지표는 서로 다른 실패 모드를 포착합니다:


- 하나의 빅그램으로 붕괴하는 모델은 빅그램 다양성에서 실패하지만 문자 다양성에서는 통과합니다.

- 구두점 노이즈(''''' ''''' '')를 생성하는 모델은 문자 다양성에서 실패하지만 구두점 쌍이 다양하다면 빅그램 다양성에서 통과할 수 있습니다.

- 비영어로 표류하는 모델(번역 훈련 오염)은 영어 단어 존재를 실패하지만, 문법적인 만다린어를 생성하면 Bigram & Trigram 다양성을 통과합니다.

- a, b, a, b, a, b를 생성하는 모델은 Bigram (a-b & b-a 등장)을 통과하지만 Trigram (a-b-a, b-a-b가 지배)을 실패합니다.


함께, 네 가지 지표는 실패 공간을 포괄합니다. 복합 점수가 30 미만이면 적어도 하나의 축이 전체 샘플을 끌어내릴 정도로 심하게 붕괴된 것을 의미합니다.


연속 카운터

Auto-halt는 5개의 연속 샘플 점수가 30 미만일 때 발동합니다. 단일 나쁜 샘플은 단계 전환 또는 희귀 소스 추출 중에 발생할 수 있습니다; 연속 5개는 모델이 회복을 멈춘 것을 의미합니다. 100 스텝마다 샘플을 채취하면, 5개의 연속 퇴화 샘플 = 확인된 일관성 붕괴의 500 스텝입니다.

점수 계산

80K 단계에서 v1 샘플이 `region region region region region region region region`을 읽습니다. 점수를 추정하세요: (a) 빅그램 다양성, (b) 트리그램 다양성, (c) 영어 단어 존재, (d) 문자 다양성. 총점을 계산하세요. 이 샘플 하나만으로 게이트가 작동하나요?

v1이 어떻게 보였을까

백테스트된 트리거

v1의 저장된 샘플에 대해 v2 일관성 게이트를 소급 적용하면, 게이트는 132K 단계에서 작동했을 것입니다. v1은 수동 종료 전에 165K 단계까지 실행되었습니다. 게이트는 훈련을 33,000 단계 일찍 중지했을 것입니다.


절감된 컴퓨트

RTX 4090이 FP16 cuBLAS에서 ~6 steps/min 속도로 훈련됨. 33,000 steps / 6 steps/min = 5,500 minutes = 91.6 hours = 3.8일의 컴퓨트 절감. 130W 지속 시, ~12 kWh의 전기, 게다가 3.8일의 GPU 마모.


왜 Step 132K인가, Step 80K가 아닌가

v1은 step 80K에서 region region region을 생성함. 왜 그때 게이트가 작동하지 않았나?


나쁜 샘플 사이에 간헐적으로 좋은 샘플이 나타났기 때문임. 밴디트가 7-42 스텝마다 소스를 순환함. 퇴화된 모델도 다른 소스에서 샘플링할 때 가끔 더 다양한 출력을 생성하여 연속 카운터를 순간적으로 리셋함. step 132K에 이르러 모델이 충분히 깊게 붕괴되어 5개의 연속 퇴화 샘플(500 스텝)이 불가피해짐.


강의: 모든 러너에 연기 경보기를 연결하세요

v2는 eval_chat_quality()를 파이어호스 커리큘럼의 샘플 처리 코드 경로에 직접 연결합니다. 레거시 러너에만이 아니라 모든 샘플, 모든 실행, 모든 코드 경로에 동일한 게이트를 적용합니다. 이 수정은 약 30줄의 코드로 이루어졌습니다.

엔지니어링 패턴 일반화

v1은 eval_chat_quality()가 하나의 러너에만 연결되어 있어서 3.8일을 낭비했습니다. v2의 일관성 게이트가 장기 실행 ML 훈련을 위한 엔지니어링 원칙으로 무엇을 확립하는지 주장하세요 (2-3문장으로). 배선 선택과 복합 메트릭 설계를 모두 참조하세요.