{"id":32167595,"url":"https://github.com/jackdoe/elixir-vowpal-fleet","last_synced_at":"2025-10-21T15:33:43.940Z","repository":{"id":62430755,"uuid":"158099673","full_name":"jackdoe/elixir-vowpal-fleet","owner":"jackdoe","description":"vowpal wabbit distributed supervisor using swarm and elixir (including handoff of the models)","archived":false,"fork":false,"pushed_at":"2018-12-17T14:52:30.000Z","size":40,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-15T00:44:41.090Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Elixir","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/jackdoe.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}},"created_at":"2018-11-18T15:45:15.000Z","updated_at":"2024-03-06T05:06:39.000Z","dependencies_parsed_at":"2022-11-01T20:30:51.330Z","dependency_job_id":null,"html_url":"https://github.com/jackdoe/elixir-vowpal-fleet","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jackdoe/elixir-vowpal-fleet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackdoe%2Felixir-vowpal-fleet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackdoe%2Felixir-vowpal-fleet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackdoe%2Felixir-vowpal-fleet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackdoe%2Felixir-vowpal-fleet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jackdoe","download_url":"https://codeload.github.com/jackdoe/elixir-vowpal-fleet/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jackdoe%2Felixir-vowpal-fleet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280287087,"owners_count":26304864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-21T02:00:06.614Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":"2025-10-21T15:33:41.376Z","updated_at":"2025-10-21T15:33:43.933Z","avatar_url":"https://github.com/jackdoe.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# VowpalFleet\n\n![](https://github.com/jackdoe/elixir-vowpal-fleet/raw/master/logo.png)\n\nVowpal Fleet - manage [Vowpal Wabbit](https://github.com/VowpalWabbit/vowpal_wabbit) instances usint `Swarm`\n\n## Info\n\n* create one cluster per model using `VowpalFleet.start_worker/2`\n* `VowpalFleet.train/3` goes to all living instance\n* `VowpalFleet.predict/2` picks random instance to do the prediction\n* configure auto save interval, root directory and vw options with mix config `:vowpal_fleet` in `config.exs`\n\n## Installation\n\n* Make sure you have [Vowpal Wabbit](https://github.com/VowpalWabbit/vowpal_wabbit) installed and it is findable in `$PATH`\n* add the dependency to your mix.exs\n\n```elixir\ndef deps do\n  [\n    {:vowpal_fleet, \"~\u003e 0.1.0\"}\n  ]\nend\nef application do\n  [\n    extra_applications: [:vowpal_fleet]\n  ]\nend\n```\n\n* configure the parameters, edit `config/config.exs`\n\n```\nconfig :vowpal_fleet,\n  root: \"/tmp/vw\",\n  some_cluster_id: %{:autosave =\u003e 300_000, :args =\u003e [\"--random_seed\", \"123\"]}\n```\n\n## Work In Progress\nMore testing is needed to ensure that the failure scenarios are covered, at the moment the code just works but.. well take it with grain of salt\n\n## Examples\n    iex\u003e VowpalFleet.start_worker(:some_cluster_id, :instance_1)\n    ...\n    :ok\n    iex\u003e VowpalFleet.start_worker(:some_cluster_id, :instance_2)\n    ...\n    :ok\n    iex\u003e VowpalFleet.train(:some_cluster_id, 1, [{\"features\", [1, 2, 3]}])\n    :ok\n    iex\u003e VowpalFleet.predict(:some_cluster_id, [{\"features\", [1, 2, 3]}])\n    1.0\n\n## Handoff\n\n  When the process has to be moved to a different node, the working model is saved, and then handed off to the starting process\n\n## Links\n[issues](https://github.com/jackdoe/elixir-vowpal-fleet/issues) [fork](https://github.com/jackdoe/elixir-vowpal-fleet) [license - MIT](https://en.wikipedia.org/wiki/MIT_License)\n\n## credit\nIcons made by [Freepik](https://www.freepik.com) from [Flaticon](https://www.flaticon.com/) is licensed by [CC 3.0 BY](http://creativecommons.org/licenses/by/3.0/)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackdoe%2Felixir-vowpal-fleet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjackdoe%2Felixir-vowpal-fleet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjackdoe%2Felixir-vowpal-fleet/lists"}