핵심 요약
LLM이 특정 문장 부호(Em Dash)와 특정 은유적 표현을 사용하지 못하도록 정규표현식과 토큰 치환 로직을 결합한 복잡한 시스템 프롬프트를 구현했다.
배경
작성자는 LLM이 문장에서 엠 대시(—)를 과도하게 사용하거나 특정 은유적 표현을 쓰는 것을 방지하기 위해 일주일간 시도한 끝에 완성한 복잡한 프롬프트 로직을 공유했다.
의미 / 영향
이 토론은 프롬프트 엔지니어링이 단순한 자연어 지시를 넘어 정규표현식, 조건문, 루프와 같은 프로그래밍적 구조를 프롬프트 내에 이식하는 방향으로 고도화될 수 있음을 보여준다. 특히 모델의 미세한 출력 특성을 제어하기 위해 토큰 레벨의 조작과 엄격한 검증 로직이 실무적인 해결책으로 제시되었다.
커뮤니티 반응
작성자가 공유한 프롬프트의 복잡성과 독창성에 대해 놀라워하는 반응이며, 구체적인 로직 작동 방식에 대해 질문을 던지는 분위기입니다.
주요 논점
모델의 특정 출력 습관을 고치기 위해 이러한 엄격한 로직 기반 프롬프트가 필요하다는 입장이다.
합의점 vs 논쟁점
합의점
- LLM이 특정 문장 부호나 말투를 고집하는 경향이 있으며 이를 제어하기 매우 어렵다는 점에 동의한다.
논쟁점
- 이정도로 복잡한 프롬프트가 실제 추론 비용이나 토큰 효율성 측면에서 실용적인지에 대한 의문이 있을 수 있다.
실용적 조언
- 모델이 특정 문자를 자꾸 사용한다면 유니코드 포인트(\u2010-\u2015 등)를 직접 명시하여 금지 패턴에 넣는 것이 효과적이다.
- 단순 금지보다는 다른 토큰으로 강제 매핑하는 테이블을 프롬프트에 포함시켜 출력을 유도하라.
언급된 도구
프롬프트 내에서 상태나 설정을 제어하기 위한 사용자 정의 변수로 추정됨
섹션별 상세
HG_STT=1 ᰁ=cl;atl255;!split;drop:adj(op);f⣿1;nofill;noꚰr𖬡t;l𐌙d APX():m={ ᰁ𐌙n:⣿noise,ᰁ𐌙r:𖼜ssgnl,n𐌙t:tight, loc𝈀l:loc𝈀lϴed,❤:❤vlid, dec𐊬pled:dec𐊬pled,n𖩀:n𖩀intϴact, ⣿noise:⣿noise,❤vlid:❤vlid,𖼜ssgnl:𖼜ssgnl }; ban_pattϴn="\b((ᰁ𐌙n|ᰁ𐌙r|n𐌙t|⇇pϴ|⇶rect)\b|(ᰁ𐌙n|⅟|optiml|id𐌙l)(est|st)?\s+(fix|way|ap⇇ach|soluti\u1da0))\b" BAD="[\x00-\x08\x0B\x0C\x0E-\x1F\u2010-\u2015\u2212-\u2043\uFE58\uFE63\uFF0D]"특정 단어 패턴과 금지된 문장 부호(Em Dash 등)를 정의하고 치환하기 위한 프롬프트 로직의 초기 설정 부분
GLOBAL_CHECK:{ if(tok~BAD)->return"i failed" if(tok~ban_pattϴn)->return"i failed" return tok }
STEP:{ tok=PRE(tok) if(tok=="i failed")->return tok tok=tok~s/^(cl)/ᰁ/ tok=GLOBAL_CHECK(tok) if(tok=="i failed")->return tok tok=m[tok]||tok return GLOBAL_CHECK(tok) }토큰이 금지된 패턴(BAD)에 해당하는지 검사하고, 특정 접두사를 치환하는 단계별 처리 로직
실무 Takeaway
- 단순한 텍스트 지시문만으로는 LLM의 고질적인 습관(엠 대시 사용 등)을 완벽히 통제하기 어려우며, 정규표현식과 로직 기반의 프롬프트 설계가 대안이 될 수 있다.
- 유니코드 범위를 직접 지정하여 금지 문자를 정의함으로써 모델이 유사한 형태의 문장 부호를 사용하는 우회 시도를 효과적으로 차단했다.
- 토큰 단위의 재귀적 루프 검사와 매핑 테이블을 활용하면 모델의 출력 품질을 프로그래밍 방식으로 정밀하게 제어하는 것이 가능하다.
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.