together 1.5.35__py3-none-any.whl → 2.0.0a6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- together/__init__.py +101 -114
- together/_base_client.py +1995 -0
- together/_client.py +1033 -0
- together/_compat.py +219 -0
- together/_constants.py +14 -0
- together/_exceptions.py +108 -0
- together/_files.py +123 -0
- together/_models.py +857 -0
- together/_qs.py +150 -0
- together/_resource.py +43 -0
- together/_response.py +830 -0
- together/_streaming.py +370 -0
- together/_types.py +260 -0
- together/_utils/__init__.py +64 -0
- together/_utils/_compat.py +45 -0
- together/_utils/_datetime_parse.py +136 -0
- together/_utils/_logs.py +25 -0
- together/_utils/_proxy.py +65 -0
- together/_utils/_reflection.py +42 -0
- together/_utils/_resources_proxy.py +24 -0
- together/_utils/_streams.py +12 -0
- together/_utils/_sync.py +58 -0
- together/_utils/_transform.py +457 -0
- together/_utils/_typing.py +156 -0
- together/_utils/_utils.py +421 -0
- together/_version.py +4 -0
- together/lib/.keep +4 -0
- together/lib/__init__.py +23 -0
- together/{cli → lib/cli}/api/endpoints.py +66 -84
- together/{cli/api/evaluation.py → lib/cli/api/evals.py} +152 -43
- together/{cli → lib/cli}/api/files.py +20 -17
- together/{cli/api/finetune.py → lib/cli/api/fine_tuning.py} +116 -172
- together/{cli → lib/cli}/api/models.py +34 -27
- together/lib/cli/api/utils.py +50 -0
- together/{cli → lib/cli}/cli.py +16 -26
- together/{constants.py → lib/constants.py} +11 -24
- together/lib/resources/__init__.py +11 -0
- together/lib/resources/files.py +999 -0
- together/lib/resources/fine_tuning.py +280 -0
- together/lib/resources/models.py +35 -0
- together/lib/types/__init__.py +13 -0
- together/lib/types/error.py +9 -0
- together/lib/types/fine_tuning.py +397 -0
- together/{utils → lib/utils}/__init__.py +6 -14
- together/{utils → lib/utils}/_log.py +11 -16
- together/{utils → lib/utils}/files.py +90 -288
- together/lib/utils/serializer.py +10 -0
- together/{utils → lib/utils}/tools.py +19 -55
- together/resources/__init__.py +225 -39
- together/resources/audio/__init__.py +72 -48
- together/resources/audio/audio.py +198 -0
- together/resources/audio/speech.py +574 -128
- together/resources/audio/transcriptions.py +247 -261
- together/resources/audio/translations.py +221 -241
- together/resources/audio/voices.py +111 -41
- together/resources/batches.py +417 -0
- together/resources/chat/__init__.py +30 -21
- together/resources/chat/chat.py +102 -0
- together/resources/chat/completions.py +1063 -263
- together/resources/code_interpreter/__init__.py +33 -0
- together/resources/code_interpreter/code_interpreter.py +258 -0
- together/resources/code_interpreter/sessions.py +135 -0
- together/resources/completions.py +884 -225
- together/resources/embeddings.py +172 -68
- together/resources/endpoints.py +589 -490
- together/resources/evals.py +452 -0
- together/resources/files.py +397 -129
- together/resources/fine_tuning.py +1033 -0
- together/resources/hardware.py +181 -0
- together/resources/images.py +258 -104
- together/resources/jobs.py +214 -0
- together/resources/models.py +223 -193
- together/resources/rerank.py +190 -92
- together/resources/videos.py +286 -214
- together/types/__init__.py +66 -167
- together/types/audio/__init__.py +10 -0
- together/types/audio/speech_create_params.py +75 -0
- together/types/audio/transcription_create_params.py +54 -0
- together/types/audio/transcription_create_response.py +111 -0
- together/types/audio/translation_create_params.py +40 -0
- together/types/audio/translation_create_response.py +70 -0
- together/types/audio/voice_list_response.py +23 -0
- together/types/audio_speech_stream_chunk.py +16 -0
- together/types/autoscaling.py +13 -0
- together/types/autoscaling_param.py +15 -0
- together/types/batch_create_params.py +24 -0
- together/types/batch_create_response.py +14 -0
- together/types/batch_job.py +45 -0
- together/types/batch_list_response.py +10 -0
- together/types/chat/__init__.py +18 -0
- together/types/chat/chat_completion.py +60 -0
- together/types/chat/chat_completion_chunk.py +61 -0
- together/types/chat/chat_completion_structured_message_image_url_param.py +18 -0
- together/types/chat/chat_completion_structured_message_text_param.py +13 -0
- together/types/chat/chat_completion_structured_message_video_url_param.py +18 -0
- together/types/chat/chat_completion_usage.py +13 -0
- together/types/chat/chat_completion_warning.py +9 -0
- together/types/chat/completion_create_params.py +329 -0
- together/types/code_interpreter/__init__.py +5 -0
- together/types/code_interpreter/session_list_response.py +31 -0
- together/types/code_interpreter_execute_params.py +45 -0
- together/types/completion.py +42 -0
- together/types/completion_chunk.py +66 -0
- together/types/completion_create_params.py +138 -0
- together/types/dedicated_endpoint.py +44 -0
- together/types/embedding.py +24 -0
- together/types/embedding_create_params.py +31 -0
- together/types/endpoint_create_params.py +43 -0
- together/types/endpoint_list_avzones_response.py +11 -0
- together/types/endpoint_list_params.py +18 -0
- together/types/endpoint_list_response.py +41 -0
- together/types/endpoint_update_params.py +27 -0
- together/types/eval_create_params.py +263 -0
- together/types/eval_create_response.py +16 -0
- together/types/eval_list_params.py +21 -0
- together/types/eval_list_response.py +10 -0
- together/types/eval_status_response.py +100 -0
- together/types/evaluation_job.py +139 -0
- together/types/execute_response.py +108 -0
- together/types/file_delete_response.py +13 -0
- together/types/file_list.py +12 -0
- together/types/file_purpose.py +9 -0
- together/types/file_response.py +31 -0
- together/types/file_type.py +7 -0
- together/types/fine_tuning_cancel_response.py +194 -0
- together/types/fine_tuning_content_params.py +24 -0
- together/types/fine_tuning_delete_params.py +11 -0
- together/types/fine_tuning_delete_response.py +12 -0
- together/types/fine_tuning_list_checkpoints_response.py +21 -0
- together/types/fine_tuning_list_events_response.py +12 -0
- together/types/fine_tuning_list_response.py +199 -0
- together/types/finetune_event.py +41 -0
- together/types/finetune_event_type.py +33 -0
- together/types/finetune_response.py +177 -0
- together/types/hardware_list_params.py +16 -0
- together/types/hardware_list_response.py +58 -0
- together/types/image_data_b64.py +15 -0
- together/types/image_data_url.py +15 -0
- together/types/image_file.py +23 -0
- together/types/image_generate_params.py +85 -0
- together/types/job_list_response.py +47 -0
- together/types/job_retrieve_response.py +43 -0
- together/types/log_probs.py +18 -0
- together/types/model_list_response.py +10 -0
- together/types/model_object.py +42 -0
- together/types/model_upload_params.py +36 -0
- together/types/model_upload_response.py +23 -0
- together/types/rerank_create_params.py +36 -0
- together/types/rerank_create_response.py +36 -0
- together/types/tool_choice.py +23 -0
- together/types/tool_choice_param.py +23 -0
- together/types/tools_param.py +23 -0
- together/types/training_method_dpo.py +22 -0
- together/types/training_method_sft.py +18 -0
- together/types/video_create_params.py +86 -0
- together/types/video_create_response.py +10 -0
- together/types/video_job.py +57 -0
- together-2.0.0a6.dist-info/METADATA +729 -0
- together-2.0.0a6.dist-info/RECORD +165 -0
- {together-1.5.35.dist-info → together-2.0.0a6.dist-info}/WHEEL +1 -1
- together-2.0.0a6.dist-info/entry_points.txt +2 -0
- {together-1.5.35.dist-info → together-2.0.0a6.dist-info}/licenses/LICENSE +1 -1
- together/abstract/api_requestor.py +0 -770
- together/cli/api/chat.py +0 -298
- together/cli/api/completions.py +0 -119
- together/cli/api/images.py +0 -93
- together/cli/api/utils.py +0 -139
- together/client.py +0 -186
- together/error.py +0 -194
- together/filemanager.py +0 -635
- together/legacy/__init__.py +0 -0
- together/legacy/base.py +0 -27
- together/legacy/complete.py +0 -93
- together/legacy/embeddings.py +0 -27
- together/legacy/files.py +0 -146
- together/legacy/finetune.py +0 -177
- together/legacy/images.py +0 -27
- together/legacy/models.py +0 -44
- together/resources/batch.py +0 -165
- together/resources/code_interpreter.py +0 -82
- together/resources/evaluation.py +0 -808
- together/resources/finetune.py +0 -1388
- together/together_response.py +0 -50
- together/types/abstract.py +0 -26
- together/types/audio_speech.py +0 -311
- together/types/batch.py +0 -54
- together/types/chat_completions.py +0 -210
- together/types/code_interpreter.py +0 -57
- together/types/common.py +0 -67
- together/types/completions.py +0 -107
- together/types/embeddings.py +0 -35
- together/types/endpoints.py +0 -123
- together/types/error.py +0 -16
- together/types/evaluation.py +0 -93
- together/types/files.py +0 -93
- together/types/finetune.py +0 -465
- together/types/images.py +0 -42
- together/types/models.py +0 -96
- together/types/rerank.py +0 -43
- together/types/videos.py +0 -69
- together/utils/api_helpers.py +0 -124
- together/version.py +0 -6
- together-1.5.35.dist-info/METADATA +0 -583
- together-1.5.35.dist-info/RECORD +0 -77
- together-1.5.35.dist-info/entry_points.txt +0 -3
- /together/{abstract → lib/cli}/__init__.py +0 -0
- /together/{cli → lib/cli/api}/__init__.py +0 -0
- /together/{cli/api/__init__.py → py.typed} +0 -0
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import json as json_lib
|
|
2
|
+
from typing import Any, Dict, List, Literal, Optional
|
|
2
3
|
|
|
3
4
|
import click
|
|
4
5
|
from tabulate import tabulate
|
|
5
6
|
|
|
6
|
-
from together import Together
|
|
7
|
-
from together.
|
|
7
|
+
from together import Together, omit
|
|
8
|
+
from together._models import BaseModel
|
|
9
|
+
from together._response import APIResponse as APIResponse
|
|
10
|
+
from together.lib.resources.models import filter_by_dedicated_models
|
|
11
|
+
from together.types.model_upload_response import ModelUploadResponse
|
|
8
12
|
|
|
9
13
|
|
|
10
14
|
@click.group()
|
|
@@ -26,16 +30,19 @@ def models(ctx: click.Context) -> None:
|
|
|
26
30
|
help="Output in JSON format",
|
|
27
31
|
)
|
|
28
32
|
@click.pass_context
|
|
29
|
-
def list(ctx: click.Context, type: str
|
|
33
|
+
def list(ctx: click.Context, type: Optional[str], json: bool) -> None:
|
|
30
34
|
"""List models"""
|
|
31
35
|
client: Together = ctx.obj
|
|
32
36
|
|
|
33
|
-
response = client.models.list(
|
|
37
|
+
response = client.models.list()
|
|
38
|
+
models_list = response
|
|
34
39
|
|
|
35
|
-
|
|
40
|
+
if type == "dedicated":
|
|
41
|
+
models_list = filter_by_dedicated_models(client, models_list)
|
|
36
42
|
|
|
37
|
-
|
|
38
|
-
|
|
43
|
+
display_list: List[Dict[str, Any]] = []
|
|
44
|
+
model: BaseModel
|
|
45
|
+
for model in models_list:
|
|
39
46
|
display_list.append(
|
|
40
47
|
{
|
|
41
48
|
"ID": model.id,
|
|
@@ -44,8 +51,8 @@ def list(ctx: click.Context, type: str | None, json: bool) -> None:
|
|
|
44
51
|
"Type": model.type,
|
|
45
52
|
"Context Length": model.context_length,
|
|
46
53
|
"License": model.license,
|
|
47
|
-
"Input per 1M token": model.pricing.input,
|
|
48
|
-
"Output per 1M token": model.pricing.output,
|
|
54
|
+
"Input per 1M token": model.pricing.input if model.pricing else None,
|
|
55
|
+
"Output per 1M token": model.pricing.output if model.pricing else None,
|
|
49
56
|
}
|
|
50
57
|
)
|
|
51
58
|
|
|
@@ -98,12 +105,12 @@ def upload(
|
|
|
98
105
|
ctx: click.Context,
|
|
99
106
|
model_name: str,
|
|
100
107
|
model_source: str,
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
lora_model: str | None,
|
|
108
|
+
hf_token: Optional[str],
|
|
109
|
+
description: Optional[str],
|
|
110
|
+
base_model: Optional[str],
|
|
111
|
+
lora_model: Optional[str],
|
|
106
112
|
json: bool,
|
|
113
|
+
model_type: Optional[Literal["model", "adapter"]] = "model",
|
|
107
114
|
) -> None:
|
|
108
115
|
"""Upload a custom model or adapter from Hugging Face or S3"""
|
|
109
116
|
client: Together = ctx.obj
|
|
@@ -111,23 +118,23 @@ def upload(
|
|
|
111
118
|
response: ModelUploadResponse = client.models.upload(
|
|
112
119
|
model_name=model_name,
|
|
113
120
|
model_source=model_source,
|
|
114
|
-
model_type=model_type,
|
|
115
|
-
hf_token=hf_token,
|
|
116
|
-
description=description,
|
|
117
|
-
base_model=base_model,
|
|
118
|
-
lora_model=lora_model,
|
|
121
|
+
model_type=model_type or omit,
|
|
122
|
+
hf_token=hf_token or omit,
|
|
123
|
+
description=description or omit,
|
|
124
|
+
base_model=base_model or omit,
|
|
125
|
+
lora_model=lora_model or omit,
|
|
119
126
|
)
|
|
120
127
|
|
|
121
128
|
if json:
|
|
122
129
|
click.echo(json_lib.dumps(response.model_dump(), indent=2))
|
|
123
130
|
else:
|
|
124
131
|
click.echo(f"Model upload job created successfully!")
|
|
125
|
-
if response.job_id:
|
|
126
|
-
click.echo(f"Job ID: {response.job_id}")
|
|
127
|
-
if response.
|
|
128
|
-
click.echo(f"Model Name: {response.
|
|
129
|
-
if response.
|
|
130
|
-
click.echo(f"Model ID: {response.
|
|
131
|
-
if response.
|
|
132
|
-
click.echo(f"Model Source: {response.
|
|
132
|
+
if response.data.job_id:
|
|
133
|
+
click.echo(f"Job ID: {response.data.job_id}")
|
|
134
|
+
if response.data.x_model_name:
|
|
135
|
+
click.echo(f"Model Name: {response.data.x_model_name}")
|
|
136
|
+
if response.data.x_model_id:
|
|
137
|
+
click.echo(f"Model ID: {response.data.x_model_id}")
|
|
138
|
+
if response.data.x_model_source:
|
|
139
|
+
click.echo(f"Model Source: {response.data.x_model_source}")
|
|
133
140
|
click.echo(f"Message: {response.message}")
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Literal
|
|
4
|
+
from gettext import gettext as _
|
|
5
|
+
from typing_extensions import override
|
|
6
|
+
|
|
7
|
+
import click
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
class AutoIntParamType(click.ParamType):
|
|
11
|
+
name = "integer_or_max"
|
|
12
|
+
_number_class = int
|
|
13
|
+
|
|
14
|
+
@override
|
|
15
|
+
def convert(
|
|
16
|
+
self, value: str, param: click.Parameter | None, ctx: click.Context | None
|
|
17
|
+
) -> int | Literal["max"] | None:
|
|
18
|
+
if value == "max":
|
|
19
|
+
return "max"
|
|
20
|
+
try:
|
|
21
|
+
return int(value)
|
|
22
|
+
except ValueError:
|
|
23
|
+
self.fail(
|
|
24
|
+
_("{value!r} is not a valid {number_type}.").format(value=value, number_type=self.name),
|
|
25
|
+
param,
|
|
26
|
+
ctx,
|
|
27
|
+
)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class BooleanWithAutoParamType(click.ParamType):
|
|
31
|
+
name = "boolean_or_auto"
|
|
32
|
+
|
|
33
|
+
@override
|
|
34
|
+
def convert(
|
|
35
|
+
self, value: str, param: click.Parameter | None, ctx: click.Context | None
|
|
36
|
+
) -> bool | Literal["auto"] | None:
|
|
37
|
+
if value == "auto":
|
|
38
|
+
return "auto"
|
|
39
|
+
try:
|
|
40
|
+
return bool(value)
|
|
41
|
+
except ValueError:
|
|
42
|
+
self.fail(
|
|
43
|
+
_("{value!r} is not a valid {type}.").format(value=value, type=self.name),
|
|
44
|
+
param,
|
|
45
|
+
ctx,
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
INT_WITH_MAX = AutoIntParamType()
|
|
50
|
+
BOOL_WITH_AUTO = BooleanWithAutoParamType()
|
together/{cli → lib/cli}/cli.py
RENAMED
|
@@ -6,21 +6,19 @@ from typing import Any
|
|
|
6
6
|
import click
|
|
7
7
|
|
|
8
8
|
import together
|
|
9
|
-
from together.
|
|
10
|
-
from together.
|
|
11
|
-
from together.cli.api.
|
|
12
|
-
from together.cli.api.
|
|
13
|
-
from together.cli.api.
|
|
14
|
-
from together.cli.api.
|
|
15
|
-
from together.cli.api.
|
|
16
|
-
from together.cli.api.models import models
|
|
17
|
-
from together.constants import MAX_RETRIES, TIMEOUT_SECS
|
|
9
|
+
from together._version import __version__
|
|
10
|
+
from together._constants import DEFAULT_TIMEOUT
|
|
11
|
+
from together.lib.cli.api.evals import evals
|
|
12
|
+
from together.lib.cli.api.files import files
|
|
13
|
+
from together.lib.cli.api.models import models
|
|
14
|
+
from together.lib.cli.api.endpoints import endpoints
|
|
15
|
+
from together.lib.cli.api.fine_tuning import fine_tuning
|
|
18
16
|
|
|
19
17
|
|
|
20
|
-
def print_version(ctx: click.Context,
|
|
18
|
+
def print_version(ctx: click.Context, _params: Any, value: Any) -> None:
|
|
21
19
|
if not value or ctx.resilient_parsing:
|
|
22
20
|
return
|
|
23
|
-
click.echo(f"Version {
|
|
21
|
+
click.echo(f"Version {__version__}")
|
|
24
22
|
ctx.exit()
|
|
25
23
|
|
|
26
24
|
|
|
@@ -32,16 +30,12 @@ def print_version(ctx: click.Context, params: Any, value: Any) -> None:
|
|
|
32
30
|
help="API Key. Defaults to environment variable `TOGETHER_API_KEY`",
|
|
33
31
|
default=os.getenv("TOGETHER_API_KEY"),
|
|
34
32
|
)
|
|
35
|
-
@click.option(
|
|
36
|
-
|
|
37
|
-
)
|
|
38
|
-
@click.option(
|
|
39
|
-
"--timeout", type=int, help=f"Request timeout. Defaults to {TIMEOUT_SECS} seconds"
|
|
40
|
-
)
|
|
33
|
+
@click.option("--base-url", type=str, help="API Base URL. Defaults to Together AI endpoint.")
|
|
34
|
+
@click.option("--timeout", type=int, help=f"Request timeout. Defaults to {DEFAULT_TIMEOUT} seconds")
|
|
41
35
|
@click.option(
|
|
42
36
|
"--max-retries",
|
|
43
37
|
type=int,
|
|
44
|
-
help=f"Maximum number of HTTP retries.
|
|
38
|
+
help=f"Maximum number of HTTP retries.",
|
|
45
39
|
)
|
|
46
40
|
@click.option(
|
|
47
41
|
"--version",
|
|
@@ -57,25 +51,21 @@ def main(
|
|
|
57
51
|
api_key: str | None,
|
|
58
52
|
base_url: str | None,
|
|
59
53
|
timeout: int | None,
|
|
60
|
-
max_retries: int | None,
|
|
61
54
|
debug: bool | None,
|
|
55
|
+
max_retries: int | None,
|
|
62
56
|
) -> None:
|
|
63
57
|
"""This is a sample CLI tool."""
|
|
64
|
-
|
|
58
|
+
os.environ.setdefault("TOGETHER_LOG", "debug" if debug else "info")
|
|
65
59
|
ctx.obj = together.Together(
|
|
66
|
-
api_key=api_key, base_url=base_url, timeout=timeout, max_retries=max_retries
|
|
60
|
+
api_key=api_key, base_url=base_url, timeout=timeout, max_retries=max_retries if max_retries is not None else 0
|
|
67
61
|
)
|
|
68
62
|
|
|
69
63
|
|
|
70
|
-
main.add_command(chat)
|
|
71
|
-
main.add_command(interactive)
|
|
72
|
-
main.add_command(completions)
|
|
73
|
-
main.add_command(images)
|
|
74
64
|
main.add_command(files)
|
|
75
65
|
main.add_command(fine_tuning)
|
|
76
66
|
main.add_command(models)
|
|
77
67
|
main.add_command(endpoints)
|
|
78
|
-
main.add_command(
|
|
68
|
+
main.add_command(evals)
|
|
79
69
|
|
|
80
70
|
if __name__ == "__main__":
|
|
81
71
|
main()
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import enum
|
|
2
2
|
|
|
3
|
-
|
|
4
3
|
# Session constants
|
|
5
|
-
TIMEOUT_SECS = 600
|
|
6
|
-
MAX_SESSION_LIFETIME_SECS = 180
|
|
7
|
-
MAX_CONNECTION_RETRIES = 2
|
|
8
|
-
MAX_RETRIES = 5
|
|
9
|
-
INITIAL_RETRY_DELAY = 0.5
|
|
10
|
-
MAX_RETRY_DELAY = 8.0
|
|
4
|
+
# TIMEOUT_SECS = 600
|
|
5
|
+
# MAX_SESSION_LIFETIME_SECS = 180
|
|
6
|
+
# MAX_CONNECTION_RETRIES = 2
|
|
7
|
+
# MAX_RETRIES = 5
|
|
8
|
+
# INITIAL_RETRY_DELAY = 0.5
|
|
9
|
+
# MAX_RETRY_DELAY = 8.0
|
|
11
10
|
|
|
12
11
|
# API defaults
|
|
13
|
-
BASE_URL = "https://api.together.xyz/v1"
|
|
12
|
+
# BASE_URL = "https://api.together.xyz/v1"
|
|
14
13
|
|
|
15
14
|
# Download defaults
|
|
16
15
|
DOWNLOAD_BLOCK_SIZE = 10 * 1024 * 1024 # 10 MB
|
|
@@ -21,31 +20,19 @@ MAX_CONCURRENT_PARTS = 4 # Maximum concurrent parts for multipart upload
|
|
|
21
20
|
|
|
22
21
|
# Multipart upload constants
|
|
23
22
|
MIN_PART_SIZE_MB = 5 # Minimum part size (S3 requirement)
|
|
24
|
-
TARGET_PART_SIZE_MB = 250 # Target part size
|
|
25
|
-
MAX_MULTIPART_PARTS = 250 # Maximum parts per upload
|
|
23
|
+
TARGET_PART_SIZE_MB = 250 # Target part size for optimal performance
|
|
24
|
+
MAX_MULTIPART_PARTS = 250 # Maximum parts per upload (S3 limit)
|
|
26
25
|
MULTIPART_UPLOAD_TIMEOUT = 300 # Timeout in seconds for uploading each part
|
|
27
26
|
MULTIPART_THRESHOLD_GB = 5.0 # threshold for switching to multipart upload
|
|
28
27
|
|
|
29
|
-
# maximum number of GB sized files we support finetuning for
|
|
30
|
-
MAX_FILE_SIZE_GB = 50.1
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
# Messages
|
|
34
|
-
MISSING_API_KEY_MESSAGE = """TOGETHER_API_KEY not found.
|
|
35
|
-
Please set it as an environment variable or set it as together.api_key
|
|
36
|
-
Find your TOGETHER_API_KEY at https://api.together.xyz/settings/api-keys"""
|
|
37
|
-
|
|
38
28
|
# Minimum number of samples required for fine-tuning file
|
|
39
29
|
MIN_SAMPLES = 1
|
|
40
30
|
|
|
41
31
|
# the number of bytes in a gigabyte, used to convert bytes to GB for readable comparison
|
|
42
32
|
NUM_BYTES_IN_GB = 2**30
|
|
43
33
|
|
|
44
|
-
#
|
|
45
|
-
|
|
46
|
-
MAX_IMAGE_BYTES = 10 * 1024 * 1024 # 10MB
|
|
47
|
-
# Max length = Header length + base64 factor (4/3) * image bytes
|
|
48
|
-
MAX_BASE64_IMAGE_LENGTH = len("data:image/jpeg;base64,") + 4 * MAX_IMAGE_BYTES // 3
|
|
34
|
+
# maximum number of GB sized files we support finetuning for
|
|
35
|
+
MAX_FILE_SIZE_GB = 50.1
|
|
49
36
|
|
|
50
37
|
# expected columns for Parquet files
|
|
51
38
|
PARQUET_EXPECTED_COLUMNS = ["input_ids", "attention_mask", "labels"]
|