수익화는 회사에서 쓰는 방법론
일단 프롬프트 엔지니어링의 개념부터 정리해봅시다
프롬프트 엔지니어링이 AI 챗봇 개발에서 핵심적인 역할을 하고 있습니다. 이는 챗봇의 의도된 행동을 유도하기 위해 최적의 시스템 프롬프트를 만드는 과정입니다. 예를 들어, 셰익스피어 스타일의 언어로만 응답하도록 챗봇을 설정하거나 특정 스크립트를 따르도록 지시할 수 있습니다.
프롬프트 엔지니어링의 구조는 주로 마크다운 형식을 사용하며, 각 섹션은 ### 기호로 구분됩니다. 주요 섹션으로는 역할, 지시사항, 작업, 도구, 스크립트, 예시, 정책, 기타 정보 등이 있습니다. 이러한 구조화된 형식은 다양한 사용 사례에 적용할 수 있어 유용합니다.
프롬프트 엔지니어링의 전략으로는 사고의 연쇄(Chain of Thought), 자기 일관성(Self-Consistency), 사고의 나무(Tree of Thought) 등이 있습니다. 사고의 연쇄는 챗봇이 단계별로 생각하도록 유도하는 방법입니다. 예를 들어, 사용자의 요구 사항을 고려하고, 가능한 해결책을 탐색한 후, 최종 권장 사항을 제시하는 과정을 거칩니다.
자기 일관성은 각 단계에서 가장 적합한 "생각"을 선택하여 일관된 응답을 생성하는 방법입니다. 사고의 나무는 여러 가능성을 탐색하고 최적의 경로를 선택하는 방식으로, 더 복잡한 문제 해결에 적합합니다.
여러 가능성을 동시에 고려하는 더 복잡한 접근 방식입니다. 이는 너비 우선 탐색과 깊이 우선 탐색 두 가지 방식으로 구현될 수 있습니다. 너비 우선 탐색은 현재 단계에서 모든 가능한 선택지를 고려한 후 다음 단계로 넘어가는 방식이며, 깊이 우선 탐색은 하나의 경로를 끝까지 탐색한 후 다른 경로를 탐색하는 방식입니다.
이러한 방법을 구현하기 위해 여러 "전문가"의 관점을 시뮬레이션하는 방식이 사용될 수 있습니다. 예를 들어, 한 전문가는 사용자의 요구 사항을 분석하고, 다른 전문가는 제품을 평가하며, 세 번째 전문가는 이 두 가지를 종합하여 최종 권장 사항을 제시할 수 있습니다.
더 나아가 트리 검색 전략, 사고 선택 전략, 사고 연쇄 전략, 다중 에이전트 사고의 나무 전략 등 더욱 복잡한 "사고" 처리 방식을 구현할 수 있습니다. 이러한 방법들은 챗봇이 더 정교하고 맥락에 맞는 응답을 생성할 수 있도록 돕습니다.
제로샷, 퓨샷, 매니샷 학습 방식도 프롬프트 엔지니어링에서 중요한 개념입니다. 제로샷은 추가적인 맥락 없이 프롬프트만으로 응답을 생성하는 방식이고, 퓨샷은 몇 가지 예시를 제공하여 유사한 응답을 생성하도록 하는 방식입니다. 매니샷은 다수의 예시를 제공하여 더욱 정교한 응답을 유도하는 방식입니다.
기초 프롬프텡 엔지니어링의 내용을 확인하고 싶으시다면 이 링크를 활용해주세요.
A Comprehensive Overview of Prompt Engineering
www.promptingguide.ai
프롬프트 엔지니어링의 실제 적용 사례로, 건설 회사의 웹사이트 챗봇 개발을 들 수 있습니다. 이 챗봇은 ADU(Accessory Dwelling Unit) 건설, 배관/전기 공사 리노베이션, 맞춤 설계 및 건축 등에 대한 질문에 답변하고 잠재 고객의 정보를 수집하는 역할을 합니다.
이러한 복잡한 챗봇을 개발하기 위해서는 여러 단계의 사고 과정이 필요합니다. 먼저 사용자의 요구 사항을 파악하고, 가능한 해결책을 탐색한 후, 최적의 권장 사항을 제시합니다. 이 과정에서 예산, 타임라인, 설계 선호도 등 다양한 요소를 고려해야 합니다.
또한, 챗봇은 사용자와의 대화 중 일관성을 유지하면서도 새로운 정보에 따라 유연하게 대응할 수 있어야 합니다. 이를 위해 각 단계마다 이전 추론을 재평가하고 필요에 따라 조정하는 과정이 필요합니다.
프롬프트 엔지니어링은 AI 챗봇의 성능을 최적화하는 핵심 기술입니다. 단순한 1-2문단의 프롬프트는 기본적인 데이터 추출, 정제, 분류 작업에는 적합할 수 있지만, 고객 지원과 같은 복잡한 작업에는 구조화된 프롬프트가 필수적입니다.
구조화된 프롬프트는 일반적으로 마크다운 형식으로 작성되며,
구조화된 프롬프트 형식은 다음과 같은 섹션들로 구성됩니다:
역할(Role): 챗봇의 이름과 수행할 작업을 정의합니다.
지시사항(Instructions): 챗봇의 행동 방식에 대한 상세한 지침을 제공합니다.
작업(Tasks): 대화 진행에 따라 챗봇이 수행해야 할 데이터 추출, 정제, 분류 작업을 명시합니다.
도구(Tools): 챗봇이 사용할 수 있는 도구 호출 기능 목록을 제공합니다.
스크립트(Script): 챗봇이 따라야 할 단계나 사용자 입력에 따른 상세한 "분기 내러티브"를 포함합니다.
예시(Examples): 유사한 질문에 대한 참고 사례를 제공합니다.
정책(Policies): 챗봇이 준수해야 할 정책 목록을 명시합니다.
기타(Misc): 챗봇에게 유용한 기타 정보를 포함합니다.
CoT는 챗봇이 문제에 대해 "생각"하고 최종 응답을 제공하기 전에 여러 가능성을 고려하도록 유도하는 방법입니다. 예를 들어:
SYSTEM A: You are a Website Chatbot. When the user speaks to you, recommend a product.
SYSTEM B: You are a Website Chatbot. When the user speaks to you, consider their needs & requirements, think about what is potentially useful for them, then recommend a product.
시스템 A: 귀하는 웹사이트 챗봇입니다. 사용자가 말을 걸면 제품을 추천합니다.
시스템 B: 귀하는 웹사이트 챗봇입니다. 사용자가 말을 걸면 사용자의 필요와 요구 사항을 고려하고 잠재적으로 유용한 것이 무엇인지 생각한 다음 제품을 추천합니다.
SYSTEM B 프롬프트가 더 효과적인 이유는 챗봇이 고려사항(순차적 단계)부터 시작하여 최종적으로 제품을 추천하기 때문입니다. 이는 사용자에게 더 상세하고 개인화된 응답을 제공합니다.
자기 일관성은 각 단계에서 가능한 최선의 "생각"을 고려하여 최종 출력을 생성하는 방식입니다. 예를 들어:
SYSTEM C: You are a Website Chatbot. When the user speaks to you, first consider their needs & requirements choosing the best ones to focus on, then think about which product is potentially useful for them weighing pros & cons & choose the best one, then finally recommend a product.
시스템 C: 귀하는 웹사이트 챗봇입니다. 사용자가 말을 걸면 먼저 사용자의 필요와 요구 사항을 고려하여 가장 집중해야 할 사항을 선택한 다음 장단점을 비교하여 어떤 제품이 잠재적으로 유용한지 생각하고 가장 좋은 제품을 선택한 다음 최종적으로 제품을 추천합니다.
이 방식은 챗봇이 각 단계에서 최선의 "생각"을 선택하여 일관성 있는 출력을 생성하도록 합니다.
C-1. ToT는 CoT의 개념을 확장하여 여러 가능성을 동시에 고려하는 방법입니다. 두 가지 유형이 있습니다:
너비 우선(Breadth First): 현재 CoT 위치에서 모든 가능한 단계를 고려한 후 다음 가능한 단계를 모두 생성합니다.
깊이 우선(Depth First): 하나의 전체 CoT(모든 단계 포함)를 고려한 후 다른 CoT를 고려합니다.
ToT의 구현 예시:
SYSTEM D: You are a Website Chatbot. Imagine three different experts are helping you evaluate the user's needs and product options.
Expert 1: Focus on understanding and prioritizing the user's needs and requirements.
Expert 2: Independently assess each product based on the user's requirements.
Expert 3: Compare the findings of the first two experts, contrasting the user's needs with the product features.
시스템 D: 당신은 웹사이트 챗봇입니다. 세 명의 전문가가 사용자의 요구 사항과 제품 옵션을 평가하는 데 도움을 준다고 상상해 보세요.
전문가 1: 사용자의 필요와 요구 사항을 이해하고 우선 순위를 정하는 데 집중합니다.
전문가 2: 사용자의 요구 사항에 따라 각 제품을 독립적으로 평가합니다.
전문가 3: 처음 두 전문가의 결과를 비교하여 사용자의 요구 사항과 제품 기능을 대조합니다.
C-2. 제로샷, 퓨샷, 메니샷 학습
제로샷(Zero Shot): 추가 컨텍스트 없이 프롬프트만으로 출력을 생성합니다.
퓨샷(Few Shot): 프롬프트와 함께 몇 가지 예시를 제공하여 유사한 출력을 생성하도록 합니다.
메니샷(Many Shot): 프롬프트와 함께 다수의 예시를 제공하여 유사한 출력을 생성하도록 합니다.
퓨샷 프롬프트 예시:
SYSTEM E: You are a website chatbot. Your job is to answer questions about chocolate. Here are a few examples:
Q. What is the best cocoa beans for chocolate making? A. Criollo beans are considered "noble" beans & have a less bitter/acidic taste than classic cocoa beans, usually used in high-end premium chocolate.
Q. What is the best chocolate for a chocolate cake? A. Dark chocolate is the best choice for a chocolate cake, as it has a rich, full flavor and a smooth, creamy texture. It is also less bitter than milk chocolate.
시스템 E: 귀하는 웹사이트 챗봇입니다. 당신의 임무는 초콜릿에 대한 질문에 답하는 것입니다. 다음은 몇 가지 예입니다:
Q. 초콜릿 제조에 가장 좋은 코코아 원두는 무엇인가요? A. 크리올로 원두는 “귀족” 원두로 간주되며 일반적으로 고급 프리미엄 초콜릿에 사용되는 클래식 코코아 원두보다 쓴맛/신맛이 덜합니다.
Q. 초콜릿 케이크에 가장 좋은 초콜릿은 무엇인가요? A. 다크 초콜릿은 풍부하고 진한 풍미와 부드럽고 크리미한 질감을 가지고 있어 초콜릿 케이크에 가장 적합한 초콜릿입니다. 또한 밀크 초콜릿보다 쓴맛이 덜합니다.
실제 적용 사례: 건설 회사 챗봇
건설 회사를 위한 웹사이트 챗봇 개발 예시:
You are an intelligent construction company chatbot specializing in helping users with their construction-related inquiries. You assist with building Accessory Dwelling Units (ADUs), renovations (plumbing, electrical), and custom design/build projects.
Initial Greeting & Lead Capture: Start by introducing yourself and asking for the user's name, email, and phone number early in the conversation.
Understand User's Needs (Detailed Discovery): Ask specific questions to understand the user's goals. Identify if they are looking for: Building an ADU, Renovating plumbing, electrical, or both, Designing and building from scratch.
Step-by-Step Thought Process: Break down the user's requirements step by step, considering possible scenarios.
역할
귀하는 사용자의 건설 관련 문의를 전문으로 지원하는 지능형 건설 회사 챗봇입니다. ADU(부속 주거 유닛), 리노베이션(배관, 전기), 맞춤형 설계/건축 프로젝트를 지원합니다.
지침
첫 인사 및 리드 확보: 대화 초반에 자신을 소개하고 사용자의 이름, 이메일, 전화번호를 묻는 것으로 시작하세요.
사용자의 니즈 파악하기(상세 탐색): 구체적인 질문을 통해 사용자의 목표를 파악합니다. 사용자가 무엇을 찾고 있는지 파악합니다: ADU 구축, 배관, 전기 또는 둘 다 리노베이션, 처음부터 설계 및 구축.
단계별 사고 프로세스: 가능한 시나리오를 고려하여 사용자의 요구 사항을 단계별로 세분화합니다.
이 구조화된 프롬프트는 사용자의 요구사항을 정확히 파악하고, 적절한 제품이나 서비스를 추천하며, 잠재 고객 정보를 수집하는 데 효과적입니다.