프롬프트 템플릿 개발할 때 언제나 신경 쓰이는 부분
LLM은 당연하지만 Whitespace sensitive함.
그러니까...
### HelloWorld
이것과
### Hello
World
이것이 구분됨.
예를들면 <prompt></prompt> 라는 인클로저로 포메팅 가능한 프롬프트 템플릿이 있다고 가정해보자.
이 경우 저 시작 태그 맨 처음 붙은 \n을 스킵하냐 마냐로 갈림.
1. 스킵하지 않는다
이 경우 가독성이 병신이 됨. 아래 예시를 보자.
<prompt>### HelloWorld</prompt>
딱 봐도 거지같음. 가독성도 별로고 실수하기도 딱 좋음.
2. 스킵한다.
이 경우 일관성이 병신이 됨. 사용자는 \n을 앞에 써야할지 말지 햇갈림.
예를들면 엔터가 두번 있는건? 그것도 스킵해야하나?
앞에 엔터를 꼭 붙이고 싶은건 어떻게 해야하나? 이런 문제들이 발생함.
<prompt>### HelloWorld</prompt>
이런식으로 됨. 문제는
<prompt>
### HelloWorld</prompt>
이걸 의도하기 힘들어진다는거임.
유저 입장에서 맨 앞에 whitespace가 없어지는지 안 없어지는지 직관적으로 알기 어려움.
그래서 생각해본 아이디어들.
<==========prompt==========>### HelloWorld<==========prompt==========>
라인 스플리터처럼 만든다. 누가 봐도 저기 부분은 스킵되는게 직관적으로 느껴짐.
문제는 attribute같은걸 표현하기에 적합하지 않음.
그래서 생각해본것들. ini나 toml과 비슷하게 가보는건?
[prompt.attribute(a=..)]### HelloWorld
[prompt.attribute(a=..)]### HelloWorld
나쁘지 않아 보이는데... 문제는 이 경우에는 끝부분 화이트스페이스가 없어지는지 확인하기 어려움.
[prompt.attribute(a=..)]### HelloWorld[prompt.attribute(a=..)]### HelloWorld
이렇게 꼭 해야만 한다면? 직관성이 굉장히 떨어짐. 프롬프트마다 분리할 수 있는게 있으면 좋겠음.
다양한 고민 중인데 좋은 아이디어 있으면 올려야지.
s/llm
• 196 subscribers- 1. .