🐈‍⬛

dots.ocrの簡単起動docker-compose.yml

に公開

このOSSのocrを試そうと思ったら、
意外に詰まって時間取られたので簡単スクリプトにしておきました

ほぼこの記事を参考にさせていただきました
https://zenn.dev/kun432/scraps/b91fce6fbeb30c

Dockerfile

FROM rednotehilab/dots.ocr:vllm-openai-v0.9.1 as base
RUN git clone https://github.com/rednote-hilab/dots.ocr.git && cd dots.ocr && pip install -e .

FROM base as gradio
WORKDIR /vllm-workspace/dots.ocr
RUN sed -i 's/127\.0\.0\.1/vllm/g' demo/demo_gradio.py
ENTRYPOINT python3 demo/demo_gradio.py 7860

FROM base as vllm
RUN cd dots.ocr && python3 tools/download_model.py
ENV HF_MODEL_PATH="/vllm-workspace/dots.ocr/weights/DotsOCR"
ENV PYTHONPATH="/vllm-workspace/dots.ocr/weights"
RUN sed -i '/^from vllm\.entrypoints\.cli\.main import main$/a\
from DotsOCR import modeling_dots_ocr_vllm' `which vllm`
ENTRYPOINT vllm serve ${HF_MODEL_PATH} --host 0.0.0.0 --tensor-parallel-size 1 --gpu-memory-utilization 0.95  --chat-template-content-format string --served-model-name model --trust-remote-code

docker-compose.yml

services:
  vllm:
    build:
      context: .
      dockerfile: Dockerfile
      target: vllm
    ports:
      - "8000:8000"
    restart: unless-stopped
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]
  gradio:
    build:
      context: .
      dockerfile: Dockerfile
      target: gradio
    ports:
      - "7860:7860"
    restart: unless-stopped

Discussion