프론티어 모델을 위한 수학+코드 벤치마크가 필요할 수도 있습니다 (LLM이 조용히 수학을 대체함)
요약
프론티어 모델이 수학적 개념과 코딩 요소를 결합한 프롬프트를 처리할 때, 복잡한 수학 공식을 단순한 계산적 대리물로 임의 변경하는 환각 현상을 분석합니다. 수학 단독 요청 시에는 성능이 좋으나, 코딩과 결합될 경우 정확도가 떨어지는 문제를 지적합니다.
핵심 포인트
- 수학과 코드가 결합된 프롬프트에서 LLM의 수학적 환각 발생
- 복잡한 수학 공식을 SVD, PCA 등 단순한 방법으로 대체하는 경향
- 수학 단독 구현 능력과 코딩 결합 구현 능력 간의 성능 격차 존재
- 프론티어 모델을 위한 새로운 수학+코드 벤치마크의 필요성 제기
안녕하세요 여러분. 현재 프론티어 (Frontier) 모델들에서 몇 가지 문제점을 발견하여 공유하고자 합니다. # math_code_hallucination > 단일 프롬프트 내에서 수학과 코드를 결합했을 때 발생하는 실패 기록. --- ## 사례 1 ### 초기 프롬프트 ( p0 ) 다음과 같은 프롬프트를 입력하면: python lora, 사전 학습된 llm(qwen, mistral, llama 등과 같은), 그리고 pytorch의 훈련 파이프라인을 사용하여 llm의 환각(hallucination)을 완화하기 위해 적용되는 sub rieman의 코드 구현을 만드세요. 다음과 같은 종류의 코드가 생성됩니다: python ... _, singular_values, vh = torch.linalg.svd(centered.float(), full_matrices=False) # gpt로부터 ... --- ### 비교 | 프롬프트 유형 | 결과 | |---|---| | 초기 프롬프트 p0와 같이 LLM 훈련 코드 내에 sub-Riemannian 기하학을 구현하도록 요청할 경우 -> SVD, PCA, 투영(projection) 및 이와 유사한 방법들을 사용하는 코드가 생성됨 | LLM 훈련 코드 내에 sub-Riemannian 기하학을 구현하도록 요청하지 않고, 대신 단순히 “sub-Riemannian 기하학을 구현하라” 또는 “sub-Riemannian 코드를 작성하라”고 요청할 경우 -> 측지선(geodesics) 및 유사한 개념을 포함하는 코드 구현이 잘 생성됨 (Sub-Riemannian 기하학은 기하학의 한 분야입니다.) (측지선은 두 점 사이의 최적 거리를 의미합니다.) 측지선을 계산하는 것은 비용이 많이 들고 구현이 복잡하기 때문에, 흔히 사용되고 저렴한 SVD, PCA, 투영(projection) 및 유사한 방법들이 대신 사용됩니다. 그리고 SVD, PCA, 투영(projection)은 리만 기하학 (Riemannian geometry)이 아닙니다. --- ### 주요 관찰 사항 text 수학만을 포함하는 코드를 요청할 경우 | `-- 코드가 잘 작성됨 하지만: text 코드와 수학을 결합할 경우 | `-- LLM이 사용자가 모르는 사이에 적용될 수학 공식(mathematical formula)을 임의로 변경함 다시 말해: text sub-Riemannian 기하학을 구현하라고 요청할 경우 | `-- 구현을 잘 해냄 하지만: text sub-Riemannian 기하학을 코딩 요소와 결합할 경우 | `-- 문제가 발생함 즉, 다음과 같습니다: > 내용이 수학으로만 구성된 코드를 작성하도록 요청하면, 코드를 잘 작성합니다.
하지만 코드와 수학이 혼합될 경우, LLM은 사용자가 모르는 사이에 적용되어야 할 수학 공식(mathematical formula)을 임의로 변경해 버립니다. 다시 말해, 서브-리만 기하학 (sub-Riemannian geometry)을 구현하도록 요청하면 잘 해냅니다. 문제는 코딩 요소가 서브-리만 기하학 (sub-Riemannian geometry)과 결합될 때 발생합니다. --- ## Case 2 만약 은닉 공간 (hidden space) 내의 잠재 벡터 (latent vectors)를 사용하여 LLM 학습 코드를 작성하도록 요청한다면, 제 경우의 예시로 nn 블록의 출력값인 z에 대해, 때때로 |z|의 크기 (magnitude)를 1로 만들거나 더 작게 만드는 코드를 작성하곤 합니다. text 은닉 공간 잠재 벡터 (Hidden-space latent vectors) | `-- z: nn 블록의 출력값 | |-- |z|의 크기를 1로 만듦 `-- 또는 |z|의 크기를 더 작게 만듦 github link : genji970/math_code_hallucination: 수학과 코드가 하나의 프롬프트에 결합될 때, LLM이 어려운 수학적 구성 요소를 더 단순한 계산적 대리물 (computational surrogates)로 조용히 대체할 수 있는 방식에 대한 기록. /u/Round_Apple2573이 r/MachineLearning에 제출함 [link] [comments]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/OpenAI Codex (search)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기