1. 프롬프트 엔지니어링이란 무엇인가? [0]

thumbnail AI로부터 완벽한 답변을 얻기 위해 질문을 명확하고 구체적으로 작성하는 기술인 프롬프트 엔지니어링은 AI와의 상호작용을 최적화하는 핵심 열쇠이다.

1.1. 프롬프트 엔지니어링의 정의와 필요성 [10]

  1. 프롬프트 엔지니어링은 인공지능(AI)의 발전으로 인해 새롭게 생긴 직업으로, 인간과 AI 간의 상호작용을 최적화하기 위해 프롬프트를 구조화하여 작성, 수정, 최적화하는 과정을 포함한다. [11]
  2. 프롬프트 엔지니어는 AI의 발전과 함께 프롬프트의 효과성을 지속적으로 모니터링하고, 프롬프트 라이브러리를 최신 상태로 유지하며, 해당 분야의 리더가 되어야 한다. [14]
  3. AI는 스스로 생각하는 능력이 없는 기계에 의한 인간 지능 프로세스의 시뮬레이션이며, 우리가 흔히 AI라고 부르는 것은 머신러닝을 의미하는 경우가 많다. [17]
    1. 머신러닝은 대량의 훈련 데이터를 분석하여 상관관계와 패턴을 찾고, 이를 바탕으로 미래의 결과를 예측하는 방식으로 작동한다. [20]
  4. AI의 급격한 성장으로 인해 개발자조차 AI와 그 결과물을 통제하는 데 어려움을 겪고 있으며, 이로 인해 프롬프트 엔지니어링의 중요성이 부각된다. [29]
  5. 프롬프트 엔지니어링은 AI 챗봇에게 "4 더하기 4는 무엇인가?"와 같이 명확한 질문을 했을 때 "8"이라는 명확한 답변을 기대하는 것과 달리, 학습 목적 등 다양한 상황에서 AI의 답변이 프롬프트에 따라 크게 달라질 수 있음을 보여준다. [31]

1.2. 언어학과 언어 모델 [63]

  1. 언어학은 언어 자체를 연구하는 학문으로, 음성학, 음운론, 형태론, 통사론, 의미론, 화용론, 역사 언어학, 사회 언어학, 계산 언어학, 생리 언어학 등 다양한 분야를 포함한다. [63]
  2. 언어학은 프롬프트 엔지니어링의 핵심으로, 언어의 뉘앙스와 맥락에 따른 사용법을 이해하는 것이 효과적인 프롬프트 작성을 위해 필수적이다. [76]
    1. 보편적으로 사용되는 문법과 언어 구조를 이해하면 AI 시스템으로부터 가장 정확한 결과를 얻을 수 있으며, 이는 AI가 학습한 방대한 데이터가 주로 표준 문법과 언어 구조를 사용하기 때문이다. [78]
  3. 언어 모델은 방대한 텍스트 데이터를 학습하여 인간의 언어를 이해하고 생성하는 컴퓨터 프로그램으로, 마치 디지털 세계의 마법사처럼 인간과 유사한 텍스트를 생성할 수 있다. [85]
    1. 언어 모델은 책, 기사, 웹사이트 등 다양한 텍스트 자원을 학습하여 대화, 문법, 스타일 등 언어 사용에 대한 전문성을 갖춘다. [87]
    2. 문장이 주어졌을 때, 언어 모델은 단어의 순서, 의미, 결합 방식을 분석하여 학습한 언어 이해를 바탕으로 문장의 예측 또는 연속을 생성한다. [90]
  4. 언어 모델은 스마트폰의 가상 비서, 고객 서비스 챗봇, 창작 글쓰기 등 다양한 분야에서 정보를 찾고, 제안하며, 콘텐츠를 생성하는 데 활용된다. [98]
  5. 언어 모델은 인간의 창의성과 알고리즘의 힘이 결합된 결과물이다. [101]

1.3. 언어 모델의 역사 [102]

  1. 최초의 AI 프로그램인 Eliza는 1960년대 MIT에서 개발되었으며, 인간과의 대화를 시뮬레이션하고 로저스 심리치료사처럼 경청하며 질문하는 방식으로 작동했다. [103]
    1. Eliza는 미리 정의된 패턴과 그에 따른 응답을 활용하는 패턴 매칭 기술을 사용했으며, 입력된 단어를 기호로 변환하여 패턴을 찾고 질문이나 진술로 응답했다. [107]
    2. Eliza는 실제 이해 없이 패턴 매칭과 프로그래밍 트릭을 통해 대화하는 듯한 환상을 만들어냈지만, 사람들은 마치 기계와 대화하는 것이 아니라 디지털 친구와 이야기하는 것처럼 느끼며 매료되었다. [116]
    3. Eliza의 개발자 Joseph Weizenbaum은 프로그램이 인간적인 감정을 부여받는 것에 놀라움을 표했으며, 이는 인간과 기계 간의 소통에 대한 연구를 촉발했다. [122]
  2. 1970년대에는 간단한 명령을 이해하고 블록으로 이루어진 가상 세계와 상호작용하는 Shudlu 프로그램이 등장했으나, 이는 언어 모델이라기보다는 기계가 인간의 언어를 이해하는 아이디어의 기초를 마련했다. [127]
  3. 진정한 언어 모델은 2010년경 딥러닝과 신경망의 발전과 함께 시작되었으며, 2018년 OpenAI에서 개발한 GPT (Generative Pre-trained Transformer)가 등장했다. [130]
    1. GPT-1은 방대한 텍스트 데이터를 학습하여 지식을 습득했으며, 이후 2019년 GPT-2, 2020년 GPT-3가 출시되었다. [133]
    2. GPT-3는 1750억 개 이상의 매개변수를 가진 거대한 언어 모델로, 이해, 응답, 창의적인 글쓰기 능력에서 뛰어난 성능을 보여주며 AI 분야의 전환점을 마련했다. [137]
  4. 현재 GPT-4, Google의 BERT 등 더욱 발전된 언어 모델들이 등장하고 있으며, 프롬프트 엔지니어링을 통해 이러한 데이터를 활용하는 방법을 배우는 것은 현명한 선택이다. [139]

1.4. 프롬프트 엔지니어링 마인드셋 [142]

  1. 프롬프트 엔지니어링은 단순히 한두 문장을 작성하는 쉬운 일이 아니라, 효과적인 프롬프트를 만들기 위해서는 다양한 요소를 고려해야 한다. [210]
  2. 프롬프트 엔지니어링 마인드셋은 마치 구글 검색 실력과 같이, 시간을 낭비하지 않고 원하는 결과를 얻기 위해 직관적으로 무엇을 입력해야 할지 아는 것과 같다. [145]
    1. Mahail Eric은 프롬프트 작성을 효과적인 구글 검색 설계에 비유하며, 검색 엔진에 쿼리를 작성하는 데에도 더 좋고 나쁜 방법이 존재한다고 말한다. [148]
  3. 프롬프트 엔지니어링을 통해 AI와 효율적으로 소통하는 것은 시간과 리소스(토큰)를 절약하는 데 중요하다. [228]

2. 프롬프트 엔지니어링의 핵심 기법 및 모범 사례 [209]

thumbnail 효과적인 프롬프트 작성을 위해 명확한 지시, 페르소나 채택, 반복적 프롬프트 사용, 결과 유도 질문 피하기 등의 기법을 활용한다.

2.1. 명확한 지시와 구체적인 정보 제공 [210]

  1. 프롬프트 작성 시 명확한 지시와 상세한 정보를 포함하는 것이 중요하다. [214]
    1. "언제 선거가 있나요?"와 같이 모호한 질문은 AI가 어떤 선거를 의미하는지 추측하게 만들어 시간 낭비와 불필요한 질문을 유발할 수 있다. [223]
    2. 대신 "폴란드의 다음 대통령 선거는 언제인가요?"와 같이 구체적으로 질문하면 AI가 정확한 정보를 제공하여 시간과 리소스(토큰)를 절약할 수 있다. [225]
  2. 코드를 작성할 때도 마찬가지로, "데이터에서 나이를 필터링하는 코드를 작성해 줘"와 같이 모호하게 요청하면 원하는 프로그래밍 언어나 데이터 형식이 아닌 결과가 나올 수 있다. [231]
    1. "객체 배열을 받아 나이 속성의 값을 필터링하여 새 배열에 넣는 자바스크립트 함수를 작성해 줘. 각 코드 조각이 무엇을 하는지 설명해 줘."와 같이 구체적으로 요청하면 원하는 결과와 설명을 얻을 수 있다. [238]
    2. 이처럼 데이터 형식을 명시하고 코드 설명을 요청하는 것은 AI가 더 정확하고 유용한 답변을 제공하도록 돕는다. [241]
  3. 에세이 요약을 요청할 때도 구체적인 형식을 지정하는 것이 중요하다. [248]
    1. 단순히 "이 에세이는 무엇에 관한 것인가?"라고 질문하면 에세이 길이와 유사한 상세한 요약이 나올 수 있다. [249]
    2. "이 에세이에 대해 설명하되, 각 항목은 10단어 이하의 글머리 기호로 작성하고 짧은 결론을 포함해 줘."와 같이 구체적으로 요청하면 간결하고 원하는 형식의 요약을 얻을 수 있다. [260]

2.2. 페르소나 채택 및 형식 지정 [270]

  1. 프롬프트 작성 시 특정 캐릭터를 설정하여 AI가 해당 페르소나에 맞춰 응답하도록 요청하는 페르소나 채택 기법은 결과물의 관련성, 유용성, 일관성을 높이는 데 도움이 된다. [271]
    1. 예를 들어, "자매의 고등학교 졸업을 축하하는 시를 써 줘"라고 요청하는 것보다, "25세의 뛰어난 작가인 헬레나의 입장에서, 21세기 시인 루피 카우르와 유사한 스타일로 18세 여동생의 고등학교 졸업을 축하하는 시를 써 줘. 이 시는 가족과 가까운 친구들 앞에서 읽힐 거야."와 같이 구체적인 페르소나와 스타일을 지정하면 훨씬 개인적이고 높은 품질의 시를 얻을 수 있다. [287]
  2. 프롬프트에서 원하는 결과물의 형식을 명확히 지정하는 것은 매우 중요하다. [305]
    1. 단어 수 제한, 글머리 기호 목록, 상세 설명, 체크리스트 등 다양한 형식을 지정할 수 있다. [306]
    2. 예를 들어, "체크리스트를 만들어 줘"라고 요청하면 AI는 원하는 형식의 체크리스트를 생성해 준다. [310]

2.3. 반복적 프롬프트 및 결과 유도 질문 피하기 [215]

  1. 반복적 프롬프트는 다단계 질문이나 첫 번째 응답이 불충분할 경우, 후속 질문을 통해 모델이 더 자세히 설명하거나 보완하도록 유도하는 기법이다. [215]
  2. 프롬프트가 AI에게 기대하는 답변을 암시하여 편향된 응답을 유도하지 않도록 주의해야 한다. [216]
  3. 광범위한 주제에 대해 질문할 때는 범위를 좁히거나 세분화하여 더 집중된 답변을 얻는 것이 좋다. [218]

2.4. 제로샷 및 퓨샷 프롬프팅 [315]

  1. 제로샷 프롬프팅은 모델이 특정 작업에 대한 명시적인 훈련 예시 없이도 사전 훈련된 이해를 활용하여 작업을 수행하는 방식이다. [317]
    1. 예를 들어, "미국에서 크리스마스는 언제인가?"와 같은 질문은 제로샷 프롬프팅의 예시로, AI는 별도의 예시 없이도 이미 학습된 데이터를 바탕으로 답변할 수 있다. [320]
  2. 퓨샷 프롬프팅은 모델에게 몇 가지 작업 예시를 제공하여 추가 훈련 없이 모델의 성능을 향상시키는 방식이다. [327]
    1. 예를 들어, AI가 "아니아의 좋아하는 음식은 무엇인가?"라는 질문에 답하지 못할 경우, "아니아의 좋아하는 음식은 버거, 감자튀김, 피자야."와 같이 예시 데이터를 제공하면, "이번 주말 두바이에서 아니아를 데려갈 만한 식당을 추천해 줘."와 같은 후속 질문에 더 정확한 답변을 얻을 수 있다. [333]

2.5. AI 환각 (Hallucinations) [344]

  1. AI 환각은 AI 모델이 데이터를 잘못 해석하여 비정상적인 출력을 생성하는 현상을 의미한다. [346]
    1. 이는 AI가 학습한 내용을 바탕으로 새로운 데이터를 해석하는 과정에서, 때로는 창의적이라고 볼 수 있는 잘못된 연결을 만들기 때문에 발생한다. [354]
  2. AI 환각은 텍스트 모델에서도 발생할 수 있으며, 예를 들어 역사적 인물에 대한 질문에 AI가 답을 모르는 경우 부정확한 정보를 만들어낼 수 있다. [362]

2.6. 벡터 및 텍스트 임베딩 [364]

  1. 텍스트 임베딩은 텍스트 정보를 알고리즘, 특히 딥러닝 모델이 쉽게 처리할 수 있는 형식으로 표현하는 기술이다. [367]
    1. 프롬프트 엔지니어링에서 LLM 임베딩은 프롬프트 텍스트를 의미론적 정보를 포착하는 고차원 벡터로 변환하는 것을 포함한다. [368]
  2. 컴퓨터는 단어의 의미론적 유사성보다는 사전 순서대로 단어를 비교하는 경향이 있어, "food"라는 단어에 대해 "foot"과 같은 단어를 반환할 수 있다. [374]
    1. 텍스트 임베딩은 이러한 단어의 의미, 즉 의미론적 의미를 포착하여 "burger"나 "pizza"와 같이 "food"와 의미적으로 유사한 단어를 찾을 수 있도록 한다. [377]
  3. OpenAI의 create embedding API를 사용하여 단어나 문장의 텍스트 임베딩을 생성할 수 있으며, 이를 통해 유사한 텍스트를 비교하고 찾을 수 있다. [382]