프롬프트 작성팁

프롬프트를 작성하며 시도한 이야기와 경험을 담은 공간입니다.
기본 프롬프팅 기법, 고급 프롬프팅 전략, 프롬프트 최적화 실험, LLM별 프롬프팅 방법 등을 기록해요.
세밀한 요약을 위한 프롬프팅
세밀한 요약을 위한 프롬프팅 LLM이 발산하며 요약을 잘하지만 세밀하지는 않습니다. 촘촘한 요약을 하다보면 가독성이 떨어지거나 가독성을 올리면 밀도가 떨어지는데요. 문제 해결을 위한 아이디어를 얻었던 논문 두 편을 소개합니다. 물론 논문이라고하여 모두 신뢰할 수는 없습니다. 문제 해결을 위한 아이디어정도를 프롬프트에 응용하는 편입니다. ☑ Elment-Aware Summary ☑ Chain-of-Density (CoD) Prompting === ☑ Elment-Aware Summary LLM의 요약 품질을 올리기 위한 프롬프트로 Chain-of-thought 을 적용한 Summary CoT를 제안합니다. 요약할 텍스트의 핵심 요소(인물, 날짜, 사건, 결과를 중심으로)를 반영한 프롬프트에서 요약의 일관성과 정확성을 올렸습니다. 포인트는 "Element" 을 프롬프트에 반영하는 것인데요 슬라이드에 상세를 정리했습니다. ☑ Chain-of-Density (CoD) Prompting 2023년 SalesForce AI, MIT et al 에서 요약의 정보 밀도 향상 프롬프트 연구 논문입니다. CoD Prompting 는 기존 요약의 entity 밀도를 단계적으로 높이는 방법입니다. 압축과 통합을 통해 내용 길이를 유지하는 것이 특징입니다.
  • S
    Sujin_Kang
👍❤️
9
ChatGPT로 번역의 품질을 높이기위한 프롬프팅
>> ChatGPT로 번역의 품질을 높이기위한 프롬프팅 챗지피티(GPT 포함)으로 높은 품질의 번역을 하기는 참 어렵습니다. 크게 네 가지 이유입니다. 1️⃣ 영어와 다른 목표언어의 Grammar와 Sentence Structure 2️⃣ 영어와 다른 목표언어의 Culture References 3️⃣ 영어가 아닌 다른 언어의 Lack of Data 4️⃣ 특정 분야의 용어, Technical Terms 번역관련 프롬프트를 개발하다가, 참고할 만한 논문을 몇 개 읽었습니다. 영어-> 한국어(혹은 한국어 ->) 로 번역할 때, 다음의 방법으로 번역 품질을 개선할 수 있었습니다. 1️⃣ Few-shot in Context Learning 정답에 가까운 예시를 주는 방식입니다. 이 때 Fuzzy matches의 방식은 품질의 일관성과 정확도를 높여줍니다. Fuzzy matches 는 task 와 유사한 컨텍스트를 활용하는 방식입니다. 예제를 프롬프트에 사용할 때는 5개 미만으로 주어야 품질에 영향을 미치는 것을 경험하였습니다. 2️⃣ Task Information Prompting 해결해야 하는 과제에 중점을 둔 상세한 프롬프트 작성 방식입니다. 프롬프트의 구조화와 상세한 내용을 '과제' 중심으로 세분화하는 것입니다. 3️⃣ Domain Specific Prompting 특정 도메인에 적합한 프롬프트를 제공하여 번역 성능을 향상 시키는 방법입니다. 도메인에 해당하는 단어를 선별하여 context 를 추가합니다. 위의 내용을 슬라이드에 정리하여 이미지로 첨부했습니다. 논문의 핵심 내용만을 발췌했습니다.
  • S
    Sujin_Kang
3
👍
3
Anthropic Prompt Workbook & Prompt Anatomy
Anthropic 의 Prompt workbook : Google Sheets Adds-on 과 프롬프트 Anatomy Google Sheets 에 Claude API를 호출해 셀에서 직접 prompt 의 결과물을 확인할 수 있는 Claude for Sheets : template workbook 을 사용해봤습니다. Google Sheets를 사용해서 프롬프트 평가, 테스트, DB관리와 버져닝, Token Tracking을 많이 하실텐데요. 저도 프롬프트 DB관리를 Google Sheets에 한 적이 있어서, Claude에서 제공한 template 을 보니 매우 흥미롭더라구요. 특히 실시간 데이터 분석이나 처리에서 이 sheets 을 활용하는 장점이 확실히 있을 것 같습니다. 오프라인 프롬프트 엔지니어링 수업 준비를 하면서, 다양한 유형의 프롬프트 제작 실습을 하고 포트폴리오를 만들기 위해 이상적인 Workbook의 유형을 고민하고 있는데, Anthropic 의 Prompt workbook에서 많은 아이디어를 얻었습니다. 저는 프롬프트는 네 가지 요소로 구분하고 있습니다. 해부를 하면서, 하나하나의 요소의 결합과 그의 결과물을 분석합니다. Prompt Anatomy 1️⃣ Type A: 명령문 (Instruction) 2️⃣ Type B: 맥락 (context) 3️⃣ Type C: 예시 (example) Delimiter ("" 나 <> </> ::, -- 등의 기호) 를 사용해 예시임을 LLM에게 explicit 하게 hinting 함을 선호하고 있습니다. 4️⃣ Type D: 외부 데이터 (Output source) Type D는 unstrcutred data (비정형 데이터)를 줄글 형태의 프롬프트와 어떻게 assemble 할 수 있는지 조립방법에 대한 연구를 많이 합니다. 레고 블럭처럼 조립하는 거죠. Blocking을 했을 때, 비정형 데이터와 기존 프롬프트 {{Text}} 간의 이질감이 가장 없다라 생각하고 있습니다. Prompt Workbook을 보며, 프롬프트 요소와 구조화, 이상적인 프롬프트 텍스트 포맷에 대한 아이디어를 더 상세하게 얻을 수 있었습니다. ✅ Prompt Workbook의 다양한 프롬프트 템플릿과 유용한 팁 1️⃣ 기본 프롬프트 테스트
  • S
    Sujin_Kang
👍
5
LLM에게 친절해야 할까?
공손한 언어와 프롬프트의 효과 프롬프트를 써오면서 AI에게 예의를 갖추는 것이 혹은 예의바른 문장을 사용하는 것이 가치가 있는 일이라고 말하고 싶습니다. 두 가지 이유인데요, 1️⃣ 공손한 표현 사용은 AI로 부터 더 좋은 결과물을 얻는다. 2️⃣ 공손한 표현은 AI 사용의 윤리적 담화를 형성한다. "AI는 감정이 없는데, 예의를 차리는 것이 효과가 있을까?" 라고 생각하는 분들도 있을거예요. 하지만 인간은 다른 사람과 감정적으로 연결하려하고, 예의를 갖추려 하기 때문에 생성형 AI를 사용하면서도 예의 바른 표현과 공손한 매너가 기본인 분들도 많죠. (세상에 100%는 없기 때문에, 다수라 저는 믿습니다) 이 글에서는, 공손한 표현의 프롬프팅 효과에 대해 다뤄보겠습니다. 프롬프트를 작성할 때 다음 세 가지 중 한 가지 표현을 사용할 거예요. (1) 중립적인 어조: 특별히 예의바르지도, 무례하지도 않은 "AI가 해야 할 일"을 명령하는 중립적인 프롬프트 (2) 예의바른 표현: 공손성이 높은 표현이 있는 프롬프트 (3) 무례한 표현: 불공손성(impoliteness)을 표현한 프롬프트 생성형 AI 이용자의 프롬프트 언어 분석을 하고 있습니다. 그 중 "공손성과 불공손성"에 있어서 제가 목격한 것은 대다수가 자연스레 친절하고 공손한 어조로 프롬프트를 작성한다는 점입니다. "안녕? ~~~좀 해줄 수 있어?" "고마워~ 너 정말 대단하다" "안녕하세요 저는 이런 것들이 필요한데, ~ 해주시겠어요?"
  • S
    Sujin_Kang
4
👍
2
도꼬마리 열매와 프롬프트
Biomimicry 으로부터의 프롬프트 엔지니어링: 프롬프트 구조화 프롬프트 엔지니어로 일을 할 때 두 가지 역량이 중요하다 생각해요. 1️⃣ LLM의 가능성 탐구를 위한 독창성 2️⃣ LLM의 한계를 인지한 과학적 접근 다양한 학문 분야에서 영감을 얻을 수 있습니다. 그 중 하나는 Biomimicry 입니다. Biomimicry 는 '생체 모방' 입니다. 자연으로부터 배워 문제를 해결하는 방법이에요. 자연과 생물들이 백만 년 동안 진화하면서 발전시킨 해결책들을 연구하고, 이를 인간의 문제 해결에 적용하는 것입니다. 이 열매 아세요? 도꼬마리 열매입니다. 아마도 이 열매가 옷이나 몸에 붙어서 고생한 적이 있을 거예요. 열매 끝을 보면, 갈고리 처럼 생겼죠. 자세히 확대한 사진을 보면 갈고리 모양이 잘 보여요. 그리고 이 열매에서 영감받아 오늘의 "벨크로"가 탄생하게 됩니다. 출처: Biomimicry, An Approach Towards Future of Design and Sustainability 💡 벨크로 발명 계기 전기 공학자이자 발명다 Gorge De Mestral 은 산책 후 강아지 털에 붙은 도꼬마리를 떼어냈어요 호기심이 가득했던 그는 현미경으로 열매를 관찰했어요. 확대해 보니, 갈고리 끝에 붙는 메커니즘을 발견하고 1951년 "벨크로'를 특허 출원했습니다.
  • S
    Sujin_Kang
9
👍
1
ChatGPT와 클로드 답변 내용이 별로라면? 프롬프트 스케쥴링과 가중치 조절 (Scheduling and Weight)
한 커뮤니티에서 "생성형 AI로부터 답을 자세히 받기 위해, 프롬프트에 세세히 지정해주는 것이 오히려 답변 품질을 저하한다"는 주제로 이야기를 했었어요. ChatGPT나 클로드를 써서 작문이나 글짓기, 보고서 작성을 해 본 분들이라면 느꼈을 이 현상을 저는 "프롬프트의 역설(Prompt paradox)"이라고 해요. 프롬프트 디자인 원칙 중 하나 "가능한 구체적으로 프롬프트를 쓴다"인데, 프롬프트를 세세하게 쓸 수록 답변이 저하 된다니 매우 역설적이죠. ✅ 프롬프트의 양과 답변 품질의 관계 프롬프트 세부 사항/지시문의 양과 언어 모델의 답변 품질은 역상관 관계예요. 모델에 더 많은 제약을 가할 수록, 답변의 품질이 좋지 못해요. 간단하게 이유는 두 가지예요. (1) 프롬프트 입력 내용 만큼, 모델의 생성을 제어하게 되어 자유도가 떨어진다. (2) 상세한 프롬프트는 LLM에게 인지 부담(cognitive pressure)을 일으킨다. 사람도 한 번에 처리해야 하는 정보가 너무 많이 들어오면 무엇을 먼저 읽고, 무엇을 나중에 읽어야 하는지 부담이 가중되죠. LLM도 마찬가지예요. 프롬프트 문장을 overlap 하여 읽거나, skip 하거나, 처리해야 할 내용을 지나치게 일반화 (혹은, 뭉뚱그려) 답변 내용의 질을 떨어트려요. 💡 문제 해결을 위한 프롬프팅 기법 문제를 해결하기 위해서 다양한 방법이 있지만 그 중에서도 "프롬프트 스케쥴링"과 "프롬프트 가중치"라는 프롬프팅으로 해결 했어요. (*네이밍은 제가 붙였습니다) 글: {글} 사용한 글: ‘주먹 불끈’ 트럼프 사진 찍은 기자 “역사적 순간 직감” 에이피(AP) 통신 에번 부치 수석 사진기자가 13일(현지시각) 미국 펜실베이니아 버틀러 유세장에서 총격 직후 촬영한 사진을 보면, 트럼프 전 대통령은 경호원들에게 둘러싸인 채 귀에서 피를 흘리면서도 결연한 표정으로 지지자들에게 주먹을 치켜들었다. 트럼프 전 대통령이 단상을 내려오는 모습을 아래에서 담은 이 사진은 배경에 나부끼는 미국 성조기까지 더해져 강인한 인상을 준다. 이는 트럼프 전 대통령의 경쟁자인 조 바이든 대통령의 노쇠한 이미지와 대조된다는 평가가 나온다. 이 사진은 사회관계망서비스(SNS) 등에서 빠르게 확산하면서 공화당 지지층 결집 효과를 내고 있다. 트럼프 전 대통령의 장남인 도널드 트럼프 주니어는 이 사진을 엑스(X·옛 트위터)에 올리며 “그는 미국을 구하기 위한 싸움을 절대 중단하지 않을 것”이라고 적었다. 이 사진을 찍은 에번 부치 기자는 2003년부터 20년 넘게 에이피 통신에서 일했다. 그는 2020년 조지 플로이드 사망 이후 미국 전역으로 번진 흑인 인권 시위 현장을 취재한 사진으로 이듬해 퓰리처상을 받은 바 있다. 에이피 통신이 공개한 부치 기자의 인터뷰를 보면 그는 “총격 소리를 들은 바로 그 순간 나는 이것이 미국 역사에서 기록돼야 할 순간임을 알았다”며 “이런 일을 하는 것이 기자로서 우리 직업”이라고 말했다.
  • S
    Sujin_Kang
👍
3
ChatGPT는 왜 특정 단어를 반복할까? - 특정 단어를 피하는 프롬프팅 기법
ChatGPT를 사용하다 보면, 자주 등장하는 단어가 있습니다. Language나 Linguistics 의 주제에서는 항상 이런 단어가 나와요. "nuanced, crucial, in the realm of, adhere to, critical, paramount, tailored" nuanced 는 연구페이퍼를 쓰면서 사용해 본 적이 없는 낯선 단어예요. Google Books Ngram Viewers 을 보면 naunced 보다는 동의어 subtle이 현대 영어에서는 사용 빈도가 높은 단어죠. 때로는 미국 영어에서 잘 사용하지 않는 단어나 어색한 구문이 등장하기도 해요. 자주 단어가 반복되다보니 이제는 ChatGPT로 생성한 문장, 아닌 문장을 구분 할 수 있게 되었습니다. ✅ 단어 반복 현상, 가능한 이유들 LLM이 학습한 데이터에서 특정 단어의 빈도가 높았다 데이터를 라벨링하고, 평가했던 휴먼 작업자의 선호도가 반영 됐다 LLM의 훈련 방식과 인간의 선호도에 따른 미세 조정 과정의 영향일 수 있다 Times지의 작년 기사를 보면, OpenAI는 ChatGPT를 덜 유해하게 만들기 위해 시간 당 2달러 미만을 받는 케냐의 노동자를 고용해 수만 개의 텍스트 샘플을 검토했다고 하죠. 이 과정에서 아프리카 영어 표현이 모델에 영향을 미쳤을 가능성도 있어요. 출처: https://time.com/6247678/openai-chatgpt-kenya-workers/ 저는 의도적으로 글쓰기를 할 때 ChatGPT도 클로드도 사용하지 않고 있어요. 다만, 글의 교정 용도로 사용하는데, 이때 반복되는 단어와 어색한 문장을 피하기 위해 프롬프트로 해결을 해요. 사용 프롬프트:
  • S
    Sujin_Kang
The Illusion of Understanding | 환각을 줄이기위한 프롬프팅 방법
거짓말 하는 AI, 거짓말 하지 않게 하기 LLMs 을 이해하고 프롬프트를 잘 쓰고, 엔지니어링을 잘하려면 인지 과학의 책을 읽어야 합니다. 작년까지는, LLMs의 기본 지식과 이론을 채우느라 바빴다면 올해는, 아주 천천히 LLMs 와 인간이 사고함에 있어서 유사함을 찾으려 관련 책을 읽습니다. Daniel Kahneman의 책 <Thinking, Fast, and Slow> 을 읽고 있습니다. 이해하기는 다소 어렵지만, 이해하고 나니 비로소 프롬프트에 적용할 수 있는 것이 많았습니다. 그 중 하나가 "The Illusion of Understanding(인지 편향)" 입니다. 원문: The core of the illusion is that we believe we understand the past, which implies that the future also should be knowable, but in fact we understand the past less than we believe we do. Know is not the only word that fosters this illusion. In common usage, the words, intuition and premonition are also reserved for past thoughts that turned out to be true. (p. 201-202) 한국어 해석: 우리는 과거를 "이해"한다고 믿는다. 이는 미래도 알 수 있어야 한다는 착각을 불러일으킨다. 하지만 실제로 우리는 우리가 생각하는 것보다 과거를 덜 이해하고 있다. "앎"이라는 단어뿐 아니라, "직관"과 "예감"이라는 단어도 이런 착각을 강화한다. 이 단어들은 주로 결과적으로 맞았던 과거의 생각들을 지칭할 때 사용된다. ✅ 가능한 함의를 정리해봤습니다. 확증 편향: 과거의 사건들 중, 우리의 예측이나 믿음과 일치하는 것들만 선택적으로 기억하는 경향이 있다. 우리가 과거를 정확하게 이해하고 있다는 착각을 강화 시킨다. 후견 편향: 사건이 발생한 후에는, 그 사건이 예측 가능했다고 생각하는 경향이 있다. 이는 우리가 과거를 실제보다 더 잘 이해한다고 믿게 만든다. 불확실성에 대한 인식 부족: 이러한 착각은, 우리가 세상의 불확실성과 복잡성을 과소평가 하게 만든다. 하나하나, 읽어보면 LLMs의 사고하는 과정에서 발견하는 문제들입니다. (* 편의상 LLM이 "사고" 한다고 하겠습니다. 어느 정도 레벨의 reasoning은 하는 수준이니까요). ✅ 가장 대표적인 문제가 "환각(Hallucination)"입니다. (1) 자신이 학습한 데이터를 과신하여, 그 데이터가 현실 세계를 완벽히 반영한다고 "믿는" 경향이 있습니다. (2) 패턴 인식의 과도한 일반화를 하죠. 과거의 데이터를 바탕으로 미래를 예측할 수 있다고 생각하는 편향이 생깁니다. (3) 확신의 착각: 높은 확률로 예측한 출력을 사실로 간주하는 경향이 있어, 잘못된 정보를 확신을 가지고 제시하죠.
  • S
    Sujin_Kang
👍
1
이미지 생성 프롬프트 : 애니멀 캐릭터
이미지 생성이 "프롬프트의 꽃"이라 하는 분이 있습니다. 텍스트 생성만 오롯이 하던 저에게 그는 이렇게 말했습니다. 그의 표현을 빌리자면 "이미지 생성 프롬프트가 마케팅에서는 넘사?로 잘 팔리고 대중들이 엄청 좋아해요". 한 번은 간단한 작업을 해드렸는데, 결과물이 바로 상용화되어 서비스레벨에서 사용자들에게 즐거움을 주며 큰 성과를 얻었습니다. 생성형 ai가 end-user 에게 닿아 효용감과 만족감을 준 사례입니다. 텍스트 프롬프트로는 사용자에게 만족감을 주려면, 많은 노력과 설명과 작업이 필요한데 이미지는 시각적이고 직관적이라 가시적인 결과를 바로 얻을 수 있다는게 놀라웠습니다. 텍스트 생성과 이미지 생성은 작업 방식이 다르지만, 이미지 생성역시 프롬프팅 묘미를 느낄 수 있습니다. 재미가 붙어, 최근에 동물 캐릭터 이미지 프롬프트를 선물로 드렸는데 GoogleMarketingLive 에서 요긴하게 사용하셨다하네요. ✔ Google imagefx 사용 결과: 작업한 프롬프트가 어딘가에 사용되고 쓰인 다는 것은 즐거운 일입니다. 이미지 모델마다 사용 결과는 상이하지만, 한 번 사용해보시라고 프롬프트를 공유해요. 🦊 디즈니 캐릭터와, 3D 효과, 시네마틱 효과를 준 프롬프트인데요. *모델에 따라 negative prompt 이 필요 없을 수도 있습니다. 이미지 모델도 발전을 거듭하고 있어서, 작년만 하더라도 negative 를 꼭 넣었어야 했는데 요즘에는 안 넣어도 잘 나오더라구요. ✔ 권장모델: StableDiffusion Prompt= create animal character for profile picture. Inspired by animals and disney featured on artstation, cinematic lighting, octane render, 8k, depth of field, 3D Negative Prompt: extra digit, fewer digits, missing fingers, strange fingers, fewer fingers, blurry, missing arms, bad feet, bad legs, deformed, extra limbs. ✔ 프롬프트 사용 결과
  • S
    Sujin_Kang
👍
2