Published 2024. 4. 5. 11:19
728x90

반복학습이 중요한것!

프롬프트 설계는 어렵습니다. --> 개발자들이 서비스를 상용화 하기 까지 고객들의 니즈를 잘 파악하여 원하는 결과값을 얻기까지 많은 시행착오와 반복적인 작업은 필수임을 명심해야합니다. 

앞서, 간단한 프롬프트로 시작하여 더 나은 결과를 위해 요소나 문맥을 계속해서 추가해 나가야합니다. 많은것들을 고려해야 하지만, 이 기술은 일반적으로 나온지 얼마 되지 않아서 빠르게 버전업이 이루어지고있습니다. 즉 버전 관리가 중요하다는 이야기입니다. 

 

구체성, 단순성, 간결함을 통해 더 나은 결과를 얻을 수 있는 많은 예시를 제시하고 있습니다. 

 

여러 하위 작업을 포함한 큰 단위 작업을 실행해야 하는 경우, 작업을 보다 작은 단위로 세분화 하고 결과가 개선됨에 따라 점진적으로 구축해 나가야합니다.  이런 방식을 통해 프롬프트 설계 초기 과정에 너무 많은 복잡성이 추가되는 것을 방지할 수 있습니다.

 

명확한 지시가 필요하다.

'작성하기','분류하기', '요약하기', '번역하기' , '정렬하기' 등의 명령어를 사용하여 달성하고자 하는 결과를 모델에 지시함으로써 다양한 간단 작업에 대해 효과적인 프롬프트를 설계할 수 있습니다.

 

어떤 것이 가장 효율적인지 실험이 필요하다고 강조를 드리고싶습니다. 다양한 키워드, 문맥 및 데이터를 활용하여 다양한 지시를 내려 보고, 특정 사용 사례와 작업에 가장 적합한 방법을 찾아야합니다. 항상 질문과 지시는 명확해야합니다. 명심하세요! 

 

예시 ) 

Prompt : 

### 지시 ###
다음 텍스트를 한글로 번역해 줘.
text: Nice to Meet you

Output : 

만나서 반갑습니다.

특이점

앞서 설명 드렸듯이 모델을 실행시킬 지시와 작업을 좀 더 구체적으로 설명해야합니다. 왜냐하면 프롬프트가 상세하고 구체적일수록 더 좋은 결과를 출력하기 때문입니다. 아직까지 더 좋은, 더 나은 결과를 주는 특정한 토큰이나 키워드는 존재하지 않습니다. 좋은 형식과 상세한 프롬프트를 준비하는 것이 중요합니다. 예시를 제공함으로써 특정한 형식으로 출력을 얻는데 매우 효과적입니다.

 

Prompt : 

다음 텍스트에서 장소의 이름을 알려줘
원하는 형식:
Place: <comma_separated_list_of_places>
입력: "이러한 발전은 연구자들에게 격려가 되지만, 많은 것들이 여전히 수수께끼입니다. 
리스본에 있는 샴팔리마우드 센터(CCU: Champalimaud Centre for the Unknown)의 
신경면역학자인 Henrique Veiga-Fernandes는" 뇌와 주변부에서 보이는 효과 사이에 블랙박스가 있는 
경우가 종종 있습니다."라고 말합니다. 그리고 다음과 같이 덧붙입니다. "치료적 맥락에서 이를 사용하고자 할 경우, 
그 메커니즘을 실제로 이해할 필요가 있습니다."

 

Output : 

장소: 샴팔리마우드 센터(CCU: Champalimaud Centre for the Unknown), 리스본

 

 

정확성을 떨어 트리는 것

상세하게 기술하고 형식을 개선하는 방법에 대한 위 내용을 고려해볼때, 프롬프트를 교모하게 다루려 하거나 부정확한 설명을 작성하는 등의 함정에 빠지기 쉽습니다. 프롬프트는 구체적이고 직접적이어야 더욱 좋은 결과를 얻을 수 있습니다. 직접적일수록 메시지가 더 효과적으로 전달됩니다. 사람과의 대화처럼 원하는 답을 얻으려면 좀 더 구체적인 질문을 해야하는것과 같습니다.

프롬프트 엔지니어링의 개념을 설명해줘. 설명은 간결하게 몇 문장으로만 하고 너무 자세히는 하지 말아줘

 

위에 질문을 만약 상사가 부하 직원에게 했다고 생각해 봅시다. 아찔하지 않나요? 얼마나 간결해야하며 어느정도가 너무 자세하지 않는지 부하직원은 예측해야하고, 본인 뜻대로 했다가 상사에게 꾸중을 들을수 있습니다. 이처럼, 프롬프트도 구체적이고 간결하며 정곡을 찌르는 질문이 중요합니다. 프롬프트도 저 위와 같은 문장으로도 답을 줄순 있지만 우리가 원치 않는 상황이 올수도 있습니다. 

그럼 다시 질문을 줘보겠습니다.

회사 상사에게 프롬프트 엔지니어링의 개념을 2~3개의 문장으로 설명해줘

 

 

해야 하는 것과 하지 말아야 할것

프롬프트를 설계할 때 적용할 수 있는 또 다른 일반적인 팁은 '하지 말아야 할것' 보다는 '해야 하는 것'에 초점을 두는것입니다. 이렇게 하면  보다 구체적이고 모델로부터 좋은 답변을 이끌어 내는 세부 사항에 집중할 수 있습니다. 

 

하지말아야할 것의 예시)

우리가 금융상품을 추천 받으려고 챗봇을 사용하지만 실패하는 사례

Prompt : 

다음은 고객에게 금융상품을 추천하는 상담원입니다. 연봉을 묻지마세요, 개인정보를 묻지마세요.
고객: 제 연봉을 바탕으로 금융상품을 추천해 주세요.
상담원 :

 

Output : 

네, 당신의 연봉을 바탕으로 금융상품을 추천해 드리겠습니다. 청년우대적금, 직장인우대적금, 매달이자적립적금,
이 외에 어떤 금융상품을 원하시나요?

 

잘 질문한 프롬프트 예시를 다시 보자!

Prompt : 

다음은 고객에게 금융상품을 추천하는 상담원입니다. 상담원은 요즘 30대에게 인기 있는 금융상품을 추천해야합니다.
사용자의 연봉을 묻지 않고 개인 정보를 요구하지 않아야 합니다. 상담원이 추천할 금융상품이 없는 경우
"죄송합니다. 추천할 금융상품을 찾을 수 없습니다" 라고 응답해야합니다.
고객: 제 연봉을 바탕으로 금융상품을 추천해 주세요.
상담원 :

 

Output : 

죄송합니다만, 당신의 관심사에 관한 정보를 찾을 수 없습니다. 하지만 지금 30대에게 가장 인기 있는 금융상품에
대한 목록이 있습니다 : [금융상품 목록].
원하시는 금융 상품을 찾기 바랄게요.!

 

원하지 않는 답변이 나올수 있기때문에 좀 더 구체적으로 모르면 모른다. 라고 지시를 해줘야합니다 그렇지 않으면 말도 안되는 오답을 내오는경우도 있습니다. 아마 ChatGPT를 사용해본 경험자라면 잘 알 수 있을거같습니다.

728x90
복사했습니다!