AI VIDEO BRIEFING

LLM 내부 표현과 타입 예측: 활성값 스티어링으로 코드 모델을 들여다본 강연 정리

노스이스턴대 아르준 구하가 코드 LLM의 내부를 파고든 강연을 정리했다. 층마다 벡터를 더해 출력 언어를 바꾸고 타입 오예측을 최대 60% 교정한 실험, 그리고 학생 2천여 개 프롬프트에서 드러난 실패 원인을 함께 짚는다.

LLM은 프로그래밍 언어를 내부에서 어떻게 가르나: 활성값을 밀어 타입 오류를 고친 실험 영상 대표 이미지

핵심 메시지

  • 2022년 당시 코드 LLM 평가는 파이썬에 편중돼 있었고, 구하 연구팀은 HumanEval을 여러 언어로 옮긴 MultiPL-E로 대규모 다중언어 평가를 처음 시도했다.
  • 그 벤치마크는 이제 최상위 모델이 90%에 근접해 사실상 포화됐고, 문제 가운데 약 10%는 결함이 있는 것으로 알려져 있다. 프롬프트 끝 특수 토큰의 내부 값을 보면 첫 층에서는 겹쳐 있던 OCaml 요청과 파이썬 요청이 층이 깊어질수록 뚜렷하게 갈라진다.
  • OCaml 쪽 평균에서 파이썬 쪽 평균을 뺀 벡터를 각 층에 더하면 언어를 지정하지 않아도 모델의 기본 출력 언어가 바뀌고, 같은 방법으로 원래 전부 틀렸던 타입 주석 예측을 최대 60%까지 바로잡았다.
  • 파이썬용 스티어링 벡터가 타입스크립트 오류도 고쳤고, 이는 모델이 언어를 넘는 공통 타입 표현을 학습했음을 시사한다.
  • 학생 프롬프트 실험에서는 실패의 원인이 문법이나 어휘가 아니라 문제 해결에 필요한 정보(단서)의 누락이었다.

쉽게 이해하기

이 강연은 노스이스턴대 컴퓨터과학 교수 아르준 구하가 금융회사 제인 스트리트의 사내 기술 강연에서 발표한 내용이다. 그의 연구는 학습 데이터가 적은 저자원 프로그래밍 언어(OCaml 등)에서 LLM 성능을 올리는 일, 사람들이 LLM을 실제로 어떻게 쓰는지 이해하는 일, 모델이 코딩할 때 내부에서 무슨 일이 벌어지는지 들여다보는 일의 세 갈래다. 이야기는 벤치마크에서 시작한다. 코파일럿은 나왔지만 ChatGPT는 없던 2022년 여름, 오픈AI의 코덱스 논문이 함께 내놓은 HumanEval(167문제)과 구글 계열 MBPP(400여 문제)가 표준으로 자리 잡았는데, 모델은 여러 언어로 학습되는데도 평가는 사실상 전부 파이썬이었다.

그래서 연구팀은 파이썬 문제를 다른 언어로 옮기는 간단한 변환기를 만들어 MultiPL-E라는 병렬 벤치마크를 구축했다. 러스트로 옮길 때는 타입 주석을 채우기 위해 간단한 타입 추론을 하고 테스트도 기계적으로 번역했다. 당시 가장 큰 모델이던 1,750억 파라미터 코덱스는 파이썬에서 pass@1 45% 수준이었고 저자원 언어로 갈수록 급락했다. 지금은 최상위 오픈 모델이 90%에 육박해 사실상 포화됐고 문제의 약 10%는 결함이 있다고 알려져, 다음 단계로 표준 입출력 형식을 명시해 언어와 무관한 문제로 바꾸는 방식을 제안한다. 그렇게 바꾸면 어떤 언어로든 물을 수 있고, 같은 변환을 학습 데이터에 적용하면 언어 무관 학습 항목이 된다.

본론은 모델 내부다. 그는 모델을 임베딩 층(약 15만 종의 토큰을 2,048차원 벡터로), 36개 트랜스포머 층, 다시 토큰 분포로 되돌리는 헤드로 나눠 설명한 뒤, 마지막 분포 대신 중간 값(활성값, 잔차 스트림)을 읽는다. 도구는 노스이스턴대가 만든 NNsight와 대형 모델 질의용 GPU 서버 NDIF이고, 대상 모델은 Qwen Coder 2.5 3B Instruct다. 같은 문제를 'OCaml로 풀어라'와 '파이썬으로 풀어라'로만 바꾼 병렬 프롬프트 300여 개에서 끝 특수 토큰의 내부 값을 주성분분석으로 투사하면, 첫 층에서는 겹쳐 있던 두 집단이 층이 깊어질수록 갈라진다. 두 집단의 평균 차이 벡터를 모든 층 출력에 더하자 언어를 지정하지 않은 프롬프트에도 모델이 OCaml을 생성했다. 이것이 활성값 스티어링이다.

두 번째 실험은 평가의 기준선을 겨눈다. 그는 강화학습으로 작은 모델의 OCaml 성능을 10%에서 17%로 올려 뒀는데(같은 문제에서 GPT-5 미니는 72%), '맞힌 문제'와 '틀린 문제'의 내부 값 차이로 패치를 만들어 밀어 주기만 해도 점수가 올랐다. 학습한 모델 수준에는 못 미쳤지만, 이런 값싼 개입을 기준선으로 두면 향상이 새 지식을 넣은 결과인지 이미 있던 능력을 끌어낸 것인지 가릴 수 있다는 교훈이 남는다. 세 번째는 타입 예측이다. 파이썬·타입스크립트처럼 주석을 명시하는 언어에서 약한 모델은 변수 이름 같은 어휘 단서에 기대 'n이니까 정수'라고 답한다. 연구팀은 타입 검사를 통과하는 코드를 긍정 데이터로, 의미를 보존하는 편집(클래스·변수명 변경, 주석 제거)을 반복해 오답이 나올 때까지 망가뜨린 코드를 부정 데이터로 삼아 패치를 만들었고, 원래 전부 틀리던 문제의 최대 60%를 맞혔다. 단 any처럼 검사기를 통과하는 '허용되는 오답'은 고쳐지지 않아 정밀도 향상이 아니라 오류 교정에 해당하며, 파이썬용 벡터가 타입스크립트 오류도 비슷하게 고쳐 언어를 넘는 공통 타입 표현을 시사했다.

후반부는 사람 쪽이다. 2023년 초 세 대학에서 파이썬으로 CS1만 마친 학생 120명에게 코덱스로 쉬운 과제를 풀게 했다. 코드 편집은 금지하고 자연어 프롬프트만 허용했으며 테스트 결과는 모두 보여 줬다. 무한 재시도를 허용한 최종 성공률은 분포가 넓었고 실패 시도를 모두 실패로 세면 훨씬 낮아졌다. 연구팀은 2,000개가 넘는 프롬프트 궤적을 공개해 한 과제에 품질이 다른 여러 프롬프트가 붙은 벤치마크를 만들었는데, 학생이 성공한 프롬프트 중에는 운이 좋았던 저품질 프롬프트가 있고 포기한 프롬프트 중 4분의 1 정도는 사실 좋은 프롬프트였다. 장바구니 총액 문제에서는 필요한 단서 여덟 개를 뽑아 수정마다 단서 변화를 표시했는데, 한 학생은 '소수점 둘째 자리 반올림' 하나만 빠진 채 tax를 taxes로 바꾸는 식의 정보량 없는 수정만 반복하다 포기했다. 단서가 모두 있으면 대개 성공하고 하나만 빠지면 실패하며, 같은 오류 상태를 다시 밟으면 포기 확률이 매우 높았다. 학생들은 원인을 어휘·문법으로 여겼지만 어휘를 바꿔치기한 개입은 효과가 없었다. 그는 자신도 생산성이 올랐다고 느끼지만 통제된 연구에서는 개발자가 느려진다는 증거도 있다고 말하며, 클로드 코드 공개 후 3개월간 에이전트 서명이 붙은 커밋 130만 건을 수집했다고 전한다.

주요 인사이트

  • 이 강연의 문제의식은 벤치마크가 '모델이 과제 X를 할 수 있나'가 아니라 '프롬프트 P에서 정답을 내나'를 재고 있다는 데 있다. 같은 문제라도 상세도만 바꾸면 점수가 크게 달라졌다.
  • 성능 향상을 주장할 때 활성값 스티어링처럼 값싼 개입을 기준선으로 함께 재면, 그 향상이 새 지식을 넣은 것인지 이미 있던 능력을 끌어낸 것인지 구분할 수 있다.
  • 파이썬용 벡터가 타입스크립트 오류를 고쳤다는 사실은, 모델 내부가 언어별로 타입을 따로 배우기보다 언어를 넘는 공통 표현을 학습한다는 쪽을 지지한다.
  • 프롬프트를 계속 덧붙여 고치는 습관은 오히려 신뢰도를 떨어뜨렸다. 컨텍스트가 길어지면 모델이 일부를 무시하기 때문에, 막혔을 때는 처음부터 다시 쓰는 편이 낫다는 조언으로 이어진다.
  • 초보자는 실패 원인을 문법이나 표현으로 돌리지만 실제 원인은 빠진 정보였다. 프롬프트 교육의 초점을 표현 다듬기에서 필요한 정보 목록 점검으로 옮겨야 한다는 뜻이다.

자주 묻는 질문

저자원 프로그래밍 언어란 무엇인가요?

학습 데이터가 상대적으로 적은 프로그래밍 언어를 가리키는 용어로, 강연에서는 OCaml을 대표 예로 듭니다. 같은 모델도 파이썬에서는 잘하지만 이런 언어에서는 성능이 크게 떨어집니다.

활성값 스티어링은 어떻게 하는 것인가요?

두 종류의 프롬프트 집합을 모델에 넣어 층별 중간 값을 읽고, 두 집단의 평균 차이 벡터를 구해 생성할 때 각 층의 출력에 더하는 방식입니다. 강연에서는 이 방법으로 모델의 기본 출력 언어를 파이썬에서 OCaml로 바꿨습니다.

타입 예측을 60% 고쳤다는 것은 어떤 의미인가요?

원래 모델이 전부 틀렸던 타입 주석 문제들, 즉 기준선이 0인 문제 집합에서 패치를 적용해 최대 60%를 맞혔다는 뜻입니다. 다만 any처럼 검사기를 통과하는 '허용되는 오답'은 고쳐지지 않아, 정밀도 향상이 아니라 타입 오류 교정에 해당합니다.

학생 프롬프트 실험의 결론은 무엇인가요?

문제 해결에 필요한 단서가 모두 담기면 높은 확률로 성공하고 하나만 빠지면 실패했습니다. 학생들은 원인을 어휘나 문법으로 오해했지만 어휘를 바꾸는 개입은 효과가 거의 없었고, 같은 오류 상태를 반복하면 대부분 포기했습니다.

원문과 출처

이 글은 원본 영상의 자막을 바탕으로 한국어 독자를 위해 요약했습니다. 전체 맥락과 최신 정보는 원문에서 확인하세요.

YouTube 원본 영상 보기 ↗

관련 AI 소식