강화 학습으로 언어 모델의 자기 수정 능력 훈련하기
(arxiv.org)- Google DeepMind의 SCoRe는 외부 피드백 없이 LLM이 자기 답을 고치는 능력을 키우기 위해, 모델이 직접 만든 수정 궤적에서 학습하는 다중 턴 온라인 강화 학습 접근법임
- 기존 SFT 방식은 학습 데이터의 오류와 실제 모델 오류가 어긋나는 분포 불일치, 또는 두 번째 답에서 거의 고치지 않는 행동 붕괴에 취약함
- SCoRe는 첫 시도 분포를 기반 모델에 가깝게 묶은 뒤 두 번째 시도를 개선하도록 초기화하고, 이후 보상 shaping으로 실제 수정 행동을 강화함
- Gemini 1.0 Pro와 Gemini 1.5 Flash 실험에서 기반 모델 대비 자기 수정 성능이 MATH는 15.6%p, HumanEval은 9.1%p 개선됨
- 프롬프팅이나 오프라인 SFT만으로는 내재적 자기 수정이 안정적으로 생기기 어렵고, 자기 생성 데이터 위에서 붕괴를 막는 강화 학습 설계가 필요함
SCoRe가 겨냥한 자기 수정 문제
- LLM은 수학과 코딩 같은 추론 작업에서 유용하지만, 테스트 시점에 자신의 답을 검토하고 고치는 메타 전략을 안정적으로 실행하지 못함
- 자기 수정은 모델이 초기 응답을 다시 살펴 더 나은 최종 응답으로 바꾸는 능력임
- 이 작업은 외부 입력 없이 모델이 자신의 답을 고치는 내재적 자기 수정 설정에 초점을 둠
- 테스트 시점에는 정답 확인기나 외부 피드백을 쓰지 않음
- 학습 중에는 모델 출력의 정답 여부를 평가하는 보상 함수에 접근한다고 가정함
- SCoRe는 별도 수정 모델 없이, 하나의 모델이 첫 응답과 오류 수정을 모두 수행하도록 학습함
기존 접근이 막히는 지점
- 프롬프팅만으로 자기 수정을 유도하면 여러 선행 연구에서 오히려 성능이 떨어질 수 있음
- 일부 방식은 정답, 테스트 케이스, 더 강한 모델, 사람 주석, 별도 refinement 모델 같은 추가 조건에 의존함
- SFT 기반 접근은 자기 생성 수정 궤적을 활용할 수 있지만, 실험에서는 큰 양의 자기 수정 효과로 이어지지 않음
- MATH 비교 실험에는 STaR와 Pair-SFT 변형이 사용됨
- STaR는 잘못된 응답을 성공적으로 고친 궤적만 남겨 SFT를 수행함
- Pair-SFT는 잘못된 응답과 올바른 응답을 짝지은 합성 repair trace로 단일 모델을 학습함
SFT 기반 자기 수정 실험 결과
- Gemini 1.5 Flash 기반 MATH 실험에서 기반 모델은 첫 시도 정확도 52.6%, 두 번째 시도 정확도 41.4%로 -11.2%p 악화됨
- Pair-SFT는 두 번째 시도 정확도를 54.2%로 올렸지만, 첫 시도 대비 개선폭은 1.8%p에 그침
- STaR 기본 설정은 첫 시도 55.4%, 두 번째 시도 41.2%로 -14.2%p 하락함
- correct-to-correct 데이터를 추가한 STaR는 Δ(t1,t2)가 0.4%p로 개선됐지만, 자기 수정 효과는 작음
- correct-to-correct 데이터를 추가한 Pair-SFT는 첫 시도와 두 번째 시도가 모두 55.0%가 되어 답을 바꾸지 않는 쪽으로 치우침
두 가지 실패 모드
- SFT 기반 방법은 분포 불일치에 약함
- 학습 데이터는 기반 모델이 만든 첫 시도 오류에 맞춰져 있음
- 학습된 모델이 직접 만든 첫 시도 오류 분포에서는 수정 성능이 떨어질 수 있음
- Pair-SFT는 고정된 첫 응답 집합에서는 correction accuracy가 올라가지만, 학습자가 직접 생성한 첫 응답에서는 자기 수정 정확도가 악화됨
- 행동 붕괴가 생기면 두 번째 시도에서 실질적 수정을 하지 않거나 매우 보수적으로만 수정함
- edit distance ratio 분석에서 STaR와 SFT 모델은 종종 거의 수정하지 않는 패턴을 보임
- 표준 다중 턴 RL은 두 시도 모두의 성능을 올릴 수 있지만, 첫 시도와 두 번째 시도의 차이 Δ(t1,t2)를 키우지 못해 자기 수정 능력으로 이어지기 어려움
SCoRe의 학습 구조
- SCoRe는 자기 생성 온라인 데이터에서 학습해 분포 불일치를 줄이는 on-policy 다중 턴 RL 접근임
- 기본 RL 학습에는 고정 모델에 대한 KL-divergence penalty가 포함된 REINFORCE 정책 경사 방식이 사용됨
- Stage I은 두 시도의 행동을 분리하기 위한 초기화 단계임
- 첫 시도 분포는 기반 모델에 가깝게 유지하도록 KL 제약을 둠
- 두 번째 시도는 높은 보상을 받도록 학습함
- 목표는 두 번째 시도에서 더 나은 응답을 탐색할 수 있는 초기 정책을 만드는 것임
- Stage II는 두 시도를 함께 최적화함
- 두 번째 시도 보상에 progress bonus를 추가함
- 두 번째 시도가 첫 번째 시도보다 정답 여부를 개선할 때 보너스가 강화됨
- 정답이던 첫 응답을 오답으로 바꾸는 전이는 강한 음의 효과를 받음
보상 shaping이 필요한 이유
- 표준 RL 목표만 두면 서로 다른 두 전략이 모두 가능함
- 첫 번째 답을 두 번째 답에서 개선하는 전략
- 첫 번째 답을 최대한 잘 만들고 두 번째에서는 거의 수정하지 않는 전략
- 학습 데이터에서는 두 전략이 모두 좋아 보일 수 있지만, 후자는 새 문제에서 자기 수정으로 일반화되지 않음
- SCoRe의 보상 shaping은 최종 정답성뿐 아니라 정답성의 변화를 보상에 반영함
- 이 설계는 단순히 높은 보상 답을 맞추는 대신, 잘못된 첫 응답을 올바른 두 번째 응답으로 바꾸는 행동을 강화함
성능과 예시
- SCoRe는 MATH에서 산술 오류와 추론 오류를 두 번째 시도에서 고치는 예시를 보임
- 산술 예시는 모듈러 곱 계산에서 첫 답 1을 두 번째 시도에서 3으로 수정함
- 추론 예시는 함수 범위 개수 문제에서 첫 답 ∞를 두 번째 시도에서 3으로 고침
- Gemini 1.0 Pro와 Gemini 1.5 Flash에서 SCoRe는 최고 수준의 자기 수정 성능을 달성함
- 기반 Gemini 모델 대비 자기 수정 개선폭은 MATH에서 15.6%p, HumanEval에서 9.1%p임
- MATH 추론 시점 scaling 실험에서는 샘플을 병렬 직접 생성에만 쓰는 것보다 순차적 자기 수정에 쓰는 방식이 더 효과적인 구간이 나타남
실무적 함의
- 자기 수정 학습은 올바른 답변 데이터를 모아 SFT하는 방식만으로 처리하기 어려움
- 모델이 테스트 시점에 자신이 만든 오류를 고쳐야 한다면, 학습 중에도 모델 자신의 응답 분포에서 수정 행동을 배워야 함
- SCoRe의 핵심 제약은 학습 중 정답 여부를 평가하는 보상 함수가 필요하지만, 테스트 시점에는 그 보상을 쓰지 않는다는 점임
- 단일 모델 배포를 유지하면서 자기 수정 능력을 키우려면, 별도 수정 모델이나 teacher supervision 없이도 다중 턴 RL과 붕괴 방지 보상 설계가 필요함
댓글과 토론
Hacker News 의견들
-
OpenAI의 o1 모델과 비슷한 접근처럼 보이지만, o1 논문이 공개되어 있지 않아 인용은 없음
아쉽게도 가중치 공개에 대한 언급은 보이지 않음- 이 논문은 주 학습의 일부나 이후 단계로 강화학습을 쓰고, 이후 모델은 평소처럼 추론하는 내용을 다루는 것 같음
o1도 그랬을 수는 있지만, 더 큰 변화는 프롬프트를 받은 뒤 확정 답변을 내기 전에 단어로 “생각”하며 실행 시점에 재조정하는 런타임 사고 과정이라고 봄
이 이해가 맞다면 두 접근은 비슷하지 않음. OpenAI는 ChatGPT 첫 버전 이후 모든 후속 모델에 강화학습을 써온 것으로 알고 있고, 애초에 UI에서 피드백을 남길 수 있는 이유도 그 때문임 - 어떤 점에서 비슷한지 궁금함
- 이 논문은 주 학습의 일부나 이후 단계로 강화학습을 쓰고, 이후 모델은 평소처럼 추론하는 내용을 다루는 것 같음
-
논문이 핵심 명제를 직접 설명하기보다 주변을 많이 맴돌아서 조금 이해하기 어려웠음. 내가 이해한 바로는, 어려운 문제에 대해 LLM이 더 정확한 답을 내게 하려는 것이 목표임
한 가지 가설은 모델에 자가 수정 행동을 학습시켜, 틀린 답을 입력으로 받아 더 나은 답이나 정답으로 개선하게 만들 수 있다는 것임
이전에도 수정된 답의 품질을 보상으로 삼는 여러 강화학습 기법으로 이런 행동을 학습시키려 했지만 잘 작동하지 않았고, 학습된 행동도 잘 일반화되지 않았음
이 논문의 핵심은 모델이Answer 1, Reasoning, Corrected Answer학습 예시와 “Corrected Answer를 더 좋게 만들라”는 신호를 받으면, 실제로는 완전히 가능한 해법이 두 가지라는 데 있음. 하나는 우리가 원하는 대로Reasoning, Corrected Answer를 개선하는 것이고, 다른 하나는 그냥Answer 1자체를 개선해서Corrected Answer=Answer 1이 되게 하는 것임
기존 연구에서는 후자가 실제로 일어났고, 그래서 원하는 행동 학습이 실패했다고 봄. 모델은 수정 행동을 개선하는 게 아니라 그냥 첫 답을 개선하려 듦
이 논문의 해법은 학습 절차를 약간 바꿔 전자의 접근을 유도하는 것임. 그래서 이전 답을 고치는 원하는 행동을 실제로 학습시키려는 시도임
학습은 두 단계로 진행됨. 1단계에서는 KL 발산 손실로 첫 답을 그대로 유지하게 강제하면서, 두 번째 답을 개선하면 보상을 줌. 이렇게 하면 초기 답 분포가 유지되어 나중에 틀린 답이 모델에서 학습으로 사라져 “틀린 답”을 덜 보게 되는 문제를 피하면서, 자가 수정 행동을 모델에 초기화할 수 있음
2단계에서는 모델이 첫 답도 바꿀 수 있지만, 보상 함수를 조정해 첫 답은 나빴고 두 번째 답은 좋은 뒤집기에 더 높은 보상을 줌. 이 단계에서는 첫 답을 개선하는 전략과 자가 수정을 개선하는 전략을 모두 쓸 수 있지만, 후자에 더 큰 보상이 감. 전체 성능을 다듬으면서도 자가 수정 행동을 유지하려는 정제 과정처럼 보임
지표상으로는 이 기법이 더 잘 작동하고 더 잘 일반화된다고 나옴
다만 2단계에서 모델이 뒤집기 보상을 극대화하려고Answer 1을 일부러 더 나쁘게 쓰는 방향을 학습할까 봐 조금 걱정됨.Answer 1이 나빠지지 않도록 균형 장치가 필요할 텐데, 보상 함수에 들어 있는지 또는 실제로 유효한 우려인지는 잘 모르겠음- 답변에서 아이디어 주변을 맴도는 방식은 많은 LLM 출력에서 보이는 현상을 잘 설명함. o1은 직접 써보지 않았지만 그 문제를 고치는 것처럼 보임
- “다른 하나는 그냥
Answer 1자체를 개선해서Corrected Answer=Answer 1이 되게 하는 것”이라는 부분이 무슨 뜻인지 궁금함
Answer 1을 개선하는 것이 애초에 목표 아닌가? 설명만 보면Answer 1이 입력이 아니라 LLM의 출력처럼 들림
-
LLM은 자기 학습 과정의 감각적 경험을 직접 기억하지 못함. 내가 스스로를 교정하는 주요 방식 중 하나는, 어떤 것에 대해 말하려 할 때 내가 그걸 어떻게/왜 아는지 따져보고, 실제로 아는 것인지, 헛지어내는 것인지, 아니면 신뢰도가 낮은 출처에서 들은 것인지 가늠하는 것임
LLM이 어떤 방식으로든 자기 학습을 기억하지 못한다면 자가 수정은 어렵다고 봄- 그러니까 해결책은 각 학습 배치 앞에 감각 경험 묘사를 붙이는 것이라는 뜻인가? 예를 들어 “당신은 1997년 파리의 카페에서 다음 내용을 읽었다. 읽는 동안 훌륭한 바게트와 삶은 달걀, 지나치게 볶은 커피를 먹고 있었다. 옆 테이블 여자는 아름다운 파란 모자를 쓰고 있었다” 같은 식으로 말임
그리고 최종 모델을 후학습해서 어떤 텍스트를 어디서 읽었는지 기억하게 하거나, 읽지 않은 텍스트가 나오면 어떤 경험도 기억하지 못하게 만드는 것인가?
누가 이걸 시도해서 성공하면 박사과정 그만두고 캠프 상담사로 돌아가겠음 - 비슷한 방향으로 보임. 실제로 도움이 됨: Source-Aware Training Enables Knowledge Attribution in Language Models (https://arxiv.org/abs/2404.01019)
초록에 따르면 LLM에 그런 능력을 주기 위해 출처 인식 학습을 탐구함. 구체적으로는 (i) 각 문서의 지식과 고유한 출처 문서 식별자를 연결하도록 LLM을 학습시키고, 이어서 (ii) 프롬프트가 주어졌을 때 뒷받침하는 사전학습 출처를 인용하도록 지시 튜닝하는 방식임 - 강하게 동의하지 않음: https://mypapers.nyc3.cdn.digitaloceanspaces.com/the_phenomenology_of_machine.pdf
이것도 참고할 만함: https://www.sciencedirect.com/science/article/pii/S1571064523001094
o1의 학습 방식은 이 정식화에서 strange particle 모델로 설명됨 - 일상적인 사용에서 그 가치에 너무 큰 비중을 두는 것 같음. 지식이 쌓이면, 특히 어떤 체계 안에 박혀 있지 않은 잡학성 정보는 “왜 이걸 아는지는 모르겠지만 답은 X다”라는 패턴이 흔함
설령 컴퓨터과학처럼 체계 안에 있는 지식이라도 시간이 지나면 감각적 경험은 배경으로 희미해짐. 예컨대 컴퓨터과학을 하는 사람들처럼 나도 꽤 많은 알고리즘의 O() 성능 특성을 즉석에서 말할 수 있지만, 특정 알고리즘을 어디서 배웠는지는 오래전에 흐려졌음
사람이 스스로를 교정할 때 일반적인 과정은 “내가 이걸 아는지 가늠하기”나 “신뢰도 낮은 출처에서 들었는지 떠올리기” 같은 대단한 작업이 아님. 보통은 “완전히 이해하지는 못했다”는 흐릿한 감각이 있고, 자가 수정은 신뢰할 만한 출처로 정보를 다시 확인하는 것임
그래서 기억 회상에서 감각적 경험이 생각만큼 중요하다고 보지는 않음 - 약물 영향 아래 있거나 심각한 정신건강 위기를 겪는 게 아니라면 환각이 아니라 작화에 가까움
- 그러니까 해결책은 각 학습 배치 앞에 감각 경험 묘사를 붙이는 것이라는 뜻인가? 예를 들어 “당신은 1997년 파리의 카페에서 다음 내용을 읽었다. 읽는 동안 훌륭한 바게트와 삶은 달걀, 지나치게 볶은 커피를 먹고 있었다. 옆 테이블 여자는 아름다운 파란 모자를 쓰고 있었다” 같은 식으로 말임
-
스포일러: 자기회귀적 다음 토큰 예측 패러다임에서는 환각을 없앨 수 없음, 일명 LeCun의 법칙임
여기서 문제는 사람들이 언어 모델을 실제로 잘하는 일인 반창의적 텍스트 생성이 아니라, 결정론적 문제 해결기로 쓰려 한다는 데 있음- LeCun의 법칙이라는 게 실제로 존재하나? 검색해도 결과가 거의 없고, 다른 정의로 쓰인 HN 댓글 정도만 나옴. 잘 알려지지 않은 논문에서 나온 말일 수는 있지만, 문서화가 이렇게 빈약한데 이 맥락에서 꺼내는 건 이상해 보임
- 이전 토큰의 퍼플렉서티를 모델에 다시 넣어서, 모델이 자신이 궤도를 벗어나고 있다는 걸 알 수 있게 하는 식의 시도를 해본 사람이 있는지 궁금함
그런 경우 덜 확신에 찬 답변을 하도록 학습시켜 환각하려는 경향을 줄일 수 있을지도 모름 - 이 관점이 나와서 반가움
사람들에게 이렇게 설명하곤 함. 홍보 부서만 있는 회사를 상상해보라. 보도자료를 만들고 기자 질문에 답하는 능력은 매우 뛰어나지만, 회사의 나머지 부분이 없으니 출력 텍스트를 의미 있게 제약하는 것이 없음
사람들이 이걸 이해하는 다른 우주였다면, LLM은 심각한 일에는 전혀 쓰이지 않고 재미있는 작은 예술 프로젝트에 많이 쓰였을 것임 - LeCun의 논증은 심각하게 결함이 있음. 전혀 엄밀하지 않고, 근거 없이 그렇게 포괄적인 결론을 내리면 안 됨
- “절대”라는 말 자체가 문제는 아님. 사람도 비슷하게 행동함
핵융합은 한 번만 제대로 풀면 됨
-
이건 사실상 어떤 형태의 지식 증류인가?
-
AI 평론가들이 환각이라는 표현을 대중화한 게 싫음. 통계 덩어리를 의인화해서, 마치 사람의 마음과 비슷한 깊은 사고 과정을 하고 있는 것처럼 보이게 만듦
아니다, “환각”하는 게 아님. 거짓말을 하거나 지어내는 것도 아님. underlying weights가 촉발하는 대로 데이터를 뱉어내는 것임
이게 일반적인 JSON API 엔드포인트였다면 API가 환각한다고 하지 않고, 고장 났으니 “이 API는 형편없다”고 했을 것임- 반대로 봄. 사람들은 인간의 마음이 “깊은 사고”를 한다고 여기지만, 실제로는 그냥 통계 덩어리일 수 있음
- 정확한 단어는 작화임. 빠진 정보를 채우지만, 자신이 그러고 있다는 걸 모를 수 있는 현상임
어떤 신경계든 학습 데이터를 완벽히 저장하지 못하므로, 우리는 모두 어느 정도 작화함
반면 인간의 “환각”은 감각 피드백 고리의 특정한 붕괴에 가까움. LLM에는 애초에 그런 과정이 없음
환각은 내부 감각 피드백 고리가 실제 감각 입력을 압도해, 거짓 감각 경험이나 신호의 흐름이 생성되고 처리될 때 일어남. 그 거짓 진행 경험은 실제 감각 정보를 일부 포함할 수도 있고 아닐 수도 있음
꿈을 꿀 때 우리는 환각하는 것임. 실제 감각에서 분리된 감각 경험 고리가 자유롭게 돌아가지만, 생산적인 목적도 있음
감각에 피드백이 있는 이유는 감각 입력에 대한 해석을 단서로 삼아 다음 순간의 입력 해석을 더 쉽게 만들기 위해서임. 하지만 새 입력이 기대에서 크게 벗어나면, 진행 중인 해석이 재설정되어 빠르게 방향을 다시 잡는 것이 중요함
실제 맥락 변화에 맞춰 잘못된 해석을 고치려면 원시 입력 해석으로 되돌아가는 것이 중요할 뿐 아니라, 이런 재설정은 새롭거나 예상 밖의 일이 일어났다는 신호이므로 학습을 촉발할 가능성도 큼
그래서 “환각”이라는 용어 선택은 불운했고 오해를 부름 - 안 좋은 소식이지만, 그 용어는 LLM이 등장하기 훨씬 전부터 딥러닝 연구에서 쓰였음. 평론가들이 뭔가를 대중화하거나 LLM의 단점을 정당화하려 한 게 아니라, 연구자들이 연구하던 현상에 붙인 이름이었음
LLM 이전에 이런 방식으로 쓴 논문 예시는 다음과 같음
2021: The Curious Case of Hallucinations in Neural Machine Translation (https://arxiv.org/abs/2104.06683)
2019: Identifying Fluently Inadequate Output in Neural and Statistical Machine Translation (https://aclanthology.org/W19-6623/)
-
지능적인 알고리즘으로 멍청한 비지능적 다음 단어 예측기를 안내해도, 결국은 비지능적 알고리즘일 뿐임
쓰레기를 더 우아하게 분류하는 것은 맞지만, 결국 쓰레기라는 점은 그대로임
강화학습 비슷한 접근이 Transformer 비슷한 접근을 대체하길 바랐지만, 그건 헛된 꿈에 가까움