Closed xiaohuoguohh closed 1 year ago
Thanks for asking~ We are sorry that we just mentioned it in the paper but forgot to explain.
Typically, the Conditioned Answer Score is always smaller than the Direct Answer Score for one specific data instance due to the intrinsic nature of the next token prediction. With the context given, the prediction for the latter tokens should be easier. Then let's come back to the IFD score. If the IFD score is greater than 1, the Conditioned Answer Score is even larger than the Direct Answer Score, which means the given instruction provides no useful context for the prediction of the response. In this situation, we think there exists a misalignment between the instruction and the corresponding response. Thus we choose to filter these potentially misaligned samples.
More intuitively speaking, if the response is nothing related to the instruction, it will probably have a really high IFD score greater than 1, and we want to filter these samples out.
It is claer, great! Thanks for answering~
according to the paper and data_by_IFD.py line 103-105, my understanding mean_1 = loss_list_1.mean() is Direct Answer Score, mean_2 = loss_list_2.mean() is Conditioned Answer Score, and mean_rate = mean_2/mean_1 should be Instruction-Following Difficulty (IFD) scores, right? So mean_rate(IFD) should be large means that the sample is useful for model. But from the code, i see if mean_rate > 1: continue from line 106 in data_by_IFD.py, is it right or i misunderstood.