From 9b97a0b08cfed8ba3020c6b326656ea232001028 Mon Sep 17 00:00:00 2001 From: Alvaro Bartolome <36760800+alvarobartt@users.noreply.github.com> Date: Fri, 9 Aug 2024 09:56:46 +0200 Subject: [PATCH 1/8] Bump `transformers`, `peft`, and `diffusers` dependencies --- setup.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/setup.py b/setup.py index 7068f7a6..711c2836 100644 --- a/setup.py +++ b/setup.py @@ -5,16 +5,16 @@ # We don't declare our dependency on transformers here because we build with # different packages for different variants -VERSION = "0.4.1.dev0" +VERSION = "0.4.2" # Ubuntu packages # libsndfile1-dev: torchaudio requires the development version of the libsndfile package which can be installed via a system package manager. On Ubuntu it can be installed as follows: apt install libsndfile1-dev # ffmpeg: ffmpeg is required for audio processing. On Ubuntu it can be installed as follows: apt install ffmpeg -# libavcodec-extra : libavcodec-extra inculdes additional codecs for ffmpeg +# libavcodec-extra : libavcodec-extra includes additional codecs for ffmpeg install_requires = [ - "transformers[sklearn,sentencepiece,audio,vision]==4.41.1", - "orjson", + "transformers[sklearn,sentencepiece,audio,vision]==4.44.0", + "peft==0.12.0", # vision "Pillow", "librosa", @@ -26,13 +26,13 @@ "starlette", "uvicorn", "pandas", - "peft==0.11.1", + "orjson", ] extras = {} extras["st"] = ["sentence_transformers==2.7.0"] -extras["diffusers"] = ["diffusers==0.26.3", "accelerate==0.27.2"] +extras["diffusers"] = ["diffusers==0.30.0", "accelerate==0.33.0"] extras["torch"] = ["torch==2.2.2", "torchvision", "torchaudio"] extras["test"] = [ "pytest==7.2.1", From 1ff97dfd0aecbe53c97b32193a055bebce5ff8c5 Mon Sep 17 00:00:00 2001 From: Alvaro Bartolome <36760800+alvarobartt@users.noreply.github.com> Date: Fri, 9 Aug 2024 10:21:30 +0200 Subject: [PATCH 2/8] Add `sentencepiece` extra within `transformers` dependency --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 711c2836..09a34c70 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ # libavcodec-extra : libavcodec-extra includes additional codecs for ffmpeg install_requires = [ - "transformers[sklearn,sentencepiece,audio,vision]==4.44.0", + "transformers[sklearn,sentencepiece,audio,vision,sentencepiece]==4.44.0", "peft==0.12.0", # vision "Pillow", From edf63e691d4d0144ed98c8450df53fa515166820 Mon Sep 17 00:00:00 2001 From: Alvaro Bartolome <36760800+alvarobartt@users.noreply.github.com> Date: Fri, 9 Aug 2024 10:29:05 +0200 Subject: [PATCH 3/8] Remove `huggingface_inference_toolkit.const.HF_TRUST_REMOTE_CODE` unused import --- src/huggingface_inference_toolkit/utils.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/huggingface_inference_toolkit/utils.py b/src/huggingface_inference_toolkit/utils.py index 89261d71..a0519d92 100644 --- a/src/huggingface_inference_toolkit/utils.py +++ b/src/huggingface_inference_toolkit/utils.py @@ -8,11 +8,7 @@ from transformers.file_utils import is_tf_available, is_torch_available from transformers.pipelines import Pipeline -from huggingface_inference_toolkit.const import ( - HF_DEFAULT_PIPELINE_NAME, - HF_MODULE_NAME, - HF_TRUST_REMOTE_CODE, -) +from huggingface_inference_toolkit.const import HF_DEFAULT_PIPELINE_NAME, HF_MODULE_NAME from huggingface_inference_toolkit.diffusers_utils import ( get_diffusers_pipeline, is_diffusers_available, From ff79cc5af8b558b4756d37d9e47b315bf7355ad8 Mon Sep 17 00:00:00 2001 From: Alvaro Bartolome <36760800+alvarobartt@users.noreply.github.com> Date: Fri, 9 Aug 2024 14:09:47 +0200 Subject: [PATCH 4/8] Set `device_map="balanced"` instead of `"auto"` As of https://github.com/huggingface/diffusers/blob/65e30907b5df1338ae65a20b78866c87e061c952/src/diffusers/pipelines/pipeline_utils.py#L95C26-L95C34 --- src/huggingface_inference_toolkit/diffusers_utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/huggingface_inference_toolkit/diffusers_utils.py b/src/huggingface_inference_toolkit/diffusers_utils.py index afe96676..24ce40a9 100644 --- a/src/huggingface_inference_toolkit/diffusers_utils.py +++ b/src/huggingface_inference_toolkit/diffusers_utils.py @@ -28,7 +28,7 @@ def __init__( dtype = torch.float32 if device == "cuda": dtype = torch.bfloat16 if is_torch_bf16_gpu_available() else torch.float16 - device_map = "auto" if device == "cuda" else None + device_map = "balanced" if device == "cuda" else None self.pipeline = AutoPipelineForText2Image.from_pretrained( model_dir, torch_dtype=dtype, device_map=device_map, **kwargs From e392fbf5ef51670999d8e7a078e7f1894c5d0599 Mon Sep 17 00:00:00 2001 From: Alvaro Bartolome <36760800+alvarobartt@users.noreply.github.com> Date: Fri, 9 Aug 2024 14:20:17 +0200 Subject: [PATCH 5/8] Update `author` within `setup.py` --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 09a34c70..e778a0b2 100644 --- a/setup.py +++ b/setup.py @@ -53,7 +53,7 @@ setup( name="huggingface-inference-toolkit", version=VERSION, - author="HuggingFace", + author="Hugging Face", description="Hugging Face Inference Toolkit is for serving 🤗 Transformers models in containers.", url="", package_dir={"": "src"}, From 7a70f027856553b8dd8cb81d9406de8b46825dd1 Mon Sep 17 00:00:00 2001 From: Alvaro Bartolome <36760800+alvarobartt@users.noreply.github.com> Date: Fri, 9 Aug 2024 14:20:31 +0200 Subject: [PATCH 6/8] Add `huggingface_hub` with `hf_transfer` extra as dependency --- setup.py | 1 + 1 file changed, 1 insertion(+) diff --git a/setup.py b/setup.py index e778a0b2..c6537d5b 100644 --- a/setup.py +++ b/setup.py @@ -14,6 +14,7 @@ install_requires = [ "transformers[sklearn,sentencepiece,audio,vision,sentencepiece]==4.44.0", + "huggingface_hub[hf_transfer]==0.24.5", "peft==0.12.0", # vision "Pillow", From aee90eee56c8594fed4c6739cd7535e8092695de Mon Sep 17 00:00:00 2001 From: Alvaro Bartolome <36760800+alvarobartt@users.noreply.github.com> Date: Fri, 9 Aug 2024 16:07:14 +0200 Subject: [PATCH 7/8] Skip `kwargs["tokenizer"]` assignment for `text-to-image` --- src/huggingface_inference_toolkit/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/huggingface_inference_toolkit/utils.py b/src/huggingface_inference_toolkit/utils.py index a0519d92..a5ff7aee 100644 --- a/src/huggingface_inference_toolkit/utils.py +++ b/src/huggingface_inference_toolkit/utils.py @@ -236,7 +236,7 @@ def get_pipeline( "zero-shot-image-classification", }: kwargs["feature_extractor"] = model_dir - elif task in {"image-to-text"}: + elif task in {"image-to-text", "text-to-image"}: pass elif task == "conversational": task = "text-generation" From 3285be1bb28263f4a25fcb79b3842c5b6d87babc Mon Sep 17 00:00:00 2001 From: Alvaro Bartolome <36760800+alvarobartt@users.noreply.github.com> Date: Fri, 9 Aug 2024 17:02:42 +0200 Subject: [PATCH 8/8] Skip `pipeline.to(device)` as not required It's not required and not compatible with `device_map="balanced"` --- src/huggingface_inference_toolkit/diffusers_utils.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/huggingface_inference_toolkit/diffusers_utils.py b/src/huggingface_inference_toolkit/diffusers_utils.py index 24ce40a9..54fad5ad 100644 --- a/src/huggingface_inference_toolkit/diffusers_utils.py +++ b/src/huggingface_inference_toolkit/diffusers_utils.py @@ -42,8 +42,6 @@ def __init__( except Exception: pass - self.pipeline.to(device) - def __call__( self, prompt,