프롬프트 엔지니어링 가이드
이 가이드는 프롬프트 설계, 최적화, 평가 및 모니터링을 포함한 대형 언어 모델(LLM)로 작업할 때의 프롬프트 엔지니어링의 핵심 측면을 설명합니다. 개요는 효과적인 프롬프트 작성에 관한 이 동영상을 참조하세요. 더 포괄적인 프롬프트 엔지니어링 가이드는 다음을 참조하세요:
이 가이드는 프롬프트 설계, 최적화, 평가 및 모니터링을 포함한 대형 언어 모델(LLM)로 작업할 때의 프롬프트 엔지니어링의 핵심 측면을 설명합니다.
프롬프트 엔지니어링 이해#
개요는 이 동영상을 참조하세요.
주요 내용:
- 프롬프트의 정의:
- 작업을 해결하기 위해 언어 모델에 보내는 지시문
- 사용자 인터페이스에서 AI 기능의 핵심을 형성합니다
- 프롬프트 품질의 중요성:
- 언어 모델 응답의 품질에 크게 영향을 미칩니다
- 최적의 결과를 위해 프롬프트를 반복하는 것이 중요합니다
- 프롬프트 작성 시 주요 고려 사항:
- 모델에게 수행하도록 요청하는 작업을 이해합니다
- 예상하는 응답 유형을 파악합니다
- 프롬프트를 테스트하기 위한 데이터셋을 준비합니다
- 구체적으로 - AI가 이해할 수 있도록 많은 세부 정보와 컨텍스트를 제공합니다
- 잠재적인 질문과 원하는 답변의 예시를 제공합니다
- 프롬프트 보편성:
- 프롬프트는 다른 언어 모델에 걸쳐 보편적이지 않습니다
- 모델을 변경할 때 프롬프트를 조정해야 합니다
- 특정 팁에 대해서는 언어 모델 공급자의 문서를 참조합니다
- 완전히 전환하기 전에 새 모델을 테스트합니다
- 프롬프트 작업 도구:
- Anthropic Console: 프롬프트 작성 및 테스트 플랫폼
- Generator Prompt: 작업 설명을 기반으로 프롬프트를 생성하는 도구
- 프롬프트 구조:
- 일반적으로 일반 작업 설명을 포함합니다
- 입력 텍스트의 플레이스홀더를 포함합니다
- 특정 지시사항과 제안된 출력 형식을 포함할 수 있습니다
- 더 나은 이해와 데이터 추출을 위해 XML 태그로 입력을 래핑하는 것을 고려합니다
- 시스템 프롬프트:
- AI의 전반적인 톤과 역할을 설정합니다
- 모델의 성능을 향상시킬 수 있습니다
- 일반적으로 프롬프트의 시작 부분에 배치됩니다
- 언어 모델의 역할을 설정합니다
- 모범 사례:
- 과제를 이해하는 데 시간을 투자합니다
- 시작점으로 프롬프트 생성 도구를 사용합니다
- 결과를 개선하기 위해 프롬프트를 테스트하고 반복합니다
- AI가 이해할 수 있도록 올바른 영어 문법과 구문을 사용합니다
- 불확실성 허용 - AI에게 확신이 없으면 "모르겠습니다"라고 말하도록 합니다
- 긍정적인 표현 사용 - AI가 해야 할 일을 말하고, 하지 말아야 할 일을 말하지 않습니다
효과적인 프롬프트 작성을 위한 모범 사례#
개요는 효과적인 프롬프트 작성에 관한 이 동영상을 참조하세요.
이 동영상의 주요 내용:
- 보편적인 "좋은" 프롬프트 없음:
- 프롬프트의 효과는 특정 작업에 따라 다릅니다.
- 프롬프트 작성에는 만능 접근 방식이 없습니다.
- 효과적인 프롬프트의 특성:
- 작업과 예상 결과를 명확하고 설명적으로 표현합니다.
- 직접적이고 자세합니다.
- 원하는 출력에 대해 구체적입니다.
- 고려해야 할 주요 요소:
- 작업, 대상 및 최종 목표를 이해합니다.
- 프롬프트에서 이러한 요소를 명확히 설명합니다.
- 프롬프트 성능 개선 전략:
- 순차적 단계로 지시를 추가합니다.
- 관련 예시를 포함합니다.
- 모델에게 단계별로 생각하도록 요청합니다(사고의 연쇄).
- 답변을 제공하기 전에 추론을 요청합니다.
- 입력 안내 - 구분자를 사용하여 사용자 입력이 시작되고 끝나는 위치를 명확히 표시합니다.
- 모델 선호도에 적응:
- 모델의 선호하는 데이터 구조에 맞게 프롬프트를 조정합니다.
- 예를 들어 Anthropic 모델은 XML 태그와 잘 작동합니다.
- 시스템 프롬프트의 중요성:
- 언어 모델의 역할을 설정합니다.
- 상호작용의 시작 부분에 배치합니다.
- 도구나 긴 컨텍스트에 대한 인식을 포함할 수 있습니다.
- 반복이 중요:
- 프롬프트 작업에서 가장 중요한 부분으로 강조됩니다.
- 지속적인 개선이 더 나은 결과로 이어집니다.
- 품질 제어 구축 - RSpec 또는 Rake 작업으로 프롬프트 테스트를 자동화하여 차이를 파악합니다.
- 전통적인 코드 사용:
- LLM을 호출하지 않고 효율적으로 작업을 수행할 수 있다면 더 신뢰할 수 있고 결정론적인 출력을 위해 코드를 사용합니다.
프롬프트 워크플로우 조정 및 최적화#
LangSmith와 Anthropic Workbench를 함께 사용하는 LLM용 프롬프트 조정 + CEF#
Anthropic 콘솔을 사용한 프롬프트 반복#
개요는 이 동영상을 참조하세요.
LangSmith를 사용한 프롬프트 반복#
개요는 이 동영상을 참조하세요.
LangSmith를 사용한 프롬프트 조정을 위한 데이터셋 사용#
개요는 이 동영상을 참조하세요.
LangSmith에서 자동화 평가 사용#
개요는 이 동영상을 참조하세요.
LangSmith에서 쌍별 실험 사용#
개요는 이 동영상을 참조하세요.
LangSmith와 CEF 중 언제 사용할지#
개요는 이 동영상을 참조하세요.
CEF(중앙화된 평가 프레임워크) 프로젝트의 핵심 포인트#
-
초기 개발
- 프롬프트 반복을 위해 순수 LangSmith로 시작합니다
- 설정이 더 쉽고 빠릅니다
- 초기 단계에서 비용 효율적입니다
-
CEF로 전환 시점
- 기능에 더 많이 투자할 때
- 더 큰 데이터셋으로 작업할 때
- 반복적이고 장기적인 사용을 위해
-
CEF 설정 고려 사항
- 사전 시간 투자가 필요합니다
- 특정 기능에 맞게 평가를 조정해야 합니다
- 입력 데이터 설정(예: 채팅 기능을 위한 로컬 GDK)
-
도전 과제
- 다양한 사용자에 걸쳐 일관된 데이터 보장
- 데이터 공유를 위한 시트 및 임포트와 같은 옵션 탐색
-
현재 CEF 기능
- 코드에 관한 채팅 질문 지원
- 문서 관련 쿼리 처리
- 코드 제안을 위한 평가 포함
-
CEF의 장점
- 로컬 GDK에서 평가 실행 가능
- LangSmith UI에서 결과 확인 가능
- 더 큰 데이터셋 사용 가능
-
유연성
- 특정 사용 사례에 맞게 사용자 정의 필요
- 만능 솔루션이 아닙니다
-
문서화
- CEF에는 광범위한 문서가 있습니다.
-
채택
- 코드 제안 및 create 팀을 포함한 일부 팀에서 이미 사용 중입니다
추가 자료#
더 포괄적인 프롬프트 엔지니어링 가이드는 다음을 참조하세요:
