LLM 모델을 향상시키는 몇 가지 긴급 엔지니어링 기술 - KDnuggets

LLM 모델을 향상시키는 몇 가지 긴급 엔지니어링 기술 – KDnuggets

소스 노드 : 2940921

LLM 모델을 향상시키는 몇 가지 긴급 엔지니어링 기술
DALL-E3으로 생성된 이미지
 

인공 지능은 기술 세계에서 완전한 혁명이었습니다. 

인간의 지능을 모방하고 한때 인간의 영역으로만 간주되었던 작업을 수행하는 능력은 여전히 ​​우리 대부분을 놀라게 합니다. 

그러나 이러한 최신 AI 도약이 아무리 훌륭하더라도 항상 개선의 여지가 있습니다.

그리고 이것이 바로 신속한 엔지니어링이 시작되는 곳입니다!

AI 모델의 생산성을 획기적으로 향상시킬 수 있는 분야에 참여해보세요.

모두 함께 알아봅시다!

프롬프트 엔지니어링은 AI 내에서 언어 모델의 효율성과 효과성을 향상시키는 데 중점을 두고 빠르게 성장하는 영역입니다. AI 모델이 원하는 결과를 생성하도록 안내하는 완벽한 프롬프트를 만드는 것이 전부입니다.

누군가가 작업을 올바르게 이해하고 실행할 수 있도록 더 나은 지침을 제공하는 방법을 배우는 것으로 생각하십시오. 

신속한 엔지니어링이 중요한 이유

  • 향상된 생산성: AI 모델은 고품질 프롬프트를 사용하여 보다 정확하고 관련성이 높은 응답을 생성할 수 있습니다. 이는 수정에 소요되는 시간이 줄어들고 AI 기능을 활용하는 데 더 많은 시간이 소요된다는 것을 의미합니다.
  • 비용 효율성 : AI 모델 교육에는 리소스 집약적입니다. 프롬프트 엔지니어링은 더 나은 프롬프트를 통해 모델 성능을 최적화하여 재교육의 필요성을 줄일 수 있습니다.
  • 다재: 잘 만들어진 프롬프트는 AI 모델을 더욱 다양하게 만들어 보다 광범위한 작업과 과제를 해결할 수 있게 해줍니다.

가장 진보된 기술을 살펴보기 전에 가장 유용하고 기본적인 프롬프트 엔지니어링 기술 두 가지를 기억해 봅시다.

“단계적으로 생각해보자”를 통한 순차적 사고

오늘날 "Let's think step by step"이라는 단어 시퀀스를 추가하면 LLM 모델의 정확도가 크게 향상된다는 것은 잘 알려져 있습니다.

왜… 물어봐도 될까요?

그 이유는 모델이 모든 작업을 여러 단계로 나누어 각 단계를 처리하는 데 충분한 시간을 갖도록 모델을 강제하기 때문입니다.

예를 들어 다음 프롬프트를 사용하여 GPT3.5에 도전할 수 있습니다.
 

John이 배 5개를 가지고 있고, 2개를 먹고, 5개를 더 사서, 친구에게 3개를 준다면, 그 사람은 배가 몇 개 있습니까?

 

모델이 바로 답변해드리겠습니다. 그러나 마지막 "단계별로 생각해보자"를 추가하면 모델이 여러 단계의 사고 과정을 생성하도록 강제하는 것입니다. 

퓨샷 프롬프팅

제로 샷 프롬프트는 컨텍스트나 사전 지식을 제공하지 않고 모델에 작업을 수행하도록 요청하는 반면, 퓨샷 프롬프트 기술은 특정 질문과 함께 원하는 출력의 몇 가지 예를 LLM에 제시하는 것을 의미합니다. 

예를 들어, 시적인 어조를 사용하여 용어를 정의하는 모델을 만들고 싶다면 설명하기가 상당히 어려울 수 있습니다. 오른쪽?

그러나 다음과 같은 몇 번의 프롬프트를 사용하여 원하는 방향으로 모델을 조종할 수 있습니다.

당신의 임무는 다음 스타일에 맞춰 일관된 스타일로 대답하는 것입니다.

: 회복탄력성에 대해 가르쳐 주세요.

: 탄력성은 바람에 휘어지지만 결코 부러지지 않는 나무와 같습니다.

역경을 딛고 앞으로 나아가는 능력입니다.

: 여기에 귀하의 의견을 입력하세요.

아직 사용해보지 않으셨다면 GPT에 도전해 보세요. 

그러나 여러분 대부분이 이미 이러한 기본 기술을 알고 있다고 확신하므로 몇 가지 고급 기술로 여러분에게 도전해 보도록 하겠습니다.

1. CoT(사고 사슬) 유도

소개자 2022 년 Google, 이 방법에는 최종 응답을 제공하기 전에 여러 추론 단계를 거치도록 모델에 지시하는 것이 포함됩니다. 

친숙한 것 같죠? 그렇다면 당신 말이 맞습니다. 

이는 순차적 사고와 Few-Shot Prompting을 병합하는 것과 같습니다. 

어떻게?

기본적으로 CoT 프롬프트는 LLM이 정보를 순차적으로 처리하도록 지시합니다. 이는 여러 단계의 추론을 통해 첫 번째 문제를 해결하는 방법을 예시한 다음 실제 작업을 모델에 전송하여 해결하려는 실제 쿼리에 응답할 때 유사한 사고 체인을 에뮬레이션할 것으로 기대한다는 의미입니다.

 

LLM 모델을 향상시키는 몇 가지 긴급 엔지니어링 기술
에서 가져온 이미지 종이
 

따라서 첫 번째 예에 이어 첫 번째 문제에 대한 프롬프트와 이를 해결하는 방법에 대한 순차적인 설명을 제공할 수 있습니다. 그런 다음 입력을 보내고 마법이 어떻게 일어나는지 확인할 수 있습니다!

John이 배 5개를 가지고 있고, 2개를 먹고, 5개를 더 사서, 친구에게 3개를 준다면, 그 사람은 배가 몇 개 있습니까? 단계별로 생각해 봅시다.

단계별로 살펴보겠습니다. John은 배 5개로 시작합니다. 그는 배 2개를 먹었으므로 5-2 = 3개의 배가 남았습니다. 그런 다음 그는 배 5개를 더 삽니다. 따라서 그는 이제 3 + 5 = 8개의 배가 있습니다. 마지막으로 그는 친구에게 배 3개를 줍니다. 따라서 그에게는 8-3 = 5개의 배가 남았습니다. 따라서 모든 단계를 거친 후 John은 5개의 배를 갖게 됩니다.

여기에 귀하의 의견을 입력하십시오.

 

하지만 대부분의 분들은 생각하실 텐데요... ChatGPT에 뭔가 질문하고 싶을 때마다 문제를 해결하기 위해 순차적인 방법을 생각해야 합니까?

글쎄… ​​당신은 첫 번째 사람이 아닙니다! 그리고 이것이 우리를 다음으로 이끈다…

2. 자동 사고 사슬(Auto-CoT)

2022년에 그리고 동료들은 이러한 수동 프로세스를 피하기 위한 방법을 도입했습니다. 수동 작업을 피하는 두 가지 주요 이유는 다음과 같습니다. 

  • 지루할 수 있습니다. 
  • 예를 들어 우리의 정신적 과정이 잘못된 경우에는 나쁜 결과가 나올 수 있습니다.

그들은 각 시연에 대한 추론 체인을 순차적으로 생성하기 위해 "단계적으로 생각하자" 프롬프트와 결합된 LLM을 사용할 것을 제안했습니다. 

이는 ChatGPT에 문제를 순차적으로 해결하는 방법을 요청한 다음 이와 동일한 예를 사용하여 다른 문제를 해결하는 방법을 훈련시키는 것을 의미합니다. 

3. 자기 일관성

자기 일관성은 더 복잡한 추론 문제를 유도하는 사고의 연쇄를 개선하는 것을 목표로 하는 또 다른 흥미로운 유도 기술입니다.

그럼... 가장 큰 차이점은 무엇인가요?

Self-Consistency의 주요 아이디어는 잘못된 예를 사용하여 모델을 훈련할 수 있다는 것을 인식하는 것입니다. 내가 잘못된 정신적 과정으로 이전 문제를 해결했다고 상상해 보세요. 

John이 배 5개를 가지고 있고, 2개를 먹고, 5개를 더 사서, 친구에게 3개를 준다면, 그 사람은 배가 몇 개 있습니까? 단계별로 생각해 봅시다.

배 5개로 시작하세요. 존은 배 2개를 먹습니다. 그리고 그는 친구에게 배 3개를 줍니다. 이러한 행동은 결합될 수 있습니다: 2(먹음) + 3(제공) = 총 5개의 배가 영향을 받습니다. 이제 처음 5개의 배에서 영향을 받은 총 배를 뺍니다. 5(초기) – 5(영향을 받음) = 남은 배 0개.
그러면 모델에 보내는 다른 모든 작업이 잘못될 것입니다.

 

이것이 바로 Self-Consistency가 다양한 추론 경로에서 샘플링을 포함하는 이유입니다. 각 추론 경로에는 일련의 사고가 포함되어 있으며 LLM이 문제를 해결하기 위한 가장 좋고 일관된 경로를 선택하도록 합니다. 

 

LLM 모델을 향상시키는 몇 가지 긴급 엔지니어링 기술
에서 가져온 이미지 종이
 

이 경우 첫 번째 예를 다시 따르면 문제를 해결하는 다양한 방법을 모델에 보여줄 수 있습니다. 

John이 배 5개를 가지고 있고, 2개를 먹고, 5개를 더 사서, 친구에게 3개를 준다면, 그 사람은 배가 몇 개 있습니까?

배 5개로 시작하세요. 존은 배 2개를 먹고 5-2 = 배 3개를 남겼습니다. 그는 배 5개를 더 구입하여 총 3 + 5 = 8개의 배가 됩니다. 마지막으로 그는 친구에게 배 3개를 주었으므로 그에게는 8-3 = 5개의 배가 남았습니다.

John이 배 5개를 가지고 있고, 2개를 먹고, 5개를 더 사서, 친구에게 3개를 준다면, 그 사람은 배가 몇 개 있습니까?

배 5개로 시작하세요. 그런 다음 그는 배 5개를 더 삽니다. John은 지금 배 2개를 먹습니다. 이러한 행동은 결합될 수 있습니다: 2(먹음) + 5(구매) = 총 7개의 배. 배의 총량 7(총량) – 2(먹음) = 남은 배 5개에서 Jon이 먹은 배를 뺍니다.

여기에 귀하의 의견을 입력하십시오.

 

그리고 여기에 마지막 기술이 있습니다.

4. 일반 지식 프롬프트

프롬프트 엔지니어링의 일반적인 관행은 최종 API 호출을 GPT-3 또는 GPT-4로 보내기 전에 추가 지식으로 쿼리를 보강하는 것입니다.

에 따르면 리우 지아청(Jiacheng Liu) 및 공동, LLM이 질문에 대해 더 잘 알 수 있도록 요청에 언제든지 지식을 추가할 수 있습니다. 

 

LLM 모델을 향상시키는 몇 가지 긴급 엔지니어링 기술
에서 가져온 이미지 종이
 

예를 들어 ChatGPT에 골프의 일부가 다른 부분보다 더 높은 총점을 얻으려고 하는지 묻는 경우 우리를 검증합니다. 그러나 골프의 주요 목표는 정반대입니다. 이것이 바로 "점수가 낮은 플레이어가 승리합니다"라는 사전 지식을 추가할 수 있는 이유입니다.

 

LLM 모델을 향상시키는 몇 가지 긴급 엔지니어링 기술
 

그럼.. 모델에게 답을 정확히 말하면 재미있는 부분은 무엇일까요?

이 경우 이 기술은 LLM이 우리와 상호 작용하는 방식을 개선하는 데 사용됩니다. 

따라서 논문의 저자는 외부 데이터베이스에서 보충적인 맥락을 가져오는 대신 LLM이 자체 지식을 생성하도록 권장합니다. 이렇게 스스로 생성된 지식은 프롬프트에 통합되어 상식적 추론을 강화하고 더 나은 결과를 제공합니다. 

이것이 훈련 데이터세트를 늘리지 않고도 LLM을 개선할 수 있는 방법입니다!

신속한 엔지니어링은 LLM의 역량을 강화하는 데 있어 중추적인 기술로 등장했습니다. 프롬프트를 반복하고 개선함으로써 AI 모델과 보다 직접적인 방식으로 통신할 수 있으므로 보다 정확하고 상황에 맞게 관련성이 높은 출력을 얻을 수 있어 시간과 리소스가 모두 절약됩니다. 

기술 애호가, 데이터 과학자, 콘텐츠 제작자 모두에게 프롬프트 엔지니어링을 이해하고 숙달하는 것은 AI의 잠재력을 최대한 활용하는 데 귀중한 자산이 될 수 있습니다.

신중하게 설계된 입력 프롬프트와 이러한 고급 기술을 결합함으로써 프롬프트 엔지니어링 기술 세트를 갖추면 의심할 여지 없이 향후 몇 년 동안 우위를 점할 수 있을 것입니다.
 

조셉 페레르 바르셀로나 출신의 분석 엔지니어입니다. 물리공학과를 졸업하고 현재 인간의 이동성을 응용한 데이터 사이언스 분야에서 일하고 있다. 그는 데이터 과학 및 기술에 중점을 둔 파트 타임 콘텐츠 제작자입니다. 당신은 그에게 연락 할 수 있습니다 링크드인, 트위터 or 중급.

타임 스탬프 :

더보기 너 겟츠