def add_referenced_model_()

in src/alpaca_eval/processors.py [0:0]


    def add_referenced_model_(self, df):
        """Add a dictionary to better understand chain of thought in case it's useful"""
        df["referenced_models"] = None

        for i, r in df.iterrows():
            if (
                isinstance(r[self._tmp_col], dict)
                and "concise_explanation" in r[self._tmp_col]
                and "ordered_models" in r[self._tmp_col]
            ):
                preference = int(df.loc[i, "preference"])
                ordered_models = df.loc[i, self._tmp_col]["ordered_models"]
                for m in ordered_models:
                    if m["rank"] == 1:
                        first_model = m["model"]
                    elif m["rank"] == 2:
                        second_model = m["model"]
                    else:
                        assert False

                df.at[i, "referenced_models"] = {
                    first_model: f"output_{preference}",
                    second_model: f"output_{3 - preference}",
                }