Skip to content

Latest commit

 

History

History
89 lines (52 loc) · 5.3 KB

readBook.md

File metadata and controls

89 lines (52 loc) · 5.3 KB

최고의 프롬프트 엔지니어링 강의를 읽고

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

프롬프트 엔지니어링은 프롬프트를 통해 사용자와 소통하는 방식을 말합니다. 프롬프트는 사용자에게 입력을 요청하거나, 정보를 제공하는 등의 역할을 합니다.

소프트웨어의 진화과정

  • 소프트웨어 1.0
    • 프로그래머가 직접 작성한 '코드'를 기반으로 하고 있으며 파이썬, 자바, C++ 등의 언어로 작성한 프로그램
  • 소프트웨어 2.0
    • 데이터를 학습시킨 머신러닝 모델을 만들고, 이 모델을 통해 결과를 도출하는 방식
  • 소프트웨어 3.0
    • 머신러닝 모델을 프롬프트로 제어하는 것 (e.g. ChatGPT)

LLM(Large Language Model)

대규모 언어 모델을 의미한다. 이 모델은 인터넷상에서 축적된 방대한 데이터를 학습하여 인간처럼 텍스트를 생성하고 이해할 수 있는 인공지능(머신러닝) 프로그램.

인트럭션 튜닝

명령이나 지시 형태로 표현된 텍스트를 이해한 뒤 해당 작업을 수행하는 것. 대량의 텍스트를 학습한 기본 모델을 만든 후 지시와 결과물의 쌍으로 된 인스트럭트 데이터를 학습시켜서 튜닝한다.

RLHF(Reinforcement Learning from Human Feedback)

GPT가 생성한 결과를 사람이 평가해서 점수를 주거나 결과를 수정하고, 이후 사람이 평가한 내용을 바탕으로 스스로 다시 학습하도록 만드는 기술

멀티모달

문맥 이해 능력을 극대화 시킨 기술. 이는 이미지와 소리, 텍스트 등과 같이 서로 다른 형태의 데이터를 동시에 학습시킴으로써 LLM이 더 풍부한 이해 능력을 갖게 되었다는 것을 의미. 예를 들어 고양이 사진을 보고 표정을 설명한다거나 우는 아이 사진을 보고 그 이유를 설명하는 등의 작업을 수행할 수 있다.

코파일럿

깃허브 코파일럿은 거의 처음 LLM을 상업적으로 이용한 제품. 코드 생성이나 주석 생성, 그리고 테스트 코드를 생성하는 과정을 도와준다. 나 역시도 필요한 코드를 작성할 때 도움을 얻어본 경험이 있다.

그렇다면 기존의 머신러닝 대신 프롬프트 엔지니어링으로 모두 대체하면 되는 걸까?

그렇지 않다. 다음과 같이 모델링이나 파인튜닝이 필요한 경우는 계속해서 존재할 것이다.

  • 숫자를 예측하는 선형 회귀 문제
  • 대량의 로그성 데이터의 실시간 처리
  • 특수 목적의 매우 높은 정밀도를 요구하는 문제
  • 데이터의 최신성이 중요하지 않은 경우
  • 데이터 보안이 매우 중요한 경우

취업 포털 원티드의 경우 지원자의 합격 점수 예측, 연봉 예측에 파인튜닝한 머신러닝 모델을 사용하고 있다.

와닿은 말 AI is not going to take your job, The person who uses AI will take your job 중요한 것은 사고방식의 전환 새로운 기술이 나타나면 그에 맞는 비즈니스 모델이 반드시 필요

프롬프트 엔지니어링을 잘하는 방법

프로그래밍 언어로 코딩할 때는 정해진 문법을 정확하게 따르기만 하면 되지만, AI에게 대화를 할 때에는 정해진 문법이 없기에 질문을 잘할수록 좋은 대답을 얻는다

프롬프트 엔지니어링의 가장 대표적인 다섯 가지 방법

  1. 제로샷 프롬프팅

LLM에게 아무런 데이터나 예시를 주지 않고 바로 특정 작업을 수행하도록 지시하는 것

  1. 원샷 러닝

LLM에게 명령을 내릴 때 실행 방법에 대한 예시 한 개를 동시에 제공

  1. 퓨샷 러닝

LLM에게 명령을 내릴 때 2~3개부터 수십 개 정도의 예시를 함께 제공

  1. CoT(Chain of Thought)

'생각 사슬'이라고 부르는 이 방법은 마치 복잡한 수학 문제를 풀기 위해 문제를 쪼개어 단계적으로 푸는 것과 유사하다. LLM에게 문제 해결 과정에서 따라야 할 생각의 단계나 논리적 순서를 제시하면 LLM은 이 사고 과정을 따라 문제를 분석하고 각 단계를 거치면서 최종 해답에 도달한다. 예를 들어 복잡한 수학 문제를 해결하는 경우 바로 정답을 출력하는 대신 문제 해결 과정을 단계적으로 생각한 다음 필요한 계산을 수행할 수 있도록 문제 풀이 방법을 예시로 제공

  1. 제로샷 CoT

CoT와 비슷한 방식이지만 문제 해결 과정에서 따라야 할 생각의 단계나 논리적 순서 등의 가이드는 주지 않는다. 그 대신 해결할 문제를 주고 그저 천천히 생각해 보라는 식으로만 지시한다. 그럼 LLM은 스스로 문제를 분석하고 사고 과정을 단계적으로 작성해 가면서 자신의 사고 과정에 따라 해답을 도출한다.

기본적인 프롬프트 구성

  1. 답변을 위해 필요한 적절한 컨텍스트 제공
  2. 원하는 결과 추출을 위한 프롬프트 작성
  3. 결과물의 형식을 지정

프로그램 = 데이터 + 알고리즘
프롬프트 = 컨텍스트 + 인스트럭션(사용자의 지시)

LLM 애플리케이션은 프롬프트를 잘 만드는 것도 중요하지만 사용자의 요청에 알맞는 정보를 잘 찾아 제시하는 것도 매우 중요하다.

프롬프트 엔지니어링 기초