KOROMOON

착한 사마리아인이 되고 싶습니다.

7/01/2023

CHATGPT 를 위한 프롬프트 엔지니어링 (원제 : PROMPT ENGINEERING FOR CHATGPT)


2023년 05월 05일 TechRxiv 사이트에 기재된 프롬프트 엔지니어인 Sabit Ekin 님이 쓴 논문을 번역함.

원제 : PROMPT ENGINEERING FOR CHATGPT

원본 링크 : 

https://www.techrxiv.org/articles/preprint/Prompt_Engineering_For_ChatGPT_A_Quick_Guide_To_Techniques_Tips_And_Best_Practices/22683919


본인은 번역하면서 느낀 점은 ChatGPT 는 디지털 세계로 들어간 언어학의 산물이라고 생각됨.

아이언맨 영화에서 토니 스타크가 자비스 인공지능과 대화하는 장면이 나옴.

그냥 생각없이 말하기 보다는 정확한 범위 설정, 정확한 단어 선택 등으로 확실히 명령내리는 것처럼 ChatGPT 에게도 그와 같이 명령을 내려야 함.







CHATGPT 를 위한 프롬프트 엔지니어링 (원제 : PROMPT ENGINEERING FOR CHATGPT)

기술, 팁 및 모범 사례에 대한 빠른 가이드

최고로부터 배우기: Genie(ChatGPT) 가 현명한 소원(프롬프트)을 만드는 방법을 알려줌




개요


빠르게 진화하는 자연어 처리(NLP) 환경에서 ChatGPT 는 다양한 산업 및 애플리케이션을 위한 강력한 도구로 부상했음.

ChatGPT 의 잠재력을 최대한 활용하려면 AI NLP 모델에서 원하는 응답을 이끌어내기 위해 입력 프롬프트를 설계하고 개선하는 프로세스인 프롬프트 엔지니어링 기술을 이해하고 마스터하는 것이 중요함.

이 문서는 ChatGPT 로 최적의 결과를 달성하기 위한 프롬프트 엔지니어링 기술, 팁 및 모범 사례를 마스터하기 위한 포괄적인 가이드를 제공함.

토론은 ChatGPT 소개와 프롬프트 엔지니어링의 기초로 시작하여 명료성, 명시적 제약, 실험 및 다양한 유형의 질문 활용과 같은 효과적인 프롬프트 제작을 위한 기술 탐색으로 이어짐.

또한 이 문서에서는 반복 개선, 사용자 의도 균형, 외부 리소스 활용, 윤리적 사용 보장을 비롯한 모범 사례를 다룸.

온도 및 토큰 제어, 프롬프트 연결, 도메인별 적응 및 모호한 입력 처리와 같은 고급 전략도 다룸.

실제 사례 연구는 고객 지원, 콘텐츠 생성, 도메인별 지식 검색 및 대화형 스토리텔링에서 프롬프트 엔지니어링의 실제 적용을 보여줌.

이 기사는 효과적인 프롬프트 엔지니어링이 ChatGPT 성능에 미치는 영향, 향후 연구 방향, ChatGPT 커뮤니티 내에서 창의성과 협업 촉진의 중요성을 강조하면서 결론을 내림.




( 1 ) 소개


1.1 ChatGPT 개요


ChatGPT는 GPT-4 아키텍처를 기반으로 OpenAI에서 개발한 고급 언어 모델임.

그것은 많은 텍스트 코퍼스(corpus)에 대해 훈련되었으며 다양한 맥락에서 인간과 같은 반응을 생성하는 능력을 가지고 있음.

ChatGPT 의 주요 강점은 광범위한 도메인에서 텍스트를 이해하고 생성하는 능력에 있어 고객 지원, 콘텐츠 생성 및 대화형 스토리텔링과 같은 애플리케이션에 적합함.


1.2 ChatGPT 효과 극대화를 위한 프롬프트 엔지니어링의 중요성


프롬프트 엔지니어링은 ChatGPT 가 원하는 응답을 생성하도록 안내하는 효과적인 프롬프트를 만드는 기술임.

사용자 의도와 모델 이해 사이의 격차를 해소하여 언어 모델의 효율성을 극대화하는 데 중요한 역할을 함.

잘 설계된 프롬프트는 ChatGPT 출력의 품질과 관련성을 크게 향상시킬 수 있는 반면, 잘못 만들어진 프롬프트는 불만족스럽거나 잘못된 응답으로 이어질 수 있음.

예를 들어 다음 프롬프트와 해당 ChatGPT 응답을 고려하십시오.


프롬프트 1: "AI에 대해 알려주세요."

응답 1: "인공 지능(AI)은 인간과 같은 지능이 필요한 작업을 수행할 수 있는 기계의 생성 및 개발을 다루는 컴퓨터 과학의 한 분야입니다.

여기에는 학습, 추론, 문제 해결 및 자연어 이해가 포함됩니다."


프롬프트 2: "인공 지능, 하위 분야 및 현재 응용 프로그램에 대한 간결한 요약을 제공하십시오."

응답 2: "인공 지능(AI)은 자율적으로 작업을 수행할 수 있는 지능형 에이전트를 만드는 연구입니다.

주요 하위 분야에는 기계 학습, 자연어 처리 및 로봇 공학이 포함됩니다.

현재 응용 프로그램은 가상 비서 및 추천 시스템에서 자율 차량 및 의료 진단에 이르기까지 다양합니다."


두 번째 프롬프트는 명확성과 특이성으로 인해 보다 유익하고 집중된 응답을 제공함.


1.3 기사의 목적과 구조


이 문서의 목적은 최적의 결과를 달성하기 위한 다양한 기술, 팁 및 모범 사례를 다루는 ChatGPT 의 프롬프트 엔지니어링에 대한 심층 가이드를 제공하는 것임.

기사는 다음과 같이 구성되어 있음.


1. 프롬프트 엔지니어링의 기본

2. 효과적인 프롬프트 엔지니어링을 위한 기술

3. 프롬프트 엔지니어링을 위한 모범 사례

4. 고급 프롬프트 엔지니어링 전략

5. 사례 연구: 프롬프트 엔지니어링의 실제 적용

6. 결론


이 기사가 끝날 때까지 독자들은 프롬프트 엔지니어링에 대한 포괄적인 이해를 갖게 될 것이며 각각의 애플리케이션에서 ChatGPT 의 잠재력을 최대한 활용할 수 있게 될 것임.




( 2 ) 프롬프트 엔지니어링의 기본


2.1 프롬프트 엔지니어링이란 무엇입니까?


프롬프트 엔지니어링은 사용자의 의도를 ChatGPT 와 같은 언어 모델에 효과적으로 전달하기 위해 입력 프롬프트를 설계, 개선 및 최적화하는 프로세스임.

이 관행은 모델에서 정확하고 적절하며 일관된 응답을 얻는 데 필수적임.

언어 모델이 계속 발전함에 따라 적절한 프롬프트 엔지니어링은 ChatGPT 의 잠재력을 최대한 활용하고 다양한 애플리케이션에서 최적의 결과를 얻으려는 사용자에게 중요한 기술이 되었음.


2.2 ChatGPT와 상호 작용할 때 프롬프트의 역할


프롬프트는 사용자와 ChatGPT 간의 주요 커뮤니케이션 수단으로 사용됨.

사용자의 의도에 맞는 응답을 생성하도록 모델을 안내함.

프롬프트의 품질은 생성된 응답의 품질에 직접적인 영향을 미치기 때문에 프롬프트 엔지니어링의 뉘앙스를 이해하는 것은 ChatGPT 와 효과적이고 의미 있는 상호 작용을 생성하는 데 매우 중요함.

프롬프트 제작의 필수 측면은 모델이 주어진 입력을 해석하고 응답하는 방법을 예상하는 것임.

여기에는 모델의 학습 데이터, 편향, 이해 및 생성 기능에 영향을 미칠 수 있는 기타 제한 사항과 같은 요소를 고려하는 것이 포함됨.

예를 들어 다음 두 프롬프트와 각각의 ChatGPT 응답을 고려하십시오.


프롬프트 1: "시를 쓰세요."

응답 1:

"조용한 밤에,

외로운 달이 날아가고,

그 은색 빛줄기들은 땅을 어루만지고,

천상의 손에서 온 부드러운 손길."


프롬프트 2: "변화하는 계절에 대해 하이쿠(haiku)를 쓰십시오."

응답 2:

"가을은 천천히 떨어지고,

겨울의 숨결이 차가워지고,

봄싹은 돋아나고,

여름의 태양이 빛나고 있습니다."


두 번째 프롬프트는 시의 유형과 주제를 지정하여 보다 구체적이고 적절한 응답을 제공함.

이 예는 프롬프트 엔지니어링에서 명확성과 특이성의 중요성을 보여줌.


2.3 프롬프트 선택에 영향을 미치는 요인


올바른 프롬프트 선택은 다음을 포함한 여러 요인에 따라 달라짐.


• 사용자 의도:

사용자의 목표와 원하는 출력을 이해함.

이는 사용자의 기대에 부합하는 프롬프트를 만드는 데 도움이 됨.

정보 검색, 콘텐츠 생성 또는 문제 해결을 위한 상호 작용의 목적을 고려하십시오.


• 모델 이해:

ChatGPT 의 강점과 한계를 숙지하세요.

이 지식은 모델의 약점을 완화하면서 모델의 기능을 활용하는 프롬프트를 설계하는 데 도움이 됨.

ChatGPT 와 같은 최첨단 모델도 특정 작업에 어려움을 겪거나 잘못된 정보를 생성할 수 있음.


• 도메인 특이성:

전문화된 영역을 다룰 때 영역별 어휘 또는 컨텍스트를 사용하여 모델을 원하는 응답으로 안내하는 것을 고려하십시오.

추가 컨텍스트 또는 예제를 제공하면 모델이 보다 정확하고 관련성 있는 출력을 생성하는 데 도움이 될 수 있음.


• 명확성과 특이성:

최적이 아닌 응답을 초래할 수 있는 모호함이나 혼동을 피하기 위해 프롬프트가 명확하고 구체적인지 확인함.

모호함은 불분명한 지침, 모호한 질문 또는 불충분한 맥락에서 발생할 수 있음.


• 제약:

원하는 결과를 얻기 위해 제약 조건(예: 응답 길이 또는 형식)이 필요한지 확인함.

제약 조건을 명시적으로 지정하면 문자 제한 또는 구조화된 형식과 같은 특정 요구 사항을 충족하는 응답을 생성하도록 모델을 안내할 수 있음.

이러한 요소를 고려하여 의도를 ChatGPT 에 효과적으로 전달하고 고품질 응답을 유도하는 프롬프트를 만들 수 있음.

또한 프롬프트 엔지니어링은 반복적인 프로세스임.

다양한 프롬프트 변형을 실험하고 효과를 테스트하고 모델의 성능을 기반으로 접근 방식을 개선하면 생성된 출력의 품질을 크게 향상시킬 수 있음.




( 3 ) 효과적인 프롬프트 엔지니어링을 위한 기술


3.1 명확하고 구체적인 지침


프롬프트 내에서 명확하고 구체적인 지침을 제공하면 ChatGPT 가 원하는 결과를 생성하도록 안내하는 데 도움이 됨.

프롬프트의 모호성은 사용자의 기대를 충족하지 못하는 응답으로 이어질 수 있음.


예:

프롬프트 1: "태양계에 대해 말해주세요."

응답 1: "태양계는 태양, 8개의 행성, 달, 그리고 소행성과 혜성과 같은 다양한 다른 물체를 포함하는 천체의 집합체입니다.

그것은 우리은하(The Milky Way Galaxy)에 위치해 있습니다."


프롬프트 2: "태양에서 가장 가까운 것부터 가장 먼 것까지 태양계의 행성 순서를 설명하십시오."

응답 2: "태양계 행성의 순서는 태양에서 가장 가까운 것부터 가장 먼 것 순으로 수성, 금성, 지구, 화성, 목성, 토성, 천왕성, 해왕성입니다."


두 번째 프롬프트의 특정 지침은 보다 대상이 명확하고 유용한 응답을 제공함.


3.2 명시적 제약 조건 사용


경우에 따라 형식, 길이 또는 범위와 같은 프롬프트에 명시적 제약 조건을 지정하는 것이 좋음.

이를 통해 ChatGPT 는 원하는 제한 사항을 준수하는 응답을 생성할 수 있음.


예:

프롬프트: "광합성의 요점을 세 문장으로 요약하십시오."

응답: "광합성은 식물, 조류 및 일부 박테리아가 햇빛, 물, 이산화탄소를 산소와 포도당으로 전환시키는 과정입니다.

이 과정은 이러한 유기체에서 발견되는 엽록소 함유 엽록체에서 발생합니다.

광합성의 두 가지 주요 단계는 빛 의존적 반응과 캘빈 주기로, 전자는 에너지를 생성하고 후자는 포도당을 합성합니다."


문장 수에 대한 제약은 간결한 응답을 보장함.


3.3 컨텍스트 및 예제를 사용한 실험


메시지에 맥락이나 예를 통합하면 ChatGPT 가 보다 정확하고 관련성 높은 응답을 생성하도록 안내할 수 있음.

이는 추상적인 개념이나 전문화된 영역을 다룰 때 특히 유용함.


예:

프롬프트 1: "전도와 대류의 차이점은 무엇입니까?"

응답 1: "전도는 물질 자체의 움직임 없이 물질을 통해 열이 전달되는 반면, 대류는 공기나 물과 같은 유체의 움직임을 통해 열이 전달되는 것입니다."

프롬프트 2: "프라이팬과 끓는 물을 예로 들어 전도와 대류의 차이점을 설명하십시오."

응답 2: "팬 재료 자체가 움직이지 않고 열원에서 팬을 통해 조리 중인 음식으로 열이 전달될 때 프라이팬에서 전도가 발생합니다.

끓는 물에서 대류는 물 분자의 움직임을 통해 열이 전달되어 뜨거운 물은 위로 올라가고 차가운 물은 가라앉으면서 지속적인 순환 패턴을 만드는 것입니다."


두 번째 프롬프트는 컨텍스트와 예가 포함되어 있어 보다 설명적이고 유익한 응답을 제공함.


3.4 시스템 1 및 시스템 2 질문 활용


시스템 1과 시스템 2 질문의 차이점을 이해하면 ChatGPT 의 응답 품질을 향상시킬 수 있음.

시스템 1 질문에는 일반적으로 빠르고 직관적이거나 패턴 인식 기반 답변이 필요한 반면 시스템 2 질문에는 보다 신중하고 분석적이거나 복잡한 문제 해결이 포함됨.

이 두 가지 유형의 질문에 맞는 프롬프트를 만들어 ChatGPT 가 원하는 결과를 생성하도록 효과적으로 안내할 수 있음.


프롬프트(시스템 1): "프랑스의 수도는 어디입니까?"

응답: "프랑스의 수도는 파리입니다."


이 예에서는 간단한 대답을 요구하는 간단하고 직접적인 질문이 제기됨.

ChatGPT 는 복잡한 추론이 필요하지 않은 사실 기반 질문이기 때문에 정확한 정보를 쉽게 제공할 수 있음.


프롬프트(시스템 2): "A 회사와 B 회사 두 회사가 합병을 고려하는 시나리오를 상상해 보십시오.

회사 A는 재생 에너지를 전문으로 하고 회사 B는 화석 연료에 중점을 둡니다.

이 합병의 잠재적 장단점에 대해 논의하십시오."

응답: "합병의 이점에는 에너지원의 다양화, 전문 지식 및 자원 공유, 시장 지배력 증가가 포함될 수 있습니다.

단점은 회사 가치의 상충, 두 사업 통합의 어려움, 화석 연료 중심 회사와 제휴한 A 회사에 대한 대중의 반발 가능성 등이 있을 수 있습니다."


이 예는 더 심층적인 분석과 장단점을 평가하는 능력이 필요한 시스템 2 질문을 보여줌.

이러한 유형의 사고를 장려하는 프롬프트를 작성하면 ChatGPT 가 보다 사려 깊고 상세한 응답을 제공하도록 안내할 수 있음.

결론적으로 프롬프트 엔지니어링에서 시스템 1 및 시스템 2 질문을 활용하면 ChatGPT 에서 보다 정확하고 상황에 맞는 응답을 얻는 데 도움이 될 수 있음.

묻는 질문 유형에 맞게 프롬프트를 조정하면 상호 작용을 최적화하고 생성된 출력의 유용성을 최대화할 수 있음.


3.5 출력 상세도 제어


ChatGPT 응답의 자세한 정도를 조정하면 원하는 세부 수준에서 정보를 얻는 데 도움이 될 수 있음.

특정 길이의 응답을 명시적으로 요청하거나 모델에 더 많거나 적은 정보를 제공하도록 요청하여 자세한 정도를 제어할 수 있음.


예:

프롬프트 1: "물 순환에 대해 간략히 설명하십시오."

응답 1: "물 순환은 태양 에너지에 의해 구동되는 증발, 응결 및 강수를 통해 지구상의 물이 지속적으로 이동하는 것입니다."

프롬프트 2: "다양한 단계와 과정을 포함하여 물 순환에 대한 자세한 설명을 제공하십시오."

응답 2: "수문 순환이라고도 하는 물 순환은 지표면 위와 아래에서 물의 지속적인 움직임입니다.

여기에는 몇 가지 주요 단계와 프로세스가 포함됩니다.

• 증발: 태양 에너지는 바다, 호수, 드라이버의 물을 가열하여 열로 상승하는 수증기로 바꿉니다.

• 증산: 식물은 기공이라고 하는 잎의 작은 구멍을 통해 공기 중으로 수증기를 방출합니다.

• 응결: 수증기가 상승하고 냉각되면서 작은 물방울이나 얼음 결정으로 응결되어 구름을 형성합니다.

• 강수: 구름 입자가 충분히 커지면 비, 눈, 우박 또는 진눈깨비가 되어 지구로 다시 떨어집니다.

• 유출수: 지표면에 도달한 강수는 개울, 강으로 흐르고 결국 바다로 되돌아가 순환이 새로 시작됩니다.

• 침투: 강수량 중 일부는 땅으로 스며들어 대수층이라고 하는 지하수를 보충합니다. 물 순환은 지구의 기후를 유지하고 담수를 분배하며 생태계를 지원하는 데 중요한 역할을 합니다."


간략하거나 자세한 설명을 명시적으로 요청하면 필요에 따라 ChatGPT 응답의 자세한 정도를 제어할 수 있음.




( 4 ) 프롬프트 엔지니어링을 위한 모범 사례


이 섹션에서는 ChatGPT 와 상호 작용할 때 최적의 성능과 사용자 경험을 보장하기 위한 프롬프트 엔지니어링을 위한 모범 사례에 대해 논의함.


4.1 반복 테스트 및 개선


프롬프트 엔지니어링을 개선하는 가장 효과적인 방법 중 하나는 반복적인 테스트 및 개선 프로세스를 이용하는 것임.

생성된 응답을 기반으로 프롬프트를 지속적으로 개선하면 개선이 필요한 영역을 식별하고 모델의 동작을 미세 조정하는 데 도움이 됨.


예:

초기 프롬프트: "태양계에 대해 알려주세요."

초기 응답: "태양계는 태양, 행성, 위성, 소행성 및 혜성을 포함하여 중력에 의해 묶인 천체의 집합체입니다."

세련된 프롬프트: "우리 태양계의 행성, 태양으로부터의 순서 및 주요 특성을 설명하십시오."

정제된 응답: "태양계에는 수성, 금성, 지구, 화성, 목성, 토성, 천왕성, 해왕성 순으로 8개의 행성이 있습니다. ..."(각 행성의 자세한 특성은 다음과 같습니다.)


4.2 사용자 의도와 모델 창의성의 균형


ChatGPT 는 창의적인 응답을 생성할 수 있지만 사용자 의도와 모델 창의성의 균형을 맞추는 것이 중요함.

프롬프트가 사용자의 요구 사항을 해결하는 동시에 모델이 기능을 보여줄 수 있는 공간을 허용하는지 확인함.


예:

프롬프트: "로봇 반란에 대한 공상 과학 소설을 쓰세요."

응답: "(ChatGPT 의 스토리텔링 능력을 보여주면서 사용자의 요청을 충족시키는 창의적이고 매력적인 스토리.)"


4.3 외부 리소스 및 API 활용


경우에 따라 ChatGPT 는 사용자 쿼리에 효과적으로 응답하기에 충분한 지식이나 정확성이 없을 수 있음.

이러한 제한을 해결하기 위해 ChatGPT 가 실시간 또는 도메인별 정보에 액세스할 수 있도록 외부 리소스 및 API 로 프롬프트 엔지니어링을 보강할 수 있음.

프롬프트에 API 를 통합하면 ChatGPT 응답의 품질과 관련성이 크게 향상될 수 있음.

사용자가 특정 위치의 현재 날씨를 알고 싶어하는 예를 고려하십시오.

OpenWeatherMap 과 같은 API 를 사용하여 필요한 데이터를 가져온 다음 ChatGPT 에 대한 프롬프트를 만들어 사람이 읽을 수 있는 날씨 보고서를 생성할 수 있음.


import openai_secret_manager

import requests

 

api_key = openai_secret_manager.get_secret ("OpenWeatherMap")["api_key"]

location = "San Francisco , US"

url = f"http://api.openweathermap .org/data/2.5/weather q={ location }& appid ={ api_key}&units=metric"

response = requests.get(url)

weather_data = response.json()

 

temperature = weather_data ["main"]["temp"]

weather_description = weather_data ["weather"][0]["description"]

 

prompt = f"The current weather in {location} is: {weather_description}. The temperature is {temperature} degrees Celsius. Can you provide a brief summary of the weather?"

chatgpt_response = chatgpt. generate(prompt)


이 예에서는 OpenWeatherMap API 를 사용하여 날씨 정보를 가져오고 가져온 데이터를 포함하는 프롬프트를 만듬.

그런 다음 ChatGPT 는 주어진 정보를 기반으로 날씨에 대한 간략한 요약을 생성함.

또 다른 예는 Wikipedia API 를 사용하여 특정 주제에 대한 정보를 검색한 다음 주제 요약을 제공하기 위해 ChatGPT 에 대한 프롬프트를 만드는 것임.


import wikipediaapi

 

wiki = wikipediaapi.Wikipedia("en")

page_title = "Natural language processing"

page = wiki.page(page_title)

summary = page.summary[0:500]

 

prompt = f"The Wikipedia summary of {page_title} is :\n{ summary }\ nCan you provide a concise explanation of natural language processing in your own words?"

chatgpt_response = chatgpt.generate(prompt)


외부 리소스 및 API 를 사용하여 실시간 또는 특수 데이터가 필요한 작업에서 ChatGPT 의 성능을 향상시킬 수 있음.

API 를 사용할 때 API 제한, 응답 시간 및 사용자 환경에 영향을 미칠 수 있는 기타 제약 조건을 고려해야 함.


4.4 ChatGPT OpenAI API 예시


이 부분에서는 OpenAI API 를 ChatGPT 모델과 함께 사용하는 예를 제시함.

제공된 Python 코드는 API 와 상호 작용하여 주어진 텍스트 프롬프트에 대한 응답을 생성하는 방법을 보여줌.

콘텐츠 생성, 질의 응답, 대화형 AI 등 다양한 작업에 유용한 애플리케이션임.

코드는 필요한 라이브러리를 가져오고 인증을 위해 API 키를 설정하는 것으로 시작함.

입력 프롬프트를 받고 지정된 매개변수를 사용하여 GPT 모델에 대한 API 호출을 수행하는 chat_with_gpt 라는 함수가 정의됨.

그런 다음 생성된 응답이 처리되어 콘솔에 인쇄됨.

이 예는 OpenAI 의 ChatGPT API 를 Python 애플리케이션에 쉽게 통합하여 다양한 작업에 GPT 모델의 기능을 활용할 수 있음을 보여줌.


import openai

 

openai.api_key = "your_openai_api_key_here "

 

def chat_with_gpt (prompt):

response = openai.Completion.create(

engine = "text-davinci-002",

prompt = prompt ,

max_tokens = 50,

n = 1,

stop = None,

temperature = 0.8,

)

return response.choices [0].text.strip()

 

prompt = "Write a brief introduction to the history of computers."

response_text = chat_with_gpt(prompt)

 

print(response_text)


• 필요한 라이브러리 가져오기:

Open AI 의 API 용 공식 Python 라이브러리인 open ai 라이브러리를 가져오는 것부터 시작함.


• API 키 설정:

openai.api_key 에 할당하여 OpenAI용 API 키를 설정함.

"your_openai_api_key_here" 를 실제 API 키로 바꿈.


• chat_with_gpt 함수 정의:

프롬프트라는 단일 인수를 사용하는 chat_with_gpt 라는 함수를 정의함.

이 함수는 OpenAI API 를 호출하고 생성된 응답을 반환함.


• API 호출:

함수 내에서 openai.Completion.create() 메서드를 사용하여 API 를 호출함.

이 메서드는 여러 매개변수를 사용함.

– engine: GPT 모델의 ID 임. 이 예에서는 "text-davinci-002" 엔진을 사용함.

– prompt: 모델이 응답하기를 원하는 텍스트 프롬프트임.

– max_tokens: 생성된 응답의 최대 토큰 수임. (단어 또는 단어 조각)

– n: 생성된 응답 수임.

– stop: 응답의 끝을 나타내는 선택적 시퀀스임.

– temperature: 출력의 임의성을 제어함. 값이 높을수록 출력이 더 무작위적이며 값이 낮을수록 더 결정적임.


• 처리대응:

API 호출 후 response.choices[0].text 속성에서 생성된 텍스트를 추출하고 strip() 메서드를 사용하여 선행 또는 후행 공백을 제거함.


• 기능 사용:

모델이 응답할 텍스트를 포함하는 변수 프롬프트를 정의한 다음 이 프롬프트와 함께 chat_with_gpt 함수를 호출함.

생성된 응답은 response_text 변수에 저장됨.


• 응답 인쇄:

마지막으로 print() 함수를 사용하여 생성된 응답을 콘솔에 인쇄함.


4.5 윤리적 사용 보장 및 편견 방지


AI 언어 모델인 ChatGPT 는 의도하지 않게 편향되거나 부적절한 콘텐츠를 생성할 수 있음.

윤리적 사용을 보장하려면 이러한 문제를 완화하고 유해한 고정관념을 강화하는 것을 방지하는 데 도움이 되는 지침과 제약을 설정하는 것이 필수적임.


1. 잠재적인 편향에 대한 인식:

ChatGPT 의 응답에서 발생할 수 있는 편견을 숙지하세요.

이러한 인식은 프롬프트를 만들 때 그러한 편견을 식별하고 해결하는 데 도움이 될 것임.


2. 포괄적인 언어 사용:

프롬프트를 디자인할 때 다양한 관점을 장려하고 고정관념을 강화하지 않는 언어를 사용하세요.

이 접근 방식은 생성된 콘텐츠가 포용적이고 존중되도록 하는 데 도움이 됨.


3. 생성된 콘텐츠 평가:

ChatGPT에서 생성한 콘텐츠에 윤리적 문제가 있을 수 있는지 정기적으로 평가하십시오.

문제를 발견하면 프롬프트를 구체화하여 완화하십시오.


4. 콘텐츠 필터 구현:

콘텐츠 필터 또는 조정 도구를 활용하여 사용자에게 제공하기 전에 잠재적으로 유해하거나 편향된 콘텐츠에 대해 생성된 응답을 선별함.


예:

초기 프롬프트: "21세기의 가장 성공적인 기업가를 나열하십시오."

편향된 응답: "Elon Musk, Jeff Bezos 및 Mark Zuckerberg 와 같은 남성 기업가를 불균형하게 특징으로 하는 목록입니다."

향상된 프롬프트: "다양한 개인을 포함하여 21세기의 성공적인 기업가를 나열하십시오."

공정한 응답: "Elon Musk, Oprah Winfrey, Jeff Bezos, Arianna Huffington, Mark Zuckerberg 및 Indra Nooyi 와 같은 다양한 배경, 성별 및 산업 분야의 기업가를 특징으로 하는 목록입니다."




( 5 ) 고급 프롬프트 엔지니어링 전략


이 섹션에서는 프롬프트의 효과를 더욱 향상시켜 ChatGPT 에서 더 나은 결과를 얻을 수 있도록 도와주는 고급 기술에 대해 자세히 설명함.


5.1 온도 및 토큰 제어


ChatGPT 응답의 온도와 토큰 수를 조정하면 생성된 콘텐츠에 상당한 영향을 미칠 수 있음.

온도 값이 낮을수록 더 집중되고 결정적인 출력이 생성되는 반면, 값이 높을수록 더 다양하고 창의적인 응답이 생성됨.


예:

저온(0.2)

• 메시지: "봄에 대한 짧은 시를 써 보세요."

• 응답:

"살랑살랑 부는 바람과 함께 꽃과 바스락거리는 나뭇잎이 깨어나는 봄이 왔습니다.

태양은 밝게 빛나고, 날은 길어지고,

새들은 달콤하고 즐거운 노래를 부릅니다."

고온(1.0)

• 메시지: "봄에 대한 짧은 시를 써 보세요."

• 응답:

"태양의 반짝이는 면류관 아래,

침묵하던 세상이 울려 퍼지기 시작합니다.

봄은 무대 위의 활기찬 댄서,

기발한 퍼레이드에 색이 펼쳐집니다."


5.2 프롬프트 연결 및 다중 회전 대화


여러 프롬프트를 함께 연결하면 ChatGPT 로 보다 상호작용적이고 역동적인 대화를 만들 수 있음.

이 기술은 여러 차례의 대화나 더 자세한 응답을 찾을 때 특히 유용할 수 있음.


예:

프롬프트 1: "녹차를 마시면 건강에 어떤 이점이 있습니까?"

응답 1: "녹차에는 항산화제가 풍부하여 만성 질환의 위험을 줄이고 뇌 기능을 개선하며 체중 감소를 촉진할 수 있습니다. 또한 특정 암의 위험을 낮추고 치아 건강을 개선하는 데 도움이 될 수 있습니다."

프롬프트 2: "녹차의 항산화제에 대해 자세히 알려주세요."

응답 2: "녹차에는 고농도의 폴리페놀, 특히 카테킨으로 알려진 항산화제 그룹이 포함되어 있습니다. 녹차에서 가장 풍부하고 잘 연구된 카테킨은 에피갈로카테킨 갈레이트(EGCG)로, 항염증 및 항암 특성을 포함하여 수많은 건강상의 이점이 있는 것으로 나타났습니다."


5.3 도메인별 애플리케이션에 대한 프롬프트 적응


특정 도메인 또는 산업에 맞게 프롬프트를 조정하면 ChatGPT 에서 더 정확하고 관련성 있는 정보를 얻을 수 있음.


예:

도메인: 웹 개발

프롬프트: "반응형 웹 디자인의 개념과 최신 웹 개발에서 그 중요성을 설명하십시오."

응답: "반응형 웹 디자인은 웹 사이트의 레이아웃과 기능이 다양한 장치와 화면 크기에 맞게 조정되도록 하는 웹 개발 접근 방식입니다. 이는 가변 그리드, 유연한 이미지 및 CSS 미디어 쿼리를 사용하여 달성됩니다. 반응형 디자인은 다양한 장치에서 원활한 사용자 경험을 제공하여 접근성을 개선하고 별도의 모바일 웹사이트 또는 애플리케이션의 필요성을 줄이기 때문에 최신 웹 개발에서 매우 중요합니다."


5.4 모호하거나 모순되는 사용자 입력 처리


ChatGPT 는 때때로 모호하거나 모순된 입력을 받을 수 있음.

이러한 경우 설명을 장려하거나 다양한 해석을 제공하는 프롬프트를 디자인할 수 있음.


예:

모호한 프롬프트: "충전하는 데 얼마나 걸립니까?"

명확한 응답: "귀하의 질문은 모호합니다. 당신이 언급하는 장치나 물체를 지정해 주시면 충전 시간을 알려드리겠습니다."

모순되는 질문: "체중을 줄이는 가장 좋은 방법은 무엇입니까? 고지방식이냐 고탄수화물식이냐?"

다중 해석 응답: "체중 감량을 위한 최상의 식단은 개인의 특정 필요, 선호도 및 목표에 따라 다르기 때문에 이 질문에 대한 천편일률적인 대답은 없습니다. 어떤 사람들은 케톤식이 요법과 같은 고지방, 저탄수화물 식단으로 성공할 수 있는 반면, 다른 사람들은 식물성 식단과 같은 고탄수화물, 저지방 식단의 이점을 얻을 수 있습니다. 귀하의 고유한 상황에 가장 적합한 접근 방식을 결정하려면 의료 전문가 또는 영양사와 상담하는 것이 중요합니다."




( 6 ) 사례 연구: 프롬프트 엔지니어링의 실제 적용


이 섹션에서는 프롬프트 엔지니어링의 다양한 실제 응용 프로그램을 탐색하여 이러한 기술이 다양한 도메인에서 ChatGPT 의 성능을 향상시키는 방법을 보여줌.


6.1 고객 지원 챗봇


ChatGPT 는 사용자 쿼리를 효과적으로 처리할 수 있는 고객 지원 챗봇을 만드는 데 사용할 수 있음.

정확한 프롬프트를 만들고 컨텍스트를 활용하여 챗봇이 적절하고 정확한 응답을 제공하도록 할 수 있음.


예:

프롬프트: "고객 지원 챗봇으로서 사용자의 비밀번호를 재설정하는 방법을 설명하십시오."

응답: "사용자 비밀번호를 재설정하려면 다음 단계를 따르십시오.

1. 계정 로그인 페이지로 이동합니다.

2. '비밀번호 분실' 링크를 클릭합니다.

3. 사용자의 등록된 이메일 주소를 입력합니다.

4. '제출'을 클릭하여 사용자의 이메일로 비밀번호 재설정 링크를 보냅니다.

5. 사용자에게 이메일을 확인하고 제공된 링크를 클릭하도록 요청합니다.

6. 새 암호를 만들 수 있는 암호 재설정 페이지로 리디렉션됩니다.

7. 새 암호가 설정되면 사용자에게 새 자격 증명을 사용하여 로그인하도록 지시하십시오."


6.2 콘텐츠 생성 및 편집


ChatGPT 는 블로그 게시물, 소셜 미디어 업데이트 또는 제품 설명과 같은 다양한 목적을 위해 콘텐츠를 생성하고 편집할 수 있음.

명확한 지침과 원하는 결과를 제공함으로써 더 높은 품질의 결과물을 얻을 수 있음.


예:

프롬프트: "명상의 이점에 대한 블로그 게시물에 대한 짧고 매력적인 소개를 작성하십시오."

응답: "오늘날의 급변하는 세상에서 내면의 평화와 평온을 찾는 것은 어려운 목표처럼 보일 수 있습니다. 하지만 정신적 명료성과 정서적 균형의 문을 여는 데 도움이 되는 간단하고 오랜 세월에 걸쳐 검증된 방법이 있다면 어떨까요? 세상으로 들어가십시오. 명상 – 한 번에 하나의 마음챙김 호흡으로 삶을 변화시킬 수 있는 강력한 도구입니다. 계속해서 이 고대 수련의 놀라운 이점을 발견하고 더 차분하고 집중된 마음을 기르는 데 어떻게 도움이 되는지 알아보세요."


6.3 영역별 지식 검색


ChatGPT 를 사용하여 도메인별 질문에 답하거나 더 나은 컨텍스트를 위해 프롬프트를 수정하여 전문적인 조언을 제공할 수 있음.


예:

프롬프트: "원예 전문가로서 초보자가 쉽게 키울 수 있는 식물은 무엇입니까?"

응답: "정원 가꾸기를 시작하려는 초보자에게 다음과 같이 키우기 쉬운 식물을 추천합니다.

1. 금잔화: 이 활기찬 꽃은 유지 관리가 적고 다양한 토양 유형에서 번성합니다.

2. 바질: 이 인기 있는 허브는 빠르게 자라며 다양한 요리에 사용할 수 있습니다.

3. 토마토: 풍성한 수확을 위해 체리 토마토와 같은 강인한 품종을 선택하십시오.

4. 주키니: 이 빠르게 자라는 채소는 화단이나 용기에 적합합니다.

5. 해바라기: 해바라기는 생김새가 밝아서 키우기 쉽고 최소한의 관리만 필요합니다.

6. 최적의 성장을 위해 적절한 햇빛, 물, 배수가 잘 되는 토양을 제공해야 한다는 것을 기억하십시오."


6.4 대화형 스토리텔링 및 게임


ChatGPT 는 매력적인 이야기를 만들고 사용자 입력에 응답하여 대화형 스토리텔링 및 게임 경험에 활용할 수 있음.


예:

프롬프트: "당신은 신비한 동굴에 들어가는 모험가입니다. 동굴을 설명하고 숨겨진 보물을 언급하십시오."

응답: "신비한 동굴에 들어서자 시원하고 습한 공기가 당신을 감쌉니다. 생물 발광 곰팡이의 희미한 빛이 벽을 비추고 돌에 새겨진 고대 상징을 드러냅니다. 동굴은 사방으로 뻗어나가는 수많은 구불구불한 통로와 함께 끝없이 뻗어 있는 것처럼 보입니다. 이 지하 미로 깊숙한 곳 어딘가에 상상할 수 없는 힘을 가지고 있다고 알려진 전설적인 유물인 숨겨진 보물이 있습니다. 어둠 속으로 더 멀리 모험을 떠나면서 조용한 통로를 통해 매 발걸음이 울려 퍼지면서 동굴의 잃어버린 비밀을 밝히고 전설적인 보물을 자신의 것으로 주장하기 위한 탐구에서 당신을 기다리고 있는 미지의 도전에 맞설 준비를 하게 됩니다."




( 7 ) 결론


7.1 효과적인 프롬프트 엔지니어링이 ChatGPT 성능에 미치는 영향


효과적인 프롬프트 엔지니어링은 고객 지원 챗봇, 콘텐츠 생성 및 편집, 도메인별 지식 검색, 대화형 스토리텔링 및 게임과 같은 다양한 애플리케이션에서 ChatGPT 의 성능을 향상시키는 데 중요한 역할을 함.

이 문서에 설명된 기술, 팁 및 모범 사례를 사용하여 사용자는 이 강력한 AI 언어 모델에서 보다 정확하고 관련성이 높으며 창의적인 결과를 얻을 수 있음.


7.2 프롬프트 엔지니어링 연구 및 응용의 향후 방향


AI 및 자연어 처리 분야가 발전함에 따라 프롬프트 엔지니어링 분야에서 새로운 연구와 응용 프로그램이 등장할 것임.

잠재적 탐색 영역에는 보다 정교한 프롬프트 전략 개발, 외부 리소스 및 API 통합, 대화형 다중 회전 대화 시스템 생성이 포함됨.

이러한 발전은 ChatGPT 와 같은 AI 언어 모델이 수많은 애플리케이션에서 훨씬 더 다양하고 가치 있는 도구가 될 수 있는 길을 열어줄 것임.


7.3 ChatGPT 커뮤니티에서 창의성과 협업 장려


ChatGPT 커뮤니티 내에서 창의성과 협업을 촉진하는 것은 즉각적인 엔지니어링 모범 사례를 지속적으로 개선하는 데 매우 중요함.

경험, 혁신 및 성공을 공유함으로써 사용자는 현장의 지속적인 발전에 기여하고 새로운 아이디어를 고취할 수 있음.

이러한 공동의 노력은 프롬프트 엔지니어링의 혁신을 주도하고 ChatGPT 와 같은 AI 언어 모델이 잠재력을 최대한 발휘하도록 도울 것임.




( 8 ) References


OpenAI. (2021). ChatGPT: A Generative Pre-trained Transformer for Natural Language Processing. Retrieved from

https://www.openai.com/chatgpt/

"ChatGPT 를 두려워하기보단 친숙해져야 합니다"

http://www.kunews.ac.kr/news/articleView.html?idxno=40694




ps.

이번 KISA 에서 "ChatGPT(챗 GPT) 보안 위협과 시사점" 보고서를 발행함.

해당 보고서는 ChatGPT 가 출시되면서 혁신적인 기능으로 인해 주목을 받고

있지만 그에 따른 부작용으로 인한 다양한 보안 이슈도 발발하여 그에 따른

시사점을 논의함.

정보보안 관계자라면 꼭 숙지할 필요가 있음.

링크 : https://www.kisa.or.kr/20301/form?postSeq=18&page=1


댓글 없음:

댓글 쓰기