brunch

You can make anything
by writing

C.S.Lewis

by AI러 이채문 Oct 23. 2024

앞으로 GPT 프롬프트 방향성입니다.

OPEN AI의 System Instructions Generator

지난 시간에는 프롬프트에 거의 모든 내용을 작성했습니다

https://brunch.co.kr/@aichaemun/86


어쩌면 현재를 정리한거죠.


그래서 이번에는 미래를 정리해보려고 합니다.


OpenAI의 혁신적인 접근법은 다섯 가지 핵심 원칙을 중심으로 구축되었습니다. 이 원칙들은 AI 모델이 사용자의 의도를 더 정확히 파악하고, 더 유용한 결과를 제공할 수 있도록 설계되었습니다. 각 원칙을 자세히 살펴보고, 실제 적용 사례를 통해 그 효과를 확인해 보겠습니다.



1. 최소한의 변경 원칙


이 원칙은 기존 프롬프트의 복잡성을 고려하여 불필요한 변경을 최소화합니다. 간단한 프롬프트는 개선의 여지가 있지만, 이미 복잡한 프롬프트는 그대로 유지하는 것이 좋습니다.


예시:   

간단한 프롬프트: "고양이에 대해 설명해주세요." 개선: "고양이의 생물학적 특징, 행동 패턴, 그리고 인간과의 관계에 대해 구체적으로 설명해주세요."

복잡한 프롬프트: "고양이의 진화 역사, 생리학적 특징, 행동 패턴, 다양한 품종, 그리고 인간 사회에서의 역할에 대해 5개의 단락으로 구성된 에세이를 작성하세요. 각 단락은 최소 100단어로 구성되어야 하며, 학술적 참고문헌을 포함해야 합니다." 이 경우, 프롬프트가 이미 상세하므로 큰 변경 없이 사용합니다.



2. 결론 전 추론 강조


이 원칙은 AI 모델이 성급한 결론을 내리지 않고 논리적 사고 과정을 거치도록 유도합니다. 이는 AI가 제공하는 답변의 질을 크게 향상시킬 수 있습니다.


예시: 

잘못된 예: "청소년의 스마트폰 사용이 학업 성적에 미치는 영향은 무엇인가요? 스마트폰 사용은 학업 성적을 저하시킵니다."


개선된 예: "청소년의 스마트폰 사용이 학업 성적에 미치는 영향을 분석해주세요. 다음 요소들을 고려하여 단계적으로 접근해주세요:   

스마트폰 사용 시간과 패턴 분석

학습에 미치는 긍정적 영향 (예: 교육 앱, 정보 접근성)

학습에 미치는 부정적 영향 (예: 주의력 분산, 수면 부족)

연령대별 영향의 차이

사회경제적 배경에 따른 영향의 차이

각 요소를 분석한 후, 종합적인 결론을 도출해주세요."



3. 명확성과 포맷팅의 중요성

이 원칙은 프롬프트 작성 시 명확하고 구체적인 언어 사용을 권장하며, 마크다운과 같은 포맷팅 도구를 활용하여 가독성을 높이는 것을 강조합니다.


예시: 

잘못된 예: "인공지능의 윤리적 문제에 대해 써주세요."


개선된 예:      

# 인공지능의 윤리적 문제에 대한 종합 보고서

다음 구조에 따라 AI의 윤리적 문제를 분석해주세요:

## 1. 프라이버시 문제

- 개인 데이터 수집과 사용

- 감시 기술의 발전과 그 영향

## 2. 편견과 차별

- AI 알고리즘의 편향성

- 소수자 그룹에 대한 차별 가능성

## 3. 책임과 투명성

- AI 결정에 대한 설명 가능성

- 오류 발생 시 책임 소재

## 4. 일자리 대체와 경제적 영향

- 자동화로 인한 일자리 손실

- 새로운 직업의 창출

## 5. 안전과 보안

- AI 시스템의 해킹 위험

- 자율 무기 시스템의 위험성

각 섹션은 최소 200단어로 작성하고, 현재의 사례와 미래 전망을 포함해주세요.



4. 사용자 입력 존중

이 원칙은 사용자가 제공한 상세한 지침이나 예시를 최대한 유지하여 AI 모델이 사용자의 의도를 정확히 파악하도록 돕습니다.


예시: 

사용자 입력: "심리학에서의 '인지 편향'에 대해 설명해주세요. 특히 '확증 편향'과 '가용성 편향'에 대해 자세히 다뤄주시고, 일상생활에서의 예시도 포함해주세요."

시스템 프롬프트:      

심리학에서의 '인지 편향'에 대한 종합적인 설명을 제공해주세요. 다음 구조를 따라주세요:

1. 인지 편향의 정의와 일반적 특징 (100단어)

2. 확증 편향 (Confirmation Bias)

   - 정의와 특징 (50단어)

   - 발생 메커니즘 (50단어)

   - 일상생활에서의 예시 2가지 (각 30단어)

3. 가용성 편향 (Availability Bias)

   - 정의와 특징 (50단어)

   - 발생 메커니즘 (50단어)

   - 일상생활에서의 예시 2가지 (각 30단어)

4. 인지 편향의 영향과 극복 방법 (100단어)

각 섹션에서 학술적 정확성을 유지하면서도 일반 독자가 이해하기 쉬운 언어를 사용해주세요.



5. 구조화된 출력 지향


이 원칙은 AI 모델의 출력 형식을 명확히 지정함으로써, 사용자가 원하는 형태의 결과를 얻을 수 있도록 합니다.


예시: "세계 주요 도시의 생활 비용 지수를 JSON 형식으로 제공해주세요. 출력 형식은 다음과 같아야 합니다:  {

  "cities": [

    {

      "name": "도시 이름",

      "country": "국가",

      "costIndex": 숫자 (뉴욕 기준 100),

      "rentIndex": 숫자 (뉴욕 기준 100),

      "groceriesIndex": 숫자 (뉴욕 기준 100),

      "restaurantPriceIndex": 숫자 (뉴욕 기준 100)

    }

  ]

}



상위 10개 도시에 대한 정보를 포함해주세요."





코딩 예시: 프롬프트 엔지니어링 원칙 적용


다음은 Python을 사용하여 OpenAI의 프롬프트 엔지니어링 원칙을 적용하는 간단한 예시 코드입니다:    

  

import json

class PromptEngineer:

    def __init__(self):

        self.principles = [

            "Minimal Changes",

            "Reasoning Before Conclusions",

            "Clarity and Formatting",

            "Preserve User Input",

            "Structured Output"

        ]    

    def apply_minimal_changes(self, prompt):

        if len(prompt.split()) < 10:  # 간단한 프롬프트

            return f"Provide a detailed explanation about {prompt}"

        return prompt  # 복잡한 프롬프트는 그대로 유지    

    def apply_reasoning(self, prompt):

        return f"Before reaching a conclusion, consider the following aspects:\n" \

               f"1. {prompt}\n2. Potential counterarguments\n3. Supporting evidence\n" \

               f"After considering these points, provide a well-reasoned response."    

    def apply_formatting(self, prompt):

        return f"# {prompt}\n\n## Key Points\n\n- Point 1\n- Point 2\n- Point 3\n\n" \

               f"## Detailed Explanation\n\n[Your detailed explanation here]\n\n" \

               f"## Conclusion\n\n[Your conclusion here]"    

    def preserve_user_input(self, user_input, system_prompt):

        return f"{system_prompt}\n\nUser Input: {user_input}\n\n" \

               f"Please address the user's input specifically in your response."    

    def structure_output(self, prompt, output_format):

        return f"{prompt}\n\nPlease provide the output in the following format:\n\n```json\n{json.dumps(output_format, indent=2)}\n```"    

    def engineer_prompt(self, original_prompt):

        prompt = self.apply_minimal_changes(original_prompt)

        prompt = self.apply_reasoning(prompt)

        prompt = self.apply_formatting(prompt)

        prompt = self.preserve_user_input(original_prompt, prompt)

        output_format = {

            "main_points": ["point1", "point2", "point3"],

            "detailed_explanation": "string",

            "conclusion": "string"

        }

        prompt = self.structure_output(prompt, output_format)

        return prompt

# 사용 예시

engineer = PromptEngineer()

original_prompt = "Explain the impact of social media on modern communication"

engineered_prompt = engineer.engineer_prompt(original_prompt)

print(engineered_prompt)


이 코드는 각 원칙을 별도의 메소드로 구현하고, 


메소드에서 이들을 순차적으로 적용합니다. 이를 통해 원래의 간단한 프롬프트를 더 구조화되고 상세한 프롬프트로 변환할 수 있습니다.






실제 적용 사례

이러한 원칙들의 실제 적용은 AI와의 상호작용을 크게 개선할 수 있습니다. 예를 들어, 기후 변화에 대한 종합 보고서를 요청할 때, 이 원칙들을 적용하면 더 구조화되고 상세한 정보를 얻을 수 있습니다.



# 기후 변화 종합 보고서 작성 요청

다음 구조에 따라 기후 변화에 대한 종합 보고서를 작성해주세요:

## 1. 기후 변화의 과학적 근거

- 온실 가스 증가와 지구 온난화의 관계

- 관측된 기후 변화 패턴

## 2. 기후 변화의 영향

- 생태계에 미치는 영향

- 인간 사회에 미치는 영향 (경제, 건강, 식량 안보 등)

## 3. 기후 변화 대응 전략

- 온실 가스 감축 방안

- 적응 전략

## 4. 국제 협력과 정책

- 파리 협정 등 주요 국제 협약

- 주요국의 기후 변화 대응 정책

## 5. 미래 전망과 시나리오 

-현재 추세가 지속될 경우의 시나리오

-적극적 대응 시나리오


각 섹션은 최소 300단어로 작성하고, 최신 과학적 데이터와 연구 결과를 인용해주세요. 또한, 각 섹션의 끝에는 해당 주제에 대한 간단한 결론을 포함해주세요.

출력 형식:

{

  "sections": [

    {

      "title": "섹션 제목",

      "content": "섹션 내용 (최소 300단어)",

      "key_points": ["핵심 포인트 1", "핵심 포인트 2", "핵심 포인트 3"],

      "conclusion": "섹션 결론 (50단어 이내)"

    }

  ],

  "overall_conclusion": "전체 보고서의 결론 (100단어 이내)",

  "references": ["참고문헌 1", "참고문헌 2", "참고문헌 3"]

}



이 예시는 기후 변화라는 복잡한 주제에 대해 구조화된 접근 방식을 제공합니다. 이는 사용자의 상세한 요구사항을 존중하면서도 AI 모델이 체계적이고 포괄적인 보고서를 생성할 수 있도록 안내합니다.


OpenAI의 이 새로운 접근법은 AI 기술과 인간의 상호작용 방식을 더욱 세련되게 만들 것으로 예상됩니다. 이는 다음과 같은 분야에서 특히 큰 영향을 미칠 것으로 보입니다:

1. 교육: 학생들의 학습 스타일과 속도에 맞춘 개인화된 학습 콘텐츠 생성
2. 연구: 복잡한 과학적 데이터의 분석 및 해석 지원
3. 비즈니스: 시장 동향 분석, 고객 서비스 개선, 의사결정 지원 등
4. 의료: 의료 기록 분석, 진단 지원, 개인화된 치료 계획 수립
5. 법률: 법률 문서 분석, 판례 연구, 법적 조언 제공 지원



이러한 발전은 AI 기술의 활용도를 크게 높이고, 더 정확하고 유용한 결과를 얻는 데 기여할 것입니다. 그러나 동시에 다음과 같은 과제들도 고려해야 합니다:

1. 윤리적 고려사항: AI의 결정이 미치는 영향력이 커짐에 따라, 공정성과 투명성 확보가 더욱 중요해집니다.
2. 데이터 프라이버시: 개인 정보 보호와 데이터 보안에 대한 더 엄격한 기준이 요구될 것입니다.
3. AI 리터러시: 일반 사용자들의 AI 이해도를 높이기 위한 교육이 필요합니다.
4. 법적 규제: AI 사용에 대한 법적 프레임워크의 발전이 필요할 것입니다.


프롬프트 엔지니어링 분야는 계속해서 발전할 것이며, OpenAI의 이번 혁신은 그 진화의 중요한 이정표가 될 것입니다. 이 기술은 AI와 인간의 상호작용을 더욱 효과적으로 만들어, 다양한 분야에서 AI의 잠재력을 최대한 활용할 수 있게 해줄 것입니다.



매거진의 이전글 GPT 프롬프트, 이 글로 종결합니다.
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari