A library for deploying Numer.ai Prediction Nodes.
Project description
numerai-cli
Welcome to the Numerai CLI for the Numerai Tournament. This CLI runs on your local computer to configure a Numerai Prediction Node in the cloud. This solution is architected to cost less than $5/mo on average, but actual costs may vary. It has been tested and found working on MacOS/OSX, Windows 8/10, and Ubuntu 18/20, but should theoretically work anywhere that Docker and Python 3 are available.
If you have any problems, questions, comments, concerns, or general feedback, please refer to the Troubleshooting and Feedback before posting anywhere.
Contents
- Getting Started
- Node Configuration Tutorial
- List of Commands
- Troubleshooting and Feedback
- Upgrading to 0.3.0
- Uninstall
Getting Started
-
Sign up a Numerai Account, get your Numerai API Keys, and your first Model:
- Sign up at https://numer.ai/signup and log in to your new account
- Go to https://numer.ai/account > "Your API keys" section > click "Add"
- Name your key and check all boxes under "Scope this key will have"
- Enter your password and click "Confirm"
- Copy your secret public key and secret key somewhere safe
-
Pick a Cloud Provider and follow the setup directions (Currently we only support AWS):
-
Install Docker and Python for your Operating System (if you encounter errors or your OS is not supported, please read the troubleshooting wiki to install Python and Docker):
-
Mac Terminal (cmd + space, type
terminal
, selectterminal.app
):curl https://raw.githubusercontent.com/numerai/numerai-cli/master/scripts/setup-mac.sh | bash
-
Ubuntu 18/20 Terminal (ctrl + alt + t):
sudo apt update && sudo apt install -y libcurl4 curl && sudo curl https://raw.githubusercontent.com/numerai/numerai-cli/master/scripts/setup-ubu.sh | sudo bash
-
Windows 10 Command Prompt (windows key, type
cmd
, select Command Prompt):powershell -command "$Script = Invoke-WebRequest 'https://raw.githubusercontent.com/numerai/numerai-cli/master/scripts/setup-win10.ps1'; $ScriptBlock = [ScriptBlock]::Create($Script.Content); Invoke-Command -ScriptBlock $ScriptBlock"
-
-
After the setup script confirms Python and Docker, install
numerai-cli
via:pip3 install --upgrade numerai-cli --user
NOTES:
- This command will also work to update to new versions of the package in the future.
- If you are using python venv then drop the --user option. If you don't know what that is, disregard this note.
Node Configuration Tutorial
If you know you have all the prerequisites and have your AWS and Numerai API Keys at hand, you can run these commands on your local computer to get an example node running in minutes:
numerai setup
numerai node config --example tournament-python3
numerai node deploy
numerai node test
If you want to use larger instances to generate your predictions first run numerai list-constants
to list the vCPU/mem presets available, then you can configure a node to use one of the presets via:
numerai node config -s mem-lg
Your compute node is now setup and ready to run!
VERY IMPORTANT
These commands have stored configuration files in $USER_HOME/.numerai/
.
If you lose this directory without destroying your nodes,
you will have to manually (and painfully) delete every cloud resource by hand,
so make sure you backup these files regularly!
DO NOT USE THESE COMMANDS FROM A TEMPORARY INSTANCE!!!!
The example node will train and predict in the cloud, but this is inefficient. It's usually best to train your model locally (ensuring that the trained model is stored in the same folder as your code) and then deploy the trained model. When you make changes to your code or re-train your model, simply deploy and test your node again:
numerai node deploy
numerai node test
The nodes.json
file also includes the url for your Node Trigger.
This trigger is registered with whichever model you specified during configuration.
Each trigger will be called Saturday morning right after a new round opens,
and if the related job fails it will be triggered again around 24 hours later.
You can opt into compute for daily tournaments via the website (go to numer.ai/models,
click the 3 dots next to your model, click "compute", and click the switch to opt in).
NOTES:
- The default example does not make stake changes; you will still have to do that manually. Please refer to the numerapi docs for the methods you must call to do this.
- You can view resources and logs in the AWS Console (region us-east-1) for your ECS Cluster and other resources
NEXT: read the Prediction Nodes wiki to learn about Numerai Examples and how to customize Prediction Nodes.
List of Commands
Use the --help
option on any command or sub-command to get a full description of it:
numerai
numerai --help
numerai [command] --help
numerai [command] [sub-command] --help
Each command or sub-command takes its own options, for example if you want to copy the numerai signals example and configure a node for a signals model with large memory requirements you'd use something like this (replacing [MODEL NAME] with the relevant signals model name):
numerai node -m [MODEL NAME] -s config -s mem-lg -e signals-python3
Here, the node
command takes a model name with -m
and a flag -s
to detect if it's
a signals model or numerai model. The config
sub-command also takes a -s
option to
specify the size of the node to configure.
Troubleshooting and Feedback
Before messaging the Rocketchat channel or creating a Github issue, please read through the following (especially the "Troubleshooting" section in the wiki):
If you still cannot find a solution or answer, please join us on the RocketChat #support Channel and include the following information with your issue/message:
- The commands you ran that caused the error (even previous commands)
- Version information from running:
pip3 show numerai-cli
python -V
docker -v
- System Information from running
- Mac:
system_profiler SPSoftwareDataType && system_profiler SPHardwareDataType
- Linux:
lsb_release -a && uname -a
- Windows:
powershell -command "Get-ComputerInfo"
- Mac:
If you do not include this information, we cannot help you.
Upgrading and Updating
Upgrading numerai-cli will always require you to update the package itself using pip:
pip install --upgrade numerai-cli --user
0.1/0.2 -> 0.3.0
CLI 0.3.0 uses a new configuration format that is incompatible with versions 0.1 and 0.2,
but a command to migrate you configuration is provided for you. Run this in the directory
you ran numerai setup
from the previous version:
numerai upgrade
Beyond
Some updates will make changes to configuration files used by Numerai CLI. These will require you to re-run some commands to upgrade your nodes to the newest versions:
numerai setup
will copy over changes to files in the$HOME/.numerai
directorynumerai node config
will apply those changes to a node
Uninstall
numerai uninstall
Contributions
- Thanks to uuazed for their work on numerapi
- Thanks to hellno for starting the Signals ticker map
- Thanks to tit_BTCQASH (numerai profile and twitter profile) for debugging the environment setup process on Windows 8
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file numerai-cli-0.3.5.tar.gz
.
File metadata
- Download URL: numerai-cli-0.3.5.tar.gz
- Upload date:
- Size: 5.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 069235dbf24f7e2af6aab59ca984e6e647a1228348c7a6b2d20d206a1b2520d6 |
|
MD5 | 09e7b63799ca3e69360f197ba1e2103b |
|
BLAKE2b-256 | 264fd60724a4d7e2858941fea3b203e3dd80703a4a48f4aa39cc9c9aeb9f2886 |
Provenance
File details
Details for the file numerai_cli-0.3.5-py3-none-any.whl
.
File metadata
- Download URL: numerai_cli-0.3.5-py3-none-any.whl
- Upload date:
- Size: 5.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.7.16
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3446daca098216d9eb8d116118e757327bd31fa8678f9820a3724958b9c66b30 |
|
MD5 | ef713723b75095d835f39d9f27052dea |
|
BLAKE2b-256 | f49f40efcb28e6f9e9cbbf2261e4f2d80ce55a21f4a7278dbd0a60945435e2da |