LLM 질문, 어떻게 해야 할까요? 프롬프트 엔지니어링으로 답을 찾으세요!
LLM(Large Language Model) 사용 시, 질문 방식이 결과에 큰 영향을 미치며, 이를 위한 전문 분야인 프롬프트 엔지니어링(Prompt Engineering)이 존재함
모호성(Ambiguidade) 회피, 범위(Escopo) 제한, 관련 컨텍스트(Contexto) 제공을 통해 LLM의 답변 품질을 향상시킬 수 있음
모호한 질문은 다양한 답변을 유도하지만, 구체적인 질문은 원하는 답변을 얻을 확률을 높여 생산성(Produtividade) 향상에 기여함
모호성을 피하는 방법: 명확한 질문의 중요성
본문에 따르면, 모호한 질문은 LLM이 다양한 답변 경로를 선택하게 하여 원하는 결과를 얻기 어렵게 만든다. 예를 들어, 'API 생성'과 같은 모호한 질문은 REST, GraphQL 등 다양한 API 유형과 언어, 데이터베이스 선택의 여지를 남긴다.
구체적인 요구사항 명시: Node.js, Express, TypeScript, Stripe 결제, 특정 엔드포인트, 데이터 유효성 검사, 데이터베이스, 로깅 등 구체적인 기술과 조건을 명시해야 한다.
제약 조건 추가: HTTP 상태 코드, 재시도 횟수 제한 등 명확한 제약 조건을 설정하여 LLM의 답변 범위를 좁힌다.
결과적으로, 명확한 질문은 LLM이 '가장 적합한' 답변을 선택하도록 유도하여, 개발자의 생산성(Produtividade) 향상에 기여한다.
범위 제한: LLM의 '주의 창' 활용
글에서는 LLM이 처리할 수 있는 토큰 수인 '컨텍스트 윈도우(Context Window)' 내에서, 관련 없는 토큰을 줄여 LLM이 핵심 정보에 집중하도록 해야 한다고 설명한다.
범위 설정: 'Docker'에 대한 질문 대신, 'Docker multi-stage build'와 같이 특정 주제에 집중하여 질문한다.
관련성 강조: JavaScript 애플리케이션의 Docker 이미지 최적화와 같이, 구체적인 기술과 목표를 명시한다.
집중도 향상: 질문의 범위를 좁힘으로써 LLM이 핵심 정보(Informações Chave)에 집중하도록 유도하고, 보다 정확하고 유용한 답변을 얻을 수 있다.
결론적으로, 질문의 범위를 좁히는 것은 LLM의 '주의 창'을 효과적으로 활용하여 원하는 결과를 얻는 핵심 전략이다.
관련 컨텍스트 제공: LLM의 '상태' 설정
본문에 따르면, LLM은 요청 간에 정보를 기억하지 못하므로, 질문에 필요한 모든 컨텍스트를 포함해야 한다.
상태 설정: 코드 검토 요청 시, 사용 언어, 프레임워크, 개발자 수준, 코드 스타일, 팀 표준 등을 명시한다.
세부 정보 포함: S3 파일 업로드, ESLint, Prettier, async/await, 사용자 정의 오류 처리, 프로덕션 환경, 업로드 빈도 등 구체적인 정보를 제공한다.
문제점 강조: 메모리 누수, 오류 처리, S3 SDK 사용과 같은 특정 문제에 집중하도록 지시한다.
결과적으로, 충분한 컨텍스트는 LLM이 정확한 답변(Respostas Precisas)을 생성하는 데 필수적이며, 개발자의 문제 해결 능력을 향상시킨다.
LLM의 한계 이해: '확률 계산'의 본질
글에서는 LLM이 '사고'하는 것이 아니라, 확률을 계산하여 답변을 생성한다는 점을 강조한다.
모델의 한계 인식: LLM의 답변은 학습 데이터에 의존하므로, 모델이 모르는 정보는 제공할 수 없다.
질문 전략: LLM의 한계를 이해하고, 모델이 잘 처리할 수 있는 방식으로 질문을 구성한다.
테스트 및 반복: 다양한 질문을 시도하고, 결과를 평가하여 LLM과의 상호 작용을 개선한다.
결론적으로, LLM의 작동 방식을 이해하고, 모델의 한계를 인지하는 것은 효과적인 프롬프트 엔지니어링(Engenharia de Prompt)의 핵심이다.