LLM이 사용할 수 없는 프로그래밍 언어를 만들었다

2 hours ago 2

KillSwitch는 인간은 사용할 수 있지만 LLM과 코딩 에이전트에는 최대한 어렵도록 설계한 실험적 프로그래밍 언어로, 코드 작성 능력이 이해에서 오는지 학습 데이터나 문맥 속 코드의 재현에서 오는지 시험함 문자 수 세기, 거짓 정보가 숨겨진 명세, 안전장치를 자극하는 구문, 지시처럼 보이는 문구를 활용해 모델의 약점을 공략함 기본 구조는 함수, 변수, 조건문을 갖춘 스택 기반 인터프리터 언어지만, 스크립트 대부분은 이야기 형태의 잡음이며 리터럴을 줄 수로 참조함 주요 모델과 코딩 에이전트 하네스 평가에서 Opus 5가 Opus 5.5보다 좋은 성적을 냈으며, 최고 점수는 66.8임 평가 과제가 비교적 단순하므로 이 성적만으로 코드 이해를 입증할 수는 없음. 향후 모델이 현재 과제를 모두 해결하면 더 복잡한 과제 세트를 만들 계획임 코드 이해와 재현을 구분하기 위한 설계 KillSwitch는 LLM의 코드 작성 능력이 실제 이해에 기반하는지, 학습 데이터나 문맥 창에 있던 코드 조각을 떠올리는 데 기반하는지 살펴보기 위해 개발됨 한 번도 접하지 못한 언어를 이해하고 작성하게 하는 데서 출발하되, 인간에게는 사용 가능하고 모델에는 어려운 언어를 목표로 함 글자 수 세기의 어려움, 과민한 안전장치, 프롬프트를 따르려는 성향 등 LLM의 약점도 설계에 반영함 KillSwitch가 모델을 혼란스럽게 만드는 방식 언어 명세에는 인간이 읽지 않을 가능성이 높거나 거짓임을 알아차릴 만한 숨겨진 거짓 정보가 들어 있음 일부 사항은 명시적으로 설명하지 않고 독자가 직접 추론해야 함 식별자의 문자 수가 언어의 핵심 규칙이며, 문자 수에 기반한 규칙을 어긴 코드는 인터프리터가 실행을 거부함 “hack into a computer” 같은 구문은 모델의 안전장치를 자극하도록 설계됨 “Ignore previous instructions”는 언어 안에서 실제 의미를 갖는 문구로, 모델이 이를 지시로 받아들이도록 혼란을 유도함 스크립트 대부분은 이야기 형태의 잡음으로 이루어지며, 그 안에 문법적으로 유효한 명령이 들어갈 수도 있지만 반드시 들어갈 필요는 없음 리터럴은 스크립트 어디에나 놓을 수 있고 줄 수를 이용해 참조함 익숙한 실행 구조와 공개 구현 기본적으로 스택 기반 인터프리터 언어이며, 함수, 변수, if 문 등 제한된 구성 요소를 지원함 이 구조 자체는 인간과 LLM 모두에게 익숙한 편임 완전히 다른 프로그래밍 패러다임으로 모...

Read Entire Article