프롬프트, 대형 언어 모델과 대화하는 첫걸음

프롬프트, 대형 언어 모델과 대화하는 첫걸음

출처: 공식문서

프롬프트(prompt)는 대형 언어 모델(LLM)과 소통하는 가장 기본적인 수단이에요. 우리가 모델에게 던지는 입력이나 질문이 곧 프롬프트이고, 이걸 어떻게 구성하느냐에 따라 모델이 돌려주는 답이 크게 달라져요. 그래서 좋은 프롬프트를 만드는 일은 단순히 문장을 쓰는 일이 아니라, 모델의 행동을 원하는 방향으로 이끄는 설계 작업이라고 볼 수 있어요.

프롬프트의 미묘함

LLM으로 원하는 결과를 얻으려면 프롬프트를 효과적으로 설계하는 게 핵심이에요. 이걸 프롬프트 엔지니어링(prompt engineering), 또는 프롬프트 디자인이라고 부르는데, 새롭게 떠오르는 분야인 만큼 창의력과 세심함이 필요해요. 어떤 단어와 구절, 기호, 형식을 고르느냐가 모델이 만들어내는 텍스트의 품질과 관련성을 좌우하거든요.

ChatGPT를 써보신 분이라면 입력에 따라 모델의 행동이 얼마나 극적으로 달라지는지 이미 느껴보셨을 거예요. 예를 들어 아래 두 프롬프트는 아주 다른 결과를 만들어요.

Please give me the history of humans.
Please give me the history of humans in 3 sentences.

첫 번째 프롬프트는 긴 보고서를 만들어내고, 두 번째 프롬프트는 간결한 답변을 돌려줘요. 만약 공간이 좁은 UI를 만든다면 두 번째 프롬프트가 우리 요구에 훨씬 잘 맞겠죠. 프롬프트에 세부 내용을 더 추가하면 행동을 더 정교하게 다듬을 수 있어요. 다만 지나치게 많이 넣으면 오히려 관련 없는 결과가 나올 수도 있으니, 구체성(specificity)과 관련성(relevance) 사이의 균형을 잡는 게 프롬프트 엔지니어의 숙제예요.

LLM을 직접 다룰 때는 프롬프트 외에도 모델의 행동을 조절하는 다른 장치들을 쓸 수 있어요. 예를 들어 temperature 파라미터로 출력의 무작위성을 조절하거나, top-k, top-p, frequency penalty, presence penalty 같은 파라미터로도 모델의 행동을 바꿀 수 있어요.

프롬프트 엔지니어링, 새로운 직업

조절할 수 있는 요소가 이렇게 많다 보니 프롬프트 엔지니어링은 LLM과 함께 일하는 사람이라면 반드시 갖춰야 할 중요한 기술이 됐어요. 더구나 점점 많은 조직이 LLM을 도입해 업무를 자동화하고 생산성을 높이면서, 이 기술에 대한 수요도 함께 커지고 있어요. 좋은 프롬프트 엔지니어는 원하는 출력을 만들어내는 프롬프트를 설계해 조직이 LLM의 잠재력을 최대한 끌어내도록 도울 수 있어요.

Semantic Kernel과 함께 훌륭한 프롬프트 엔지니어 되기

Semantic Kernel은 프롬프트 엔지니어링에 유용한 도구예요. 공통된 인터페이스 덕분에 서로 다른 여러 모델에서 프롬프트와 파라미터를 실험해 볼 수 있고, 모델과 파라미터별 출력을 빠르게 비교하면서 원하는 결과가 나오도록 프롬프트를 반복해서 다듬을 수 있어요.

프롬프트 엔지니어링에 익숙해지면, 이제 그 기술을 실제 시나리오에 적용할 차례예요. 프롬프트를 네이티브 함수(native function)와 커넥터(connector)와 결합하면 강력한 AI 기반 애플리케이션을 만들 수 있어요.

마지막으로 Semantic Kernel은 Visual Studio Code와 깊게 통합되어 있어서, 기존 개발 프로세스에 프롬프트 엔지니어링을 자연스럽게 녹여 넣기도 쉬워요. 아래처럼 말이죠.

  • 선호하는 코드 편집기에서 바로 프롬프트를 만들 수 있어요.
  • 기존 테스트 프레임워크를 이용해 테스트를 작성할 수 있어요.
  • 기존 CI/CD 파이프라인으로 운영 환경에 배포할 수 있어요.

프롬프트 엔지니어링을 위한 추가 팁

프롬프트 엔지니어링에 능숙해지려면 기술 지식과 창의력, 실험이 함께 필요해요. 뛰어난 프롬프트 엔지니어가 되기 위한 몇 가지 팁을 소개할게요.

  • LLM을 이해해요: LLM이 어떻게 동작하는지, 아키텍처와 학습 과정, 그리고 행동 방식을 깊이 이해해요.
  • 도메인 지식: 원하는 출력과 과업에 맞는 프롬프트를 설계하려면 도메인 특화 지식을 쌓아요.
  • 실험: 다양한 파라미터와 설정을 탐색하며 특정 과업이나 도메인에 맞춰 프롬프트를 다듬고 모델의 행동을 최적화해요.
  • 피드백과 반복: 모델이 만들어낸 출력을 끊임없이 분석하고, 사용자 피드백을 바탕으로 프롬프트를 반복 수정해 품질과 관련성을 높여요.
  • 최신 동향 쫓기: 프롬프트 엔지니어링의 기법과 연구, 모범 사례의 최신 흐름을 챙겨서 실력을 키우고 앞서 나가요.

프롬프트 엔지니어링은 역동적이고 계속 진화하는 분야예요. 숙련된 프롬프트 엔지니어는 LLM의 능력을 효과적으로 활용하는 데 중요한 역할을 해요.

더 알아보기 (Learn more)