lmms-eval
프로그램을 포크하여, DocVision 모델을 추가한 레포지토리입니다.
모델 평가를 수행하기 위해서는 다음 설명에 따라 설정을 진행합니다.
아래와 같이 lmms-eval 사용을 위한 Conda 환경을 생성합니다.
이 때, MoRA adapter 사용을 위해 mora
패키지를 추가로 설치합니다.
(base) hancheol@upstage-node-001:~/projects $
# lmms-eval 환경 생성
conda create -n lmms-eval python=3.11
conda activate lmms-eval
# DocVision용 lmms-eval 설치
git clone git@github.com:UpstageAI/lmms-eval.git
cd lmms-eval
pip install -e .
# 추가 필수 라이프러리 설치
pip install -r requirements.txt
학습된 DocVision 모델을 준비합니다.
그리고 아래와 같이 scripts/run_eval.sh
파일을 실행하여 평가를 수행합니다.
--model_path
와 --tasks
는 필수 인자입니다.
lmms-eval이 지원하는 모든 태스크는 current_tasks.md에서 확인 가능합니다.
(lmms-eval) hancheol@upstage-node-001:~/projects/lmms-eval $
scripts/run_eval.sh \
--model_path /app/docfm/checkpoints/training/DocVision/SFT-SyntheticData/20250208_solar-exp-2_with-figureqa_900kX3_multipage-base-model/steps_5240 \
--tasks docvqa \
--gpu_ids 0,1,2,3 \
--port 35001
-
pdf2image
파이썬 라이브러리 사용을 위해poppler-utils
설치가 필요합니다.apt-get install poppler-utils
-
Dataset 전처리 (KIE-bench -> KIE-bench huggingface version)
- 주의: 이를 통해 생성된 KIE-bench huggingface version에는 일부 정보가 실제 Upstage huggingface uploaded version과 다를 수 있습니다. (다른 부분은 코드 참고) 하지만 사용되지 않는 부분이기에 최신 버전의 KIE bench를 빠르게 적용하기 위해 전처리 코드를 작성하였습니다. 최신 버전의 KIE-bench가 huggingface에 업로드 되어 있는 경우, 해당 데이터를 다운로드 받아 사용하시기 바랍니다.
# 1. 아래 경로의 코드 내 base_path 변수 수정 # 2. 아래 코드 실행 python preprocessor/KIE_bench_to_HF_dataset.py
-
VLM_LLM_IE 모델 실행
VLM_LLM_IE
는 table caption 평가를 위해 657B VLM inference -> LLM inference 형태의 두번의 인퍼런스를 통해 information extraction을 수행하는 모듈입니다.vllm
API inference 형식으로 구현하였습니다.- 실행 방법
UpstageAI/docev-data-engine
repo를 참고하여 필요한 모델의 vllm server를 실행합니다.- 아래 예시 코드를 변형하여 실행합니다. vllm server 실행시 사용한 configuration과 동일해야합니다.
bash scripts/run_eval_VLM_LLM_IE.sh \ --vlm_model_name "Qwen/Qwen2.5-VL-32B-Instruct" \ --llm_model_name "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B" \ --vlm_port 8002 \ --llm_port 8005 \ --vlm_host "192.168.1.5" \ --llm_host "192.168.1.5" \ --vlm_max_tokens 32768 \ --llm_max_tokens 32768 \ --port 35000