in src/alpaca_eval/completion_parsers.py [0:0]
def lmsys_parser(completion: str) -> list[Any]:
r"""Parse a pair of scores from a single completion and returns which is better.
Examples
--------
>>> lmsys_parser("1 7\n ...")
[2]
>>> lmsys_parser("7 1\n more text")
[1]
>>> lmsys_parser("1 1\n ...")
[0]
"""
if completion == "":
raise ValueError("The completion is empty.")
try:
score_pair = completion.split("\n")[0]
score_pair = score_pair.replace(",", " ")
sp = score_pair.split(" ")
if len(sp) == 2:
lmsys_score_1 = float(sp[0])
lmsys_score_2 = float(sp[1])
if lmsys_score_1 > lmsys_score_2:
return [1]
elif lmsys_score_1 < lmsys_score_2:
return [2]
else:
return [0]
else:
raise Exception("Invalid score pair.")
except Exception as e:
logging.error(f"{e}\nContent: {completion}\n" "You must manually fix the score pair.")
return [np.nan]