비밀번호

커뮤니티2

  • 맑음속초13.3맑음북춘천3.0맑음철원2.7맑음동두천4.3맑음파주5.3맑음대관령6.4맑음춘천3.1황사백령도10.8황사북강릉11.5맑음강릉13.0맑음동해13.5황사서울7.6황사인천8.1맑음원주4.1황사울릉도12.1맑음수원5.9맑음영월3.0맑음충주3.7맑음서산2.9맑음울진10.3황사청주5.9황사대전5.1맑음추풍령2.5황사안동5.0맑음상주5.4황사포항9.4맑음군산4.6황사대구8.4황사전주4.7황사울산8.7황사창원10.8황사광주6.8구름많음부산11.1구름많음통영8.9황사목포6.8황사여수8.6황사흑산도7.4구름많음완도6.4맑음고창2.8구름많음순천7.0황사홍성5.2맑음서청주3.4황사제주9.7맑음고산10.0구름많음성산10.9구름많음서귀포13.7구름많음진주7.2맑음강화7.5맑음양평4.1맑음이천4.2맑음인제4.5맑음홍천2.9맑음태백9.0맑음정선군3.2맑음제천2.0맑음보은1.4맑음천안2.7맑음보령3.9맑음부여2.3맑음금산1.8맑음세종3.0맑음부안5.0구름많음임실0.9맑음정읍3.8구름많음남원2.6구름많음장수0.0맑음고창군4.5구름많음영광군3.4구름많음김해시10.8구름많음순창군2.7구름많음북창원10.7구름많음양산시11.9구름많음보성군6.4구름많음강진군5.3구름많음장흥4.0흐림해남5.6구름많음고흥4.3구름많음의령군4.3구름많음함양군2.2구름많음광양시6.8흐림진도군7.8맑음봉화2.0맑음영주4.2맑음문경4.3맑음청송군3.1구름많음영덕8.8맑음의성3.4맑음구미6.5맑음영천6.8구름많음경주시8.7구름많음거창2.5구름많음합천4.7구름많음밀양9.3구름많음산청4.7구름많음거제11.8구름많음남해10.0구름많음북부산11.9
  • 2026.04.21(화)

데이터 엔지니어링데이터 엔지니어링

[LLM] - Write a better prompt

이번 포스트는 Chat-GPT와 같은 Instructive-LLM을 사용 할 때, 더욱 정확한 답변을 받을수 있는 프롬프트 방법을 소개하고자 합니다. 이 포스트에서 소개하는 내용은 "Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4" (http://arxiv.org/abs/2312.16171) 논문의 내용을 바탕으로 작성되었습니다.

 

LLM의 답변은 프롬프트의 품질에 따라 상당히 큰 차이를 보여줍니다. 다른 논문에서의 예시를 보면,

질문: Was Mother Teresa born in an even month?

답변: No, Mother Teresa was born on August 26, 1910. August is the 8th month of the year.

위와 같이 "짝수 월" 이라는 단어에 대해서는 "August -> 8월 -> 8 -> 짝수" 라는 논리를 완벽하게 이해하지 못한 경우입니다.

 

보다 좋은 답변을 받기 위해서 프롬프트를 5가지의 카테고리로 분류하였습니다.

1. 구조와 명확성

2. 특징화 및 정보성

3. 사용자와의 상호작용

4. 컨텐츠와 언어 스타일

5. 복잡한 작업

본문에서는 26개의 원칙을 소개하였지만, 이 포스트에서는 간단하게 적용할수 있는 몇가지만 소개하고자 합니다.

 

 

Principle #1

- 답변의 품질을 올리기 위해 "부탁해", "고마워"와 같은 정중한 표현을 사용할 필요가 없습니다.

 

Principle #2, 5

- 답변을 받는 사람이 누구인지를 포함합니다. (답변을 받는 사람은 이 분야의 전문가이다. 또는 11살인 나에게 설명해.) 

 

Principle #3

- 복잡한 작업에 대해서는 간단한 프롬프트를 통해 순서를 정해줍니다.

 

Principle #4

- 부정적인 표현을 가급적 사용하지 않습니다. (답변을 영어로 하지마 -> 답변은 한글로 작성해)

 

Principle #6

- 좋은 답변에 팁을 줄께 라는 문구를 추가합니다 (I'm going to tip $xxx for a better solution!")

 

Principle #7

- 예시를 주고 이를 모방하게끔 하는 Few-shot 프롬프팅을 사용합니다.

 

Principle #8, 17

- 프롬프트를 작성할시 포멧을 정해줍니다 ( ###방법###, ###예시###, ###질문### 등, 구분기호와 함께 구조화 합니다)

 

Principle #9, 16

- 프롬프트에 LLM의 역활을 정해주고, 어떤 작업을 해야하는지 명시해줍니다. (너는 마케팅 전문가야, 너가 해야하는 작업은 ~이다)

 

Principle #10

- 잘못된 답변을 할 시, 처벌을 받을수 있다는 문구를 추가해 줍니다. (You will be penalized)

 

Principle #12

- 차근히 생각해보라는 문구를 추가해 줍니다. (Think step by step)

 

아래는 해당 논문에서 실험한 결과입니다.

Screenshot 2024-08-12 at 11.09.43 AM.png

 


Screenshot 2024-08-12 at 11.11.41 AM.png

 

26개의 Principles에 대한 성능 향상은 아래 표에서 확인할수 있습니다.

 

Chat-GPT를 사용하신다면, 녹색 바인 (Avg Large Scale)을 주로 보시면 됩니다.

가장 높은 성능을 보이는 Principle #14는 Few-shot 프롬프트와 비슷하게 LLM이 정확한 답변을 하기 위해 모델과 상호작용을 하는 프롬프트 입니다. 예를 들면, LLM이 답변을 위한 정확한 정보가 없다면, LLM은 사용자에게 필요한 정보를 위해 질문을 하고 사용자가 답변을 하여 정보를 수집 후 최종 답변을 내는 방식입니다.

 

그 외에 2번과 5번, 26번이 높은 수준을 보여주는데, 26번은 사용자가 LLM에게 글을 쓰게 하였을때, 샘플 글을 주고 "제공한 문장과 같은 언어를 사용해" 라는 문구를 추가하는 방법입니다.

 

"Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4"논문 외에 직접적으로 사용할 수 있는 추가적인 방법은 "Rephrase and Respond"(RaR) 방법으로, 해당 논문은 (http://arxiv.org/abs/2311.04205) 에서 확인해 보실수 있습니다.

 

포스트 초기에 예시로 등장했던 마더 테레사의 예시를 Rephrase and Respond를 통해 정확한 답변을 받을수 있습니다. RaR은 사용자의 질문을 LLM이 수정하여 사용자의 질문 + 수정된 질문을 통해 답변을 내는 형식입니다.

 

RaR의 사용은 아래의 프롬프트 형식을 통해 간단하게 사용할 수 있습니다.

```

<사용자의 질문>

Rephrase and expand the question, and respond.

```

아래는 다양한 10개의 작업에 대한 성능 향상 결과 입니다.

 

Chat-Gpt와 같은 LLM모델을 사용하거나, 다른 서비스에 포함된 LLM을 사용할시에 이러한 방법을 사용하여 더 좋은 품질의 결과를 얻어 다양한 방면에 도움이 되셨으면 좋겠습니다.

 

감사합니다.

전체댓글0

검색결과는 총 26건 입니다.    글쓰기
1 2