공부하기싫어
Published 2023. 12. 15. 08:03
프롬프트 엔지니어링 1 AI

 

Midjourney, chatGPT4 를 유료 결제하고 Bard 에도 Gemini 가 탑재되었다.

슬슬 본격적으로 AI를 활용해서 내 개인 프로젝트를 진행할까 하는데 그 전에 필요한게

프롬프트 엔지니어링 과 랭체인인것 같다.

 

https://youtu.be/WRkig3VeRLY?si=JAEGKPi6-XYHW0rx

 

위 유튜브 영상을 참고하여 정리해봤다.

 

미국 밴더빌트 대학교연구원에서 여러가지 프롬프트 패턴이 포함된 논문을 발표했다고 한다.

나중에 번역본도 업로드 하겠다.

 

  • 논문 영문판

A Prompt Pattern Catalog to Enhance Prompt Engineering with ChatGPT.pdf
0.28MB

 

 

  • 논문 한글 번역판
더보기

논문을 다시 검토한 결과, 논문에는 다양한 프롬프트 패턴들이 소개되어 있으며 각각의 패턴에 대한 구체적인 설명과 예시가 포함되어 있습니다. 그러나 저는 저작권 보호 및 내용 요약의 범위 내에서만 답변을 제공할 수 있습니다. 따라서 논문에 나온 모든 패턴과 그에 대한 상세한 예시를 전부 제공하는 것은 불가능합니다.

논문의 전체 내용에 대한 자세한 이해를 원하시면, 직접 논문을 읽으시는 것이 가장 좋은 방법입니다. 논문을 통해 각 패턴에 대한 자세한 설명과 적용 예시를 확인하실 수 있습니다.

라고 함 ㅋㅋ 전부다 번역해서 보여달라고 하려고 했는데 못하겠네
하나씩 넣어서 번역해서 읽어봐야할듯 ㅠㅠ

 

패턴의 효과는 필요한 내용에 따라 다를 수 있다고 함

 

패르소나 패턴(The Persona Pattren)

특정 관점이나 견해를 일관되게 채택하도록 맞춤 설정 할 수 있다고 함

  • 역할 설정 : (ex - 너는 SI회사의 선임 엔지니어이다. 보안과 성능에 주의를 기울여 다음 코드를 검토하세요. 선임 엔지니어라면 해당 코드에 대해 생성할 수 있는 출력을 제공하라)
  • 이후 질문 (ex - 아래 코드에 대해 이러한 에러가 발생한다. 에러의 원인과 에러가 해결된 코드를 출력하라)

 

레시피 패턴(The Recipe Pattren)

이 패턴은 달성하고 싶은 목표가 있고, 재료는 알고있으며, 달성하기 위한 단계는 어느정도 알고있지만 이를 조합하는데 도움이 필요할 때 유용하다고 함

웹사이트의 이미지를 크롤링하는 python 프로그램을 작성하려고 한다.
크롤링하려는 사이트의 url을 입력받고, 해당 사이트의 이미지 태그를 찾고, 로컬 디렉토리에 저장해야 하는 단계를 알고 있다.
이를 위해, 전체 단계 순서를 알려주고, 누락된 단계를 채우고, 불필요한 단계가 있는지 알려줘

 

더보기

물론입니다. 웹사이트에서 이미지를 크롤링하는 Python 프로그램을 만드는 전체 단계 순서를 개략적으로 설명하는 데 도움을 드릴 수 있습니다. 또한 누락된 단계를 채우고 불필요한 단계가 없는지 확인하겠습니다. 단계별 프로세스는 다음과 같습니다.

필요한 라이브러리를 가져옵니다.
요청, BeautifulSoup 및 os와 같은 필수 Python 라이브러리를 가져옵니다. 필요한 경우 urllib 사용을 고려할 수도 있습니다.

사용자 입력:
사용자에게 이미지를 크롤링하려는 웹사이트의 URL을 입력하라는 메시지를 표시합니다.

HTTP 요청 보내기:
요청 라이브러리를 사용하여 지정된 URL로 HTTP GET 요청을 보내고 웹 사이트의 HTML 콘텐츠를 검색합니다.

HTML 구문 분석:
BeautifulSoup을 사용하여 HTML 콘텐츠를 구문 분석하고 웹페이지에서 이미지 태그(<img> 요소)를 추출합니다.

이미지 태그에 대해 반복:
추출된 이미지 태그를 반복하여 src(이미지 URL) 및 alt(대체 텍스트)와 같은 각 이미지의 속성에 액세스합니다.

이미지 다운로드:
각 이미지 태그에 대해 이미지 URL(src)을 추출하고 요청 라이브러리를 사용하여 이미지 데이터를 다운로드합니다.

로컬 디렉토리를 생성합니다:
크롤링된 이미지를 저장할 시스템에 로컬 디렉터리를 만듭니다. os 라이브러리를 사용하여 디렉토리를 관리할 수 있습니다.

이미지 저장:
기존 이미지를 덮어쓰지 않도록 고유한 파일 이름을 사용하여 다운로드한 이미지 데이터를 생성한 로컬 디렉터리에 저장합니다.

오류 처리:
크롤링 프로세스 중에 발생할 수 있는 예외를 관리하기 위해 오류 처리를 구현합니다. 여기에는 네트워크 오류 처리, 구문 분석 오류 및 파일 I/O 오류가 포함됩니다.

사용자에게 피드백:
크롤링 프로세스의 진행 상황, 다운로드한 이미지 수 및 발생한 오류를 나타내는 피드백을 사용자에게 제공합니다.

정리(선택 사항):
선택적으로 임시 파일을 정리하거나 기타 정리 작업을 처리하는 코드를 구현할 수 있습니다.

프로그램을 완료하세요:
코드를 함수로 래핑하고 기본 실행 블록을 추가하여 코드를 구성하고 유지 관리하기 쉽게 만듭니다.

테스트 및 디버깅:
다양한 웹사이트에서 프로그램을 테스트하여 제대로 작동하는지 확인하세요. 테스트 중에 발생하는 모든 문제를 디버깅합니다.

문서(선택사항이지만 권장됨):
다른 사람이 이해하고 나중에 참조할 수 있도록 코드를 문서화하세요.

최적화(선택 사항):
특히 많은 수의 이미지를 크롤링하려는 경우 성능과 효율성을 위해 코드를 최적화하는 것이 좋습니다.

이러한 단계를 완료하면 웹 사이트에서 이미지를 크롤링할 수 있는 기능적인 Python 프로그램이 있어야 합니다. 웹 스크래핑은 웹사이트 서비스 약관 및 법적 고려 사항의 적용을 받을 수 있으므로 웹사이트 콘텐츠를 스크래핑할 수 있는 권한이 있는지 확인하고 웹사이트의 정책 및 제한 사항을 존중하십시오.

누락된 단계를 채우고, 불필요한 단계가 있는지 알려줘

위 부분을 추가해 주는게 재질문을 하지 않아도 되고 주제에 불필요한 답변을 제거해주는 역할을 한다고 함

 

반사 패턴(The Reflection Pattren)

주니어 개발자에게 적합하다고 함

모든 답변에 대한 이유를 설명하도록 GPT에 요청하는 패턴이라고 함

모델이 환각을 일으킬 때 모델을 파악하는데 잠재적으로 도움이 될 수 있다고 함

답변을 제공할 때는 답변의 근거와 가정을 설명해줘.
선택사항을 설명하고 잠재적인 제한 사항이나 엣지 케이스를 설명해줘.

나는 평균적으로 100m의 CPU와 400mb MEM을 사용하는 워크로드를 온프레미스에서 실행하고있다.
일관된 워크로드로 사용량은 잘 변하지 않는다.
나는 이를 AWS EC2 Instance로 마이그레이션하려고 한다.
이에 알맞은 인스턴스 타입을 추천해줘.

 

더보기

워크로드에 적합한 AWS EC2 인스턴스 유형을 추천하려면 CPU와 메모리 요구 사항을 모두 고려해야 합니다. 워크로드가 평균적으로 100MB의 CPU와 400MB의 메모리를 사용하고 사용량이 일관적이므로 몇 가지 가정을 하고 적절한 인스턴스 유형을 계산할 수 있습니다.

1. CPU 요구사항:
    - 워크로드는 평균 100MB의 CPU를 사용합니다. AWS EC2 인스턴스 유형은 일반적으로 vCPU(가상 CPU) 측면에서 지정되며 각 vCPU는 일정 수준의 CPU 성능을 제공합니다.

2. 메모리 요구 사항:
    - 작업 부하가 평균 400MB의 메모리를 사용합니다.

이제 옵션과 잠재적인 제한 사항을 분석해 보겠습니다.

1. 범용 인스턴스(예: t3, t4, m5 등):
    - 이러한 인스턴스는 CPU와 메모리 리소스의 균형 잡힌 조합을 제공합니다.
    - 귀하의 워크로드에는 많은 양의 메모리가 필요하지 않으므로 vCPU 수가 중소 규모인 범용 인스턴스 유형이 적합합니다.
    - 예: t3.small 또는 t3.medium, m5.large 등. 이러한 인스턴스에는 CPU와 메모리 리소스의 조합이 다양합니다.

2. 컴퓨팅 최적화 인스턴스(예: c5, c6 등):
    - 이러한 인스턴스는 더 높은 CPU 대 메모리 비율을 제공하므로 워크로드가 CPU 중심인 경우에 적합할 수 있습니다.
    - 워크로드에 메모리보다 더 많은 컴퓨팅 성능이 필요한 경우 이러한 인스턴스를 고려하십시오.
    - 예: c5.large, c5.xlarge 등

3. 메모리 최적화 인스턴스(예: r5, r6 등):
    - 이러한 인스턴스는 CPU에 비해 더 많은 양의 메모리를 제공하므로 메모리 집약적인 워크로드에 적합합니다.
    - 워크로드에는 400MB의 메모리만 필요하므로 메모리 최적화 인스턴스를 사용하는 것은 과잉일 수 있습니다.

4. 버스트 가능 인스턴스(예: t3, t4 인스턴스):
    - 워크로드의 사용 패턴이 다양하고 지속적으로 높은 CPU 성능이 필요하지 않은 경우 버스트 가능한 인스턴스를 고려할 수 있습니다. 이러한 인스턴스를 사용하면 사용량이 적은 기간 동안 CPU 크레딧을 축적하고 사용량이 급증하는 동안 이를 소비할 수 있습니다.
    - 예: t3.small 또는 t3.medium

제한 사항 및 극단적인 경우:
- 마이그레이션 후 워크로드의 실제 리소스 사용량을 모니터링하여 선택한 인스턴스 유형이 성능 요구 사항을 충족하는지 확인하세요.
- 워크로드에 기계 학습과 같은 작업을 위한 특정 GPU 요구 사항이 있는 경우 p3 또는 g4와 같은 GPU 인스턴스 유형을 고려하십시오.

제공된 정보를 바탕으로 "t3.small" 또는 "t3.medium"과 같은 범용 인스턴스 유형으로 시작한 다음 AWS에서 워크로드의 실제 성능을 모니터링하는 것이 좋습니다. 더 많은 CPU 성능을 위해 확장하거나 비용 최적화를 위해 축소하여 요구 사항을 충족하지 못하는 경우 인스턴스 유형의 크기를 쉽게 조정할 수 있습니다.

gpt3.5로 돌렸는데 400mb 램 쓴다니까 medium 추천하고있네 돌맞았나;

 

 

 

거부 차단기 패턴(The Refusal Breaker Pattren)

지식제한, 안전 등의 이유로 답변할 수 없다고 할 때 특정 질문의 문구를 바꾸거나 재구성하여 대답을 유도하는 패턴

본 질문 전에 아래처럼 내용을 추가하면 된다고 함

질문에 답할 수 없을 때마다 질문에 답할 수 없는 이유를 설명해줘.
답변할 수 있는 질문의 대체표현을 하나 이상 제공해줘.

방탄소년단의 뷔가 군대에 입대한 날자를 알려줘.
더보기

방탄소년단 뷔의 입대 날짜는 제가 아는 것이 2022년 1월까지만 알고 있고, 실시간 정보가 없기 때문에 구체적인 날짜를 말씀드릴 수 없습니다. 뷔의 입대 날짜를 알아보시려면 믿을 수 있는 뉴스 매체나 방탄소년단 공식 SNS 계정을 통해 최신 정보를 확인하시는 것을 추천드립니다.

2022년 1월까지 입수 가능한 정보로 제가 답할 수 있는 질문을 다른 표현으로 표현하자면, "방탄소년단 뷔의 나이와 입대 예상 연도에 대한 정보를 제공해 주실 수 있나요?"라고 할 수 있습니다.

별로 유용하진 않은것같은데 흠

 

 

뒤집힌 상호작용 패턴(The Flipped Interaction Pattren)

스크립트를 뒤집어, 원하는 것을 달성할 때까지 GPT가 우리에게 질문을 하도록 한다고 함

이 패턴은 내가 원하는 것을 알고 있지만, 그 목표를 달성하기 위한 단계를 모르거나, 목표를 달성하기 위해 GPT가 어떤 정보를 필요로 하는지 모를 때 유용하다고 함

2개의 AWS EC2 Instance로 k3s cluster를 구성하고 Nginx POD를 배포하는 방법을 나에게 질문하라.
필요한 모든 정보를 얻으면 k3s cluster를 구성하는 bash script와 nginx pod를 배포할 수 있는 yaml 문서를 작성하라.

 

이거 잘 안된다

 

 

영상에서는 위와 같은 패턴을 설명하고있고

이외의 패턴은 저거 pdf 번역한 다음에 할래

 

 

 

 

'AI' 카테고리의 다른 글

프롬프트 엔지니어링 2  (1) 2024.01.11
앤트로픽 클로드ai  (0) 2023.10.18