Education*
Devops
Architecture
F/B End
B.Chain
Basic
Others
CLOSE
Search For:
Search
BY TAGS
linux
HTTP
golang
flutter
java
fintech
개발환경
kubernetes
network
Docker
devops
database
tutorial
cli
분산시스템
www
블록체인
AWS
system admin
bigdata
보안
금융
msa
mysql
redis
Linux command
dns
javascript
CICD
VPC
FILESYSTEM
S3
NGINX
TCP/IP
ZOOKEEPER
NOSQL
IAC
CLOUD
TERRAFORM
logging
IT용어
Kafka
docker-compose
Dart
Llama3.1 설치한 김에 Few-Shot 프롬프팅
Recommanded
Free
YOUTUBE Lecture:
<% selectedImage[1] %>
yundream
2024-08-08
2024-08-08
201
![](https://docs.google.com/drawings/d/e/2PACX-1vTg6jWZ7eqqBL_NSI4G89Ctco30zVagTwSLxmexI3OKCdy-9wqppDBLfqdHXHQDbpw9U28WTUMixLz2/pub?w=798&h=454) [Llama3.1 설치 및 프롬프트 테스트](https://www.joinc.co.kr/w/llama3_prompt_zeroshot) 에서 로컬 PC에 Llama3.1을 설치하고 간단한 zero-shot 프롬프팅을 테스트했다. 이번에는 Few-shot 프롬프팅을 테스트해 볼 계획이다. ## Zero-shot 프롬프팅의 한계 제로샷(Zero-shot)은 특정 작업에 대한 예제를 보지 않고도 모델이 직접 작업을 수행 할 수 있도록 하는 기술이다. 골치 아프게 예제를 제시하지 않아도 되기 때문에 편하고 빠르게 사용 할 수 있지만 여러 한계를 가지고 있다. 현실적인 가장 큰 한계 점은 **문맥 이해의 어려움**일 것이다. 특히 복잡한 문맥의 경우 제로샷 프롬프팅으로는 문맥에서의 미묘한 차이를 이해하고 반영하는데 한계가 있다. 따라서 복잡한 문맥을 필요로 하는 문제에서는 성능이 떨어질 수 있다. 이것은 LLM 만의 문제는 아니다. 사람도 작업 내용이 복잡해지거나 미묘한 차이를 감지해야 하는 작업의 경우 단계적으로 지시하거나 예제를 함께 포함 해서 설명을 해야 제대로 업무를 수행할 수 있다. ## Few-Shot 프롬프팅에 대하여 사람에게도 복잡한 문제는 예제와 함께 알려주면 훨씬 더 잘 이해하고 문제를 해결 할 수 있다. **퓨샷(Few-Shot) 프롬프팅**은 몇 개의 예제를 모델에게 제공해서 작업을 이해하고 수행하게 하는 방법이다. 이들 예제를 통해서 작업의 맥락과 패턴을 파악 할 수 있으므로 문제를 훨씬 더 잘 풀 수 있다. ## 테스트 환경 우분투 리눅스에서 ollama, Llama3.1, Open-webui로 테스트 환경을 만들었다. 자세한 내용은 [Llama3.1 설치 및 프롬프트 테스트](https://www.joinc.co.kr/w/llama3_prompt_zeroshot) 를 참고하자. ## Llama3 ## Few-Shot 프롬프팅 테스트 ##### 감성 분석 제품에 대한 고객 피드백에서 감정 상태를 분석하는 프롬프트다. 문장에 대한 분석 예시와 분석 포맷 예시까지 제공하고 있다. 고객이 그러한 감정 상태를 가진 이유(reason)도 분석을 요청했다. *Prompt* ``` 당신은 문장에 대한 감정을 분석하는 분석가 입니다. 감정 분석의 예시를 참고해서 아래 "문장"의 감정을 분석해주세요. 감정은 "긍정적", "부정적", "중립적" 3가지 입니다. 분석결과는 분석포맷을 참고하여 JSON 형태 출력해주세요. JSON 문장만 출력해 주세요. 문장: TV 드라마를 봤습니다. 시나리오는 괜찮은데, 배우들의 연기가 좋지 않아서 드라마에 몰입할 수 없었습니다. ### 분석포맷 { "sentiment": "중립", "reason": "이유" } ### 예시 문장: "이 영화 정말 좋았어요! 다시 보고 싶어요." 분석: "긍정적" 문장: "음식이 너무 맛없고 서비스도 엉망이었어요." 분석: "부정적" 문장: "제품이 나쁘진 않은데, 가격이 좀 비싼 것 같아요." 분석: "중립적" 문장: "배송이 빨랐고 제품도 설명대로 잘 도착했어요." 분석: "긍정적" 문장: "핸드폰이 자주 꺼져요. 다시는 이 브랜드 안 살 거예요." 분석: "부정적" 문장: "영화가 재미있긴 했지만, 중간에 지루한 부분이 있었어요." 분석: "중립적" ``` *Output* ``` { "sentiment": "중립", "reason": "TV 드라마는 괜찮았는데 배우들의 연기가 좋지 않아서 몰입할 수 없었다." } ``` *Prompt* ``` 약간 비싸긴 하지만 음식은 매우 맛있습니다. 저도 자주 방문하고 있습니다. 추천 드립니다. ``` *Output* ``` { "sentiment": "긍정적", "reason": "음식이 매우 맛있고 방문하는 것이 즐거우며 추천한다." } ``` ## 정보 추출 고객 감정 분석과 유사한 예제다. 여기에서는 제품명을 추출해서, 어떤 제품에서 대해서 고객이 그러한 감정을 가졌는지를 분석하고 있다. *Prompt* ``` You are a robot that only outputs JSON. Refer to the example and extract the sentiment and product name from the question and return it in JSON format.sentiment has values from 1 to 5. question: GTX 4060 Ti 구입했습니다. AI/LLM 테스트 목적으로 구입했는데, 메모리가 16G 입니다. 가격도 60만원대로 착해서 마음에 듭니다. ### example example question: 맥북 프로 M3 를 구매했습니다. 마감은 괜찮은데, 성능이 너무 떨어집니다. 비싼 돈 주고 괜히 산 것 같습니다. example answer: { "sentiment": 1, "product": "맥북 프로 M3" } example question: AMD 5800X CPU 입니다. 최고의 가성비 제품 맞습니다. 멀티 프로세싱 능력은 원래 좋았는데, 이제는 싱글 프로세싱 능력도 Intel을 뛰어넘었습니다. example answer: { "sentiment": 5, "product": "AMD 5800X CPU" } ``` *Output* ``` { "sentiment": 4, "product": "GTX 4060 Ti" } ``` *Prompt* ``` 가성비 모델이라고 해서 LG 17인치 모니터를 구매했습니다. 확실히 가성비가 좋기는 합니다. 가격대비 화질도 괜찮은 것 같습니다. 다만 모니터를 옆에서 보면 색이 좀 왜곡되서 보이는게 맘에 걸립니다. ``` *Output* ``` { "sentiment": 3, "product": "LG 17인치 모니터" } ``` *Prompt* ``` Sony MDR-7506 제품을 구매했습니다. 저음이 조금 약한 것 같아서 마음에 들지 않습니다. 착용감과 가격 등은 그럭저럭 괜찮은 것 같습니다. ``` ``` { "sentiment": 2, "product": "Sony MDR-7506" } ``` ## 요약 이번에는 좀 더 복잡한 프롬프트를 만들었다. 요약한 문장을 1. 2. 3. 이렇게 번호를 붙여서 출력하게 했으며 한국어로만 응답하라고 지시했다. *Prompt* ``` You are a sentence summary assistant. Please summarize the sentences below. Please summarize them with reference to the example. Please respond in the format of "output format" only. Please keep the number of lists to 2-5. All responses must be in Korean. "Sustainable development is becoming a critical focus as the world faces the dual challenges of economic growth and environmental protection. The adoption of green technologies and renewable energy sources is seen as a way to achieve economic progress while minimizing environmental impact. This approach aims to ensure a sustainable future for the next generations." <output format> 1. 2. 3. # example Input: Climate change is an urgent global issue that requires immediate action. The increasing concentration of greenhouse gases in the atmosphere is leading to rising temperatures, melting ice caps, and more frequent extreme weather events. These changes are not only affecting ecosystems but also posing significant risks to human societies Output: 1. Climate change is an urgent global issue that requires immediate action 2. Increasing greenhouse gas concentrations are causing rising temperatures, melting ice caps, and more frequent extreme weather events, posing risks to both ecosystems and human societies. ``` *Output* ``` 1. 지속가능한 개발은 경제성장과 환경보호를 동시에 해결해야 하는 세계적인 도전을 맞아 중요하게 다뤄지고 있다. 2. 녹색 기술의 채택과 재생 가능 에너지 소스 사용이 경제 성장을 달성하는同时 환경적 영향 최소화 하기 위한 방법으로 지목되고 있다. 3. 이 접근법은 다음 세대의 지속가능한 미래를 보장하기 위한 것이다. ``` *Input* ``` 최근 몇 년 동안 기술의 급격한 발전은 우리의 일상생활을 크게 변화시켰습니다. 특히 인공지능(AI)과 빅데이터 분석 기술의 발전은 다양한 산업 분야에서 혁신을 이끌고 있으며, 이는 기업의 운영 방식과 소비자의 행동 패턴에 많은 영향을 미치고 있습니다. AI 기술을 활용한 자동화 시스템은 제조업에서 생산성을 크게 향상시켰으며, 이는 비용 절감과 품질 향상으로 이어지고 있습니다. 또한, 빅데이터 분석을 통해 기업들은 고객의 구매 패턴과 선호도를 보다 정확하게 파악할 수 있게 되었고, 이를 기반으로 맞춤형 마케팅 전략을 수립하여 경쟁력을 강화하고 있습니다. 그러나 이러한 기술 발전은 여러 가지 도전 과제를 동반하고 있습니다. 개인정보 보호와 데이터 보안 문제는 기업과 사용자 모두에게 중요한 이슈로 부각되고 있으며, 해킹과 사이버 공격의 위험이 증가하고 있습니다. 이러한 문제를 해결하기 위해 정부와 기업들은 데이터 보호를 위한 강력한 정책과 기술적 조치를 마련해야 하며, 사용자는 자신의 개인정보를 보호하기 위해 신중한 관리가 필요합니다. 따라서, 기술의 이점을 최대한 활용하면서도 안전하고 윤리적인 사용을 보장하기 위한 지속적인 노력이 필요합니다. ``` *Output* ``` 1. 기술 발전은 우리 일상생활을 크게 변화시키고 있으며 AI와 빅데이터 분석은 다양한 산업에서 혁신을 이끌고 있다. 2. AI 자동화 시스템의 도입으로 제조업의 생산성이 크게 향상되어 비용 절감과 품질 향상이 이루어졌으며, 빅데이터 분석 통해 고객 구매 패턴 및 선호도가 정확하게 파악되며 맞춤형 마케팅 전략 강화되었다. 3. 기술 발전은 개인정보 보호와 데이터 보안 문제를 동반하고 있으며 정부와 기업들은 강력한 정책과 조치를 마련해야 하며 사용자는 자신의 개인정보 관리에 신중해야 한다. ``` *Input* ``` 도시화는 현대 사회의 중요한 트렌드 중 하나로, 많은 사람들이 농촌 지역에서 도시로 이동하고 있습니다. 이로 인해 도시의 인구 밀도가 증가하고 있으며, 이에 따라 주택 부족, 교통 혼잡, 환경 오염과 같은 여러 가지 문제가 발생하고 있습니다. 도시 지역에서는 새로운 주택 개발이 필요하지만, 이를 위한 적절한 공간 확보와 인프라 확장이 어려운 상황입니다. 또한, 교통 혼잡 문제는 대중교통 시스템의 개선과 차량 공유 서비스의 도입을 통해 해결할 수 있지만, 이러한 노력이 모두 효과를 보기는 어렵습니다. 환경 오염 문제는 특히 심각하여, 공기질 저하와 수질 오염이 도시 주민의 건강에 부정적인 영향을 미치고 있습니다. 도시 계획자들은 지속 가능한 개발을 목표로 하여, 녹지 공간을 확대하고, 에너지 효율적인 건축물을 설계하며, 재활용 프로그램을 강화하는 등의 노력을 기울이고 있습니다. 그러나 이러한 조치들이 실질적인 개선으로 이어지기 위해서는 정부와 지역 사회의 협력이 필수적입니다. 궁극적으로, 도시화의 긍정적인 측면을 최대화하고 부정적인 영향을 최소화하기 위해서는 체계적이고 종합적인 접근이 필요합니다. ``` *Output* ``` 1. 도시화는 현대 사회의 중요한 트렌드 중 하나로 많은 사람들이 농촌 지역에서 도시로 이주하고 있으며, 이는 인구 밀도 증가와 다양한 문제를 유발한다. 2. 도시 지역에서는 새로운 주택 개발과 인프라 확장이 어려운 상황에 따라 주택 부족, 교통 혼잡, 환경 오염 문제가 심각해지고 있다. 3. 환경 오염은 공기질 저하와 수질 오염으로 도시 주민의 건강에 부정적인 영향을 미치고 있으며, 지속 가능한 개발을 목표로 하여 녹지 공간 확대, 에너지 효율적인 건축물 설계, 재활용 프로그램 강화가 필요하지만 정부와 지역 사회의 협력이 필수적이다. ``` ## 시나리오 기반 문제 해결 *Prompt* ``` 당신은 고객 불만을 처리하는 고객 서비스 대표입니다. 아래 예시를 참고해서 예시의 형식대로 해결 방안을 알려주세요. 불만: 고객이 최근 구매한 제품이 광고된 설명과 일치하지 않으며 교환 또는 환불을 요청하고 있습니다. ### 예시 1. 불만: "파란색 셔츠를 주문했는데 빨간색 셔츠가 도착했습니다." 해결: 혼동에 대해 사과하고, 올바른 상품을 보내거나 반품 절차를 안내하며, 잘못된 상품을 반품하는 방법을 제공합니다. 2. 불만: "구매한 노트북이 켜지지 않아서 모든 문제 해결 단계를 시도했습니다." 해결: 불편을 끼쳐 드려 사과하고, 교환이나 환불을 제공하며, 결함이 있는 노트북을 반품하는 방법을 안내합니다. 3. 불만: "구매한 제품이 웹사이트에서 설명한 것과 다릅니다." 해결: 불일치에 대해 사과하고, 제품 교환 또는 환불을 제안하며, 문제를 조사할 것임을 고객에게 알립니다. ``` *Output* ``` 1. 고객에게 사과합니다: "사용하실 수 있는 시간을 보내드린 데 대해 죄송합니다." 2. 올바른 상품 전달: "원하는 것처럼 제공되지 않은 것은 정말 아쉽습니다. 올바른 제품이 도착하시면 만족할 수 있을 것 같습니다." 3. 교환 또는 환불 안내: "교환이나 환불을 원하실 경우, [교환/환불] 절차에 따라 신청해 주시면 언제든지 처리하겠습니다." 4. 반품 방법 제공: "반품 방법은 [반품 주소 혹은 반품 센터 정보]입니다. 편하게 연락주셔서 도와드리겠습니다." ``` *Prompt* ``` 노트북 BIOS 설정을 바꾸고 싶은데, BIOS 설정 화면에 들어가는 방법을 모르겠습니다. ``` *Output* ``` 1. 노트북을 재시작합니다: "노트북을 종료한 후, [F2/F12/Delete] 키를 눌러 주세요." 2. F2/F12/Delete 키의 위치 확인: "[노트북 브랜드의 매뉴얼에서 BIOS 진입 방법에 따른 설명]"을 읽어보시고, 노트북이 재부팅되는데 함께 눌려야 하는 키에 대하여 알려드리겠습니다. 3. BIOS 설정 화면 확인: "BIOS 설정 화면에서, [노트북 브랜드가 제공한 매뉴얼]의 설명과 같이 설정을 변경하실 수 있습니다." 4. 조심하셔서 변경해 주세요: "[설정 변경 내용]이 잘못되어 다른 문제를 발생시킬 수 있으므로, 반드시 확인 후 변경해 주세요." 5. 노트북 재부팅: "변경된 사항을 적용하기 위해 노트북을 재부팅 해주세요." ``` *Prompt* ``` 당신은 직원 갈등을 해결하는 인사 관리자입니다. 아래 예시는 유사한 문제를 해결한 예입니다. 예시를 참고해서 아래 문제에 대한 해결 방안을 알려주세요. 문제: "두 명의 직원이 의견 충돌로 인해 프로젝트가 지연되고 있습니다. 이 갈등을 해결하고 프로젝트를 정상 궤도로 돌려놓기 위한 계획을 세워야 합니다." ### 예시 1. **갈등**: "두 팀원이 프로젝트 접근 방식에 대해 의견이 일치하지 않아 긴장이 발생하고 있습니다." **해결**: 중재 회의를 주선하고, 양측의 의견을 듣고, 건설적인 논의를 촉진하며, 상호 합의 가능한 해결책을 찾습니다. 2. **갈등**: "자원 배분을 두고 직원들이 논쟁하고 있어 생산성이 떨어지고 있습니다." **해결**: 갈등의 근본 원인을 파악하고, 자원을 재배분하며, 공정한 자원 배분 프로세스를 도입하여 미래의 갈등을 방지합니다. 3. **갈등**: "두 팀원 간의 성격 충돌이 팀의 사기에 영향을 미치고 있습니다." **해결**: 각각의 직원과 1:1 면담을 실시하고, 그들의 우려를 해결하며, 갈등 해결 교육이나 팀 빌딩 활동을 제공하여 관계를 개선합니다. ``` *Output* ``` 위 예시를 참고하면 다음과 같은 해법이 가능할 것 같습니다. 1. **갈등**: 두 명의 직원이 프로젝트를 진행하는 중에 의견 충돌로 인해 프로젝트가 지연되고 있습니다. **해결**: 1. 첫 단계: **중재 회의**를 개최하여 팀원들의 의견을 수집하고, 건설적인 논의를 촉진합니다. 2. 다음 단계: 각 직원의 의견에 대해 **주의 깊게 듣고**, 이해와 공감을 구축합니다. 3. 이어서 **팀 목표**를 재정리하고, 모든 팀원이 이를 공유하는 **공통 기준**을 정의하여 프로젝트 진행 방향과 중요성에 대해 일치하도록 합니다. 4. 마지막 단계: **가시적인 결과**와 **진전 상황**을 설정하고, 팀원들의 의견이 공유되고 합의된 결과를 반영하는 만큼 **프로젝트가 지속적으로 진전**되어야 함을 강조합니다. 2. **갈등**: 두 명의 직원이 프로젝트에 대한 자원을 놓고 논쟁을 벌여 있습니다. **해결**: 1. 첫 단계: **자원 배분 원인 분석**을 통해 이 갈등이 발생한 이유를 파악하고, 그 원인을 해결할 수 있는 방안을 찾습니다. 2. 다음 단계: 프로젝트의 중요 과제와 팀원 각각의 역량에 맞는 **기능 적인 역할**을 정의하여, 자원을 효과적으로 배분합니다. 3. 이어서 **자원 배분 기준**을 설정하고, 이를 준수하기 위한 **프로세스를 구축**하여, 미래의 갈등을 예방합니다. 3. **갈등**: 두 명의 직원이 프로젝트를 진행하는 중에 성격 충돌로 인해 팀의 사기가 저하되고 있습니다. **해결**: 1. 첫 단계: 각 개인과 **1:1 면담**을 통해 그들의 우려와 갈등 원인을 파악하고, 서로를 이해하고 공감한다는 것을 전제로 대화 환경을 마련합니다. 2. 다음 단계: 갈등 해결 교육이나 팀 빌딩 활동을 제공하여 **팀 구성원의 관계 향상**을 목표로 합니다. 3. 이어서 **갈등 해결 원칙**과 **프로젝트 성공 기준**에 대해 일치하도록 하며, 개인의 성격과 역량을 고려한 **자율적인 역할 배분**을 통해 팀원들의 만족도와 생산성을 향상시킵니다. ``` *Input* ``` 직원 한명이 업무 숙련도가 낮아서, 함께 일하는 직원이 불만을 호소하고 있습니다. ``` *Output* ``` 1. 업무 적합성 조정 : 업무의 어려움과 직원의 역량을 고려하여 업무를 조정합니다. 2. 교육 및 훈련 제공 : 업무의 숙련도가 낮은 직원에게 교육 및 훈련을 제공하여 그들의 역량을 향상 시킵니다. 3. 감싸고 성장하는 문화 조성 : 이직자에 대한 배려와 이해를 확대하며, 직원의 성장을 지원하는 문화를 조성합니다. 예시 - "직원 A"는 업무의 숙련도가 낮아 다른 팀원이 불만을 호소하고 있습니다. 따라서, 교육 및 훈련을 통해 업무의 숙련도를 향상시키고, 업무를 재조정하여 팀원 간의 부담을 줄이도록 합니다. - "직원 B"는 팀 내에서 업무의 어려움과 직원의 역량을 고려하여 업무를 재배분하여 다른 팀원이 업무를 담당하도록 합니다. ``` ## few-shot 노하우 ##### 단순하게 시작하기 아래는 위에서 소개한 few-shot 프롬프트 예제다. ``` You are a sentence summary assistant. Please summarize the sentences below. Please summarize them with reference to the example. Please respond in the format of "output format" only. Please keep the number of lists to 2-5. All responses must be in Korean. "Sustainable development is becoming a critical focus as the world faces the dual challenges of economic growth and environmental protection. The adoption of green technologies and renewable energy sources is seen as a way to achieve economic progress while minimizing environmental impact. This approach aims to ensure a sustainable future for the next generations." <output format> 1. 2. 3. # example Input: Climate change is an urgent global issue that requires immediate action. The increasing concentration of greenhouse gases in the atmosphere is leading to rising temperatures, melting ice caps, and more frequent extreme weather events. These changes are not only affecting ecosystems but also posing significant risks to human societies Output: 1. Climate change is an urgent global issue that requires immediate action 2. Increasing greenhouse gas concentrations are causing rising temperatures, melting ice caps, and more frequent extreme weather events, posing risks to both ecosystems and human societies. ``` 이 경우 예제를 만들기 위해서 복잡하게 했지만 아래와 같은 단순한 형태로 원하는 결과를 얻을 수 있다. *Input* ``` 댱신은 문장을 요약해주는 작업 보조자입니다. 아래 문장을 요약해 주세요. 요약 내용은 "1. 2. 3."의 숫자를 가진 리스트 형태로 출력해주세요. 최근 몇 년 동안 기술의 급격한 발전은 우리의 일상생활을 크게 변화시켰습니다. 특히 인공지능(AI)과 빅데이터 분석 기술의 발전은 다양한 산업 분야에서 혁신을 이끌고 있으며, 이는 기업의 운영 방식과 소비자의 행동 패턴에 많은 영향을 미치고 있습니다. AI 기술을 활용한 자동화 시스템은 제조업에서 생산성을 크게 향상시켰으며, 이는 비용 절감과 품질 향상으로 이어지고 있습니다. 또한, 빅데이터 분석을 통해 기업들은 고객의 구매 패턴과 선호도를 보다 정확하게 파악할 수 있게 되었고, 이를 기반으로 맞춤형 마케팅 전략을 수립하여 경쟁력을 강화하고 있습니다. 그러나 이러한 기술 발전은 여러 가지 도전 과제를 동반하고 있습니다. 개인정보 보호와 데이터 보안 문제는 기업과 사용자 모두에게 중요한 이슈로 부각되고 있으며, 해킹과 사이버 공격의 위험이 증가하고 있습니다. 이러한 문제를 해결하기 위해 정부와 기업들은 데이터 보호를 위한 강력한 정책과 기술적 조치를 마련해야 하며, 사용자는 자신의 개인정보를 보호하기 위해 신중한 관리가 필요합니다. 따라서, 기술의 이점을 최대한 활용하면서도 안전하고 윤리적인 사용을 보장하기 위한 지속적인 노력이 필요합니다. ``` *Output* ``` 1. 기술 발전은 기업의 운영 방식과 소비자의 행동 패턴에 영향을 미쳐 생산성 향상과 품질 개선, 맞춤형 마케팅 전략 수립 등 혁신을 가져옵니다. 2. 개인정보 보호와 데이터 보안 문제는 해킹과 사이버 공격의 위험이 증가하는 심각한 이슈로 부각되고 있습니다. 3. 기술 발전을 위한 지속적인 노력은 안전하고 윤리적인 사용을 보장하기 위한 것이며, 정부와 기업들은 강력한 정책과 기술적 조치를 마련하여 데이터 보호를 지원해야 합니다. ``` 사람도 지시내용이 많아지면 오히려 문제를 풀기 어려워한다. 가능하면 간략하고 단순한 형태로 프롬프트를 만들어야 한다. 아래는 자연어를 SQL로 변환하는 예제인데, 이런 경우에는 정확한 테이블과 필드명을 알고 있어야 하기 때문에 few-shot을 이용해서 반드시 학습을 시켜야 할 것이다. *Input* ``` 당신은 SQL 문을 만드는 데이터베이스 관리자의 보조자 입니다. DDL 정보를 이용해서 아래의 문장을 SQL로 변환해 주세요. 대한민국 서울에 살고 있는 고객이 몇 명인가요. ## DDL CREATE TABLE `customers` ( `CustomerID` varchar(5) NOT NULL, `CompanyName` varchar(40) NOT NULL, `ContactName` varchar(30) DEFAULT NULL, `ContactTitle` varchar(30) DEFAULT NULL, `Address` varchar(60) DEFAULT NULL, `City` varchar(15) DEFAULT NULL, `Region` varchar(15) DEFAULT NULL, `PostalCode` varchar(10) DEFAULT NULL, `Country` varchar(15) DEFAULT NULL, `Phone` varchar(24) DEFAULT NULL, `Fax` varchar(24) DEFAULT NULL, `Image` longblob, `ImageThumbnail` longblob, PRIMARY KEY (`CustomerID`), KEY `City` (`City`), KEY `CompanyName` (`CompanyName`), KEY `PostalCode` (`PostalCode`), KEY `Region` (`Region`) ) ``` *Output* ``` SELECT COUNT(*) FROM customers WHERE Country = '대한민국' AND City = '서울'; ``` *Input* ``` 대한민국 서울에 사는 모든 고객의 주소와 전화번호를 알려주세요. ``` *Output* ``` SELECT Address, Phone FROM customers WHERE Country = '대한민국' AND City = '서울'; ``` *Input* ``` 대한민국 서울에 사는 최근 가입한 고객 100명의 주소와 전화번호를 알려주세요. ``` *Output* ``` SELECT Address, Phone FROM customers WHERE Country = '대한민국' AND City = '서울' ORDER BY CustomerID DESC LIMIT 100; ``` ## Zero-shot 프롬프트도 쓸만하다. LLM의 능력이 좋아지면서 개떡 같이 말해도 찰떡 같이 알아듣는 모델이 늘어나고 있다. 즉 LLM의 성능이 점점 더 좋아지고 있다. 아래 프롬프트 예제를 보자. *Prompt* ``` Generate a flavorful DnD 5e character for a campaign set in Faerûn. Include: Name, race, class (including subclass if applicable), and level (between 1-5) Alignment and brief personality description Important stats (using point buy) and top 4 skills A 3-sentence origin story tied to a specific region or event in the Forgotten Realms 3 concise playstyle notes covering combat tactics and roleplaying hooks Essential equipment and one unique or signature item One distinctive physical feature or mannerism Ensure all content is consistent with the setting and lore of Faerûn. Aim for a character concept that's both mechanically interesting and rich in roleplaying potential. ``` *Output* Here is a flavorful DnD 5e character: **Name:** Zorvath "Zor" Blackwood **Race:** Half-Elf (Faerûnian half-elf from the north) **Class/Level:** Ranger (Gloom Stalker) / Level 3 **Alignment:** Neutral Good **Personality:** Zor is a quiet and introspective individual with a strong connection to nature. She has a deep respect for the land and its creatures, but also possesses a steely determination to protect it from those who would harm it. Despite her reserved nature, she has a soft spot for children and will go out of her way to help them. **Stats (using point buy):** - Strength: 14 (+2) - Dexterity: 18 (+4) - Constitution: 12 (+1) - Intelligence: 10 (+0) - Wisdom: 16 (+3) - Charisma: 8 (-1) **Top 4 skills:** Survival, Nature, Perception, Stealth **Origin Story:** Zorvath was born and raised in the frozen tundra of Icewind Dale, where she grew up learning the ways of the wilderness from her human father, a skilled trapper. However, after a traumatic event involving the slaughter of her family's village by orcs, Zorvath fled to the nearby forest of Tethir, where she spent years honing her skills as a ranger and tracking those responsible for the atrocity. **Playstyle Notes:** 1. **Gloom Stalker tactics:** Zor uses her expertise in Stealth and Survival to sneak up on enemies, then uses her bow or short sword to take them down quickly. She also employs her Knowledge of Nature to track and anticipate enemy movements. 2. **Protecting the land:** As a Gloom Stalker, Zor has a deep connection to nature and will fiercely defend it from those who seek to desecrate it. This can lead to roleplaying opportunities with fellow adventurers or NPCs who may have differing views on how to protect the land. 3. **Vulnerability to children:** Despite her tough exterior, Zor has a soft spot for children and will go out of her way to help them. However, this vulnerability can make her more susceptible to manipulation by those who would use it against her. **Essential Equipment:** - Longbow with 20 arrows - Short sword - Leather armor - Backpack (with bedroll, rations, waterskin, and rope) - Hunter's tools - Herbalism kit **Unique Item:** A small, intricately carved wooden box containing a vial of sacred water from the River Tethir. This water is said to possess healing properties and is used by Zor to calm her nerves in times of stress. **Distinctive Physical Feature/Mannerism:** Zor has a distinctive scar above her left eyebrow, shaped like a crescent moon. She also has a habit of whispering softly to herself when tracking or hunting, as if communicating with the land itself. --- 이 프롬프트는 어떤 특정한 예시나 추가적인 정보를 제공하지 않았음에도 복잡한 과제를 잘 수행하고 있다. 모델은 사전에 학습된 지식을 바탕으로 D&D(던전 앤 드래곤)캐릭터를 성공적으로 생성했다. ## 정리 프롬프트 엔지니어링에서 반드시 복잡한 기법을 사용해야 좋은 결과가 나오는 것은 아니다. 상황에 따라서 Zero-shot, Few-shot, Chain-of-Thought(CoT)기법을 적절하게 사용해야 한다. 각 기법이 적합한 상황은 아래와 같다. **Zero-shot** 1. 간단한 질문이나 명확한 정보를 요구 할 때: 예를 들어, 상식적인 질문이나 짧고 명확한 답변을 기대할 때, zero-shot이 적합하다. 2. 빠른 응답이 필요할 때: 추가적인 예시나 힌트를 주지 않기 때문에 빠르게 결과를 얻을 수 있다. 3. 새로운 유형의 질문에 답할 때: 이전에 다뤄본 적이 없는 질문이 지만, 모델이 일반적인 언터 패턴을 통해서 답변을 생성 할 수 있는 경우. 4. 예시: "일본의 수도는 어디인가요"와 같은 단순한 사실을 묻는 질문에는 Zero-shot 접근이 적합하다. **Few-shot** 1. 유사한 유형의 작업을 여러 번 수행해야 할 때: 모델이 특정 패턴을 인식 할 수 있도록 여러 예시를 제공하여 더 나은 결과를 얻을 수 있다. 2. 복잡한 작업이나 특정 형식의 출력을 원하는 경우: 여러 개의 예시를 통해 모델이 원하는 형식을 이해하고 일관된 결과를 생성할 수 있다. 3. 창의적인 작업이나 긴 텍스트 생성이 필요한 경우: 예시를 통해 모델이 더욱 구체적이고 일관된 내용을 생성하게 할 수 있다. **Chain-of-Thought(CoT)** 1. 복잡한 문제 해결이나 논리적 추론이 필요한 경우: 문제를 단계별로 해결 할 수 있도록 모델의 사고 과정을 유도하여 정확한 답변을 도출한다. 2. 수학적 문제나 추론이 필요한 경우: CoT 기법을 사용해 모델이 문제를 단계적으로 풀도록 하면, 최종 답변의 정확도를 높일 수 있다. 3. 설명형 답변이 필요할 때: 논리적인 설명이나 여러 단계를 포함한 답변이 필요할 때 **기법 선택의 요령** 먼저 Zero-shot을 시도하고, 원하는 결과가 나오지 않으면 Few-shot이나 CoT를 시도한다. 즉 결과의 정확도를 보면서 점진적으로 복잡한 기법을 적용하는 것이 효율적이다.
Recent Posts
SLA 다운타임 계산기
Docker로 GitLab 설치하기
Ubuntu Linux에 NVIDIA 드라이버 설치
Gemini를 이용한 E-commerce 제품 설명서 생성
프롬프트 엔지니어링 101
Llama3와 MySQL을 이용한 Text2SQL
Llama3.1 설치한 김에 Few-Shot 프롬프팅
Llama3.1 설치 및 프롬프트 테스트
신뢰할 수 있는 AI 앱을 설계하기 위한 LLM 개발원칙
LiteLLM을 이용하여 OpenAI API로 멀티 LLM 통합
Archive Posts
Tags
AI
LLM
Copyrights © -
Joinc
, All Rights Reserved.
Inherited From -
Yundream
Rebranded By -
Joonphil
Recent Posts
Archive Posts
Tags