Share
Sign In
프롬프트 엔지니어 이야기
Revisiting the Concept of Prompt Engineering and Prompting
S
Sujin_Kang
👍
프롬프트 엔지니어에 대한 고찰
프롬프트 엔지니어링이 단순 프롬프트를 잘 쓰는 것이 아닌, 전문적인 역량과 스킬이 필요한 이유가 잘 설명된 글입니다. 이 글에 대한 네 가지 reflection 을 해봤습니다.

1️⃣
프롬프트와 프롬프트 엔지니어링에 대한 정의
시중에 많은 정의가 있지만 여전히 혼재되어 있어 재고(Revisiting)가 필요하다고 생각합니다.LLM의 아키텍처 개념을 사용하여 설명하면 어느 의미에서 프롬프트와, 프롬프트 엔지니어링인지 정확해지는 것 같습니다.

2️⃣
프롬프트 엔지니어는?
생성형 AI 기업의 프롬프트 엔지니어는 LLM의 최종 출력층에서 "프롬프트 최적화를 하는 사람" 입니다. LLM <-> End user 사이에 위치하여 모델의 출력을 조정하고, 고도화하는 작업을 합니다. 프롬프트 엔지니어의 포지션은 최종 출력층이지만, 그 이전 층의 트랜스포머 아키텍처, 구송 요소들의 작동 원리를 알아야 프롬프트 최적화를 할 수 있습니다.
💡
때문에, 단순히 ChatGPT의 답변을 잘 받았다고 혹은 문장을 잘 썼다고 프롬프트 엔지니어라 할 수 없을 것 같습니다.

3️⃣
Q(Query), K(Key), V (Value)가중치 행렬 활용 = 단어의 빈도수
제가 프롬프팅을 할 때 Q, K, V 값을 활용할 수 있도록 google ngram을 사용합니다. ngram 에 A단어/B단어의 빈도수를 비교하여, 가장 많이 쓰이는 단어를 프롬프트로 작성합니다. 예를들어, generate 보다는 develop 이 현대 영어(1980-현재)에서 더 빈도수가 큰 단어입니다. develop을 썼을 때, 원하는 결과를 쉽게 얻을 수 있었어요.
💡
LLM이 학습한 데이터 내 단어의 빈도수가 많을 수록, 언어의 semantic, syntax 의 관계가 더 커져, 원하는 결과물을 이끌어 낼 수 있었기 때문입니다. Attention 가중치가 올라갔다고 판단할 수 있을까요?

4️⃣
Q, K, V 가 무효할 때 = 언어의 Pragmatics 가 커질 때
Tokenizer 를 통해, 단어를 쪼개고 의미를 나누고, 문법의 패턴을 익힌다 하더라도
Pragmatics은 LLM이 하지 못하는 영역입니다. 그래서 엉뚱한 소리를 하거나, 이상한 답변을 해요. 특히 한국어는 더 그렇습니다. 한국어는 "고맥락"의 언어입니다. 문장이 발화된 상황에 의존하여, 발화 된 뜻을 상황속에서만 파악할 수 있습니다. 예를들어, 한국어에서 "괜찮아"가 맥락 의존적인 표현인데요.

"커피마실래?"
"괜찮아"

마시겠다는 건지, 안 마시겠다는 건지는 발화의 의도를 발화 상황에서 파악해야 합니다.
💡
따라서, 이런 task 를 수행하는 기능 구현을 위한 프롬프트를 제작할 때는 "엔지니어링"을 해야 합니다. shot 으로 LLM에게 정보를 주거나, turn을 활용하여 role-play demonstration 을 하기도 해요.
결론: 요즘 한국어를 분석하면, 화용이 더 강해집니다.
언어의 형태나 의미보다는 기능이 더 중요해지는 거죠.
meme이나, 주어를 생략하고 말하거나, 줄임말을 쓰는 것이 증거예요. 한국어의 화용을 LLM이 잘 이해할 수 있도록하는 프롬프트 엔지니어링이 필요할 것 같습니다.
Subscribe to 'sujin-prompt-engineer'
안녕하세요,
슬래시페이지 구독을 하시면, 이따금씩 발행하는 프롬프트와 프롬프트 엔지니어링에 관한 글을 이메일로 받아보실 수 있어요. 구독하시겠어요? 😊
Subscribe
👍
Sujin_Kang
Openai o1 과 프롬프트
Openai o1 과 프롬프트 Openai o1 은, AI Mathematics Evaluation(AIME) 수학적 문제 해결 능력 평가나, GPQA(General Purpose Question Answering) 다양한 종류의 질문에 대해서 얼마나 잘 대답하는지의 평가 지표에서 결과가 특히 뛰어납니다. 하지만, 결과가 뛰어나다고 해서, 반드시 end user 가 체감할 수 있는 무언가로 이어지진 않습니다. 반드시, 모델의 실용적인 접목 측면에서도 바로 적용가능한 것으로 이어지진 않습니다. 프롬프트를 꾸준히 들여다보고 써오고 있지만 LLM이 빠르게 발전할 때마다, 더욱 어려움을 느낍니다. 프롬프트 엔지니어의 일이란, 각 모델이 어떤 프롬프롬트의 응답을 잘 수행하고, 잘 못하는지를 판단하는 일입니다. GPT-4o는 실패했지만, o1에서만 잘 작동하는 프롬프트를 발견하는 것은 쉽지 않은 일입니다. GPT 3.5-turbo와 GPT-4의 사용에서 확연한 유의미한 차이를 느끼는 것처럼요. o1 이 현실 적용 가능한 과제를 해결하게 하기 위해서는, 더 어렵고 더 마법같은 프롬프트를 찾아야합니다. 또 다른 o1의 능력은 추론(Reasoning)입니다. AI 모델이 인간의 언어를 사용하여 사고 과정을 "나열"하는 것을 보고 있자니 놀랍습니다. 복잡한 문제를 몇 단계로 나누어서, 실수가 있으면 실수를 인식하고 수정하고, 다양한 접근 방식을 시도합니다. 사람의 사고 과정과 유사한데요. 그렇다면, 프롬프트 역시 역으로 인지과정을 거꾸로 밟아가며 세밀하고 정교하게 제작해야 할 필요가 있을 것 같습니다. 현재의 프롬프트 "과업"은 또 다른 "과업"이 되겠습니다. Evals https://openai.com/index/openai-o1-mini-advancing-cost-efficient-reasoning/ #Oepnaio1 #prompt #promptengineering
Sujin_Kang
프롬프트 엔지니어링의 종말과 o1의 역학
프롬프트 엔지니어링의 종말과 o1의 역학 프롬프트 엔지니어링 분야에 종사한다면 "프롬프트 엔지니어는 사라질 직업이다." "프롬프트 엔지니어링은 LLM이 대신 해줄거라 필요 없어질거다" 라는 말을 종종 듣죠. 지난 몇 년 동안 LLM의 성능을 극대화하기 위해 프롬프트를 미세 조정하고, 생성형 AI 서비스를 만들기 위해 프롬프트의 중요성이 강조되었습니다. 프롬프트 엔지니어링은 여러 언어 모델의 복잡성을 유용향 형태로 쉽게 다룰 수 있게 해주니까요. 하지만 o1 이 프롬프트 엔지니어링의 역학을 바꿨습니다. o1 만큼은 정교한 프롬프트 설계가 필요하지 않습니다. OpenAI의 o1 프롬프트 가이드를 보면 다음과 같습니다. ☑ 팁 1. 프롬프트를 간결하고 명확하게 사용할 것 ☑ 팁 2. 언어모델에게 자체적인 판단을 내릴 수 있는 여유를 줄 것 ☑ 팁 3. Chain-of-thought prompts 를 피할 것, think step-by-step 이나 explain your reasoning 불필요. 정교한 프롬프트가 오히려 모델의 추론 성능을 저해한다니, 기존의 프롬프트 엔지니어링을 보기 좋게 뒤집었습니다. GPT-4 같은 모델은 섬세하게 작업할 수록 결과물을 고도화 할 수 있었는데요. o1 은 테스트해보니, 밀도높은 프롬프트를 거부하는 반응을 보입니다. 그렇다고 해서, '프롬프트 엔지니어'는 사라질, '프롬프트 엔지니어링은 필요없는' 을 의미하는 것은 아닙니다. 단지 역할이 바뀐 것 뿐입니다. o1 시대 (편의상) 에는 프롬프트 엔지니어들인 고밀도의, 광범위한 세부사항에 중점을 둔 프롬프트를 제작하는 대신, 여러 산업의 문제를 "우아하게", "구조화"하여 푸는데 집중할 것 같습니다. o1의 메커니즘에도 여전히 중요한 것은 "우아한 프롬프트"와 "프롬프트 구조화" 입니다. 프롬프트 엔지니어링 수업에서 여러 방법들을 소개했는데요. 앞으로 o1 모델을 활용하는 더 우아한, 더 구조화를 위한 delimeters 소개가 이어질 것 같습니다. 그래서, AI가 추론 능력을 발휘 할 수 있는 공간과 최적화된 프롬프트의 환경을 디자인해야 하지 않을까 해요. AI에게 공간을 깔끔하게 내어주기 위해서요. 우아한 백조도 수면 아래서는 부단히 헤엄칩니다. 오늘의 o1 의 메커니즘은 숱한 정교한 프롬프트 엔지니어링의 시도로 이루어 낸 결과입니다. OpenAI의 o1은 가까운 미래, 아니 내일의 한 glimpse 입니다. 이 모델과 공존하기 위해서라도, 실용적이고 신뢰할 수 있는 AI의 결과물을 얻기위해 바지런히 프롬프트 엔지니어의 역할을 다해야 할 것 같습니다. #promptengineering #prompt #o1model #llm #adviceonprompting