Kimi K3 vs GPT-5.6-SOL: 수학·물리·프로그래밍 고난도 실전 테스트
동일한 OpenAI-compatible API와 동일한 프롬프트 조건에서 kimi-k3와 gpt-5.6-sol을 대상으로 패턴 정지 시간, 도르래 회전 관성이 포함된 물리 문제, 의존성 클로저 프로그래밍 문제를 테스트하고, 정답 여부, 출력 잘림, 지연 시간, 로컬 코드 검증 결과를 기록합니다.

Kimi K3 vs GPT-5.6-SOL: 수학·물리·프로그래밍 고난도 실측 비교#

이번에는 단순 질의응답이 아니라, 연속적인 추론이 필요한 문제 3개를 고정해 테스트했다. 패턴 중첩과 2차 모멘트가 포함된 확률 문제, 도르래의 회전 관성과 줄 이완 전환이 들어간 물리 문제, 그리고 클로저, 여러 날짜의 용량, 3단계 tie-break에 의존하는 Python 문제다. 두 모델은 같은 인터페이스, 같은 프롬프트, 비슷한 출력 상한을 사용했으며, 도구와 웹 접속은 사용하지 않았다.
먼저 결론부터 정리하면 다음과 같다.
gpt-5.6-sol은 세 문제 모두에서 완전한 가시 응답을 반환했고, 수학과 물리의 기준 결과도 정확했다.kimi-k3는 1차 테스트의6500token 상한에서 수학과 물리 모두finish_reason=length로 종료되었고, 보이는 답변은 비어 있었다. 수학 문제는 상한을10000으로 올린 뒤에도 잘렸다. 프로그래밍 문제는 약 245초 후 읽기 타임아웃이 발생했다.- GPT-5.6-SOL의 프로그래밍 구현은 별도로 보강한 의존성 클로저, 용량, tie-break, 잘못된 의존성, 순환 의존성 검사를 통과했다. 다만 모델이 자체적으로 붙인 첫 번째 assert 예제의 기대값은 틀려 있었다. 즉 “코드 본문이 맞는지”와 “예제 테스트가 모두 맞는지”는 분리해서 검수해야 한다.
이 글의 지연 시간은 이번 요청에서 관측된 값일 뿐, 고정 SLA를 의미하지 않는다. 1차 병렬 요청에서 GPT의 수학 및 물리 요청은 HTTP 408을 받은 적이 있었고, 이후 순차 재시도로 바꾸었다. 따라서 속도는 호출 경험을 관찰하는 용도로만 사용하며, 절대적인 순위를 주장하는 근거로 삼지 않는다.
테스트 설정#
테스트 시간은 베이징 시간 2026-07-17부터 2026-07-18까지였고, 인터페이스는 다음과 같다.
POST https://cn.crazyrouter.com/v1/chat/completions
model: kimi-k3 / gpt-5.6-sol
temperature: 0.2
1차 테스트에서는 공통으로 수학과 물리에 max_tokens=6500, 프로그래밍에 max_tokens=7500을 사용했다. 각 문제마다 모델에 검증 가능한 유도 과정 또는 실행 가능한 코드를 요구했으며, finish_reason, completion/reasoning token, 요청 지연 시간, 수치 정확성, 코드가 Python 3.11에서 독립 실행 가능한지를 기록했다.
결과 요약표#
| 작업 | kimi-k3 | gpt-5.6-sol | 판정 |
|---|---|---|---|
| 수학: HHTH의 기대값과 분산 | length, 186.98 s, 6500 tokens; 보이는 내용 없음 | 순차 재시도 stop, 236.07 s, 6872 tokens | GPT는 완전 답변; Kimi는 1차에서 답변 형성 실패 |
| 물리: 도르래, 바닥 충돌, 스프링 | length, 202.05 s, 6500 tokens; 보이는 내용 없음 | 순차 재시도 stop, 156.29 s, 4501 tokens | GPT는 완전하고 수치도 정확 |
| 프로그래밍: 의존성 클로저 배낭 문제 | 245.54 s 후 TimeoutError | stop, 87.96 s, 4514 tokens | GPT 코드는 실행 가능; Kimi는 완전한 코드 미반환 |
| Kimi 수학 재측정 | length, 286.99 s, 10000 tokens | — | 예산을 늘려도 종료되지 않음 |
Kimi의 수학 및 물리 요청에서 인터페이스가 보고한 reasoning token은 각각 6497에 가까웠다. 수학 재측정의 reasoning token은 9997에 가까웠다. 이는 Kimi에 추론 능력이 없다는 뜻이 아니라, 이 문제 프롬프트와 현재 라우팅 조건에서는 추론 예산이 쉽게 소진되어 호출자가 최종 답변을 받지 못할 수 있음을 보여준다.
수학 문제: 패턴 중첩은 기대값뿐 아니라 분산에도 영향을 준다#
문제는 다음과 같다. 앞면 확률 p=3/5, 뒷면 확률 q=2/5인 동전을 계속 던져 HHTH가 처음 나타날 때까지의 시간 T에 대해, 패턴 중첩을 허용할 때 E[T]와 Var(T)를 구한다.
올바른 접두사 오토마톤 상태는 S0=空前缀, S1=H, S2=HH, S3=HHT, S4=HHTH(吸收态)이다. 핵심 전이는 S2 --H--> S2다. 이미 HH가 나온 상태에서 다시 H가 나오면 가장 긴 접미사는 여전히 HH이므로, 이를 빈 상태로 잘못 되돌리면 안 된다.
GPT-5.6-SOL이 세운 1차 모멘트 방정식은 다음과 같다.
M0 = 1 + p M1 + q M0
M1 = 1 + p M2 + q M0
M2 = 1 + p M2 + q M3
M3 = 1 + q M0
이어서 2차 모멘트 방정식을 세우면 다음 결과를 얻는다.
E[T] = 715/54 ≈ 13.2407407407
E[T²] = 195335/729 ≈ 267.9492455418
Var(T) = 270115/2916 ≈ 92.6320301783
기대값은 경계 공식으로도 독립 검산할 수 있다. HHTH의 비어 있지 않은 진경계는 한 글자 H이므로 E[T] = 1/p + 1/(p³q) = 715/54이다. GPT의 완전한 답변은 상태 전이, 2차 모멘트 전개, sanity check를 모두 포함했다. Kimi는 6500 및 10000 상한 모두에서 보이는 유도 과정을 출력하지 못했기 때문에, 이번 라운드에서는 수학적 정확성을 채점할 수 없고 “예산 내 미완료”로만 기록했다.
물리 문제: 바닥에 닿은 뒤에는 제약이 끊기므로 같은 에너지 방정식을 계속 적용하면 안 된다#
문제 설정은 다음과 같다. m_A=4.0 kg가 25°의 거친 경사면 위에 있고, μ_k=0.18이다. m_B=3.0 kg는 매달려 있다. 도르래는 M_p=1.2 kg, R=0.10 m이다. B가 1.50 m 내려간 뒤 바닥에 닿고, 줄은 즉시 느슨해진다. A는 이후 경사면 위로 0.10 m 더 올라가 k=250 N/m 스프링에 닿는다. g=9.8 m/s²이다.
바닥에 닿기 전에는 줄이 팽팽하고 미끄러짐이 없으므로, 도르래의 등가 관성 질량은 I/R²=(1/2)M_p=0.60 kg이다. 두 물체와 도르래 회전 방정식을 함께 풀면 다음을 얻는다.
a ≈ 0.847 m/s²
v1 ≈ 1.59 m/s
v2 ≈ 1.18 m/s
x ≈ 0.0835 m = 8.35 cm
바닥에 닿은 뒤에는 B의 속도가 지면과의 충돌로 바뀌고, A는 여전히 경사면 위쪽 방향의 속도를 가진다. 도르래도 계속 회전할 수 있다. 그러나 문제에서 줄이 즉시 느슨해진다고 명시했으므로, 이후에는 v_A=v_B=Rω를 계속 사용할 수 없다. 그다음 단계는 A만 분석해야 한다.
v2² = v1² - 2g(sinθ + μ_k cosθ)d
1/2 m_A v2² = 1/2 kx² + m_A g(sinθ + μ_k cosθ)x
GPT-5.6-SOL은 차원, 스프링이 없을 때의 정지 거리, 스프링 에너지와 마찰/중력 손실의 합도 함께 점검했으며, 수치적으로도 일관적이었다. Kimi는 1차 테스트에서 보이는 답변을 형성하지 못했기 때문에 중간 모델링 품질을 비교할 수 없었다.
프로그래밍 문제: 알고리즘 본문은 독립 검사를 통과했지만, 모델이 붙인 예제에는 bug가 있었다#
프로그래밍 문제는 optimize_release_plan(items, capacity_by_day, dependencies)를 구현하는 것이다. 매일의 용량, 설정되지 않은 날짜의 용량 0 처리, 직접 및 간접 의존성 클로저, 잘못된 의존성과 순환 의존성 검출, 그리고 value → risk → 排序后的 id 列表 3단계 tie-break를 처리해야 한다. items <= 18이므로 bitmask 완전 탐색은 합리적인 기준선이다.
GPT-5.6-SOL은 의존성 클로저 캐시와 2^n 부분집합 열거를 사용했다. 코드를 추출해 Python 3.11에서 독립적으로 검사한 결과, 의존성 클로저, 여러 날짜 용량 예제, value/risk/id 3단계 tie-break, 설정되지 않은 날짜 용량, 존재하지 않는 의존성, 순환 의존성까지 총 6개 검사 모두를 통과했다.
하지만 모델이 코드 끝에 붙인 첫 번째 assert는 실패했다. 모델은 A -> B -> C를 작성해 놓고, 동시에 가치가 11인 X도 넣었다. 주어진 용량에서 B + C + X의 총가치는 13으로, A + B + C의 12보다 높다. 따라서 함수가 ['B', 'C', 'X']를 반환하는 것이 맞고, assert를 ['A', 'B', 'C']로 쓴 것은 테스트 픽스처 오류다.
이 지점은 꽤 상징적이다. 코드 문제에서는 함수 본문만 봐서도 안 되고, “assert 8개를 붙였으니 테스트가 믿을 만하다”고 가정해서도 안 된다. 모델이 생성한 테스트 데이터 역시 사람이나 기준 구현으로 다시 검산해야 한다. Kimi K3의 프로그래밍 요청은 약 245초 뒤 읽기 타임아웃이 발생해 완전한 코드를 받지 못했다.
종합 평가#
| 차원 | kimi-k3 | gpt-5.6-sol |
|---|---|---|
| 수학 완성도 | 6500/10000 token 모두에서 잘려 검수 불가 | 기대값, 2차 모멘트, 분산, sanity check까지 완전 |
| 물리 모델링 | 1차 테스트에서 잘림 | 도르래 관성, 줄 이완, 스프링 단계를 올바르게 처리 |
| 프로그래밍 산출물 | 이번 라운드에서는 타임아웃 | 코드 본문은 독립 검사 통과, 단 자체 assert 1개 오류 |
| 출력 안정성 | reasoning 점유가 높아 보이는 답변을 받지 못하기 쉬움 | 세 문제 모두 순차 재시도에서 stop |
| 응답 속도 | 약 187–246 s, 게다가 잘림/타임아웃 발생 | 성공 요청 기준 약 88–236 s; 병렬 1차에서 408 발생 |
더 정확한 결론은 “어떤 모델이 절대적으로 더 똑똑하다”가 아니라 다음에 가깝다.
- 이번 라우팅과 예산에서는 GPT-5.6-SOL이 복잡한 추론을 최종 답변으로 수렴시키는 데 더 유리했다. 즉시 읽을 수 있는 유도 과정이나 코드를 받아야 하는 워크플로에 더 적합했다.
- Kimi K3의 핵심 문제는 추론 예산과 가시 출력 사이의 변환 효율이다. 수학 문제에서
10000token까지 올려도 종료되지 않았다. - GPT-5.6-SOL의 코드도 맹신해서는 안 된다. 함수 로직은 독립 검사를 통과했지만, 함께 제공한 테스트 픽스처에는 가치 계산 오류가 있었다.
- 프로덕션 모델 선택에서는
finish_reason, reasoning token, 지연 시간, 로컬 테스트 결과를 함께 기록해야 한다. 마지막에 “답이 맞다”는 한 문장만 보고 판단해서는 안 된다.
실험 재현#
이번 테스트 스크립트와 순차 재시도 결과는 다음 위치에 저장했다. 병렬 1차 테스트의 요약도 스크립트 출력에 기록되어 있다.
.tmp/kimi_k3_vs_gpt56sol_test.py
.tmp/kimi-k3-vs-gpt56sol-results.json
.tmp/retry-gpt56sol-math.json
.tmp/retry-gpt56sol-physics.json
.tmp/retry-gpt56sol-programming.json
.tmp/retry-kimi-k3-math.json
재측정할 때는 모델 ID, 프롬프트, temperature, max_tokens, 동시성 수준을 고정하고, 매번의 출력을 별도 파일로 저장하는 것을 권장한다. 상위 채널의 부하, 캐시 적중 여부, rate limit 상태는 모두 지연 시간에 영향을 줄 수 있다. 이 글에서는 HTTP 408, length, 읽기 타임아웃을 모두 테스트 결과의 일부로 기록했으며, 이를 숨기지 않았다.





