프롬프트 형식 맞추기
지시, 입력, 응답 세 칸을 모델에 어떻게 넣을까요?
문제
모델은 글 한 덩어리만 받습니다
모델에 들어가는 것은 이어진 글 하나입니다. 세 칸을 그냥 붙이면 경계가 사라집니다.
2편에서 본 철자 예제입니다. 지시는 '다음 단어의 올바른 철자를 찾으세요'였습니다.
해법
칸마다 이름표를 답니다
칸 앞에 '여기부터 지시', '여기부터 입력', '여기부터 응답'이라는 이름표 줄을 넣고 차례로 잇습니다.
모델에 넣는 글을 프롬프트, 이 짜임새를 프롬프트 형식이라고 합니다. ###은 눈에 띄라고 붙인 기호입니다.
맨 앞 한 줄
모든 예제가 같은 안내문으로 시작합니다
이제부터 지시가 나오니 그에 맞는 응답을 쓰라는 안내입니다. 1,100개 모두 이 문장으로 시작합니다.
완성
철자 예제를 틀에 넣으면
안내문, 지시, 입력, 응답이 글 한 덩어리가 됐습니다. 이제 어디가 무엇인지 모델이 구별할 수 있습니다.
원본 실습에서 실제로 만들어진 글입니다. 지시는 '다음 단어의 올바른 철자를 찾으세요', 응답은 '올바른 철자는 Occasion입니다'라는 뜻입니다.
입력이 없으면
입력 칸은 이름표째 뺍니다
2편에서 본 반대말 예제처럼 입력이 비어 있으면 '### Input:' 줄도 넣지 않습니다.
지시는 'complicated(복잡한)의 반대말은 무엇입니까', 응답은 '반대말은 simple(단순한)입니다'라는 뜻입니다.
틀의 쓸모
이어 쓰기가 곧 답하기가 됩니다
훈련할 때는 응답까지 붙여 보여 줍니다. 훈련을 마치고 쓸 때는 지시와 입력까지만 넣습니다. 그러면 모델이 응답 이름표와 응답을 이어 씁니다.
이 틀의 이름은 알파카(Alpaca) 형식입니다. 지시 미세 튜닝 방법을 일찍 공개한 LLM의 이름에서 왔습니다.
다음 편