Factory-POC / Dockerfile
Do0rMaMu's picture
Update Dockerfile
6d22f9b verified
raw
history blame
1.68 kB
# Use an official Python runtime as a parent image
FROM python:3.9-slim
# Set the working directory in the container
WORKDIR /code
# Copy the requirements.txt file into the container at /code
COPY requirements.txt /code/requirements.txt
# Install any dependencies specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Apply the patch to remove flash-attn dependency and download the Florence-2-base-ft model and processor
RUN python -c "\
import os; \
from unittest.mock import patch; \
from transformers import AutoModelForCausalLM, AutoProcessor; \
from transformers.dynamic_module_utils import get_imports; \
def fixed_get_imports(filename: os.PathLike) -> list[str]: \
if not str(filename).endswith('/modeling_florence2.py'): \
return get_imports(filename); \
imports = get_imports(filename); \
if 'flash_attn' in imports: \
imports.remove('flash_attn'); \
return imports; \
with patch('transformers.dynamic_module_utils.get_imports', fixed_get_imports): \
model = AutoModelForCausalLM.from_pretrained('microsoft/Florence-2-base-ft', trust_remote_code=True); \
processor = AutoProcessor.from_pretrained('microsoft/Florence-2-base-ft', trust_remote_code=True); \
model.save_pretrained('/code/florence_model'); \
processor.save_pretrained('/code/florence_processor');"
# Copy the current directory contents into the container at /code
COPY . .
# Copy the numberPlate_model_2 folder to /code/numberPlate_model_2
COPY numberPlate_model_2 /code/numberPlate_model_2
# Command to run the FastAPI app using Uvicorn with live-reload
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860"]