Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- mp4fpsmod
- 자원부족
- terminal
- kotlin
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- tolerated
- Value too long for column
- VARCHAR (1)
- 달인막창
- 개성국밥
- 겨울 부산
- Spring Batch
- k8s #kubernetes #쿠버네티스
- 코루틴 빌더
- pytest
- 티스토리챌린지
- JanusWebRTCServer
- 코루틴 컨텍스트
- 깡돼후
- JanusWebRTCGateway
- python
- 오블완
- PersistenceContext
- JanusWebRTC
- PytestPluginManager
- taint
- JanusGateway
- vfr video
- preemption #
- table not found
Archives
너와 나의 스토리
[LLM] 프롬프트 엔지니어링 - 인젝션 공격, 제로샷/퓨샷, CoT, Self-Consistency, ToT 본문
Data Analysis/LLM
[LLM] 프롬프트 엔지니어링 - 인젝션 공격, 제로샷/퓨샷, CoT, Self-Consistency, ToT
노는게제일좋아! 2024. 6. 24. 09:01반응형
프롬프트 엔지니어링(Prompt Engineering)
- LLM이 정확하고 유용한 출력을 반환하도록 유도하는 입력(프롬프트)를 만드는 것.
- 프롬프트 엔지니어링에는 언어의 뉘앙스, 작업 중인 특정 도메인, LLM의 능력과 한계를 이해하는 기술이 필요하다.
언어 모델에서 정렬(Alignment)
- 정렬: 모델이 사용자가 예상한 것과 일치하는 방식으로 입력 프롬프트를 이해하고 답변하는 것.
- 표준 언어 모델링에서 모델은 선행 단어의 맥락을 기반으로 다음 단어나 단어의 시퀀스를 예측하도록 훈련되었으나, 이 접근 방식으로만은 정렬할 수 없음.
- 추가적인 정렬 기능과 함께 개발된 언어 모델을 사용하면 질문-답변이나 언어 번역과 같은 애플리케이션을 더 유용하게 만들 수 있다.
- 예: RLAIF
프롬프트 엔지니어링 방법
- 간결하면서도 명확하게(구체적으로) 명령하라.
- 제로샷/퓨샷 프롬프팅
- 출력 구조화
- 구조화된 형식으로 LLM 출력 유도.
- 페르소나 지정
- 모델이 스타일이나 말투를 채택할 수 있도록 한다.
- 예: 가게 점원이라 생각하고 질문에 답하세요.
제로샷 러닝과 퓨샷 러닝
- 제로샷 러닝(Zero-shot Learning)
- 어떠한 데모나 예제를 제공하지 않고 지침을 직접 LLM에게 전달하는 것.
- 퓨샷 러닝(Few-shot Learning)
- 명시적인 치침 없이 작업과 관련된 몇 가지 입력-출력 예제만을 LLM에 제공.
- 문제의 맥락과 애매한 차이를 이해하는 데 도움을 주는 강력한 기술.
프롬프트 인젝션(Prompt Injection) 공격
- 공격자가 LLM에 제공된 프롬프트를 조작하여 악의적인 결과를 생성하려고 할 때 사용하는 공격 유형.
- 프롬프트 인젝션 공격을 방지하기 위한 방법
- 너무 짧은 프롬프트를 피하기
- 프롬프트가 길수록 파악하기 힘들다.
- 독특하고 복잡한 프롬프트 구조 사용
- 특정 도메인 지식을 통합하는 것이 포함될 수 있다.
- 공격이 LLM에 도달하기 전에 필터링하고, 후처리 단계에서 민감한 정보를 포함한 답변을 필터링하기
- 프롬프트를 정기적으로 업데이트하고 수정하기
- 너무 짧은 프롬프트를 피하기
NLI를 이용해서 유효성 검사 파이프라인 만들기
- Meta AI에 의해 만들어진 LLM BART를 활용하여 유효성 검사 파이프라인을 만들 수 있다.
- 이 BART는 Mutlti-Genre Natural Language Inference(MNLI) 데이터셋으로 학습되어 LLM에서 생성된 출력에서 공격적인 행동을 감지하고 필터링하는데 사용된다.
- BART-MNLI는 NLI를 사용하여 두 텍스트 조각 사이의 관계를 이해할 수 있는 강력한 LLM이다.
배치 프롬프팅(Batch Prompting)
- LLM이 일괄적으로 추론을 실행
- 여러 샘플을 하나의 프롬프트로 그룹화하여 LLM이 동시에 여러 답변을 생성하게 하는 것.
프롬프트 체이닝(Prompt Chaining)
- 더 복잡하거나 여러 단계의 작업을 완료하기 위해 하나의 LLM 출력을 다른 LLM의 입력으로 사용하는 것을 의미합니다.
제로샷 프롬프팅과 퓨샷 러닝
- 제로샷 프롬프팅
- 어떠한 데모나 예제를 제공하지 않고 지침을 직접 LLM에게 전달하는 것.
- 퓨샷 러닝
- 명시적인 치침 없이 작업과 관련된 몇 가지 입력-출력 예제만을 LLM에 제공
CoT 프롬프팅
- 모델에 중간 단계를 제공해 결정적인 답변으로의 추론을 촉진하기 위한 것.
- CoT에는 제로샷과 푸샷 두 가지 변형이 있다.
- 제로샷 CoT: "단계별로 생각해보라"라는 지시문을 프롬프트에 추가한다면, LLM은 문제를 논리적으로 생각하도록 장려된다. (답을 추측하고 나중에 정당화하는 것이 아니라) -> 제로샷 사고 체인
- 퓨샷 CoT: 추론이 결정되기 전에 LLM이 추론 과정을 설명하도록 장려하기 위한 몇 가지 샘플을 제공
- CoT 프롬프팅이 더 정확한 결과를 가져올 수 있음이 입증됐지만, 이 성능 향상은 모델의 크기와 비례하며, 작은 모델에서는 개선이 미미하거나 부정적인 경우도 있다.
자기 일관성 (Self-Consistency)
- 모델은 질문에 대해 여러 후보 답변을 생성한다.
- 이들은 서로 비교되고 가장 일관된 혹은 가장 빈번한 답변이 최종 출력으로 선택된다.
ToT
- 주어진 프롬프트에 대해 여러 문제 해결 단계나 접근 방식을 생성한 다음, AI 모델을 사용해 그것들을 평가한다.
- 평가는 해결책이 문제에 적합한지에 대해 모델이 판단한 것을 기반으로 한다.
- 단계:
- 솔루션 생성
- LLM에게 솔루션 평가하도록 요청
출처
- [쉽고 빠르게 익히는 실전 LLM]
- [Large Language Models 쉽고 빠르게 익히는 실전 LLM]
반응형
'Data Analysis > LLM' 카테고리의 다른 글
[LLM] RAG with OpenAI 쉬운 구현 방법과 설명 (0) | 2024.08.10 |
---|---|
LLM Conditioning 방법 - RLHF, PEFT (0) | 2024.07.13 |
[LLM] Text Embedding과 Vector DB (0) | 2024.06.21 |
[LLM] Chat Completion API / RAG with Llama-index / 임베딩이란 (0) | 2024.05.22 |
NLP 발전 과정과 LLM의 등장 / GPT 로직 및 Attention Mechanism 설명 (0) | 2024.05.20 |
Comments