Git Product home page Git Product logo

nvidia-merlin / transformers4rec Goto Github PK

View Code? Open in Web Editor NEW
1.0K 1.0K 143.0 217.96 MB

Transformers4Rec is a flexible and efficient library for sequential and session-based recommendation and works with PyTorch.

Home Page: https://nvidia-merlin.github.io/Transformers4Rec/main

License: Apache License 2.0

Python 98.54% Shell 1.46%
bert gtp huggingface language-model nlp pytorch recommender-system recsys seq2seq session-based-recommendation tabular-data transformer xlnet

transformers4rec's People

Contributors

ajschmidt8 avatar albert17 avatar ayodeawe avatar bbozkaya avatar benfred avatar edknv avatar emmaqiaoch avatar evenoldridge avatar gabrielspmoreira avatar jperez999 avatar karlhigley avatar leej35 avatar lgardenhire avatar marcromeyn avatar masoncusack avatar mikemckiernan avatar murphp15 avatar nv-alaiacano avatar nzarif avatar oliverholworthy avatar radekosmulski avatar rnyak avatar sararb avatar woosukkwon avatar zanussbaum avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

transformers4rec's Issues

Finalize design for build with shape in torch

Keras propagates static shape information. This allows things like a Dense layer where you can just specify the hidden-dimension, and then we it builds the layer with the shapes in can init the weights. We would like to have something similar in the torch-side of the library so that we could enable things like a MLPBlock.

Benchmark the new PyT data loader (with sparse tensors support) scalability with multi-GPU and larger datasets

Benchmark the new PyT data loader with the REES46 ecommerce dataset, using multiple GPUs

Train set: All train.parquet files for 31 days (1 parquet file by week). P.s. Set row group size accordingly
Eval set: All valid.parquet files concatenated

  • Create a recsys_main.py variation for non-incremental training
  • Train with 3 weeks and evaluate on the last week
  • Run experiments varying the number of GPUs: Single GPU, Multi-GPU Data Parallel, Multi-GPU Distributed DataParallel

Multi-GPU support with NVTabular data loader with our wrapper

Currently we use PyTorch DataParallel, which is not optimal. Move to DistributedParallel (recommended) using the Multi-GPU support of NVT Data loaders and check which Transformer architectures work

References:
Context on DataParallel / Distributed Parallel: https://github.com/rapidsai/recsys/tree/main/transformers4recsys/codes#2-run-the-training--evaluation-script
NVT with Horovod: https://nbviewer.jupyter.org/github/NVIDIA/NVTabular/blob/main/examples/multi-gpu-movielens/01-03b-MultiGPU-Download-Convert-ETL-with-NVTabular-Training-with-PyTorch.ipynb"

Retrieve itemid embedding table from block

When mf_constrained_embeddings is set to True in SequentialPrediction task, the output layer is tied to the embedding table of item-id. the prediction head should therefore get this table from the model block.

Create an API for the Transformers4Rec modules

Create an API for the Transformers4Rec modules (Meta-Architecture, Evaluation, Logging), allowing users to define their own training and evaluation pipeline (not necessarily using our recsys_main.py script)

Initial version of documentation

Documentation of Transformers4Rec: how to install with docker and conda, example commands to run preproc and training, API documentation

Extend TabularFeature with 3-D sequence inputs

  • The current version returns 2D tensor where sequential inputs are combined using EmbeddingBag with 'mean' combiner. Instead, we should support returning a 3-D tensor to build item interaction embedding for session-based task.

  • Requires fixing the issue #67

The related files are :

First end-to-end example of pytorch-API

Create a notebook for training a Transformer model with pre-processed yoochoose dataset using NVTabular and Transformers4Rec API. The steps are :

  • #111
  • Load features from the Tagging schema
  • Define the sequential aggregator to create interaction embeddings
  • Instantiate the masking class for a given language modelling task
  • Instantiate the sequential model : Load tf4rec config and init the related HF class
  • Instantiate the sequential prediction task with related metrics and loss
  • Run training using two first day
  • Run evaluation on the third day

N.B: This notebook is the simpler version of the Transformers4Rec tasks.

Create client.py example to serve Triton server

This is a requirement for RecSys21 tutorial. Once we load the models to the Triton server, we then should be able to create a client.py or an example code in jp notebook to send request to the server, and generate final prediction results for the next item to be clicked.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.