#인공지능
프롬프트 엔지니어링: Claude 3.0으로 데이터분석하기
잘 설계된 프롬프트를 통해 AI의 능력을 최대한 활용할 수 있습니다. 본 글에서는 프롬프트 엔지니어링의 개념과 팁, 그리고 Claude 3.0을 활용한 체인 프롬프트로 데이터분석 하기를 소개하겠습니다.
2024-03-19 | 김정은
소개
프롬프트 엔지니어링은 대화형 AI 모델과 원활하게 상호작용하기 위한 기술을 의미합니다.
잘 설계된 프롬프트를 통해 AI의 능력을 최대한 활용할 수 있습니다.
본 글에서는 프롬프트 엔지니어링의 개념과 팁, 그리고 Claude 3.0을 활용한 체인 프롬프트로 데이터분석 하는 법을 소개하겠습니다.
원하는 결과를 얻는 확률을 높이는 프롬프트 작성 팁
- 명확하고 구체적인 지시사항 작성: 모델이 이해하기 쉬운 명확한 지시사항을 작성합니다.
- 예시와 컨텍스트 제공: 작업에 필요한 예시와 함께 문제의 컨텍스트를 제공합니다.
- 작업 분할 및 세부 단계 안내: 작은 단계로 나누고 세부적인 지침을 제공하여 모델이 효과적으로 작업을 수행할 수 있도록 합니다.
- 제약조건과 기대사항 명시: 작업 범위를 정의하고 기대되는 결과를 명시합니다.
- 개선을 위한 피드백 요청: 모델의 출력을 분석하고 개선 사항을 파악하기 위해 피드백을 요청합니다.
프롬프트 기법 소개
- 제로샷 프롬프팅(Zero-Shot Prompting): 작은 예시 세트로 모델을 학습시키고 새로운 작업을 수행하도록 유도합니다.
- Few-Shot 프롬프팅: 제한된 예시를 사용하여 모델이 새로운 작업을 수행하도록 유도합니다.
- 체인 오브 솔루션(Chain Of Solution) 프롬프팅: 여러 단계로 구성된 작업을 수행할 때 모델에게 각 단계의 결과물을 입력으로 제공하여 원하는 결과를 얻도록 유도합니다.
- 복잡한 문제를 순차적인 하위 작업으로 분할하여 해결합니다.
- 예: “파이썬 코드를 짜서 엑셀 파일에서 데이터를 읽고, 전처리한 다음 scikit-learn을 이용해 회귀 모델을 만들어주세요”
- 엑셀 파일에서 데이터 읽기
- 데이터 전처리
- 회귀 모델 생성
- 반복적 프롬프팅: 모델의 출력을 분석하고 필요한 경우 프롬프트를 수정하고 모델을 재학습시켜 원하는 결과를 얻을 때까지 반복합니다.
- 예: “이 기술 문서 요약해주세요” → 프롬프트 피드백 → “그러면 [이 부분]을 [이렇게] 보완해서 다시 요약해주시겠어요?”
체인 프롬프트 (Chain Prompt)란?
- 복잡한 작업을 여러 단계로 나누어 AI 모델에게 제시하는 기법입니다.
- 이를 통해 AI가 각 하부 작업에 집중할 수 있어 전체 작업 수행이 용이해집니다.
- 사용자는 중간중간 피드백과 추가 지시를 줄 수 있습니다.
체인 프롬프트의 구성
- 1단계: 전체 작업에 대한 플로우 정리
- 2단계: 세부 단계들의 간단한 작업 내용 정리
- 3단계: 각 단계별로 AI가 수행해야 할 구체적인 지침
체인 프롬프트 활용 데이터 분석 하기
- 전체 작업: 판매 데이터를 분석하여 인사이트 보고서 작성
- 단계
- 데이터 로드 및 탐색
- 데이터 전처리 및 특징 엔지니어링
- 분석 모델링 및 성능 평가
- 시각화 및 주요 인사이트 정리
- 보고서 작성 (텍스트 및 시각화 포함)
- 단계별 지침
- pandas를 이용해 엑셀 데이터를 로드하고 기본 통계량을 확인
- 결측치 처리, 이상치 제거, 범주형 변수 인코딩 등 전처리 작업
- 회귀, 의사결정트리 등 적절한 모델 선택 후 학습/평가
- 시각화 라이브러리(matplotlib, seaborn)로 주요 인사이트 시각화
- 분석 배경, 과정, 인사이트를 문서에 정리하여 보고서 작성
- 사용 방법
- AI 모델(예: Claude)에게 ” > Chain:” 명령어로 체인 프롬프팅 모드 실행
- 위와 같이 체인 프롬프트 내용을 작성
- AI가 1단계 지침에 따라 작업 수행
- 그 외 피드백, 수정 지시 등을 지속적으로 제공하며 전체 작업 완수
Claude 3.0 체인 프롬프트 활용 데이터 분석 실습 예시
Claude3.0을 활용하여 체인 프롬프팅 (Chain Prompting) 방법으로 판매 데이터 분석 보고서를 작성하기
1단계: 데이터 로드 및 전처리
import pandas as pd
# 데이터 로드
data = pd.read_csv('sales_data.csv')
# 전처리
data = data.dropna(subset=['sales'])
data = data[data['sales'] > 0]
prompt = """
다음은 판매 데이터의 일부입니다:
<데이터 프레임 5행 제시>
1. 이 데이터셋의 특징을 설명해주세요.
2. 아웃라이어가 있는지 확인하고 제거해주세요.
3. 분석에 필요한 피처를 선택하거나 새 피처를 만들어주세요.
데이터 전처리 완료 후 "계속"이라고 말씀해주세요.
"""
response = get_response(prompt)
print(response)
2단계: 탐색적 데이터 분석
prompt = """
전처리가 잘 되었습니다. 계속해서 다음 작업을 수행해주세요:
1. 각 피처의 기술 통계량을 확인해주세요.
2. 범주형 변수와 수치형 변수를 시각화해서 분포를 확인해주세요.
3. 두 변수 간 상관관계도 확인해주세요.
EDA(탐색적 데이터 분석) 결과를 확인했으면 "계속"이라고 말씀해주세요.
"""
response = get_response(prompt)
print(response)
3단계: 모델링 및 평가
prompt = """
EDA 결과를 통해 데이터에 대한 이해가 높아졌습니다. 이제 모델링 단계입니다.
1. 타겟 변수는 'sales'입니다. 적절한 모델(회귀/분류)을 선택해주세요.
2. 학습 데이터와 테스트 데이터를 분리해주세요.
3. 모델을 학습시키고 테스트 데이터에 대한 성능을 평가해주세요.
4. 하이퍼파라미터 튜닝 등 모델 개선 방안이 있다면 제안해주세요.
모델링이 완료되면 "계속"이라고 말씀해주세요.
"""
response = get_response(prompt)
print(response)
4단계: 인사이트 도출 및 시각화
prompt = """
모델링 결과가 만족스럽습니다. 이제 최종 단계입니다.
1. 분석 결과에서 주요 인사이트를 3가지 이상 도출해주세요.
2. 인사이트를 잘 표현할 수 있는 시각화(그래프, 차트 등)를 만들어주세요.
3. 분석 과정 요약 및 의견을 포함한 최종 보고서 초안을 작성해주세요.
이상으로 데이터 분석이 완료되었습니다. 최종 보고서 초안을 확인하겠습니다.
"""
response = get_response(prompt)
print(response)
이렇게 체인 프롬프트 (Chain Prompt)를 활용하여 데이터 분석 전체 프로세스를 Claude 3.0 모델에게 단계적으로 안내할 수 있습니다.
각 단계에서 모델의 출력을 확인하고 필요한 피드백과 추가 지시를 줄 수 있습니다.
get_response 함수는 클라우드 API를 통해 프롬프트를 Claude 모델에 전달하고 응답을 받는 역할을 합니다.
실제 코드에서는 API 키 설정, 응답 parsing 등의 부가 코드가 필요할 것입니다.
프롬프트 엔지니어링 기법을 적절히 활용하면 AI 모델의 강력한 분석 능력을 발휘할 수 있으며, 복잡한 데이터 분석 작업도 체계적으로 수행할 수 있습니다.
-
레퍼런스 : Claude3.0 Docs