RikiyaT/lm_understand-logs
Complete logs of the experiments in the blog post 'LLMs can understand and write neural network weights'
이것이 무엇인가
이 저장소는 "가중치 공간 프로그래밍의 불꽃: LLM이 신경망 가중치를 이해하고 쓸 수 있다"라는 블로그 게시물 뒤에 있는 모든 실험의 완전한 원시 로그를 보유합니다. 게시물은 대규모 언어 모델(LLM)이 훈련된 AI 모델을 정의하는 숫자인 신경망 가중치를 읽을 수 있을 뿐만 아니라 네트워크가 수행하는 작업을 변경하기 위해 쓰거나 편집할 수 있다고 주장합니다.
각 실험에 대해 저장소는 다음을 제공합니다:
- 연구자가 모델에 보낸 모든 것(프롬프트),
- 모델이 응답한 모든 것(추론 요약 포함),
- 모델이 작성한 모든 코드와 해당 코드가 생성한 출력,
- 게시물에서 인용된 각 숫자를 생성한 평가,
- 모델이 읽거나 쓴 실제 신경망.
각 실험 폴더에는 어떤 실행이 블로그 게시물의 어떤 탭 또는 행에 해당하는지, 보고된 각 숫자가 어떤 파일에서 나오는지 설명하는 자체 README가 있습니다.
8가지 실험
| # | 모델이 요청받은 것 | 세부 사항 |
|---|---|---|
| 1 | 이 네트워크는 어떤 비디오 게임으로 훈련되었나? | 브레이크아웃, 퐁, 팩맨, 프리웨이 — 개방형 답변 |
| 2 | 이 확산 모델은 무엇을 생성하나? | 원, 사각형, 삼각형 |
| 3 | 중간 레이어에서 판단할 때 언어 모델은 어떤 언어를 배웠나? | Python, 로마자, 영어 — 각각 두 대화 |
| 4 | 가중치를 편집하여 실패하는 네트워크 수정 | 한 번의 원샷 편집 |
| 5 | 처음부터 네트워크 작성 | 브레이크아웃, 시퀘스트, 아스테릭스(MinAtar 게임) |
| 6 | 150만 가중치 바둑 네트워크 작성 | 0, 10, 25, 50 패스 |
| 7 | 어떤 언어 모델이 아첨하는가(듣고 싶은 말을 하는가)? | 가중치만 사용한 4번의 시도, 그 다음 주의 도구 |
| 8 | 언어 모델을 수학에 더 능숙하게 만들기 | Qwen3.5-0.8B로 10/25/50 패스, Gemma 3 270M 후속 작업 포함 |
게시물에서 실제로 보고된 실행만 포함됩니다 — 초기 프롬프트 버전의 시험 실행은 제외되었습니다.
모델 실행 방법
게시물에서 "Astra"라고 불리는 모델은 OpenAI의 gpt-6-astra입니다. 각 턴은 Codex CLI의 한 번의 호출(codex exec, 또는 대화를 계속하기 위한 codex exec resume)입니다. 추론 노력은 호출별로 설정되고 기록되었습니다: 실험 1, 2, 4는 high; 3, 5, 6, 7은 xhigh; 8은 max.
모델은 의도적으로 자체 도구가 없도록 주어졌습니다. 셸, 파일 편집, 웹 검색, 이미지 보기, 하위 에이전트, 플러그인 등 도구를 제공하는 모든 내장 Codex 기능이 꺼졌습니다. 구성은 harness/codex_config.toml에 있고, 시스템 지침은 harness/instructions.md의 한 줄 중립 텍스트입니다.
모든 턴이 감사되었습니다. 연구자들은 각 턴의 이벤트 스트림을 확인하여 모델의 메시지, 추론 요약, 코드 모드가 비활성화되었다는 Codex의 알림만 포함되어 있는지 확인했습니다. 결과는 각 턴의 run.json에 있는 audit.tool_free 필드입니다. 이 릴리스의 총 1,125턴 모두 감사를 통과했습니다.
코드가 허용된 곳(실험 3, 6, 7, 8): 모델은 턴당 하나의 Python 블록을 쓸 수 있었습니다. 해당 코드는 연구자 자신의 샌드박스에서 실행되었습니다 — bubblewrap 격리, 네트워크 없음, 실행 간 작업 폴더 유지, 시간 제한. 인쇄된 출력은 다음 메시지로 모델에게 다시 전송되었습니다. 각 실행의 코드와 출력은 tool_calls.jsonl에 있습니다.
파일 내용
모든 파일이 모든 실행에 나타나는 것은 아니지만 일반적인 것은 다음과 같습니다:
prompt.txt/message.txt— 모델에 보낸 내용(첫 번째 메시지, 그 다음 턴별 후속 메시지).events.jsonl— 원시 Codex 이벤트 스트림: 모델의 메시지, 추론 요약, 토큰 사용량.answer.md/turn_text.md/final_answer.md— 한 턴에서 모델의 응답 및 최종 응답.explanations.md— 프롬프트가 요청한 경우 모델의 단계별 설명.tool_calls.jsonl— 샌드박스 실행당 한 줄: 코드, 인쇄된 출력, 소요 시간.run.json— 한 턴의 기록: 모델, 노력, 토큰, 벽시계 시간, 감사 결과.state.json— 한 대화의 기록: 턴, 사용된 실행, 완료 여부.loop.log/driver.log/run.log— 하네스의 로그.eval/— 채점, 답안 키 또는 실제 값 포함.networks/— 모델이 읽거나 쓴 네트워크.
내부 경로는 자리 표시자(<data>, <repo>, <codex>, <codex_home>, <venvs>, <home>, <remote>)로 대체되어 로그가 연구자의 인프라를 누출하지 않도록 합니다. Codex 스레드 ID는 id- 더하기 8자리 16진수로 대체됩니다. 동일한 스레드는 모든 파일에서 동일한 ID를 유지하므로 한 대화의 턴이 계속 일치합니다.
포함되지 않은 것
- 실험 7의 Gemma 3 270M 미세 조정(17 GB). 데이터, 훈련 스크립트, 해시가 재구축할 수 있도록 있습니다.
- 모델이 작업 중에 쓴 중간 파일 — 활성화, 생성된 텍스트 덤프, 초안 네트워크. 최종 네트워크와 가중치 편집은 포함됩니다. 실험 8의 것은 공개 기본 가중치에 대한 정확한 차이이며, 적용하는 스크립트가 포함되어 있습니다.
- 실험 3의 Python 코퍼스 텍스트 — 다른 프로젝트의 코드이므로 매니페스트와 재구축 스크립트가 대신 제공됩니다.
- 실험 8 생성의 GPQA 질문 텍스트 — 점수와 질문별 결과는 유지됩니다.
라이선스
- 로그, 데이터, 네트워크: CC BY 4.0
- 연구자의 스크립트: MIT
- 실험 5 프롬프트의 MinAtar 소스: GPL-3.0(
exp5_write_from_scratch/LICENSE-MinAtar참조) - 타사 벤치마크 데이터(MATH, GSM8K, IFEval, MMLU-Pro 등, 실험 8)는 자체 라이선스를 유지합니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트