Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
.git
.github
.ai
.agents
.claude
__pycache__
*.pyc
*.pyo
*.pyd
.Python
env
build
develop-eggs
dist
downloads
eggs
.eggs
lib
lib64
parts
sdist
var
wheels
*.egg-info
.installed.cfg
*.egg
MANIFEST
.mypy_cache
.pytest_cache
.tox
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis
.idea
.vscode
*.swp
*.swo
*~
docs
notebooks
tests
examples
benchmark
benchmark_v2
utils
i18n
scripts
docker
*.md
!README.md
CITATION.cff
CODE_OF_CONDUCT.md
CONTRIBUTING.md
ISSUES.md
LICENSE
SECURITY.md
Makefile
conftest.py
doctest_list.txt
56 changes: 56 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
FROM python:3.10-slim

LABEL maintainer="Hugging Face Team"
LABEL description="Docker image for Hugging Face Transformers - Initial Runtime Environment"
LABEL repository="https://github.com/huggingface/transformers"

ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1
ENV PYTHONPATH=/app/src
ENV UV_PYTHON=/usr/local/bin/python
ENV HF_HOME=/app/.cache/huggingface
ENV HF_HUB_OFFLINE=0

WORKDIR /app

RUN apt-get update && apt-get install -y --no-install-recommends \
git \
make \
build-essential \
curl \
ca-certificates \
pkg-config \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

RUN pip install --no-cache-dir -U pip setuptools wheel uv

COPY setup.py README.md ./

RUN uv pip install --no-cache-dir --system \
"torch>=2.4" \
"huggingface-hub>=1.5.0,<2.0" \
"numpy>=1.17" \
"packaging>=20.0" \
"pyyaml>=5.1" \
"regex>=2025.10.22" \
"tokenizers>=0.22.0,<=0.23.0" \
"safetensors>=0.4.3" \
"tqdm>=4.27" \
"typer" \
"accelerate>=1.1.0"

COPY pyproject.toml ./
COPY src/ ./src/

RUN uv pip install --no-cache-dir --system .

RUN mkdir -p /app/.cache/huggingface \
&& chmod -R 777 /app/.cache

RUN python -c "import transformers; print(f'Transformers v{transformers.__version__} installed successfully!')"

EXPOSE 8000

CMD ["python", "-c", "import transformers; print(f'Welcome to Transformers v{transformers.__version__}!')"]

4 changes: 2 additions & 2 deletions examples/pytorch/text-classification/run_classification.py
Original file line number Diff line number Diff line change
Expand Up @@ -721,10 +721,10 @@ def compute_metrics(p: EvalPrediction):
writer.write(f"{index}\t{item:3.3f}\n")
elif is_multi_label:
# recover from multi-hot encoding
item = [label_list[i] for i in range(len(item)) if item[i] == 1]
item = [model.config.id2label[i] for i in range(len(item)) if item[i] == 1]
writer.write(f"{index}\t{item}\n")
else:
item = label_list[item]
item = model.config.id2label[item]
writer.write(f"{index}\t{item}\n")
logger.info(f"Predict results saved at {output_predict_file}")
kwargs = {"finetuned_from": model_args.model_name_or_path, "tasks": "text-classification"}
Expand Down
6 changes: 3 additions & 3 deletions examples/pytorch/text-classification/run_glue.py
Original file line number Diff line number Diff line change
Expand Up @@ -431,10 +431,10 @@ def main():

if label_to_id is not None:
model.config.label2id = label_to_id
model.config.id2label = {id: label for label, id in config.label2id.items()}
model.config.id2label = {id: label for label, id in model.config.label2id.items()}
elif data_args.task_name is not None and not is_regression:
model.config.label2id = {l: i for i, l in enumerate(label_list)}
model.config.id2label = {id: label for label, id in config.label2id.items()}
model.config.id2label = {id: label for label, id in model.config.label2id.items()}

if data_args.max_seq_length > tokenizer.model_max_length:
logger.warning(
Expand Down Expand Up @@ -619,7 +619,7 @@ def compute_metrics(p: EvalPrediction):
if is_regression:
writer.write(f"{index}\t{item:3.3f}\n")
else:
item = label_list[item]
item = model.config.id2label[item]
writer.write(f"{index}\t{item}\n")

kwargs = {"finetuned_from": model_args.model_name_or_path, "tasks": "text-classification"}
Expand Down
Loading
Loading