diff --git a/Dockerfile b/Dockerfile index 6e5454d..16b56ed 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM nvidia/cuda:12.2.0-base-ubuntu22.04 +FROM nvidia/cuda:12.9.1-base-ubuntu24.04 COPY . /app @@ -26,9 +26,11 @@ RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh - # --login option used to source bashrc (thus activating conda env) at every RUN statement SHELL ["/bin/bash", "--login", "-c"] -RUN conda create --name tortoise python=3.9 numba inflect -y \ +RUN conda tos accept \ + && conda create --name tortoise python=3.13.5 numba inflect -y \ && conda activate tortoise \ - && conda install --yes pytorch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 pytorch-cuda=12.1 -c pytorch -c nvidia \ - && conda install --yes transformers=4.31.0 \ + && conda install --yes conda-forge::pytorch==2.7.1 conda-forge::torchaudio=2.7.1 pytorch-cuda -c pytorch -c nvidia \ + && conda install --yes conda-forge::torchvision=0.22.0 \ + && conda install --yes conda-forge::transformers=4.53.3 \ && cd /app \ && python setup.py install diff --git a/requirements.txt b/requirements.txt index fd8d538..ca18b73 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,12 +1,12 @@ tqdm rotary_embedding_torch -transformers==4.31.0 +transformers==4.53.3 tokenizers inflect progressbar einops==0.4.1 unidecode -scipy +scipy=1.16.1 librosa==0.9.1 ffmpeg numpy diff --git a/setup.py b/setup.py index 807670a..0801bc7 100644 --- a/setup.py +++ b/setup.py @@ -27,9 +27,9 @@ setuptools.setup( 'unidecode', 'scipy', 'librosa', - 'transformers==4.31.0', - 'tokenizers==0.14.0', - 'scipy==1.13.1' + 'transformers==4.53.3', + 'tokenizers', + 'scipy==1.16.1' # 'deepspeed==0.8.3', ], classifiers=[ @@ -37,5 +37,5 @@ setuptools.setup( "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", ], - python_requires=">=3.6", + python_requires=">=3.13", ) diff --git a/tortoise/models/autoregressive.py b/tortoise/models/autoregressive.py index fcd1a94..8a6a093 100644 --- a/tortoise/models/autoregressive.py +++ b/tortoise/models/autoregressive.py @@ -3,7 +3,7 @@ import functools import torch import torch.nn as nn import torch.nn.functional as F -from transformers import GPT2Config, GPT2PreTrainedModel, LogitsProcessorList +from transformers import GPT2Config, GPT2PreTrainedModel, LogitsProcessorList, GenerationMixin from transformers.modeling_outputs import CausalLMOutputWithCrossAttentions from transformers.utils.model_parallel_utils import get_device_map, assert_device_map from tortoise.models.arch_util import AttentionBlock @@ -32,7 +32,7 @@ class ResBlock(nn.Module): return F.relu(self.net(x) + x) -class GPT2InferenceModel(GPT2PreTrainedModel): +class GPT2InferenceModel(GPT2PreTrainedModel, GenerationMixin): def __init__(self, config, gpt, text_pos_emb, embeddings, norm, linear, kv_cache=False): super().__init__(config) self.transformer = gpt diff --git a/tortoise/utils/typical_sampling.py b/tortoise/utils/typical_sampling.py index ff6bf48..90b5065 100644 --- a/tortoise/utils/typical_sampling.py +++ b/tortoise/utils/typical_sampling.py @@ -1,8 +1,8 @@ import torch -from transformers import LogitsWarper +from transformers import LogitsProcessor -class TypicalLogitsWarper(LogitsWarper): +class TypicalLogitsWarper(LogitsProcessor): def __init__(self, mass: float = 0.9, filter_value: float = -float("Inf"), min_tokens_to_keep: int = 1): self.filter_value = filter_value self.mass = mass