안녕하세요 오늘은 BESPIN GLOBAL AX실 양재현님이 작성해주신 ‘AI 이것만은 알고가자 3편 : LLM 프롬프트 & 프롬프트 템플릿 종류 알기’ 대해 소개해드리도록 하겠습니다.
목차
- 프롬프트란?
- 프롬프트 템플릿 종류
- 프롬프트 응답결과
1. 프롬프트란?
- 모델에 대한 입력을 의미합니다.
- 랭체인에서는 프롬프트를 쉽게 구성하고 작업할 수 있도록 여러 클래스와 함수를 제공합니다.
2. 프롬프트 템플릿 종류
- 시스템메세지 프롬프트템플릿 ( 역할 부여 )
- 휴먼 메시지 프롬프트 템플릿 – 사용자가 입력학 매개변수 입력 {재료}
- ai 메세지 프롬프트 템플릿
- 시스템 지침
위 템플릿 종류를 활용하여서 프롬프트를 생성할수 있습니다.
- 소스 코드
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
- 한국어 GPT-2 모델과 토크나이저 로드
model_name = "openai/whisper-large-v3-turbo"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
- 시스템 메시지 템플릿 (역할 부여)
system_message = (
"당신은 친절하고, 지식이 풍부한 요리 전문가입니다. "
"사용자에게 다양한 요리법과 재료에 대한 정보를 제공합니다.\n"
)
- 휴먼 메시지 템플릿 (매개변수 포함)
def generate_human_message(ingredient):
return f"다음 재료를 사용한 요리법을 알려주세요: {ingredient}\n"
- AI 메시지 템플릿 (응답 형식 지정)
ai_prompt = (
"아래의 정보를 바탕으로 3단계로 요리 과정을 설명해 주세요:\n\n"
"1. 준비 재료\n"
"2. 조리 방법\n"
"3. 팁 및 주의사항\n"
)
- 추가 : 시스템 지침 템플릿
system_instruction = "답변은 간결하게 200자 이내로 작성해 주세요.\n"
- 전체 프롬프트 생성 함수
def create_prompt(ingredient):
human_message = generate_human_message(ingredient)
full_prompt = system_message + human_message + system_instruction + ai_prompt
return full_prompt
- 모델을 사용하여 응답 생성 함수
def generate_response(prompt, max_length=300):
inputs = tokenizer.encode(prompt, return_tensors='pt')
outputs = model.generate(
inputs,
max_length=max_length,
do_sample=True,
temperature=0.7,
top_p=0.9,
eos_token_id=tokenizer.eos_token_id,
pad_token_id=tokenizer.eos_token_id
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
# 시스템 메시지와 휴먼 메시지를 제거하고 AI 응답만 추출
ai_response = response[len(prompt):].strip()
return ai_response
- 예시 사용
if __name__ == "__main__":
ingredient = "토마토" # 사용자가 입력한 재료
prompt = create_prompt(ingredient)
print("=== 전체 프롬프트 ===")
print(prompt)
print("\n=== 챗봇 응답 ===")
response = generate_response(prompt)
print(response)
3. 프롬프트 응답 결과
=== 전체 프롬프트 ===
당신은 친절하고, 지식이 풍부한 요리 전문가입니다. 사용자에게 다양한 요리법과 재료에 대한 정보를 제공합니다.
다음 재료를 사용한 요리법을 알려주세요: 토마토
답변은 간결하게 200자 이내로 작성해 주세요.
아래의 정보를 바탕으로 3단계로 요리 과정을 설명해 주세요:
준비 재료
조리 방법
팁 및 주의사항
조리 방법:
토마토를 깨끗이 씻어 슬라이스합니다.
접시에 토마토 슬라이스를 배열하고, 올리브 오일을 뿌립니다.
3.소금을 약간 뿌리고, 바질 잎으로 장식합니다.
팁 및 주의사항:
토마토는 신선할수록 맛이 좋습니다.
올리브 오일은 품질이 좋은 것을 사용하면 풍미가 더해집니다.
이런식으로 프롬프트 입력으로 원하는 결과값을 얻을수 있습니다.
이렇게 프롬프트 전문적으로 튜닝하는 프롬프트 엔지니어 까지 나왔으니 프롬프트로 설계하는 최적화하는 분야도 중요해 졌습니다.
여기까지 ‘AI 이것만은 알고가자 3편 : LLM 프롬프트 & 프롬프트 템플릿 종류 알기’에 대해 소개해드렸습니다. 다음 시간에는 랭 체인의 핵심 – 도큐먼트 리더에 대해서 알아보겠습니다. 유익한 정보가 되셨길 바랍니다. 감사합니다.
Written by 양 재현/ AX실
BESPIN GLOBAL