Yolo 비전 선전
선전
지금 참여하기
용어집

프롬프트 압축

프롬프트 압축이 AI 효율성을 어떻게 향상시키는지 알아보세요. 지금 바로 Ultralytics 통해 대규모 언어 모델(LLM)의 토큰 사용량을 줄이고, 비용을 절감하며, 추론 속도를 높이는 방법을 확인해 보세요.

프롬프트 압축은 대규모 언어 모델(LLM) 다중 모달 모델에 제공되는 입력 텍스트의 길이와 복잡성을 줄이기 위해 고안된 고급 최적화 기법입니다. 프롬프트 압축은 핵심적인 의미는 유지하면서 중복된 단어, 관련 없는 문맥, 스톱 워드를 알고리즘적으로 제거함으로써 AI 시스템이 정보를 더 효율적으로 처리할 수 있도록 합니다. 이 방법은 연산 비용을 최소화하고, 추론 지연 시간을 줄이며, 모델이 최대 컨텍스트 윈도우를 초과하는 것을 방지하는 데 있어 점점 더 중요해지고 있습니다.

Prompt Compression의 작동 원리

건축적 수준에서 프롬프트 압축은 종종 더 작고 특화된 모델이나 정보 이론적 알고리즘을 활용하여 주어진 프롬프트 내 각 토큰의 중요도를 평가합니다. 토큰 병합이나 엔트로피 기반 전정 같은 기법은 전체적인 의미에 거의 기여하지 않는 토큰을 식별하여 제거합니다. 이를 통해 최종 입력에는 가장 고밀도로 압축된 정보만 포함되도록 보장합니다.

권위 있는 기관들의 최근 연구에 따르면, 고도로 압축된 프롬프트는 복잡한 추론 작업에서 성능을 유지하면서도 토큰 소비량을 대폭 줄일 수 있는 것으로 나타났습니다. 확장 가능한 애플리케이션에 AI를 통합하는 개발자들에게 있어, OpenAI의 프롬프트 최적화 지침을 준수하고 압축 프레임워크를 활용하는 것은 효율적인 배포를 위한 표준적인 모범 사례입니다.

실제 애플리케이션

프로프트 압축은 방대한 텍스트 또는 시각적 데이터를 신속하게 처리해야 하는 상황에서 즉각적인 이점을 제공합니다:

  • 검색 강화 생성(RAG): 기업용 검색 애플리케이션에서 RAG 파이프라인은 종종 단 하나의 사용자 쿼리에 응답하기 위해 수십 개의 방대한 문서를 검색합니다. 프롬프트 압축 알고리즘은 이렇게 검색된 문서를 축소하여 간결한 사실 요약으로 정리한 후 생성 모델에 입력합니다. 이를 통해 토큰 오버플로우를 방지하고 실시간 추론을 가속화합니다.
  • 자율 AI 에이전트: 에이전트와 챗봇은 사용자 상호작용에 대한 장기 기억을 유지해야 합니다. 모든 새로운 질의에 대화 내역 전체를 전달하는 대신, 압축 기술을 이용해 이전 대화 내용을 요약함으로써, 지수적으로 증가하는 계산 부하 없이도 에이전트가 맥락을 파악할 수 있도록 합니다.

프롬프트 압축 대 관련 기술

견고한 머신러닝 운영(MLOps) 파이프라인을 구축하려면 프롬프트 압축을 관련 개념들과 명확히 구분하는 것이 중요합니다:

  • 대조: 프롬프트 캐싱: 캐싱은 이미 처리된 텍스트의 내부 계산 상태를 저장하여 이를 다시 계산하지 않도록 합니다. 반면 압축은 어떤 처리도 수행되기 전에 입력 텍스트 자체를 능동적으로 변경하고 축약합니다.
  • 대조: 프롬프트 엔지니어링: 프롬프트 엔지니어링은 효과적인 지침을 설계하는 인간이 주도하는 기술입니다. 압축은 이러한 지침을 알고리즘을 통해 자동으로 축소하는 과정입니다.
  • 대조: 프롬프트 보강: 보강은 외부 맥락을 추가하여 프롬프트를 확장하는 반면, 압축은 이를 축소합니다. 이 두 기법은 종종 함께 사용됩니다. 시스템은 데이터베이스 결과로 프롬프트를 보강한 다음, 추론 전에 최종 페이로드를 압축할 수 있습니다.

컴퓨터 비전 분야에서의 적용

컴퓨터 비전(CV) 분야에서, 텍스트 쿼리를 받아 물체를 식별하는 개방형 어휘 모델을 사용할 때는 프롬프트 압축 원리가 적용됩니다. 클래스 설명을 간결하게 유지하면 텍스트 인코딩 속도가 빨라지고 메모리 오버헤드가 줄어듭니다.

속도가 가장 중요한 고정 클래스 생산 환경의 경우, 개발자들은 일반적으로 텍스트 프롬프트 기반 모델에서 Ultralytics 같은 고도로 최적화된 고정 아키텍처 모델로 전환합니다. Ultralytics 사용하면 데이터셋을 효율적으로 관리하고 이러한 최첨단 모델을 훈련할 수 있습니다.

from ultralytics import YOLO

# Load an open-vocabulary YOLO-World model
model = YOLO("yolov8s-world.pt")

# Principle of prompt compression: Use concise, distilled class names
# instead of lengthy, complex descriptions for faster text encoding
compressed_prompts = ["helmet", "vest", "forklift"]
model.set_classes(compressed_prompts)

# Run inference with the optimized class list
results = model.predict("https://ultralytics.com/images/bus.jpg")
results[0].show()

함께 AI의 미래를 만들어 갑시다!

미래의 머신러닝 여정을 시작하세요