Spaces:
Runtime error
Runtime error
Commit
·
0ad933c
1
Parent(s):
52a72f5
Update models.py
Browse files
models.py
CHANGED
|
@@ -59,10 +59,8 @@ class OpenAIModel(BaseTCOModel):
|
|
| 59 |
def on_model_change(model):
|
| 60 |
|
| 61 |
if model == "GPT-4":
|
| 62 |
-
print("GPT4")
|
| 63 |
return gr.Dropdown.update(choices=["8K", "32K"])
|
| 64 |
else:
|
| 65 |
-
print("GPT3.5")
|
| 66 |
return gr.Dropdown.update(choices=["4K", "16K"])
|
| 67 |
|
| 68 |
self.model = gr.Dropdown(["GPT-4", "GPT-3.5 Turbo"], value="GPT-4",
|
|
@@ -89,7 +87,7 @@ class OpenAIModel(BaseTCOModel):
|
|
| 89 |
else:
|
| 90 |
cost_per_1k_input_tokens = 0.003
|
| 91 |
|
| 92 |
-
cost_per_output_token = cost_per_1k_input_tokens *
|
| 93 |
|
| 94 |
return cost_per_output_token
|
| 95 |
|
|
@@ -156,7 +154,63 @@ class OpenSourceLlama2Model(BaseTCOModel):
|
|
| 156 |
def compute_cost_per_token(self, vm_cost_per_hour, tokens_per_second, maxed_out, used):
|
| 157 |
cost_per_token = vm_cost_per_hour / (tokens_per_second * 3600 * maxed_out * used)
|
| 158 |
return cost_per_token
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 159 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 160 |
class ModelPage:
|
| 161 |
|
| 162 |
def __init__(self, Models: BaseTCOModel):
|
|
|
|
| 59 |
def on_model_change(model):
|
| 60 |
|
| 61 |
if model == "GPT-4":
|
|
|
|
| 62 |
return gr.Dropdown.update(choices=["8K", "32K"])
|
| 63 |
else:
|
|
|
|
| 64 |
return gr.Dropdown.update(choices=["4K", "16K"])
|
| 65 |
|
| 66 |
self.model = gr.Dropdown(["GPT-4", "GPT-3.5 Turbo"], value="GPT-4",
|
|
|
|
| 87 |
else:
|
| 88 |
cost_per_1k_input_tokens = 0.003
|
| 89 |
|
| 90 |
+
cost_per_output_token = cost_per_1k_input_tokens * input_length / 1000
|
| 91 |
|
| 92 |
return cost_per_output_token
|
| 93 |
|
|
|
|
| 154 |
def compute_cost_per_token(self, vm_cost_per_hour, tokens_per_second, maxed_out, used):
|
| 155 |
cost_per_token = vm_cost_per_hour / (tokens_per_second * 3600 * maxed_out * used)
|
| 156 |
return cost_per_token
|
| 157 |
+
|
| 158 |
+
class CohereModel(BaseTCOModel):
|
| 159 |
+
|
| 160 |
+
def __init__(self):
|
| 161 |
+
self.set_name("(SaaS) Cohere")
|
| 162 |
+
self.set_formula(r"""$CT = \frac{CT\_1K \times 1000}{L}$ <br>
|
| 163 |
+
with: <br>
|
| 164 |
+
CT = Cost per output Token <br>
|
| 165 |
+
CT_1M = Cost per one million Tokens (from Cohere's pricing web page) <br>
|
| 166 |
+
L = Input Length
|
| 167 |
+
""")
|
| 168 |
+
super().__init__()
|
| 169 |
|
| 170 |
+
def render(self):
|
| 171 |
+
def on_use_case_change(use_case):
|
| 172 |
+
if use_case == "Summarize":
|
| 173 |
+
return gr.Dropdown.update(choices=["Default"])
|
| 174 |
+
else:
|
| 175 |
+
return gr.Dropdown.update(choices=["Default", "Custom"])
|
| 176 |
+
|
| 177 |
+
self.use_case = gr.Dropdown(["Embed", "Generate", "Classify", "Summarize"], value="Generate",
|
| 178 |
+
label="Use case",
|
| 179 |
+
interactive=True, visible=False)
|
| 180 |
+
self.model = gr.Dropdown(["Default", "Custom"], value="Default",
|
| 181 |
+
label="Model",
|
| 182 |
+
interactive=True, visible=False)
|
| 183 |
+
self.use_case.change(on_use_case_change, inputs=self.use_case, outputs=self.model)
|
| 184 |
+
self.input_length = gr.Number(350, label="Average number of input tokens",
|
| 185 |
+
interactive=True, visible=False)
|
| 186 |
+
|
| 187 |
+
def compute_cost_per_token(self, use_case, model, input_length):
|
| 188 |
+
"""Cost per token = """
|
| 189 |
+
use_case = use_case[0]
|
| 190 |
+
model = model[0]
|
| 191 |
+
|
| 192 |
+
if use_case == "Embed":
|
| 193 |
+
if model == "Default":
|
| 194 |
+
cost_per_1M_input_tokens = 0.4
|
| 195 |
+
else:
|
| 196 |
+
cost_per_1M_input_tokens = 0.8
|
| 197 |
+
elif use_case == "Generate":
|
| 198 |
+
if model == "Default":
|
| 199 |
+
cost_per_1M_input_tokens = 15
|
| 200 |
+
else:
|
| 201 |
+
cost_per_1M_input_tokens = 30
|
| 202 |
+
elif use_case == "Classify":
|
| 203 |
+
if model == "Default":
|
| 204 |
+
cost_per_1M_input_tokens = 200
|
| 205 |
+
else:
|
| 206 |
+
cost_per_1M_input_tokens = 200
|
| 207 |
+
else:
|
| 208 |
+
cost_per_1M_input_tokens = 15
|
| 209 |
+
|
| 210 |
+
cost_per_output_token = cost_per_1M_input_tokens * input_length / 1000000
|
| 211 |
+
|
| 212 |
+
return cost_per_output_token
|
| 213 |
+
|
| 214 |
class ModelPage:
|
| 215 |
|
| 216 |
def __init__(self, Models: BaseTCOModel):
|