새소식

도서

[서평] 최고의 프롬프트 엔지니어링 강의

  • -
 
최고의 프롬프트 엔지니어링 강의
프롬프트 엔지니어링이라면 흔히 ‘AI에게 질문하는 방법’이라고 생각하는 경우가 많지만, 정확히 말하면 ‘AI로부터 높은 수준의 결과물을 얻기 위한 양질의 프롬프트를 구성하는 작업’이라고 할 수 있다. 우리가 작성하는 프롬프트가 단순히 검색 포털에 질문을 입력하는 수준에서 벗어나려면 LLM 작동 원리를 이해하여 체계적으로 프롬프트를 구성하는 작업이 반드시 필요하다. 이 책은 프롬프트 엔지니어링의 방대한 내용을 프로그래밍 지식이 없는 사람도 이해하고 접근
저자
김진중
출판
리코멘드
출판일
2024.06.10

'질문을 잘 할수록 좋은 대답을 얻는다'

 

책을 선택한 이유

요즘은 정말 LLM 없이는 살 수 없는 몸이 되어 버렸다.

ChatGPT를 구독해서 쓰거나 다른 AI 툴을 쓰고 있지는 않다.

그래서 답변의 질이 좋지는 않기 때문에 프롬프트 작성의 중요성에 대해서 몸으로 더욱 느끼고 있다.

그래서 프롬프트를 어떻게 하면 더 잘 작성할 수 있는지에 대해 공부하고 싶어 고르게 되었다.

 

책의 주요 주제(내용)

제목에서 알 수있듯이 프롬프트 엔지니어링에 대해서 다루고 있다.

머신러닝에 대한 전반적인 개념, LLM에 대해서 먼저 설명한다.

그리고 프롬프트 엔지니어링 방법, 이를 위해서 알아야할 기본적인 지식에 대해 다루고 있다.

어떻게 하면 성능을 끌어올릴 수 있는지에 대한 방법을 간략히 설명하며 실습을 통해 이해하기 쉽게 알려준다.

 

대상 독자

  • 머신러닝, LLM의 기본 배경 지식이 아얘 없는 독자
  • 프롬프트를 작성하는 방법이 궁금한 독자

 

핵심 내용

책에서 나온 중요 개념들에 대해서 간단하게 정리해보았다.

 

프롬프트 엔지니어링 방법

1. 제로샷 프롬프팅: 아무런 데이터나 예시를 주지 않음

2. 원샷 러닝: 실행 방법에 대한 예시 한 개를 제공

3. 퓨샷 러닝: 실행 방법에 대해  2~3개부터 수십 개 정도의 예시 제공

4. CoT(Chain of Thought): 생각 사슬. 문제를 쪼개어 단계적으로 푸는 것과 유사. 문제 해결 과정에서 따라야 할 생각의 단계나 논리적 순서 제시

5. 제로샷 CoT: 논리적 순서나 가이드를 주지 않고, 해결할 문제에 대해 그저 천천히 생각해 보라는 식으로 지시 (ex. 단계별로 생각해봅시다 끝에 추가)

 

임베딩: 단어나 문장 같은 언어의 조각들을 숫자로 바꾸는 과정, 이를 진행하는 모델을 임베딩 모델이라 함

벡터서치: 실수형태의 집합으로 바뀐 임베딩 벡터내에서 기준이 되는 단어와 가까운 단어를 찾는 것

 

프롬프트 디자인 핵심

1. 컨텍스트 제공

2. 프롬프트 작성

3. 결과물 형식 지정

 

프롬프트 디자인 프레임워크

  • 역할
  • 대상
  • 지식/정보
  • 작업/목표
  • 정책/규칙, 스타일, 제약사항
  • 형식/구조
  • 예시

 

LLM 모델의 예측 가능성을 조절하는 주요 생성 옵션

1. Temperature: 모델의 출력 확률 분포를 조절하여 더 창의적이거나 결정적인 응답을 생성함 (값이 높을수록 다양성 증가).

2. Top P, Top K: Top K는 확률이 높은 K개의 토큰에서 샘플링하고, Top P(=Nucleus Sampling)는 확률의 누적 합이 P 이하인 토큰들에서 샘플링함.

3. Maximum Length: 한 번의 생성에서 출력될 최대 토큰 수를 제한함.

4. Frequency Penalty: 동일한 단어가 반복되는 빈도를 줄이기 위해 사용됨.

5. Presence Penalty: 특정 단어가 이미 등장했을 경우, 다시 등장할 확률을 낮춰 다양성을 증가시킴.

6. Stop Sequence: 특정 문자열이 생성되면 출력을 중단하도록 설정함.

7. Injection Start: 사전 정의된 프롬프트나 문맥을 삽입하여 생성 과정을 특정 방향으로 유도함.

openAI playground 테스트

openAI Playground에서 위와 같이 책에서 읽은 방법을 적용해서 프롬프트를 작성했다.

처음에는 제대로된 답변을 얻지 못했었지만 '형식', '규칙', '정보'를 제공하니 원하는 답변을 얻을 수 있었다.

 

장점과 단점

장점: 책 제목처럼 개념이해로 시작하기에는 좋은 책이다. 전반적인 느낌을 알기 좋다.

단점: 세부적인 내용에 대해서는 부족하다. 엔지니어링 연습이 있지만 연습 개수와 깊이가 부족하다.

 

결론

머신러닝의 개념, LLM의 개념도 모르는 완전 초짜에게는 이해하기 쉽게 쓰여져 있어서 좋다.

프롬프트 엔지니어링에 대한 전반적인 개념을 잡을 수 있는, 간단하게 술술 읽을 수 있는 책이다

프롬프트를 작성하는것에 대해서 재미를 붙일 수 있어서 좋았지만 뭔가 모르게 조금 아쉬웠다.(예시? 깊이?)

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.