Skip to content

Commit

Permalink
Merge pull request #2166 from recommenders-team/staging
Browse files Browse the repository at this point in the history
Staging to main: Dev container and small fixes
  • Loading branch information
miguelgfierro authored and actions-user committed Sep 11, 2024
1 parent 868805f commit 0ab3dd8
Show file tree
Hide file tree
Showing 6 changed files with 74 additions and 53 deletions.
88 changes: 47 additions & 41 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,44 +1,50 @@
{
"name": "Recommenders",
"build": {
"dockerfile": "Dockerfile",
"context": "..",
"args": {
// Python version: 3, 3.6, 3.7
"PYTHON_VERSION": "3.7",
"REMOTE_USER": "vscode"
}
},
"name": "Recommenders",
// Version list: https://github.com/devcontainers/images/tree/main/src/base-ubuntu
// Includes: curl, wget, ca-certificates, git, Oh My Zsh!,
"image": "mcr.microsoft.com/devcontainers/base:ubuntu-24.04",
"hostRequirements": {
"cpus": 4,
"memory": "16gb",
"storage": "32gb"
},
"features": {
// https://github.com/devcontainers/features/blob/main/src/anaconda/devcontainer-feature.json
"ghcr.io/devcontainers/features/anaconda:1": {
"version": "2024.06-1"
}
},
"customizations": {
"vscode": {
// Set *default* container specific settings.json values on container create.
"settings": {
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
}
},
"isort.args": ["--profile", "black"],
"python.analysis.autoImportCompletions": true,
"python.defaultInterpreterPath": "/usr/local/conda/envs/Recommenders/bin/python",
"python.testing.pytestEnabled": true,
// set the directory where all tests are
"python.testing.pytestArgs": ["tests"]
},
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"ms-python.black-formatter", // https://marketplace.visualstudio.com/items?itemName=ms-python.black-formatter
"ms-python.isort", // https://marketplace.visualstudio.com/items?itemName=ms-python.isort
"ms-python.mypy-type-checker", // https://marketplace.visualstudio.com/items?itemName=ms-python.mypy-type-checker
"ms-python.pylint", // https://marketplace.visualstudio.com/items?itemName=ms-python.pylint
"ms-python.python", // https://marketplace.visualstudio.com/items?itemName=ms-python.python
"ms-toolsai.datawrangler", // https://marketplace.visualstudio.com/items?itemName=ms-toolsai.datawrangler
"ms-toolsai.jupyter" // https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter
]
}
},

// Set *default* container specific settings.json values on container create.
"settings": {
"python.pythonPath": "/usr/local/bin/python",
"python.languageServer": "Pylance",
"python.linting.enabled": true,
"python.linting.pylintEnabled": true,
"python.formatting.autopep8Path": "/usr/local/py-utils/bin/autopep8",
"python.formatting.blackPath": "/usr/local/py-utils/bin/black",
"python.formatting.yapfPath": "/usr/local/py-utils/bin/yapf",
"python.linting.banditPath": "/usr/local/py-utils/bin/bandit",
"python.linting.flake8Path": "/usr/local/py-utils/bin/flake8",
"python.linting.mypyPath": "/usr/local/py-utils/bin/mypy",
"python.linting.pycodestylePath": "/usr/local/py-utils/bin/pycodestyle",
"python.linting.pydocstylePath": "/usr/local/py-utils/bin/pydocstyle",
"python.linting.pylintPath": "/usr/local/py-utils/bin/pylint"
},

// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance"
],

// Use 'forwardPorts' to make a list of ports inside the container available locally.
"forwardPorts": [8888],

// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "pip install -U pip && pip install --user -e .[dev,examples,spark,xlearn]",

// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "vscode"
// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "conda create -n Recommenders -c conda-forge -y python=3.10 openjdk=21 pip && conda init bash && bash -c -i 'conda activate Recommenders && pip install -e .[dev,spark]' && conda config --set auto_activate_base false"
}
2 changes: 1 addition & 1 deletion .github/actions/get-test-groups/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ description: "Get test group names from tests_groups.py"
inputs:
TEST_KIND:
required: true
description: Type of test - unit or nightly
description: Type of test - pr gate or nightly
TEST_ENV:
required: false
description: Test environment - cpu, gpu or spark
Expand Down
2 changes: 2 additions & 0 deletions AUTHORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ To contributors: please add your name to the list when you submit a patch to the
* **[Aaron He](https://github.com/AaronHeee)**
* Reco utils of NCF
* Deep dive notebook demonstrating the use of NCF
* **[Aaron Palpallatoc](https://github.com/ubergonmx)**
* Corrected variable in pickle dump in `mind_utils.ipynb` notebook
* **[Abir Chakraborty](https://github.com/aeroabir)**
* Self-Attentive Sequential Recommendation (SASRec)
* Sequential Recommendation Via Personalized Transformer (SSEPT)
Expand Down
2 changes: 1 addition & 1 deletion examples/01_prepare_data/mind_utils.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@
" pickle.dump(word_dict, f)\n",
" \n",
"with open(os.path.join(output_path, 'word_dict_all.pkl'), 'wb') as f:\n",
" pickle.dump(word_dict, f)"
" pickle.dump(word_dict_all, f)"
]
},
{
Expand Down
31 changes: 21 additions & 10 deletions recommenders/datasets/mind.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,26 +17,37 @@
)


URL_MIND_LARGE_TRAIN = (
"https://recodatasets.z20.web.core.windows.net/newsrec/MINDlarge_train.zip"
URL_MIND_DEMO_TRAIN = (
"https://recodatasets.z20.web.core.windows.net/newsrec/MINDdemo_train.zip"
)
URL_MIND_LARGE_VALID = (
"https://recodatasets.z20.web.core.windows.net/newsrec/MINDlarge_dev.zip"
URL_MIND_DEMO_VALID = (
"https://recodatasets.z20.web.core.windows.net/newsrec/MINDdemo_dev.zip"
)
URL_MIND_DEMO_UTILS = (
"https://recodatasets.z20.web.core.windows.net/newsrec/MINDdemo_utils.zip"
)

URL_MIND_SMALL_TRAIN = (
"https://recodatasets.z20.web.core.windows.net/newsrec/MINDsmall_train.zip"
)
URL_MIND_SMALL_VALID = (
"https://recodatasets.z20.web.core.windows.net/newsrec/MINDsmall_dev.zip"
)
URL_MIND_DEMO_TRAIN = (
"https://recodatasets.z20.web.core.windows.net/newsrec/MINDdemo_train.zip"
URL_MIND_SMALL_UTILS = (
"https://recodatasets.z20.web.core.windows.net/newsrec/MINDsmall_utils.zip"
)
URL_MIND_DEMO_VALID = (
"https://recodatasets.z20.web.core.windows.net/newsrec/MINDdemo_dev.zip"

URL_MIND_LARGE_TRAIN = (
"https://recodatasets.z20.web.core.windows.net/newsrec/MINDlarge_train.zip"
)
URL_MIND_DEMO_UTILS = (
"https://recodatasets.z20.web.core.windows.net/newsrec/MINDdemo_utils.zip"
URL_MIND_LARGE_VALID = (
"https://recodatasets.z20.web.core.windows.net/newsrec/MINDlarge_dev.zip"
)
URL_MIND_LARGE_TEST = (
"https://recodatasets.z20.web.core.windows.net/newsrec/MINDlarge_test.zip"
)
URL_MIND_LARGE_UTILS = (
"https://recodatasets.z20.web.core.windows.net/newsrec/MINDlarge_utils.zip"
)

URL_MIND = {
Expand Down
2 changes: 2 additions & 0 deletions recommenders/models/deeprec/DataModel/ImplicitCF.py
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,8 @@ def train_loader(self, batch_size):
"""

def sample_neg(x):
if len(x) >= self.n_items:
raise ValueError("A user has voted in every item. Can't find a negative sample.")
while True:
neg_id = random.randint(0, self.n_items - 1)
if neg_id not in x:
Expand Down

0 comments on commit 0ab3dd8

Please sign in to comment.