AWS가 2026년 10월 21일 기술 블로그에서 오픈 웨이트 추론 모델 GPT-OSS-20B가 영어가 아닌 언어로도 추론하도록 미세 조정한 과정을 공개했다. 이 모델은 프랑스어, 독일어, 스페인어, 이탈리아어로 추론하라고 지시해도 지시를 받아들인 뒤 사고 과정을 영어로 내놓았다. 50개 문항 다국어 추론 시험에서 기본 모델이 요청한 언어로 추론한 비율은 22%였다.
AWS는 Amazon SageMaker HyperPod에서 지도 미세 조정(SFT)을 먼저 적용하자 추론 언어 일치율이 100%가 됐다고 밝혔다. 이어 Group Relative Policy Optimization(GRPO)이라는 강화 학습 기법을 얹자 답변 언어 일치율이 62%에서 70%로 올랐다. 블로그는 코드와 매니페스트를 awsome-distributed-ai GitHub 저장소의 해당 테스트 케이스 디렉터리에 두었다고 안내했다.
과제와 학습 환경
학습에는 HuggingFaceH4/Multilingual-Thinking 데이터셋을 썼다. 영어와 함께 프랑스어, 스페인어, 독일어, 이탈리아어로 번역한 단계별 추론 데이터이며 학습용 약 949개와 검증용 50개로 이뤄진다. 모델은 시스템 프롬프트의 추론 언어 지시를 받고, 추론과 최종 답변을 모두 그 언어로 써야 한다. 평가는 5개 언어(영어·프랑스어·독일어·스페인어·이탈리아어)에 걸친 수학·논리 문제 10개씩, 모두 50건이다. 지표는 추론 과정이 요청 언어인지, 최종 답변이 요청 언어인지 두 가지다.
AWS는 SFT가 모델에 없는 행동을 가르치고, GRPO는 모델이 이미 가끔 내놓는 행동을 다듬는다고 설명했다. GRPO는 프롬프트마다 응답을 여러 개 뽑아 평균 이상인 응답 쪽으로 정책을 밀기 때문에, 원하는 행동의 확률이 기본 분포에서 0이면 강화할 대상이 거의 없다는 것이다.
인프라는 Amazon EKS로 조율하는 SageMaker HyperPod 클러스터다. GPT-OSS의 SFT와 GRPO 첫 실험에는 PyTorch TRL 라이브러리를, Qwen 대조 실험에는 veRL 트레이너와 Ray, KubeRay, 빠른 롤아웃 생성용 vLLM을 썼다. 체크포인트와 데이터는 Amazon FSx for Lustre에 두고 노드 간 통신은 Elastic Fabric Adapter(EFA)로 처리했다. 모든 미세 조정은 LoRA를 썼다. GPT-OSS SFT는 ml.g6e.12xlarge 4대(L40S 48GB GPU 16개), Qwen 대조 실험은 g6e.48xlarge 2대(L40S 16개)에서 돌렸다.
SFT와 GRPO 결과
기본 모델의 추론 언어 일치율은 22%(11/50)였고, 영어 100%, 프랑스어 0%, 독일어 10%, 스페인어 0%, 이탈리아어 0%였다. 영어 문항이 대부분을 차지한 수치다.
SFT는 LoRA r=8, α=16 설정으로 1,000스텝 학습했다. FSDP 전체 샤딩, BF16 정밀도, 그래디언트 체크포인팅을 적용했고 작업은 Kueue가 관리하는 탄력적 HyperPodPyTorchJob으로 hyperpodrun을 통해 실행했다. 학습은 두 단계로 진행됐다. 약 200스텝에서 목표 언어로 추론하는 법을 익혀 추론 언어 지표가 100%에 닿았고, 약 1,000스텝에서는 답변까지 목표 언어로 쓰는 법을 추가로 익혔다.
1,000스텝 최종 평가에서 추론 언어 일치율은 100%(50/50), 답변 언어 일치율은 62%(31/50)였다. 언어별 답변 일치율은 프랑스어 60%, 독일어 60%, 스페인어 30%, 이탈리아어 60%, 영어 100%다. 최종 답변은 짧고 영어 편향이 가장 강한 구간이라 남은 격차가 더 어렵다는 것이 AWS의 설명이다.
GRPO는 SFT 체크포인트에서 시작했다. SFT로 만든 LoRA를 병합한 뒤 새 LoRA(r=8, α=16)를 얹었으며, 학습 대상 매개변수는 200억 개 중 약 1,360만 개(0.068%)다. 프롬프트당 8개를 생성하고 학습률 1e-6으로 10 에포크 돌렸다. 보상은 답변 언어(±5.0), 추론 언어(±1.5), 간결성(+0.5 또는 −1.0)을 합쳐 −7.5에서 +7.0 범위다. 답변 언어 지표는 학습 초반에 정점을 찍었고, 평가에는 체크포인트 1470을 썼다.
| 단계 | 추론 언어 일치 | 답변 언어 일치 | 둘 다 일치 |
|---|---|---|---|
| 기본 모델 | 22% | 미공개 | 미공개 |
| SFT | 100% | 62% | 62% |
| SFT+GRPO | 100% | 70% | 70% |
GRPO 이후 답변 언어 일치율은 62%에서 70%(+8포인트, 35/50)로 올랐고 추론 언어 100%는 유지됐다. 언어별로는 프랑스어 70%, 독일어 80%, 스페인어 60%, 이탈리아어 40%, 영어 100%다. 이탈리아어는 SFT의 60%에서 40%로 낮아졌다. AWS는 SFT가 완전히 수렴시키지 못한 가끔 맞는 행동을 GRPO가 강화했다고 평가했다. 같은 프랑스어 프롬프트를 넣으면 기본 모델은 영어로 추론하고, SFT 모델은 프랑스어로 추론하지만 답은 자주 영어로 내며, GRPO 모델은 추론과 답을 모두 프랑스어로 한다고 밝혔다.
Qwen 대조 실험
AWS는 같은 원리가 다른 모델에서도 성립하는지 Qwen2.5-7B-Instruct로 확인했다. 환경은 g6e.48xlarge 2대, EFA 100Gbps, Ray 2.44, KubeRay 1.4.2, veRL v0.6.1, vLLM 0.8.4이다. 내부 실험이며 공개 저장소는 아직 출시되지 않았다. 기본(A), SFT만(B), SFT+GRPO(C) 세 조건을 비교했다.
| 지표 | A 기본 | B SFT | C SFT+GRPO | GRPO 증가분 |
|---|---|---|---|---|
| 구조화 형식 | 0% | 92% | 98% | +6 |
| 추론 언어 | 0% | 96% | 98% | +2 |
| 답변 언어 | 0% | 38% | 44% | +6 |
| 둘 다 일치 | 0% | 38% | 44% | +6 |
초등 수학 벤치마크 GSM8K에서는 기본 Qwen2.5-7B가 이미 90.5%(181/200)를 기록했고, 30스텝 GRPO 후에도 90.5%였다. 샘플링한 묶음 대부분이 모두 정답이면 묶음 내 상대 이점이 0으로 수렴해 학습 신호가 사라진다는 것이 AWS의 설명이다. AWS는 GRPO가 최적화할 대상을 가지려면 Pass@k가 Pass@1보다 훨씬 큰 여지(headroom)가 있어야 한다고 밝혔다.
적용 지침
- SFT부터 시작한다. GRPO는 기본 확률이 0인 행동을 가르칠 수 없고, 이번 GRPO 성과는 모두 SFT 체크포인트 위에서 나왔다.
- SFT와 GRPO 모두 LoRA를 쓴다. r=8, α=16 설정은 학습 가능 매개변수가 0.068%이고, Qwen 대조 실험의 GRPO에서도 수치가 안정적이었다(그래디언트 노름 0.23, GPU당 약 11.7GB).
- 없는 행동에는 SFT, 가끔 맞는 행동을 다듬을 때는 GRPO를 쓴다. 이번 실험에서 GRPO 향상 폭은 6~8%포인트였다.
- GPU 시간을 쓰기 전에 보상 여지를 확인한다. 이미 정확도가 최고 수준이거나 목표 행동의 기본 확률이 0이면 GRPO는 도움이 되지 않는다.
재현하려면 SageMaker HyperPod EKS 클러스터, FSx for Lustre(PersistentVolumeClaim fsx-claim, 경로 /fsx), EFA 인스턴스와 NCCL·aws-ofi-nccl 환경, 컨테이너 레지스트리, openai/gpt-oss-20b와 데이터셋용 HuggingFace 토큰이 필요하다. 작업이 끝나면 pod와 job, HyperPod 클러스터 또는 노드 그룹, FSx 파일 시스템, S3 버킷을 삭제해 비용을 막으라고 안내했다.
출처
이 기사는 아래 자료를 바탕으로 정리했습니다. 제목을 누르면 원문이 새 창으로 열립니다.