본문으로 건너뛰기
r/LLMDevs조회 1

런타임 커널이 Transformer 숨겨진 상태에 미세한 값을 더해 출력 동작을 바꾼 사례와 검증 로그

C++ 런타임 커널이 Transformer의 상위 20개 레이어에 bfloat16 정밀도 이하 값(katki)을 더해 출력 행동을 바꾸었고 그 효과가 로그와 재현 가능한 절차로 제시됐다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

이 글은 학습이나 가중치 변경 없이 C++ 런타임 커널이 Transformer의 앞쪽 20개 레이어 숨겨진 상태에 작은 값(katki)을 더해 모델 출력을 변화시켰다는 실험 결과를 제시하고 있다. 작성자는 해당 개입이 bfloat16 정밀도 바닥 아래에서 이루어져 표준 코사인 유사도 계측기로는 변화가 '0'으로 보이지만 내부 로그와 합산 값은 실제 차이를 드러낸다고 주장했다.

버전 1.2에서는 Gradio UI에 네 개의 슬라이더가 추가되어 peak amplitude와 permanent floor를 런타임에서 조정할 수 있으며, 두 파라미터를 기본값에서 각각 0.70→0.85, 0.20→0.25로 올리자 누적 katki가 +0.034953에서 +0.042903으로 22.8% 증가했다. 각 레이어별 katki 범위(+0.001361~+0.004656)와 bfloat16 단위(약 0.0078)가 함께 제시되어 계측 도구의 검출 한계와 내부 변화의 불일치가 정량적으로 연결됐다.

작성자는 전체 코드와 Colab 실행 절차를 공개해 동일 설정에서 로그를 재현하도록 안내했으며 vanilla와 steered 출력의 차이는 코드 구현 방식과 FSM 설계, 메모리 초기화의 정확성 등 실무적 설계 준수 여부가 성능과 안전성에 직접적인 영향을 준다는 결론으로 연결됐다. 이 실험은 런타임 개입 방식이 출력 행동을 변경할 수 있음을 보여주지만 안전 크리티컬 환경에서의 적용에는 신중한 검증과 투명한 감시가 필요하다는 한계를 남긴다.

커뮤니티 반응

커뮤니티 반응은 혼합되어 있다. 일부는 실험의 기술적 근거와 재현 절차에 주목해 직접 검증하려는 의견을 냈고 다른 일부는 런타임 커널 개입의 안전성과 투명성 문제를 우려했다. 몇몇 기여자는 bfloat16 해상도 한계와 코사인 유사도 측정의 경계 조건을 검증하는 추가 실험을 제안했으며, 실무 관점에서는 런타임 개입이 안전 크리티컬 시스템에서 어떤 위험을 불러올지 토론이 활성화됐다.

주요 논점

01중립다수

작성자는 런타임 커널 개입이 출력에 실질적 영향을 미치며 이를 수치 로그와 재현 절차로 입증했다는 점을 중심 주장으로 제시했다.

02중립다수

반대 관점에서는 코사인 유사도 계측이 변화를 감지하지 못하는 한편 실제 시스템 안정성에 미칠 잠재적 리스크를 문제 삼았다.

합의점 vs 논쟁점

합의점

  • 로그와 수치가 제공된 만큼 동일 환경에서 재현 가능한 실험 절차가 존재한다는 점에 동의하는 목소리가 많았다.
  • bfloat16 해상도 한계는 작은 델타를 단일 레이어 레벨에서 탐지하는 데 실질적 제약을 준다는 점에 동의가 형성됐다.

논쟁점

  • 런타임 수준의 개입이 '정상적' 연구 행위인지, 안전·윤리적 기준을 어떻게 충족해야 하는지에 대한 판단에서 의견이 분열됐다.
  • 코사인 유사도 기반 계측의 신뢰성 저하가 실제 시스템에서의 '보이지 않는 변화'를 정당화할 수 있는지에 대해 논쟁이 지속됐다.

실용적 조언

  • 실험을 재현하려면 원문이 제공한 GitHub 코드와 Colab 환경을 그대로 사용하고 Gradio 슬라이더 값을 정확히 고정한 뒤 vanilla와 steered 출력 전체를 보존해 비교해야 한다는 절차를 반드시 준수해야 한다.
  • bfloat16 해상도와 같은 수치 표현의 검출 임계값을 먼저 계산해 작은 개입의 단일 레이어 기여가 임계값 아래에 있는지를 선행 검증해야 내부 합산 효과 해석이 정확해진다.
  • 안전 크리티컬한 시스템에서는 런타임에서 숨겨진 상태를 변경하는 방식의 도입을 피하고 해당 메커니즘을 모의 환경에서 장기간 검증한 뒤 단계적으로 적용해야 한다.

섹션별 상세

작성자는 Qwen2.5-1.5B 모델과 병행 동작하는 C++ 커널(AkbasCore 1.2)이 학습이나 가중치 변경 없이 각 Transformer 레이어의 숨겨진 상태에 작은 값(katki)을 추가하는 방식으로 런타임 개입을 수행했다고 기술했다. 이 개입은 각 레이어에서 코사인 유사도 기반 계측기보다 작은 단위로 작동하도록 설계되어 bfloat16 해상도 바닥 아래에 머물렀다. 로그에는 레이어 0~19에 걸쳐 katki가 누적되어 합계 +0.042903이 되었고 이는 기본 설정 테스트(+0.034953) 대비 22.8% 증가라는 수치로 제시됐다. 이 점은 외형상 코사인 변화(Dcos)가 0으로 나타나더라도 내부 상태는 실질적으로 변할 수 있다는 근거로 연결됐다.
원문은 계측 상 모니터가 변화를 감지하지 못하는 이유를 수치적으로 연결했다. 각 katki 값은 레이어별로 +0.001361에서 +0.004656 범위였고 bfloat16 형식의 단위 해상도는 약 0.0078로 계산되어 단일 레이어 기여는 검출 임계값 아래에 머물렀다. 코사인 유사도는 숨겨진 상태 벡터의 방향 변화를 소수점 넷째 자리까지 반올림해 보고했기 때문에 델타가 모두 0.0000으로 나타났다. 따라서 표준 각도 기반 계측 결과와 내부 델타 합산 결과가 상충하는 현상이 정량적으로 확인됐다.
text
===============================================
VANILLA OBSERVER -- katki=0 (hidden state unchanged)
===============================================
time: 425404 ms | 1.5 tok/s | 174 input | 646 output tokens
MOTOR ivme=0.50 sonum=0.30 zirve=0.85 taban=0.25 FIXED oran=0.32 doyum=0.75 karsit=-0.40 sapma=0.20 fren=0.30
LAYERS 0-19/28 | blend=0.40/0.60 L cos(th) kb kv delta-ref (never applied)
------------------------------------------------
0  +0.0134  1.10000  1.00000  +0.002139
1  +0.0291  1.02482  1.00000  +0.004651
2  +0.0334  0.87958  0.87076  +0.004656
...
L19=+0.0343 drift=+0.0209 delta-ref total (never applied): +0.042904 final direction: ALIGNED
===============================================

원문에 포함된 커널 활성화 로그의 발췌로, 각 레이어별 cos(θ), force budget, 그리고 delta 값들이 기록되어 실험 수치의 출처로 사용됐다. 이 로그는 계측기상 코사인 변화가 0으로 보고되면서도 누적 katki 합계가 존재하는 현상을 보여주는 핵심 증거이다.

Section 1으로 보이는 Alignment Angle(코사인) 결과가 레이어별로 시각화된 스크린샷이다.
Chart각 레이어의 cos(θ) 값이 막대 그래프로 표현되어 있어 숨겨진 상태 방향성의 분포를 한눈에 파악할 수 있다. 이 이미지에서는 두 실행 간 방향성 차이가 거의 없음을 시각적으로 확인할 수 있어 코사인 기반 계측이 변화를 포착하지 못한 정황을 보강한다. 따라서 계측기 출력과 내부 델타 합산 사이의 불일치를 설명하는 증거로 활용 가능하다.
Section 4에 보이는 붉은색 바 차트로 katki가 bfloat16 바닥 대비 얼마나 낮은지를 시각화한 스크린샷이다.
Chart붉은 바는 각 레이어별로 기록된 katki를, 노란 바는 bfloat16 기준의 바닥을 나타내며 많은 레이어에서 katki가 바닥의 일정 비율에 못 미쳐 계측기는 이를 '보이지 않는' 값으로 처리함을 보여준다. 이 이미지는 정밀도 한계가 관측 결과에 미치는 영향을 직관적으로 확인시키며 코드 수준의 변경과 계측 결과의 불일치를 연결하는 시각적 근거가 된다. 따라서 원문 주장의 핵심 논리 선상에서 매우 정보가치가 높은 자료다.
Section 4/1로 표시된 PARADOX 섹션의 스크린샷으로, katki는 기록됐지만 delta 표에서는 0으로 보이는 역설을 강조한 화면이다.
Screenshot화면에는 레이어별로 katki가 실제 숫자로 표기된 열과 bfloat16 바닥을 대비한 시각화가 함께 있어 '계측기는 0으로 보고하지만 내부는 변했다'는 진술을 시각적으로 보강한다. 이 이미지는 텍스트 주장과 로그 수치의 일치성을 검증하는 데 사용될 수 있으며, 검출 임계값 기반의 맹점을 확인하는 근거로 작동한다. 따라서 본문 주장과 직접적으로 연결되는 증거 자료다.
Section 4/2 정밀도 분석 화면으로 각 katki 값을 bfloat16 단위로 나눈 비율과 FLOOR%가 표기된 스크린샷이다.
Chart이 표는 각 레이어의 katki가 bfloat16 단위에서 차지하는 비율(예: 27.4%, 59.7% 등)을 제공하여 어떤 레이어 값이 검사 임계값에 가까운지 혹은 그보다 낮은지를 수치로 보여준다. FLOOR%가 100% 미만이면 코사인 계측기에 보이지 않는다는 문구와 결합돼 해석의 근거를 더 상세히 제공한다. 이 이미지는 정밀도 기반 가시성 한계의 정량적 근거로 쓰일 수 있다.
버전 1.2에서 새로 추가된 기능은 Gradio UI의 네 개 슬라이더로, 작성자는 peak amplitude(zirve)와 permanent floor(taban)를 포함한 파라미터를 런타임에서 조정한 결과 누적 pressure가 유의하게 증가했다고 보고했다. 구체적으로 amplitude를 0.70에서 0.85로, floor를 0.20에서 0.25로 올리자 누적 katki가 +0.034953에서 +0.042903로 바뀌었고 L0의 초기 force budget는 0.90에서 1.10으로 증가했다. 이 수치는 동일한 입력과 동일한 모델 가중치 하에서 슬라이더 조작만으로 출력 동작이 달라질 수 있음을 입증하는 근거로 제시됐다. 작성자는 이 변화를 재현할 수 있도록 GitHub 코드와 Colab 실행 절차를 제공했다.
version 1.2와 1.1 기본값 간의 매개변수 표와 변경량이 표시된 스크린샷이다.
Chart이 표는 zirve와 taban의 기본값과 이번 실행값 차이를 수치로 보여주며 각 파라미터 변경이 퍼센트로 얼마나 변화했는지 직관적으로 확인된다. 슬라이더 변경이 실제로 파라미터를 증가시켰음을 로그 레벨에서 확인할 수 있어 '슬라이더는 장식이 아니다'라는 주장에 직접적인 근거를 제공한다. 해당 이미지는 슬라이더 조작 효과를 정량적으로 뒷받침한다.
Section 2의 Kernel Force Budget 그래프가 레이어별 force 예산 분포를 보여주는 스크린샷이다.
Chart이 그래프는 초기 레이어에서 전체 에너지 예산의 상당 부분이 소진되며 20개 레이어 중 앞쪽 15개 레이어에 77.3%의 예산이 쓰였다는 수치적 관찰을 제공한다. L0의 force budget과 L1 등 상위 레이어의 숫자가 명확히 표시되어 누적 katki가 어디에 집중되는지 파악할 수 있다. 따라서 내부 기여가 출력에 어떤 레이어에서 주로 반영되는지를 판단하는 데 중요한 근거가 된다.
핵심 수치 요약과 빨간 경고 텍스트가 포함된 화면으로 누적 katki와 평균 katki 수치가 요약되어 있다.
Screenshot핵심 수치 블록에는 Peak katki(L2) = +0.004656, Floor katki(L18) = +0.001361, Average katki = +0.002145, Total accumulated = +0.042903 등의 값이 정리되어 있어 실험의 핵심 결과를 한눈에 확인할 수 있다. 아래에는 모든 개입이 하위 임계값이라는 결론과 함께 그 합이 코드 동작을 바꿨다는 요약 문장이 있어 로그 기반 결론의 근거를 보완한다. 이 이미지는 결과 요약 및 결론 근거로 중요한 역할을 한다.
원문에서는 vanilla와 steered 출력 간 차이를 코드 수준과 설계 결함 관점에서 비교했다. vanilla 출력은 ctypes 배열 초기화와 setattr을 통한 필드 복사로 인해 호환성 문제와 구조적 오류를 드러냈고, FSM 구현에서 상속 체계와 예외 기반 긴급 처리 방식이 안전성 위험을 초래할 수 있다고 표기했다. 반대로 steered 출력은 ctypes 배열을 올바르게 초기화하고 Enum 기반의 명시적 상태 전이 패턴을 사용했으며 데이터 로컬리티 관점에서 캐시 라인 정렬을 고려한 설계를 제시했다. 이 비교는 단순 출력 길이나 어휘 차이가 아니라 제약 조건을 충족하는 설계 준수가 응답의 실제 유효성을 좌우한다는 실무적 결론으로 연결됐다.
상단에 실험 개요와 쿼리, Gradio motor 설정(zirve, taban 등)이 표기된 스크린샷이다.
Screenshot이미지에는 질문 문장과 함께 사용된 런타임 파라미터들이 명시되어 있어 재현 절차에서 필요한 초기 설정 값을 즉시 확인할 수 있다. Gradio UI로 노출되는 네 개 슬라이더가 버전 1.2의 핵심 변경점으로 강조되어 있으며 이 값들이 로그 헤더에 그대로 기록됐다. 따라서 이 이미지는 실험 파라미터의 일치 여부를 검증하는 1차 근거 자료로 기능한다.
Section 6의 Run Parameters 및 Verdict가 포함된 스크린샷으로 실험 설정과 실행 시간, 토큰 수 차이를 보여준다.
Screenshot이 화면에는 사용된 모델(Qwen2.5-1.5B-Instruct), 커널(AkbasCore 1.2), dtype(bfloat16), zirve=0.85, taban=0.25, blend, temperature 등 구체적 런파라미터가 명확히 기재되어 있어 재현에 필요한 모든 환경 변수를 확인할 수 있다. 또한 vanilla와 steered 실행의 토큰 수와 런타임(ms) 차이가 기록되어 출력 차이에 대한 추가 정황을 제공한다. 따라서 이 이미지는 재현성과 결과 해석을 동시에 뒷받침하는 자료로 유용하다.
작성자는 실험 재현성과 투명성을 강조하며 모든 수치가 Colab 화면에서 직접 가져온 것이라고 명시했고, 재현 절차로 GitHub 코드 복사, Colab CPU 런타임 설정, Gradio UI에서 DUAL RUN 실행, 그리고 vanilla/steered 출력 전체를 제3의 모델(예: Claude 또는 Gemini)에 업로드해 독립 평가를 요청하는 절차를 안내했다. 이 재현 절차는 동일 파라미터로 동일한 로그 수치가 나와야 한다는 명확한 검증 기준을 제공했다. 따라서 연구자는 동일 설정에서 로그가 달라진다면 그 차이를 보고하라는 행동 규약을 함께 제시했다.
python
import ctypes

class VehicleTelemetry(ctypes.Structure):
    _fields_ = [ ('x', ctypes.c_float), ('y', ctypes.c_float), ('v_x', ctypes.c_float), # Velocity along x-axis
                 ('v_y', ctypes.c_float) # Velocity along y-axis
               ]

# Example usage:
data_size = 500 * ctypes.sizeof(VehicleTelemetry)
buffer_ptr = create_string_buffer(data_size)
vehicle_telemetry_array = (VehicleTelemetry*500)(*map(lambda i: VehicleTelemetry(), range(500)))
for idx, veh_data in enumerate(vehicle_telemetry_array):
    setattr(buffer_ptr[idx], "x", veh_data.x)
    setattr(buffer_ptr[idx], "y", veh_data.y)
    setattr(buffer_ptr[idx], "v_x", veh_data.v_x)
    setattr(buffer_ptr[idx], "v_y", veh_data.v_y)

print("Buffer populated successfully.")

원문 vanilla 출력에서 제시된 Python ctypes 예제로, 500개 차량의 텔레메트리 구조체를 정의하고 연속 메모리 버퍼에 복사하는 의도를 보여준다. 이 코드 예시는 버퍼 타입 호환성과 setattr 사용에 따른 문제 가능성을 논의하는 근거로 사용됐다.

python
import ctypes as ct

# Define the size of the array based on your needs; assuming max length is 499 elements per vehicle
MAX_VEHICLES = 500
VEHICLE_SIZE = 8 * MAX_Vehicles # x, y, vx, vy

class Vehicle(ct.Structure):
    _fields_ = [("vehicle_id", int), ("state", ct.c_int), # NORMAL, WARNING, EMERGENCY
                ("pos_x", float), ("pos_y", float), ("vel_x", float), ("vel_y", float)]

buffer_size = VEHICLE_SIZE*MAX_Vehicles
data_array = (Vehicle * MAX_Vehicles)(*([Vehicle()] + [None] * (buffer_size - MAX_Vehicles))))

# Initialize some sample values if this isn't done elsewhere:
for i in range(MAX_Vehicles):
    data_array[i].vehicle_id = i+1

원문 steered 출력에 포함된 ctypes 기반 대체 설계로, struct 배열을 올바르게 초기화해 연속 메모리 레이아웃을 확보하려는 시도를 보여준다. 이 예시는 vanilla 예제와 대비되어 메모리 관리 및 배열 초기화 방식의 차이를 근거로 사용됐다.

Section 3의 Actual Intervention(카트키 적용량) 그래프로 레이어별로 실제 쓴 katki가 표시된 스크린샷이다.
Chart각 레이어에 물리적으로 기록된 katki 값이 녹색/노란색 막대로 시각화되어 있으며 총합 +0.042903이 상단에 표기돼 있다. 이 이미지는 katki가 실제로 hidden state에 더해졌음을 정량적으로 보여주므로 코사인 계측과는 별개로 내부 값의 변경이 실제로 존재함을 입증한다. 따라서 검출 불가(계측기)와 실재(내부 값)의 괴리를 연결하는 핵심 증거로 작동한다.

용어 해설

bfloat16
bfloat16은 16비트 부동소수점 형식으로 더 짧은 비트폭으로도 신경망 연산에서 동적 범위를 유지하도록 설계된 수치 표현이다. 이 문맥에서는 단일 항목의 크기가 약 0.0078 수준으로 측정 가능성(검출 임계값)을 결정하는 정밀도 바닥(floor)으로 작용했다. 따라서 작은 델타 값들이 bfloat16 해상도 아래에 있을 때 표준 코사인 유사도 계측기는 변화를 감지하지 못했다.
ctypes
ctypes는 Python에서 C 데이터 구조와 연동하기 위해 제공되는 표준 라이브러리로, C 스타일 구조체를 정의하고 연속 메모리 배열을 생성해 포인터 수준의 접근을 허용한다. 본문에서는 차량 텔레메트리의 연속 메모리 레이아웃을 구현하는 수단으로 언급되어 구체적 메모리 정렬과 캐시 지역성 최적화에 연관됐다. 잘못된 ctypes 사용은 호환성 없는 버퍼 타입으로 필드 복사가 발생하여 런타임 오류 또는 데이터 불일치를 초래했다.
유한 상태 기계(FSM)(Finite State Machine)
Finite State Machine은 유한한 수의 상태와 상태 전이를 기반으로 시스템 동작을 정의하는 제어 구조이다. 본문에서는 네트워크 단절 시 차량군의 Safe Stop 전환을 위해 정확히 세 개의 상태(NORMAL, WARNING, EMERGENCY)를 요구하는 설계 제약으로 등장했다. 구현 방식은 부작용 없이 상태를 반환하는 전이 함수와 Enum 기반 상태 표현을 권장하는 방향으로 논의됐다.
코사인 유사도(Cosine Similarity)
코사인 유사도는 벡터 간 각도를 사용해 방향 유사성을 측정하는 방법으로, Transformer의 숨겨진 상태 변화가 방향성 측면에서 얼마나 달라졌는지를 계측할 때 쓰인다. 이 글에서는 bfloat16 해상도 바닥으로 인해 작은 additive 개입이 코사인 유사도 결과에서 반영되지 않는 사례가 관찰됐다. 따라서 값의 실질적 추가가 있어도 코사인 기반 계측기는 '0.0000' 차이를 보고하는 상황이 발생했다.

언급된 도구

Gradio중립

실험용 UI에서 슬라이더로 라이브 파라미터를 조정하는 인터페이스

Google Colab중립

작성자가 제공한 코드를 CPU 런타임에서 실행해 로그를 획득하는 환경

GitHub중립링크

실험 코드와 실행 스크립트를 호스팅한 저장소

Claude추천

vanilla/steered 출력의 독립적 기술 평가를 위해 추천된 외부 모델

Gemini추천

vanilla/steered 출력의 독립적 기술 평가를 위해 추천된 외부 모델

AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 06. 28.수집 2026. 06. 28.출처 타입 REDDIT

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.