Revision Prompting이 산업용 LLM 프로세스를 개선하는 방법
요약
산업용 LLM 프로세스에서 입력 데이터 변경 시 전체를 재처리하는 대신, 변경 사항(diff)만을 기반으로 출력물을 수정하는 Revision Prompting 기법을 소개합니다. 이를 통해 일관성 부족 문제를 해결하고 토큰 비용과 처리 시간을 획기적으로 절감할 수 있습니다.
핵심 포인트
- Revision Prompting은 입력의 차이점(diff)을 기반으로 출력 패치를 생성함
- 비결정론적 특성으로 인한 출력 일관성 결여 문제를 완화함
- 전체 재생성 대신 패치 적용을 통해 토큰 비용 및 처리 시간 절감
- 산업용 자동화 파이프라인에 최적화된 효율적인 프롬프팅 방식
Revision Prompting이 해결하는 문제
우리는 두 가지 방식으로 LLM에 프롬프트를 제공합니다:
- 애드혹 프롬프팅 (Ad-hoc prompting)
- 호출마다 맞춤형 지침을 사용하여 수동으로 LLM에 프롬프트를 제공합니다.
예시
-
코딩 에이전트에게 새로운 기능을 구현하도록 요청하기.
-
챗봇에게 이메일 초안 작성을 요청하기.
-
산업용 프롬프팅 (Industrial prompting)
-
자동화된 프로세스의 일부로서, 모든 호출에 동일한 지침을 사용하여 LLM에 프롬프트를 제공합니다.
예시
- 회계 파이프라인의 일부로 송장에서 구조화된 정보를 추출하기.
- 릴리스 프로세스의 일부로 문서 페이지를 다른 언어로 번역하기.
산업용 프롬프팅은 일반적으로 특정 Input 데이터를 Instruction과 함께 처리하여 Output을 생성합니다.
Input이 업데이트될 때마다, 산업용 프롬프팅은 UpdatedInput에 대해 Instruction을 단순히 다시 실행하여 UpdatedOutput을 생성합니다.
이러한 접근 방식에는 두 가지 단점이 있습니다:
- 일관성 부족 (Lack of consistency)
- LLM은 비결정론적(non-deterministic)이므로,
UpdatedOutput은UpdatedInput이 필요로 하는 범위를 넘어 원래의Output과 달라질 수 있습니다. - 전체 처리 시간 및 토큰 비용 (Full processing time and token costs)
- 입력의 일부만 변경되었음에도 불구하고,
UpdatedOutput을 전체적으로 생성합니다. 이는 원래의Output을 생성하는 것만큼 비용이 많이 듭니다.
Revision prompting은 전체 입력과 출력이 아닌, 입력과 출력의 **수정 사항 (revisions)**을 기반으로 작동함으로써 단순 재실행의 두 가지 단점을 모두 해결합니다.
Revision Prompting의 작동 방식
LLM에 다음과 같이 프롬프트를 제공하여 특정 Instruction으로 Input을 처리하고 Output을 생성했다고 가정해 봅시다.
Instruction: Input
이제 Input이 업데이트되었고, UpdatedInput도 처리하고자 합니다.
Revision Prompting은 다음과 같이 RevisionPrompt를 구성하여 UpdatedInput을 처리합니다.
Instruction: Input이 Output을 생성했습니다.
입력이 다음과 같이 업데이트되었습니다: diff(
.Input, UpdatedInput)
출력을 업데이트하기 위한 패치(patch)를 생성해 주세요.
LLM은 RevisionPrompt에 대해 OutputPatch로 응답하며, 우리는 이를 Output에 적용하여 UpdatedOutput을 얻습니다.
예시
당신은 다음과 같은 프롬프트로 e-bike 제품 페이지를 독일어로 번역합니다.
The Vela 3 e-bike has a range of 80 km.
Its battery recharges in three hours.
The frame is made from recycled aluminium.
Every Vela 3 includes a two-year warranty.
그러면 LLM은 다음과 같이 생성합니다.
Das E-Bike Vela 3 hat eine Reichweite von 80 km.
Sein Akku lädt in drei Stunden auf.
Der Rahmen besteht aus recyceltem Aluminium.
Jedes Vela 3 hat zwei Jahre Garantie.
나중에 배터리 업그레이드로 인해 주행 거리가 80 km에서 100 km로 증가합니다. 페이지 전체를 다시 번역하는 대신, 다음과 같이 프롬프트를 입력합니다.
The Vela 3 e-bike has a range of 80 km.
Its battery recharges in three hours.
The frame is made from recycled aluminium.
Every Vela 3 includes a two-year warranty.
생성된
OutputDas E-Bike Vela 3 hat eine Reichweite von 80 km.
Sein Akku lädt in drei Stunden auf.
Der Rahmen besteht aus recyceltem Aluminium.
Jedes Vela 3 hat zwei Jahre Garantie.
입력값은 다음과 같이 업데이트되었습니다:
diff(Input, UpdatedInput)- The Vela 3 e-bike has a range of 80 km.+ The Vela 3 e-bike has a range of 100 km.
출력을 업데이트하기 위한 패치(patch)를 생성해 주세요.
LLM은 다음과 같이 응답합니다.
원래의 Output에 OutputPatch를 적용하면 업데이트된 번역을 얻을 수 있습니다.
OutputPatch는 전체 재번역 대신 단 두 줄의 텍스트만 포함합니다. 변경되지 않은 콘텐츠는 기존 번역과 일관성을 유지합니다.
Revision Prompting이 작동하는 이유
- 일관성 (Consistency)
- LLM에 입력 수정 사항을 제공함으로써
diff(
, Input, UpdatedInput)OutputPatch가 입력 변경 사항에 의해 반드시 필요한 부분으로만 제한되도록 보장합니다. OutputPatch에 의해 수정되지 않은 모든 부분은 원래의 Output과 동일하게 유지됩니다. 따라서 UpdatedOutput은 원래의 Output과 **일관성 (Consistency)**을 유지합니다.
- 시간 및 비용 절감
- Revision Prompting은 원래의
Output을 프롬프트의 일부로 다시 입력(feed back)하므로, LLM은 짧은OutputPatch만을 생성합니다. 이로 인해 대부분의 토큰이 출력(output)에서 입력(input)으로 이동합니다. 처리 시간은 대략 출력 길이에 비례하여 증가하므로, 이 방식은 처리 시간의 대부분을 제거합니다. 또한 대부분의 출력 토큰 비용을 훨씬 저렴한 입력 토큰 비용으로 전환합니다. 만약 재실행이 원래 실행 후 몇 분 이내에 이루어진다면, 프롬프트 캐싱 (Prompt Caching)을 통해 입력 토큰 비용의 일부를 추가로 절감할 수 있습니다.
실무에서의 Revision Prompting
-
수정 형식 (Revision Formats)
-
diff(와Input,UpdatedInput)OutputPatch를 인코딩하기 위한 이상적인 형식은Instruction에 따라 달라집니다. POSIXdiff` 유틸리티는 유용한 범용 형식입니다. JSON 출력의 경우, JSON Patch 형식이 잘 작동합니다. -
예상 절감 효과 (Expected Savings)
-
시간 및 비용 절감은 입력 변경 사항의 크기와 입력 변경에 대한 출력의 민감도에 따라 달라집니다. 당사의 산업용 프롬프트(industrial prompts) 적용 결과, Revision Prompting은 시간을 약 80%, 비용을 약 65% 절감했습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Lobste.rs AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기