Skip to content

Commit 34d1002

Browse files
authored
Add o3-mini model (#3304)
1 parent 78ec8cf commit 34d1002

File tree

4 files changed

+102
-9
lines changed

4 files changed

+102
-9
lines changed

setup.cfg

+1-1
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ mistral =
146146
mistralai~=1.1
147147

148148
openai =
149-
openai~=1.52
149+
openai~=1.61
150150
tiktoken~=0.7
151151
pydantic~=2.0 # For model_dump(mode="json") - openai only requires pydantic>=1.9.0
152152

src/helm/clients/openai_client.py

+14-8
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,18 @@ def __init__(
4444
api_key: Optional[str] = None,
4545
org_id: Optional[str] = None,
4646
base_url: Optional[str] = None,
47+
reasoning_effort: Optional[str] = None,
48+
openai_model_name: Optional[str] = None,
4749
):
4850
super().__init__(cache_config=cache_config)
4951
self.tokenizer = tokenizer
5052
self.tokenizer_name = tokenizer_name
5153
self.client = OpenAI(api_key=api_key, organization=org_id, base_url=base_url)
54+
self.reasoning_effort = reasoning_effort
55+
self.openai_model_name = openai_model_name
5256

5357
def _get_model_for_request(self, request: Request) -> str:
54-
return request.model_engine
58+
return self.openai_model_name or request.model_engine
5559

5660
def _get_cache_key(self, raw_request: Dict, request: Request):
5761
cache_key = CachingClient.make_cache_key(raw_request, request)
@@ -175,7 +179,7 @@ def _make_chat_request(self, request: Request) -> RequestResult:
175179
# Special handling for o1 models.
176180
# Refer to the "Reasoning models" documentation further discussion of o1 model limitations:
177181
# https://platform.openai.com/docs/guides/reasoning
178-
if request.model_engine.startswith("o1"):
182+
if request.model_engine.startswith("o1") or request.model_engine.startswith("o3"):
179183
# Avoid error:
180184
# "Unsupported parameter: 'max_tokens' is not supported with this model. Use 'max_completion_tokens' instead." # noqa: E501
181185
# Note that openai>=1.45 is needed for this
@@ -187,12 +191,14 @@ def _make_chat_request(self, request: Request) -> RequestResult:
187191
if raw_request["stop"] is None:
188192
raw_request.pop("stop")
189193

190-
if request.model_engine == "o1-2024-12-17":
191-
# Avoid error:
192-
# "Error code: 400 - {'error': {'message': "Unsupported parameter: 'temperature' is
193-
# not supported with this model.", 'type': 'invalid_request_error', 'param': 'temperature',
194-
# 'code': 'unsupported_parameter'}}"
195-
raw_request.pop("temperature", None)
194+
# Avoid error:
195+
# "Error code: 400 - {'error': {'message': "Unsupported parameter: 'temperature' is
196+
# not supported with this model.", 'type': 'invalid_request_error', 'param': 'temperature',
197+
# 'code': 'unsupported_parameter'}}"
198+
raw_request.pop("temperature", None)
199+
200+
if self.reasoning_effort:
201+
raw_request["reasoning_effort"] = "self.reasoning_effort"
196202
elif is_vlm(request.model):
197203
# Avoid error:
198204
# "Invalid type for 'stop': expected an unsupported value, but got null instead."

src/helm/config/model_deployments.yaml

+47
Original file line numberDiff line numberDiff line change
@@ -1965,6 +1965,26 @@ model_deployments:
19651965
client_spec:
19661966
class_name: "helm.clients.openai_client.OpenAIClient"
19671967

1968+
- name: openai/o1-2024-12-17-low-reasoning-effort
1969+
model_name: openai/o1-2024-12-17-low-reasoning-effort
1970+
tokenizer_name: openai/cl100k_base
1971+
max_sequence_length: 128000
1972+
client_spec:
1973+
class_name: "helm.clients.openai_client.OpenAIClient"
1974+
args:
1975+
openai_model_name: o1-2024-12-17
1976+
reasoning_effort: low
1977+
1978+
- name: openai/o1-2024-12-17-high-reasoning-effort
1979+
model_name: openai/o1-2024-12-17-high-reasoning-effort
1980+
tokenizer_name: openai/cl100k_base
1981+
max_sequence_length: 128000
1982+
client_spec:
1983+
class_name: "helm.clients.openai_client.OpenAIClient"
1984+
args:
1985+
openai_model_name: o1-2024-12-17
1986+
reasoning_effort: high
1987+
19681988
- name: openai/o1-preview-2024-09-12
19691989
model_name: openai/o1-preview-2024-09-12
19701990
tokenizer_name: openai/cl100k_base
@@ -1979,6 +1999,33 @@ model_deployments:
19791999
client_spec:
19802000
class_name: "helm.clients.openai_client.OpenAIClient"
19812001

2002+
- name: openai/o3-mini-2025-01-31
2003+
model_name: openai/o3-mini-2025-01-31
2004+
tokenizer_name: openai/cl100k_base
2005+
max_sequence_length: 200000
2006+
client_spec:
2007+
class_name: "helm.clients.openai_client.OpenAIClient"
2008+
2009+
- name: openai/o3-mini-2025-01-31-low-reasoning-effort
2010+
model_name: openai/o3-mini-2025-01-31-low-reasoning-effort
2011+
tokenizer_name: openai/cl100k_base
2012+
max_sequence_length: 200000
2013+
client_spec:
2014+
class_name: "helm.clients.openai_client.OpenAIClient"
2015+
args:
2016+
openai_model_name: o3-mini-2025-01-31
2017+
reasoning_effort: low
2018+
2019+
- name: openai/o3-mini-2025-01-31-high-reasoning-effort
2020+
model_name: openai/o3-mini-2025-01-31-high-reasoning-effort
2021+
tokenizer_name: openai/cl100k_base
2022+
max_sequence_length: 200000
2023+
client_spec:
2024+
class_name: "helm.clients.openai_client.OpenAIClient"
2025+
args:
2026+
openai_model_name: o3-mini-2025-01-31
2027+
reasoning_effort: high
2028+
19822029
## Text Similarity Models
19832030
# OpenAI similarity embedding models: https://beta.openai.com/docs/guides/embeddings
19842031
# The number of parameters is guessed based on the number of parameters of the

src/helm/config/model_metadata.yaml

+40
Original file line numberDiff line numberDiff line change
@@ -2643,6 +2643,22 @@ models:
26432643
release_date: 2024-12-17
26442644
tags: [TEXT_MODEL_TAG, VISION_LANGUAGE_MODEL_TAG, LIMITED_FUNCTIONALITY_TEXT_MODEL_TAG, INSTRUCTION_FOLLOWING_MODEL_TAG]
26452645

2646+
- name: openai/o1-2024-12-17-low-reasoning-effort
2647+
display_name: o1 (2024-12-17, low reasoning effort)
2648+
description: o1 is a new large language model trained with reinforcement learning to perform complex reasoning. ([model card](https://openai.com/index/openai-o1-system-card/), [blog post](https://openai.com/index/learning-to-reason-with-llms/)) The requests' reasoning effort parameter in is set to low.
2649+
creator_organization_name: OpenAI
2650+
access: limited
2651+
release_date: 2024-12-17
2652+
tags: [TEXT_MODEL_TAG, VISION_LANGUAGE_MODEL_TAG, LIMITED_FUNCTIONALITY_TEXT_MODEL_TAG, INSTRUCTION_FOLLOWING_MODEL_TAG]
2653+
2654+
- name: openai/o1-2024-12-17-high-reasoning-effort
2655+
display_name: o1 (2024-12-17, high reasoning effort)
2656+
description: o1 is a new large language model trained with reinforcement learning to perform complex reasoning. ([model card](https://openai.com/index/openai-o1-system-card/), [blog post](https://openai.com/index/learning-to-reason-with-llms/)) The requests' reasoning effort parameter in is set to high.
2657+
creator_organization_name: OpenAI
2658+
access: limited
2659+
release_date: 2024-12-17
2660+
tags: [TEXT_MODEL_TAG, VISION_LANGUAGE_MODEL_TAG, LIMITED_FUNCTIONALITY_TEXT_MODEL_TAG, INSTRUCTION_FOLLOWING_MODEL_TAG]
2661+
26462662
- name: openai/o1-preview-2024-09-12
26472663
display_name: o1-preview (2024-09-12)
26482664
description: o1-preview is a language model trained with reinforcement learning to perform complex reasoning that can produce a long internal chain of thought before responding to the user. ([model card](https://openai.com/index/openai-o1-system-card/), [blog post](https://openai.com/index/learning-to-reason-with-llms/))
@@ -2659,6 +2675,30 @@ models:
26592675
release_date: 2024-09-12
26602676
tags: [TEXT_MODEL_TAG, LIMITED_FUNCTIONALITY_TEXT_MODEL_TAG, INSTRUCTION_FOLLOWING_MODEL_TAG]
26612677

2678+
- name: openai/o3-mini-2025-01-31
2679+
display_name: o3-mini (2025-01-31)
2680+
description: o3-mini is a small reasoning model form OpenAI that aims to deliver STEM capabilities while maintaining the low cost and reduced latency of OpenAI o1-mini. ([blog post](https://openai.com/index/openai-o3-mini/))
2681+
creator_organization_name: OpenAI
2682+
access: limited
2683+
release_date: 2025-01-31
2684+
tags: [TEXT_MODEL_TAG, LIMITED_FUNCTIONALITY_TEXT_MODEL_TAG, INSTRUCTION_FOLLOWING_MODEL_TAG]
2685+
2686+
- name: openai/o3-mini-2025-01-31-low-reasoning-effort
2687+
display_name: o3-mini (2025-01-31, low reasoning effort)
2688+
description: o3-mini is a small reasoning model form OpenAI that aims to deliver STEM capabilities while maintaining the low cost and reduced latency of OpenAI o1-mini. ([blog post](https://openai.com/index/openai-o3-mini/)) The requests' reasoning effort parameter in is set to low.
2689+
creator_organization_name: OpenAI
2690+
access: limited
2691+
release_date: 2025-01-31
2692+
tags: [TEXT_MODEL_TAG, LIMITED_FUNCTIONALITY_TEXT_MODEL_TAG, INSTRUCTION_FOLLOWING_MODEL_TAG]
2693+
2694+
- name: openai/o3-mini-2025-01-31-high-reasoning-effort
2695+
display_name: o3-mini (2025-01-31, high reasoning effort)
2696+
description: o3-mini is a small reasoning model form OpenAI that aims to deliver STEM capabilities while maintaining the low cost and reduced latency of OpenAI o1-mini. ([blog post](https://openai.com/index/openai-o3-mini/)) The requests' reasoning effort parameter in is set to high.
2697+
creator_organization_name: OpenAI
2698+
access: limited
2699+
release_date: 2025-01-31
2700+
tags: [TEXT_MODEL_TAG, LIMITED_FUNCTIONALITY_TEXT_MODEL_TAG, INSTRUCTION_FOLLOWING_MODEL_TAG]
2701+
26622702
## Codex Models
26632703
# DEPRECATED: Codex models have been shut down on March 23 2023.
26642704

0 commit comments

Comments
 (0)