빅 언어 모델링에서 큐 엔지니어링의 필요성

AI 기술 자료1 년 전 게시 됨 AI 공유 서클
6.3K 00

다음은 힌트 엔지니어링의 기본 개념과 이를 통해 대규모 언어 모델(LLM)의 성능을 개선하는 방법에 중점을 둡니다....

LLM의 인터페이스:대규모 언어 모델이 인기를 끄는 주요 이유 중 하나는 텍스트 대 텍스트 인터페이스를 통해 최소한의 운영 환경을 구현할 수 있기 때문입니다. 과거에는 딥러닝으로 작업을 해결하려면 일반적으로 모델에 해당 작업의 해결 방법을 가르치기 위해 최소 일부 데이터를 미세 조정해야 했습니다. 하지만 대부분의 모델은 특정 작업에 대한 전문가 수준의 깊이만 갖추고 있었습니다. 하지만 이제 LLM의 뛰어난 문맥 학습 기능 덕분에 텍스트 힌트 하나로 다양한 문제를 해결할 수 있게 되었습니다. 기존의 복잡한 문제 해결 과정이 언어에 의해 추상화되었습니다!

"프롬프트 엔지니어링은 언어 모델을 효율적으로 사용하여 다양한 애플리케이션과 연구 주제에 맞는 프롬프트를 개발하고 최적화하는 데 중점을 두는 비교적 새로운 분야입니다." - 1]에서 인용

 

팁 프로젝트란 무엇인가요?LLM은 간단하기 때문에 더 많은 사람들이 이용할 수 있습니다. 데이터 과학자나 머신 러닝 엔지니어가 아니어도 영어(또는 원하는 언어)만 이해하면 비교적 복잡한 문제를 해결하는 데 LLM을 사용할 수 있습니다! 그러나 LLM으로 문제를 해결할 수 있는 경우, 그 결과는 모델에 제공하는 텍스트 단서에 크게 좌우되는 경우가 많습니다. 그 결과, 큐 엔지니어링(즉, 경험을 사용해 다양한 큐를 테스트하여 LLM의 성능을 최적화하는 방법)이 큰 인기를 얻었으며 많은 영향을 미쳐 여러 가지 기술과 모범 사례로 이어졌습니다.

프롬프트를 디자인하는 방법LLM 프롬프트를 디자인하는 방법에는 여러 가지가 있습니다. 하지만 대부분의 힌트 전략은 몇 가지 공통점을 공유합니다:

- 입력 데이터: LLM이 처리해야 하는 실제 데이터(예: 번역 또는 분류할 문장, 요약할 문서 등)입니다.
- 예시: 프롬프트에 포함할 수 있는 올바른 입력-출력 쌍의 예입니다.
- 지침: 모델의 예상 출력에 대한 텍스트 설명입니다.
- 레이블(표시기): 프롬프트에서 구조를 만드는 레이블 또는 서식 지정 요소입니다.
- 컨텍스트: 프롬프트에서 LLM에 제공된 추가 정보입니다.

다음 그림에서는 위에서 언급한 모든 단서 요소를 하나의 문장 분류 단서에 병합하는 방법을 예로 들어 설명합니다.

提示工程在大语言模型中应用的必要性

컨텍스트 창:사전 학습 중에 LLM은 특정 길이의 입력 시퀀스를 확인합니다. 사전 학습 중에 이 시퀀스 길이를 모델의 '컨텍스트 길이'로 선택하며, 이는 모델이 처리할 수 있는 최대 시퀀스 길이입니다. 이 사전 설정된 컨텍스트 길이보다 훨씬 긴 텍스트가 주어지면 모델이 예측할 수 없는 방식으로 반응하여 잘못된 결과를 출력할 수 있습니다. 그러나 실제로는 자체 확장[2] 또는 위치 보간[3]과 같은 방법을 사용하여 모델의 컨텍스트 창을 확장할 수 있습니다.

提示工程在大语言模型中应用的必要性

 

LLM에 대한 최근 연구에서는 모델이 단서당 더 많은 정보(예: 더 많은 예시 또는 더 많은 컨텍스트)를 처리할 수 있도록 긴 컨텍스트 창을 만드는 것이 강조되고 있습니다. 하지만 모든 LLM이 컨텍스트 정보를 완벽하게 처리할 수 있는 것은 아닙니다! 긴 컨텍스트 창에서 정보를 처리하는 LLM의 능력은 일반적으로 "건초더미 테스트"[4]로 평가됩니다.

1. 문맥에 임의의 사실을 삽입합니다.
2. 이 사실을 찾으려면 모델이 필요합니다.
3. 다양한 문맥 길이와 문맥 내 사실의 위치에서 이 테스트를 반복합니다.

이 테스트는 아래 이미지(소스 [4])와 같은 이미지를 생성하며, 이를 통해 컨텍스트 창의 문제를 쉽게 파악할 수 있습니다.

提示工程在大语言模型中应用的必要性

나의 큐 엔지니어링 전략:큐 엔지니어링의 세부 사항은 사용하는 모델에 따라 달라집니다. 그러나 큐 엔지니어링 프로세스의 지침으로 사용할 수 있는 몇 가지 일반적인 원칙이 있습니다:

- 경험적 접근: 큐 엔지니어링의 첫 번째 단계는 큐의 수정 사항을 간단히 측정하기 위해 신뢰할 수 있는 큐 평가 방법(예: 테스트 사례, 인적 평가 또는 루브릭으로서의 LLM 등)을 설정하는 것입니다.
- 단순한 프롬프트에서 복잡한 프롬프트로 전환: 프롬프트의 첫 번째 시도는 처음부터 복잡한 연쇄 사고 프롬프트나 기타 특수한 프롬프트 기법을 시도하기보다는 가능한 한 단순해야 합니다. 초기 프롬프트는 단순하게 만든 다음 점차 복잡도를 높여가면서 성능의 변화를 측정하여 추가적인 복잡성이 필요한지 판단해야 합니다.
- 가능한 한 구체적이고 직접적으로 설명: 프롬프트에서 모호함을 없애고 예상 결과를 설명할 때 최대한 간결하고 직접적이며 구체적으로 설명하도록 노력하세요.
- 예시 포함: 예상 결과를 설명하기 어려운 경우 프롬프트에 예시를 포함시켜 보세요. 예는 예상 출력에 대한 구체적인 예를 제공하며 모호함을 없앨 수 있습니다.
- 가능한 한 복잡성을 피하세요: 복잡한 프롬프트 전략이 필요한 경우도 있지만(예: 다단계 추론 문제 해결), 이러한 접근 방식을 취하기 전에 두 번 생각할 필요가 있습니다. 경험적인 관점을 취하고 확립된 평가 전략을 사용하여 그러한 복잡성을 포함할 필요가 있는지 여부를 실제로 판단하세요.

위의 모든 내용을 요약하자면, 제 개인적인 큐 엔지니어링 전략은 i) 좋은 평가 프레임워크에 전념하고, ii) 간단한 큐로 시작하여, iii) 원하는 수준의 성과를 달성하기 위해 필요에 따라 천천히 복잡성을 추가하는 것입니다.

提示工程在大语言模型中应用的必要性

 

 

주석:

[1] https://promptingguide.ai
[2] https://arxiv.org/abs/2401.01325
[3] https://arxiv.org/abs/2306.15595
[4] https://github.com/gkamradt/LLMTest_NeedleInAHaystack

© 저작권 정책

관련 게시물

댓글 없음

댓글에 참여하려면 로그인해야 합니다!
지금 로그인
없음
댓글 없음...