Spaces:
Sleeping
Sleeping
File size: 2,393 Bytes
a7bbba3 b19b1ca 48f468d a7bbba3 48f468d b19b1ca 48f468d a7bbba3 48f468d a7bbba3 b19b1ca df49cb6 b19b1ca 7037dd3 b19b1ca a7bbba3 b19b1ca a7bbba3 b19b1ca a7bbba3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# Python 3.9 Slim ์ด๋ฏธ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
FROM python:3.9-slim
# ํ์ ํจํค์ง ๋ฐ ๋น๋ ๋๊ตฌ ์ค์น
# apt-get update: ํจํค์ง ๋ชฉ๋ก ์
๋ฐ์ดํธ
# git: GitHub ์ ์ฅ์ ํด๋ก ์ ํ์
# build-essential: C/C++ ์ปดํ์ผ๋ฌ (gcc, g++ ๋ฑ) ๋ฐ ๊ธฐํ ๋น๋ ๋๊ตฌ ํฌํจ
# curl: Rust ์ค์น ์คํฌ๋ฆฝํธ ๋ค์ด๋ก๋์ฉ
# libffi-dev, libssl-dev: ์ผ๋ถ Python ํจํค์ง(์: cryptography) ๋น๋ ์ ํ์ํ ์ ์์
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
build-essential \
curl \
libffi-dev \
libssl-dev \
&& rm -rf /var/lib/apt/lists/* # apt ์บ์ ์ ๋ฆฌํ์ฌ ์ด๋ฏธ์ง ํฌ๊ธฐ ์ค์ด๊ธฐ
# Rust ์ปดํ์ผ๋ฌ ์ค์น (tokenizers ๋น๋์ฉ)
# rustup์ Rust ๋๊ตฌ ์ฒด์ธ ๊ด๋ฆฌ์ ๊ณต์์ ์ธ ๋ฐฉ๋ฒ์
๋๋ค.
# -y: ๋ชจ๋ ํ๋กฌํํธ์ 'yes'๋ก ์๋ ์๋ต
# --default-toolchain stable: ์์ ์ ์ธ ์ต์ ํด์ฒด์ธ ์ค์น
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain stable
# Rust์ ์คํ ํ์ผ ๊ฒฝ๋ก๋ฅผ PATH ํ๊ฒฝ ๋ณ์์ ์ถ๊ฐ
# rustup์ ๊ธฐ๋ณธ์ ์ผ๋ก /root/.cargo/bin์ ์ค์นํฉ๋๋ค.
ENV PATH="/root/.cargo/bin:${PATH}"
# ์์
๋๋ ํ ๋ฆฌ ์ค์
WORKDIR /app
# ์ ์ฒด ์ฝ๋ ๋ณต์ฌ (requirements.txt, main.py, .pkl ํ์ผ ๋ฑ)
COPY . .
# Python ํจํค์ง ์ค์น
# pip ์
๊ทธ๋ ์ด๋๋ฅผ ๋จผ์ ์ํํ์ฌ ์ต์ pip์ด wheel ํ์ผ์ ์ ์ฐพ๋๋ก ํฉ๋๋ค.
RUN pip install --no-cache-dir --upgrade pip
# ๋๋จธ์ง ํจํค์ง ์ค์น
# --no-cache-dir: ์บ์๋ฅผ ์ฌ์ฉํ์ง ์์ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ค์
๋๋ค.
RUN pip install --no-cache-dir \
fastapi \
uvicorn \
torch==1.13.1 \
transformers==3.0.2 \
tokenizers==0.8.1rc1 \
sentencepiece \
numpy==1.23.1 \
protobuf==3.20.3 \
psutil \
gluonnlp==0.10.0 \
mxnet-mkl==1.6.0
# kobert_tokenizer๋ Git ์ ์ฅ์์์ ์ค์นํ๋ฏ๋ก ๋ณ๋ ๋ช
๋ น์ผ๋ก ๋ถ๋ฆฌํฉ๋๋ค.
RUN pip install --no-cache-dir git+https://github.com/SKTBrain/KOBERT#egg=kobert_tokenizer\&subdirectory=kobert_tokenizer
# FastAPI ์ ํ๋ฆฌ์ผ์ด์
์คํ
# --host 0.0.0.0: ๋ชจ๋ ๋คํธ์ํฌ ์ธํฐํ์ด์ค์์ ์ ๊ทผ ํ์ฉ
# --port 7860: ์ ํ๋ฆฌ์ผ์ด์
์ด ์์ ํ ํฌํธ (Render๋ $PORT ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ง๋ง, Dockerfile์์๋ ๊ณ ์ ํฌํธ ์ค์ )
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860"] |