query batch는 기존대로 유지한다.
passage batch가 달라진다.
1개의 positive passage와 batch_size개의 negative passage로 총 batch_szie + 1 개의 데이터로 하나의 batch를 구성한다.
passage batch는 batch_size개만큼 구성한다. 기존 방식과는 다르게 따로 negative sampling을 하지 않는다. positive 관계인 query와 passage들을 한 쌍으로 같이 넣어주기만한다.
sim_scores = tensor([[-1.0768e+01, -3.7684e+01, -1.3255e-04, -9.1018e+00],
[-2.1763e+01, -6.3134e+01, 0.0000e+00, -1.6743e+01],
[-1.6615e+01, -4.5871e+01, -1.0729e-06, -1.3856e+01],
[-1.3989e+01, -5.5973e+01, -1.1598e-04, -9.0696e+00]],
targets = [0,1,2,3]
sim_scores 내의 item들은 target에 해당하는 index를 답으로 가지도록 확률이 출력된다. sim_scores의 0번째 item의 i번재 요소들은 i번째를 target에 대한 확률을 의미한다.
따라서 target은 0, 1, 2, 3가 된다.
"따라서 target은 0, 1, 2, 4가 되다"
위 본문글중에
[0, 1, 2, 3]인데 4로 잘못 오기된것 같습니다