Skip to content

Commit 4b42dfa

Browse files
authored
Switch to new together annotator. (#1053)
* Switching over to new Together dedicated endpoint for ensemble evaluator.
1 parent 03fc753 commit 4b42dfa

4 files changed

Lines changed: 36 additions & 5 deletions

File tree

plugins/huggingface/modelgauge/suts/huggingface_chat_completion.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77
from pydantic import BaseModel
88

99
from modelgauge.auth.huggingface_inference_token import HuggingFaceInferenceToken
10-
from modelgauge.prompt import TextPrompt
10+
from modelgauge.prompt import TextPrompt, ChatPrompt
1111
from modelgauge.secret_values import InjectSecret
1212
from modelgauge.sut import PromptResponseSUT, SUTOptions, SUTResponse, TokenProbability, TopTokens
13-
from modelgauge.sut_capabilities import AcceptsTextPrompt, ProducesPerTokenLogProbabilities
13+
from modelgauge.sut_capabilities import AcceptsTextPrompt, ProducesPerTokenLogProbabilities, AcceptsChatPrompt
1414
from modelgauge.sut_decorator import modelgauge_sut
1515
from modelgauge.sut_registry import SUTS
1616

@@ -92,7 +92,7 @@ def translate_response(
9292
return SUTResponse(text=text, top_logprobs=logprobs)
9393

9494

95-
@modelgauge_sut(capabilities=[AcceptsTextPrompt, ProducesPerTokenLogProbabilities])
95+
@modelgauge_sut(capabilities=[AcceptsTextPrompt, AcceptsChatPrompt, ProducesPerTokenLogProbabilities])
9696
class HuggingFaceChatCompletionDedicatedSUT(BaseHuggingFaceChatCompletionSUT):
9797
"""A Hugging Face SUT that is hosted on a dedicated inference endpoint and uses the chat_completion API."""
9898

@@ -135,6 +135,16 @@ def translate_text_prompt(self, prompt: TextPrompt, options: SUTOptions) -> Hugg
135135
**options.model_dump(),
136136
)
137137

138+
def translate_chat_prompt(self, prompt: ChatPrompt, options: SUTOptions) -> HuggingFaceChatCompletionRequest:
139+
logprobs = None
140+
if options.top_logprobs is not None:
141+
logprobs = True
142+
return HuggingFaceChatCompletionRequest(
143+
messages=[ChatMessage(role=p.role.lower(), content=p.text) for p in prompt.messages],
144+
logprobs=logprobs,
145+
**options.model_dump(),
146+
)
147+
138148

139149
@modelgauge_sut(capabilities=[AcceptsTextPrompt, ProducesPerTokenLogProbabilities])
140150
class HuggingFaceChatCompletionServerlessSUT(BaseHuggingFaceChatCompletionSUT):
@@ -181,6 +191,7 @@ def translate_text_prompt(self, prompt: TextPrompt, options: SUTOptions) -> Hugg
181191
"llama-3-1-tulu-3-8b": "bzk", # check
182192
"llama-3-1-tulu-3-70b": "ome",
183193
"mistral-nemo-instruct-2407": "mgt",
194+
"mixtral-8x22b-instruct-v0-1": "kog",
184195
"olmo-2-1124-13b-instruct": "ibo",
185196
"olmo-2-0325-32b-instruct": "yft",
186197
"qwen1-5-110b-chat": "gek",

plugins/huggingface/tests/test_huggingface_chat_completion.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
from unittest.mock import Mock, patch
1515

1616
from modelgauge.auth.huggingface_inference_token import HuggingFaceInferenceToken
17-
from modelgauge.prompt import TextPrompt
17+
from modelgauge.prompt import TextPrompt, ChatPrompt, ChatRole
18+
import modelgauge.prompt
1819
from modelgauge.sut import SUTOptions, SUTResponse, TokenProbability, TopTokens
1920
from modelgauge.suts.huggingface_chat_completion import (
2021
ChatMessage,
@@ -69,6 +70,17 @@ def test_huggingface_chat_completion_translate_text_prompt_request(fake_sut, top
6970
assert request == _make_sut_request(top_logprobs)
7071

7172

73+
@pytest.mark.parametrize("top_logprobs", [None, 2])
74+
def test_huggingface_chat_completion_translate_chat_prompt_request(fake_sut, top_logprobs):
75+
request = fake_sut.translate_chat_prompt(
76+
ChatPrompt(messages=[modelgauge.prompt.ChatMessage(text="some text prompt", role=ChatRole.user)]),
77+
_make_sut_options(top_logprobs),
78+
)
79+
80+
assert isinstance(request, HuggingFaceChatCompletionRequest)
81+
assert request == _make_sut_request(top_logprobs)
82+
83+
7284
@pytest.mark.parametrize(
7385
"endpoint_status",
7486
[

src/modelgauge/secret_values.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22
from dataclasses import dataclass
33
from typing import Generic, List, Mapping, Optional, Sequence, Type, TypeVar
44

5-
from modelgauge.general import get_concrete_subclasses
65
from pydantic import BaseModel
76

7+
from modelgauge.general import get_concrete_subclasses
8+
89

910
class SecretDescription(BaseModel):
1011
"""How to look up a secret and how to get the value if you don't have it."""
@@ -160,3 +161,8 @@ def inject(self, raw_secrets: RawSecrets) -> SecretType:
160161

161162
def __repr__(self):
162163
return f"InjectSecret({self.secret_class.__name__})"
164+
165+
166+
class InjectAllSecrets(Injector):
167+
def inject(self, raw_secrets: RawSecrets):
168+
return raw_secrets

src/modelgauge/suts/together_client.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -387,6 +387,8 @@ def translate_response(self, request: TogetherInferenceRequest, response: Togeth
387387
"Mistral-7B-Instruct-v0.2": "mistralai/Mistral-7B-Instruct-v0.2",
388388
"Mixtral-8x7B-Instruct-v0.1": "mistralai/Mixtral-8x7B-Instruct-v0.1",
389389
"mistral-8x22b-instruct": "mistralai/Mixtral-8x22B-Instruct-v0.1",
390+
"mistral-8x22b-instruct-nim": "mlc_ai_safety_2/nim/mistralai/mixtral-8x22b-instruct-v01-c5e6181e",
391+
"mistral-8x22b-instruct-dedicated-together": "mlc_ai_safety_2/mistralai/Mixtral-8x22B-Instruct-v0.1-177be485",
390392
"deepseek-R1": "deepseek-ai/DeepSeek-R1",
391393
"deepseek-v3-together": "deepseek-ai/DeepSeek-V3",
392394
# No longer supported as of 2025-04-25

0 commit comments

Comments
 (0)