프로젝트를 위한 🚀 팁
프롬프트 엔지니어링은 언어 모델이 원하는 결과물을 생성하도록 안내하는 효과적인 지침을 설계하는 예술이자 과학인 프롬프트 엔지니어링이 제너레이티브 AI 시대의 핵심 기술입니다. DataCamp에 따르면 이 새로운 분야는 AI 모델, 특히 대규모 언어 모델 LLM에서 특정 응답을 이끌어내기 위한 프롬프트를 설계하고 최적화하여 우리가 AI와 상호 작용하고 그 힘을 활용하는 방식을 형성하는 것을 포함합니다.
📚 창고 구조
문서 이름 | 설명 |
---|---|
기본 힌트 디자인 | 기본 프롬프트 엔지니어링의 개념과 구조에 대한 소개입니다. |
고급 큐 디자인 | 출력 최적화 및 구조화를 위한 고급 팁. |
고급 큐 디자인 실습 | 고급 프롬프트 디자인 기법을 적용하기 위한 실용적인 가이드입니다. |
OpenAI API 이해 | OpenAI API를 사용한 프롬프트에 대한 개요입니다. |
LLM의 함수 호출 | 언어 모델에서 함수 호출 기능을 보여주는 노트북입니다. |
통합 팁 엔지니어링 노트북 | 주피터 노트북은 다양한 프롬프트 디자인 기법을 다룹니다. |
🎯 큐 디자인 브리프
프롬프트는 원하는 출력이나 동작을 트리거하기 위해 AI 모델에 특정 지침이나 입력을 제공하는 프로세스입니다. 프롬프트는 인간과 AI 시스템 사이의 중요한 인터페이스로, 사용자가 모델의 응답을 효과적으로 안내할 수 있게 해줍니다. 대규모 언어 모델(LLM)의 경우 프롬프트는 단순한 쿼리에서 컨텍스트 및 스타일 가이드를 포함한 복잡한 지침 집합으로 확장될 수 있습니다.
프롬프트 디자인의 주요 측면은 다음과 같습니다:
- 다용도성: AI 모델과 작업에 따라 텍스트, 시각적 또는 청각적 형태로 프롬프트가 표시될 수 있습니다.
- 구체성: 잘 설계된 팁은 보다 정확하고 관련성 높은 결과물을 생성할 수 있도록 정밀한 세부 정보를 제공합니다.
- 반복적 최적화: 큐 디자인에는 일반적으로 모델의 반응을 해석하고 더 나은 결과를 위해 후속 큐를 조정하는 작업이 포함됩니다.
- 애플리케이션의 다양성: 힌트는 텍스트 생성, 이미지 인식, 데이터 분석, 대화형 AI 등 다양한 영역에서 사용됩니다.
🌟 엔지니어링의 중요성에 대한 팁
- AI 성능 향상: 잘 설계된 단서어는 AI가 생성한 결과물의 품질과 관련성을 크게 향상시킬 수 있습니다. 큐 엔지니어링은 명확한 지침과 컨텍스트를 제공함으로써 모델이 보다 정확하고 일관성 있으며 유용한 응답을 생성할 수 있도록 합니다.
- 사용자 지정 및 유연성: 큐 엔지니어링을 사용하면 광범위한 모델 재교육 없이도 특정 요구 사항과 도메인에 맞게 AI 응답을 조정할 수 있습니다. 이러한 유연성 덕분에 AI 시스템은 다양한 산업 분야의 다양한 애플리케이션에 더 잘 적응할 수 있습니다.
- 편향성 완화: 모델이 다양한 관점을 고려하거나 편향되지 않은 특정 정보 소스에 집중하도록 안내하는 단서를 만들어 AI 출력의 편향성을 줄일 수 있습니다.
- 사용자 경험 개선: 효과적인 큐 엔지니어링은 인간의 의도와 기계의 이해 사이의 간극을 메워 AI 도구의 접근성과 사용자 친화성을 높여 사용자 경험을 개선합니다[4].
- 비용 효율성: 단서를 최적화하면 계산 리소스를 더 효율적으로 사용할 수 있고 원하는 결과를 얻기 위해 더 크고 비싼 모델을 사용할 필요성을 줄일 수 있습니다.
- 신속한 프로토타이핑 및 반복: Cue Engineering은 AI 애플리케이션의 신속한 실험과 최적화를 지원하여 개발 주기와 혁신을 가속화합니다.
- 윤리적 고려 사항: 사려 깊은 프롬프트 디자인은 AI 시스템이 윤리적 가이드라인을 따르고 다양한 상황과 대상에 적합한 콘텐츠를 생성할 수 있도록 도와줍니다.
- 확장성: 효과적인 단서가 개발되면 조직 전체에 쉽게 확장하여 일관되고 고품질의 AI 상호 작용을 구현할 수 있습니다.
- 분야 간 애플리케이션: 큐 엔지니어링은 기술 및 도메인 전문 지식을 연결하여 주제별 전문가가 심도 있는 기술 지식 없이도 AI 기능을 활용할 수 있도록 지원합니다.
엔지니어링을 위한 팁
- 큐 엔지니어링 소개: 기본 원리, 구조화된 큐, 비교 분석, 문제 해결 애플리케이션 등 큐 엔지니어링 개념에 대한 기초적인 개요입니다.
- 기본 프롬프트 구조: 단일 및 다중 라운드 프롬프트를 살펴보고 간단한 프롬프트를 만들고 AI 모델과 대화하는 방법을 보여 줍니다.
- 프롬프트 템플릿 및 변수: 진자2와 같은 도구를 사용하여 유연하고 재사용 가능한 프롬프트 구조를 만드는 데 중점을 두고 프롬프트에서 템플릿과 변수를 사용하는 방법에 대해 소개합니다.
- 제로 샘플 프롬프트: 구체적인 예시가 없는 경우 직접 작업 사양 및 역할 기반 프롬프트 기술을 통해 AI 모델이 작업을 완료하도록 안내하는 방법을 보여줍니다.
- 샘플 적은 학습 및 상황별 학습: AI 응답을 안내하는 소수의 예제를 제공하여 미세 조정 없이도 특정 작업의 성능을 향상시키는 기술을 다룹니다.
- 연쇄 사고(CoT) 팁: AI 모델이 복잡한 문제를 단계별 추론 프로세스로 세분화하여 문제 해결을 개선하도록 장려하세요.
- 자체 일관성 및 다중 경로 추론: 다양한 추론 경로를 생성하고 결과를 집계하여 AI 결과의 정확성과 신뢰성을 개선하는 방법을 탐색합니다.
- 제약 및 안내 생성: 모델 출력에 제약 조건을 설정하고 규칙 기반 생성을 구현하여 AI의 응답을 제어하고 안내하는 데 중점을 둡니다.
- 역할 힌트: AI 모델에 특정 역할을 할당하고 필요한 행동이나 전문 지식을 이끌어내기 위해 효과적인 역할 설명을 설계하는 방법을 보여줍니다.
- 작업 분류 프롬프트: 프롬프트에서 복잡한 작업을 관리하기 쉬운 작은 하위 작업으로 분류하는 기법을 살펴보세요.
- 큐 체인 및 시퀀스: 여러 큐를 논리적 흐름으로 연결하여 복잡한 다단계 작업을 처리하는 방법을 보여줍니다.
- 지시문 엔지니어링: 언어 모델에 대한 명확하고 효율적인 지시문을 설계하고, 특수성과 일반성의 균형을 맞춰 성능을 최적화하는 데 중점을 둡니다.
- 단서 최적화 기법: A/B 테스트 및 성능 메트릭에 기반한 반복 최적화를 비롯한 단서 개선을 위한 고급 방법을 다룹니다.
- 모호성 처리 및 명확성 향상하기: 모호한 프롬프트를 인식하고 해결하는 기술과 보다 명확하고 효과적인 프롬프트를 작성하기 위한 전략을 살펴봅니다.
- 프롬프트 길이 및 복잡성 관리: 청크 및 요약 기법 등 길거나 복잡한 프롬프트를 관리하기 위한 전략을 살펴보세요.
- 부정적인 단서 및 원치 않는 출력 피하기: 부정적인 예와 제약 조건을 사용하여 원치 않는 응답을 피하기 위해 모델을 조정하는 방법을 보여줍니다.
- 큐 형식 및 구조: AI 모델 응답을 최적화하는 다양한 큐 형식과 구조적 요소를 조사합니다.
- 작업별 프롬프트: 요약, 퀴즈, 코드 생성, 창의적인 글쓰기 등 특정 작업을 위한 프롬프트를 디자인하는 데 집중하세요.
- 다국어 및 다국어 프롬프트: 여러 언어에서 효과적으로 작동하는 프롬프트 디자인 기법과 번역 작업을 위한 프롬프트 디자인에 대해 알아보세요.
- 큐 엔지니어링의 윤리적 고려 사항: 편견을 피하고 포용적인 큐를 만드는 윤리적 차원에 중점을 둡니다.
- 신속한 보안 및 안전 조치: AI 애플리케이션의 안전을 보장하기 위해 신속한 주입을 방지하고 콘텐츠 필터링을 구현하는 기술을 다룹니다.
- 단서 유효성 평가: 수동 및 자동 평가 기법을 포함하여 단서 유효성을 평가하고 측정하는 방법을 살펴보세요.
기본 큐잉 팁
큐 엔지니어링은 AI 모델과의 상호작용을 최적화하기 위해 고안된 다양한 기술을 포괄합니다. 이러한 기본 방법은 고급 전략의 기초를 형성하며, 제너레이티브 AI 도구의 잠재력을 최대한 활용하고자 하는 모든 사람에게 필수적인 기술입니다.
제로 샘플 힌트는 가장 간단한 기법으로, 추가 컨텍스트나 예제 없이 AI에게 직접 지시나 질문을 하는 것입니다[1][2]. 이 접근 방식은 간단한 작업이나 빠르게 답변을 얻을 때 적합합니다. 예를 들어, "프랑스의 수도가 어디야?"라고 묻는 것은 는 샘플이 없는 프롬프트입니다.
단일 샘플 단서는 제로 샘플 단서에 예시를 추가하여 AI의 응답을 유도합니다[3]. 이 기법은 특정 형식이나 스타일을 다룰 때 특히 유용합니다. 예를 들어, 제품 설명을 생성하기 위해 예제 설명을 제공한 다음 다른 제품에 대한 다른 설명을 생성하도록 요청할 수 있습니다.
샘플 적은 단서는 AI에 여러 개의 예제를 제공함으로써 이 개념을 더욱 확장합니다[2]. 이 접근 방식은 복잡한 작업이나 출력 일관성이 필요한 경우에 특히 효과적입니다. 원하는 출력 형식이나 스타일의 예시를 여러 개 제공하면 AI가 패턴을 더 잘 이해하고 복제할 수 있습니다.
역할 기반 프롬프트는 AI에 특정 역할이나 정체성을 부여함으로써 응답의 어조와 내용에 큰 영향을 미칩니다[1]. 예를 들어, 질문을 하기 전에 AI에게 "기술 지원 전문가 역할"이라고 지시하면 보다 기술적이고 지원적인 응답이 나올 수 있습니다.
프롬프트 리프레이밍은 프롬프트의 문구를 바꾸거나 재구성하여 AI가 다른 관점이나 보다 미묘한 응답을 제공하도록 안내하는 기법입니다[3]. 이 접근 방식은 초기 결과가 만족스럽지 않거나 주제의 여러 측면을 탐색해야 할 때 특히 유용합니다. 예를 들어, "재생 에너지의 장점은 무엇인가요?"라고 묻는 대신에 라는 질문 대신 "재생 에너지는 경제의 여러 부문에 어떤 영향을 미치나요?"라는 질문으로 재구성할 수 있습니다.
프롬프트 조합은 여러 지침 또는 질문을 하나의 포괄적인 프롬프트로 결합합니다[3]. 이 기술은 여러 답변을 얻거나 복잡한 질문을 처리할 때 유용합니다. 예를 들어 "공유 호스팅과 VPS 호스팅의 차이점 설명"과 "소규모 전자상거래 웹사이트에 더 적합한 호스팅 추천"을 하나의 프롬프트에 결합하면 보다 포괄적이고 맞춤화된 응답을 얻을 수 있습니다.
이러한 기본 기술은 효과적인 큐 엔지니어링을 위한 견고한 기반을 제공하여 사용자가 다양한 애플리케이션에서 보다 정확하고 관련성이 높으며 유용한 결과물을 생성하도록 AI 모델을 안내할 수 있도록 지원합니다.
고급 큐잉 전략
고급 힌트 엔지니어링 기법은 대규모 언어 모델의 성능과 기능을 향상시키기 위해 보다 정교한 방법을 활용합니다. 이러한 방법은 기본 힌트를 뛰어넘어 보다 복잡한 추론과 작업별 결과를 달성하는 것을 목표로 합니다.
일관된 사고(CoT) 프롬프트
이 기술은 일련의 중간 추론 단계를 제공함으로써 복잡한 추론 작업에서 모델 성능을 향상시킵니다. 일관된 사고 단서를 통해 언어 모델은 복잡한 문제를 더 작고 관리하기 쉬운 단계로 세분화하여 보다 정확하고 논리적인 결과물을 생성할 수 있습니다.
자체 호환성
CoT를 개선한 자기 일관성 접근 방식은 여러 추론 경로를 샘플링하여 가장 일관성 있는 답을 선택하는 방식입니다. 이 접근 방식은 모델이 가장 신뢰할 수 있는 결과를 결정하기 전에 여러 추론 전략을 탐색할 수 있으므로 여러 유효한 솔루션이 존재하는 문제에서 특히 효과적입니다.
ReAct
ReAct 기술은 추론과 행동을 결합하여 추론 과정과 작업별 행동을 모두 생성하는 모델입니다. 이 접근 방식을 사용하면 AI가 동적으로 계획, 실행 및 조정할 수 있으므로 외부 정보 소스와 상호 작용이 필요한 복잡한 문제 해결 시나리오에 이상적입니다.
멀티 모달 큐 엔지니어링
이 고급 기술에는 텍스트, 이미지, 오디오 등 여러 입력 유형을 통합하는 프롬프트를 디자인하는 것이 포함됩니다. 멀티모달 단서는 다양한 데이터 유형을 활용하여 인간의 지각과 커뮤니케이션 능력을 모방하여 보다 포괄적이고 맥락에 맞는 AI 상호 작용을 만듭니다.
실시간 알림 최적화
이 새로운 기술은 프롬프트의 유효성에 대한 즉각적인 피드백을 제공하여 명확성, 잠재적 편향성, 프롬프트가 원하는 결과와 일치하는지를 평가합니다. 이러한 실시간 안내는 초보자와 숙련된 사용자 모두의 프롬프트 작성 프로세스를 간소화합니다.
사전 예방적 팁
이러한 동적 접근 방식을 사용하면 사용자 상호작용과 피드백에 따라 단서를 조정할 수 있습니다. 사전 단서를 통해 AI 모델은 실시간으로 응답을 조정하여 상호 작용 전반에 걸쳐 결과의 관련성과 유효성을 높일 수 있습니다.
지식 생성 팁
이 기술은 언어 모델을 사용하여 질문에 답하기 전에 관련 지식을 생성하여 상식적인 추론을 강화합니다. 관련 정보를 먼저 생성한 다음 이를 답변에 통합함으로써 모델은 보다 통찰력 있고 맥락에 맞는 답변을 제공할 수 있습니다.
이러한 고급 기술은 큐 엔지니어링의 최첨단을 대표하며, 광범위한 애플리케이션 영역과 문제 영역에서 AI 성능을 최적화할 수 있는 강력한 도구를 제공합니다.
논리적 사고
일관된 사고(CoT) 추론은 대규모 언어 모델의 추론 능력을 향상시키기 위해 고안된 고급 프롬프트 엔지니어링 기법입니다. 이 방법은 주어진 문제에 대해 여러 추론 경로를 생성하고 가장 일관성 있거나 포괄적인 해결책을 선택하는 것입니다. 큐잉 엔지니어는 CoT 추론을 여러 번 수행함으로써 논리적 사고와 여러 단계가 필요한 문제를 해결하는 모델의 능력을 향상시킬 수 있습니다.
CoT 추론의 핵심 포인트
- 자동 완성 디코딩여러 추론에서 가장 일반적인 결론을 선택합니다.
- 복잡성 기반 팁: 가장 긴 추론 체인을 가진 결과를 선택합니다.
- 사람의 개입추론 결과가 현저히 불일치하는 경우 수동 수정을 통해 추론 체인을 수정합니다.
- 정확도 향상추론, 계산 및 의사 결정과 관련된 작업에서 모델 성능을 개선합니다.
큐 엔지니어는 CoT 추론을 활용하여 다양한 영역에서 복잡한 문제를 처리할 수 있는 보다 강력하고 안정적인 AI 시스템을 만들 수 있습니다.
ReAct 프롬프트의 예
ReAct(추론 및 행동) 프롬프트 방식은 추론 과정과 작업별 행동을 결합하여 대규모 언어 모델(LLM)의 문제 해결 능력을 향상시키는 고급 기법입니다. 이 접근 방식을 사용하면 LLM이 언어적 추론 단계와 동작을 번갈아 생성하여 보다 효율적이고 역동적인 문제 해결을 수행할 수 있습니다.
일반적인 ReAct 팁
- 생각: 모델의 추론 과정입니다.
- 액션수행해야 하는 특정 작업 또는 쿼리입니다.
- 관찰작업에서 얻은 결과 또는 정보입니다.
일반적인 예
이슈에펠탑이 위치한 국가의 수도는 어디인가요?
- 반사이 질문에 답하려면 에펠탑이 어디에 있는지 알아낸 다음 해당 국가의 수도를 파악해야 합니다.
- act'에펠탑 위치'를 검색하세요.
- 주의에펠탑은 프랑스 파리에 있습니다.
- 반사에펠탑이 프랑스에 있다는 것을 알았으니 이제 프랑스 수도를 찾아봐야겠어요.
- act"프랑스 수도"를 검색합니다.
- 주의프랑스의 수도는 파리입니다.
- 반사이 질문에 답하기 위해 필요한 모든 정보를 가지고 있습니다.
- act답변을 제공하세요.
- 솔루션에펠탑이 위치한 국가의 수도는 프랑스 파리입니다.
ReAct 프롬프트 적용
- 질문 및 답변복잡한 문제를 분해하고 관련 정보를 얻는 모델의 능력을 향상시킵니다.
- 작업 자동화추론과 행동을 결합하여 다단계 프로세스를 통해 모델을 안내합니다.
- 외부 지식 베이스와 상호 작용하기모델이 추론을 뒷받침하기 위해 추가 정보를 검색하고 통합할 수 있도록 합니다.
- 의사 결정사용 가능한 데이터를 기반으로 옵션을 평가하고 정보에 입각한 선택을 내리는 모델의 능력을 향상시킵니다.
개발자와 연구자는 ReAct 프롬프트를 구현함으로써 복잡한 추론 작업과 현실적인 문제 해결 시나리오를 수행할 수 있는 보다 강력하고 적응력 있는 AI 시스템을 만들 수 있습니다.
타겟 자극 큐잉
방향 자극 프롬프트(DSP)는 대규모 언어 모델(LLM)이 원하는 특정 출력을 생성하도록 안내하는 혁신적인 프레임워크입니다. 이 기술은 작고 조정 가능한 전략 모델을 활용하여 각 입력 인스턴스에 대한 보조 방향 자극 프롬프트를 생성하며, 이는 LLM이 원하는 결과를 생성하도록 안내하는 미묘한 단서 역할을 합니다.
DSP의 주요 기능
- 작고 조정 가능한 전략 모델(예: T5)을 사용하여 방향성 자극을 생성합니다.
- 감독된 미세 조정 및 집중 학습을 통한 최적화.
- 요약 생성, 대화 응답 생성, 연쇄 추론 등 다양한 작업에 적용할 수 있습니다.
- 제한된 주석 데이터(예: 80개의 대화만 사용되는 경우)로 성능을 크게 개선합니다. ChatGPT MultiWOZ 데이터 세트의 성능이 41.41 TP3T 향상되었습니다.
연구자와 실무자는 DSP를 사용하여 파라미터를 직접 수정하지 않고도 LLM의 기능을 향상시켜 큐 엔지니어링에 대한 유연하고 효율적인 접근 방식을 제공할 수 있습니다.
지식 생성 힌트
생성된 지식 프롬프트는 질문에 답하거나 작업을 완료하기 전에 관련 사실을 생성하도록 요청하여 AI 모델의 성능을 향상시킵니다. 이 2단계 프로세스에는 지식 생성(모델이 관련 정보를 생성하는 단계)과 지식 통합(이 정보를 사용하여 보다 정확하고 맥락에 맞는 응답을 구성하는 단계)이 포함됩니다.
주요 이점
- AI가 생성한 콘텐츠의 정확성과 신뢰성을 개선하세요.
- 주어진 주제에 대한 맥락적 이해를 높입니다.
- 사실 정보에 대한 응답을 고정하는 기능.
- API나 데이터베이스와 같은 외부 소스를 통합하여 지식을 더욱 확장할 수 있습니다.
지식 생성 프롬프트 방식은 모델에 관련 사실을 먼저 고려하도록 유도함으로써 특히 복잡한 작업이나 전문 주제를 다룰 때 보다 유익하고 합리적인 결과물을 생성하는 데 도움이 됩니다.
실용적인 엔지니어링 기술에 대한 힌트
이 팁 엔지니어링 기술 가이드는 전적으로 다음을 기반으로 합니다. 니르디아망 우수 사례의 저장소. 모든 콘텐츠와 Jupyter 노트북의 저작권은 원본 리포지토리에 있습니다:프롬프트 엔지니어링.
여기에 추가하는 이유는 이 자료가 멋진 학습 자료이며 저작권이 있기 때문입니다. 프롬프트 엔지니어링 창고.
🌱 기본 개념
- 팁 프로젝트 프로필
개요 🔎
AI 및 언어 모델 큐 엔지니어링의 기반이 되는 개념에 대한 자세한 소개입니다.
구현됨 🛠️
기본 개념, 구조화된 프롬프트, 비교 분석 및 문제 해결 응용을 다루는 이론적 설명과 실제 데모를 결합합니다.
- 기본 큐잉 구조
개요 🔎
단일 라운드 큐와 다중 라운드 큐(대화)라는 두 가지 기본 큐 구조를 살펴보세요.
구현됨 🛠️
OpenAI의 GPT 모델과 LangChain을 사용한 단일 및 다중 라운드 프롬프트, 프롬프트 템플릿, 대화 체인 데모입니다.
- 팁 템플릿 및 변수
개요 🔎
Python과 Jinja2 템플릿 엔진을 사용하여 변수가 포함된 프롬프트 템플릿을 만들고 사용하는 방법을 설명합니다.
구현됨 🛠️
템플릿 생성, 변수 삽입, 조건부 콘텐츠, 목록 처리 및 OpenAI API와의 통합이 포함됩니다.
🔧 핵심 기술
- 제로 샘플 팁
개요 🔎
제로 샘플 단서를 탐색하여 언어 모델이 특정 예제나 사전 교육 없이도 작업을 완료할 수 있도록 합니다.
구현됨 🛠️
OpenAI와 LangChain을 사용하여 직접 작업 지정, 역할 기반 프롬프트, 형식 지정 및 다단계 추론을 시연합니다.
- 샘플 적은 학습과 상황별 학습 비교
개요 🔎
OpenAI의 GPT 모델과 LangChain 라이브러리를 통해 샘플 덜 학습 및 상황별 학습 기법을 살펴보세요.
구현됨 🛠️
기본 및 고급 샘플 학습, 상황별 학습, 예제 선택 및 평가를 구현하기 위한 모범 사례입니다.
- 체인 사고(CoT) 팁
개요 🔎
복잡한 문제를 단계별 추론 프로세스로 세분화하여 AI 모델을 안내하는 연쇄적 사고(CoT) 힌트를 소개합니다.
구현됨 🛠️
기본 및 고급 CoT 기술을 다루고, 다양한 문제 해결 시나리오에 적용하며, 표준 프롬프트와 비교합니다.
🔍 고급 전략
- 자체 일관성 및 다중 경로 추론
개요 🔎
다양한 추론 경로를 생성하고 결과를 집계하여 AI가 생성하는 답변의 품질을 개선하는 기술을 살펴보세요.
구현됨 🛠️
다양한 추론 프롬프트 설계, 다중 응답 생성, 집계 방법 구현, 자체 일관성 검사 적용을 시연합니다.
- 제약 및 부트스트랩 생성
개요 🔎
모델 출력에 제약 조건을 설정하고 규칙 기반 생성을 구현하는 기술에 중점을 둡니다.
구현됨 🛠️
구조화된 프롬프트를 생성하고, 제약 조건을 적용하고, 규칙 기반 생성 기술을 탐색하려면 LangChain의 PromptTemplate을 사용하세요.
- 캐릭터 팁
개요 🔎
AI 모델에 특정 역할을 할당하고 효과적인 역할 설명을 설계하는 기술을 살펴보세요.
구현됨 🛠️
역할 기반 프롬프트 생성, AI 모델에 역할 할당 및 다양한 시나리오에 대한 역할 설명 최적화를 시연합니다.
🚀 고급 실현
- 작업 분석 팁
개요 🔎
복잡한 작업을 세분화하고 프롬프트에서 하위 작업을 연결하는 기술을 살펴보세요.
구현됨 🛠️
문제 분석, 하위 작업 정의, 목표 단서 엔지니어링, 순차적 실행 및 결과 종합이 포함됩니다.
- 큐 체인 및 직렬화
개요 🔎
여러 프롬프트를 연결하고 복잡한 AI 기반 작업을 위한 논리적 흐름을 구축하는 방법을 시연합니다.
구현됨 🛠️
기본 큐 체인, 순차적 큐, 동적 큐 생성 및 큐 체인의 오류 처리에 대해 알아보세요.
- 명령 엔지니어링
개요 🔎
언어 모델에 대한 명확하고 효과적인 지침을 설계하고, 특수성과 일반성의 균형을 맞추는 데 집중하세요.
구현됨 🛠️
지침을 생성 및 최적화하고, 다양한 구조를 시도하고, 모델 응답을 기반으로 반복적으로 개선하는 작업이 포함됩니다.
🎨 최적화 및 개선
- 큐 최적화 기술
개요 🔎
A/B 테스트와 반복적 개선에 중점을 두고 프롬프트를 최적화하는 고급 기술을 살펴보세요.
구현됨 🛠️
관련 지표를 사용하여 신속한 A/B 테스트, 반복적인 개선 프로세스 및 성능 평가를 시연합니다.
- 모호성 처리 및 명확성 향상
개요 🔎
모호한 프롬프트를 인식하고 해결하는 방법과 보다 명확한 프롬프트를 작성하는 기술에 중점을 둡니다.
구현됨 🛠️
모호한 프롬프트 분석, 모호성 해결을 위한 전략 구현, 보다 명확한 프롬프트 작성 기법 탐색 등이 포함되어 있습니다.
- 큐 길이 및 복잡도 관리
개요 🔎
대규모 언어 모델을 사용할 때 프롬프트의 길이와 복잡성을 관리하는 기술을 살펴보세요.
구현됨 🛠️
청크, 요약, 반복 처리 등 긴 문맥을 처리하기 위한 전략과 간결함 사이에서 세부 사항과 간결함의 균형을 맞추는 기술을 시연합니다.
🛠️ 특수 애플리케이션
- 네거티브 단서 및 예기치 않은 출력 방지
개요 🔎
대규모 언어 모델에서 원치 않는 출력을 피하기 위한 부정적인 단서와 기법을 살펴봅니다.
구현됨 🛠️
기본 네거티브, 명시적 제외, LangChain을 사용한 제약 조건 구현, 네거티브 단서를 평가하고 개선하는 방법의 예시가 포함되어 있습니다.
- 큐 서식 및 구조
개요 🔎
다양한 큐 형식과 구조적 요소를 살펴보고 AI 모델 응답에 미치는 영향을 시연해 보세요.
구현됨 🛠️
여러 큐 형식을 만들고, 구조 요소를 통합하고, 다양한 큐 구조에 대한 응답을 비교하는 데모를 시연합니다.
- 작업별 팁
개요 🔎
텍스트 요약, 퀴즈, 코드 생성, 창작 글쓰기 등 특정 작업을 위한 프롬프트의 생성 및 사용법을 살펴보세요.
구현됨 🛠️
여기에는 작업별 프롬프트 템플릿을 설계하고, LangChain을 사용하여 구현하고, 샘플 입력으로 실행하고, 각 작업 유형에 대한 출력을 분석하는 것이 포함됩니다.
🌍 고급 애플리케이션
- 다국어 및 교차 언어 팁
개요 🔎
다국어 및 언어 번역 작업을 위한 효과적인 프롬프트를 디자인하는 기법을 살펴보세요.
구현됨 🛠️
여기에는 다국어 프롬프트 만들기, 언어 감지 및 적응 구현, 다국어 번역 프롬프트 디자인, 다양한 문자 체계 및 문자 집합 처리가 포함됩니다.
- 큐 엔지니어링의 윤리적 고려 사항
개요 🔎
편견을 피하고 포용적이고 공평한 프롬프트를 만드는 데 중점을 둔 프롬프트 엔지니어링의 윤리적 차원을 살펴보세요.
구현됨 🛠️
프롬프트의 편향성을 파악하고, 포용적인 프롬프트를 만들기 위한 전략을 구현하며, AI 결과물의 윤리적 품질을 평가하고 개선하는 방법을 포함합니다.
- 팁 안전 및 보안
개요 🔎
프롬프트 주입을 방지하고 프롬프트에서 콘텐츠 필터링을 구현하여 AI 애플리케이션을 보호하는 방법을 강조합니다.
구현됨 🛠️
프롬프트 주입을 방지하는 기술, 콘텐츠 필터링 구현, 보안 조치의 효과 테스트 등이 포함되어 있습니다.
- 프롬프트의 효과 평가하기
개요 🔎
AI 언어 모델 단서의 유효성을 평가하는 방법과 기술을 살펴보세요.
대규모 언어 모델(LLM) API 이해하기
대규모 언어 모델(LLM) API에 대해 알아보겠습니다.
API를 사용하는 방법에는 두 가지가 있는데, 하나는 직접 HTTP 요청을 보내는 것이고 다른 하나는 항상 최신 기능으로 업데이트되는 공식 OpenAI 패키지를 pip를 통해 설치하는 것입니다.
pip install openai
이 API 형식은 매우 인기가 많기 때문에 다른 많은 제공업체에서도 동일한 형식의 API를 제공하며, 이를 "OpenAI 호환"이라고 합니다.
OpenAI 호환 API를 제공하는 벤더 목록
아래는 OpenAI API와 호환되는 공급업체 목록이며, 개발자는 OpenAI가 제공하는 것과 유사한 방식으로 이러한 서비스를 활용할 수 있습니다:
- Groq
- Groq 제공되는 대부분의 API는 OpenAI의 클라이언트 라이브러리와 호환됩니다. 사용자는
base_url
를 생성하고 Groq의 API 키를 사용하여 애플리케이션이 Groq에서 실행되도록 구성합니다.
- Groq 제공되는 대부분의 API는 OpenAI의 클라이언트 라이브러리와 호환됩니다. 사용자는
- 미스트랄 AI
- 미스트랄 개발자가 이 서비스를 통해 다양한 모델에 액세스할 수 있도록 OpenAI 호환 요청을 지원하는 API를 제공합니다.
- 포옹하는 얼굴
- 허깅 페이스는 OpenAI의 API와 유사한 방식으로 구성된 API를 통해 수많은 모델에 액세스할 수 있습니다. 허깅 페이스는 방대한 모델 라이브러리로 유명합니다.
- 구글 버텍스 AI
- 구글 버텍스 AI를 통해 사용자는 OpenAI API와 일관된 방식으로 대규모 언어 모델과 상호 작용할 수 있습니다.
- Microsoft Azure OpenAI
- Microsoft는 기존 Azure 서비스와 쉽게 통합할 수 있도록 Azure 플랫폼을 통해 OpenAI 모델에 대한 액세스를 제공합니다.
- 인류학
- 인류학 모델도 OpenAI의 구조를 모방한 API를 통해 액세스할 수 있으므로 유사한 상호 작용이 가능합니다.
이러한 공급자를 통해 개발자는 다양한 AI 기능을 활용하면서 익숙한 OpenAI API 구조와의 호환성을 유지하여 애플리케이션 및 워크플로에 쉽게 통합할 수 있습니다.
다른 API 아키텍처와 유형을 사용하는 제공자도 있지만, 다음과 같은 것을 사용할 수 있습니다. litellm 이러한 클라이언트 라이브러리는 다양한 유형의 대규모 언어 모델을 위한 통합 클라이언트 패키지를 제공합니다.
또한 다음과 같은 포트키 이러한 게이트웨이는 모든 대규모 언어 모델에 대해 OpenAI 호환 API를 제공합니다.
이 문서에서는 API의 다양한 매개변수에 대해 알아봅니다.
주요 매개 변수
온도
- 설명온도 매개변수는 0~2 범위에서 모델 출력의 무작위성을 제어합니다.
- 영향(일반적으로 부정적):
- 낮은 값(0-0.3): 출력은 보다 결정적이고 집중적이며 종종 유사한 응답을 반복합니다.
- 중간(0.4-0.7):: 창의성과 일관성 사이에서 균형을 잡으세요.
- 높은 값(0.8-2): 보다 다양하고 창의적인 결과물을 생성하지만 의미 없는 결과가 나올 수 있습니다.
- 일반적인 예:
response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "完成句子:'幸福的关键是'。"}], temperature=1 )
Top_p
- 설명이 파라미터는 모델이 가장 높은 핵만 고려하는 핵 샘플링을 활성화합니다.
p
출력의 확률적 품질. - 영역0에서 1 사이로 값이 낮을수록 더 많은 토큰이 출력될 가능성이 높습니다.
- 일반적인 예:
response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "写一首诗。"}], top_p=0.9 )
최대 토큰
- 설명최대 개수를 정의합니다. 토큰 수량(단어 또는 단어의 일부).
- 기본값: 대부분의 모델에서 일반적으로 최대 4096 토큰으로 설정됩니다.
- 일반적인 예:
response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "讲一个故事。"}], max_tokens=150 )
함수 호출
- 설명이 기능을 사용하면 모델이 사용자 입력에 따라 미리 정의된 함수를 호출하여 외부 API 또는 서비스와 상호 작용할 수 있습니다.
- 일반적인 예:
functions = [ { "name": "get_current_weather", "description": "获取某地的当前天气。", "parameters": { "type": "object", "properties": { "location": {"type": "string"}, "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]} }, "required": ["location"] } } ] response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "纽约的天气如何?"}], functions=functions, function_call={"name": "get_current_weather"} )
API 호출의 역할
API 호출에 관련된 역할을 이해하면 상호 작용을 효과적으로 구성하는 데 도움이 됩니다.
시스템 역할
- 목표대화 전반에 걸쳐 모델의 행동을 안내하는 높은 수준의 지침 또는 컨텍스트를 제공합니다.
- 사용법: 메시지 배열의 시작 부분에 설정하여 상호작용의 어조 또는 규칙을 설정합니다.
- 일반적인 예::
messages = [ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "What can you do?"} ]
사용자 역할
- 목표: 사람의 입력을 나타내며, 쿼리 또는 프롬프트를 통해 대화를 안내합니다.
- 사용법질문을 하거나 진술을 제공하는 대화에서 가장 일반적으로 사용됩니다.
- 일반적인 예::
{"role": "user", "content": "Can you explain how OpenAI works?"}
어시스턴트 역할
- 목표는 사용자 입력 및 시스템 명령에 따라 모델이 생성한 응답을 나타냅니다.
- 사용법사용자 쿼리에 응답할 때 모델이 자동으로 이 역할을 맡습니다.
- 일반적인 예::
{"role": "assistant", "content": "OpenAI uses advanced machine learning techniques to generate text."}
기타 매개 변수
(물 등의) 흐름
- 설명true로 설정하면 실시간 애플리케이션의 경우 부분 응답을 생성할 때 스트리밍을 허용합니다.
Logprobs
- 설명토큰 예측의 로그 확률을 반환하며, 이는 모델의 동작을 이해하고 출력을 개선하는 데 사용됩니다.
요약
OpenAI API는 개발자가 고도의 대화형 애플리케이션을 만드는 데 사용할 수 있는 강력한 파라미터와 역할 세트를 제공합니다. 온도와 같은 매개변수를 조정하고 구조화된 역할을 효과적으로 활용함으로써 사용자는 특정 요구 사항에 맞게 응답을 조정하는 동시에 대화의 명확성과 제어를 보장할 수 있습니다.
다음은 OpenAI와 호환되는 다양한 제공업체의 API를 사용하는 방법과 경량 대규모 언어 모델(LLM)의 적용 예시입니다.
호환되는 제공업체의 OpenAI API 사용 예시
1. Groq
Groq의 API를 사용하려면 기본 URL을 설정하고 Groq API 키를 제공해야 합니다.
import os
import openai
client = openai.OpenAI(
base_url="https://api.groq.com/openai/v1",
api_key=os.environ.get("GROQ_API_KEY")
)
response = client.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Tell me a joke."}]
)
print(response.choices[0].message['content'])
2. 미스트랄 AI
미스트랄 AI 또한 OpenAI 호환 API를 제공하며, 사용 방법은 다음과 같습니다:
import requests
url = "https://api.mistral.ai/v1/chat/completions"
headers = {
"Authorization": f"Bearer {os.environ.get('MISTRAL_API_KEY')}",
"Content-Type": "application/json"
}
data = {
"model": "mistral-7b",
"messages": [{"role": "user", "content": "What is the capital of France?"}]
}
response = requests.post(url, headers=headers, json=data)
print(response.json()['choices'][0]['message']['content'])
3. 포옹하는 얼굴
허깅 페이스 API를 사용하려면 액세스 토큰이 필요합니다. 다음은 샘플 코드입니다:
import requests
url = "https://api-inference.huggingface.co/models/gpt2"
headers = {
"Authorization": f"Bearer {os.environ.get('HUGGINGFACE_API_KEY')}"
}
data = {
"inputs": "Once upon a time in a land far away,"
}
response = requests.post(url, headers=headers, json=data)
print(response.json()[0]['generated_text'])
4. 구글 버텍스 AI
다음 코드를 사용하여 Google Vertex AI와 상호 작용할 수 있습니다:
from google.cloud import aiplatform
aiplatform.init(project='your-project-id', location='us-central1')
response = aiplatform.gapic.PredictionServiceClient().predict(
endpoint='projects/your-project-id/locations/us-central1/endpoints/your-endpoint-id',
instances=[{"content": "Who won the World Series in 2020?"}],
)
print(response.predictions)
5. Microsoft Azure OpenAI
다음은 Azure의 OpenAI 서비스를 호출하는 코드의 예입니다:
import requests
url = f"https://your-resource-name.openai.azure.com/openai/deployments/your-deployment-name/chat/completions?api-version=2023-05-15"
headers = {
"Content-Type": "application/json",
"api-key": os.environ.get("AZURE_OPENAI_API_KEY")
}
data = {
"messages": [{"role": "user", "content": "What's the weather today?"}],
"model": "gpt-35-turbo"
}
response = requests.post(url, headers=headers, json=data)
print(response.json()['choices'][0]['message']['content'])
6. 인류학
앤트로픽의 Claude 모델과 해당 API의 샘플 코드는 아래와 같습니다:
import requests
url = "https://api.anthropic.com/v1/complete"
headers = {
"Authorization": f"Bearer {os.environ.get('ANTHROPIC_API_KEY')}",
"Content-Type": "application/json"
}
data = {
"model": "claude-v1",
"prompt": "Explain quantum physics in simple terms.",
}
response = requests.post(url, headers=headers, json=data)
print(response.json()['completion'])
이 예는 텍스트 생성 작업에서 의미 있는 결과물을 얻으면서 경량 모델을 효과적으로 활용하는 방법을 보여줍니다.
출처:
https://www.coltsteele.com/tips/understanding-openai-s-temperature-parameter
https://community.make.com/t/what-is-the-difference-between-system-user-and-assistant-roles-in-chatgpt/36160
https://arize.com/blog-course/mastering-openai-api-tips-and-tricks/
https://learn.microsoft.com/ko-kr/Azure/ai-services/openai/reference
https://community.openai.com/t/the-system-role-how-it-influences-the-chat-behavior/87353
https://community.openai.com/t/understanding-role-management-in-openais-api-two-methods-compared/253289
https://platform.openai.com/docs/advanced-usage
https://platform.openai.com/docs/api-reference
https://console.groq.com/docs/openai
https://docs.jabref.org/ai/ai-providers-and-api-keys
https://www.reddit.com/r/LocalLLaMA/comments/16csz5n/best_openai_api_compatible_application_server/
https://docs.gptscript.ai/alternative-model-providers
https://towardsdatascience.com/how-to-build-an-openai-compatible-api-87c8edea2f06?gi=5537ceb80847
https://modelfusion.dev/integration/model-provider/openaicompatible/
https://docs.jabref.org/ai/ai-providers-and-api-keys
https://docs.gptscript.ai/alternative-model-providers
https://console.groq.com/docs/openai
팁 프로젝트 입문서 II(함수 호출)
로딩에는 다음 라이브러리, 도구 및 구성이 필요합니다.
https://colab.research.google.com/github/adithya-s-k/AI-Engineering.academy/blob/main/PromptEngineering/function_calling.ipynb
큐 엔지니어링 시작하기
로딩에는 다음 라이브러리, 도구 및 구성이 필요합니다.
https://colab.research.google.com/github/adithya-s-k/AI-Engineering.academy/blob/main/PromptEngineering/prompt_engineering.ipynb
© 저작권 정책
기사 저작권 AI 공유 서클 모두 무단 복제하지 마세요.
관련 문서
댓글 없음...