cogment

Cogment platform, Cogment is the first open source platform designed to address the challenges of continuously training humans and AI together.

https://github.com/cogment/cogment

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.0%) to scientific vocabulary

Keywords

cogment human-in-the-loop-learning reinforcement-learning
Last synced: 9 months ago · JSON representation ·

Repository

Cogment platform, Cogment is the first open source platform designed to address the challenges of continuously training humans and AI together.

Basic Info
  • Host: GitHub
  • Owner: cogment
  • License: apache-2.0
  • Language: Go
  • Default Branch: main
  • Homepage: https://cogment.ai
  • Size: 1.99 MB
Statistics
  • Stars: 26
  • Watchers: 1
  • Forks: 4
  • Open Issues: 0
  • Releases: 56
Topics
cogment human-in-the-loop-learning reinforcement-learning
Created over 5 years ago · Last pushed over 2 years ago
Metadata Files
Readme Changelog License Citation

README.md

cogment

Latest Release Latest Docker Release Apache 2 License Changelog

Cogment enables AI researchers and engineers to build, train, and operate AI agents in simulated or real environments shared with humans. Developed by AI Redefined, Cogment is the first open source platform designed to address the challenges of continuously training humans and AI together. For the full user documentation visit https://docs.cogment.ai

This repository includes the the main Cogment module, a multi-platform stand alone CLI including:

  • The orchestrator service, the heart of Cogment, it executes the trials involving actors and environments by orchestrating the different user implemented services.
  • The trial datastore service, that is able to store and make available the data generated by the trials.
  • The model registry service, that let's user store AI models and make them available to actor implementations during training and in production.
  • The init tool to bootstrap cogment project locally (Deprecated).
  • The run tool to define and run commands within a cogment project (Deprecated).

Installation

Standalone binary (preferred)

Download the install script and make sure you can run it using

console curl --silent -L https://raw.githubusercontent.com/cogment/cogment/main/install.sh --output install-cogment.sh chmod +x install-cogment.sh

Download and install the latest final version using

console sudo ./install-cogment.sh

Other installation options are available using ./install-cogment.sh --help

For futher installation options please refer to cogment's installation guide.

Docker image

console docker pull cogment/cogment

Developers

This repository is organized in 3 different packages grouped the packages folder:

  • grpc_api is the gRPC api, consisting of protocol buffers .proto definition files,
  • orchestrator is the orchestrator library, developed in C++,
  • cli is the host executable, developed in Go, it integrates the orchestrator and includes the other services and tools.

A CMake based systems glues the build of both together

Prerequisites

  • Fully working c++ build toolchain.
  • Fully working go setup (1.20), as described in the official documentation.
  • Cmake (>= 3.10), the core of the build system, it should be installed as described in the official documentation.
  • Make, most flavor should work fine.
  • Optional, golangci-lint (v1.53.3) used to run lint on the golang codebase, installed as described in the official documentation.
  • Optional, clang-format (10) used to run lint on the c++ codebase, it can be installed on most linux flavor from https://apt.llvm.org and on mac using brew install clang-format.
  • Optional, a docker installation to be able to build the docker image.

Build

At the root of the repository you'll find the following scripts:

  • build_docker.sh builds the docker image.
  • build_linux.sh builds the linux amd64 binary.
  • build_macos.sh builds the macos amd64 & arm64 binaries.
  • build_windows.bat builds the windows amd64 binary.
  • build_all_no_orchestrator.sh builds the binary for all supported platforms (linux/amd64, macos/amd64, macos/arm64 and windows/amd64) without the embedded orchestrator.

The build results are store in the ./install directory per platform.

Those scripts run CMake and create a build directory, per platform, in the ./build directory. Further build target are available there, especially for testing of code formatting.

Formatting & coding style

  • orchestrator_lint and orchestrator_fix_lint respectively check and fix the code formatting of the c++ orchestrator codebase using clang-format.
  • cli_lint and cli_fix_lint respectively check and fix the code formatting of the go cli codebase using golangci-lint

./build_linux.sh lint or ./build_macos.sh lint can be used as a shortcut to run both linters.

Test

  • cli_test runs a suite of tests over the go cli codebase.

./build_linux.sh test or ./build_macos.sh test can be used as a shortcut to run tests.

Benchmark

  • cli_benchmark runs a suite of benchmarks over the go cli codebase.

Release process

People having maintainers rights of the repository can follow these steps to release a version MAJOR.MINOR.PATCH. The versioning scheme follows Semantic Versioning.

  1. Run ./scripts/create_release_branch.sh MAJOR.MINOR.PATCH to create the release branch and update the version of the package,
  2. On the release branch, check and update the changelog if needed,
  3. Make sure everything's fine on CI,
  4. Run ./scripts/tag_release.sh MAJOR.MINOR.PATCH to create the specific version section in the changelog, merge the release branch in main, create the release tag and update the develop branch with those.

The rest, publishing the package to dockerhub and updating the mirror repositories, is handled directly by the CI.

Owner

  • Name: Cogment
  • Login: cogment
  • Kind: organization

Citation (CITATION.cff)

cff-version: "1.2.0"
message: "If you use Cogment in your research, please cite the article from `preferred-citation`."
title: "Cogment"
authors:
  - family-names: AI Redefined
    website: https://ai-r.com
license: Apache-2.0
url: https://cogment.ai
repository: https://github.com/cogment/cogment
preferred-citation:
  type: "article"
  title: "Cogment: Open Source Framework For Distributed Multi-actor Training, Deployment & Operations"
  year: 2021
  url: https://arxiv.org/abs/2106.11345v1
  authors:
    - family-names: AI Redefined
      website: https://ai-r.com
    - affiliation: AI Redefined
      family-names: Gottipati
      given-names: Sai Krishna
    - affiliation: AI Redefined
      family-names: Kurandwad
      given-names: Sagar
    - affiliation: AI Redefined
      family-names: Mars
      given-names: "Clodéric"
    - affiliation: AI Redefined
      family-names: Szriftgiser
      given-names: Gregory
    - affiliation: AI Redefined
      family-names: Chabot
      given-names: "François"

GitHub Events

Total
  • Watch event: 1
  • Fork event: 3
Last Year
  • Watch event: 1
  • Fork event: 3

Committers

Last synced: almost 2 years ago

All Time
  • Total Commits: 670
  • Total Committers: 14
  • Avg Commits per committer: 47.857
  • Development Distribution Score (DDS): 0.527
Past Year
  • Commits: 85
  • Committers: 3
  • Avg Commits per committer: 28.333
  • Development Distribution Score (DDS): 0.471
Top Committers
Name Email Commits
Clodéric Mars c****c@a****m 317
Yves y****s@a****m 173
Air-sara s****a@a****m 76
Emma Coutu e****a@c****o 29
Francois Chabot f****s@a****m 19
Clodéric Mars c****c@h****m 13
Vincent ROBERT v****t@a****m 12
François Chabot f****s@a****m 11
Julien Potvin j****n@a****m 8
Irv Lustigman i****v@a****m 4
Brian Gariepy b****n@a****m 3
Jonathan Michael Fisher j****n@a****m 2
Sara Brazille b****a@g****m 2
Emma Coutu e****a@a****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: almost 3 years ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 64
proxy.golang.org: github.com/cogment/cogment
  • Versions: 64
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 5.3%
Dependent packages count: 7.0%
Average: 7.7%
Forks count: 9.0%
Dependent repos count: 9.3%
Last synced: 9 months ago

Dependencies

packages/cli/go.mod go
  • github.com/bradleyjkemp/cupaloy v2.3.0+incompatible
  • github.com/codeskyblue/dockerignore v0.0.0-20151214070507-de82dee623d9
  • github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
  • github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
  • github.com/hashicorp/golang-lru v0.5.4
  • github.com/imdario/mergo v0.3.11
  • github.com/improbable-eng/grpc-web v0.14.1
  • github.com/jinzhu/copier v0.1.0
  • github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024
  • github.com/magiconair/properties v1.8.1
  • github.com/markbates/pkger v0.17.1
  • github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f
  • github.com/mwitkow/grpc-proxy v0.0.0-20181017164139-0f1106ef9c76
  • github.com/olekukonko/tablewriter v0.0.5
  • github.com/openlyinc/pointy v1.1.2
  • github.com/rogpeppe/go-internal v1.3.0
  • github.com/sirupsen/logrus v1.8.1
  • github.com/spf13/afero v1.2.2
  • github.com/spf13/cobra v0.0.5
  • github.com/spf13/viper v1.7.1
  • github.com/stretchr/testify v1.7.0
  • go.etcd.io/bbolt v1.3.6
  • golang.org/x/net v0.0.0-20211005215030-d2e5035098b3
  • golang.org/x/sync v0.0.0-20210220032951-036812b2e83c
  • golang.org/x/sys v0.0.0-20211004093028-2c5d950f24ef
  • golang.org/x/text v0.3.7
  • google.golang.org/genproto v0.0.0-20211005153810-c76a74d43a8e
  • google.golang.org/grpc v1.41.0
  • google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0
  • google.golang.org/protobuf v1.27.1
  • gopkg.in/yaml.v2 v2.3.0
packages/cli/go.sum go
  • 631 dependencies
packages/cli/cmd/deprecated/.snapshots/TestCreateProjectFilesNoWebClient-client-requirements.txt pypi
  • cogment ==1.0
packages/cli/cmd/deprecated/.snapshots/TestCreateProjectFilesNoWebClient-dumb-requirements.txt pypi
  • cogment ==1.0
packages/cli/cmd/deprecated/.snapshots/TestCreateProjectFilesNoWebClient-environment-requirements.txt pypi
  • cogment ==1.0
packages/cli/cmd/deprecated/.snapshots/TestCreateProjectFilesNoWebClient-smart-requirements.txt pypi
  • cogment ==1.0
packages/orchestrator/Dockerfile docker
  • ${ORCHESTRATOR_DEPENDENCIES_IMAGE} latest build
  • ubuntu 20.04 build