본문 바로가기
  • 시 쓰는 개발자
1일 1개념정리 (24년 8월~)/AI

1일1개 (9) - 프롬프트 엔지니어링

by poetDeveloper 2024. 8. 17.

1일 1개념정리 24.08.09.금 ~ 

 

큰 결정에 큰 동기가 따르지 않을 때도 있다. 하지만 큰 결심이 따라야 이뤄낼 수 있다.

무조건 무조건 1일 1개의 개념 정리하기 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!


#9. 프롬프트 엔지니어링

Prompt Engineering이란 무엇일까 ?? 프롬프트 엔지니어링이라고 쓰는게 너무 길어서 그냥 프엔이라고 이야기하겠다. 아무튼 프엔은 ai모델중 특히 자연어처리 (NLP) 모델과 대화할 때, 원하는 결과를 얻기 위해 입력 Prompt를 설계하고 최적화하는 과정이다.

아이언맨 - 자비스

 

LLM ( Large Language Model )

프엔을 공부하기 전, LLM에 대해 간단하게 알아보자. LLM은 Large Language Model의 약자로, 대규모 데이터셋으로 학습된 "자연어 처리 모델"이다. 보통 파라미터가 수십억 ~ 수천억개로 매우 많다. 우리가 쓰는 GPT(OpenAI), LLaMa(Meta), Gemini(Google)이 그런 예들이다. LLM은 다음과 같은 특징이 있다.

  1. 대규모 데이터 학습 : 인터넷에서 수집한 엄청 많은 데이터를 학습함
  2. 문맥 이해 : 단어 뿐만 아니라 긴 문장, 문단 단위도 이해 가능함.
  3. Zero-shot, Few-shot 학습 : Zero Shot은 훈련되지 않은 새로운 작업에도 적절히 대응하는 것이고 Few shot은 몇개의 예시로 새로운 작업을 수행하는 것 (아래 예시)

Prompt Engineering

프엔의 특징은 다음과 같다. 위 LLM 특징과도 대동소이하다.

  1. 프롬프트의 구조 : "프롬프트"에는 질문 형식, 명령어나 맥락 등의 정보가 포함된다. 예를 들면 ~~를 요약해줘, 혹은 ~~형식으로 존댓말로 대답해줘 이런식으로 말이다.
  2. 샷 학습(Few-shot, Zero-shot)
    •    Zero Shot 학습 : 구체적인 예시 없이 AI가 새로운 작업을 수행하는 방법이다. ex) Hello World를 프랑스어로 번역해줘.
    •    Few Shot 학습 : 몇 개의 예시를 제공하여 AI가 패턴을 학습하도록 하는 방법이다. (몇개의 예시로 패턴 학습) 예시를 제공한 후에 유사한 작업에 대해 명령을 내리는 방식이다. ex) Hello는 프랑스어로 Bonjour고, Thank you는 Merci야. 이제, Goodbye에 대해서 프랑스어로 번역해줘.
  3. 명령어 (튜닝) : 프엔의 일종으로, 모델이 특정 작업을 더 잘 수행하도록 돕는 명령어를 쓰는 것을 의미한다. ex) 핵심만 포함해서 요약해줘, 초등학생도 이해할 수 있게 설명해줘, 더 공손하고 격식있게 수정해줘 등

Zero Shot 학습

 

Few Shot 학습 ???

랭체인 Lang Chain

프엔의 주요 기술 중 하나는 바로 랭체인이다. 랭체인은 자연어 처리 애플리케이션에서 사용되는 파이썬 라이브러리이자 프레임워크이다. 두 역할을 동시에 해서 이렇게 부른다고 한다. 랭체인은 라이브러리로서 프롬프트 작성과 응답 처리에 필요한 API와 모듈을 제공하고, 프레임워크로서 복잡한 NLP 작업을 처리할 수 있는 구조와 템플릿을 제공한다.

 

랭체인의 주요 특징은 다음과 같다.

  • 인터페이스 제공 : 다양한 언어 모델과 쉽게 상호작용할 수 있는 인터페이스를 제공.
  • 체인 구조 여러 개의 프롬프트나 작업을 연결하여 복잡한 작업을 처리할 수 있는 체인 구조를 제공. ex) 사용자 입력을 처리한 후 결과를 또 다른 프롬프트로 전달하는 방식으로 여러 단계의 작업을 자동화할 수 있다.
  • 메모리 관리 : 대화의 맥락을 기억하는 기능을 제공. 이전 메시지를 저장하고 이를 활용하여 응답의 일관성을 유지

Chat History

계속 이야기가 나오는 것이 "대화의 맥락을 기억"인데, 어떻게 기억한다는 것일까 ?? 여기서 사용되는 기술이 Chat History라는 개념이다. Chat history는 단순하게 말하면 대화형 AI와 사용자가 나눈 대화 기록이다. 이 기록으로 AI가 맥락을 유지한채 대화할 수 있게 도와준다. 즉, 적절한 답변을 제공할 때 대화를 지속적으로 참조한다는 것이다.

 

이론적 개념

  1. 맥락 유지 : AI가 이전 대화 내용을 기억하고 응답을 제공하는 것을 의미함. ex) "오늘 날씨 어때?" 이후에 내가 단순히 "내일은?" 이라고 간단하게만 묻는다면 AI는 이게 날씨를 물어보는 것임을 대화 맥락을 통해 알 수 있음.
  2. 대화의 연속성 : 장기간 여러 주제가 오갈 때 중요하다. ex) 만약 내가 A, B, C를 이야기했고 다시 A에 대해 이야기를 하려고 "아까 A에서 이거 이거 바꾸면 어떻게 되지?" 라고 물어볼 때 A가 무슨 내용이었는지 기억할 수 있어야함.
  3. 사용자 맞춤화 : Chat history는 사용자의 선호도나 사용자의 정보에 맞춘 응답을 제공하도록 돕는다. ex) 아이언맨의 자비스가 토니 스타크의 선호 음식을 기억하고 음식을 제공함
  4. 에러 처리 : Chat history는 이전에 생긴 오류를 수정하고 재검토할 때 사용된다. ex) 1분 전에 했던 응답에 대해서 내가 "이 부분 틀렸잖아" 라고 하면, 그 부분을 다시 보고 수정해서 올바른 답변을 다시 제공한다.
  5. 장기 및 단기 메모리 : Chat history에는 단기 메모리와 장기 메모리가 포함될 수 있다. 단기 메모리는 "현재" 대화 세션 내의 정보를 저장하는 것이고, 장기 메모리는 예전에 나눴던 대화에 대해 기억하는 것을 의미한다. 장기 메모리는 사용자의 정보 관리, 개인화 된 응답 제공 등에 사용될 수 있다.