프롬프트 엔지니어링 이해

완료됨

Azure OpenAI에서 사용할 수 있는 것과 같이 AI 모델에 보내는 입력 프롬프트의 품질은 다시 가져오는 항목의 품질에 직접적인 영향을 줍니다. 모델에 보내는 프롬프트를 신중하게 구성하면 모델이 더 올바르고 흥미로운 응답을 제공할 수 있습니다.

프롬프트 엔지니어링이란

생성형 AI 모델은 방대한 양의 데이터에 대해 학습되었으며 프롬프트의 가장 가능성이 높은 연속성을 기반으로 텍스트, 이미지, 코드, 창의적인 콘텐츠를 생성할 수 있습니다.

프롬프트 엔지니어링은 AI 모델을 더 잘 활용하기 위해 프롬프트를 디자인하고 최적화하는 프로세스입니다. 효과적인 프롬프트 설계는 프롬프트 엔지니어링의 성공에 매우 중요하며 특정 작업에 대한 AI 모델의 성능을 크게 향상시킬 수 있습니다. 관련 있고 구체적이며 명확하며 잘 구성된 프롬프트를 제공하면 모델이 컨텍스트를 더 잘 이해하고 보다 정확한 응답을 생성하는 데 도움이 될 수 있습니다.

예를 들어 OpenAI 모델이 제품 설명을 생성하도록 하려면 제품의 기능과 이점을 설명하는 자세한 설명을 제공할 수 있습니다. 이 컨텍스트를 제공하여 모델은 보다 정확하고 관련 있는 제품 설명을 생성할 수 있습니다.

또한 프롬프트 엔지니어링은 AI 모델의 편견을 완화하고 공정성을 개선하는 데 도움이 될 수 있습니다. 다양하고 포괄적인 프롬프트를 디자인하여 모델이 특정 그룹 또는 관점에 편향되지 않도록 할 수 있습니다.

중요

아무리 좋은 프롬프트를 디자인해도 AI 모델의 응답은 사실로 간주되거나 편견에서 완전히 자유로워서는 안 됩니다. 항상 AI를 책임감 있게 사용하세요. 자세한 내용은 Azure OpenAI 및 Microsoft의 AI 원칙에 대한 Microsoft의 투명성 고지를 참조하세요.

또한 프롬프트 엔지니어링은 모델이 응답을 생성하는 데 사용하는 참조를 이해하는 데 도움이 될 수 있습니다. 생성형 AI 모델에는 많은 매개 변수가 있으며 사용자가 따르는 논리는 대부분 알 수 없으므로 사용자가 제공하는 응답에 도달하는 방법을 혼동할 수 있습니다. 쉽게 이해하고 해석할 수 있는 프롬프트를 설계해 우리는 모델이 응답을 생성하는 방법을 인간이 더 잘 이해할 수 있도록 도울 수 있습니다. 이는 모델이 의사 결정을 내리는 방법을 이해하는 것이 중요한 의료와 같은 분야에서 특히 중요할 수 있습니다.

사용자 고유의 프롬프트를 엔지니어링할 때 활용할 수 있는 다양한 방법이 있으며, 그 중 상당수는 이 모듈의 향후 단원에서 다룹니다. 여기에는 지침, 상황별 콘텐츠, 신호 또는 퓨샷 예제를 제공하고 프롬프트에서 콘텐츠를 올바르게 정렬하는 것이 포함됩니다. 여기서 다루는 방법은 이 영역이 미묘하고 유동적인 주제이기 때문에 완전하지 않습니다.

API 엔드포인트에 대한 고려 사항

이 모듈의 나머지 부분에 있는 예제에서는 ChatCompletion을 중점적으로 다룹니다. ChatCompletion은(는) 시스템 메시지에 모든 지침이 포함되고 사용자 역할 메시지에 사용자 콘텐츠가 제공되는 비 채팅 시나리오에도 사용할 수 있습니다. 이러한 예제의 대부분은 원하는 경우 Completion 엔드포인트를 사용하도록 변경할 수 있습니다.

모델 가용성 측면에서 Completion 엔드포인트는 gpt-3 이하 버전과 함께 사용할 수 있으며, ChatCompletiongpt-35-turbo 이상 모델과 함께 사용할 수 있습니다.

모델 매개 변수 조정

이 모듈에서 설명하는 기술 외에도 모델의 매개 변수를 조정하면 응답에 상당한 영향을 미칠 수 있습니다. 특히 temperaturetop_p(top_probability)은(는) 모델의 임의성을 제어하지만 다른 방식으로 모델의 응답에 영향을 미칠 가능성이 가장 높습니다.

값이 높을수록 창의적인 임의의 응답이 생성되지만 일관성이나 집중이 저하될 수 있습니다. 응답은 이러한 매개 변수에 대해 더 높은 값으로 허구적이거나 고유한 이점이 될 것으로 예상되는 반면, 보다 일관되고 구체적인 콘텐츠는 더 낮은 값을 사용해야 합니다.

동일한 프롬프트로 이러한 매개 변수를 조정하여 응답에 미치는 영향을 확인합니다. temperature 또는 top_p을(를) 한 번에 변경하는 것이 좋지만 둘 다 변경하지 않는 것이 좋습니다.