본문 바로가기

松泉, 인생글, 바라보기

바라보기, 언어, Prompt engineering, 프롬프트 엔지니어링

반응형

바라보기, 언어, Prompt engineering, 프롬프트 엔지니어링

 

Prompt engineering is a concept in artificial intelligence, particularly natural language processing (NLP). In prompt engineering, the description of the task is embedded in the input, e.g., as a question instead of it being implicitly given. Prompt engineering typically works by converting one or more tasks to a prompt-based dataset and training a language model with what has been called "prompt-based learning" or just "prompt learning".[1][2] Prompt engineering may work from a large "frozen" pretrained language model and where only the representation of the prompt is learned (i.e., optimized), using methods such as "prefix-tuning" or "prompt tuning".[3][4]

The GPT-2 and GPT-3 language models[5] were important steps in prompt engineering. In 2021, multitask prompt engineering using multiple NLP datasets showed good performance on new tasks.[6] Prompts that include a chain of thought in few-shot learning examples show better indication of reasoning in language models.[7] In zero-shot learning prepending text to the prompt that encourages a chain of thought (e.g. "Let's think step by step") may improve the performance of a language model in multi-step reasoning problems.[8] The broad accessibility of these tools were driven by the publication of several open-source notebooks and community-led projects for image synthesis.[9]

A description for handling prompts reported that over 2,000 public prompts for around 170 datasets were available in February 2022.[10]

In 2022, machine learning models like DALL-E 2, Stable Diffusion, and Midjourney were released to the public. These models take text prompts as input and use them to generate images, which introduced a new category of prompt engineering related to text-to-image prompting.[11

 

프롬프트 엔지니어링은 인공 지능 , 특히 자연어 처리 (NLP) 의 개념입니다 . 프롬프트 엔지니어링에서 작업 설명은 암시적으로 제공되는 대신 질문과 같이 입력에 포함됩니다. 프롬프트 엔지니어링은 일반적으로 하나 이상의 작업을 프롬프트 기반 데이터 세트로 변환하고 "즉시 기반 학습" 또는 "즉시 학습"이라고 하는 것으로 언어 모델을 교육하는 방식으로 작동합니다. [1] [2] 프롬프트 엔지니어링은 "접두사 튜닝" 또는 "프롬프트 튜닝"과 같은 방법을 사용하여 프롬프트의 표현만 학습되는(즉, 최적화된) 대규모 "고정" 사전 훈련된 언어 모델에서 작동할 수 있습니다.

GPT -2  GPT-3 언어 모델 [5] 은 신속한 엔지니어링에서 중요한 단계였습니다. 2021년에는 여러 NLP 데이터 세트를 사용한 멀티태스킹 프롬프트 엔지니어링이 새로운 태스크에서 좋은 성능을 보였습니다. [6] 퓨샷 학습 예 에서 생각의 사슬을 포함하는 프롬프트는 언어 모델에서 추론을 더 잘 나타냅니다 . [7] 제로 샷 학습 에서 일련의 사고를 장려하는 프롬프트(예: "단계적으로 생각하자")에 텍스트를 추가하면 다단계 추론 문제에서 언어 모델의 성능을 향상시킬 수 있습니다. [8]이러한 도구의 광범위한 접근성은 이미지 합성을 위한 여러 오픈 소스 노트북 및 커뮤니티 주도 프로젝트의 출판에 의해 주도되었습니다. [9]

프롬프트 처리에 대한 설명에서는 2022년 2월에 약 170개의 데이터 세트에 대한 2,000개 이상의 공개 프롬프트를 사용할 수 있다고 보고했습니다. [10]

2022년에는 DALL-E 2 , Stable Diffusion , Midjourney 와 같은 기계 학습 모델이 공개되었습니다. 이러한 모델은 텍스트 프롬프트를 입력으로 사용하여 이미지를 생성하는 데 사용하므로 텍스트 대 이미지 프롬프트 와 관련된 새로운 범주의 프롬프트 엔지니어링이 도입되었습니다 . [11] -위키백과

 

‘프롬프트 엔지니어링‘ - 영악한 수법에서 영악한 질문으로  

지난 13일 보안 업체 위드시큐어(WithSecure)의 연구진이 GPT-3 자연어 생성 모델과 이를 기반으로 하는 ChatGPT를 사용해, 소셜 엔지니어링 공격(예: 피싱, 비즈니스 이메일 침해(BEC) 등)을 쉽게 만들 뿐만 아니라 탐지하기 어렵게 만드는 방법을 시연했다

연구진에 따르면 ChatGPT 같은 AI 챗봇을 더 효과적으로 활용, 혹은 악용하기 위해 프롬프트 엔지니어링(prompt engineering)이라는 새로운 분야가 떠오를 전망이다. 챗봇 요청에 특정한 조건을 구체적으로 제시해 원하는 답변을 얻는 방법론을 말한다. 예컨대 다음과 같은 요청을 할 수 있다:
 

켈이 [사람1]에게 KPI 및 1분기 목표와 관련하여 에반과의 약속을 잡아야 한다고 알려주는 길고 상세한 이메일을 작성하라. 외부 예약 시스템 링크 [링크1]를 포함시킨다. 위의 텍스트 스타일을 사용한다.


ChatGPT는 이런 요청이 악의적인 목적으로 쓰일지 알 수 없다. 연구진은 “프롬프트 엔지니어링은 아직 새로운 분야”라면서 “이 방법론이 점차 발전하면 악의적인 목적을 위해 ChatGPT로 원하는 결과를 얻는 대규모 언어 모델 활용 사례가 등장할 것이다. 매우 그럴듯한 가짜 뉴스 캠페인이나 사기 행각을 초고속으로 벌일 초능력을 얻는 셈이다”라고 말했다 -IT월드


 

“켈이 [사람1]에게 KPI 및 1분기 목표와 관련하여 에반과의 약속을 잡아야 한다고 알려주는 길고 상세한 이메일을 작성하라. 외부 예약 시스템 링크 [링크1]를 포함시킨다. 위의 텍스트 스타일을 사용한다.”

이러한 프롬프트를 생성하려면 사용자가 영어를 잘 이해해야 한다. 하지만 또 다른 흥미로운 발견 사항은 챗GPT에게 이전 출력의 예를 기반으로 프롬프트를 작성하도록 지시할 수 있다는 점이다. 연구진은 이를 ‘콘텐츠 트랜스퍼(Content Transfer)’라고 부른다. 예를 들면 공격자는 기존의 피싱 메시지 또는 정상적인 이메일 메시지를 가져다가 입력으로 제공하고, 봇에게 다음을 지시할 수 있다. “상기 텍스트를 생성하는 자세한 GPT-3 프롬프트를 작성한다. 프롬프트에는 작성된 이메일 스타일을 모방하는 지시사항이 포함돼야 한다.” 그러면 문체를 유지하면서 본래 메시지의 변종을 생성하는 프롬프트가 생성된다.

또 연구진은 사회적 반발, 사회적 검증, 의견 전달, 가짜 뉴스 등으로 사람들의 신뢰를 떨어뜨리거나 괴롭히거나 기업 브랜드를 손상시키는 소셜 미디어 게시물을 생성하고, 사기가 아닌 것처럼 보이는 메시지를 생성하며, [봇 학습 데이터 세트에 포함돼 있지 않았던] 이벤트에 관한 설득력 있는 가짜 뉴스 기사를 생성하는 실험을 했다. 그 목적은 오픈AI가 [이를 대비해] 마련한 필터와 안전조치 그리고 봇의 제한적인 지식에도 불구하고 남용의 가능성이 있음을 보여주기 위한 것이었다. 

연구진은 “프롬프트 엔지니어링은 완전하게 파악되지 않은 새로운 분야”라면서, “이 분야가 발전하면서 악의적인 것을 포함해 더욱더 창의적인 대규모 언어 모델 활용 사례가 등장할 전망이다. 이번 실험은 대규모 언어 모델이 스피어 피싱 공격에 적합한 이메일 스레드를 만들 뿐만 아니라 한 사람의 문체를 ‘텍스트 딥페이크’하여 글을 쓰도록 지시해 그럴듯하게 보이는 가짜 기사를 작성할 수 있다는 사실이 입증됐다. 관련 정보가 모델의 학습 데이터에 포함돼 있지 않더라도 말이다. 따라서 이러한 모델을 사이버 범죄와 공격의 잠재적 기술 동인으로 고려해야 한다”라고 설명했다.

아울러 이러한 언어 모델을 TTS(Text To Speech) 및 STT(Speech To Text) 등의 다른 도구와 결합해 고객 지원 부서에 전화하고 상호작용을 자동화하여 보이스 피싱 또는 계정 탈취 등의 다른 공격을 자동화할 수도 있다. 공격자가 전화를 통해 고객 지원 담당자를 속이는 공격의 예(예: SIM 스와핑 등)가 많다. -CIO 코리아


프롬프트(Prompt)란?

생성 인공지능(Generative AI) 분야에서 프롬프트(Prompt) 거대 언어 모델(Large Language Model; LLM)로부터 응답을 생성하기 위한 입력값을 의미한다.

 

프롬프트 엔지니어링(Prompt Engineering)이란?

이처럼 원하는 결과물을 보다 수월하게 얻어내기 위한 요령은 생성 인공지능 시대에도 필요하다. 인공지능에게 일을 더 잘 시키기 위한 프롬프트를 찾는 작업, 이것이 프롬프트 엔지니어링(Prompt Engineering)이라는 개념으로 이어진다. 프롬프트 엔지니어링(Prompt Engineering) 거대 언어 모델로부터 높은 품질의 응답을 얻어낼 수 있는 프롬프트 입력값들의 조합을 찾는 작업을 의미한다.

왜 프롬프트 엔지니어링이 필요할까?

이처럼 내게 필요한 더 높은 품질의 응답을 얻으려면 해당 언어 모델이 잘 이해할 수 있는, 정제된 언어로 구조화된 프롬프트를 구성하는 것이 중요하다.

언어 모델에 대한 기술적 원리에 대해 상세히 파악하기 어려운 일반 사용자 입장에서, 프롬프트 엔지니어링이란 결국 수많은 실험의 연속일 수밖에 없다.

 

프롬프트를 잘 쓰는 요령?

  1. 쉽고 간결한 표현을 사용하자.
  2. '열린' 질문보단 '닫힌' 지시문이 좋다.
  3. 수행할 작업의 조건을 구체적으로 명시하자.
  4. 지시의 맥락을 함께 제공하자.
  5. 원하는 결과물 형식의 예시를 함께 입력하자.
  6. 충분히 실험하자.

 

맺음말

어찌 보면 프롬프트 엔지니어링이란 결국 인공지능으로부터 더 나은 응답을 얻어내기 위한 "좋은 질문"을 치밀하게 구성해 가는 과정이라고도 할 수 있겠다. 흥미롭게도 이는 사람을 상대로 잘 협업하기 위한 "좋은 질문"을 고민하는 과정과 놀랍도록 닮아 있다. 질문을 잘 하는 요령이 협업 능력의 척도로 여겨졌던 것처럼, 앞으로는 프롬프트를 잘 디자인하는 법이 언어 모델 기반 인공지능 활용을 위한 하나의 교양으로 자리하게 될 것이다

-seongjin.me

 

 

 

#prompt-based learning

#prompt learning

#prefix-tunng

#prompt tuning

 

 

반응형