# 추론 모델 프롬프팅관련 Openai 공식 조언

최근 추론 모델 프롬프팅에 대한 문의가 꽤 있어 간단하게 OpenAI의 공식 문서 토대로 정리해 보았습니다. 

출처: [https://platform.openai.com/docs/guides/reasoning-best-practices](https://platform.openai.com/docs/guides/reasoning-best-practices) 

[https://platform.openai.com/docs/guides/reasoning-best-practices](https://platform.openai.com/docs/guides/reasoning-best-practices)

---

## 추론 모델(reasoning models)을 효과적으로 프롬프팅하는 방법

이러한 모델들은 간단하고 직접적인 프롬프트가 가장 우수한 성능을 보인다. 일부 프롬프트 엔지니어링 기법(예: 모델에 "단계별로 생각하라"고 지시하는 것)은 성능 향상을 가져오지 못하거나 오히려 방해가 될 수 있다. 아래의 모범 사례를 참고하거나 프롬프트 예시로 시작하라.

- **개발자 메시지는 새로운 시스템 메시지이다**: o1-2024-12-17 버전부터, 추론 모델은 시스템 메시지 대신 개발자 메시지를 지원하며, 모델 명세서에서 설명하는 명령 체계(chain of command) 동작에 부합한다.

- **프롬프트를 간단하고 직접적으로 유지하라**: 모델은 짧고 명료한 지시 사항을 이해하고 응답하는 데 뛰어난 성능을 보인다.

- **생각 흐름(chain-of-thought) 프롬프팅을 피하라**: 이 모델은 내부적으로 추론 과정을 수행하기 때문에, ["단계별로 생각하라"](https://VP) 또는 ["추론을 설명하라"](https://VP)와 같은 프롬프팅은 불필요하다.

- **[명확성을 위한 구분자(delimiters)](https://NP)****를 사용하라**: 모델이 입력(input)의 구성 요소를 명확하게 해석하도록, 마크다운(markdown), XML 태그(tag), [구획(section) 제목](https://NP) 등과 같은 [구분자](https://NP)를 사용하여 입력의 서로 다른 부분을 명확히 표시하라.

- **[제로샷(zero-shot)](https://NP)**** 방식부터 시도하고, 필요하면 ****[퓨샷(few-shot)](https://NP)****을 사용하라**: 추론 모델은 종종 좋은 결과를 내기 위해 예시가 없는(zero-shot) 프롬프트를 사용하는 것으로 충분하다. 따라서 먼저 예시 없이 프롬프팅을 시도하라. 보다 복잡한 출력 요구사항이 있다면, 입력과 원하는 출력의 예시 몇 가지를 프롬프트에 포함하면 도움이 될 수 있다. 이때 예시가 지시사항과 아주 밀접하게 일치하도록 주의하라. 예시와 지시사항이 불일치하면 성능이 저하될 수 있다.

- **구체적인 지침(guidelines)을 제시하라**: 모델의 응답을 명시적으로 제약하고자 하는 사항이 있으면(예: "500달러 이하의 예산을 갖는 해결책을 제안하라"), 프롬프트에 이러한 제약 사항을 명확히 명시하라.

- **최종 목표(end goal)에 매우 구체적이 되어라**: 지시사항에서 [성공적인 응답](https://NP)을 얻기 위한 [구체적인 매개변수(parameters)](https://NP)를 제시하고, 모델이 성공 기준(success criteria)을 만족할 때까지 반복하여 추론하도록 명확히 지시하라.

- **마크다운(Markdown) 형식**: o1-2024-12-17 버전부터, API에서의 추론 모델은 기본적으로 마크다운 형식(markdown formatting)을 사용하여 응답하지 않는다. 모델이 마크다운 형식을 사용하여 응답하기를 원한다면, 개발자 메시지(developer message)의 첫 번째 줄에 `"Formatting re-enabled"`라는 문자열을 포함하라.

For the site tree, see the [root Markdown](https://slashpage.com/velugadoc.md).
