summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-29 13:21:55 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-29 13:21:55 +0000
commit7020d631e4a9044e0a9c39007cf5bb2092d53c0b (patch)
treed190161880079084d5fe29aaf261927bbcd982d5
parentee4c626f9e9116a77ddaa6dcf9ac8836dab2356c (diff)
automatic import of python-allrank
-rw-r--r--.gitignore1
-rw-r--r--python-allrank.spec404
-rw-r--r--sources1
3 files changed, 406 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..fa74ef5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/allRank-1.4.3.tar.gz
diff --git a/python-allrank.spec b/python-allrank.spec
new file mode 100644
index 0000000..03c02b6
--- /dev/null
+++ b/python-allrank.spec
@@ -0,0 +1,404 @@
+%global _empty_manifest_terminate_build 0
+Name: python-allRank
+Version: 1.4.3
+Release: 1
+Summary: allRank is a framework for training learning-to-rank neural models
+License: Apache 2
+URL: https://github.com/allegro/allRank
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/94/f0/d24e9be9d0c9ab9496739b71eb1db57da430c12b89633b2dd76a391cef29/allRank-1.4.3.tar.gz
+BuildArch: noarch
+
+Requires: python3-torch
+Requires: python3-torchvision
+Requires: python3-scikit-learn
+Requires: python3-pandas
+Requires: python3-numpy
+Requires: python3-scipy
+Requires: python3-attrs
+Requires: python3-flatten-dict
+Requires: python3-tensorboardX
+Requires: python3-gcsfs
+Requires: python3-google-auth
+
+%description
+# allRank : Learning to Rank in PyTorch
+
+## About
+
+allRank is a PyTorch-based framework for training neural Learning-to-Rank (LTR) models, featuring implementations of:
+* common pointwise, pairwise and listwise loss functions
+* fully connected and Transformer-like scoring functions
+* commonly used evaluation metrics like Normalized Discounted Cumulative Gain (NDCG) and Mean Reciprocal Rank (MRR)
+* click-models for experiments on simulated click-through data
+
+### Motivation
+
+allRank provides an easy and flexible way to experiment with various LTR neural network models and loss functions.
+It is easy to add a custom loss, and to configure the model and the training procedure.
+We hope that allRank will facilitate both research in neural LTR and its industrial applications.
+
+## Features
+
+### Implemented loss functions:
+ 1. ListNet (for binary and graded relevance)
+ 2. ListMLE
+ 3. RankNet
+ 4. Ordinal loss
+ 5. LambdaRank
+ 6. LambdaLoss
+ 7. ApproxNDCG
+ 8. RMSE
+ 9. NeuralNDCG (introduced in https://arxiv.org/pdf/2102.07831)
+
+### Getting started guide
+
+To help you get started, we provide a ```run_example.sh``` script which generates dummy ranking data in libsvm format and trains
+ a Transformer model on the data using provided example ```config.json``` config file. Once you run the script, the dummy data can be found in `dummy_data` directory
+ and the results of the experiment in `test_run` directory. To run the example, Docker is required.
+
+### Configuring your model & training
+
+To train your own model, configure your experiment in ```config.json``` file and run
+
+```python allrank/main.py --config_file_name allrank/config.json --run_id <the_name_of_your_experiment> --job_dir <the_place_to_save_results>```
+
+All the hyperparameters of the training procedure: i.e. model defintion, data location, loss and metrics used, training hyperparametrs etc. are controlled
+by the ```config.json``` file. We provide a template file ```config_template.json``` where supported attributes, their meaning and possible values are explained.
+ Note that following MSLR-WEB30K convention, your libsvm file with training data should be named `train.txt`. You can specify the name of the validation dataset
+ (eg. valid or test) in the config. Results will be saved under the path ```<job_dir>/results/<run_id>```
+
+Google Cloud Storage is supported in allRank as a place for data and job results.
+
+
+### Implementing custom loss functions
+
+To experiment with your own custom loss, you need to implement a function that takes two tensors (model prediction and ground truth) as input
+ and put it in the `losses` package, making sure it is exposed on a package level.
+To use it in training, simply pass the name (and args, if your loss method has some hyperparameters) of your function in the correct place in the config file:
+
+```
+"loss": {
+ "name": "yourLoss",
+ "args": {
+ "arg1": val1,
+ "arg2: val2
+ }
+ }
+```
+
+### Applying click-model
+
+To apply a click model you need to first have an allRank model trained.
+Next, run:
+
+```python allrank/rank_and_click.py --input-model-path <path_to_the_model_weights_file> --roles <comma_separated_list_of_ds_roles_to_process e.g. train,valid> --config_file_name allrank/config.json --run_id <the_name_of_your_experiment> --job_dir <the_place_to_save_results>```
+
+The model will be used to rank all slates from the dataset specified in config. Next - a click model configured in config will be applied and the resulting click-through dataset will be written under ```<job_dir>/results/<run_id>``` in a libSVM format.
+The path to the results directory may then be used as an input for another allRank model training.
+
+## Continuous integration
+
+You should run `scripts/ci.sh` to verify that code passes style guidelines and unit tests.
+
+## Research
+
+This framework was developed to support the research project [Context-Aware Learning to Rank with Self-Attention](https://arxiv.org/abs/2005.10084). If you use allRank in your research, please cite:
+```
+@article{Pobrotyn2020ContextAwareLT,
+ title={Context-Aware Learning to Rank with Self-Attention},
+ author={Przemyslaw Pobrotyn and Tomasz Bartczak and Mikolaj Synowiec and Radoslaw Bialobrzeski and Jaroslaw Bojar},
+ journal={ArXiv},
+ year={2020},
+ volume={abs/2005.10084}
+}
+```
+Additionally, if you use the NeuralNDCG loss function, please cite the corresponding work, [NeuralNDCG: Direct Optimisation of a Ranking Metric via Differentiable Relaxation of Sorting](https://arxiv.org/abs/2102.07831):
+```
+@article{Pobrotyn2021NeuralNDCG,
+ title={NeuralNDCG: Direct Optimisation of a Ranking Metric via Differentiable Relaxation of Sorting},
+ author={Przemyslaw Pobrotyn and Radoslaw Bialobrzeski},
+ journal={ArXiv},
+ year={2021},
+ volume={abs/2102.07831}
+}
+```
+
+## License
+
+Apache 2 License
+
+
+
+
+%package -n python3-allRank
+Summary: allRank is a framework for training learning-to-rank neural models
+Provides: python-allRank
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-allRank
+# allRank : Learning to Rank in PyTorch
+
+## About
+
+allRank is a PyTorch-based framework for training neural Learning-to-Rank (LTR) models, featuring implementations of:
+* common pointwise, pairwise and listwise loss functions
+* fully connected and Transformer-like scoring functions
+* commonly used evaluation metrics like Normalized Discounted Cumulative Gain (NDCG) and Mean Reciprocal Rank (MRR)
+* click-models for experiments on simulated click-through data
+
+### Motivation
+
+allRank provides an easy and flexible way to experiment with various LTR neural network models and loss functions.
+It is easy to add a custom loss, and to configure the model and the training procedure.
+We hope that allRank will facilitate both research in neural LTR and its industrial applications.
+
+## Features
+
+### Implemented loss functions:
+ 1. ListNet (for binary and graded relevance)
+ 2. ListMLE
+ 3. RankNet
+ 4. Ordinal loss
+ 5. LambdaRank
+ 6. LambdaLoss
+ 7. ApproxNDCG
+ 8. RMSE
+ 9. NeuralNDCG (introduced in https://arxiv.org/pdf/2102.07831)
+
+### Getting started guide
+
+To help you get started, we provide a ```run_example.sh``` script which generates dummy ranking data in libsvm format and trains
+ a Transformer model on the data using provided example ```config.json``` config file. Once you run the script, the dummy data can be found in `dummy_data` directory
+ and the results of the experiment in `test_run` directory. To run the example, Docker is required.
+
+### Configuring your model & training
+
+To train your own model, configure your experiment in ```config.json``` file and run
+
+```python allrank/main.py --config_file_name allrank/config.json --run_id <the_name_of_your_experiment> --job_dir <the_place_to_save_results>```
+
+All the hyperparameters of the training procedure: i.e. model defintion, data location, loss and metrics used, training hyperparametrs etc. are controlled
+by the ```config.json``` file. We provide a template file ```config_template.json``` where supported attributes, their meaning and possible values are explained.
+ Note that following MSLR-WEB30K convention, your libsvm file with training data should be named `train.txt`. You can specify the name of the validation dataset
+ (eg. valid or test) in the config. Results will be saved under the path ```<job_dir>/results/<run_id>```
+
+Google Cloud Storage is supported in allRank as a place for data and job results.
+
+
+### Implementing custom loss functions
+
+To experiment with your own custom loss, you need to implement a function that takes two tensors (model prediction and ground truth) as input
+ and put it in the `losses` package, making sure it is exposed on a package level.
+To use it in training, simply pass the name (and args, if your loss method has some hyperparameters) of your function in the correct place in the config file:
+
+```
+"loss": {
+ "name": "yourLoss",
+ "args": {
+ "arg1": val1,
+ "arg2: val2
+ }
+ }
+```
+
+### Applying click-model
+
+To apply a click model you need to first have an allRank model trained.
+Next, run:
+
+```python allrank/rank_and_click.py --input-model-path <path_to_the_model_weights_file> --roles <comma_separated_list_of_ds_roles_to_process e.g. train,valid> --config_file_name allrank/config.json --run_id <the_name_of_your_experiment> --job_dir <the_place_to_save_results>```
+
+The model will be used to rank all slates from the dataset specified in config. Next - a click model configured in config will be applied and the resulting click-through dataset will be written under ```<job_dir>/results/<run_id>``` in a libSVM format.
+The path to the results directory may then be used as an input for another allRank model training.
+
+## Continuous integration
+
+You should run `scripts/ci.sh` to verify that code passes style guidelines and unit tests.
+
+## Research
+
+This framework was developed to support the research project [Context-Aware Learning to Rank with Self-Attention](https://arxiv.org/abs/2005.10084). If you use allRank in your research, please cite:
+```
+@article{Pobrotyn2020ContextAwareLT,
+ title={Context-Aware Learning to Rank with Self-Attention},
+ author={Przemyslaw Pobrotyn and Tomasz Bartczak and Mikolaj Synowiec and Radoslaw Bialobrzeski and Jaroslaw Bojar},
+ journal={ArXiv},
+ year={2020},
+ volume={abs/2005.10084}
+}
+```
+Additionally, if you use the NeuralNDCG loss function, please cite the corresponding work, [NeuralNDCG: Direct Optimisation of a Ranking Metric via Differentiable Relaxation of Sorting](https://arxiv.org/abs/2102.07831):
+```
+@article{Pobrotyn2021NeuralNDCG,
+ title={NeuralNDCG: Direct Optimisation of a Ranking Metric via Differentiable Relaxation of Sorting},
+ author={Przemyslaw Pobrotyn and Radoslaw Bialobrzeski},
+ journal={ArXiv},
+ year={2021},
+ volume={abs/2102.07831}
+}
+```
+
+## License
+
+Apache 2 License
+
+
+
+
+%package help
+Summary: Development documents and examples for allRank
+Provides: python3-allRank-doc
+%description help
+# allRank : Learning to Rank in PyTorch
+
+## About
+
+allRank is a PyTorch-based framework for training neural Learning-to-Rank (LTR) models, featuring implementations of:
+* common pointwise, pairwise and listwise loss functions
+* fully connected and Transformer-like scoring functions
+* commonly used evaluation metrics like Normalized Discounted Cumulative Gain (NDCG) and Mean Reciprocal Rank (MRR)
+* click-models for experiments on simulated click-through data
+
+### Motivation
+
+allRank provides an easy and flexible way to experiment with various LTR neural network models and loss functions.
+It is easy to add a custom loss, and to configure the model and the training procedure.
+We hope that allRank will facilitate both research in neural LTR and its industrial applications.
+
+## Features
+
+### Implemented loss functions:
+ 1. ListNet (for binary and graded relevance)
+ 2. ListMLE
+ 3. RankNet
+ 4. Ordinal loss
+ 5. LambdaRank
+ 6. LambdaLoss
+ 7. ApproxNDCG
+ 8. RMSE
+ 9. NeuralNDCG (introduced in https://arxiv.org/pdf/2102.07831)
+
+### Getting started guide
+
+To help you get started, we provide a ```run_example.sh``` script which generates dummy ranking data in libsvm format and trains
+ a Transformer model on the data using provided example ```config.json``` config file. Once you run the script, the dummy data can be found in `dummy_data` directory
+ and the results of the experiment in `test_run` directory. To run the example, Docker is required.
+
+### Configuring your model & training
+
+To train your own model, configure your experiment in ```config.json``` file and run
+
+```python allrank/main.py --config_file_name allrank/config.json --run_id <the_name_of_your_experiment> --job_dir <the_place_to_save_results>```
+
+All the hyperparameters of the training procedure: i.e. model defintion, data location, loss and metrics used, training hyperparametrs etc. are controlled
+by the ```config.json``` file. We provide a template file ```config_template.json``` where supported attributes, their meaning and possible values are explained.
+ Note that following MSLR-WEB30K convention, your libsvm file with training data should be named `train.txt`. You can specify the name of the validation dataset
+ (eg. valid or test) in the config. Results will be saved under the path ```<job_dir>/results/<run_id>```
+
+Google Cloud Storage is supported in allRank as a place for data and job results.
+
+
+### Implementing custom loss functions
+
+To experiment with your own custom loss, you need to implement a function that takes two tensors (model prediction and ground truth) as input
+ and put it in the `losses` package, making sure it is exposed on a package level.
+To use it in training, simply pass the name (and args, if your loss method has some hyperparameters) of your function in the correct place in the config file:
+
+```
+"loss": {
+ "name": "yourLoss",
+ "args": {
+ "arg1": val1,
+ "arg2: val2
+ }
+ }
+```
+
+### Applying click-model
+
+To apply a click model you need to first have an allRank model trained.
+Next, run:
+
+```python allrank/rank_and_click.py --input-model-path <path_to_the_model_weights_file> --roles <comma_separated_list_of_ds_roles_to_process e.g. train,valid> --config_file_name allrank/config.json --run_id <the_name_of_your_experiment> --job_dir <the_place_to_save_results>```
+
+The model will be used to rank all slates from the dataset specified in config. Next - a click model configured in config will be applied and the resulting click-through dataset will be written under ```<job_dir>/results/<run_id>``` in a libSVM format.
+The path to the results directory may then be used as an input for another allRank model training.
+
+## Continuous integration
+
+You should run `scripts/ci.sh` to verify that code passes style guidelines and unit tests.
+
+## Research
+
+This framework was developed to support the research project [Context-Aware Learning to Rank with Self-Attention](https://arxiv.org/abs/2005.10084). If you use allRank in your research, please cite:
+```
+@article{Pobrotyn2020ContextAwareLT,
+ title={Context-Aware Learning to Rank with Self-Attention},
+ author={Przemyslaw Pobrotyn and Tomasz Bartczak and Mikolaj Synowiec and Radoslaw Bialobrzeski and Jaroslaw Bojar},
+ journal={ArXiv},
+ year={2020},
+ volume={abs/2005.10084}
+}
+```
+Additionally, if you use the NeuralNDCG loss function, please cite the corresponding work, [NeuralNDCG: Direct Optimisation of a Ranking Metric via Differentiable Relaxation of Sorting](https://arxiv.org/abs/2102.07831):
+```
+@article{Pobrotyn2021NeuralNDCG,
+ title={NeuralNDCG: Direct Optimisation of a Ranking Metric via Differentiable Relaxation of Sorting},
+ author={Przemyslaw Pobrotyn and Radoslaw Bialobrzeski},
+ journal={ArXiv},
+ year={2021},
+ volume={abs/2102.07831}
+}
+```
+
+## License
+
+Apache 2 License
+
+
+
+
+%prep
+%autosetup -n allRank-1.4.3
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-allRank -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 29 2023 Python_Bot <Python_Bot@openeuler.org> - 1.4.3-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..4e4b359
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+9e93da934c235aacd1d4c1dea4c85baf allRank-1.4.3.tar.gz