프롬프트 엔지니어링

2024. 12. 10. 15:17LLM(Large Language Model)의 기초

1. 프롬프트 엔지니어링 (prompt engineering)이란?

- 프롬프트 엔지니어링(prompt engineering)은 인공지능 모델, 특히 자연어 처리 모델(GPT 계열 등)과의 상호작용을 최적화하는 기술입니다. 이는 모델이 주어진 작업을 더 정확하고 효과적으로 수행할 수 있도록, 입력되는 텍스트(프롬프트)를 신중하게 설계하는 과정입니다. 프롬프트 엔지니어링의 핵심은 모델이 의도한 답변을 도출하도록 텍스트를 구성하는 방식으로, 적절한 질문 형식이나 설명을 제공하여 더 나은 성과를 얻는 것을 목표로 합니다. 이 과정은 모델의 한계와 특성을 이해하고, 모델이 특정 방식으로 반응하도록 유도하는 언어적 전략을 포함합니다. 예를 들어, 더 구체적인 정보를 요청하거나, 다양한 조건을 명확히 설정하여 모델이 더 정확하고 유용한 답변을 하도록 유도하는 방식입니다.

 

### 1-1. Role
Role(역할)은 AI 모델과의 대화에서 특정 문맥을 설정하거나, 모델의 응답 스타일과 관점을 조정하기 위해 사용하는 개념입니다.

* User(사용자): AI와 상호작용하는 주체로, 일반적인 질문이나 요청을 전달합니다.
* Assistant(어시스턴트): AI 모델이 자체적으로 응답할 때의 역할로, 사용자의 질문이나 명령에 따라 답변을 제공합니다.
* System(시스템): AI 모델의 행동과 스타일을 지시하는 역할로, AI가 어떻게 응답해야 할지 지침을 설정합니다. 예를 들어, "당신은 친절한 도움을 주는 비서입니다"라는 시스템 역할을 설정하면 AI는 친절하고 협조적인 태도로 응답하게 됩니다.

 

1-1. 명령어 수행해보기

!pip install python-dotenv
!pip install --upgrade openai
import os
from openai import OpenAI
from dotenv import load_dotenv
#에러 발생시 런타임에서 세션 다시 시작 및 모두 실행
client = OpenAI(
    api_key = os.getenv('API_KEY')
)

 

1-1.

#temperature: 출력의 다양성을 조절하는 하이퍼파라미터
#0~1 이상의 값으로 설정
# 0: 일관적인 답변
# 0.X: 높은 확률을 가진 단어를 자주 선택, 안정적이고 일관적인 답변
# 1~ : 모델이 더 창의적이고 랜덤한 응답을 생성
response = client.chat.completions.create(
    model = 'gpt-3.5-turbo-0125',
    messages=[{"role":"user", "content":"왜 강남은 강남이라고 할까요?"}],
    temperature=0.0
)

response.choices[0].message.content
-->
강남은 서울의 한 지역으로, 원래는 강남구라는 지역명을 가지고 있습니다. 이 지역은 서울의 중심지로서 번화가와 상업지구가 밀집해 있고, 부동산가격이 높은 곳으로 유명합니다. 또한 강남은 한국의 경제 발전과 문화 발전을 상징하는 곳으로 여겨지기도 합니다. 이러한 이유로 강남은 부유한 지역이라는 이미지와 함께 한국의 대표적인 도시로서의 위치를 상징하는 단어로 사용되기도 합니다.

 

1-2.

#temperature: 출력의 다양성을 조절하는 하이퍼파라미터
#0~1 이상의 값으로 설정
# 0: 일관적인 답변
# 0.X: 높은 확률을 가진 단어를 자주 선택, 안정적이고 일관적인 답변
# 1~ : 모델이 더 창의적이고 랜덤한 응답을 생성
response = client.chat.completions.create(
    model = 'gpt-3.5-turbo-0125',
    messages=[{"role":"user", "content":"왜 강남은 강남이라고 할까요?"}],
    temperature=0.0
)

response.choices[0].message.content
-->
강남은 서울의 한 지역으로, 원래는 강남구라는 지역명을 가지고 있습니다. 이 지역은 서울의 중심지로서 번화가와 상업지구가 밀집해 있고, 부동산가격이 높은 곳으로 유명합니다. 또한 강남은 한국의 경제 발전과 문화 발전을 상징하는 곳으로 여겨지기도 합니다. 이러한 이유로 강남은 부유한 지역이라는 이미지와 함께 한국의 대표적인 도시로서의 위치를 상징하는 단어로 사용되기도 합니다.

 

### 1-2. System Prompt
AI 모델과의 대화에서 모델의 초기 동작이나 응답 스타일을 설정하기 위해 사용되는 프롬프트입니다. AI와의 대화가 시작될 때 system 역할로 주어지는 입력이며, 이 입력은 모델이 그 이후의 대화에서 어떻게 행동해야 하는지를 결정하는 데 중요한 영향을 미칩니다. System Prompt는 모델에게 지침을 제공하여 특정 맥락을 유지하거나 특정한 말투, 관점, 성격으로 응답하도록 유도합니다.

 

1-3.

response = client.chat.completions.create(
    model = 'gpt-3.5-turbo-0125',
    messages=[{"role":"system", "content":"당긴은 부동산 마케터입니다. 손님에게 설명하듯이 친근하게 설명해주세요"},
              {"role":"user", "content":"왜 강남은 강남이라고 할까요?"}],
    temperature=0.0
)

response.choices[0].message.content
-->

강남이라는 지역 이름은 한국의 지리적인 위치와 역사적인 배경에 기반을 두고 있습니다. "강"은 강북과 강남을 구분짓는 지리적인 요소로, 한반도를 가로지르는 한강을 의미합니다. "남"은 한갘의 남쪽에 위치한 지역을 가리키는 말로, 한강 남쪽 지역을 가리킵니다. 따라서, 강남이라는 지역 이름은 한강 남쪽에 위치한 지역이라는 의미를 갖고 있습니다.

또한, 강남은 서울의 중심지로 발전하면서 부동산 시장이 활발하게 운영되어 왔고, 상업 및 문화 중심지로 발전하면서 강남이라는 이름이 더욱 유명해지게 되었습니다. 현재 강남은 한국에서 가장 부유한 지역 중 하나로 인식되며, 상업, 문화, 엔터테인먼트 등 다양한 측면에서 발전하고 있습니다.

 

1-4.

response = client.chat.completions.create(
    model = 'gpt-3.5-turbo-0125',
    messages=[{"role": "user", "content": "당신은 부동산 마케터입니다. 손님에게 설명하듯이 친근하게 설명해주세요. 왜 강남은 강남이라고 할까요?"},],
    temperature=0.0
)

response.choices[0].message.content
-->
강남은 서울의 중심지로서 국내외에서 매우 유명한 지역입니다. 이곳은 한국의 경제와 문화의 중심지로서 다양한 상업시설, 문화시설, 엔터테인먼트 시설 등이 밀집해 있습니다. 또한 강남은 안전한 동네로서 교육시설과 의료시설이 잘 갖춰져 있어서 주거지로서도 매우 인기가 높습니다. 또한 강남은 교통이 편리하고 고급스러운 상업시설과 레스토랑, 카페 등이 많아서 생활하기에도 편리한 지역으로서 많은 사람들이 강남을 강남이라고 부르는 것입니다.

 

728x90
LIST

'LLM(Large Language Model)의 기초' 카테고리의 다른 글

FAST API  (8) 2024.12.13
Gradio  (3) 2024.12.11
프롬프트 엔지니어링  (8) 2024.12.11
몽고 DB 와 파이썬  (6) 2024.12.10
생성형 AI  (0) 2024.12.10