저번 글에 이어서 이번에는 Prompt Engineering Labs를 구현할 것이다. 프롬프트 엔지니어링(Prompt Engineering)은 LLM과 소통하는 기술이다. 즉, 응답을 생성하기 위해 모델에 보내는 메시지라고 할 수 있다. 프롬프트 엔지니어링에는 크게 Word Choice (단어 선택), Phrasing (문구), Providing addtional information (추가 정보 제공), Providing examples (예제 제
공) 등을 포함하기도 한다. 지금 구현할 모델을 통해 프롬프트를 실험하고 그 결과를 비교할 수 있다.
Run the prompt app
시작하기 위해서는 AWS Cloud9에서 프롬프트 앱을 실행시켜야 한다.
cd ~/environment/workshop/completed/prompt
streamlit run prompt_app.py --server.port 8080
URL을 입력하는 대신에 나는 Preview 탭에서 'Preview Running Application'을 사용했다. 그러면 아래와 같은 팝업창을 확인할 수 있다.
프롬프트 엔지니어링에 여러가지 기술들이 동반되지만 가장 중요한 2가지가 있다. 첫 번째는 명확한 의사소통이다. 사람과 소통할 때와 마찬가지로 모델과도 정확한 소통이 요구된다. 모호한 요청과 누락된 세부 사항은 정확하지 않은 답변으로 이어질 수 있다. 두 번째는 Context(컨텍스트)를 제공하는 것이다. 프롬프트가 적절하게 응답하는 데 도움을 줄 수 있는 추가 정보가 필요한 경우가 있다. 챗봇에서 사용자의 질문에 따라 프롬프트에 Context를 추가하는 경우도 이러한 케이스에 속한다.
Context에 대해 부연 설명을 하자면 Context에 해당하는 것은 말 그대로 문맥이 될 수 있고, Internal Knowledge (내부 정보), Chat History 같은 것도 포함이 된다.
Content Creation
간단하게 여러 프롬프트 분야 중 Content Creation (컨텐츠 생성)을 해보겠다. 컨텐츠 생성의 종류는 레인스토밍, 개요 작성, 초안, 재작성 등이 있다. 이번에는 브레인스토밍에 대해서만 다루겠다.
프롬프트에는 식품 산업을 위한 차세대 AI 서비스에 대한 스타트업 아이디어 목록을 작성해달라고 요청했다.
나쁘지는 않지만 디테일을 추가해달라고 재요청할 것이다. 각 스타트업 아이디어의 이름과 스타트업이 어떤 일을 할 것인지에 대한 프레젠테이션을 입력하도록 해보겠다.
아까보다는 정형화된 틀 안에서 답변하는 것을 확인할 수 있다. 더 자세한 프롬프트를 추가하기 원한다면 각 스타트업의 target market이나 식품 제조업체 등을 물어보는 디테일을 추가할 것을 권한다.
다른 컨텐츠 생성에 팁을 생각해보면 초안 (First Draft)를 요구한 뒤, 질문과 제약 조건을 추가하는 것을 권장한다. 예를 들어, 마케팅 플랜 계획을 요구한 초안을 응답 받으면 '제품을 사용하는 사람은 누구인가?, '제품의 구매자는 누구인가?', '제품의 시장 진출 전략은 무엇인가?'과 같은 질문들을 보충하는 것을 추천한다. 그리고 글을 읽는 대상이 누구인지, 약어와 같은 지양해야할 단어 같은 제약 조건을 걸어두는 것도 더 정확한 응답을 얻는 방법이다.
이러한 방법에는 CoT, XML 태그, Role 주기, multishot 사용 같은 프롬프트 엔지니어링 기술들이 있지만 지금 시간에 자세하게 다루지는 않겠다.
etc
그 외에도 몇 가지 팁을 남기면 아래와 같다.
요약(Summarization)을 할 때, Reading Level을 지정해주기, 구조화된 포맷을 추가하기
Question & Answer을 할 때, 모르면 모른다고 답하라고 말하기, 격려하기, 롤플레잉하기
몰론, Claude에서 제공하는 Auto 프롬프트 생성 기능을 이용하면 그만이다. 하지만 직접 프롬프팅을 해보면서 결과를 비교하면서 원하는 결과를 얻는 일련의 행동을 해보는 것을 권장한다.
마지막으로 아래 링크에서 프롬프트 엔지니어링을 깊이감 있게 습득해보자
1. AWS Bedrock 프롬프트 엔지니어링 가이드라인 (Click me!)
2. Antropic 프롬프트 엔지니어링 오버뷰 (Click me!)
3. Antropic 프롬프트 라이브러리 (Click me!)
'My Work > 웹 & 앱 서비스' 카테고리의 다른 글
SEO (검색 엔진 최적화) 24년 버전_BERT를 곁들인 (12) | 2024.10.20 |
---|---|
AWS Bedrock : Chatbot with RAG 만들기 (0) | 2024.08.09 |
Sementic Search (시맨틱 검색)_토스는 똑똑해 (0) | 2024.08.04 |
Ali Express 상품 리뷰를 통한 감정 모델 분석 (0) | 2024.06.21 |
모두의 주차장 서비스 개선하기 feat. 피처 벡터 (0) | 2024.06.07 |