From f7594009f5094825505b8ffa2d4b8fbaaba28dd0 Mon Sep 17 00:00:00 2001 From: Egor Timofeev Date: Wed, 21 May 2025 11:11:07 +0200 Subject: [PATCH 1/6] Add validation for lora_dropout --- src/together/resources/finetune.py | 4 ++++ tests/unit/test_finetune_resources.py | 26 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/together/resources/finetune.py b/src/together/resources/finetune.py index 0bc47c0d..5bd5d045 100644 --- a/src/together/resources/finetune.py +++ b/src/together/resources/finetune.py @@ -101,6 +101,10 @@ def create_finetune_request( raise ValueError( f"LoRA adapters are not supported for the selected model ({model_or_checkpoint})." ) + + if not 0 <= lora_dropout < 1.0: + raise ValueError("LoRA dropout must be in [0, 1) range.") + lora_r = lora_r if lora_r is not None else model_limits.lora_training.max_rank lora_alpha = lora_alpha if lora_alpha is not None else lora_r * 2 training_type = LoRATrainingType( diff --git a/tests/unit/test_finetune_resources.py b/tests/unit/test_finetune_resources.py index f354b2f9..5ddbe0ab 100644 --- a/tests/unit/test_finetune_resources.py +++ b/tests/unit/test_finetune_resources.py @@ -85,6 +85,32 @@ def test_lora_request(): assert request.batch_size == _MODEL_LIMITS.lora_training.max_batch_size +@pytest.mark.parametrize("lora_dropout", [-1, 0, 0.5, 1.0, 10.0]) +def test_lora_request_with_lora_dropout(lora_dropout: float): + + if 0 <= lora_dropout < 1: + request = create_finetune_request( + model_limits=_MODEL_LIMITS, + model=_MODEL_NAME, + training_file=_TRAINING_FILE, + lora=True, + lora_dropout=lora_dropout, + ) + assert request.training_type.lora_dropout == lora_dropout + else: + with pytest.raises( + ValueError, + match=r"LoRA dropout must be in \[0, 1\) range.", + ): + create_finetune_request( + model_limits=_MODEL_LIMITS, + model=_MODEL_NAME, + training_file=_TRAINING_FILE, + lora=True, + lora_dropout=lora_dropout, + ) + + def test_dpo_request_lora(): request = create_finetune_request( model_limits=_MODEL_LIMITS, From 2c83f44efce3d5675b5c1da00dfa80569840eb1f Mon Sep 17 00:00:00 2001 From: Egor Timofeev Date: Wed, 21 May 2025 11:16:04 +0200 Subject: [PATCH 2/6] Fix --- src/together/resources/finetune.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/together/resources/finetune.py b/src/together/resources/finetune.py index 5bd5d045..4e05a772 100644 --- a/src/together/resources/finetune.py +++ b/src/together/resources/finetune.py @@ -101,9 +101,10 @@ def create_finetune_request( raise ValueError( f"LoRA adapters are not supported for the selected model ({model_or_checkpoint})." ) - - if not 0 <= lora_dropout < 1.0: - raise ValueError("LoRA dropout must be in [0, 1) range.") + + if lora_dropout is not None: + if not 0 <= lora_dropout < 1.0: + raise ValueError("LoRA dropout must be in [0, 1) range.") lora_r = lora_r if lora_r is not None else model_limits.lora_training.max_rank lora_alpha = lora_alpha if lora_alpha is not None else lora_r * 2 From a4a97f1b39b4b2c42b6e183ba29184adef02506e Mon Sep 17 00:00:00 2001 From: Egor Timofeev Date: Wed, 21 May 2025 17:24:20 +0200 Subject: [PATCH 3/6] Fix eos --- tests/integration/resources/test_completion_stream.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/resources/test_completion_stream.py b/tests/integration/resources/test_completion_stream.py index 588cbe6d..efd1b218 100644 --- a/tests/integration/resources/test_completion_stream.py +++ b/tests/integration/resources/test_completion_stream.py @@ -36,7 +36,7 @@ def test_create( ) -> None: prompt = "The space robots have" model = "meta-llama/Llama-4-Scout-17B-16E-Instruct" - stop = [""] + stop = ["<|eot|>"] # max_tokens should be a reasonable number for this test assert 0 < random_max_tokens < 1024 From cae49ed8ca6093447c67b92d68eb0defe674f28f Mon Sep 17 00:00:00 2001 From: Egor Timofeev Date: Wed, 21 May 2025 17:50:29 +0200 Subject: [PATCH 4/6] Replace with llama3b --- tests/integration/resources/test_completion_stream.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/resources/test_completion_stream.py b/tests/integration/resources/test_completion_stream.py index efd1b218..4909125e 100644 --- a/tests/integration/resources/test_completion_stream.py +++ b/tests/integration/resources/test_completion_stream.py @@ -35,7 +35,7 @@ def test_create( random_repetition_penalty, # noqa ) -> None: prompt = "The space robots have" - model = "meta-llama/Llama-4-Scout-17B-16E-Instruct" + model = "meta-llama/Llama-3.2-3B-Instruct-Turbo" stop = ["<|eot|>"] # max_tokens should be a reasonable number for this test From 172622aea4a4e02cea1e67a9cd6e125ae5cd395f Mon Sep 17 00:00:00 2001 From: Egor Timofeev Date: Mon, 9 Jun 2025 12:25:06 +0200 Subject: [PATCH 5/6] Minimize the diff --- tests/integration/resources/test_completion_stream.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/integration/resources/test_completion_stream.py b/tests/integration/resources/test_completion_stream.py index 4909125e..588cbe6d 100644 --- a/tests/integration/resources/test_completion_stream.py +++ b/tests/integration/resources/test_completion_stream.py @@ -35,8 +35,8 @@ def test_create( random_repetition_penalty, # noqa ) -> None: prompt = "The space robots have" - model = "meta-llama/Llama-3.2-3B-Instruct-Turbo" - stop = ["<|eot|>"] + model = "meta-llama/Llama-4-Scout-17B-16E-Instruct" + stop = [""] # max_tokens should be a reasonable number for this test assert 0 < random_max_tokens < 1024 From 8ad7d1c507bd90c790e6701d7a65e59351a85383 Mon Sep 17 00:00:00 2001 From: Egor Timofeev Date: Mon, 9 Jun 2025 12:32:49 +0200 Subject: [PATCH 6/6] Version bump --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 4e7109c4..98b8964e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,7 @@ build-backend = "poetry.masonry.api" [tool.poetry] name = "together" -version = "1.5.10" +version = "1.5.11" authors = ["Together AI "] description = "Python client for Together's Cloud Platform!" readme = "README.md"