Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
tiankongdeguiji committed Sep 25, 2024
1 parent bc7854a commit 8069107
Show file tree
Hide file tree
Showing 260 changed files with 141,062 additions and 2 deletions.
40 changes: 40 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# Pre commit
.pyre/
.ruff_cache/

# Ide
.idea/

# Proto
protoc*
*_pb2.py
*_pb2.pyi

# Generated Docs
docs/source/intro.md
docs/source/proto.html
41 changes: 41 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
repos:
- repo: https://github.com/Lucas-C/pre-commit-hooks
rev: v1.5.5
hooks:
- id: insert-license
files: \.py$
args: ["--license-filepath", "data/.license_header.txt", "--use-current-year"]
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.4.10
hooks:
- id: ruff
args: [ --fix ]
- id: ruff-format
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
hooks:
- id: trailing-whitespace
- id: check-yaml
- id: end-of-file-fixer
- id: requirements-txt-fixer
- id: check-merge-conflict
- id: fix-encoding-pragma
args: [ "--remove" ]
- id: mixed-line-ending
args: ["--fix=lf"]
- repo: https://github.com/codespell-project/codespell
rev: v2.3.0
hooks:
- id: codespell
args: ["--skip", "*.json"]
- repo: https://github.com/PyCQA/docformatter
rev: v1.7.5
hooks:
- id: docformatter
args: ["--in-place", "--wrap-descriptions", "79"]
- repo: https://github.com/executablebooks/mdformat
rev: 0.7.17
hooks:
- id: mdformat
additional_dependencies:
- mdformat-tables
17 changes: 17 additions & 0 deletions .pyre_configuration
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"ignore_all_errors": [
"tzrec/protos/*_pb2.pyi",
"tzrec/*/*_test.py",
"tzrec/tests/*.py",
"tzrec/utils/load_class.py"
],
"site_package_search_strategy": "all",
"source_directories": [
{
"import_root": ".",
"source": "tzrec"
}
],
"strict": true,
"version": "0.9.21"
}
8 changes: 8 additions & 0 deletions .ruff.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
lint.select = ["B", "D", "E", "F", "W", "B9", "I"]
lint.ignore = ["D100", "D104", "D105", "D107"]

[lint.per-file-ignores]
"*_test.py" = ["D100", "D101", "D102", "D103", "D104", "D105", "D106", "D107"]

[lint.pydocstyle]
convention = "google"
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [yyyy] [name of copyright owner]
Copyright 2024 Alibaba Group Holding Limited.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
75 changes: 74 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,74 @@
# EasyRec-Torch
# TorchEasyRec Introduction

## What is TorchEasyRec?

![intro.png](docs/images/intro.png)

### TorchEasyRec is an easy-to-use framework for Recommendation

TorchEasyRec implements state of the art deep learning models used in common recommendation tasks: candidate generation(matching), scoring(ranking), and multi-task learning. It improves the efficiency of generating high performance models by simple configuration and easy customization.

### Get Started

- [Local](docs/source/quick_start/local_tutorial.md)
- [PAI-DLC](docs/source/quick_start/dlc_tutorial.md)

## Why TorchEasyRec?

### Run everywhere

- Local / [PAI-DLC](https://help.aliyun.com/zh/pai/user-guide/container-training) / [PAI-DSW](https://help.aliyun.com/zh/pai/user-guide/dsw-notebook-service) / [EMR-DataScience](https://help.aliyun.com/document_detail/170836.html)

### Diversified input data

- [MaxCompute Table](https://help.aliyun.com/document_detail/27819.html)
- [OSS files](https://help.aliyun.com/product/31815.html)
- CSV files
- Parquet files

### Easy-to-use

- Flexible feature config and model config
- Easy to implement [customized models](docs/source/models/user_define.md)
- Easy deployment to [EAS](https://help.aliyun.com/zh/pai/user-guide/eas-model-serving): automatic scaling, easy monitoring

### Fast and robust

- Efficient and robust feature generation
- Large scale embedding with different sharding strategies
- Hybrid data-parallelism/model-parallelism
- Optimized kernels for RecSys powered by TorchRec
- Consistency guarantee: train and serving

### A variety of features & models

- IdFeature / RawFeature / ComboFeature / LookupFeature / MatchFeature / ExprFeature / OverlapFeature / TokenizeFeature / SequenceIdFeature / SequenceRawFeature / SequenceFeature
- [DSSM](docs/source/models/dssm.md) / [TDM](docs/source/models/tdm.md)
- [DeepFM](docs/source/models/deepfm.md) / [MultiTower](docs/source/models/multi_tower.md) / [DIN](docs/source/models/din.md)
- [MMoE](docs/source/models/mmoe.md) / [DBMTL](docs/source/models/dbmtl.md) / [PLE](docs/source/models/ple.md)
- More models in development

## Contribute

Any contributions you make are greatly appreciated!

- Please report bugs by submitting a issue.
- Please submit contributions using pull requests.
- Please refer to the [Development](docs/source/develop.md) document for more details.

## Contact

### Join Us

- DingDing Group: 32260796. (TorchEasyRec usage general discussion.)
- DingDing Group2: 37930014162, click [this url](https://qr.dingtalk.com/action/joingroup?code=v1,k1,oHNqtNObbu+xUClHh77gCuKdGGH8AYoQ8AjKU23zTg4=&_dt_no_comment=1&origin=11) or scan QrCode to join![new_group.jpg](docs/images/qrcode/new_group.jpg)
- Email Group: [email protected].

### Enterprise Service

- If you have any questions about how to use TorchEasyRec, please join the DingTalk group and contact us.
- If you have enterprise service needs or need to purchase Alibaba Cloud services to build a recommendation system, please join the DingTalk group to contact us.

## License

TorchEasyRec is released under Apache License 2.0. Please note that third-party libraries may not have the same license as TorchEasyRec.
10 changes: 10 additions & 0 deletions data/.license_header.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
Copyright (c) 2024, Alibaba Group;
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Loading

0 comments on commit 8069107

Please sign in to comment.