[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-NVIDIA-Merlin--Transformers4Rec":3,"similar-NVIDIA-Merlin--Transformers4Rec":203},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":9,"readme_en":10,"readme_zh":11,"quickstart_zh":12,"use_case_zh":13,"hero_image_url":14,"owner_login":15,"owner_name":15,"owner_avatar_url":16,"owner_bio":17,"owner_company":18,"owner_location":18,"owner_email":18,"owner_twitter":18,"owner_website":18,"owner_url":19,"languages":20,"stars":29,"forks":30,"last_commit_at":31,"license":32,"difficulty_score":33,"env_os":34,"env_gpu":35,"env_ram":36,"env_deps":37,"category_tags":47,"github_topics":52,"view_count":66,"oss_zip_url":18,"oss_zip_packed_at":18,"status":67,"created_at":68,"updated_at":69,"faqs":70,"releases":104},6706,"NVIDIA-Merlin\u002FTransformers4Rec","Transformers4Rec","Transformers4Rec is a flexible and efficient library for sequential and session-based recommendation and works with PyTorch.","Transformers4Rec 是一个专为序列推荐和会话推荐打造的高效开源库，基于 PyTorch 构建。它巧妙地充当了自然语言处理（NLP）与推荐系统之间的桥梁，通过深度集成流行的 Hugging Face Transformers 框架，让先进的 Transformer 架构能轻松应用于推荐场景。\n\n传统推荐算法往往忽略用户行为的时间动态和操作顺序，难以捕捉兴趣随时间变化的规律，尤其在用户匿名浏览或仅有短期会话数据的场景下表现受限。Transformers4Rec 正是为了解决这一痛点而生，它能有效处理如网页浏览记录或购物车商品等交互序列，精准预测用户的下一个目标，从而显著提升推荐的相关性。\n\n这款工具非常适合推荐系统领域的研究人员、算法工程师以及希望将前沿 NLP 技术落地到生产环境的开发者使用。其核心亮点在于极高的灵活性与模块化设计：不仅支持配置超过 64 种不同的 Transformer 模型架构，还允许用户像搭积木一样自定义多塔结构、多任务头及损失函数。相比以往仅能输入物品 ID 且难以扩展的旧框架，Transformers4Rec 提供了更 scalable 的生产级实","Transformers4Rec 是一个专为序列推荐和会话推荐打造的高效开源库，基于 PyTorch 构建。它巧妙地充当了自然语言处理（NLP）与推荐系统之间的桥梁，通过深度集成流行的 Hugging Face Transformers 框架，让先进的 Transformer 架构能轻松应用于推荐场景。\n\n传统推荐算法往往忽略用户行为的时间动态和操作顺序，难以捕捉兴趣随时间变化的规律，尤其在用户匿名浏览或仅有短期会话数据的场景下表现受限。Transformers4Rec 正是为了解决这一痛点而生，它能有效处理如网页浏览记录或购物车商品等交互序列，精准预测用户的下一个目标，从而显著提升推荐的相关性。\n\n这款工具非常适合推荐系统领域的研究人员、算法工程师以及希望将前沿 NLP 技术落地到生产环境的开发者使用。其核心亮点在于极高的灵活性与模块化设计：不仅支持配置超过 64 种不同的 Transformer 模型架构，还允许用户像搭积木一样自定义多塔结构、多任务头及损失函数。相比以往仅能输入物品 ID 且难以扩展的旧框架，Transformers4Rec 提供了更 scalable 的生产级实现，帮助团队快速构建并验证复杂的序列推荐模型。","# [Transformers4Rec](https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002F)\n\n[![PyPI](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002FTransformers4Rec?color=orange&label=version)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002FTransformers4Rec)\n[![LICENSE](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FNVIDIA-Merlin\u002FTransformers4Rec)](https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fblob\u002Fstable\u002FLICENSE)\n[![Documentation](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocumentation-blue.svg)](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002FREADME.html)\n\nTransformers4Rec is a flexible and efficient library for sequential and session-based recommendation and can work with PyTorch.\n\nThe library works as a bridge between natural language processing (NLP) and recommender systems (RecSys) by integrating with one of the most popular NLP frameworks, [Hugging Face Transformers](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers) (HF).\nTransformers4Rec makes state-of-the-art transformer architectures available for RecSys researchers and industry practitioners.\n\nThe following figure shows the use of the library in a recommender system.\nInput data is typically a sequence of interactions such as items that are browsed in a web session or items put in a cart.\nThe library helps you process and model the interactions so that you can output better recommendations for the next item.\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA-Merlin_Transformers4Rec_readme_d0736d621079.png\" alt=\"Sequential and Session-based recommendation with Transformers4Rec\" style=\"width:800px;display:block;margin-left:auto;margin-right:auto;\"\u002F>\u003Cbr>\n\u003Cdiv style=\"text-align:center;margin:20pt\">\n  \u003Cfigcaption style=\"font-style:italic;\">Sequential and Session-based recommendation with Transformers4Rec\u003C\u002Ffigcaption>\n\u003C\u002Fdiv>\n\nTraditional recommendation algorithms usually ignore the temporal dynamics and the sequence of interactions when trying to model user behavior.\nGenerally, the next user interaction is related to the sequence of the user's previous choices.\nIn some cases, it might be a repeated purchase or song play.\nUser interests can also suffer from interest drift because preferences can change over time.\nThose challenges are addressed by the **sequential recommendation** task.\n\nA special use case of sequential-recommendation is the **session-based recommendation** task where you only have access to the short sequence of interactions within the current session.\nThis is very common in online services like e-commerce, news, and media portals where the user might choose to browse anonymously due to GDPR compliance that restricts collecting cookies or because the user is new to the site.\nThis task is also relevant for scenarios where the users' interests change a lot over time depending on the user context or intent.\nIn this case, leveraging the interactions for the current session is more promising than old interactions to provide relevant recommendations.\n\nTo deal with sequential and session-based recommendation, many sequence learning algorithms previously applied in machine learning and NLP research have been explored for RecSys based on k-Nearest Neighbors, Frequent Pattern Mining, Hidden Markov Models, Recurrent Neural Networks, and more recently neural architectures using the Self-Attention Mechanism and transformer architectures.\nUnlike Transformers4Rec, these frameworks only accept sequences of item IDs as input and do not provide a modularized, scalable implementation for production usage.\n\n## Benefits of Transformers4Rec\n\nTransformers4Rec offers the following benefits:\n\n- **Flexibility**: Transformers4Rec provides modularized building blocks that are configurable and compatible with standard PyTorch modules.\nThis building-block design enables you to create custom architectures with multiple towers, multiple heads\u002Ftasks, and losses.\n\n- **Access to HF Transformers**: More than 64 different Transformer architectures can be used to evaluate your sequential and session-based recommendation task as a result of the [Hugging Face Transformers](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers) integration.\n\n- **Support for multiple input features**: HF Transformers only support sequences of token IDs as input because it was originally designed for NLP.\nTransformers4Rec enables you to use other types of sequential tabular data as input with HF transformers due to the rich features that are available in RecSys datasets.\nTransformers4Rec uses a schema to configure the input features and automatically creates the necessary layers, such as embedding tables, projection layers, and output layers based on the target without requiring code changes to include new features.\nYou can normalize and combine interaction and sequence-level input features in configurable ways.\n\n- **Seamless preprocessing and feature engineering**: As part of the Merlin ecosystem, Transformers4Rec is integrated with [NVTabular](https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FNVTabular) and [Triton Inference Server](https:\u002F\u002Fgithub.com\u002Ftriton-inference-server\u002Fserver).\nThese components enable you to build a fully GPU-accelerated pipeline for sequential and session-based recommendation.\nNVTabular has common preprocessing operations for session-based recommendation and exports a dataset schema.\nThe schema is compatible with Transformers4Rec so that input features can be configured automatically.\nYou can export your trained models to serve with Triton Inference Server in a single pipeline that includes online feature preprocessing and model inference.\nFor more information, refer to [End-to-end pipeline with NVIDIA Merlin](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002Fpipeline.html).\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA-Merlin_Transformers4Rec_readme_1b1cee69e1b2.png\" alt=\"GPU-accelerated Sequential and Session-based recommendation\" style=\"width:600px;display:block;margin-left:auto;margin-right:auto;\"\u002F>\u003Cbr>\n\u003Cdiv style=\"text-align: center; margin: 20pt\">\n  \u003Cfigcaption style=\"font-style: italic;\">GPU-accelerated pipeline for Sequential and Session-based recommendation using NVIDIA Merlin components\u003C\u002Ffigcaption>\n\u003C\u002Fdiv>\n\n## Transformers4Rec Achievements\n\nTransformers4Rec recently won two session-based recommendation competitions: [WSDM WebTour Workshop Challenge 2021 (organized by Booking.com)](https:\u002F\u002Fdeveloper.nvidia.com\u002Fblog\u002Fhow-to-build-a-winning-deep-learning-powered-recommender-system-part-3\u002F) and [SIGIR eCommerce Workshop Data Challenge 2021 (organized by Coveo)](https:\u002F\u002Fmedium.com\u002Fnvidia-merlin\u002Fwinning-the-sigir-ecommerce-challenge-on-session-based-recommendation-with-transformers-v2-793f6fac2994).\nThe library provides higher accuracy for session-based recommendation than baseline algorithms and we performed extensive empirical analysis about the accuracy.\nThese observations are published in our [ACM RecSys'21 paper](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002F10.1145\u002F3460231.3474255).\n\n## Sample Code: Defining and Training the Model\n\nTraining a model with Transformers4Rec typically requires performing the following high-level steps:\n\n1. Provide the [schema](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002Fapi\u002Fmerlin_standard_lib.schema.html#merlin_standard_lib.schema.schema.Schema) and construct an input-module.\n\n   If you encounter session-based recommendation issues, you typically want to use the\n   [TabularSequenceFeatures](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002Fapi\u002Ftransformers4rec.torch.features.html#transformers4rec.torch.features.sequence.TabularSequenceFeatures)\n   class because it merges context features with sequential features.\n\n2. Provide the prediction-tasks.\n\n   The tasks that are provided right out of the box are available from our [API documentation](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002Fapi\u002Ftransformers4rec.torch.model.html#module-transformers4rec.torch.model.prediction_task).\n\n3. Construct a transformer-body and convert this into a model.\n\nThe following code sample shows how to define and train an XLNet model with PyTorch for next-item prediction task:\n\n```python\nfrom transformers4rec import torch as tr\nfrom transformers4rec.torch.ranking_metric import NDCGAt, RecallAt\n\n# Create a schema or read one from disk: tr.Schema().from_json(SCHEMA_PATH).\nschema: tr.Schema = tr.data.tabular_sequence_testing_data.schema\n\nmax_sequence_length, d_model = 20, 64\n\n# Define the input module to process the tabular input features.\ninput_module = tr.TabularSequenceFeatures.from_schema(\n    schema,\n    max_sequence_length=max_sequence_length,\n    continuous_projection=d_model,\n    aggregation=\"concat\",\n    masking=\"causal\",\n)\n\n# Define a transformer-config like the XLNet architecture.\ntransformer_config = tr.XLNetConfig.build(\n    d_model=d_model, n_head=4, n_layer=2, total_seq_length=max_sequence_length\n)\n\n# Define the model block including: inputs, masking, projection and transformer block.\nbody = tr.SequentialBlock(\n    input_module,\n    tr.MLPBlock([d_model]),\n    tr.TransformerBlock(transformer_config, masking=input_module.masking)\n)\n\n# Define the evaluation top-N metrics and the cut-offs\nmetrics = [NDCGAt(top_ks=[20, 40], labels_onehot=True),\n           RecallAt(top_ks=[20, 40], labels_onehot=True)]\n\n# Define a head with NextItemPredictionTask.\nhead = tr.Head(\n    body,\n    tr.NextItemPredictionTask(weight_tying=True, metrics=metrics),\n    inputs=input_module,\n)\n\n# Get the end-to-end Model class.\nmodel = tr.Model(head)\n```\n\n> You can modify the preceding code to perform binary classification.\n> The masking in the input module can be set to `None` instead of `causal`.\n> When you define the head, you can replace the `NextItemPredictionTask`\n> with an instance of `BinaryClassificationTask`.\n> See the sample code in the [API documentation for the class](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002Fapi\u002Ftransformers4rec.torch.html#transformers4rec.torch.BinaryClassificationTask).\n\n## Installation\n\nYou can install Transformers4Rec with Pip, Conda, or run a Docker container.\n\n### Installing Transformers4Rec Using Pip\n\nYou can install Transformers4Rec with the functionality to use the GPU-accelerated Merlin dataloader.\nInstallation with the dataloader is highly recommended for better performance.\nThose components can be installed as optional arguments for the `pip install` command.\n\nTo install Transformers4Rec using Pip, run the following command:\n\n```shell\npip install transformers4rec[nvtabular]\n```\n\n-> Be aware that installing Transformers4Rec with `pip` does not automatically install RAPIDS cuDF.\n-> cuDF is required for GPU-accelerated versions of NVTabular transforms and the Merlin Dataloader.\n\nInstructions for installing cuDF with pip are available here: https:\u002F\u002Fdocs.rapids.ai\u002Finstall#pip-install\n\n```shell\npip install cudf-cu11 dask-cudf-cu11 --extra-index-url=https:\u002F\u002Fpypi.nvidia.com\n```\n\n### Installing Transformers4Rec Using Conda\n\nTo install Transformers4Rec using Conda, run the following command with `conda` or `mamba` to create a new environment.\n\n```shell\nmamba create -n transformers4rec-23.04 -c nvidia -c rapidsai -c pytorch -c conda-forge \\\n    transformers4rec=23.04 `# NVIDIA Merlin` \\\n    nvtabular=23.04 `# NVIDIA Merlin - Used in example notebooks` \\\n    python=3.10 `# Compatible Python environment` \\\n    cudf=23.02 `# RAPIDS cuDF - GPU accelerated DataFrame` \\\n    cudatoolkit=11.8 pytorch-cuda=11.8 `# NVIDIA CUDA version`\n```\n\n### Installing Transformers4Rec Using Docker\n\nTransformers4Rec is pre-installed in the `merlin-pytorch` container that is available from the NVIDIA GPU Cloud (NGC) catalog.\n\nRefer to the [Merlin Containers](https:\u002F\u002Fnvidia-merlin.github.io\u002FMerlin\u002Fstable\u002Fcontainers.html) documentation page for information about the Merlin container names, URLs to container images in the catalog, and key Merlin components.\n\n## Notebook Examples and Tutorials\n\nThe [End-to-end pipeline with NVIDIA Merlin](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002Fpipeline.html) page\nshows how to use Transformers4Rec and other Merlin libraries like NVTabular to build a complete recommender system.\n\nWe have several [example](.\u002Fexamples) notebooks to help you build a recommender system or integrate Transformers4Rec into your system:\n\n- A getting started example that includes training a session-based model with an XLNET transformer architecture.\n- An end-to-end example that trains a model and takes the next step to serve inference with Triton Inference Server.\n- Another end-to-end example that trains and evaluates a session-based model on RNN and also serves inference with Triton Inference Server.\n- A notebook and scripts that reproduce the experiments presented in a paper for RecSys 2021.\n\n## Feedback and Support\n\nIf you'd like to make direct contributions to Transformers4Rec, refer to [Contributing to Transformers4Rec](CONTRIBUTING.md). We're particularly interested in contributions or feature requests for our feature engineering and preprocessing operations. To further advance our Merlin roadmap, we encourage you to share all the details regarding your recommender system pipeline by going to https:\u002F\u002Fdeveloper.nvidia.com\u002Fmerlin-devzone-survey.\n\nIf you're interested in learning more about how Transformers4Rec works, refer to our\n[Transformers4Rec documentation](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002Fgetting_started.html). We also have [API documentation](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002Fapi\u002Fmodules.html) that outlines the specifics of the available modules and classes within Transformers4Rec.\n","# [Transformers4Rec](https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002F)\n\n[![PyPI](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002FTransformers4Rec?color=orange&label=version)](https:\u002F\u002Fpypi.python.org\u002Fpypi\u002FTransformers4Rec)\n[![LICENSE](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FNVIDIA-Merlin\u002FTransformers4Rec)](https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fblob\u002Fstable\u002FLICENSE)\n[![Documentation](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocumentation-blue.svg)](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002FREADME.html)\n\nTransformers4Rec 是一个灵活高效的库，用于序列化和基于会话的推荐任务，并且可以与 PyTorch 配合使用。\n\n该库通过与最流行的自然语言处理框架之一——[Hugging Face Transformers](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers)（HF）集成，架起了自然语言处理（NLP）与推荐系统（RecSys）之间的桥梁。Transformers4Rec 使最先进的 Transformer 架构能够被推荐系统领域的研究人员和从业者所使用。\n\n下图展示了该库在推荐系统中的应用。输入数据通常是交互序列，例如用户在网络会话中浏览的商品或加入购物车的商品。该库可以帮助您对这些交互进行处理和建模，从而为用户下一个可能感兴趣的项目提供更优质的推荐。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA-Merlin_Transformers4Rec_readme_d0736d621079.png\" alt=\"使用 Transformers4Rec 进行序列化和基于会话的推荐\" style=\"width:800px;display:block;margin-left:auto;margin-right:auto;\"\u002F>\u003Cbr>\n\u003Cdiv style=\"text-align:center;margin:20pt\">\n  \u003Cfigcaption style=\"font-style:italic;\">使用 Transformers4Rec 进行序列化和基于会话的推荐\u003C\u002Ffigcaption>\n\u003C\u002Fdiv>\n\n传统的推荐算法在建模用户行为时，通常会忽略时间动态和交互顺序。然而，用户的下一次交互往往与其之前的交互序列密切相关。在某些情况下，这可能是重复购买或再次播放同一首歌。此外，由于用户的偏好会随时间变化，兴趣也可能发生漂移。这些问题正是 **序列化推荐** 任务所要解决的。\n\n序列化推荐的一个特殊用例是 **基于会话的推荐**，在这种场景下，您只能访问当前会话内的短交互序列。这种情况在电子商务、新闻和媒体门户网站等在线服务中非常常见，因为用户可能会出于 GDPR 合规要求而选择匿名浏览，或者是因为用户是新访客而不愿留下任何追踪信息。此外，在用户兴趣会根据上下文或意图频繁变化的情况下，基于当前会话的交互来提供相关推荐也比依赖旧的交互记录更为有效。\n\n为了应对序列化和基于会话的推荐问题，许多先前应用于机器学习和 NLP 研究的序列学习算法已被探索并应用于推荐系统领域，包括 k 最近邻、频繁模式挖掘、隐 Markov 模型、循环神经网络，以及近年来兴起的基于自注意力机制和 Transformer 架构的神经网络模型。然而，与 Transformers4Rec 不同的是，这些框架通常仅接受商品 ID 序列作为输入，并且缺乏模块化、可扩展的生产级实现。\n\n## Transformers4Rec 的优势\n\nTransformers4Rec 具有以下优势：\n\n- **灵活性**：Transformers4Rec 提供了可配置的模块化组件，这些组件与标准的 PyTorch 模块兼容。这种积木式的架构设计使您可以构建具有多塔、多头或多任务及多种损失函数的自定义模型。\n\n- **接入 Hugging Face Transformers**：得益于与 [Hugging Face Transformers](https:\u002F\u002Fgithub.com\u002Fhuggingface\u002Ftransformers) 的集成，您可以使用超过 64 种不同的 Transformer 架构来评估您的序列化和基于会话的推荐任务。\n\n- **支持多种输入特征**：Hugging Face Transformers 原本专为 NLP 设计，因此仅支持标记 ID 序列作为输入。而 Transformers4Rec 则允许您将其他类型的序列化表格数据作为输入，这得益于推荐系统数据集中丰富的特征。Transformers4Rec 使用一种模式来配置输入特征，并能根据目标自动创建必要的层，如嵌入表、投影层和输出层，无需修改代码即可添加新特征。您可以以可配置的方式对交互级和序列级输入特征进行归一化和组合。\n\n- **无缝的预处理与特征工程**：作为 Merlin 生态系统的一部分，Transformers4Rec 与 [NVTabular](https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FNVTabular) 和 [Triton 推理服务器](https:\u002F\u002Fgithub.com\u002Ftriton-inference-server\u002Fserver) 集成。这些组件使您能够构建一个完全由 GPU 加速的序列化和基于会话的推荐流水线。NVTabular 提供了针对基于会话的推荐的常用预处理操作，并导出数据集模式。该模式与 Transformers4Rec 兼容，因此可以自动配置输入特征。您可以将训练好的模型导出到 Triton 推理服务器中，形成一个包含在线特征预处理和模型推理的完整流水线。更多信息请参阅 [使用 NVIDIA Merlin 构建端到端流水线](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002Fpipeline.html)。\n\n\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA-Merlin_Transformers4Rec_readme_1b1cee69e1b2.png\" alt=\"GPU 加速的序列化和基于会话的推荐\" style=\"width:600px;display:block;margin-left:auto;margin-right:auto;\"\u002F>\u003Cbr>\n\u003Cdiv style=\"text-align: center; margin: 20pt\">\n  \u003Cfigcaption style=\"font-style: italic;\">使用 NVIDIA Merlin 组件构建的 GPU 加速序列化和基于会话的推荐流水线\u003C\u002Ffigcaption>\n\u003C\u002Fdiv>\n\n## Transformers4Rec 的成就\n\nTransformers4Rec 近期在两项基于会话的推荐竞赛中取得了胜利：[WSDM WebTour Workshop Challenge 2021（由 Booking.com 主办）](https:\u002F\u002Fdeveloper.nvidia.com\u002Fblog\u002Fhow-to-build-a-winning-deep-learning-powered-recommender-system-part-3\u002F) 和 [SIGIR eCommerce Workshop Data Challenge 2021（由 Coveo 主办）](https:\u002F\u002Fmedium.com\u002Fnvidia-merlin\u002Fwinning-the-sigir-ecommerce-challenge-on-session-based-recommendation-with-transformers-v2-793f6fac2994)。该库在基于会话的推荐任务上表现出比基线算法更高的准确性，并且我们还进行了广泛的实验分析来验证这一点。相关发现已发表在我们的 [ACM RecSys'21 论文](https:\u002F\u002Fdl.acm.org\u002Fdoi\u002F10.1145\u002F3460231.3474255) 中。\n\n## 示例代码：定义并训练模型\n\n使用 Transformers4Rec 训练模型通常需要执行以下高层次步骤：\n\n1. 提供 [schema](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002Fapi\u002Fmerlin_standard_lib.schema.html#merlin_standard_lib.schema.schema.Schema) 并构建输入模块。\n\n   如果您遇到基于会话的推荐问题，通常希望使用\n   [TabularSequenceFeatures](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002Fapi\u002Ftransformers4rec.torch.features.html#transformers4rec.torch.features.sequence.TabularSequenceFeatures)\n   类，因为它可以将上下文特征与序列特征合并。\n\n2. 提供预测任务。\n\n   我们提供的开箱即用的任务可以在我们的 [API 文档](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002Fapi\u002Ftransformers4rec.torch.model.html#module-transformers4rec.torch.model.prediction_task) 中找到。\n\n3. 构建 Transformer 主体，并将其转换为模型。\n\n   下面的代码示例展示了如何使用 PyTorch 定义并训练一个 XLNet 模型，用于下一个项目预测任务：\n\n```python\nfrom transformers4rec import torch as tr\nfrom transformers4rec.torch.ranking_metric import NDCGAt, RecallAt\n\n# 创建 schema 或从磁盘读取：tr.Schema().from_json(SCHEMA_PATH)。\nschema: tr.Schema = tr.data.tabular_sequence_testing_data.schema\n\nmax_sequence_length, d_model = 20, 64\n\n# 定义输入模块以处理表格型输入特征。\ninput_module = tr.TabularSequenceFeatures.from_schema(\n    schema,\n    max_sequence_length=max_sequence_length,\n    continuous_projection=d_model,\n    aggregation=\"concat\",\n    masking=\"causal\",\n)\n\n# 定义类似于 XLNet 架构的 Transformer 配置。\ntransformer_config = tr.XLNetConfig.build(\n    d_model=d_model, n_head=4, n_layer=2, total_seq_length=max_sequence_length\n)\n\n# 定义模型块，包括：输入、掩码、投影和 Transformer 块。\nbody = tr.SequentialBlock(\n    input_module,\n    tr.MLPBlock([d_model]),\n    tr.TransformerBlock(transformer_config, masking=input_module.masking)\n)\n\n# 定义评估的 top-N 指标及截断点。\nmetrics = [NDCGAt(top_ks=[20, 40], labels_onehot=True),\n           RecallAt(top_ks=[20, 40], labels_onehot=True)]\n\n# 定义带有 NextItemPredictionTask 的头部。\nhead = tr.Head(\n    body,\n    tr.NextItemPredictionTask(weight_tying=True, metrics=metrics),\n    inputs=input_module,\n)\n\n# 获取端到端的 Model 类。\nmodel = tr.Model(head)\n```\n\n> 您可以修改上述代码来执行二分类任务。\n> 输入模块中的掩码可以设置为 `None` 而不是 `causal`。\n> 在定义头部时，您可以将 `NextItemPredictionTask`\n> 替换为 `BinaryClassificationTask` 的实例。\n> 请参阅该类的 [API 文档中的示例代码](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002Fapi\u002Ftransformers4rec.torch.html#transformers4rec.torch.BinaryClassificationTask)。\n\n## 安装\n\n您可以使用 Pip、Conda 安装 Transformers4Rec，或者运行 Docker 容器。\n\n### 使用 Pip 安装 Transformers4Rec\n\n您可以安装具有 GPU 加速 Merlin 数据加载器功能的 Transformers4Rec。\n为了获得更好的性能，强烈建议安装包含数据加载器的版本。\n这些组件可以作为 `pip install` 命令的可选参数进行安装。\n\n要使用 Pip 安装 Transformers4Rec，请运行以下命令：\n\n```shell\npip install transformers4rec[nvtabular]\n```\n\n-> 请注意，使用 `pip` 安装 Transformers4Rec 不会自动安装 RAPIDS cuDF。\n-> cuDF 是 NVTabular 变换和 Merlin 数据加载器的 GPU 加速版本所必需的。\n\n使用 pip 安装 cuDF 的说明请参见：https:\u002F\u002Fdocs.rapids.ai\u002Finstall#pip-install\n\n```shell\npip install cudf-cu11 dask-cudf-cu11 --extra-index-url=https:\u002F\u002Fpypi.nvidia.com\n```\n\n### 使用 Conda 安装 Transformers4Rec\n\n要使用 Conda 安装 Transformers4Rec，可以使用 `conda` 或 `mamba` 运行以下命令来创建一个新的环境。\n\n```shell\nmamba create -n transformers4rec-23.04 -c nvidia -c rapidsai -c pytorch -c conda-forge \\\n    transformers4rec=23.04 `# NVIDIA Merlin` \\\n    nvtabular=23.04 `# NVIDIA Merlin - 用于示例笔记本` \\\n    python=3.10 `# 兼容的 Python 环境` \\\n    cudf=23.02 `# RAPIDS cuDF - GPU 加速的 DataFrame` \\\n    cudatoolkit=11.8 pytorch-cuda=11.8 `# NVIDIA CUDA 版本`\n```\n\n### 使用 Docker 安装 Transformers4Rec\n\nTransformers4Rec 已预装在 NVIDIA GPU Cloud (NGC) 目录中提供的 `merlin-pytorch` 容器中。\n\n有关 Merlin 容器名称、目录中容器镜像的 URL 以及关键 Merlin 组件的信息，请参阅 [Merlin 容器](https:\u002F\u002Fnvidia-merlin.github.io\u002FMerlin\u002Fstable\u002Fcontainers.html) 文档页面。\n\n## 笔记本示例与教程\n\n[使用 NVIDIA Merlin 的端到端流水线](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002Fpipeline.html) 页面\n展示了如何使用 Transformers4Rec 和其他 Merlin 库（如 NVTabular）构建完整的推荐系统。\n\n我们提供了多个 [示例](.\u002Fexamples) 笔记本，帮助您构建推荐系统或将 Transformers4Rec 集成到您的系统中：\n\n- 一个入门示例，包括使用 XLNET Transformer 架构训练基于会话的模型。\n- 一个端到端示例，训练模型后进一步使用 Triton 推理服务器进行推理。\n- 另一个端到端示例，训练并评估基于会话的 RNN 模型，同时使用 Triton 推理服务器进行推理。\n- 一本笔记本和脚本，复现了 RecSys 2021 会议上发表论文中的实验。\n\n## 反馈与支持\n\n如果您希望直接为 Transformers4Rec 做出贡献，请参阅 [为 Transformers4Rec 做贡献](CONTRIBUTING.md)。我们尤其关注特征工程和预处理操作方面的贡献或功能请求。为进一步推进 Merlin 发展路线图，我们鼓励您访问 https:\u002F\u002Fdeveloper.nvidia.com\u002Fmerlin-devzone-survey，分享关于您推荐系统流水线的所有详细信息。\n\n如果您想了解更多关于 Transformers4Rec 的工作原理，请参阅我们的\n[Transformers4Rec 文档](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002Fgetting_started.html)。我们还提供 [API 文档](https:\u002F\u002Fnvidia-merlin.github.io\u002FTransformers4Rec\u002Fstable\u002Fapi\u002Fmodules.html)，其中详细介绍了 Transformers4Rec 中可用的模块和类。","# Transformers4Rec 快速上手指南\n\nTransformers4Rec 是一个灵活高效的库，专为**序列推荐**和**会话推荐**设计。它作为自然语言处理（NLP）与推荐系统（RecSys）之间的桥梁，集成了 Hugging Face Transformers，让开发者能够轻松将先进的 Transformer 架构应用于推荐场景。\n\n## 环境准备\n\n在开始之前，请确保您的环境满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu 18.04\u002F20.04\u002F22.04)\n*   **GPU**: NVIDIA GPU (推荐用于加速数据处理和模型训练)\n*   **CUDA**: 版本需与 PyTorch 及 RAPIDS cuDF 兼容 (例如 CUDA 11.8)\n*   **Python**: 3.8 - 3.10\n*   **前置依赖**:\n    *   PyTorch\n    *   RAPIDS cuDF (若需使用 GPU 加速的数据加载器 NVTabular，此项必选)\n\n> **注意**：如果您计划使用 GPU 加速的 Merlin Dataloader 和 NVTabular 预处理功能，必须安装 `cudf`。\n\n## 安装步骤\n\n您可以根据需求选择 Pip、Conda 或 Docker 方式进行安装。\n\n### 方式一：使用 Pip 安装（推荐）\n\n此方式适合大多数 Python 开发环境。为了获得最佳性能，建议安装包含 `nvtabular` 支持的版本。\n\n1.  **安装 Transformers4Rec**:\n    ```shell\n    pip install transformers4rec[nvtabular]\n    ```\n\n2.  **安装 GPU 加速依赖 (可选但推荐)**:\n    如果需要使用 GPU 加速的数据处理，需单独安装 `cudf`。请根据您的 CUDA 版本选择对应命令（以下为 CUDA 11.x 示例）：\n    ```shell\n    pip install cudf-cu11 dask-cudf-cu11 --extra-index-url=https:\u002F\u002Fpypi.nvidia.com\n    ```\n\n### 方式二：使用 Conda\u002FMamba 安装\n\n使用 Conda 可以更方便地管理复杂的依赖关系（如 CUDA toolkit 和 PyTorch 版本）。\n\n```shell\nmamba create -n transformers4rec-23.04 -c nvidia -c rapidsai -c pytorch -c conda-forge \\\n    transformers4rec=23.04 \\\n    nvtabular=23.04 \\\n    python=3.10 \\\n    cudf=23.02 \\\n    cudatoolkit=11.8 pytorch-cuda=11.8\n```\n*注：国内用户若访问官方源较慢，可配置清华或中科大镜像源替换 `-c` 后的频道地址。*\n\n### 方式三：使用 Docker\n\nNVIDIA 提供了预装好所有依赖的容器镜像，适合生产环境或避免环境冲突。\n\n从 NVIDIA GPU Cloud (NGC) 拉取 `merlin-pytorch` 容器：\n```shell\ndocker pull nvcr.io\u002Fnvidia\u002Fmerlin\u002Fmerlin-pytorch:23.04\n```\n\n## 基本使用\n\n以下示例展示了如何使用 PyTorch 定义并训练一个基于 **XLNet** 架构的下一项预测（Next Item Prediction）模型。\n\n### 核心步骤代码示例\n\n```python\nfrom transformers4rec import torch as tr\nfrom transformers4rec.torch.ranking_metric import NDCGAt, RecallAt\n\n# 1. 准备 Schema 和数据\n# 这里使用内置的测试数据 schema，实际使用中可从 JSON 文件加载: tr.Schema().from_json(SCHEMA_PATH)\nschema: tr.Schema = tr.data.tabular_sequence_testing_data.schema\n\nmax_sequence_length, d_model = 20, 64\n\n# 2. 定义输入模块\n# TabularSequenceFeatures 会自动处理表格特征和序列特征的合并\ninput_module = tr.TabularSequenceFeatures.from_schema(\n    schema,\n    max_sequence_length=max_sequence_length,\n    continuous_projection=d_model,\n    aggregation=\"concat\",\n    masking=\"causal\", # 因果掩码，适用于序列推荐\n)\n\n# 3. 配置 Transformer 架构 (以 XLNet 为例)\ntransformer_config = tr.XLNetConfig.build(\n    d_model=d_model, n_head=4, n_layer=2, total_seq_length=max_sequence_length\n)\n\n# 4. 构建模型主体 (Body)\n# 包含输入处理、MLP 投影层和 Transformer 块\nbody = tr.SequentialBlock(\n    input_module,\n    tr.MLPBlock([d_model]),\n    tr.TransformerBlock(transformer_config, masking=input_module.masking)\n)\n\n# 5. 定义评估指标\nmetrics = [NDCGAt(top_ks=[20, 40], labels_onehot=True),\n           RecallAt(top_ks=[20, 40], labels_onehot=True)]\n\n# 6. 定义模型头部 (Head) 和任务\n# 使用 NextItemPredictionTask 进行下一项预测\nhead = tr.Head(\n    body,\n    tr.NextItemPredictionTask(weight_tying=True, metrics=metrics),\n    inputs=input_module,\n)\n\n# 7. 获取完整的端到端模型\nmodel = tr.Model(head)\n\n# 接下来即可使用标准的 PyTorch Trainer 或自定义循环进行训练\n# trainer = tr.Trainer(model=model, ...)\n# trainer.train()\n```\n\n### 关键说明\n*   **灵活性**：您可以轻松替换 `transformer_config` 为其他 Hugging Face 支持的架构（如 BERT, SASRec 等）。\n*   **任务切换**：若需进行二分类任务，可将 `NextItemPredictionTask` 替换为 `BinaryClassificationTask`，并将 `masking` 设为 `None`。\n*   **特征工程**：`TabularSequenceFeatures` 会根据 Schema 自动创建嵌入表和投影层，无需手动编写特征处理代码。","某大型跨境电商平台的技术团队正致力于优化匿名用户在新品浏览会话中的实时商品推荐效果。\n\n### 没有 Transformers4Rec 时\n- **忽视时序动态**：传统协同过滤算法仅统计用户历史总偏好，无法捕捉用户在当前会话中从“查看跑鞋”到“搜索运动袜”的即时兴趣转移。\n- **冷启动困境**：面对未登录或受 GDPR 限制无法读取 Cookie 的匿名访客，因缺乏长期行为数据，系统只能推送毫无个性的热门榜单，转化率极低。\n- **架构复用困难**：团队试图手动复现 NLP 领域的 Transformer 模型来处理序列数据，但需耗费大量精力重写代码以适配推荐系统的物品 ID 输入，开发周期长达数月。\n- **扩展性受限**：自研的序列模型缺乏模块化设计，难以灵活调整网络层级或增加辅助任务（如同时预测点击和购买），导致模型迭代缓慢。\n\n### 使用 Transformers4Rec 后\n- **精准捕捉意图**：利用内置的序列建模能力，Transformers4Rec 能根据用户当前会话中短短几次点击顺序，实时推断其潜在购买意图并推荐互补商品。\n- **攻克会话级推荐**：专为会话场景设计，即使没有任何历史画像，也能基于当前短序列交互生成高质量推荐，显著提升了匿名用户的留存与转化。\n- **无缝集成 HF 生态**：直接桥接 Hugging Face Transformers，团队可一键调用超过 64 种成熟的 Transformer 架构（如 BERT、XLNet），将模型验证时间从数周缩短至几天。\n- **灵活定制架构**：凭借模块化的构建块，工程师轻松搭建了多塔多任务模型，在同一个框架下同时优化点击率与客单价，且完美兼容现有的 PyTorch 生产管线。\n\nTransformers4Rec 通过将前沿的 NLP 序列处理能力无缝引入推荐系统，让企业能够以极低的成本实现懂“上下文”的实时智能推荐。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FNVIDIA-Merlin_Transformers4Rec_b6da5d1c.png","NVIDIA-Merlin","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FNVIDIA-Merlin_46f912e0.jpg","Merlin is a framework providing end-to-end GPU-accelerated recommender systems, from feature engineering to deep learning training and deploying to production",null,"https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin",[21,25],{"name":22,"color":23,"percentage":24},"Python","#3572A5",98.5,{"name":26,"color":27,"percentage":28},"Shell","#89e051",1.5,1266,159,"2026-04-08T12:24:25","Apache-2.0",3,"Linux","需要 NVIDIA GPU（用于 GPU 加速的 NVTabular 和 Merlin Dataloader），需安装 RAPIDS cuDF。支持 CUDA 11.8（Conda 安装示例中指定）。具体显存大小未说明，但建议具备足够显存以运行 Transformer 模型。","未说明",{"notes":38,"python":39,"dependencies":40},"该工具主要设计用于 Linux 环境（通过 Docker 或 Conda 安装示例推断）。若需 GPU 加速功能，必须单独安装 RAPIDS cuDF，pip 安装不会自动包含。推荐使用 Conda 或 Docker 进行部署以确保依赖兼容性。该库与 NVIDIA Merlin 生态系统（NVTabular, Triton Inference Server）深度集成，可构建端到端的 GPU 加速推荐流水线。","3.10",[41,42,43,44,45,46],"PyTorch","Hugging Face Transformers","NVTabular","RAPIDS cuDF","dask-cudf","cudatoolkit",[48,49,50,51],"语言模型","开发框架","数据工具","图像",[53,54,55,56,57,58,59,60,61,62,63,64,65],"transformer","pytorch","tabular-data","huggingface","bert","gtp","language-model","xlnet","nlp","seq2seq","recsys","recommender-system","session-based-recommendation",2,"ready","2026-03-27T02:49:30.150509","2026-04-12T05:26:22.877210",[71,76,81,86,91,96,100],{"id":72,"question_zh":73,"answer_zh":74,"source_url":75},30270,"Conda 安装 transformers4rec 时卡在 'Solving environment' 阶段怎么办？","这是 Conda 依赖解析的常见问题，尤其是在混合使用 `nvidia` 和 `conda-forge` 通道时。建议尝试以下解决方案：\n1. 不要通过 conda 安装完整的 RAPIDS 套件，而是创建一个空的 conda 环境，然后通过 pip 安装 `cudf` 和 `dask_cudf`。\n2. 避免同时指定过多通道，或者尝试使用 `mamba` 代替 `conda` 进行安装，因为 mamba 的解析速度更快。\n3. 如果必须使用 conda，尝试先安装基础依赖，再单独安装 `transformers4rec`。","https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fissues\u002F569",{"id":77,"question_zh":78,"answer_zh":79,"source_url":80},30266,"如何在本地进行模型推理而不使用 Triton Server？","可以直接在本地加载训练好的模型并进行推理，无需部署 Triton Server。对于测试少量会话（如 10-20 个）的性能，可以直接调用模型对象。注意：如果使用 `eval_on_last_item_seq_only=True`，评估指标是基于序列中最后一项的预测命中率计算的。在自定义推理时，需确保输入数据经过与训练时相同的 NVTabular 预处理流程（包括会话长度过滤，例如忽略长度小于 2 的会话），以保证结果一致。","https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fissues\u002F359",{"id":82,"question_zh":83,"answer_zh":84,"source_url":85},30267,"模型输出的预测分数（logits）为什么是负数或看起来不像概率？","模型输出的原始分数是 logit 值，而非概率值，因此它们可以是负数。Transformers4Rec 在内部使用 `torch.nn.LogSoftMax` 作为损失函数的一部分，其返回值范围在 [-inf, 0) 之间。如果您需要概率分布，需要对输出应用 `exp()` 操作或直接使用 Softmax 进行转换，但在计算排名指标（如 Recall@K）时，直接使用 logit 值进行排序即可，无需转换。","https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fissues\u002F605",{"id":87,"question_zh":88,"answer_zh":89,"source_url":90},30268,"Schema (schema.pb) 文件是如何生成的？需要手动创建吗？","Schema 文件通常是通过 NVTabular 工作流自动生成的，不需要手动创建 `.pb` 文件。关键在于在定义特征工程操作时正确添加标签（Tags）。例如，必须使用 `Tags.ITEM_ID` 标记物品 ID 列，否则在后续步骤（如掩码处理）会报错。示例代码如下：\n```python\nfrom merlin.schema.tags import Tags\nimport nvtabular.ops as nvt\n\n# 在添加元数据时指定标签\nworkflow = nvt.Workflow([\n    cat_features >> nvt.ops.AddMetadata(tags=[Tags.CATEGORICAL, Tags.ITEM_ID])\n])\n```\n运行工作流拟合数据后，可以通过 `workflow.output_schema` 查看生成的 schema，并在保存模型或导出时自动包含这些信息。","https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fissues\u002F271",{"id":92,"question_zh":93,"answer_zh":94,"source_url":95},30269,"如何在 Vertex AI 或其他云平台上使用自定义容器运行 Transformers4Rec？","可以基于 NVIDIA Merlin 的基础镜像构建自定义容器。关键是要确保容器内的库版本兼容。有用户反馈在 A100 GPU 上成功运行的经验是：需要更新 NVTabular 到最新版本，并在 Triton Server 容器中将 PyTorch 更新为 nightly 版本以解决兼容性问题。Dockerfile 示例如下：\n```dockerfile\nFROM nvcr.io\u002Fnvidia\u002Fmerlin\u002Fmerlin-inference:21.11\n# 在此处添加更新库的命令，例如 pip install --upgrade nvtabular torch\nEXPOSE 8080\nEXPOSE 8888\nENTRYPOINT jupyter lab --ip 0.0.0.0 --port 8080 --allow-root --no-browser --NotebookApp.token='' --NotebookApp.password=''\n```","https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fissues\u002F339",{"id":97,"question_zh":98,"answer_zh":99,"source_url":75},30271,"进行本地推理时需要安装哪些额外的依赖库？","如果仅进行本地模型推理（不使用 Triton Inference Server 的高级功能），通常只需要基础的 PyTorch 和 Transformers4Rec 库。但如果您参考的是某些特定的推理笔记本（Notebook），其中可能包含了针对 Triton 客户端的代码，这时需要安装 `tritonclient[all]`。如果您的用例纯粹是本地 Python 脚本推理，可以忽略 Triton 相关的依赖，直接加载模型权重文件进行预测。",{"id":101,"question_zh":102,"answer_zh":103,"source_url":80},30272,"为什么我自己计算的 Recall 指标与 trainer.evaluate() 的结果不一致？","差异通常源于数据预处理步骤的不一致。NVTabular 管道默认会应用“最小会话长度过滤器”（min session length filter），即长度小于 2 的会话会被排除在评估之外。如果您在本地手动截断数据集进行推理，请确保也应用了相同的过滤逻辑。此外，检查是否正确处理了序列的输入（前 N-1 项）和标签（第 N 项），以及是否使用了正确的截断策略来匹配 `eval_on_last_item_seq_only` 的设置。",[105,110,114,118,123,128,133,138,143,148,153,158,163,168,173,178,183,188,193,198],{"id":106,"version":107,"summary_zh":108,"released_at":109},214641,"v23.12.00","## 变更内容\n* 在 https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F742 中使用 @ajschmidt8 的 `copy-pr-bot`\n* 在 https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F753 中添加 RAPIDS 基础设施，由 @jperez999 完成\n* 在 https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F757 中，修复了当 CI 使用单 GPU 时 Transformer 和示例中的错误，由 @gabrielspmoreira 完成\n* 在 https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F767 中，修复了 gdown 的版本问题，由 @EmmaQiaoCh 完成\n\n## 新贡献者\n* @ajschmidt8 在 https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F742 中完成了首次贡献\n* @EmmaQiaoCh 在 https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F767 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fcompare\u002Fv23.08.00...v23.12.00","2024-01-11T14:03:56",{"id":111,"version":112,"summary_zh":18,"released_at":113},214642,"v23.08.00","2023-08-29T16:28:15",{"id":115,"version":116,"summary_zh":18,"released_at":117},214643,"v23.06.00","2023-06-22T21:00:10",{"id":119,"version":120,"summary_zh":121,"released_at":122},214644,"v23.05.00","## 变更内容\n\n## 🐜 Bug 修复\n\n- 修复在使用权重共享且 Transformer 输出与物品嵌入的维度不同时的投影层问题 @gabrielspmoreira (#689)\n\n## 🚀 新特性\n\n- 修复 stochastic_swap_noise 测试中的随机性问题 @sararb (#707)\n\n## 📄 文档\n\n- 更新端到端示例，使其使用 Systems API @radekosmulski (#680)\n\n## 🔧 维护\n\n- 将 Transformers Torch Extras 添加到安装依赖中 @oliverholworthy (#699)\n- 添加 Conda 包发布工作流 @oliverholworthy (#688)\n- 添加检查基础分支并设置稳定分支的工作流 @oliverholworthy (#694)\n- 将集成测试作业名称从 `gpu-ci` 重命名为 `gpu-ci-integration` @oliverholworthy (#687)\n- 移除 NVTabular 入门示例中的填充 @oliverholworthy (#677)\n- 更新 GitHub 工作流中的标签模式 @oliverholworthy (#695)\n- 当 PR 被关闭时，不再重新运行 GitHub Actions @nv-alaiacano (#691)\n- 移除 blossom GitHub Action @nv-alaiacano (#681)\n- 在推理步骤中添加 topk 参数，以返回 topk 个物品及其得分 @rnyak (#678)\n- 使用 `torch.testing.assert_close` 来检查模型输出 @oliverholworthy (#686)","2023-05-31T14:40:19",{"id":124,"version":125,"summary_zh":126,"released_at":127},214645,"v23.04.00","## 变更内容\n\n## 🐜 Bug 修复\n\n- 更新多 GPU 笔记本，以设置 CuPy 设备 @edknv (#675)\n- 修复 core-schema 中 get_output_sizes_from_schema 的 bug @marcromeyn (#663)\n- 从模型的 forward 方法中移除 torch.squeeze() 步骤。@sararb (#659)\n- 在数据加载器中设置设备 @edknv (#654)\n- 修复 `Trainer.predict(..)` 返回的预测结果 @sararb (#641)\n\n## 🚀 功能特性\n\n- 为 NextItemPredictionTask 实现了采样 softmax @gabrielspmoreira (#671)\n- 为模型添加对稀疏输入的支持 @oliverholworthy (#666)\n- 允许使用 core 模块中的 Schema 类来创建 Trainer @marcromeyn (#642)\n- 清理模型的 input_schema 和 output_schema 中的形状信息 @rnyak (#628)\n- 允许使用 core 模块中的 Schema 类来创建 TabularSequenceFeatures @marcromeyn (#638)\n- 允许使用 core 模块中的 Schema 类来创建输入模块 @marcromeyn (#634)\n\n## 📄 文档\n\n- 扩展入门部署示例，以同时部署 NVT 和 TF4Rec 模型 @rnyak (#670)\n- 裁剪表格并处理先前 PR 中的评论 @nzarif (#510)\n- 更新示例笔记本，使其从 Merlin Core 创建 Schema 对象 @rnyak (#650)\n- 将 NVTabulardataloader 替换为 Merlindataloader @rnyak (#644)\n\n## 🔧 维护\n\n- 更新多 GPU 笔记本，以设置 CuPy 设备 @edknv (#675)\n- 添加并发设置，以便在向 PR 推送新提交时停止测试 @nv-alaiacano (#673)\n- 切换到使用 2 个 GPU 操作运行器进行多 GPU 测试 @karlhigley (#665)\n- 添加工作流，用于检查拉取请求的基础分支是否为 development 分支 @oliverholworthy (#656)\n- 修复新单元测试设置的 CI 脚本 @jperez999 (#658)\n- 为部署 TorchScript 模型的示例笔记本添加单元测试 @rnyak (#657)\n- 将笔记本测试分离到各自的 tox 环境中 @nv-alaiacano (#653)\n- 将 transformers>=4.20 中的 `use_amp` 用法更新为 `use_cuda_amp` @oliverholworthy (#627)\n- 更新示例笔记本，使其从 Merlin Core 创建 Schema 对象 @rnyak (#650)\n- 更新稀疏特征的填充方式，以支持数据加载器的更改 @oliverholworthy (#647)\n- 修复 BC\u002FRegression 任务情况下模型 output_schema 的维度 @rnyak (#646)\n- 修复 test_remove_consecutive_interactions 单元测试 @rnyak (#643)\n- 将 NVTabulardataloader 替换为 Merlindataloader @rnyak (#644)\n- 清理模型 input_schema 和 output_schema 中的形状信息 @rnyak (#628)\n- 将 schema Tags 迁移到 merlin.schema.Tags @nv-alaiacano (#632)\n- 清理测试中的导入语句 @marcromeyn (#626)","2023-04-26T21:17:20",{"id":129,"version":130,"summary_zh":131,"released_at":132},214646,"v23.02.00","## 变更内容\n\n## 🐜 Bug 修复\n\n- 调整推理笔记本以适应底层形状的变化 @karlhigley (#631)\n\n## 🚀 功能特性\n\n- 向 MerlinDataLoader 类添加文档字符串和 row_groups_per_part 参数 @sararb (#590)\n- 简化入门级 ETL 流程，并修复使用 Torch Script 的推理笔记本 @rnyak (#604)\n\n## 📄 文档更新\n\n* 更新 README 中的链接——NVIDIA Merlin 的端到端流水线 @masoncusack (#593)\n* 修复多 GPU 相关文档 @bbozkaya (#591)\n* Transformers4Rec 文档重构 @lgardenhire (#428)\n* 在 README 中添加 BC 任务脚本 @rnyak (#600)\n\n## 🔧 维护工作\n\n* 修复 test_soft_embedding 单元测试中的断言错误 @rnyak (#595)\n* 对入门级 ETL 和训练笔记本进行小幅修复，并修复推理笔记本中的元组错误 @rnyak (#586)\n* 拉取发布分支，以便确定正确的发布分支 @oliverholworthy (#609)\n* 添加 Jenkinsfile @AyodeAwe (#537)\n* 将示例中的 data_loader_engine 改为 'merlin' @edknv (#580)\n* 在 GHA Runner 上为 GPU CI 添加工作流 @jperez999 (#585)\n\n## 新贡献者\n* @lgardenhire 在 https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F428 中完成了首次贡献\n* @masoncusack 在 https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F593 中完成了首次贡献\n* @AyodeAwe 在 https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F537 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fcompare\u002Fv0.1.16...v23.02.00","2023-03-08T16:37:07",{"id":134,"version":135,"summary_zh":136,"released_at":137},214647,"v0.1.16","## 亮点\n\n### 1. 规范 ModelOutput API：\n- 移除含义模糊的标志位：`ignore_masking` 和 `hf_format`：https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F543\n- 引入 `testing` 标志位，用于区分评估模式（=True）和推理模式（=False）：https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F543\n- 所有预测任务返回相同的输出  \nhttps:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F546\n    - 在训练和评估期间：输出为一个包含三个元素的字典：```{\"loss\":torch.tensor, \"labels\": torch.tensor, \"predictions\": torch.tensor}```\n    - 在推理期间：输出为预测张量。\n\n### 2. 扩展 `Trainer` 类以支持所有预测任务：\nhttps:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F564\n- `Trainer` 类现在可以接受定义了二分类或回归任务的 T4Rec 模型。\n- 移除 `HFWrapper` 类，因为 `Trainer` 现在直接支持基础的 T4Rec `Model` 类。\n- 将 `Trainer` 的参数 `predict_top_k` 的默认值从 `10` 改为 `0`。\n    * 需要注意的是，获取 top-k 预测仅适用于 `NextItemPredictionTask`，用户应在 `T4RecTrainingArguments` 对象中显式设置该参数。若未指定，`Trainer.predict()` 方法将返回整个物品目录的未排序预测结果。\n- 在 `Trainer` 类中支持多任务学习：它可以接受定义了多个任务和\u002F或多个输出头的任意 T4Rec 模型。\n\n### 3. 修复基于 Transformer 并采用掩码语言建模（MLM）训练的模型的推理性能：\nhttps:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F551\n* 在推理时，输入序列会在最后一个非填充位置后扩展一个 [MASK] 嵌入，以考虑目标位置。[MASK] 位置的隐藏表示用于计算下一个物品的预测分数。\n* 经过此修复，用户在调用 `Trainer.predict()` 或 `model(test_batch, training=False, testing=False)` 时，无需再向输入测试数据中添加一个占位符位置。\n\n### 4. 更新 Transformers4Rec 以使用新的 merlin-dataloader 包：https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F547\n* NVTabularDataLoader 已更名为 MerlinDataLoader，以使用 merlin-dataloader 包中的加载器。\n* 用户可以在 `T4RecTrainingArguments` 对象中指定 `data_loader_engine=‘merlin’` 参数，以使用 merlin 数据加载器。该加载器同时支持 GPU 和 CPU 环境。此外，还保留了 `nvtabular` 别名以确保向后兼容性。\n\n## 变更内容\n\n## ⚠ 破坏性变更\n\n- 扩展 `Trainer` 类以支持所有 T4Rec 预测任务 @sararb (#564)\n- 规范预测任务的输出 @nzarif (#546)\n- 使用 merlin-dataloader 包 @edknv (#547)\n- 第一部分重构——标志位修改 @nzarif (#543)\n\n## 🐜 错误修复\n\n- 修复由最新 Torchmetrics (0.11.0) 引发的错误 @sararb (#576)\n- 修复 `Trainer.pred` 中的测试数据路径","2023-02-03T19:26:23",{"id":139,"version":140,"summary_zh":141,"released_at":142},214648,"v0.1.15","## 变更内容\n\n## 🐜 Bug 修复\n\n- 修复 CI 测试失败问题，该问题与 `sparse_names` 包含不在模型模式中的特征有关 @sararb (#541)\n- 修复 CLM 掩码类中由于新数据加载器变更导致的 dtype 不匹配问题 @sararb (#539)\n- 根据新 Merlin 加载器的要求修复 CI 测试 @sararb (#536)\n- 快速修复：在训练下一个项目预测时应用掩码 @nzarif (#514)\n\n## 🚀 功能\n\n- 向 T4Rec 模型类添加保存\u002F加载以及输入输出模式方法 @sararb (#507)\n\n## 📄 文档\n\n- 为 T4Rec PyTorch 添加多 GPU 训练示例 @bbozkaya (#521)\n\n## 🔧 维护\n\n- 修复 CI 测试失败问题，该问题与 `sparse_names` 包含不在模型模式中的特征有关 @sararb (#541)\n- 根据新 Merlin 加载器的要求修复 CI 测试 @sararb (#536)\n- 在 ETL 示例中指定 Normalize 操作的输出 dtype，以匹配模型预期 @oliverholworthy (#523)\n- 修复 MeanReciprocalRankAt 中的名称和 bug @rnyak (#522)\n- 更新 mypy 版本，使其与 pre-commit-config 中的版本一致 @oliverholworthy (#517)","2022-11-22T19:27:30",{"id":144,"version":145,"summary_zh":146,"released_at":147},214649,"v0.1.14","## 变更内容\n\n## 🚀 功能\n\n- 将 `ignore_masking` 默认设置为 True @sararb (#498)\n- 【功能】修复了多 GPU 的 DistributedDataParallel 实现 @nzarif (#496)\n\n## 📄 文档\n\n- 添加了使用 DP 和 DDP 进行多 GPU 训练的文档 @nzarif (#503)","2022-10-24T18:15:44",{"id":149,"version":150,"summary_zh":151,"released_at":152},214650,"v0.1.13","## 变更内容\n\n## 🐜 Bug 修复\n\n- [BUG] 重命名了 `trainer.model.module`，并修复了 DataParallel 模式 @nzarif (#483)\n\n## 🔧 维护\n\n- 调整了合成数据生成中使用的设备 @karlhigley (#486)\n","2022-09-26T18:06:28",{"id":154,"version":155,"summary_zh":156,"released_at":157},214651,"v0.1.12","## 变更内容\n\n## 🚀 功能\n\n- 更新笔记本中的 NV 标志 @rnyak (#482)\n- 更新入门 ETL 笔记本，使其能够从 nvt 生成模式文件，并更新训练笔记本以读取该模式文件 @rnyak (#471)\n- 使用 Torchscript 使模型可追溯 @edknv (#469)\n- 修复 export_pytorch_ensemble() 函数中的 sparse_max 字典 @rnyak (#468)\n- 修复教程中的 ETL 流水线 @rnyak (#467)\n- 对示例笔记本进行小幅修复 @rnyak (#462)\n\n## 📄 文档\n\n- 更新笔记本中的 NV 标志 @rnyak (#482)\n- 第二次清理，移除对 TensorFlow 的提及 @mikemckiernan (#479)\n- 移除对 TensorFlow 的提及 @mikemckiernan (#474)\n\n## 🔧 维护\n\n- 更新教程笔记本中处理 CSV 文件文本的部分 @rnyak (#481)\n- 将 `versioneer` 从 0.20 升级到 0.23 @oliverholworthy (#472)","2022-09-06T18:29:51",{"id":159,"version":160,"summary_zh":161,"released_at":162},214652,"v0.1.11","## 变更内容\n\n## 🐜 Bug 修复\n\n- 修改指标名称前缀，使其与 HF Trainer 代码保持一致。@sararb (#454)\n\n## 🚀 功能特性\n\n- 向 Trainer 类添加预测步骤支持 @sararb (#436)\n- 添加 PostContextFusion 块以支持 Latent Cross 技术 @sararb (#444)\n- 支持顺序二分类任务 @sararb (#434)\n\n## 📄 文档\n\n- 更新 Conda 安装命令 @mikemckiernan (#445)\n\n## 🔧 维护\n\n- 替换集成测试数据路径 @jperez999 (#457)\n- 移除不必要的文档依赖项 @benfred (#458)\n- 在单元测试和集成测试中不执行 `git pull origin main`，改用容器版本 @karlhigley (#455)\n- 将 TensorFlow 相关代码移至 `tensorflow` 分支 @karlhigley (#448)\n- 更新对 `nvidia-dllogger` 的依赖版本，以符合安装说明 @karlhigley (#450)\n- 在 Notebook 测试中将 `INPUT_DATA_DIR` 环境变量设置为 `\u002Ftmp\u002Fdata` @karlhigley (#449)","2022-07-19T22:01:47",{"id":164,"version":165,"summary_zh":166,"released_at":167},214653,"v0.1.10","## What’s Changed\r\n\r\n## 🔧 Maintenance\r\n\r\n- Update the container labels @benfred (#433)\r\n","2022-06-16T19:46:25",{"id":169,"version":170,"summary_zh":171,"released_at":172},214654,"v0.1.9","## What’s Changed\r\n\r\n## 🐜 Bug Fixes\r\n\r\n- fix: Enable tests to succeed @mikemckiernan (#416)\r\n\r\n## 📄 Documentation\r\n\r\n- Add common release-drafter configuration @mikemckiernan (#415)\r\n- Improve TOC navigation @mikemckiernan (#413)\r\n\r\n## 🔧 Maintenance\r\n\r\n- Add a GA workflow that requires labels on PR's @benfred (#431)\r\n- Use shared implementation of triage workflow @benfred (#430)\r\n- Request that PRs are labeled @mikemckiernan (#419)\r\n","2022-06-15T00:13:37",{"id":174,"version":175,"summary_zh":176,"released_at":177},214655,"v0.1.8","## What's Changed\r\n* docs: Use MyST-NB and ext-toc by @mikemckiernan in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F408\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fcompare\u002Fv0.1.7...v0.1.8","2022-05-10T00:08:06",{"id":179,"version":180,"summary_zh":181,"released_at":182},214656,"v0.1.7","## What's Changed\r\n* Update reqs by @albert17 in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F368\r\n* Add MRR to ranking metrics module by @murphp15 in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F354\r\n* Updates Container testing by @albert17 in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F379\r\n* chore: Add docs preview to PRs by @mikemckiernan in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F382\r\n* fixes for workflow and model triton config creation by @jperez999 in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F388\r\n* docs: Add nightly multi-version build by @mikemckiernan in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F390\r\n* Set click\u003C8.1.0 by @benfred in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F396\r\n* Fix test by @albert17 in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F397\r\n* docs: Add a redirect page by @mikemckiernan in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F394\r\n* Allow the test_schocastic_swap_noise tests to fail by @benfred in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F401\r\n* Remove pinned keras version by @benfred in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F398\r\n* Automate pushing package to pypi by @benfred in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F402\r\n\r\n## New Contributors\r\n* @murphp15 made their first contribution in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F354\r\n* @mikemckiernan made their first contribution in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F382\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fcompare\u002Fv0.1.6...v0.1.7","2022-04-06T23:19:51",{"id":184,"version":185,"summary_zh":186,"released_at":187},214657,"v0.1.6","## What's Changed\r\n* Exit tests if error by @albert17 in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F366\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fcompare\u002Fv0.1.4...v0.1.6","2022-03-03T00:23:43",{"id":189,"version":190,"summary_zh":191,"released_at":192},214658,"v0.1.5","* No changes in this release\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fcompare\u002Fv0.1.4...v0.1.5","2022-02-02T17:07:24",{"id":194,"version":195,"summary_zh":196,"released_at":197},214659,"v0.1.4","## What's Changed\r\n* fix tf import dependency by @sararb in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F344\r\n* Ci fix by @jperez999 in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F346\r\n* Add new issues to the backlog project by @benfred in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F347\r\n* Initial Blossom CI by @albert17 in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F349\r\n* Update requirements by @albert17 in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F351\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fcompare\u002Fv0.1.3...v0.1.4","2022-01-11T23:58:07",{"id":199,"version":200,"summary_zh":201,"released_at":202},214660,"v0.1.3","## What's Changed\r\n* Refactor RankingMetric to fix serialization and graph-mode by @sararb in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F308\r\n* Adding missing DLLogger requirement for the paper reproducibility example by @gabrielspmoreira in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F315\r\n* Add codespell to CI by @benfred in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F316\r\n* Disable stochastic swap noise during eval by @gabrielspmoreira in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F311\r\n* CI working by @albert17 in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F326\r\n* Fix a bug in GPU evaluation with PyArrow dataloader by @WoosukKwon in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F325\r\n* Fix save\u002Fload tf4rec model by @sararb in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F317\r\n* Quick fix of the value returned by fit_and_evaluate by @sararb in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F334\r\n* Fixes the OOM error when running all unit tests in CI env and GPU enabled machine by @gabrielspmoreira in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F336\r\n* Getting-started notebook with CLM task  by @sararb in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F332\r\n* Tf end-to-end example notebook by @rnyak in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F341\r\n* Integration testing infrastructure by @albert17 in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F343\r\n* Ci fix by @jperez999 in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F345\r\n\r\n## New Contributors\r\n* @WoosukKwon made their first contribution in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F325\r\n* @jperez999 made their first contribution in https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fpull\u002F345\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002FNVIDIA-Merlin\u002FTransformers4Rec\u002Fcompare\u002Fv0.1.2...v0.1.3","2021-12-07T17:53:30",[204,213,221,229,237,246],{"id":205,"name":206,"github_repo":207,"description_zh":208,"stars":209,"difficulty_score":33,"last_commit_at":210,"category_tags":211,"status":67},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,"2026-04-06T06:32:30",[212,49,51,50],"Agent",{"id":214,"name":215,"github_repo":216,"description_zh":217,"stars":218,"difficulty_score":33,"last_commit_at":219,"category_tags":220,"status":67},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[49,51,212],{"id":222,"name":223,"github_repo":224,"description_zh":225,"stars":226,"difficulty_score":66,"last_commit_at":227,"category_tags":228,"status":67},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",150720,"2026-04-11T11:33:10",[49,212,48],{"id":230,"name":231,"github_repo":232,"description_zh":233,"stars":234,"difficulty_score":66,"last_commit_at":235,"category_tags":236,"status":67},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[49,51,212],{"id":238,"name":239,"github_repo":240,"description_zh":241,"stars":242,"difficulty_score":66,"last_commit_at":243,"category_tags":244,"status":67},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[245,212,51,49],"插件",{"id":247,"name":248,"github_repo":249,"description_zh":250,"stars":251,"difficulty_score":66,"last_commit_at":252,"category_tags":253,"status":67},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[245,49]]