K-SMARTFACTORY

AI & Big Data

인공지능 프롬프트 엔지니어링 스킬

2023-08-01



인공지능 프롬프트 엔지니어링 스킬

 

프롬프트 엔지니어링은 매력적으로 떠오르고 있는 새로운 일이다.

전문 인공지능(AI) 프롬프트 엔지니어 구인 중에는 연봉이 33만5000달러~17만5000달러에 이르는 자리도 있다. 

그러나 유도심문식으로 질문하는 것만으로는 뛰어난 AI 프롬프트 엔지니어가 될 수 없다.

프롬프트 엔지니어로 성공하기 위해서는 AI와 프로그래밍 언어, 문제 해결 역량 외에 예술 등 전문 분야의 능력을 겸비해야 한다.

 

프롬프트 엔지니어링은 기본적으로 생성 AI 툴과의 인터액션(상호작용)을 만들어내는 일이다.

챗GPT를 보면 알 수 있듯이 AI와의 인터액션에는 대화 형식을 취하는 것도 있지만,

좀 더 프로그래밍 성향이고 현대 API 호출에 가까운 코드 안에 내장된 프롬프트 형태를 취하는 경우도 있다.

단순한 API 호출과 다른 점은 라이브러리 루틴을 호출하는 것이 아니라

라이브러리 루틴을 사용하여 대규모 언어 모델과의 대화를 진행한다는 점이 다르다.

 

프롬프트 엔지니어의 직업을 찾는 데 도움이 되는 스킬에 대해 이야기하기 전에

프롬프트 엔지니어로서 성공하기 위해 필요한 어떤 자질에 대해 먼저 알아보자.

그것은 적극적으로 배우고자 하는 의욕이다.

AI는 수십 년 전부터 사용되고 있지만 생성 AI와 관련된 기술 수요가 급격히 높아진 것은 최근 몇 년에 지나지 않는다.

이 분야는 변화의 속도가 매우 빨라 항상 새로운 브레이크 스루나 혁신제품이나 테크닉 또는 어프로치가 등장하고 있다.

 

이러한 변화에 뒤지지 않으려면 단순히 배우고자 하는 의욕만으로는 충분하지 않다.

생각나는 모든 것을 탐욕스럽게 배우고 새로운 정보를 찾고 연구하고 흡수할 필요가 있다.

빠른 속도로 계속 학습할 수 없다면 이 커리어로 성장해 나가기 어렵다.

아래에 AI 프롬프트 엔지니어가 되기 위해 가져야 할 6가지 스킬을 소개한다.

 

1. AI, 기계학습, 자연언어 처리에 대한 이해

 

첫 번째는 AI, 기계 학습, 자연언어 처리의 실제 구조에 대한 이해를 심화시켜야 한다.

대규모 언어모델과 상호작용을 하고 있다면 이 '도깨비'의 정체를 이해하고 어떤 종류의 언어모델이 존재하는지 알아,

각각의 언어모델은 무엇을 잘하고 어떤 분야가 서투른지 파악할 수 있어야 한다.

 

대규모 언어모델을 구축할 수 있는 능력까지 반드시 갖추어야 할 필요는 없지만,

자신의 커리어 중심에 두고자 하는 툴의 내용이나 기능에 대해서는 충분히 이해하고 있어야 한다.

중요한 것은 할 수 있는 수단을 모두 동원해 배워야 한다.

전통적인 코스를 수강하거나 많은 기사나 기술 논문을 읽고, 컨퍼런스에 참석하는 등, 자기 스스로 실험해 보는 일이 포함된다.

 

미국 ZDNET의 Sabrina Ortiz 기자가 쓴 기사에서 반드시 체크해야 할 리소스를 소개하고 있다. 

(https://www.zdnet.com/article/want-to-learn-more-about-prompt-engineering-this-free-course-can-help/)

 

개발 프로젝트에서 챗GPT를 이용하는 사람들을 위한 9개 파트로 구성되어있는 온라인 수업이다.

이 과정의 스폰서는 챗GPT를 만든 OpenAI와 AI 관련 온라인 교육 프로그램을 제공하고 있는 DeepLearning.ai 이며,

이들 기업의 창업자인 Andrew Ng 씨는 스탠퍼드 대학에서 강의하고 있으며 대형 온라인

학습 사이트인 Corsera의 공동 창업자이기도 하다. 필자는 이 과정을 수강하고 있는데 독자들에게도 꼭 수강할 것을 권한다.

 

2. 해결해야 할 문제를 명확하게 정의하고 질문을 구체적으로 지정

 

이 기술에서 중요한 것은 정확하게 원하는 것을 전달하는 능력이다.

프롬프트 엔지니어링이란 인공지능(AI)에게 무엇을 필요로 하는지를 전달하는 일과 다르지 않다.

그러기 위해서는 자신이 AI와 인터액션하여 무엇을 알아내고 싶은지 명확해야 한다.

예를 들어 미국 오리건 주의 주도인 세일럼에 대해 자세히 알고 싶다고 하자.

이때는 적어도 두 가지 점을 분명히 해야 한다. 

먼저 무엇을 알고 싶은지 설명할 필요가 있다. 정치구조에 대해 알고 싶은지, 도시 운영의 문제에 대해 알고 싶은지.

아니면 교통 사정이나 맛있는 도넛 가게의 위치를 알고 싶은지 명확히 해야 한다. 

 

그리고 또 하나는 AI에게 궁금해 물어보는 것이 오리건주 세일럼에 관한 것이지 코네티컷주, 버지니아주, 인디애나주,

매사추세츠주의 세일럼에서 벌어진 마녀재판에 대해서인지 그리고 노스캐롤라이나주 윈스턴 세일럼이나

영국 웨일스, 호주, 캐나다 세일럼이 아님을 알려주어야 한다.

 

또 AI에 대해서 요구하고 있는 것이나 AI가 가치 있는 정보를 제공하기 위해서 이용해야 하는 시점이나

해결하고 싶은 문제의 문맥과 범위를 전체 질문 안에서 정확하게 설명하는 스킬을 습득할 필요가 있다.

 

질문할 때에 각 언어모델의 한계와 그 한계를 피해가는 방법을 잘 이해하고 있어야 한다.

예를 들어 상세한 백서를 원하는 경우에는 처음에 전체적인 아웃라인을 생성하고 각 장을 개별적으로 쓰게 하는 것이 좋을지도 모른다.

또 짧은 프롬프트가 명확한 프롬프트라고 할 수 없다는 점에도 주의가 필요하다.

긴 프롬프트가 보다 정확하고 적절한 답변을 유도할 수 있는 경우가 있다.

결론은 단순하고 명확성을 염두에 두고 AI가 무엇을 이해하고 있는지에 대한 선입견 없이 소통하는 것이 좋다.

 

3. 항상 새로운 아이디어를 짜내어 질문 스킬 연마

 

프롬프트 엔지니어링은 프로그래밍이라기보다는 대화를 통해 원하는 결과를 도출하는 공동 작업에 가깝다.

대규모 언어모델에 자의식이 있는 것은 아니지만 언어모델과의 소통은 대부분 동료나 부하직원과의 커뮤니케이션과 비슷하다.

 

해결해야 할 문제의 설명이나 질문 내용을 결정할 때는 기존 개념이나 생각에 얽매이지 않는 편이 좋다.

왜냐하면 머릿속에 가지고 있는 이미지를 AI의 내부 표현으로 변환하는 것이 그렇게 쉽지 않기 때문이다.

자신이 원하는 결과를 얻기 위해서는, 다양한 대화 방식의 접근법과 궁리를 하여 질문할 필요가 있다.

 

대화를 통해 AI를 조종하려는 수법의 예에 대해서는(독자들이 이런 수법을 추구하지 않았으면 좋겠지만)

필자의 How Itricked Chat GPT into telling me lies(나는 어떻게 챗 GPT에게 거짓말을 하도록 유도했는가)라는

기사를 읽으면 이해할 수 있을 것이다. (https://www.zdnet.com/article/how-i-tricked-chatgpt-into-telling-me-lies/)

 

이 기사에서 진행한 실험의 목적은 AI에게 내키지 않는 일을 시키는 것이었다.

원하는 결과를 얻을 수 있는 대화 기법을 찾기 위해 다양한 아이디어를 짜내어 시도해 본 것이다.

 

프롬프트 엔지니어가 되고 싶다면 팀과 논의나 교섭할 때마다, 영업활동의 경험이 도움이 될 것이다.

이 직종의 사람들은 대화나 설득이나 협업 능력이 단련되어 있는데, 이러한 능력은 생성 AI로부터 원하는 결과를 얻기 위해 필수 불가결한 능력이다.

 

4. 문체와 예술의 작풍에 대해 학습하며 전문영역의 지식을 넓힌다.

 

챗봇은 대부분의 경우 단순히 유져 대신 답변을 써줄 뿐 아니라 사용자가 지정한 문체로 답변을 써줄 수 있다.

필자가 쓴 I used Chat GPT to rewrite my text in the style of Shakespeare, C3PO, and Harry Potte

(챗 GPT를 이용해 자신의 글을 셰익스피어 풍, C3PO 풍, 해리 포터 식 문체로 고쳐 썼다)라는 기사에서는,

 

18세기 영국 작가인 제인 오스틴과 아주 오래전 영화에 나오는 해적의 어조 등 온갖 문체로

글을 다시 써 대답하도록 요구해 누구보다 필자 자신이 즐기면서 읽었다. AI가 해적풍 문체로 쓴 미합중국 헌법 전문 등은 꼭 읽어보길 바란다.

(https://www.zdnet.com/article/i-used-chatgpt-to-rewrite-my-text-in-the-style-of-shakespeare-c3po-and-harry-potter/)

 

 

그 기사에서 든 예는 순전히 재미와 실험을 위해 질문해 본 것이지만 필자는 실험적으로 Etsy에서

스토어를 올릴 때에도 “~스타일의 문체로(in the style of)”라는 서론을 사용해 글을 작성했다.

미사여구로 가득 찬 Apple 제품설명으로 유명한 Jony Ive씨 스타일의 문체를 사용하여 챗GPT에게 상품의 카피를 써 달라고 질문도 해보았다.

 

「Midjourney」를 비롯한 화상 생성 인공지능에서도, 작풍을 지정할 수 있다.

영화 스타일이나 1940년대 카툰 스타일 등 다양한 사진 작가나 아트의 작풍을 지정해 이미지나 사진을 생성시킬 수 있다.

 

예를 들어 필자가 페이스북 아이콘으로 사용하고 있는 사진을 Midjourney에

입력하고 프롬프트로 '큐비즘'을 지정해 작성하게 한 것이 다음과 같은 이미지이다.

(https://www.zdnet.com/article/six-skills-you-need-to-become-an-ai-prompt-engineer/)

 

문체나 예술의 작풍을 이해할 뿐만 아니라 프롬프트를 작성하려는 분야의 전문지식을

습득하는(혹은 그 분야의 전문지식에 액서스할 수 있도록 하는) 것도 중요하다.

예를 들어 자동 의료진단용 AI 애플리케이션을 취급한다면 필요한 답변을 끌어낼 수 있는

지식이나 그 답변이 맞는지 이해하고 판단할 수 있을 만큼의 지식은 알고 있어야 한다.

 

그리고 또 하나 마음에 드는 생성 AI 툴에서 사용할 수 있는 확장 기능이나

플러그인에 대해 알아두는 것도 스킬의 일부라고 생각해두면 좋다.

이러한 확장 기능이나 플러그인은 시간이 지나면 내용이 충실해져, 처음 질문 상태의 AI 툴로는

대답할 수 없는 것을 가능하게 해 준다. 

 

따라서 애드온에 대해 배워 활용하면 스킬을 최신 상태로 유지할 뿐만 아니라 다른 수단으로는 할 수 없는 일을 할 수 있게 된다.

 

5. 스크립트 및 프로그래밍 기술 익히기

 

챗봇과의 대화만 다루는 프롬프트 엔지니어의 일도 있겠지만, 보다 보수가 많고 높은 능력을 요구하는

일에는 특수 어플리케이션이나 소프트웨어 AI 프롬프트를 프로그래밍하는 작업이 따를 수 있다.

 

어플리케이션 자체를 코딩할 필요는 없지만, 만약 코딩할 수 있어 자신이 만들고 있는 어플리케이션의 컨텍스트로 프롬프트를

테스트하고 디버깅할 수 있어 프로그래밍 과정에 관여할 수 있다면 제공할 수 있는 가치는 훨씬 더 커진다.

프로세스의 하나로 프롬프트 엔지니어링이 발생하는 경우, 그 작업을 프로그래밍과는 다른 작업으로 분류하여 실시하면, 테스트하는 것보다 훨씬 진행하기 쉬워진다.

 

그리고 코딩 스킬에는 그 자체로 큰 의미와 가치가 있다. 누구나 어느 정도 기본적인 코딩을 할 수 있어야 한다.

 

6. 인내와 유머 감각을 키우기

 

필자는 유머 감각이 있으면 인내심도 강해진다고 굳게 믿고 있다. 일을 추진하면서 화가 나거나 짜증나는 일이 있어도,

그 귀찮고 번거로운 일의 저변에서 재밋거리를 찾을 수 있다면, 정신적 피해나 스트레스는 작아진다.

생성 AI를 다루려면 정말로 인내심이 필요하다. 생성 AI가 질문하는 이쪽의 요청을 잘못 해석한다든지,

궁금증의 돌파구가 열릴 것 같을 때 대화의 핵심에서 벗어나 버리는 경우도 종종 발생한다.

심지어 완전히 터무니없는 대답을 지어내기도 한다.

 

그 속에서 어떤 의미와 재미있다고 느끼는 것을 찾지 못하면 괴로울 따름이다.

 

이 말은 프로그래밍에도 적합한 것으로 프로그래머에게 인내가 필요하다. 

필자의 학생 중에는 프로그래밍에서 코드를 처음 실행했을 때 정상적으로 작동하지 않는 경우 그 상황을 받아들이지 못하는 학생도 있다. 

처음에 경험한 심적 부담을 극복하지 못해 작업을 계속할 수 없었던 학생은 그 수업을 수료하지 못했다.

반대로 코딩하는 재능은 부족해도 시도하고 실패하면 더 알아보고 다시 시도하는 인내심을 가지고 도전했던 학생들은 매우 성적이 좋았다.

다음과 같이 생각하면 좋을 것이다.

 

AI 프롬프트 엔지니어링은 믿기 어려울 정도로 융통성 없는 컴퓨터나 사물을 괴상한 방법으로 해석하는 제멋대로의 학습 모델이나,

기계보다도 융통성이 없는 상식 밖의 전혀 예측 불가능한 성질의 것들을 동시에 대처하는 업무이다. 인내심은 단순한 미덕이 아니라 바로 슈퍼파워다.

 

AI에 대해 배우라는 어드바이스를 따른다고 프롬프트 엔지니어가 될 수 있는 것은 아니다.

대략적인 가이드라인이 될 뿐 프롬프트 엔지니어를 지향하는 이들이 개척해야 할 길은 사람마다 다르다.

 

한 가지 더 중요한 어드바이스를 하자면 어쨌든 뭔가 만지작거려 보는 것이다.

자신이 관심을 가질 수 있는 프로젝트를 골라 무언가를 만들어 보면 좋다.

관심을 가지고 있는 이들과 팀을 이뤄 무엇을 만들어낼 수 있을지 도전해 보는 것도 좋을 것이다.

스스로 손을 움직여 본 경험이 인터넷상에서 누군가가 했던 일과 목록을 따라하는 것 보다 훨씬 더 자신의 피와 살이 된다.

 

실제로 프롬프트 엔지니어링을 해보고 작은 어플리케이션을 만들어 보고 필자가 추천한 수업을 듣고 무언가를 만들어야 보라.

그러면 프롬프트 엔지니어가 되고 싶은 누군가가 아니라 프롬프트 엔지니어링 경험자가 될 수 있고 원하는 것을 손에 넣을 수 있다.

 

손을 움직이면 자신이 원하는 것을 얻을 수 있다.

 

참조 | https://www.zdnet.com/article/six-skills-you-need-to-become-an-ai-prompt-engineer/