- Turing Post Korea
- Posts
- 강화학습의 핵심은 ‘정밀도’였다 — BF16에서 FP16으로의 전환이 만든 차이
강화학습의 핵심은 ‘정밀도’였다 — BF16에서 FP16으로의 전환이 만든 차이
단순한 수치 포맷의 변화가 학습의 정확도와 안정성을 뒤흔들다 - 안드레 카파시까지 여기에 주목한 이유
들어가며
어떤 문제에 닥쳤는데 해결책이 잘 보이지 않을 때, 가끔 과거를 되돌아보고 다시 이전의 일을 되짚어보는게 도움이 될 때도 있죠.
싱가폴의 AI 연구소인 Sea AI Lab과 싱가폴국립대(NUS)의 연구팀이, 오랫동안 강화학습 분야에서 풀리지 않던 하나의 문제를 해결해 보기 위해서 바로 그런 접근법을 택했는데요.
그 문제는, 모델이 ‘학습 중에 보이는 행동’과 ‘실제 사용할 때의 행동’이 다르다는 것이었는데요. 현상적으로는, 이 차이는 정책(Policy)에 근거해서 내려진 의사결정을 수치로 표현했을 때, 훈련 단계와 추론 단계에서의 값이 일치하지 않는 것으로 나타납니다 - 이런 현상을 Distribution Shift 또는 Policy Mismatch라고 부르기도 합니다.
그리고, 이런 차이(Gap) 때문에 강화학습의 파인튜닝이 불안정해지게 됩니다.
많은 연구자들이 ‘새로운 알고리즘을 설계’하든 아니면 복잡하게라도 ‘보정 기법을 추가’하는 방향으로 연구를 하고 있지만, 이 팀은 전혀 다른 접근법을 취했습니다: 가장 기본적인 것이긴 하지만, 즉 수치 정밀도(Numerical Precision)로 돌아가 보기로 한 겁니다.
그리고 연구 결과, 놀랍게도 학습에서 사용하는 수치 표현 방식, 즉 ‘부동소수점 정밀도(Float Precision Format)’을 단순하게 최신의 포맷인 BF16에서 이전 세대의 포맷인 FP16으로 되돌리는 것만으로도 안정성과 일관성을 되찾을 수 있다는 사실을 발견했습니다.
오늘은 바로 이 이야기를 다루려고 합니다. BF16과 FP16이 뭔지, 수치 정밀도가 강화학습의 파인튜닝에 어떤 영향을 미치는지, 그리고 이 작지만 놀라운 변화가 왜 전 세계 개발자들의 관심을 끌고 있는지를 살펴볼 겁니다.
*참고로, 안드레 카파시도 ‘nanochat’ 프로젝트에서 이 방법을 사용했다고 하네요.
오늘 에피소드에서는 아래와 같은 내용을 다룹니다:
강화학습의 불안정성: 결국 ‘정밀도(Precision)’로 귀결되는 이유
수많은 거대 모델을 파인튜닝할 때 강화학습 환경이 많이 사용된다는 건 많이 아실 겁니다. 그런데, 이 강화학습 환경에서는, 훈련(Training)과 추론(Inference)이 서로 다른 연산 경로를 따라서 실행되게 됩니다.
훈련 경로: 그래디언트를 계산하고 모델 파라미터를 업데이트하는 과정
추론 경로: 모델이 실제로 텍스트를 생성하는 과정
이론적으로는 두 개의 엔진이 완전히 동일하게 동작을 해야 하고, 동일한 수학적 결과를 만들어 내야 하겠지만, 실제로는 반올림 오차(Rounding Error)와 하드웨어 최적화 등 때문에 아주 작은 수치적인 차이가 생깁니다. 그리고 이로 인해 생기는 것이 바로 훈련–추론 불일치(Training–Inference mismatch)입니다. 바로, 강화학습이 불안정해지는 주요한 원인 중 하나입니다.
이 미스매치가 두 가지의 중요한 문제를 일으키는데요:
편향된 그래디언트(Biased Gradient)
모델은 훈련 과정에서 더 높은 보상을 얻기 위해서 학습합니다. 문제는, 이 학습이 추론 모드에서 생성된 샘플을 기반으로 이루어진다는 점인데, 추론 모드에서는 수치가 조금 다르게 처리되죠 — 이 작은 차이가 학습의 방향을 결정하는 그래디언트를 흔들어 버립니다. 그래서 결과적으로 편향된(잘못된) 그래디언트가 생기게 되구요.배포의 갭(Deployment Gap)
훈련이 끝난 뒤에, 텍스트를 실제 환경에서 생성하는 데 사용되는 모델은 훈련 중에 최적화된 모델과 ‘완전히’ 같지는 않습니다. 훈련 시점에 가장 잘 작동했던 파라미터들이 실제 배포 환경에서는 최적이 아닐 수 있기 때문이죠. 그 결과로, 성능이 눈에 띄게 떨어지게 됩니다.
연구자들은 이런 문제를 해결하기 위해서 보통 ‘중요도 샘플링(Importance Sampling)’이라는 기법을 사용했습니다. 이 방법은 훈련 중의 확률과 추론 중의 확률 비율을 계산해서, 각 샘플의 기여도를 재조정하는 방식으로 그래디언트의 편향을 줄이려는 방식입니다.
또 어떤 연구자들은 알고리즘이 아니라 엔지니어링적인 방법으로 접근하기도 했습니다. 예를 들어서, 특정 레이어에는 더 높은 정밀도(FP32, 32비트 부동소수점)를 적용하거나, 훈련 코드와 추론 코드를 인위적으로 맞추는 식이었죠.
하지만 이런 조정들을 해도 훈련이 무너지는(Collapse) 문제를 완전히 막을 수는 없었습니다. 결국, 많은 접근 방법들이 있었지만 ‘훈련 엔진에만 최적화된 모델’을 만들어 버린 겁니다 - 실제 우리가 필요한 것은 ‘추론 엔진에서도 안정적으로 작동하는 모델’인데 말이죠.
Sea AI Lab과 NUS의 연구팀은 이 갭을 해결할 수 있는 근본적인 원인을 찾으려고 했고, 그 핵심이 바로 부동소수점의 정밀도에 있다는 사실을 밝혀냈습니다.
그 이유를 살펴보면 이렇습니다.
훈련 중에는, 모델의 정책(Policy)이 부동소수점 연산과 확률 계산을 통해서 계속 업데이트됩니다.
추론 중에는, 같은 정책을 사용하긴 하지만 업데이트는 하지 않고, 단순히 순방향 계산(Forward Pass)을 통해서 출력을 생성합니다.
이때 수치 정밀도, 즉 “숫자를 얼마나 세밀하게 표현하느냐”가 두 개의 과정에서 일치하지 않으면, 정책이 미묘하게 다른 방식으로 동작하게 되는 것이죠.
FP, BF16, 정밀도의 차이에 대해서 좀 이야기를 해 보죠.
컴퓨터는 실수를 저장할 때 부동소수점(Floating-Point) 형태를 사용합니다. 예를 들어서 3.14나 0.001 같은 값들이 있다면, 이 값을 비트(Bit)로 표현하는데, 일부 비트는 값의 크기(지수, Exponent)를, 다른 비트는 정밀도(소수 부분, Fraction)를 나타냅니다. (당연하게도) 비트 수가 많을수록 숫자를 더 정밀하게 표현하고 계산할 수 있습니다.
최근 대부분의 강화학습 파인튜닝 과정에서는 BF16 (bfloat16, Brain Floating Point) 형식을 사용하는데, 이건 16비트 부동소수점 포맷으로, 32비트 부동소수점(FP32)만큼의 넓은 값 범위를 유지하면서 정밀도에 할당된 비트 수를 줄인 형태입니다.
BF16은 이렇게 구성되어 있습니다:
부호(Sign): 1비트 (양수/음수)
지수(Exponent): 8비트 (값의 범위)
가수(Fraction or Mantissa): 7비트 (정밀도 — 이 부분이 핵심입니다!)
즉, 계산의 범위는 넓게 유지하되, 정밀도를 줄여서 메모리 효율과 속도를 높인 형식이죠. 하지만 바로 이 정밀도의 차이가 강화학습에서 미묘한 불안정성을 낳고 있다는 게 이번 연구에서 발견한 핵심 내용입니다.

Image Credit: ZipNN: Lossless Compression for AI Models
문제의 핵심은 BF16이 반올림 오차(Rounding Error)를 일으킨다는 데 있습니다. 이 아주 미세한 오차가 누적되면서, 훈련 중의 정책(Policy)과 추론 중의 정책 사이에 작지만 치명적인 불일치를 만들어냅니다.
이 문제를 해결하기 위해서 Sea AI Lab과 NUS 연구팀이 제안한 방법은 놀라울 정도로 단순한데요: 복잡한 알고리즘 변경도, 정교한 보정 기법도 아니고, 그저 강화학습 파인튜닝 과정에서 BF16 대신 예전 포맷인 FP16으로 바꿔 사용한 것 뿐이었습니다. 믿기 어려울 정도로 간단하죠 🙂
그럼 이제, 이렇게 작은 변화가 어떻게 그렇게 큰 차이를 만들어냈는지, 그리고 수년간 이어진 패치와 시도들로도 해결하지 못했던 문제를 어떻게 단번에 고쳤는지, 그 이유를 좀 더 자세히 살펴보겠습니다.
FP16 정밀도는 무엇이고 어떤 점이 좋아지는 건가?
FP16과 BF16은 모두 숫자를 표현할 때 16비트(bit)를 사용하지만, 이 16비트를 어떻게 배분하느냐가 다릅니다. 그리고 바로 그 작은 설계상의 차이가 모든 것을 바꿔놓습니다.

Image Credit: Defeating the Training-Inference Mismatch via FP16
FP16은 가수부(Mantissa), 즉 숫자의 세부 정보를 담는 부분에 10비트를, 값의 범위를 정의하는 지수부(Exponent)에는 5비트를 할당하고, 이런 구조 덕분에 높은 정밀도를 가지게 됩니다. 아주 작은 숫자 간의 차이도 정확히 구분할 수 있죠.
하지만 그만큼 표현할 수 있는 값의 범위(Range)는 좁습니다. 숫자가 너무 크거나 작아지면 Overflow(값이 너무 커져버림) 또는 Underflow(0으로 사라짐)이 일어날 수 있습니다.
반대로 BF16은 우선순위를 뒤집습니다.
지수부(Exponent)에는 8비트를 사용해서 FP32(32비트 부동소수점)와 같은 넓은 범위를 유지하지만, 가수부(mantissa)는 7비트만 남겨서 세부적인 표현력은 줄였습니다.
결과적으로 BF16은 극단적인 값에도 잘 버티지만, 정밀도가 거칠어지는(Format이 거친) 구조가 됩니다 - 잘 죽지는 않지만, 세밀한 차이는 흐릿하게 만들어버리는 셈이죠.
대규모의 사전학습 단계에서는 이런 정도의 트레이드오프는 합리적이었습니다. 모델이 다루는 값의 크기와 변화 폭이 워낙 크기 때문에, BF16의 넓은 값 범위가 거의 생명선과도 같았죠.
또, FP16에서 흔히 쓰이던 “Loss Scaling” 같은 꼼수를 쓸 필요도 없기도 했구요. FP16으로 학습할 때는 가끔 그래디언트가 너무 작아져서 Underflow되는 문제를 피하기 위해서, 이런 간단한 방식을 사용합니다.
손실(Loss) 값을 일정 비율로 크게 만듭니다. (예: 1,000이나 10,000배)
그 상태에서 그래디언트(Gradient)를 계산합니다.
이후 가중치(Weight)를 업데이트하기 전에 다시 원래 크기로 나눕니다.
PyTorch, DeepSpeed, Megatron 같은 현대적인 프레임웍들은 이 과정을 자동으로 처리하기 때문에 FP16 학습도 안정적으로 이뤄집니다.
하지만, 강화학습 파인튜닝 단계에서는 상황이 정반대입니다. 사전학습이 끝난 뒤에는 모델의 값이 이미 충분히 안정화되어 있고, 이제는 Overflow(값이 너무 커지는 문제)보다 정밀도 손실(Precision Loss)이 훨씬 더 중요해집니다.
강화학습 파인튜닝에서는 수많은 확률 추정(Probability Estimate)이 연쇄적으로 이어지는 구조입니다. 이때 아주 작은 반올림 오차라도 있으면 시간이 지날수록 누적(Compound)되어서 정책이 점점 어긋나기 시작하거든요 - 즉, 여기서는 한 비트의 정밀도라도 소중한 상황이죠.
위에서 이야기한 것처럼, BF16은 가수부가 7비트이기 때문에 시간이 지날수록 오차가 점점 쌓이면서 훈련과 추론의 불일치가 커집니다. 반면에 FP16은 10비트를 사용하기 때문에 이 값들을 안정적으로 유지할 수 있는 것이죠.
수학적으로 보면, FP16은 약 8배 더 높은 수치 정밀도를 제공합니다. 즉,
FP16의 세밀도 ≈ 2¹⁰ (1024단계)
BF16의 세밀도 ≈ 2⁷ (128단계)
이 차이 덕분에 FP16은 훈련과 추론 사이의 일관성(Consistency)을 유지하고, 불안정성이 폭주(Instability Spiraling)하는 것을 막을 수 있습니다.
BF16에서 FP16으로 전환하는 데는 새로운 알고리즘도 필요없고 복잡한 튜닝도 필요없습니다. 단지 약간의 Loss Scaling 트릭을 쓰는 정도일 뿐이죠. 하지만 그 결과의 차이는 큽니다. 이 단순한 전환이 수학적 정직함(Mathematical Honesty)을 되찾아 줘서, 모델이 학습할 때와 행동할 때가 동일한 방식으로 작동하게 만든 겁니다.
그래서 이 ‘과거로의 회귀(Step Back)’는 아이러니하게도 ‘미래로의 도약(Leap Forward)’이 되었다고 표현할 수 있을 것 같습니다.
BF16에서 FP16으로 변환한 결과
오프라인 성능 점검 결과를 보면, DeepSeek-R1-Distill-Qwen-1.5B 모델에서 순수한 추론 성능(Raw Inference Performance) 자체는 FP16, BF16, FP32 간에 큰 차이가 없었습니다. 하지만 진짜 차이점은 다른 곳에 있었습니다: FP16을 사용했을 때, 훈련–추론 불일치(Training–Inference Mismatch)가 BF16에 비해 약 24배나 작아졌던 것이죠.
그 덕분에 Rollout(시뮬레이션 전개)과 훈련 중 확률값이 서로 훨씬 더 밀접하게 일치하게 되었고, 결과적으로 정책이 더 안정적이고 일관된 방향으로 학습될 수 있었습니다.

Image Credit: Defeating the Training-Inference Mismatch via FP16
검증 실험(Sanity Test)에서도 흥미로운 결과가 나왔습니다. 연구팀은 1,460개의 ‘풀 수 있지만 단순하지 않은(MATH)’ 문제 집합을 사용했습니다. 이 문제들은 이론적으로 모델이 100% 훈련 정확도에 도달할 수 있는 수준이지만, 실제로는 95% 이상을 달성하면 통과(Pass)로 간주했습니다. 이 환경에서 여러 강화학습 알고리즘을 비교한 결과는 다음과 같았습니다.
BF16을 사용한 경우, 학습이 전반적으로 불안정하게 진행되었습니다.
기본 GRPO(Vanilla GRPO)는 초기에 바로 붕괴(Collapse)했습니다.
토큰 단위 TIS(Token-level Importance Sampling)은 조금 더 버텼지만 결국 안정적으로 수렴하지 못하고 실패했습니다.
시퀀스 단위 MIS(Sequence-level MIS)는 상대적으로 더 안정적이었으나, 학습 속도가 매우 느렸고 정확도는 약 95% 수준에서 정체(Plateau)되었습니다.

Image Credit: Defeating the Training-Inference Mismatch via FP16
그런데 Rollout(전개 과정)과 훈련 과정을 모두 FP16으로 전환하니, 훈련이 안정적이고 빠르게 수렴했습니다. 일부 경우에는 정확도가 약 99%에 도달하기도 했죠.
더 놀라운 점은, 단순한 정책 그래디언트 기반의 기본 알고리즘조차도 복잡한 보정 기법을 적용한 BF16 기반 모델들보다 훨씬 더 나은 성능을 보였다는 것입니다. 즉, 복잡한 해법이 아니라 — 정밀도를 FP16으로 되돌리는 단순한 변화만으로도 훈련 안정성과 성능이 모두 크게 향상된 셈입니다.

Image Credit: Defeating the Training-Inference Mismatch via FP16
반복해서 말씀드렸다시피, FP16을 사용하면 훈련–추론 간 불일치가 극도로 작아지고, 그 결과로 최적화 과정이 거의 ‘온폴리시(On-Policy)’처럼 작동하게 되어서 TIS나 MIS 같은 복잡한 보정(Patch) 기법의 필요성이 사실상 사라집니다.
다양한 세팅에서의 결과를 보면:
MoE 강화학습 (Qwen3-30B-A3B-Base)
FP16은 전반적으로 더 안정적인 학습 곡선을 보였고, BF16보다 훨씬 높은 보상(Reward)을 달성했습니다.LoRA 기반 강화학습
BF16을 사용한 LoRA는 약 600스텝 이후에 붕괴했지만, FP16 기반 LoRA는 끝까지 안정적으로 유지되었습니다.대형 밀집 모델 (Qwen3-14B-Base)
FP16은 수렴 속도가 더 빠르고, 최종 정확도 역시 BF16보다 높게 도달했습니다.기타 모델군 (OctoThinker-3B on Llama-3.2-3B)
BF16은 약 150스텝 이후부터 반올림 오차(Rounding Error)가 누적되어 학습이 불안정화되기 시작했지만, FP16은 전체 학습 과정 내내 안정적인 상태를 유지했습니다.
요약하자면, FP16은 단순히 정밀도를 조금 높인 것뿐인데도, 모델이 훨씬 일관되고 예측 가능한 방식으로 학습할 수 있게 되었습니다. 결과적으로 복잡한 보정 기법이 필요 없어지고, 훈련 과정이 깔끔하게 정리된 셈입니다.

Image Credit: Defeating the Training-Inference Mismatch via FP16
정밀도(Precision) 분석 실험 결과를 보면, BF16으로 훈련하고 FP32로 추론을 수행했을 때는
훈련 안정성은 다소 개선되었지만, 추론 속도가 약 3배 느려졌습니다. 반면에, 훈련과 추론 모두 FP16으로 수행했을 때, 안정성, 속도, 그리고 거의 100%에 근접한 훈련 정확도까지 — 모든 면에서 가장 균형 잡힌 성능을 보여주었습니다.
BF16 vs FP16에서의 편향–분산(Bias–Variance) 차이를 보면:
BF16의 경우
GRPO나 토큰 단위 TIS(Token-level IS) 같은 방법은 분산(Variance)은 낮지만 편향(Bias)이 높습니다. 즉, 초반엔 빠르게 학습하지만 곧 붕괴(Collapse)한다는 겁니다.
반면, PG-Seq-IS나 GRPO-Seq-MIS 같은 방법은 편향은 낮지만 분산이 높아, 안정적이지만 속도가 느리고 수렴이 더딘 결과를 보였습니다.
FP16의 경우
위와 같은 편향–분산의 트레이드오프가 거의 사라집니다. 높은 정밀도가 훈련–추론 불일치로 인한 편향을 줄이고, IS(Importance Sampling) 보정 과정에서 생기는 분산까지 안정화시켜서 단순한 알고리즘조차도 매끄럽게 수렴하게 만들었습니다.
결론적으로, 강화학습 파인튜닝 단계에서라면 Rollout과 Training 모두 FP16을 사용하면 됩니다. 그렇게 하면 안정성(Stability), 효율성(Efficiency), 최고 수준의 정확도(Top Accuracy)를 복잡한 알고리즘적인 땜질을 하지 않고도 얻을 수 있습니다.
자, 그럼 FP16의 이점들을 다시 한 번 - 이미 많이 이야기했지만요 - 정리해 보죠.
FP16 정밀도 포맷을 사용할 때의 이점
BF16에서 FP16으로 바꾸는 일은 아주 간단합니다 — 코드 몇 줄 수정으로 끝나고, 알고리즘 자체를 손댈 필요도 없습니다.
FP16은 모든 주요 프레임웍(PyTorch, DeepSpeed, Megatron 등)에서 바로 사용할 수 있고, 모델 구조나 훈련 프로세스를 변경할 필요도 없습니다. 이 FP 정밀도 형식은 훈련 엔진과 추론 엔진이 거의 동일한 수치적 결과를 내도록 보장합니다.
FP16이 주는 주요 이점들은 아래와 같습니다:
반올림 오차(Rounding Error)를 줄입니다.
정밀도가 최대 8배까지 향상됩니다.
FP16을 사용하면 강화학습 파인튜닝 작업이 훨씬 안정적이고 효율적으로 됩니다.
모델은 더 빠르게 학습하고, 다양한 설정(dense, LoRA, Mixture-of-Experts)에서도 일관되게 향상된 성능을 보여줍니다.
추가 연산 비용 없이도 높은 안정성을 확보할 수 있습니다.
결국 FP16은 ‘큰 이점’과 ‘단순함’이라는 두 가지 이점을 동시에 얻는 드문 조합이라 할 수 있습니다. 하지만, 이 방식에도 여전히 몇 가지 트레이드오프가 있다는 점은 잊지 말아야겠죠.
한계점
무엇보다 먼저, BF16에서 FP16으로 전환한다는 것은 기본적으로 ‘범위(Range)’를 희생하고 ‘정밀도(precision)’를 얻는 선택이라고 말씀드렸죠. FP16은 지수부(Exponent)가 5비트에 불과하기 때문에 BF16의 8비트에 비해 Overflow(값이 너무 커지는 현상)나 Underflow(값이 너무 작아 0으로 사라지는 현상)가 더 쉽게 발생할 수 있습니다. 즉, 아주 큰 모델이나 극단적인 그래디언트 값을 다룰 때는 문제가 될 수 있습니다.
따라서, 우선 아주 큰 스케일의 사전학습 단계에서는 BF16을 사용해서 더 넓은 표현 범위를 확보하는 게 여전히 더 안전하고 다루기 쉬운 선택입니다.
또, 아주 큰 분산 학습 환경(Distributed System)에서는 Overflow 관리나 동기화(Synchronization)를 위해서 추가적인 엔지니어링 작업이 필요할 수도 있겠네요.
FP16이 모든 학습 단계에 적합한 만능 포맷은 아닌 것은 당연하지만, 강화학습 파인튜닝의 단계에서는 이미 사실상의 표준처럼 자리 잡고 있습니다. 게다가, 유명한 개발자들과 주요 연구팀들 역시
이미 FP16 방식을 널리 활용하고 있구요. 그 사례들을 한 번 볼까요?
초기 구현 사례
논문이 공개되고 나서, 연구팀이 BF16에서 FP16으로 전환하는 방법을 소개하자 트위터에서는 이 소식이 빠르게 퍼졌습니다. 많은 사용자들이 이 성과를 높이 평가하고 놀라움을 표현한 것이죠.
물론 언제나 그렇듯이, 급속히 주목받는 연구에는 “과대평가됐다”는 반응도 함께 따릅니다. 일부 사람들은 이 연구가 “BF16이 나쁘다”고 주장하는 것처럼 보인다고 말했지만, 그건 사실이 아닙니다. 연구자들은 오히려 BF16의 장점과 강점을 명확히 인정하면서, 어떤 상황에서는 FP16보다 더 잘 작동하는 경우도 분명히 짚어주고 있습니다.
가장 흥미로웠던 점은, 안드레 카파시가 이 연구를 직접 언급하고 자신의 프로젝트인 nanochat에 즉시 BF16 → FP16 전환 방법을 적용했다는 사실입니다. 이 nanochat은 실험용으로 완벽한, 저비용의 오픈소스 소형 모델로, 그의 새로운 시도 중 하나입니다. nanochat에 대한 글은 튜링포스트 코리아의 이전 FOD를 참고하세요:

Image Credit: Zichen Liu’s X
Nathan Lambert도 이 논의에 동참해서, 이 연구를 실제로 적용해 보라고 적극적으로 독려하면서 FP16이 보여주는 뛰어난 오차 감소 능력(Error-reduction Capability)을 강조했습니다:
일반적으로 유명한 AI 연구자나 개발자들이 어떤 방법론에서 특별한 가치를 발견했다고 이야기를 한다면, 그건 실제로 직접 시도해 볼 만한 가치가 충분하다는 신호이기도 하다고 보는게 합리적이겠죠.
이번 연구 「Defeating the Training–Inference Mismatch via FP16」은 아직 공개된 지 얼마 되지 않은 최신 논문이기 때문에, 앞으로 이 방식을 적용한 더 많은 응용 사례가 등장하리라 생각합니다.
맺으며
반복해서 말씀드립니다. BF16에서 FP16으로의 전환, 이것은 범위를 희생하고 정밀도를 얻는 선택입니다. 이 트레이드오프는 강화학습 파인튜닝 단계에서 특히 잘 작동합니다. 왜냐하면, 이 단계에서는 불안정성의 주요 원인이 알고리즘 설계보다 수치 정밀도(Numerical Precision)에 있기 때문입니다.
반면에, BF16은 여전히 초기 학습 단계, 즉 값의 변동폭이 크고 불안정한 시기에는 훌륭한 선택입니다. 그러나 보다 안정적이고 정밀도에 민감한 강화학습 단계에서는 그 장점이 다소 제한적이라는 겁니다.
Sea AI Lab과 NUS의 연구는 명확한 교훈을 줍니다: 바로, 모델 학습의 각 단계별로 그에 맞는 정밀도와 접근법을 가져야 한다는 것입니다. 특히 이 연구가 의미 있는 이유는, 연구자들이 강화학습 파인튜닝 —지금 가장 널리 쓰이는 학습 단계 — 에서의 단순하고 효과적인 해결책을 발견하고 이를 공개적으로 공유했다는 점입니다.
이 결과, 앞으로 우리가 훈련 과정의 각 단계를 바라보는 방식과 평가하는 기준 자체를 다시 생각하게 만들지도 모릅니다.
저희 튜링포스트의 필진들도 종종 과거의 아이디어를 되돌아보면서 지금 일어나고 있는 발전과 혁신의 맥락을 이해해보려는 시도를 하거든요. 이번 연구는 그런 태도의 중요성을 다시 한 번 상기시켜 줍니다. ‘과거의 방식’을 새로운 시각으로 바라보는 것 — 그것이 그 자체로 진보일 때도 있다는 사실을요.
한때 빛을 잃었던 FP16 포맷은, 지금 GRPO, PPO 같은 최신 강화학습 기법에서 안정성과 정확성을 이끄는 핵심 요소로 되살아났습니다.
보너스: 참고자료
FP16 became practically relevant for deep learning with the 2017 Baidu and NVIDIA paper – Mixed Precision Training
GitHub (Defeating the Training-Inference Mismatch via FP16)
Andrej Karpathy’s nanochat
Revisiting Reinforcement Learning for LLM Reasoning from A Cross-Domain Perspective

튜링 포스트 코리아의 인사이트가 담긴 컨텐츠를 마음껏 읽어보세요!
프리미엄 플랜으로 업그레이드하시면 튜링 포스트 코리아의 모든 컨텐츠를 제한없이 보실 수 있고, 튜링 포스트 코리아의 컨텐츠 제작에 큰 도움이 됩니다. 감사합니다!
주간 AI 뉴스레터
AI 유니콘 기업들에 대한 심층 분석 기사
AI 기술, 산업, 정책 전문가 인터뷰
AI 기술 및 산업에 대한 심층 분석 시리즈
분석 기사 요청 및 튜링 포스트 코리아 기고 기회 제공
읽어주셔서 감사합니다. 친구와 동료 분들에게도 뉴스레터 추천해 주세요!
Reply