Repository navigation
Typed Model Preflight
Gooo 소스의 분기·변수 선택을 작은 모델이 받을 수 있는지 미리 읽는 기능을 만들었습니다.
어떤 선택지가 있는지 보고, 모델 입력이 맞지 않으면 고정 순서로 이어갈 이유를 확인합니다.
PR1433의 원본 검사를 통과해
dev 426caecb에 정상 병합하고 별도 개발 실행 파일로 설치했습니다.
공개 0.6.23/source2b의 사전 확인은 레코드용입니다.
수정 후보 bff의 여섯 검사·v5 증거·네 플랫폼 준비 검사를 통과했습니다. 증거 ZIP의 지문과 PR·소스 정보를 확인한 뒤 병합했고, 병합된 파일 구성은 후보와 같습니다. 설치본426의 새 실험에서 모델 입력·지문과 실제 생성이 같고, 별도 입력3/3·저장 재생3/3을 확인했습니다. 원본 검사·병합·설치·새 실행.
첫 후보의 네 플랫폼 준비 검사는 통과했고, 원본 CI의
의미 일관성 검사는
늘어난 도움말 선언의 자동 분할에서 실패했습니다. 도움말과 CLI 처리를 나눈 로컬 수정의
추출·전체 race 검사는 통과했습니다. 모델 로드를0으로 표시하던 시간 항목도 로컬에서 수정했습니다.
첫 원본 CI는 실패로 정상 종료했습니다. 실패한 의미 검사를 성공 증거로 사용할 수 없어
증거·proof 단계도 실패했습니다. 당시 원본과 기록을
보존한 뒤, 수정 소스의 새 원본 CI와
네 플랫폼 준비 검사는
통과했습니다. 그 원본의 Gooo 준비 판단은7개 조건 충족·미관측0·반박0이며,
다음 작업을 MERGE_VALIDATED_CANDIDATE로 기록합니다.
준비 판단·원본·지문.
전체 CI와 증거도 통과해 위의 정상 병합으로 이어졌습니다.
깨끗한 로컬 후속 소스 3def7c5d의 한 번의 사전 확인에서 실제 로드0.638167ms,
전체1.294917ms를 기록했습니다. 예측·후보 검사0회, 도움말의 기존 출력과 바이트 동일을
확인했습니다. 첫 생산자의 시간 기록은 그대로 보관하며 속도 개선의 비교로 해석하지 않습니다.
병합된 dev 소스를 준비한 컴파일러 폴더에서 실행합니다.
go run ./cmd/gooo body-context --activity Choose --include-plan \
--model examples/scalar-identity/model/model.json \
examples/caller-typed-paths/unary.gooo.fixture이 예제는 음수 여부에 따라 두 분기 중 하나를 고릅니다. 동봉 모델은 세 레코드 필드에
맞춰 학습한 모델이라 선택 하나에는 THREE_DECISION_COUNT_UNSUPPORTED가 나옵니다.
명령은 그 이유를 정상 결과로 돌려주며 조립은 결정론적으로 진행할 수 있습니다.
model_compatibility에 실제 읽은 모델 지문과 입력 가능 여부가 있습니다.
expanded_plan에는 원래 선택 ID·후보·기본값과 별도 유한 사례가 있습니다.
입력 가능한 두 선택·세 선택 모델은 실제로 받는 전체 입력도 함께 내보냅니다.
사전 확인의 모델 예측과 후보 검사 수는 0입니다. 타입과 소스를 검사하는 비용은 있습니다.
깨끗한 개발 생산자 2ee8e0e1과 기존 자체 모델을 사용했습니다. 레코드 입력의 원문·지문,
분기의 거절 이유가 사전 확인과 실제 초기 생성에서 같았습니다. 레코드 예측1회·분기0회로
진행했고, 프로그램11시도에서 마지막 별도 입력3/3과 새 예측 없는 저장 재생3/3을 확인했습니다.
모델 텐서는2,096바이트, 한 번의 예측 시간은25,208ns였습니다. 학습 노출은 UNKNOWN입니다.
새 학습 품질이나 시도 수 개선을 측정한 실험으로 해석하지 않습니다.
실행 안내와 입력 계약 · 실제 실행·실패·검사 원본.
설치한 새 생산자 426caecb의 별도 실행에서도 레코드1예측·분기0예측,
11시도/예산16, 마지막 별도 입력3/3·재생3/3을 확인했습니다. 처음 함수별 사례는2/2였지만
처음 전체 호출은0/1이었습니다. 함수의 작은 사례만으로 전체 조합의 동작을 확정하기는 어렵습니다.
기존 모델의 한 번의 예측은31,041ns, 생성 명령 전체는6.13s·최대RSS87,457,792바이트였습니다.
분기 사전 확인의 모델 로드는0.412708ms·전체0.791ms였습니다. 각각 한 번의 관측이며
속도·학습 품질의 개선 비교를 수행한 결과는 없습니다.
| 결과 | 읽는 뜻과 다음 단계 |
|---|---|
READY_FOR_RANKING |
이 소스를 모델 입력으로 표현할 수 있습니다. 조립을 실행해서 실제 결과를 확인합니다. |
DECLINED_TO_DETERMINISTIC |
입력 규격이 맞지 않은 이유가 기록됩니다. 조립을 고정 순서로 진행할 수 있습니다. |
| 파일·모델·소스 검사 오류 | 명령이 실패로 끝납니다. 지목한 파일이나 소스·계획 불일치를 먼저 고칩니다. |
사전 확인은 모델을 한 번 읽지만 예측은 하지 않습니다. --include-plan은 후보의 ID와
내용을 더 보여주는 옵션입니다. 조립용 사례와 나중에 평가할 입력은 별도로 준비합니다.
확인 명령의 정상 종료가 이후 프로그램의 완성을 뜻하지는 않습니다.
같은 예제의 Pick은 값·확인 여부·문장의 세 필드를 조립합니다. 동봉 모델이 받는
규격에 맞아 READY_FOR_RANKING을 확인할 수 있습니다. 병합된 dev 소스 폴더에서
개발 실행 파일을 별도 이름으로 빌드한 뒤 사용합니다.
GOWORK=off GOTOOLCHAIN=go1.27.2 go build -o /tmp/gooo-preflight-demo ./cmd/gooo
/tmp/gooo-preflight-demo body-context --activity Pick \
--model examples/scalar-identity/model/model.json \
examples/caller-typed-paths/mixed-model.gooo.fixture
/tmp/gooo-preflight-demo body-construct \
--source examples/caller-typed-paths/mixed-model.gooo.fixture --entry Main \
--construction-cases examples/caller-typed-paths/mixed-construction-cases.json \
--cases examples/caller-typed-paths/mixed-evaluation-cases.json \
--model examples/scalar-identity/model/model.json --attempts 16 \
--out /tmp/gooo-preflight-example
/tmp/gooo-preflight-demo body-construct \
--source /tmp/gooo-preflight-example/original.gooo \
--construction /tmp/gooo-preflight-example/construction.json \
--cases examples/caller-typed-paths/mixed-evaluation-cases.json출력 폴더는 새 경로를 사용합니다. 처음 두 함수의 역할은 다음과 같습니다.
| 본문 | 조립에 쓰는 경로 |
|---|---|
Pick의 레코드 세 필드 |
기존 자체 모델이 첫 조합을 추천하고 Gooo가 선언한 사례를 확인합니다. |
Choose의 분기 하나 |
모델 입력 수가 맞지 않은 이유를 남기고 고정 순서로 조립합니다. |
Main의 두 함수 호출 |
실제 호출의 기대값을 보고 제한된 조합을 다시 확인합니다. |
저장 재생 명령은 새 후보를 고르지 않습니다. 생성 당시 조립용 입력 3과
나중에 평가하는 7, -5, 9007199254740993을 따로 남깁니다.
앞에서 소개한 첫 개발 생산자 2ee8e0e1의3/3 원본과,
병합·설치한426의 새 실행은 각각의 생산자로 구분해 보관합니다.
이어 설치본426에서도 같은 경로를 새로 실행한 기록을 위 원본 묶음에 보관했습니다. 병합 뒤 원본 준비 검사도 네 플랫폼에서 통과했습니다. 원본 push CI도 원본 attempt1/suite102958674785에서 여섯 검사와 증거를 통과하며 완료했습니다. 원본 실행을 취소하거나 재실행하지 않았습니다.
Microsoft의 작은 판단 작업 설명과 pg-jev의 연산 연결에서 정해진 선택지·관측 가능한 입력을 참고했습니다. Gooo 소스가 후보를 정의하고 실제 생성이 받은 입력을 확인하도록 적용했습니다. 다음 일반 경로 모델은 이미 지원하는 경로별 입력 규격으로 분기·변수·대입·피연산자·순서를 다룰 수 있습니다. 기존 레코드 가중치를 다른 입력으로 재해석하는 작업은 추가하지 않았습니다.
- 문서 홈
- 현재 상태와 지원 범위
- 업무 규칙 예제와 실제 도입 기준
- 요구를 바꾼 뒤 결과 비교하기
- 저장 결과를 비교하는 0.6.27 배포
- 작은 모델과 조립하는 0.6.26 배포
- 중간 조건을 확인하는 0.6.25 배포
- 분기 구성·재실행의 0.6.24 개발 후보
- 작은 도구로 발전시키는 Gooo
- 흐름도로 보는 Gooo
- 시작하기
- 언어 둘러보기
- 사용 흐름
- 작은 모델과 메타프로그래밍
- 우리 PC의 자체 경로 decision 모델
- 조건을 읽는 자체 모델과 실제 탐색
- SDK 0.2.39 자체 모델 받기
- 모델 선택 점수와 실제 실패
- 설명·변수 이름 변화의 27회 관측
- 작은 모델의 학습 범위를 넓힌 결과
- 같은 계산을 같은 모델 입력으로 읽기
- 사례를 통과해도 의도가 다를 때
- 소스에 적는 중간 조건과 선택
- 지표와 증거
- 참고하고 감사하는 연구
- 최근 연구와 다음 작은 기능