{"id":47844553,"url":"https://github.com/numerai/numerai-predict","last_synced_at":"2026-04-03T21:07:19.568Z","repository":{"id":172880015,"uuid":"628102458","full_name":"numerai/numerai-predict","owner":"numerai","description":"Docker image used to execute user models hosted by Numerai","archived":false,"fork":false,"pushed_at":"2026-03-04T10:36:20.000Z","size":10096,"stargazers_count":25,"open_issues_count":1,"forks_count":13,"subscribers_count":8,"default_branch":"master","last_synced_at":"2026-03-04T17:36:18.923Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/numerai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2023-04-14T23:27:18.000Z","updated_at":"2026-03-04T10:36:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"22b74f4e-81ef-4248-9775-faa32f74b33f","html_url":"https://github.com/numerai/numerai-predict","commit_stats":null,"previous_names":["numerai/numerai-predict"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/numerai/numerai-predict","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numerai%2Fnumerai-predict","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numerai%2Fnumerai-predict/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numerai%2Fnumerai-predict/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numerai%2Fnumerai-predict/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/numerai","download_url":"https://codeload.github.com/numerai/numerai-predict/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numerai%2Fnumerai-predict/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31377519,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-03T17:53:18.093Z","status":"ssl_error","status_checked_at":"2026-04-03T17:53:17.617Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-04-03T21:07:19.032Z","updated_at":"2026-04-03T21:07:19.563Z","avatar_url":"https://github.com/numerai.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Numerai Model Prediction Docker Environment\n\n## Poetry vs. Requirements.txt\nWe prefer to do dependency management and solving through poetry because it's more sophisticated and powerful, but we also provide a requirements.txt for anyone that doesn't like to use poetry.\n\nTo install poetry locally, run:\n\n```bash\ncurl -sSL https://install.python-poetry.org | python -\n```\n\nTo convert from poetry to requirements.txt simply run:\n```bash\npoetry export -f requirements.txt --without-hashes --output requirements.txt\n\n# the following regex can be applied to remove the `python_full_version` and `python_version` tags on each row:\nsed -i '' 's/; .*$//g' requirements.txt\n```\n\n## Building the docker images locally\n\nYou can use `make` to build the docker containers on any of supported python versions:\n\n```bash\n# to build on python 3.13\nmake build_3_13\n\n# if you need to force the cache to refresh\nmake build_3_13 DOCKER_BUILDKIT=0\n```\n\n## Local testing of pickle models\nYou can run a local pickle model via\n\n```bash\ndocker run -i --rm -v \"$PWD:$PWD\" ghcr.io/numerai/numerai_predict_py_3_13:stable --debug --model $PWD/model.pkl\n# optionally, you can run with --platform linux/amd64 or --platform linux/arm64 depending on host architecture\n```\n\n## Presigned S3 URLs\nPresigned GET and POST urls are used to ensure that only the specified model is downloaded during execution \nand that model prediction uploads from other models are not accessed or tampered with.\n\nThe `--model` arg is designed to accept a pre-signed S3 GET URL generated via boto3\n\n```bash\nparams = dict(Bucket='numerai-pickled-user-models',\n              Key='5a5a8da7-05a4-41bf-9c2b-7f61bab5b89b/model-Kc5pT9r85SRD.pkl')\npresigned_model_url = s3_client.generate_presigned_url(\"get_object\", params, ExpiresIn=600)\n```\n\nThe `--post_url` and `--post_data` args are designed to accept a pre-signed S3 POST URL + urlencoded data dictionary\ngenerated via boto3\n\n```bash\npresigned_post = s3_client.generate_presigned_post(Bucket='numerai-pickled-user-models-live-output',\n                                                   Key='5a5a8da7-05a4-41bf-9c2b-7f61bab5b89b/live_predictions-b7446fc4cc7e.csv',\n                                                   ExpiresIn=600)\npost_url = presigned_post['url']\npost_data = urllib.parse.urlencode(presigned_post['fields'])\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumerai%2Fnumerai-predict","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnumerai%2Fnumerai-predict","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumerai%2Fnumerai-predict/lists"}