먹깨비의 일상🍣
article thumbnail
728x90
반응형

 

프롬프트 엔지니어링이란 무엇인가?

 

프롬프트 엔지니어링은 생성형 인공 지능(생성형 AI) 설루션을 안내하여 원하는 결과를 생성하는 프로세스입니다. 생성형 AI는 인간을 모방하려고 시도하지만 고품질의 관련성 높은 결과물을 생성하려면 자세한 지침이 필요합니다. 프롬프트 엔지니어링에서는 AI가 사용자와 더 의미 있게 상호 작용하도록 안내하는 가장 적절한 형식, 구문, 단어 및 기호를 선택합니다. 프롬프트 엔지니어는 창의력을 발휘하고 시행착오를 거쳐 입력 텍스트 모음을 생성하므로 애플리케이션의 생성형 AI가 예상대로 작동합니다.

프롬프트란 무엇인가요?


프롬프트는 특정 작업을 수행하도록 생성형 AI에 요청하는 자연어 텍스트입니다. 생성형 AI는 스토리, 대화, 동영상, 이미지, 음악과 같은 새로운 콘텐츠를 만들어내는 인공 지능 설루션으로, 방대한 양의 데이터로 사전 훈련된 심층 신경망을 사용하는 규모가 아주 큰 기계 학습(ML) 모델을 기반으로 합니다.

대규모 언어 모델(LLM)은 매우 유연하며 다양한 작업을 수행할 수 있습니다. 예를 들어 문서를 요약하고, 문장을 완성하고, 질문에 답하고, 언어를 번역할 수 있습니다. 특정 사용자 입력의 경우 모델은 과거 훈련을 바탕으로 판단한 최상의 결과를 예측하는 방식으로 작동합니다.

하지만 매우 개방적이기 때문에 사용자는 수많은 입력 데이터 조합을 통해 생성형 AI 솔루션과 상호 작용할 수 있습니다. AI 언어 모델은 매우 강력하며, 콘텐츠 제작을 시작하는 데 비용이 많이 소요되지 않습니다. 단어 하나만 제공해도 시스템에서 상세한 응답을 생성할 수 있습니다.

그렇긴 하지만, 모든 유형의 입력이 유용한 출력을 생성하는 것은 아닙니다. 생성형 AI 시스템이 정확하고 연관성 있는 응답을 생성하기 위해서는 콘텍스트와 세부 정보가 필요합니다. 프롬프트를 체계적으로 설계하면 보다 의미 있고 유용한 결과물을 얻을 수 있습니다. 프롬프트 엔지니어링에서는 AI 시스템에서 원하는 결과를 얻을 때까지 프롬프트를 지속적으로 조정합니다.

 

프롬프트 엔지니어링을 배우는 방법은 다음과 같습니다.


명확하고 구체적인 지시 작성: 작업 관련 내용을 모르는 신입 사원에게 지시하듯이, 필요한 결과를 명확하고 구체적으로 얘기하세요. 텍스트의 어조를 어떻게 원하는지 명시하는 것도 도움이 됩니다. 일반적으로 긴 프롬프트가 모델에게 더 많은 명확성과 맥락을 제공하며, 이는 실제로 더 상세하고 관련 있는 결과를 이끌어냅니다.

예제 제공: AI에게 학습을 시키는 것입니다. 만약 어떤 특정 API를 사용한 코드를 얻고 싶다면, 먼저 해당 API에 대한 예제 코드를 보여주며 AI에게 학습을 시키는 방법이 있습니다.

AI 모델에게 생각할 시간 주기: AI 모델에게 짧은 시간이나 적은 단어로 너무 복잡한 작업을 주면, 잘못된 추측을 할 가능성이 높습니다. 이러한 상황에서는 AI 모델에게 문제를 더 오래 생각하도록 (계산하는 노력을 더 하도록) 지시할 수 있습니다.

학습 방식 이해: 일반적으로 LLM 프롬프트 엔지니어링의 학습 방식은 ‘퓨샷(few-shot)’과 ‘제로샷(zero-shot)’ 2가지로 나뉩니다. 제로샷 학습은 간단한 명령어를 프롬프트로 입력하여 LLM에서 예상되는 응답을 생성하는 방식입니다.

이러한 방법들을 통해 프롬프트 엔지니어링을 배울 수 있습니다. 다양한 자료와 강의를 통해 실습하면서 배우는 것이 가장 효과적일 것입니다.

 

프롬프트 엔지니어링 기법이란 무엇인가요?


프롬프트 엔지니어링은 역동적이고 진화하는 분야입니다. 프롬프트를 미세 조정하고 생성형 AI 도구에서 원하는 응답을 얻으려면 언어 기술과 창의적인 표현이 모두 필요합니다.

다음은 엔지니어들이 AI 모델의 자연어 처리(NLP) 작업을 개선하기 위해 사용하는 기법의 몇 가지 예입니다.

사고의 사슬 프롬프트
사고의 사슬 프롬프트는 복잡한 질문을 사고 훈련 과정을 모방한 일련의 더 작고 논리적인 부분으로 나누는 기법입니다. 이렇게 하면 모델이 질문에 바로 답하는 것이 아니라, 일련의 중간 단계를 거치면서 문제를 해결하는 데 도움이 됩니다. 이는 추론 능력을 높입니다.

복잡한 작업에 대해 몇 가지 사고의 사슬 롤아웃을 수행하고 가장 많이 도달하는 결론을 선택할 수 있습니다. 롤아웃이 상당한 수준으로 부합하지 않는 경우, 전문가에 자문을 구해 사고의 사슬을 바로잡을 수 있습니다.

예를 들어 질문이 ‘프랑스의 수도는 어디인가요?’라는 질문에 대해 모델은 '파리', '프랑스의 수도는 파리', '파리는 프랑스의 수도'와 같은 답변으로 이어지는 몇 가지 롤아웃을 수행할 수 있습니다. 모든 롤아웃이 동일한 결론으로 이어지므로 ‘Paris’가 최종 답변으로 선택됩니다.

사고의 나무 프롬프트
사고의 나무 기법은 사고의 사슬 프롬프트를 일반화한 것입니다. 모델에 가능한 다음 단계를 하나 이상 생성하라고 지시합니다. 그런 다음 트리 검색 방법을 사용하여 가능한 각각의 다음 단계에서 모델을 실행합니다.

예를 들어 ‘기후 변화의 영향은 무엇인가요?’라는 질문에 대해 모델은 먼저 ‘환경 영향 목록 작성’ 및 ‘사회적 영향 목록 작성’과 같은 가능한 다음 단계를 생성할 수 있습니다. 그런 다음 후속 단계에서 이들 각각에 대해 자세히 설명합니다.

산파술 프롬프트
산파술 프롬프트는 사고의 나무 프롬프트와 비슷합니다. 모델에 설명을 제시하면서 질문에 답하라고 지시합니다. 그런 다음 모델에 설명의 일부를 설명하라고 지시합니다. 일관되지 않은 설명 트리는 잘라내거나 버립니다. 이를 통해 복잡한 상식적 추론의 성능이 개선됩니다.

예를 들어 ‘하늘은 왜 파란색인가요?’라는 질문에 대해 모델은 먼저 ‘청색광의 짧은 파장이 지구 대기의 가스와 입자에 의해 사방으로 산란되기 때문에 사람의 눈에는 하늘이 파랗게 보입니다’라고 답할 수 있습니다. 그런 다음 청색광이 다른 색보다 더 많이 산란되는 이유와 지구 대기의 구성 등으로 이 설명의 일부를 확장할 수 있습니다.

복잡성 기반 프롬프트
이 프롬프트 엔지니어링 기법에는 몇 개의 사고의 사슬 롤아웃이 포함됩니다. 가장 긴 사고의 사슬이 있는 롤아웃을 선택한 다음 가장 많이 도달하는 결론을 선택합니다.

예를 들어 질문이 복잡한 수학 문제인 경우 모델은 여러 단계의 계산을 포함하는 여러 롤아웃을 수행할 수 있습니다. 이 예에서는 가장 긴 사고의 사슬을 가진 롤아웃을 고려합니다. 즉, 가장 많은 계산 단계를 거치는 롤아웃을 고려하는 것입니다. 다른 롤아웃과 공통된 결론에 도달한 롤아웃이 최종 답변으로 선택됩니다.

생성된 지식 프롬프트
이 기법에서는 프롬프트를 완료하는 데 필요한 관련 사실을 먼저 생성하도록 모델에 지시합니다. 그런 다음 모델은 프롬프트를 완료합니다. 이렇게 하면 모델이 관련 사실에 따라 조정되므로 완성 품질이 더 높아지는 경우가 많습니다.

예를 들어 사용자가 모델에 삼림 벌채의 영향에 대한 에세이를 작성하도록 요청한다고 가정해 보겠습니다. 이 경우 모델은 먼저 ‘삼림 벌채는 기후 변화에 영향을 미친다’, ‘삼림 벌채는 생물 다양성 손실로 이어진다’와 같은 사실을 생성할 수 있습니다. 그런 다음 모델은 에세이의 요점을 자세히 설명합니다.

최소-최대 프롬프트
이 프롬프트 엔지니어링 기법에서는 먼저 문제의 하위 문제를 나열한 다음 순서대로 해결하도록 모델에 지시합니다. 이 방법을 사용하면 이전 하위 문제에 대한 답을 통해 이후의 하위 문제를 해결할 수 있습니다.

예를 들어 사용자가 ‘방정식 2x + 3 = 11에서 x 구하기’와 같은 수학 문제를 모델에 프롬프트로 제시한다고 가정해 보겠습니다. 모델은 먼저 ‘양변에서 3개 빼기’와 ‘2로 나누기’라는 하위 문제를 나열할 것입니다. 그런 다음 순서대로 문제를 해결하여 최종 답을 얻습니다.

자기 개선 프롬프트
이 기법에서는 모델이 문제를 해결하고 솔루션을 비평한 다음 문제, 설루션 및 비평을 고려하여 문제를 해결하도록 유도합니다. 미리 정해진 중지 이유에 도달할 때까지 문제 해결 프로세스가 반복됩니다. 예를 들어 토큰 또는 시간이 부족해지거나 모델이 중지 토큰을 출력할 수 있습니다.

예를 들어 사용자가 모델에 ‘문학에 대한 짧은 에세이를 작성해 주세요’라고 지시한다고 가정해 보겠습니다. 이 경우 모델은 에세이 초안을 작성하고 구체적인 예가 부족하다고 비평하며 구체적인 예를 포함하도록 에세이를 다시 작성할 수 있습니다. 이 과정은 에세이가 만족스럽다고 판단되거나 중지 기준이 충족될 때까지 반복됩니다.

방향 자극 프롬프트
이 프롬프트 엔지니어링 기법에는 원하는 결과 쪽으로 언어 모델을 유도하는 힌트 또는 큐(예: 원하는 키워드)가 포함됩니다.

예를 들어 프롬프트가 사랑에 관한 시를 쓰는 것이라면 프롬프트 엔지니어는 ‘마음’, ‘열정’, ‘영원’을 포함하는 프롬프트를 만들 수 있습니다. 모델에는 ‘'마음', '열정', '영원'이라는 단어가 포함된 사랑에 관한 시를 써보세요’라고 지시할 수 있습니다. 이렇게 하면 모델이 이러한 키워드로 시를 쓰도록 유도할 수 있습니다.

728x90
반응형
profile

먹깨비의 일상🍣

@먹깨비의 일상

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!