Skip to content

Commit 1e57e27

Browse files
committed
copy position information for pairwise dataset
1 parent 97d34d7 commit 1e57e27

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

src/io/metadata.cpp

+19
Original file line numberDiff line numberDiff line change
@@ -857,6 +857,8 @@ data_size_t Metadata::BuildPairwiseFeatureRanking(const Metadata& metadata) {
857857
num_data_ = 0;
858858
num_queries_ = metadata.num_queries();
859859
label_.clear();
860+
positions_.clear();
861+
position_ids_.clear();
860862
if (pairwise_ranking_mode_ == PairwiseRankingMode::kRelevance) {
861863
const label_t* original_label = metadata.label();
862864
paired_ranking_item_index_map_.clear();
@@ -879,6 +881,23 @@ data_size_t Metadata::BuildPairwiseFeatureRanking(const Metadata& metadata) {
879881
label_[i] = original_label[i];
880882
}
881883

884+
if (metadata.num_position_ids() > 0) {
885+
positions_.resize(original_num_data);
886+
const data_size_t* original_positions = metadata.positions();
887+
#pragma omp parallel for schedule(static) num_threads(num_threads) if (original_num_data >= 1024)
888+
for (data_size_t i = 0; i < original_num_data; ++i) {
889+
positions_[i] = original_positions[i];
890+
}
891+
892+
const data_size_t num_position_ids = static_cast<data_size_t>(metadata.num_position_ids());
893+
position_ids_.resize(num_position_ids);
894+
const std::string* original_position_ids = metadata.position_ids();
895+
#pragma omp parallel for schedule(static) num_threads(num_threads) if (num_position_ids >= 1024)
896+
for (data_size_t i = 0; i < num_position_ids; ++i) {
897+
position_ids_[i] = original_position_ids[i];
898+
}
899+
}
900+
882901
data_size_t num_pairs_in_query = 0;
883902
query_boundaries_.clear();
884903
query_boundaries_.push_back(0);

0 commit comments

Comments
 (0)