Share
Sign In
프롬프트 작성팁
LLM에게 친절해야 할까?
S
Sujin_Kang
4
👍
2
공손한 언어와 프롬프트의 효과
프롬프트를 써오면서 AI에게 예의를 갖추는 것이 혹은 예의바른 문장을 사용하는 것이 가치가 있는 일이라고 말하고 싶습니다. 두 가지 이유인데요,
1️⃣ 공손한 표현 사용은 AI로 부터 더 좋은 결과물을 얻는다.
2️⃣ 공손한 표현은 AI 사용의 윤리적 담화를 형성한다.
"AI는 감정이 없는데, 예의를 차리는 것이 효과가 있을까?" 라고 생각하는 분들도 있을거예요.
하지만 인간은 다른 사람과 감정적으로 연결하려하고, 예의를 갖추려 하기 때문에 생성형 AI를 사용하면서도 예의 바른 표현과 공손한 매너가 기본인 분들도 많죠. (세상에 100%는 없기 때문에, 다수라 저는 믿습니다)
이 글에서는, 공손한 표현의 프롬프팅 효과에 대해 다뤄보겠습니다.
프롬프트를 작성할 때 다음 세 가지 중 한 가지 표현을 사용할 거예요.
🧷
(1) 중립적인 어조: 특별히 예의바르지도, 무례하지도 않은 "AI가 해야 할 일"을 명령하는 중립적인 프롬프트
(2)
예의바른 표현: 공손성이 높은 표현이 있는 프롬프트
(3)
무례한 표현: 불공손성(impoliteness)을 표현한 프롬프트
생성형 AI 이용자의 프롬프트 언어 분석을 하고 있습니다. 그 중 "공손성과 불공손성"에 있어서 제가 목격한 것은
대다수가 자연스레 친절하고 공손한 어조로 프롬프트를 작성한다는 점입니다.
"안녕? ~~~좀 해줄 수 있어?"
"고마워~ 너 정말 대단하다"
"안녕하세요 저는 이런 것들이 필요한데, ~ 해주시겠어요?"
그리고, 일부 사람들은 무례한 표현으로 프롬프트를 작성했습니다.
"이 것밖에 못해?"
"너 진짜 멍청하다. 나를 화나게 만들지마" 등등이요.
예의를 "공손성", 무례를 "불공손성"이라 하겠습니다. 공손성을 표현하는 방식 불공손성을 표현하는 방식은 다양하고 범위가 넓습니다. 그리고 대화 분석학의 선행 연구는 "불공손성"이 훨씬 전략적이고 다양한 레이어가 있다고 밝혔습니다.
Q. LLM이 공손한 언어와 불공손한 언어에 다르게 반응할까? 에 대한 합리적 이유
1️⃣ 인간의 다양한 글쓰기와 단어 사용 방식 학습
AI가 인간의 글쓰기 방식에 대해서 이렇게 인식합니다. 시, 소설, 산문, 연구 논문 등 인간이 작성한 글쓰기를 검토하기 위해 많은 데이터를 스캔했죠. 그 안에서, 인간이 사용하는 단어의 패턴을 찾고, A라는 단어가 B라는 단어와 어떻게 사용됐는지를 방향을 학습했습니다.
2️⃣ 인간의 "공손성 표현" 방식 학습
많은 학습 데이터에는 "인간의 공손성"에한 표현이 있습니다. 항상은 아니지만요.
그렇지만, 인간이 "공손할 때"라는 패턴은 충분히 파악할만한 자료겠죠. 예를 들어 "잘 부탁드립니다." "고맙습니다" "굉장히 감사합니다" 등의 표현을, 언제 어떤 상황에서 쓰였는지 학습했을 거예요.
3️⃣ "공손언어" → 패턴 추출
프롬프트를 작성할 때, 공손한 표현을 사용하면 생성형 AI는 자연스레 "공손성"을 인식하고 해당 패턴을 활용하는 방식으로 응답을 할 거예요. 그래서, 사용자가 사용한 단어에 맞는 언어로 대답을 하는 거죠.
그렇다고 해서, 불공손한 언어를 썼다고 AI가 무례하게 답하지는 않아요. ChatGPT가 RLHF (인간 피드백을 통한 강화학습)이라는 기술을 사용했기 때문입니다. GPT가 공개되기 전에, 많은 사람을 고용해 일일히 다양한 종류의 프롬프트와 프롬프트가 생성한 응답을 확인했어요. 응답을 평가하며, 특정 단어는 허용하고 특정 단어는 허용하지 않도록 채점했습니다. 그래서, 유해한 응답을 하지 않도록 했기 때문에, 불공손한 언어를 프롬프트에 썼다고 무례하게 대답하진 않는 거예요. (물론, 이 또한 세상의 유해한 단어와 내용을 완벽하게 필터링 하진 못했겠지만요)
→ 여기서, 프롬프트 엔지니어의 역할과 프롬프트 엔지니어링의 중요성을 언급할 필요가 있습니다.
잘 설계한 프롬프트가 생성형 AI와 LLM에서 더 좋은 결과를 얻을 수 있다는 점은 잘 알려져있죠. 그런데, 유해한 내용을 제거하고 건전한 프롬프트를 고안하는 미묘한 기술과 과학도 프롬프트 엔지니어의 중요한 일입니다.
(이 주제는 AI윤리와 AI법률 관련한 다른 글에서 풀겠습니다!)
Q. 공손한 표현 얼마나 효과가 있을까?
제 경험과 직관은 공손한 표현을 사용하면, 조금 더 길고 자세한 답변을 받았습니다. 그리고 이를 뒷받침한 연구가 있습니다. 2024년 2월 22일에 발표된 "Should We Respect LLMs?" 라는 연구 입니다.
프롬프트에있어서 "공손함의 레벨"이 LLM의 성능에 영향을 미친다는 결과입니다.
연구 결과
🧷
- 인간 의사소통에서 예의 바른 언어는 종종 더 많은 LLM 순응과 효과를 얻는 반면, 무례함은 혐오감을 일으켜 응답 품질에 영향을 줄 수 있음
-LLM이 인간의 의사소통 특성을 반영한다고 생각하며, 이는 LLM이 인간의 문화적 규범과 일치한다는 것을 시사
영어 뿐 아니라 중국어, 일본어 작업에서도 공손한 표현이 영향을 미침을 확인
-무례한 프롬프트가 종종 낮은 성능을 초래하지만, 지나치게 예의 바른 언어가 반드시 더 나은 결과를 보장하지는 않는다는 것을 관찰
-공손함의 레벨은 언어에 따라 다름. 이 현상은 LLM이 인간의 행동을 반영할 뿐만 아니라 특히 서로 다른 -문화적 맥락에서 언어의 영향을 받는다는 것을 시사함.
그래프 설명: 영어, 중국어, 일본어 데이터셋에 대해 여러 모델의 요약 성능. 다양한 공손성 레벨에 따른 모델의 성능을 BERTScore (문장 간 의미유사성), ROUGE-L(요약된 텍스트와 텍스트 간 겹치는 부분 측정), Length (요약 텍스트 길이)
그래프 결과:
모든 모델은 공손함 관계없이 일관된 요약 길이 유지
BERTScore 와 ROUGE-L은 데이터셋과 모델에 따라 다름, 특정 공손함 수준에서 성능 차이 발생
연구에서 사용한 공손한 영어 표현
연구에서 발견한 🍪
Cookie라는 표현은, 무언가의 이득입니다! 이 그래프는 다양한 언어 모델(GPT-3.5, GPT-4, Llama2-70B, ChatGLM3, Swallow-70B)의 성능을 MMLU, C-Eval, JMLLU 세 가지 벤치마크에서 T-테스트로 비교한 결과입니다. Advaned 모델에서 프롬프트의 공손함 수준이 모델 성능에 미치는 영향이 적을 수 있음을 보여줍니다. 실제로 그런지, 다양한 conversation context 에서 연구를 해보면 유의미한 결과가 있을 것 같습니다.
Q. LLM에게 얼마나 공손해야 할까?
그렇다면, 얼마나 공손해야 할까? 라는 생각이 들죠. AI에게 공손성을 표현할 때 지나칠 필요는 없습니다. 적당한 예의만 차리면 된다고 합니다.
골디락스 규칙이 있습니다.
같은 종류로 단계가 다른 3개 이상의 선택지가 있을 경우, 많은 사람들은 평균적인 것을 선택한다는 규칙입니다.
로버트 사우디가 쓴 영국의 유명한 동화 <골디락스와 세 마리 곰>에서 유래한 규칙입니다. “골디락스”라는 이름의 여자아이가 세 마리의 곰이 사는 집으로 들어갑니다. 집에는 아무도 없었어요. 식탁에는 뜨거운 죽, 미지근한 죽, 중간 온도의 죽이 있었는데, 골드락스는 중간 온도의 죽을 먹어요. 의자도, 너무 크거나 너무 작은, 그리고 적당한 의자가 있었는데 적당한 의자를 골랐어요. 침대도 세 종류가 있어요. 너무 부드러운 침대, 중간 정도의 딱딱한 침대, 너무 딱딱한 침대. 침대도 역시 중간 정도를 골랐습니다.
이 이야기의 시사점은, 사람은 선택을 할 때 "적절한 가운데"를 선택한다는 경향성이에요.
불공손한 프롬프트가 종종 낮은 성능을 초래하지만, 지나치게 예의 바른 언어가 반드시 더 나은 결과를 보장하지는 않는다는 것을 말씀 드리고 싶습니다.
<Reference>
Subscribe to 'sujin-prompt-engineer'
안녕하세요,
슬래시페이지 구독을 하시면, 이따금씩 발행하는 프롬프트와 프롬프트 엔지니어링에 관한 글을 이메일로 받아보실 수 있어요. 구독하시겠어요? 😊
Subscribe
4
👍
2
    S
    Samuel Yang
    좋은 팁 나누어 주셔서 감사합니다. claude로 프롬프트 초안을 생성하다보면 요청하는 맥락에서 please를 꼭 붙이더라구요. 앞으로는 저도 최소한 please 정도는 사용해봐야 겠네요. 예전 통념에 please 붙일 필요 없다는 것이 있어서 주로 명령문으로 작성을 많이 했었거든요.
    😀
    1
    S
    Sujin_Kang
    저도 그런 통념을 본 기억이 나요! Thank you, Please 붙일 필요가 없다. 그러나, 항상 그런 것은 없으니까요! 저는 please 보다는. Thank you 를 많이 쓰는 것 같아요. 한 번 해보시고, 직관과 경험을 또 나누어 주세요.
    👍
    1
    S
    Samuel Yang
    음, should, must, have to와 같은 표현에 대해서도 사실 평소부터 궁금했었는데요, 순전히 개인적인 느낌 상으로 이런 표현을 사용하면 llm이 할 일을 빼먹지 않고 하기는 하지만, 뭔가 응답내용의 풍성함에 제한이 걸리거나, 딱 필요한 말만 내뱉는 느낌이 들었거든요. 프롬프트에 이렇게 의무나 강제성을 띄는 표현을 사용했을 때 llm의 반응에 대해서도 어떤 연구결과나 경험칙이 있는지 궁금해서 질문을 남깁니다.
    S
    Sujin_Kang
    Should/ must/ ought to 저도 이런 표현을 쓰면서 control 을 주는데
    이 것에 대한 의견도 많더라고요, 한 번 정리하여 글을 써보겠습니다 ^^ 강제성이 필요한 것은 아무래도 규칙을 줄 때이지 싶어요. 한 연구는 규칙의 정도를 strong- weak 으로 나누어서, 조절하더라구요 SHOULD 의 형태로!
    👍
    1
Sujin_Kang
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️⃣ 기본 프롬프트 테스트
👍
5
Sujin_Kang
도꼬마리 열매와 프롬프트
Biomimicry 으로부터의 프롬프트 엔지니어링: 프롬프트 구조화 프롬프트 엔지니어로 일을 할 때 두 가지 역량이 중요하다 생각해요. 1️⃣ LLM의 가능성 탐구를 위한 독창성 2️⃣ LLM의 한계를 인지한 과학적 접근 다양한 학문 분야에서 영감을 얻을 수 있습니다. 그 중 하나는 Biomimicry 입니다. Biomimicry 는 '생체 모방' 입니다. 자연으로부터 배워 문제를 해결하는 방법이에요. 자연과 생물들이 백만 년 동안 진화하면서 발전시킨 해결책들을 연구하고, 이를 인간의 문제 해결에 적용하는 것입니다. 이 열매 아세요? 도꼬마리 열매입니다. 아마도 이 열매가 옷이나 몸에 붙어서 고생한 적이 있을 거예요. 열매 끝을 보면, 갈고리 처럼 생겼죠. 자세히 확대한 사진을 보면 갈고리 모양이 잘 보여요. 그리고 이 열매에서 영감받아 오늘의 "벨크로"가 탄생하게 됩니다. 출처: Biomimicry, An Approach Towards Future of Design and Sustainability 💡 벨크로 발명 계기 전기 공학자이자 발명다 Gorge De Mestral 은 산책 후 강아지 털에 붙은 도꼬마리를 떼어냈어요 호기심이 가득했던 그는 현미경으로 열매를 관찰했어요. 확대해 보니, 갈고리 끝에 붙는 메커니즘을 발견하고 1951년 "벨크로'를 특허 출원했습니다.
👍
1
Sujin_Kang
ChatGPT와 클로드 답변 내용이 별로라면? 프롬프트 스케쥴링과 가중치 조절 (Scheduling and Weight)
한 커뮤니티에서 "생성형 AI로부터 답을 자세히 받기 위해, 프롬프트에 세세히 지정해주는 것이 오히려 답변 품질을 저하한다"는 주제로 이야기를 했었어요. ChatGPT나 클로드를 써서 작문이나 글짓기, 보고서 작성을 해 본 분들이라면 느꼈을 이 현상을 저는 "프롬프트의 역설(Prompt paradox)"이라고 해요. 프롬프트 디자인 원칙 중 하나 "가능한 구체적으로 프롬프트를 쓴다"인데, 프롬프트를 세세하게 쓸 수록 답변이 저하 된다니 매우 역설적이죠. ✅ 프롬프트의 양과 답변 품질의 관계 프롬프트 세부 사항/지시문의 양과 언어 모델의 답변 품질은 역상관 관계예요. 모델에 더 많은 제약을 가할 수록, 답변의 품질이 좋지 못해요. 간단하게 이유는 두 가지예요. (1) 프롬프트 입력 내용 만큼, 모델의 생성을 제어하게 되어 자유도가 떨어진다. (2) 상세한 프롬프트는 LLM에게 인지 부담(cognitive pressure)을 일으킨다. 사람도 한 번에 처리해야 하는 정보가 너무 많이 들어오면 무엇을 먼저 읽고, 무엇을 나중에 읽어야 하는지 부담이 가중되죠. LLM도 마찬가지예요. 프롬프트 문장을 overlap 하여 읽거나, skip 하거나, 처리해야 할 내용을 지나치게 일반화 (혹은, 뭉뚱그려) 답변 내용의 질을 떨어트려요. 💡 문제 해결을 위한 프롬프팅 기법 문제를 해결하기 위해서 다양한 방법이 있지만 그 중에서도 "프롬프트 스케쥴링"과 "프롬프트 가중치"라는 프롬프팅으로 해결 했어요. (*네이밍은 제가 붙였습니다) 글: {글} 사용한 글: ‘주먹 불끈’ 트럼프 사진 찍은 기자 “역사적 순간 직감” 에이피(AP) 통신 에번 부치 수석 사진기자가 13일(현지시각) 미국 펜실베이니아 버틀러 유세장에서 총격 직후 촬영한 사진을 보면, 트럼프 전 대통령은 경호원들에게 둘러싸인 채 귀에서 피를 흘리면서도 결연한 표정으로 지지자들에게 주먹을 치켜들었다. 트럼프 전 대통령이 단상을 내려오는 모습을 아래에서 담은 이 사진은 배경에 나부끼는 미국 성조기까지 더해져 강인한 인상을 준다. 이는 트럼프 전 대통령의 경쟁자인 조 바이든 대통령의 노쇠한 이미지와 대조된다는 평가가 나온다. 이 사진은 사회관계망서비스(SNS) 등에서 빠르게 확산하면서 공화당 지지층 결집 효과를 내고 있다. 트럼프 전 대통령의 장남인 도널드 트럼프 주니어는 이 사진을 엑스(X·옛 트위터)에 올리며 “그는 미국을 구하기 위한 싸움을 절대 중단하지 않을 것”이라고 적었다. 이 사진을 찍은 에번 부치 기자는 2003년부터 20년 넘게 에이피 통신에서 일했다. 그는 2020년 조지 플로이드 사망 이후 미국 전역으로 번진 흑인 인권 시위 현장을 취재한 사진으로 이듬해 퓰리처상을 받은 바 있다. 에이피 통신이 공개한 부치 기자의 인터뷰를 보면 그는 “총격 소리를 들은 바로 그 순간 나는 이것이 미국 역사에서 기록돼야 할 순간임을 알았다”며 “이런 일을 하는 것이 기자로서 우리 직업”이라고 말했다.
👍
1