-
Notifications
You must be signed in to change notification settings - Fork 0
Source Aware Field Models
후속 반대·혼합 요구 모델 v2가 공개되었습니다. 같은 후보식에 다른 요구를 짝지어 학습하고, 새 한영 표현과 활성 필드를 별도 평가합니다. 아래는 그대로 보존한 v1 실험의 수치입니다.
2026-10-05 실험 기록입니다. 제목·상태·사유를 채우는 세 역할에 집중해, Gooo의 실제 필드 후보식과 한영 의도로 자체 모델을 학습했습니다.
설계도에 두 부품씩 준비해 두고, 어느 조합부터 조립할지 작은 모델이 제안하는 모습을 떠올릴 수 있습니다. Gooo가 조건문·지역 변수·필드 후보식과 확인 예시를 담고, Go 컴파일러가 조립·실행한 뒤 어디까지 맞았는지 기록합니다.
새 모델은 필드의 이름과 두 후보식 전체, 해당 필드의 의도를 받습니다. 같은 필드를 복사하는 식, 다른 필드를 고르는 식, 상수, 앞뒤가 다른 문자열 붙이기를 구조 특징으로 구분합니다. 확인 예시의 입력과 정답은 모델 문맥에서 제외하며, 실행 관측에서만 충족률을 계산합니다.
새 배포에서는 else가 없는 조건문도 쓸 수 있습니다. 일찍 반환하는 조건과
지역값을 갱신하는 조건 뒤에 나머지 문장이 이어집니다. 모든 경로의 반환,
변수 범위와 대입 타입을 확인합니다. 개발
#1229·main
#1230을 각각 전체12개
CI 후 병합했고, main aeff3641로 두 실행기를 설치했습니다.
학습에 앞서 소스와 계획을 공개하고, 새로운 초기값에서 GPU 학습을 480회 진행했습니다. 여덟 가지 본문·표현식 모양, 여섯 필드 순서, 여덟 후보 방향, 한글·영어를 조합해 768개 소스 관측을 만들었습니다. 본문 모양별로 나눠 384개는 학습, 192개는 보정, 192개는 이후 평가에 사용했습니다.
| 학습에 쓰지 않은 192개 소스 | FP32 | PTQ 삼진화 | QAT 삼진화 |
|---|---|---|---|
| 첫 후보에 완전한 조합 포함 | 192 | 70 | 134 |
| 두 후보 안에 포함 | 192 | 101 | 192 |
| Go 판단 중앙값 | 15.958µs | 16.000µs | 16.000µs |
| 모델 파일 | 74,624B | 3,854B | 3,854B |
| 상주 텐서 | 74,624B | 18,752B + 스케일 8B | 18,752B + 스케일 8B |
삼진 행렬은 바이트 하나에 값 다섯 개를 넣습니다. 저장 비용은 값당 약 1.6비트이며 정보량의 이론값이 약1.58비트입니다. 추론에서는 int8 배열로 풉니다. 파일 크기, 텐서 메모리와 프로세스 전체 메모리를 따로 읽어야 합니다.
별도로 네 소스 모양에 새로운 입력을 전달하고 다섯 방식·네 시도 예산으로 80회 조립했습니다. 첫 후보에서 자체 필드 모델은 실행 필드 48/48개, 결정론 순서는 32/48개, 기존 모델은 36/48개를 맞췄습니다. 전체 192개 평가와 분모가 다르므로 PTQ의 이 작은 실행 결과를 전체 정확도로 넓혀 읽을 수 없습니다.
같은 후보식을 유지하며 의도를 반대로 바꾼 20회 관측도 추가했습니다. 자체 모델의 첫 후보는 실행 필드 12/24개를 충족했습니다. 결정론은 20/24개, 기존 모델은 16/24개였습니다. 예산을 여덟 후보까지 주면 모두 24/24개에 도달합니다. 같은 선택지에 서로 다른 요구를 짝지어 가르치는 자료가 다음 학습에 필요합니다. 이 실패를 본 뒤 가중치나 기준을 다시 보정하지 않았습니다.
반대 의도의12개 일치 필드는 조기 반환으로 입력을 유지하는 사례에서 나옵니다. 실제로 변환을 요구한 필드만 세면 자체 모델은0/12개, 결정론은8/12개, 기존 모델은4/12개였습니다. 전체 필드 비율과 요구한 변환의 비율을 함께 읽어야 모델이 의도를 따라간 정도를 파악할 수 있습니다.
여기서 100회는 반복 제어를 포함한 조립 관측 수입니다. 다양한 100가지 독립적인 실험 방식이라는 별도 목표는 계속 진행 중입니다.
학습 연산 루프는 합계1.234초, 전체 학습 프로세스는3.18초였습니다. 전체 프로세스 최대 메모리는429.36MiB, 샘플링한 MPS 텐서는1.98MiB, 드라이버는50.72MiB였습니다. GPU 사용률과 전체 호스트 CPU 사용률 증가는 측정하지 않았습니다. 100회 조립에서는 컴파일 자식 프로세스 최대84.20MiB, 생성된 프로그램 최대4.91MiB를 기록했습니다.
모델 판단은 한 번이고 생성된 프로그램을 두 번 실행할 때 추가 모델 호출은 0번입니다. 모델을 생략하면 결정론적 순서로 같은 후보 공간을 조립합니다. 표현식 파싱의 임시 할당, Go 컴파일과 프로세스 시작 비용도 별도로 남습니다.
공개 모델에서
FP32 파일 두 개와 작은 예제를 받을 수 있습니다. 새 필드 기능이 있는
컴파일러를 사용합니다. 실험의 정확한 컴파일러 소스는
af811fe3b5dbb709edd61fe9de216f6af0850911이고, 현재 설치한 main은 같은 트리의
aeff3641254ac5f795fa1fb8c94bed702f10cbe4입니다.
hf download asketeddy/gooo-record-field-tiny-v1 \
models/fp32/model.json models/fp32/weights.bin demo.gooo.fixture demo-cases.json \
--revision 730694bfcceed1bab9b445b58a400b045d343c15 --local-dir ./gooo-field-demo
gooo body-compose --source ./gooo-field-demo/demo.gooo.fixture \
--cases ./gooo-field-demo/demo-cases.json \
--model ./gooo-field-demo/models/fp32/model.json모델 옵션을 빼면 결정론적으로 조립합니다. 예제에는 첫 후보 한 번의 예산이
들어 있어 두 방식의 일부 충족 차이를 볼 수 있습니다. attempts "8"로
늘려 전체 후보를 확인할 수 있습니다.
공개 다운로드본의 파일 15개를 다시 비교했고, 실제로 연결해 선택 필드15/15와 실행 기대값8/8을 확인했습니다. 실행 단계는 추가 추론0번이었습니다.
설치한 main aeff3641의 별도100회 조립·200회 실행에서도 원래 후보와
선택 마스크·충족 수·생성된 Gooo와 Go·연결 코드 지문이 모두 같았습니다.
두 작업자의8개 동시 조립은 선택 필드120/120개를 확인했습니다.
레코드 그래프 실행은 body-compose에서 이어가며, 상주 작업자는 조립을
제공합니다. 별도 설치 관측은 공개 모델의 installed-native.zip에 있습니다.
전체 소스·학습·관측 공개 에는 768개 소스, 학습 기록, 모델 셋과 모든 실제 실행 원본이 약3.2MiB의 압축 파일로 들어 있습니다. 64MiB 원본 예산 중13.77MiB를 사용했습니다. Go가 지표를 다시 계산하고 CI가 별도로 생성·실행합니다.
다음에는 같은 후보식에 대한 반대 의도, 한영 표현 다양성, 상수·복사·붙이기의 더 작은 역할을 추가합니다. 반복문과 다른 함수 호출은 언어의 타입·실행 범위를 함께 확장해야 합니다. 현재 특징에서 표현식의 해시 충돌, 단일 바이트 상수, 수신자 식별과 지역값의 의미가 겹칠 수 있으므로 실제 필드 충족을 계속 관측합니다.