티스토리 뷰

프롬프트 엔지니어링이란?

언어 모델로부터 더 효과적인 결과와 답변을 얻기 위해 질문이나 명령을 설계하고 최적화하는 기술입니다.

사용자가 원하는 작업을 정의하는, 명확하고 효과적인 프롬프트를 생성함으로써 언어 모델로 하여금 원하는 방향으로 진행되도록 유도할 수 있습니다. 

 

예를 들어, 특정 주제에 대한 정보를 얻고 싶다면 해당 주제에 대한 명확한 질문을 구성하거나, 원하는 작업을 지시하는 효과적인 명령을 생성하여 언어 모델에 전달할 수 있습니다. 이로써 모델은 주어진 프롬프트에 따라 적절한 결과를 생성하게 됩니다.

 

Prompt Engineering은 사용자가 언어 모델과의 상호 작용에서 더 나은 품질의 결과를 얻기 위한 중요한 전략 중 하나입니다.

프롬프트를 적절히 설계하고 최적화함으로써 모델이 명확한 지시에 따라 원하는 작업을 수행하고 특정 정보를 생성할 수 있게 됩니다.

 

LLM은 무엇인가?

Large Language Model, 우리말로 대규모 언어 모델?...   

언어 모델은 컴퓨터가 인간의 언어를 이해하고 생성하는 데 사용되는 모델입니다. LLM은 대량의 텍스트 데이터를 학습하여 인간과 유사한 언어 이해 및 생성 능력을 갖춘 모델을 지칭합니다.  ChatGPT는 LLM의 일종으로 사용자의 질문에 대답하고, 정보를 제공하며, 대화를 수행하는 등의 작업을 수행하는 데 사용됩니다.

 

LLM의 학습 과정

  1. 데이터 수집:
    • 대규모의 텍스트 데이터를 수집합니다. 이 데이터에는 인터넷에서 크롤링한 웹 페이지, 문서, 책 등 다양한 출처의 텍스트가 포함됩니다.
  2. 토큰화 (Tokenization):
    • 수집한 텍스트 데이터를 작은 단위로 나누어 처리하는 과정입니다. 이 작은 단위를 토큰(token)이라고 하며, 예를 들면 단어나 부분 단어가 될 수 있습니다.
    • 토큰화의 예
      원본 문장 : 나는 고양이를 좋아해
      토큰화된 문장 : [나는] [고양이를] [좋아해]
      여기서 각 단어가 하나의 토큰으로 간주되며, 이 토큰들은 모델이 이해하고 처리할 수 있는 최소 단위가 됩니다.
    • 토큰은 단어일 수도 있고, 단어의 일부일 수도 있습니다. 이 작은 단위로 나누는 과정이 토큰화입니다.
  3. 언어 모델 학습:
    • 토큰화된 데이터를 이용하여 언어 모델을 학습합니다. 학습은 신경망을 사용하며, 각 토큰은 모델의 입력으로 사용되고 다음에 나올 토큰을 예측하는 방식으로 진행됩니다.
  4. 신경망 구조:
    • 언어 모델은 주로 Transformer 아키텍처를 기반으로 합니다. Transformer는 언어의 문맥을 이해하고 관련 정보를 기억하는 데 강점이 있는 구조입니다.
  5. 사전 훈련 (Pre-training):
    • 초기에는 대규모 데이터로 사전 훈련되며, 언어의 일반적인 패턴과 구조를 학습합니다. 이 단계에서는 특정 작업이나 질문에 대한 명확한 지시 없이도 문맥을 이해하고 다음 단어를 예측하는 능력을 갖춥니다.
  6. 세부 작업 튜닝 (Fine-tuning):
    • 특정 작업이나 응용 분야에 맞게 추가로 훈련시키는 과정입니다. 세부 작업 튜닝을 통해 모델은 특정 도메인에서 뛰어난 성능을 발휘할 수 있습니다.

데이터 수집    >    토큰화    >    언어 모델 학습    >    신경망 구조    >    사전 훈련    >    세부 작업 튜닝의 순으로 LLM 학습이 이루어 진하고 합니다.   

 

다시 Prompt Engineering으로 돌아가

Prompt Engineering의 일반적인 방법론은 다음과 같습니다.

  1. 시험 및 오류 (Trial and Error):
    • 여러 프롬프트를 시도하고 그 결과를 분석함으로써 효과적인 프롬프트를 찾는 방법입니다.
    • 경험적으로 효과적인 프롬프트를 찾기 위해 실험을 반복하는 것이 중요합니다.
  2. 다중 프롬프트 조합:
    • 여러 프롬프트를 조합하여 사용함으로써 모델이 다양한 측면에서 정보를 얻도록 하는 방법입니다.
    • 각각의 프롬프트가 서로 보완되어 원하는 결과를 도출하도록 설계될 수 있습니다.
  3. 프롬프트 템플릿 활용:
    • 특정 작업이나 목적에 맞는 템플릿을 사용하여 프롬프트를 생성하는 방법입니다.
    • 템플릿은 사용자가 원하는 목표에 따라 구성되며, 이를 통해 모델이 명확한 지시를 받도록 할 수 있습니다.
  4. 프롬프트 튜닝과 정제:
    • 초기에 생성한 프롬프트를 기반으로 사용자 피드백을 수집하고, 이를 토대로 프롬프트를 조정하는 방법입니다.
    • 사용자 피드백을 통해 모델의 동작을 더욱 개선하고 사용자의 요구에 더 잘 부합하도록 할 수 있습니다.
  5. 도메인 특화 프롬프트:
    • 특정 도메인이나 작업에 특화된 프롬프트를 사용하여 모델을 미세 조정하는 방법입니다.
    • 도메인 특화 프롬프트는 모델이 해당 분야에서 더 정확하고 유용한 결과를 생성하도록 도와줍니다.

이러한 방법론들은 서로 결합되거나 수정되어 다양한 상황에 맞게 적용될 수 있습니다. 프롬프트 엔지니어링은 상황에 따라 다르게 작동할 수 있으며, 특정 작업이나 목표에 따라 최적의 프롬프트를 찾는 것이 중요합니다.

 

Prompt Engineering을 위한 참고 자료

  1. OpenAI 공식 문서:
    • OpenAI 공식 웹사이트에서는 GPT-3 및 prompt engineering에 대한 공식 문서와 튜토리얼을 찾을 수 있습니다. OpenAI는 자체 플랫폼을 제공하며, API를 통해 GPT-3를 활용할 수 있습니다.
  2. AI 커뮤니티 및 포럼:
  3. 온라인 강의와 코스:
    • Coursera, edX, Udacity 등의 온라인 교육 플랫폼에서는 기계 학습, 자연어 처리, 딥러닝과 같은 주제로 강의와 코스를 제공합니다. 예를 들면, Stanford University의 CS224N: Natural Language Processing with Deep Learning과 같은 코스가 유용할 수 있습니다.
  4. 프롬프트 엔지니어링 논문과 연구:
    • 관련 논문과 연구를 통해 최신의 prompt engineering 기술과 방법론을 파악할 수 있습니다. arXiv나 Google Scholar에서 논문을 찾아보세요.
  5. GitHub 리포지토리:

GitHub에서는 prompt engineering과 관련된 코드와 프로젝트를 찾을 수 있습니다. 검색을 통해 다양한 예제 코드와 프로젝트를 살펴볼 수 있습니다.

'AI Prompt Engineering 생성 문서' 카테고리의 다른 글

MSCI  (0) 2024.01.30
센서뷰  (0) 2024.01.24