AI 프롬프트 엔지니어링 기초 강의교재

PDF
Close
- 1p -

프롬프트 엔지니어링 기초

퓨샷 러닝, 컨텍스트, 알고리즘 등 AI 프롬프트 엔지니어링의 기초에 대해 배웁니다.
하단의 강의 영상을 함께 시청하면서 공부하시면 이해하기가 더 쉽습니다.

 

- 3p -

인공지능의 개념과 역사

1. AI의 정의와 분류

1) 정의
  • 인간의 학습능력과 추론능력, 지각능력, 자연언어의 이해능력 등을 컴퓨터 프로그램으로 실현한 기술
  • 인공(Artificial) + 지능(Intelligence)의 합성어로, 사람이 가진 지능적 능력을 모방하거나 확장하는 컴퓨터 과학의 한 분야.
2) 분류
  • 약인공지능(Narrow AI): 특정 과제나 제한된 영역에서만 지능을 발휘하는 AI.
    • 예: 음성 인식, 이미지 분류, 체스 프로그램.
  • 강인공지능(Strong AI): 인간과 유사한 종합적인 지능을 가지며 다양한 과제를 수행할 수 있는 AI. 2024년 11월 말 기준, 아직까지는 존재하지 않으며, OpenAI를 필두로 AGI라는 이름으로 활발히 연구 중.
  • 초인공지능(Superintelligent AI): 모든 인간의 지능을 초월하는 AI로, 이론적으로만 존재. 다양한 윤리적, 철학적 논의가 이어지고 있으며, 인공지능의 '특이점'이라는 표현으로 주로 일컬어짐.

 

2. 인공지능의 역사

시대 주요 사건 및 발전 설명
1940~1950년대 초기 개념의 등장
  • McCulloch & Pitts 뉴런 모델 제안: 인공 뉴런의 기초 개념 확립
  • 앨런 튜링의 "튜링 테스트" 제안: 계산 기계가 인간처럼 사고할 수 있는 가능성 제시.
1956년 다트머스 회의 "인공지능"이라는 용어가 처음 사용됨. 인공지능 연구의 출발점이 된 중요한 학회.
1960~1970년대 전문 시스템과 탐색 체스와 같은 보드 게임에서 성공을 거두며 규칙 기반 전문가 시스템이 발전.
1980년대 AI 겨울 기대와 실제 성과의 차이로 인해 투자와 관심이 감소하며 연구가 주춤하게 됨.
1990년대 딥 블루와 데이터 마이닝 IBM의 딥 블루가 체스 챔피언을 꺾음. 대용량 데이터 처리와 분석 기술이 발전.
2000년대 이후 빅데이터와 딥러닝의 발전 빅데이터와 컴퓨팅 파워의 증가로 머신러닝과 딥러닝이 급격히 발전.
2010년대~현재 알파고와 최신 AI 딥러닝 기술을 활용한 구글 알파고가 바둑 챔피언을 이기며, OpenAI의 ChatGPT의 출현으로 AI의 실용성과 성능을 널리 증명함.

 

3. AI 기술 발전

1) 주요 요인
  • 컴퓨팅 파워의 증가: 더 빠르고 강력한 하드웨어 개발.
  • 데이터의 양적 증가: 인터넷, IoT 등의 발달로 데이터가 급격히 증가하여 AI 학습에 활용.
  • 알고리즘의 발전: 신경망과 같은 알고리즘이 개선되며 보다 정교한 AI 개발 가능.
  • 클라우드 컴퓨팅: 클라우드 환경에서 AI 학습이 가능해져 접근성과 효율성이 증가.

 

2) AI 연구의 주요 과제와 윤리적 논의
  • 데이터 프라이버시: 개인 데이터 사용 시 프라이버시 문제 발생.
  • 편향과 공정성: AI 학습 데이터의 편향이 결과에 영향을 줄 수 있음.
  • 투명성과 설명 가능성: AI의 의사결정 과정을 인간이 이해할 수 있는 수준으로 설명할 필요.
  • 안전성: AI 시스템이 의도치 않은 행동을 하지 않도록 하는 안전 장치가 필요.
- 4p -

AI의 핵심 기술과 개념

  1. 기계학습
  2. 딥러닝
  3. 거대언어모델(LLM)
  4. GPT
  5. 인공지능(AI) 공급사슬

 

1. 기계학습 (Machine Learning)

1) 정의

컴퓨터가 명시적인 프로그램 없이도 데이터를 통해 학습하여, 스스로 패턴과 규칙을 찾고, 새로운 데이터 입력에 대하여 분석, 예측, 결정 등 특정 작업을 수행하도록 하는 기술.

2) 기계학습의 주요 종류
방식 개념 대표적 응용 사례
지도 학습 정답이 있는 데이터로 학습 질병 진단, 이미지 분류, 스팸 메일 분류 등
비지도 학습 정답이 없는 데이터로 학습하여 스스로 패턴과 규칙을 찾게 함 데이터 군집화, 고객 세분화, 이상 거래 감지 등
강화 학습 여러 결과에 대하여 보상을 달리 주어, 시행착오를 통한 학습 게임 AI, 챗봇, 로봇 제어 등

* 기계학습의 주요 알고리즘

알고리즘 설명 예시
선형 회귀 (Linear Regression) 데이터 간 선형 관계를 찾아 예측 값을 계산. 집값 예측, 주가 예측
로지스틱 회귀 (Logistic Regression) 분류 문제에 사용, 특정 범주에 속할 확률을 예측. 이진 분류(스팸 vs 비스팸)
의사결정 트리 (Decision Tree) 결정 트리 구조를 통해 데이터의 특성에 따라 분류 또는 예측. 신용카드 사기 탐지
서포트 벡터 머신 (SVM) 데이터를 고차원으로 변환하여 분류 경계를 찾음. 얼굴 인식
K-평균 군집화 (K-Means Clustering) 데이터 집단을 클러스터로 그룹화하는 비지도 학습 기법. 고객 세분화
신경망 (Neural Network) 인간의 뇌 구조를 모방한 다층 퍼셉트론 구조로 데이터를 학습. 이미지 분류, 음성 인식

 

2. 딥러닝 (Deep Learning)

1) 정의

신경망의 일종으로, 여러 층(layer)으로 구성된 신경망을 사용하여 데이터를 학습.

2) 특징
  • 계층적 학습: 낮은 층에서 기본 특징을 추출하고, 높은 층에서는 더 복잡한 패턴을 학습.
  • 대량의 데이터와 고성능 하드웨어가 필수.
3) 딥러닝 모델의 종류
  • CNN (Convolutional Neural Network): 주로 이미지 처리에 사용되며, 이미지 내의 특징을 자동으로 추출.
    • 예: 이미지 인식, 자율 주행 자동차.
  • RNN (Recurrent Neural Network): 순차적인 데이터 (예: 텍스트, 음성)를 처리하는 모델.
    • 예: 언어 번역, 음성 인식.
  • Transformer: RNN의 한계를 극복하고 병렬 연산을 통해 더 효율적으로 처리하는 모델로, NLP(Natural Language Processing)에서 주로 사용됨.
    • 예: 언어 생성 모델, 번역기.

 

3. 거대언어모델 (LLM, Large Language Model)

1) 정의

텍스트 데이터를 대량으로 학습하여 인간과 유사한 언어 생성 및 이해가 가능한 모델.

2) 특징
  • 자연어 처리 (NLP) 분야에서 큰 혁신을 이끌어냄.
  • 사람과 대화하거나 특정 주제에 대해 글을 작성할 수 있는 수준에 도달.
3) 대표적인 NLP 모델(LLM의 기반)
  • BERT (Bidirectional Encoder Representations from Transformers): 문맥을 이해하기 위해 문장의 양방향을 모두 학습하는 모델.
    • 사용 예: 질문 응답, 감정 분석.
  • GPT (Generative Pretrained Transformer): 입력 텍스트의 연속적인 단어 생성을 통해 글을 생성.
    • 사용 예: 텍스트 생성, 자동 응답, 요약.

 

4. GPT (Generative Pretrained Transformer)

대규모 언어 모델(LLM)의 일종으로, 대화나 텍스트 생성 같은 다양한 언어 기반 작업을 수행할 수 있는 모델이다.

1) GPT 구성 요소
  • 사전 학습(Pretraining)
    • GPT는 인터넷 텍스트나 책, 문서 등의 대규모 데이터에서 학습하며, 인간의 언어 구조와 문맥을 이해하도록 훈련된다.
    • 사전 학습은 언어 모델이 문법, 일반 상식, 언어적 맥락을 이해할 수 있게 하며, 다양한 주제와 문맥에 대한 지식을 형성하도록 돕는다.
    • 사전 학습된 모델은 특정 작업에 맞춰 미세 조정할 수 있습니다. 예를 들어, 문장 번역이나 요약 생성과 같은 작업에 맞춰 추가 학습이 가능하다.
  • 트랜스포머 (Transformer) 아키텍처:

    • 트랜스포머는 2017년에 소개된 모델로, 어텐션 메커니즘(Attention Mechanism)을 통해 입력 데이터의 중요한 부분에 집중하도록 설계되었다.
    • 트랜스포머는 순차적인 처리 없이 병렬로 데이터를 처리할 수 있어, 처리 속도가 빠르며 더 긴 문맥을 이해하는 데 유리하다.
    • GPT는 트랜스포머 구조 중에서도 디코더(Decoder) 부분만 사용하여, 입력 텍스트를 기반으로 단어 예측과 생성을 수행한다.

 

2) GPT 작동 원리: 언어 생성 과정
  1. 입력 데이터 처리:

    • 사용자가 질문이나 문장을 입력하면, GPT는 이를 토큰화(Tokenization)하여 각 단어 또는 하위 단위(서브워드)로 나눈다. 각 토큰은 모델에 숫자 형태로 입력된다.
  2. 문맥 이해:

    • 트랜스포머의 어텐션 메커니즘이 입력 문맥 내에서 각 토큰이 가지는 중요도를 계산한다. 이를 통해 모델은 이전 단어나 구문의 정보를 활용하여 다음 단어를 예측한다.
    • 어텐션 메커니즘은 입력 데이터의 문맥을 이해하는 데 필수적인 역할을 하며, 긴 문장에서 단어들 간의 관계를 파악해 자연스러운 문장을 생성하게 한다.
  3. 확률적 예측과 단어 생성:

    • 모델은 다음에 올 단어의 확률을 계산하며, 가장 높은 확률을 가진 단어를 선택하여 이어지는 텍스트를 생성한다.
    • 예를 들어 "The weather today is"라는 문장을 입력하면, 다음에 올 단어로 "sunny", "rainy" 등의 확률을 계산하고, 가장 높은 확률을 가진 단어를 선택하여 문장을 이어간다.
  4. 반복적 생성:

    • 다음 단어가 결정되면, 이 단어가 문맥에 추가되어 모델이 다음 단어를 예측하는 과정을 반복한다.
    • 이렇게 반복함으로써 완전한 문장을 생성하고, 지정된 길이까지 생성이 완료되면 결과가 출력된다.

 

3) GPT의 학습 과정
  • 사전 학습 (Pretraining): 수십억 개의 텍스트 데이터에서 패턴을 학습하여 문법, 어휘, 일반 상식 등을 익힌다. GPT 모델은 각 단어 또는 토큰이 문장에서 어떤 확률로 나타나는지를 학습하며, 단어의 빈도와 위치를 통해 언어 구조를 이해한다.

  • 미세 조정 (Fine-tuning): 특정 작업에 맞춰 추가 학습을 진행한다. 이를 통해 모델이 특정한 문체, 어조 또는 응답 형식을 따르도록 조정된다. 예를 들어, 고객 응대나 교육 자료 생성과 같은 목적에 따라 미세 조정이 가능하다.

 

4) GPT의 강점과 한계
  • 강점:

    • 언어 이해 능력: 매우 방대한 텍스트 데이터를 학습하여 다양한 언어 구조와 문맥을 이해한다.
    • 다양한 응용성: 텍스트 생성, 번역, 대화 응답, 질문 답변, 요약 등 다양한 언어 기반 작업을 수행할 수 있다.
    • 스케일링 가능성: 모델의 크기를 키울수록 성능이 개선되며, 대규모 데이터 학습을 통해 더욱 정교한 결과를 제공한다.
  • 한계:

    • 편향성: 학습 데이터에 따라 특정 편향이 발생할 수 있다.
    • 모델의 크기: 대규모 GPT 모델은 훈련과 실행에 매우 높은 연산 자원(GPU, 메모리 등)을 요구한다.
    • 사실 검증 어려움: 생성된 내용이 사실과 일치하지 않을 수 있으며, 특히 관련된 데이터가 학습되지 않은 경우 할루시네이션(환각) 증상이 발생하여 엉뚱한 내용을 지어낼 수 있다.
- 5p -

5. 인공지능(AI) 공급사슬

단계 주요 활동 주요 회사
반도체 및 하드웨어 제조 칩셋 설계 및 그래픽카드 생산 NVIDIA, AMD, Intel, TSMC
데이터 공급 및 처리 데이터 수집, 정제, 라벨링 Scale AI, Appen, Innodata(이노데이터)
기반 모델 개발 AI 알고리즘 설계 및 학습 OpenAI, Google, Meta, Anthropic
서비스 개발 및 튜닝 맞춤형 AI 솔루션 개발 Perflexity, 메타마인드, 뤼튼 등
클라우드 플랫폼 고성능 컴퓨팅 자원 제공 AWS, Microsoft Azure, Google Cloud
최종 사용자 AI 서비스 활용 일반 사용자, 기업 고객, 연구기관

관련 에세이: https://metamind.kr/ai-prompt-engineering/ai-supply-chain/

- 6p -

ChatGPT란?

  • 테슬라 CEO 일론 머스크가 공동창업한 OpenAI에서 서비스하는 인공지능 챗봇 서비스
  • NLP 모델 중 하나인 GPT를 채팅 형식으로 파인 튜닝한 AI
  • 현재 기준으로 GPT-3.5와 GPT-4 버전 사용, 2021년까지의 데이터로 학습
    • 최신 API 사용 시 2023년 4월까지의 데이터로 학습한 버전 사용 가능
  • 사용자가 입력한 프롬프트를 바탕으로 최적의 답변을 생성
  • GPT-3.5는 1,750억 개의 파라미터를 가지며, RLHF를 통해 GPT3를 대화에 최적화

  GPT의 매개변수 변화 추이, 출처: NIA The AI REPORT 2023-1

 

 

 

 

- 7p -

2. ChatGPT의 작동원리

- 8p -

GPT란?

Generative Pre-trained Transformer
사전 훈련된 생성 변환기


https://keep-steady.tistory.com/52

- 9p -

Generative Pre-trained Transformer

- 10p -

 

- 11p -

데이터베이스 기반 확률적 텍스트 생성의 문제점?

 

- 12p -
- 13p -

3. 프롬프트란?

컴퓨터 또는 인공지능 시스템에 입력되는 질문이나 지시·명령어

기존 - 컴퓨터에게 프롬프트를 입력하기 위해서 프로그래밍 언어를 사용해야 했음.

지금 - 컴퓨터(AI)에게 프롬프트를 입력하기 위해서 프로그래밍 언어가 아닌 자연어를 사용함.

프롬프트의 종류

  • 인스트럭션(시스템) 프롬프트: AI 모델의 역할, 지침, 사전 데이터 등의 내용.
  • 유저 프롬프트: 유저가 AI 모델에게 지시 및 질문하는 내용.


출처: cohere.ai

- 14p -

4. 프롬프트 엔지니어링의 개념과 기본원리

1) 프롬프트 엔지니어링의 개념 및 분류

프롬프트 엔지니어링은 본래 대형 언어 모델(LLM)이 복잡한 수학 문제를 풀거나 논리적 사고를 잘할 수 있도록 하기 위해 AI 모델 엔지니어들이 활용한 기술에서 출발했습니다. 이후 2022년 말 챗GPT가 공개되고 일반 사용자들에게 널리 사용되면서, 일반적인 사용 목적의 다양한 프롬프트 엔지니어링 기법들이 개발되고 활용되기 시작했습니다. 최근에는 단순히 프롬프트 작성법을 넘어, 파인튜닝(Fine-tuning)RAG(Retrieval-Augmented Generation)와 같은 엔지니어링 기법을 통해 복잡한 문제를 해결하거나 전문적인 도메인 지식이 필요한 작업을 처리하기 위한 프롬프트 엔지니어링이 발전하고 있습니다.

  • 프롬프트 엔지니어링: AI모델로부터 원하는 결과물을 얻기 위해 입력하는 프롬프트를 최적화하는 기술

프롬프트 엔지니어링은 내가 원하는 결과를 인공지능 모델이 정확하게 생성하도록 프롬프트(지시·명령어)를 설계하는 기법입니다. 이를 통해 모델의 응답 정확성이나 퀄리티를 높이고, 특정 분야의 지식을 더 효과적으로 반영하게 할 수 있습니다. 프롬프트 엔지니어링은 그 목적과 활용 주체에 따라 다음과 같이 분류할 수 있습니다.

  • 일반적인 사용자 입장에서의 프롬프트 엔지니어링: 일반 사용자는 정보를 탐색하거나 글 작성, 데이터 분류 및 가공, 업무 활용 등 다양한 목적으로 AI를 활용하기 위하여 프롬프트 엔지니어링 사용.
  • AI 모델 및 서비스 설계자 입장에서의 프롬프트 엔지니어링: 모델 및 서비스 설계자는 AI가 해당 서비스를 이용할 유저들이 기대하는 작업을 높은 품질과 일관성을 유지하며 수행할 수 있도록 프롬프트 엔지니어링 적용.

 

2) 프롬프트 엔지니어링의 기본원리

(1) 구체성(명확성)

AI는 답변을 생성할 때 바로 다음 나올 단어를 예측하며 문장을 생성합니다. 구체적인 프롬프트를 입력해야 내가 원하는 키워드와 내용에 대한 확률이 올라가서 원하는 답변을 받을 확률이 올라갑니다.

 

(2) 데이터 & In-context learning(문맥 이해)

AI는 입력된 데이터를 기반으로 학습하고 문맥을 이해하여 답변을 생성합니다. 따라서 프롬프트를 작성할 때도 이를 고려하여, 원하는 답변이 AI의 데이터 베이스에 존재하는지 여부를 파악하고 활용해야 합니다.

 

(3) 알고리즘

아무리 구체적으로 프롬프트를 입력한다고 하더라도 한꺼번에 너무 복잡하고 다양한 지시를 하면 원하는 답변을 얻을 확률이 매우 낮아집니다. 따라서 내가 원하는 문제해결이나 목표를 먼저 알고리즘화하여 분석하고 심플하게 다듬어야 합니다.

 

- 15p -

5. 프롬프트 엔지니어링 기법 1 - 퓨샷 러닝(Few-shot learning)

예시를 통한 학습 방식

질문: 문제집, 과거
답변: 문제집을 바라보니 수험 시절에 열심히 공부했던 과거가 떠올랐다.

질문: 속보, 로봇
답변: 속보 뉴스에서 로봇들이 집단 시위를 벌이는 장면이 방영되고 있다.

질문: 재료, 활동
답변:

Zero-shot learning

One-shot learning

Few-shot learning

 

퓨샷 러닝의 잘못된 사례 퓨샷 러닝의 올바른 사례

질문: 쥐와 코끼리 중 어느 것이 더 무겁습니까?
답변: 코끼리가 쥐보다 무겁습니다.

질문: 쥐와 토스터기 중 어느 것이 더 무겁습니까?
답변: 토스터기가 쥐보다 무겁습니다.

질문: 토스터기와 연필 중 어느 것이 더 무겁습니까?
답변: 연필이 토스터기보다 무겁습니다.

질문: 쥐와 코끼리 중 어느 것이 더 무겁습니까?
답변: 코끼리가 쥐보다 무겁습니다.

질문: 토스터기와 쥐 중 어느 것이 더 무겁습니까?
답변: 토스터기가 쥐보다 무겁습니다.

질문: 바다와 먼지 중 어느 것이 더 무겁습니까?
답변: 바다가 먼지보다 무겁습니다.

질문: 토스터기와 연필 중 어느 것이 더 무겁습니까?
답변: 토스터기가 연필보다 무겁습니다.

- 16p -

6. 프롬프트 엔지니어링 기법 2 - 정보 제공 및 답변 조건 지정

  • AI 및 사용자 역할 지정
  • 상황 설명 및 요청의 이유(배경) 작성
  • 사전지식 학습
  • 예시 답변
  • 구체적인 지시사항 설명
  • 답변 조건 지정
    • Who, Where, How, When
- 17p -

7. 프롬프트 엔지니어링 기법 3 - 알고리즘 기법 적용

프롬프트 엔지니어링 알고리즘의 조건: 명확성, 수행 가능성, 효율성

 

 

- 18p -

8. 뛰어난 프롬프트 엔지니어의 3가지 조건

 

1) 사용하는 AI에 대한 이해

프롬프트 엔지니어링 대상인 AI에 대한 이해가 없다면 아무리 프롬프트를 열심히 써도 원하는 결과를 얻기가 어렵습니다.

 

2) 프롬프트 작성 스킬

AI가 가진 성능을 최대한 끌어다 쓸 수 있도록 하고, 특정 작업에 최적화하기 위한 프롬프트 엔지니어링 스킬을 능숙하게 사용해야 합니다.

 

3) 메타인지 & 문제해결 능력

AI에 대한 이해와 프롬프트 작성 스킬이 뛰어나더라도, 원하는 결과가 나오지 않았을 때 그 문제점과 원인을 분석하여 해결할 수 있어야 합니다.

 

앞으로의 전망?

18

Scroll to Top