mirror of
https://github.com/dair-ai/Prompt-Engineering-Guide
synced 2024-11-02 15:40:13 +00:00
Merge pull request #5 from neont21/02_App
Improve some Korean translation of Applications part
This commit is contained in:
commit
7080172002
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
import { Callout } from 'nextra-theme-docs'
|
import { Callout } from 'nextra-theme-docs'
|
||||||
|
|
||||||
이 장에서는 프롬프트 엔지니어링을 사용하여 유용하고 고급 작업을 수행할 수 있는 몇 가지 흥미로운 고급 방법을 다룹니다.
|
이 장에서는 프롬프트 엔지니어링을 사용하여 유용한 고급 작업을 수행할 수 있는 몇 가지 흥미로운 고급 방법을 다룹니다.
|
||||||
|
|
||||||
<Callout emoji="⚠️">
|
<Callout emoji="⚠️">
|
||||||
This section is under heavy development.
|
해당 페이지는 개발 중에 있습니다.
|
||||||
</Callout>
|
</Callout>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"pal": "PAL(프로그램 언어 지원 모델)",
|
"pal": "PAL(프로그램지원언어모델)",
|
||||||
"generating": "데이터 생성",
|
"generating": "데이터 생성",
|
||||||
"coding": "Generating Code",
|
"coding": "Generating Code",
|
||||||
"workplace_casestudy": "학위가 필요한 직업을 분류한 사례연구",
|
"workplace_casestudy": "학위가 필요한 직업을 분류한 사례연구",
|
||||||
|
@ -1,47 +1,44 @@
|
|||||||
# 데이터 생성
|
# 데이터 생성
|
||||||
|
일관된 텍스트를 생성하는 것은 LLM이 두각을 나타내는 분야입니다. 효과적인 프롬프트 전략을 사용하면 모델을 조정하여 보다 우수하고 일관적이며 더욱 사실에 입각한 답변을 생성할 수 있습니다. 또한 LLM은 모든 종류의 실험과 평가를 수행하기 위한 유용한 데이터를 생성하는 데 특히 유용합니다. 가령, 다음과 같이 감정 분류기에 대한 빠른 샘플을 생성할 수 있습니다.
|
||||||
|
|
||||||
일관된 텍스트를 생성하는 것은 LLMs이 두각을 나타내는 분야입니다. 효과적인 프롬프트 전략을 사용하면 모델을 더 낫고, 일관성 있고, 더 사실에 기반한 답변을 생성할 수 있습니다. LLMs는 여러 종류의 실험과 평가를 수행하는 데 큰 도움이 되는 데이터를 생성하는 데 특히 유용합니다. 예를 들어, 다음과 같이 감정 분석을 위한 10가지 예를 생성해보겠습니다:
|
_Prompt:_
|
||||||
|
|
||||||
_프롬프트:_
|
|
||||||
|
|
||||||
```
|
```
|
||||||
감정 분석을 위한 10가지 예시를 작성해 줘. 예시는 긍정적 혹은 부정적으로 둘 중 하나로 분류할 수 있어. 부정적인 예시 2개와 긍정적인 예시 8개를 생성해줘. 다음 예시와 같은 형식을 사용해줘:
|
감정 분석을 위한 10가지 예시를 작성해 줘. 예시는 긍정적 혹은 부정적 둘 중 하나로 분류할 수 있어. 부정적인 예시 2개와 긍정적인 예시 8개를 생성해줘. 다음 예시와 같은 형식을 사용해줘.
|
||||||
Q: <문장>
|
Q: <문장>
|
||||||
A: <감정>
|
A: <감정>
|
||||||
```
|
```
|
||||||
|
|
||||||
_출력:_
|
_Output:_
|
||||||
|
|
||||||
```
|
```
|
||||||
Q: 나 방금 굉장한 소식을 들었어!
|
Q: 나 방금 굉장한 소식을 들었어!
|
||||||
A: 긍정
|
A: 긍정적
|
||||||
|
|
||||||
Q: 우리 급여가 올랐네요!
|
Q: 우리 급여가 인상되었어!
|
||||||
A: 긍정
|
A: 긍정적
|
||||||
|
|
||||||
Q: 나는 오늘 내가 성취한 일에 뿌듯함을 느껴.
|
Q: 나는 오늘 내가 성취한 일에 뿌듯함을 느껴.
|
||||||
A: 긍정
|
A: 긍정적
|
||||||
|
|
||||||
Q: 최고의 하루를 보내고 있어!
|
Q: 최고의 하루를 보내고 있어!
|
||||||
A: 긍정
|
A: 긍정적
|
||||||
|
|
||||||
Q: 이번 주말을 매우 고대하고있어!
|
Q: 이번 주말을 매우 고대하고 있어!
|
||||||
A: 긍정
|
A: 긍정적
|
||||||
|
|
||||||
Q: 나는 지금 최고의 선물을 받았어!
|
Q: 나는 지금 최고의 선물을 받았어!
|
||||||
A: 긍정
|
A: 긍정적
|
||||||
|
|
||||||
Q: 나는 지금 매우 행복해.
|
Q: 나는 지금 매우 행복해.
|
||||||
A: 긍정
|
A: 긍정적
|
||||||
|
|
||||||
Q: 이렇게 훌륭한 가족의 일원으로서 축복받았다고 느껴.
|
Q: 이렇게 훌륭한 가족의 일원이라는 건 정말 축복이야.
|
||||||
A: 긍정
|
A: 긍정적
|
||||||
|
|
||||||
Q: 바깥 날씨가 굉장히 흐리네요.
|
Q: 바깥 날씨가 굉장히 흐려.
|
||||||
A: 부정
|
A: 부정적
|
||||||
|
|
||||||
Q: 방금 끔찍한 소식을 들었어요.
|
Q: 방금 끔찍한 소식을 들었어.
|
||||||
A: 부정
|
A: 부정적
|
||||||
```
|
```
|
||||||
|
|
||||||
이는 매우 유용합니다. 실제로 이 가이드의 또 다른 섹션의 테스트에서 이 예시를 사용하고 있을정도로요.
|
이는 매우 유용합니다. 이 가이드의 다른 섹션의 테스트에서 실제로 이 예시를 사용하고 있을 정도로요.
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
# PAL (프로그램 지원 언어 모델)
|
# PAL (프로그램지원언어모델)
|
||||||
|
|
||||||
import { Callout, FileTree } from "nextra-theme-docs";
|
import { Callout, FileTree } from "nextra-theme-docs";
|
||||||
import { Screenshot } from "components/screenshot";
|
import { Screenshot } from "components/screenshot";
|
||||||
import PAL from "../../img/pal.png";
|
import PAL from "../../img/pal.png";
|
||||||
|
|
||||||
[Gao et al., (2022)](https://arxiv.org/abs/2211.10435)은 프로그램 지원 언어 모델(PAL)이라고 불리며 솔루션을 얻기 위한 자유 형식 텍스트 대신 Python 인터프리터와 같은 프로그램 실행 시 해결 단계를 오프로드합니다.
|
[Gao et al., (2022)](https://arxiv.org/abs/2211.10435)는 LLM을 이용하여 자연어 문제를 읽고 중간 추론 단계로서의 프로그램을 생성하는 방법을 제시합니다. 그 방법은 프로그램지원언어모델(program-aided language models; PAL)이라고 이름 붙었으며, 해답을 얻기 위해 자유 형식 텍스트를 사용하는 대신 파이썬 인터프리터와 같은 프로그래밍 방식의 런타임을 통해 단계적으로 해결해 나간다는 점에서 생각의 사슬(chain-of-thought) 프롬프팅과 차이가 있습니다.
|
||||||
|
|
||||||
<Screenshot src={PAL} alt="PAL" />
|
<Screenshot src={PAL} alt="PAL" />
|
||||||
이미지 출처: [Gao et al., (2022)](https://arxiv.org/abs/2211.10435)
|
이미지 출처: [Gao et al., (2022)](https://arxiv.org/abs/2211.10435)
|
||||||
|
|
||||||
LangChain과 OpenAI GPT-3을 사용한 예를 살펴보겠습니다. 우리는 Python 인터프리터를 활용하여 질문을 해석하고 답변을 제공할 수 있는 간단한 애플리케이션을 개발해야하는 상황이라고 가정해보겠습니다.
|
LangChain과 OpenAI GPT-3을 사용한 예시를 살펴보겠습니다. 우리는 파이썬 인터프리터를 활용하여 질문을 해석하고 답변을 제공하는 간단한 애플리케이션을 개발해야 하는 상황이라고 가정해 보겠습니다.
|
||||||
|
|
||||||
특히, 날짜 이해가 필요한 질문에 LLM을 사용하여 답변할 수 있는 기능을 만드는 것에 초점을 맞추겠습니다. 프롬프트에 제공한 몇 가지 예시는 [여기](https://github.com/reasoning-machines/pal/blob/main/pal/prompt/date_understanding_prompt.py)에서 채택했습니다.
|
그 중에서도 날짜에 대한 이해가 필요한 질문에 대해서 LLM을 이용하여 답할 수 있는 기능을 만들고자 합니다. LLM에 제공할 프롬프트의 예제 중 일부는 [여기](https://github.com/reasoning-machines/pal/blob/main/pal/prompt/date_understanding_prompt.py)에서 채택했습니다.
|
||||||
|
|
||||||
다음은 우리가 필요로하는 import 문 입니다:
|
다음은 우리가 사용하는 import 문입니다.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
import openai
|
import openai
|
||||||
@ -24,69 +24,69 @@ from langchain.llms import OpenAI
|
|||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
```
|
```
|
||||||
|
|
||||||
우선 몇 가지 설정을 해보겠습니다:
|
우선 몇 가지를 구성해 보겠습니다.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
load_dotenv()
|
load_dotenv()
|
||||||
|
|
||||||
# API 설정
|
# API 구성
|
||||||
openai.api_key = os.getenv("OPENAI_API_KEY")
|
openai.api_key = os.getenv("OPENAI_API_KEY")
|
||||||
|
|
||||||
# LangChain 설정
|
# LangChain 구성
|
||||||
os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY")
|
os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY")
|
||||||
```
|
```
|
||||||
|
|
||||||
모델 인스턴스를 셋업합니다:
|
모델 인스턴스를 설정합니다.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
llm = OpenAI(model_name='text-davinci-003', temperature=0)
|
llm = OpenAI(model_name='text-davinci-003', temperature=0)
|
||||||
```
|
```
|
||||||
|
|
||||||
설정 프롬프트 + 질문:
|
프롬프트와 질문을 설정합니다.
|
||||||
|
|
||||||
```python
|
```python
|
||||||
question = "오늘은 2023년 2월 27일이야. 나는 정확히 25년전에 태어났어. 내가 태어난 날짜를 MM/DD/YYYY 형식으로 반환해줘"
|
question = "오늘은 2023년 2월 27일이야. 나는 정확히 25년 전에 태어났어. 내가 태어난 날짜를 MM/DD/YYYY 형식으로 알려줘."
|
||||||
|
|
||||||
DATE_UNDERSTANDING_PROMPT = """
|
DATE_UNDERSTANDING_PROMPT = """
|
||||||
# Q: 36시간이 지나면 2015년이야. 오늘로부터 일주일 뒤는 며칠인지 MM/DD/YYYY 형식으로 반환해줘.
|
# Q: 2015년까지 36시간 남았어. 오늘로부터 일주일 뒤는 며칠인지 MM/DD/YYYY 형식으로 알려줘.
|
||||||
# 2015년이 되기까지 36시간이 남았다면 오늘은 36시간 전이다.
|
# 2015년이 되기까지 36시간이 남았다면 오늘은 36시간 전이다.
|
||||||
today = datetime(2015, 1, 1) - relativedelta(hours=36)
|
today = datetime(2015, 1, 1) - relativedelta(hours=36)
|
||||||
# 오늘부터 일주일 뒤
|
# 오늘부터 일주일 뒤는
|
||||||
one_week_from_today = today + relativedelta(weeks=1)
|
one_week_from_today = today + relativedelta(weeks=1)
|
||||||
# The answer formatted with %m/%d/%Y is
|
# 답을 %m/%d/%Y 형식으로 하면
|
||||||
one_week_from_today.strftime('%m/%d/%Y')
|
one_week_from_today.strftime('%m/%d/%Y')
|
||||||
# Q: 2019년의 첫 날은 화요일이고 오늘은 2019년의 첫 번째 월요일이야. 오늘 날짜를 MM/DD/YYY로 반환해줘.
|
# Q: 2019년의 첫 날은 화요일이고 오늘은 2019년의 첫 월요일이야. 오늘 날짜를 MM/DD/YYYY 형식으로 알려줘.
|
||||||
# 2019년의 첫 날이 화요일이고 오늘이 2019년 첫 월요일이라면 오늘은 6일 후입니다.
|
# 2019년의 첫 날이 화요일이고 오늘이 2019년의 첫 월요일이라면 오늘은 6일 후다.
|
||||||
today = datetime(2019, 1, 1) + relativedelta(days=6)
|
today = datetime(2019, 1, 1) + relativedelta(days=6)
|
||||||
# %m/%d/%Y 형식으로 포맷팅된 답변은
|
# 답을 %m/%d/%Y 형식으로 하면
|
||||||
today.strftime('%m/%d/%Y')
|
today.strftime('%m/%d/%Y')
|
||||||
# Q: 콘서트는 1943년 6월 1일에 열리기로 예정되어 있었는데, 하루 연기되어 오늘로 변경됐어. 10일 전 날짜를 MM/DD/YYY 형식으로 반환해줘.
|
# Q: 콘서트는 1943년 6월 1일에 열리기로 예정되어 있었는데, 하루 연기되어 오늘로 변경됐어. 10일 전 날짜를 MM/DD/YYY 형식으로 알려줘.
|
||||||
# 콘서트가 1943년 6월 1일로 예정되어 있었으나 오늘로 하루 연기되었다면, 오늘은 하루가 지난 것입니다.
|
# 콘서트가 1943년 6월 1일로 예정되어 있었으나 오늘로 하루 연기되었다면, 오늘은 하루가 지난 것이다.
|
||||||
today = datetime(1943, 6, 1) + relativedelta(days=1)
|
today = datetime(1943, 6, 1) + relativedelta(days=1)
|
||||||
# 열흘 전,
|
# 열흘 전의 날짜는
|
||||||
ten_days_ago = today - relativedelta(days=10)
|
ten_days_ago = today - relativedelta(days=10)
|
||||||
# %m/%d/%Y의 형식으로 반환된 답은
|
# 답을 %m/%d/%Y의 형식으로 하면
|
||||||
ten_days_ago.strftime('%m/%d/%Y')
|
ten_days_ago.strftime('%m/%d/%Y')
|
||||||
# Q: 오늘은 1969년 4월 19일이야. 24시간 후의 날짜를 MM/DD/YYYY 형식으로 반환해줘.
|
# Q: 오늘은 1969년 4월 19일이야. 24시간 후의 날짜를 MM/DD/YYYY 형식으로 알려줘.
|
||||||
# 오늘의 날짜는 4/19/1969 입니다.
|
# 오늘의 날짜는 1969년 4월 19일이다.
|
||||||
today = datetime(1969, 4, 19)
|
today = datetime(1969, 4, 19)
|
||||||
# 24시간 후,
|
# 24시간 후의 날짜는
|
||||||
later = today + relativedelta(hours=24)
|
later = today + relativedelta(hours=24)
|
||||||
# %m/%d/%Y의 형식으로 반환된 답은
|
# 답을 %m/%d/%Y의 형식으로 하면
|
||||||
today.strftime('%m/%d/%Y')
|
today.strftime('%m/%d/%Y')
|
||||||
# Q: Jane은 오늘이 2002년 3월 11일이라고 생각했지만 실제로는 3월 12일이고 하루 뒤야. 24시간 후의 날짜를 MM/DD/YYYY 형식으로 반환해줘.
|
# Q: 영희는 오늘이 2002년 3월 11일이라고 생각했지만 실제로는 다음날인 3월 12일이야. 24시간 후의 날짜를 MM/DD/YYYY 형식으로 알려줘.
|
||||||
# 제인은 오늘 날짜를 3/11/2002 라고 생각했고, 사실 오늘은 3월 12일이면 오늘 날짜는 3/1/2002 입니다.
|
# 영희는 오늘 날짜를 2002년 3월 11일이라고 생각했고, 사실 오늘은 3월 12일이면 오늘 날짜는 2002년 3월 12일이다.
|
||||||
today = datetime(2002, 3, 12)
|
today = datetime(2002, 3, 12)
|
||||||
# 24시간 후,
|
# 24시간 후의 날짜는
|
||||||
later = today + relativedelta(hours=24)
|
later = today + relativedelta(hours=24)
|
||||||
# %m/%d/%Y의 형식으로 반환된 답은
|
# 답을 %m/%d/%Y의 형식으로 하면
|
||||||
later.strftime('%m/%d/%Y')
|
later.strftime('%m/%d/%Y')
|
||||||
# Q: Jane은 2001년 2월 마지막 날 태어났어. 오늘은 Jane의 16번째 생일이야. 어제의 날짜를 MM/DD/YYYY 형식으로 반환해줘.
|
# Q: 영희는 2001년 2월 마지막 날 태어났어. 오늘은 영희의 16번째 생일이야. 어제의 날짜를 MM/DD/YYYY 형식으로 알려줘.
|
||||||
# Jane이 2001년 2월의 마지막 날에 태어났다면 오늘은 16년 후입니다.
|
# 영희가 2001년 2월의 마지막 날에 태어났고 오늘이 영희의 16번째 생일이라면 오늘은 16년 후다.
|
||||||
today = datetime(2001, 2, 28) + relativedelta(years=16)
|
today = datetime(2001, 2, 28) + relativedelta(years=16)
|
||||||
# 어제,
|
# 어제 날짜는
|
||||||
yesterday = today - relativedelta(days=1)
|
yesterday = today - relativedelta(days=1)
|
||||||
# %m/%d/%Y의 형식으로 반환된 답은
|
# 답을 %m/%d/%Y의 형식으로 하면
|
||||||
yesterday.strftime('%m/%d/%Y')
|
yesterday.strftime('%m/%d/%Y')
|
||||||
# Q: {question}
|
# Q: {question}
|
||||||
""".strip() + '\n'
|
""".strip() + '\n'
|
||||||
|
@ -1,41 +1,42 @@
|
|||||||
# 학위가 필요한 직업을 분류한 사례연구
|
# 학위가 필요한 직업을 분류한 사례 연구
|
||||||
|
|
||||||
[Clavié et al., 2023](https://arxiv.org/abs/2303.07142)는 프롬프트 엔지니어링을 적용한 미디엄 스케일의 텍스트 분류 유스케이스 사례연구를 발표했습니다. 분류 작업을 통해서 특정 직업이 대학을 갓 졸업한 사람에게 꼭 맞는 "신입 레벨" 인지, 여러 프롬프트 엔지니어링 테크닉을 사용하여 평가한 뒤 GPT-3.5 (`gpt-3.5-turbo`)를 사용하여 결과를 공유했습니다.
|
[Clavié et al., 2023](https://arxiv.org/abs/2303.07142)는 생산 시스템에 중간 규모 텍스트 분류 사용 사례를 적용한 프롬프트 엔지니어링에 대한 사례 연구를 발표했습니다. 직업이 정말 대학을 갓 졸업한 사람에게 적합한 "입문 수준의 직업"인지 아닌지 분류하는 작업을 하여 일련의 프롬프트 엔지니어링 기술을 평가하고 GPT-3.5 (`gpt-3.5-turbo`)를 이용하여 결과를 보고했습니다.
|
||||||
|
|
||||||
이 연구는 강력한 베이스라인인 DeBERTa-V3를 포함한 여러 다른 모델들을 LLM이 가뿐히 능가했음을 증명합니다. 또한 `gpt-3.5-turbo`가 구 버전의 GPT3 variants의 모든 키 메트릭에서 두각을 나타냈음을 보여주었습니다만, 템플릿에 한정하여 추가 출력 파싱을 필요로 할 만큼 다른 variants보다는 조금 떨어진 성능을 확인할 수 있었습니다.
|
이 연구는 LLM이 DeBERTa-V3의 매우 강력한 기준선을 포함한 다른 모든 테스트된 모델들을 능가했음을 보여줍니다. `gpt-3.5-turbo` 또한 모든 주요 메트릭에서 구 버전의 GPT3 변종보다 눈에 띄게 뛰어난 성능을 보이지만, 템플릿에 대한 적용성이 다른 변종들에 비해 부족하여 추가적인 출력 파싱이 필요합니다.
|
||||||
|
|
||||||
프롬프트 엔지니어링 접근법에서 얻은 주요 결과는 다음과 같습니다:
|
이 연구의 프롬프트 엔지니어링 접근법에서 얻은 주요 결과는 다음과 같습니다.
|
||||||
|
|
||||||
- 전문가의 지식이 필요하지 않은 이러한 단순 작업의 경우, 모든 실험에서 Few-shot CoT 프롬프팅이 Zero-shot 프롬프팅에 비해 상대적으로 낮은 퍼포먼스를 보여주었습니다.
|
- 전문가의 지식이 필요하지 않은 이러한 단순 작업의 경우, 모든 실험에서 퓨샷 생각의 사슬 프롬프팅(Few-shot CoT prompting)이 제로샷 프롬프팅(Zero-shot prompting)에 비해 상대적으로 낮은 성능을 보여주었습니다.
|
||||||
- 프롬프트는 올바른 추론 도출에 엄청난 영향을 미칩니다. 모델에게 직업을 분류하라고 간단하게 명령했을 때에는 65.6의 F1 점수를 얻었으나, 포스트-프롬프트 엔지니어링 모델은 91.7의 F1 점수를 보여주었습니다.
|
- 프롬프트는 올바른 추론 도출에 엄청난 영향을 미칩니다. 모델에게 직업을 분류하라고 단순히 명령했을 때에는 65.6의 F1 점수를 얻었으나, 프롬프트 엔지니어링 된 모델은 91.7의 F1 점수를 보여주었습니다.
|
||||||
- 모델을 템플릿에 강제로 적용하려 한 모든 경우에 성능이 저하되었습니다. (이 방법은 논문 뒤 쪽의 GPT-4를 사용한 초기 테스트에서 사라졌습니다.)
|
- 모델을 템플릿에 강제로 적용하려 한 모든 경우에 성능이 저하되었습니다(이 현상은 논문 후반의 GPT-4를 사용한 초기 테스트에서 사라졌습니다).
|
||||||
- 아주 작은 수정사항이 성능에 엄청난 영향을 미쳤습니다.
|
- 여러 작은 수정사항이 성능에 엄청난 영향을 미쳤습니다.
|
||||||
- 아래 표에서 모든 수정사항에 따른 결과를 확인하세요.
|
- 아래 표에서 테스트 된 모든 수정 사항을 확인할 수 있습니다.
|
||||||
- 적절한 지시를 내리고, 키 포인트를 반복하는 것이 가장 큰 성능 동력으로 나타났습니다.
|
- 적절한 지시를 내리고 요점을 반복하는 것이 가장 큰 성능 동력으로 나타났습니다.
|
||||||
- 모델에게 (사람)이름을 지어주고 불러주는 것은 F1 점수를 증가시켰습니다.
|
- 단순히 모델에게 (사람) 이름을 지어주는 것으로 F1 점수가 0.6 상승했습니다.
|
||||||
|
|
||||||
### 실험에 쓰인 프롬프트 수정사항들
|
### 테스트 된 프롬프트 수정 사항들
|
||||||
|
|
||||||
| 약어 | 설명 |
|
| 약어 | 설명 |
|
||||||
| -------- | --------------------------------------------------------------------------------- |
|
| -------- | --------------------------------------------------------------------------------- |
|
||||||
| Baseline | 채용 공고를 제공하고 갓 졸업한 신입에게 적합한지 묻습니다. |
|
| Baseline | 채용 공고를 제공하고 갓 졸업한 사람에게 적합한지 묻습니다. |
|
||||||
| CoT | 쿼리를 날리기 전에 몇 가지 정확한 예시를 제공합니다. |
|
| CoT | 질의를 하기 전에 정확히 분류된 몇 가지 예시를 제공합니다. |
|
||||||
| Zero-CoT | 모델에게 단계별로 추론한 뒤 정답을 제시하도록 요구합니다. |
|
| Zero-CoT | 모델에게 단계별로 추론하여 정답을 제시하도록 요구합니다. |
|
||||||
| rawinst | 역할 및 작업에 대한 지침을 사용자 메시지에 추가하여 제공합니다. |
|
| rawinst | 역할 및 작업에 대한 지시를 사용자 메시지에 추가함으로써 제공합니다. |
|
||||||
| sysinst | 시스템 메시지로서의 역할과 작업에 대한 지침을 제공합니다. |
|
| sysinst | 역할 및 작업에 대한 지시를 시스템 메시지로서 제공합니다. |
|
||||||
| bothinst | 시스템 메시지로서의 역할과 사용자 메시지로서의 작업을 사용하여 명령을 분할합니다. |
|
| bothinst | 시스템 메시지로서의 역할과 사용자 메시지로서의 작업으로 명령을 분할합니다. |
|
||||||
| mock | 토론 내용을 인식하는 부분을 따라하여 작업 지시를 내립니다. |
|
| mock | 그들을 인정하는 의사 토론을 통해 작업 지시를 제공합니니다. |
|
||||||
| reit | 주요 요소를 반복하여 지시를 보강합니다. |
|
| reit | 요점을 반복하여 지시를 강화합니다. |
|
||||||
| strict | 모델에게 주어진 템플릿을 엄격히 준수하여 답변하도록 요청합니다. |
|
| strict | 모델에게 주어진 템플릿을 엄격히 준수하여 답변하도록 요청합니다. |
|
||||||
| loose | 주어진 템플릿 뒤에 최종 답변만 반환하도록 요청합니다. |
|
| loose | 최종 답변만 주어진 탬플릿을 준수하여 반환하도록 요청합니다. |
|
||||||
| right | 모델에게 올바른 결론에 도달하도록 요청합니다. |
|
| right | 모델에게 올바른 결론에 도달하도록 요청합니다. |
|
||||||
| info | 일반적인 추론 실패를 해결하기 위한 추가 정보를 제공합니다. |
|
| info | 일반적인 추론 실패를 해결하기 위한 추가 정보를 제공합니다. |
|
||||||
| name | 모델에게 이름을 지어주고 대화 시 사용합니다. |
|
| name | 모델에게 대화에서 부를 이름을 제공합니다. |
|
||||||
| pos | 쿼리를 날리기 전 모델에게 긍정적인 피드백을 제공합니다. |
|
| pos | 질의를 하기 전 모델에게 긍정적인 피드백을 제공합니다. |
|
||||||
|
|
||||||
### 위의 프롬프트 수정사항이 성능에 미치는 영향
|
|
||||||
|
|
||||||
| | 정확도 | 리콜 | F1 | 템플릿 고착도 |
|
### 프롬프트 수정 사항이 성능에 미치는 영향
|
||||||
|
|
||||||
|
| | 정확도 | 재현율 | F1 | 템플릿 고착도 |
|
||||||
| --------------------------------------- | -------- | ------ | -------- | ------------- |
|
| --------------------------------------- | -------- | ------ | -------- | ------------- |
|
||||||
| _Baseline_ | _61.2_ | _70.6_ | _65.6_ | _79%_ |
|
| _Baseline_ | _61.2_ | _70.6_ | _65.6_ | _79%_ |
|
||||||
| _CoT_ | _72.6_ | _85.1_ | _78.4_ | _87%_ |
|
| _CoT_ | _72.6_ | _85.1_ | _78.4_ | _87%_ |
|
||||||
@ -52,5 +53,4 @@
|
|||||||
| +bothinst+mock+reit+right+info+name | 85.7 | 96.8 | 90.9 | 79% |
|
| +bothinst+mock+reit+right+info+name | 85.7 | 96.8 | 90.9 | 79% |
|
||||||
| +bothinst+mock+reit+right+info+name+pos | **86.9** | **97** | **91.7** | 81% |
|
| +bothinst+mock+reit+right+info+name+pos | **86.9** | **97** | **91.7** | 81% |
|
||||||
|
|
||||||
템플릿 고착도란 요구한 형식으로 모델이 응답한 빈도를 나타냅니다.
|
템플릿 고착도란 모델이 요구받은 형식으로 응답한 빈도를 나타냅니다.
|
||||||
Template stickiness refers to how frequently the model answers in the desired format.
|
|
||||||
|
Loading…
Reference in New Issue
Block a user