
이 연구에서는 제로 샷 프롬프트 최적화를 통해 대형 언어 모델 (LLM)의 산술 추론 능력을 향상시키는 것을 목표로합니다. 우리는 이러한 최적화에서 쿼리 종속성의 이전에 간과 된 목표를 식별하고 신속한 최적화 기술의 성공적이고 경제적 인 설계를 방해하는 두 가지 도전 과제를 밝힙니다. 주요 문제 중 하나는 황금 답변을 사용할 수없는 경우 추론 중에 프롬프트를 평가하는 효과적인 방법이 없다는 것입니다. 동시에, LLMS와의 상호 작용을 통해 학습하여 광대 한 자연 언어를 탐색하는 것은 자원 집약적 인 것으로 판명됩니다. 이를 해결하기 위해 오프라인 프롬프트 데모 데이터로부터 통찰력을 도출하기 위해 오프라인 역 강화 학습을 활용하는 Prompt-Oirl을 소개합니다. 이러한 데이터는 다양한 프롬프트가 개방 접근 가능한 데이터 세트에서 벤치마킹 될 때 부산물로 존재합니다. 프롬프트를 사용하면 오프라인 보상 모델을 먼저 학습함으로써 쿼리 의존적 프롬프트 최적화 목표를 달성합니다. 이 모델은 LLM에 액세스하지 않고 쿼리 프롬프트 쌍을 평가할 수 있습니다. 결과적으로 최적의 프롬프트를 권장하기 위해 최상의 N 전략이 배포됩니다. 다양한 LLM 척도 및 산술 추론 데이터 세트에서 우리의 실험적 평가는 제안 된 접근법의 효능과 경제적 생존력을 강조합니다.
그림 1. 모든 쿼리에 맞는 프롬프트가 완벽하지 않습니다 . 최적의 프롬프트는 쿼리 의존적입니다. 그러나 그러한 프롬프트를 찾는 것은 비용이 많이 들고 비효율적 일 수 있습니다. 프롬프트 -Oirl은 추론 시간 동안 쿼리 의존적 수준에서 효과적이고 비용 효율적으로 프롬프트를 최적화합니다. (동기 부여 예제에 대한 GPT4가있는 원래 채팅 로그는 왼쪽, 오른쪽에서 찾을 수 있습니다)
우리의 결과를 재현하려면 (예 : llama2 사용)
llama-2를 사용할 수있는 라이센스를 얻으십시오.
SVAMP, GSM8K, MAWPS와 같은 데이터 세트에 액세스하십시오
git clone [email protected]:holarissun/Prompt-OIRL.git
conda create --name prompt-oirl python==3.10
conda activate prompt-oirl
cd Prompt-OIRL
pip install -r requirements.txt
이 단계는 오랜 시간이 걸립니다 --- 일반적으로 며칠이 걸립니다. 이러한 계산 비용 (로컬 기계에서 LLM을 실행할 때)을 반복하거나 비용이 많이 드는 (GPT3.5 또는 Tigerbot과 같은 상업용 API를 호출 할 때) 프로세스를 반복하지 않기 위해 실험에서 수집 된 LLM과 함께 모든 대화식 로그를 공개했습니다. .
예를 들어 LLAMA2 모델과 같은 오프라인 데이터 세트를 재현하려면 DIR에서 작업해야합니다.
[email protected]:facebookresearch/llama.git
Prompt-OIRL/llama_exps/llama_step1_gen_offline.py llama 폴더로 이동하십시오
그 다음에
torchrun --nproc_per_node 1 llama_step1_gen_offline.py
--ckpt_dir llama-2-7b-chat/
--tokenizer_path tokenizer.model
--max_seq_len 512 --max_batch_size 8 --prompt_idx 0 --dataset_eval gsm8k
이 단계는 완료하는 데 몇 초가 걸리며 일부 파일 이름 변경 및 교육 테스트 분할을 수행하고 해당 파일을 새 폴더로 저장합니다 LMllama2
python3 llama_step2_reorg_data.py
이 단계는 완료하는 데 몇 초가 걸리며, .npy 형식 파일로 다양한 실험 설정 (예 : 교육 프롬프트의 다양한 가용성)에 대한 데이터를 처리하고 매장 내장 및 레이블을 처리합니다.
python3 llama_step3_data_processing.py
이 단계는 선택한 알고리즘과 프로세서에 따라 완료하는 데 몇 분에서 몇 시간이 걸립니다. 일반적으로 XGBoost 보상 모델을 훈련시키는 데 시간이 조금 더 걸리며 LightGBM 보상 모델을 사용하는 것이 더 빠를 수 있습니다.
python3 llama_step4_offline_evaluation.py
이 단계는 완료하는 데 몇 분이 걸립니다. LLM과 상호 작용하여 알고리즘을 평가하는 것도 옵션이 될 수 있지만 느릴 수 있습니다. 다른 설정의 결과는 모두 .csv 파일에 저장됩니다.
python3 llama_step5_offline_optimization.py
Prompt-Oirl은 RLAIF 접근법을 사용하여 LLM의 프롬프트 문제를 해결합니다. RLHF 및 RLAIF에도 관심이있는 독자와 RL과 LLM 연구 간의 교차점에서 LLM 연구에서 RL에 대해 논의하는 관련 위치 논문을 언급 할 것입니다. 필요한 것은 무엇입니까? RLHF, 프롬프트 및 그 너머.
코드 나 종이를 인용하려면 사용하십시오.
@inproceedings{sun2023query,
title={Query-Dependent Prompt Evaluation and Optimization with Offline Inverse RL},
author={Sun, Hao and H{"u}y{"u}k, Alihan and van der Schaar, Mihaela},
booktitle={The Twelfth International Conference on Learning Representations},
year={2024}
}
@article{sun2023reinforcement,
title={Reinforcement Learning in the Era of LLMs: What is Essential? What is needed? An RL Perspective on RLHF, Prompting, and Beyond},
author={Sun, Hao},
journal={arXiv preprint arXiv:2310.06147},
year={2023}
}