요약생성
바쁠 때는 리얼라이즈가 내용을 요약해 드려요.
본 기사는 AI 연구 분야의 최신 소식을 다루는 시리즈의 일부입니다.
대규모 언어 모델(LLM)에 전송하는 프롬프트의 길이를 줄이면 추론 시간이 단축되고 비용이 절감될 수 있습니다. 이것이 바로 프롬프트 압축이 LLM 연구에서 인기 있는 분야가 된 이유입니다.
새로운 논문에서 칭화대학교와 Microsoft의 연구원들은 작업에 구애받지 않는 새로운 프롬프트 압축 기술인 LLMLingua-2를 소개합니다. LLMLingua-2는 다른 프롬프트 압축 방법보다 빠르고 효율적이며 더 적은 계산 리소스가 필요합니다. 긴 프롬프트와 압축을 사용하는 LLM 애플리케이션에 유용한 도구이며, 상당한 비용 절감과 더 나은 사용자 경험을 제공할 수 있습니다.
작업 인식 및 작업에 구애받지 않는 프롬프트 압축
사고 사슬(CoT) 추론, 문맥 내 학습, 검색 기반 생성(RAG)과 같은 기술을 통해 LLM은 학습 데이터에 포함되지 않은 복잡한 작업과 지식을 처리할 수 있습니다.
그러나 긴 프롬프트의 이점은 계산 및 재정적 요구 사항 증가라는 대가를 치러야 합니다. 또한 일부 LLM에서는 프롬프트가 길어지면 문맥 정보를 처리하는 모델의 정확도가 떨어질 수 있습니다.
프롬프트 압축은 필수 정보는 유지하면서 원래 텍스트를 줄여 이러한 문제를 해결합니다. 프롬프트 압축의 기본 가정은 자연어에 사람의 이해에는 유용하지만 LLM에는 필요하지 않은 중복성이 포함되어 있다는 것입니다.
프롬프트 압축은 '작업 인식' 방법과 '작업에 구애받지 않는' 방법으로 분류할 수 있습니다. 작업 인식 압축은 다운스트림 작업 또는 현재 쿼리를 기반으로 프롬프트에서 토큰을 제거합니다. 널리 사용되는 방법은 LongLLMLingua로, 질문 인식 다단계 접근 방식을 적용하여 토큰의 정보 엔트로피를 추정하고 중복되는 부분을 제거합니다. 다른 방법으로는 강화 학습을 사용하여 다운스트림 작업의 보상 신호를 기반으로 프롬프트를 압축하도록 모델을 학습시키는 것이 있습니다. 작업 인식 압축의 단점은 다른 작업에 대한 일반화 가능성이 제한적이라는 것입니다.
반면에 작업에 구애받지 않는 방법은 특정 작업을 고려하지 않고 프롬프트를 압축하므로 더 광범위한 애플리케이션과 블랙박스 LLM에 더 적합합니다. 작업에 구애받지 않는 방법으로는 LLMLingua와 Selective-Context가 있습니다. 이러한 방법은 Llama-7B와 같은 인과적 소형 언어 모델(SLM)을 사용하여 토큰 또는 어휘 단위의 엔트로피를 평가하고 의미 있는 정보를 추가하지 않는 토큰을 제거합니다.
원래 LLMLingua의 저자가 개발한 LLMLingua-2는 작업에 구애받지 않는 프롬프트 압축 기술입니다.
LLMLingua-2의 작동 방식
현재 작업에 구애받지 않는 압축 방법에는 몇 가지 제한 사항이 있으며, 이로 인해 연구원들은 LLMLingua의 후속 제품을 만들게 되었습니다.
Microsoft의 수석 연구원이자 이 논문의 공동 저자인 Qianhui Wu는 TechTalks와의 인터뷰에서 '정보 엔트로피는 (i) 프롬프트 압축 목표와 일치하지 않고 (ii) 단방향 컨텍스트만 활용하고 프롬프트 압축에 필요한 모든 필수 정보를 캡처하지 못할 수 있기 때문에 최적의 압축 지표가 아닐 수 있습니다.'라고 말했습니다.
LLMLingua-2는 각 토큰을 보존할지 아니면 버릴지 여부를 지정하는 분류 작업으로 프롬프트 압축을 재구성합니다. 이 작업 공식을 사용하여 프롬프트 압축 학습 데이터 세트를 만듭니다. 그런 다음 데이터 세트를 사용하여 압축 작업을 위해 가벼운 양방향 트랜스포머 인코더 모델을 학습시킵니다.
Wu는 '이러한 방식으로 전체 양방향 컨텍스트에서 프롬프트 압축에 필요한 모든 필수 정보를 캡처하고 압축된 프롬프트가 원래 프롬프트에 충실하도록 보장할 수 있습니다.'라고 말했습니다.
LLMLingua-2는 몇 가지 주요 이점이 있습니다. 첫째, 양방향 인코더를 사용하면 프롬프트 압축에 필요한 모든 필수 정보를 캡처할 수 있습니다. 둘째, 더 작은 트랜스포머 모델을 사용하여 압축 목표를 학습하기 때문에 대기 시간이 크게 단축됩니다. 셋째, 원래 프롬프트에 충실하고 환각을 피하도록 설계되었습니다.
LLMLingua-2(출처: arxiv.org)
압축 모델 학습
프롬프트 압축 모델 학습을 위한 데이터 세트를 생성하기 위해 연구원들은 강력한 LLM에서 지식을 추출하는 데이터 증류 절차를 사용했습니다. GPT-4에 프롬프트를 제공하고 필수 정보는 보존하고 환각은 피하면서 토큰을 줄이도록 지시합니다.
원본 텍스트와 압축된 버전의 쌍을 얻은 후 원본 텍스트의 각 토큰에 이진 레이블을 할당하여 압축 후 보존할지 아니면 버릴지 여부를 결정합니다. 연구원들은 MeetingBank 데이터 세트를 사용하여 학습 예제를 만들었습니다.
그런 다음 데이터 세트에서 약간 수정된 버전의 xlm-roberta-large 및 다국어 BERT 트랜스포머 모델을 학습시켜 토큰을 '보존' 또는 '폐기'로 분류했습니다. BERT 기반 모델의 장점은 이전 토큰에 대한 지식만 있는 자기 회귀 디코더 모델과 달리 양방향 특징을 학습한다는 것입니다. 이를 통해 압축 모델은 더 나은 압축으로 이어질 수 있는 더 풍부한 상관 관계를 학습할 수 있습니다.
연구원들은 '추론하는 동안 분류 모델로 계산된 확률을 기반으로 원래 프롬프트에서 각 토큰을 보존할지 아니면 버릴지 여부를 결정합니다.'라고 말합니다.
GitHub에서 LLMLingua-2의 소스 코드를 찾을 수 있습니다.
LLMLingua-2 증류 프롬프트
LLMLingua-2 실제 적용
연구원들은 MeetingBank 데이터 세트와 LongBench, ZeroScrolls, GSM8K, Big Bench Hard와 같은 여러 도메인 외 데이터 세트에서 압축 모델을 테스트했습니다. 대상 모델로 GPT-3.5-Turbo를 사용했습니다. 그러나 압축 모델은 GPT-4 및 Claude 3\과 같은 최첨단 모델과도 함께 사용할 수 있습니다. LLMLingua-2의 압축, 속도, 정확도를 다른 방법 및 원래 프롬프트와 비교했습니다.
그 결과 LLMLingua-2 압축은 크기가 작음에도 불구하고 다른 작업에 구애받지 않는 기준선보다 성능이 뛰어나며 GPT-3.5-Turbo에서 Mistral-7B로 잘 일반화되는 것으로 나타났습니다.
LLM-Lingua-2는 2~5배의 압축률을 달성하며 기존 프롬프트 압축 방법보다 3~6배 빠릅니다. 즉, 긴 시스템 및 컨텍스트 프롬프트가 필요한 애플리케이션에 사용할 경우 상당한 비용을 절감할 수 있습니다. 또한 LLMLingua-2는 대기 시간을 1.6~2.9배 단축하고 GPU 메모리 비용을 8배까지 줄일 수 있습니다.
흥미롭게도 대상 LLM으로 Mistral-7B를 사용했을 때 연구원들은 LLMLingua-2가 원래 프롬프트보다 훨씬 더 나은 성능을 보인다는 것을 발견했습니다. 연구원들은 논문에서 'Mistral-7B가 GPT-3.5-Turbo보다 긴 컨텍스트를 관리하는 데 덜 능숙할 수 있다고 추측합니다. 정보 밀도가 더 높은 더 짧은 프롬프트를 제공함으로써 Mistral-7B의 최종 추론 성능을 효과적으로 향상시킵니다.'라고 말합니다.
Wu는 'LLMLingua-2는 작업에 구애받지 않는 프롬프트 압축 방법입니다.'라고 말했습니다. '즉, 너무 긴 컨텍스트를 처리할 때마다 LLMLingua-2를 사용하여 더 짧은 컨텍스트로 압축하여 제한된 컨텍스트 창을 수용하고, 재정적 비용을 줄이고(OpenAI는 토큰 단위로 요금을 부과함), LLM의 추론 시간을 단축할 수 있습니다.'
그러나 LLMLingua-2는 LongLLMlingua와 같은 작업 인식 압축 방법에 비해 특정 작업에서 성능이 떨어집니다.
연구원들은 '이러한 성능 차이는 [작업 인식 방법]이 질문에서 활용하는 추가 정보 때문입니다.'라고 말합니다. '그러나 모델의 작업에 구애받지 않는 특성으로 인해 다양한 시나리오에 배포할 때 뛰어난 일반화 가능성을 갖춘 효율적인 옵션입니다.'