Git Product home page Git Product logo

adam's Introduction

Build status

codecov

docs

Introduction

ADAM is ISI's effort under DARPA's Grounded Artificial Intelligence Language Acquisition (GAILA) program. Background for the GAILA program is given in DARPA's call for proposals and here is a video of a talk giving an overview of our plans for ADAM (aimed at an audience familiar with the GAILA program).

Documentation can be found here. The documentation includes tutorials on how to use ADAM (though it may not appear on Read the Docs).

You can check out our papers to read more about the system and to cite our work:

  1. ADAM: A Sandbox for Implementing Language Learning
  2. A Grounded Approach to Modeling Generic Knowledge Acquisition

Project Setup

  1. Create a Python 3.7 Anaconda environment (or your favorite other means of creating a virtual environment): conda create --name adam python=3.7 followed by conda activate adam.

  2. pip install -r requirements.txt

  3. Make a file under parameters called root.params which contains:

    adam_root: PATH_TO_WORKING_COPY_OF_THIS_REPO
    # if you want to view experiment results in the UI, you must point adam_experiment_root to
    # %adam_root%/data, otherwise any directory is fine:
    adam_experiment_root: %adam_root%/data
    # if you want to run the full pipeline which includes preprocessing:
    stroke_python_root: /path/to/anaconda3/envs/adam_preprocessing
    # for the segmentation part of the pipeline (ISI: 500{1,2,3} are in use):
    segmentation_api_port: XXXX
    
    conda_environment: adam
    conda_base_path: PATH_TO_ANACONDA_DIRECTORY
    

Using PyPy

  1. Complete the project setup as above.
  2. Install PyPy 3.7: conda install -c conda-forge pypy3.7.
  3. To run tests using PyPy3.7: make test.

Documentation

To generate Sphinx documentation:

cd docs
make html

The docs will be under docs/_build/html

To generate an HTML dump of the curriculum

Run adam.curriculum_to_html /full/path/to/parameters/html/curriculum_to_html.phase1.params

To Run the Learner over an Entire Curriculum

Run adam.experiment.run_m9 /full/path/to/parameters/experiment/m9/m9.params

To Run the angular viewer application

First, make sure the Flask backend is running. To start the backend:

cd adam/flask_backend
bash start_flask.sh &

The angular application is located under /angular-viewer/adam-angular-demo Navigate to the directory above and serve the application locally on port 4200:

ng serve --open

To install npm on your machine

npm install -g npm

To install font dependencies on your machine

cd {adam_root}
PYTHONPATH=. python scripts/install_fonts.py

For more detailed information including how to check npm versions on your machine, please refer: https://docs.npmjs.com/downloading-and-installing-node-js-and-npm

Languages

Currently, our curriculum dump and learner run in English by default, but they are also runnable in Chinese. Our Chinese implementation uses Yale romanization to maintain UTF-8 encoding, but this can easily be converted to the more common Pinyin romanization.

To generate a curriculum dump or run the learner in Chinese, add the following line to your parameters/root.params file:

language_mode : CHINESE

and then run the commands given above.

Contributing

Run make precommit before commiting.

If you are using PyCharm, please set your docstring format to "Google" and your unit test runner to "PyTest" in Preferences | Tools | Python Integrated Tools.

Contributors

  • Gayatri Atale
  • Deniz Beser
  • Connor Boyle
  • Joe Cecil
  • Sheng Cheng
  • Marjorie Freedman
  • Ryan Gabbard
  • Blake Harrison
  • Chris Jenkins
  • Ashwin Kumar
  • Elizabeth Lee
  • Jacob Lichtefeld
  • Mitch Marcus
  • Justin Martin
  • Grace McClurg
  • Sarah Payne
  • Sidharth Sundar
  • Ralph Weischedel
  • Charles Yang

Contact

Deniz Beser ([email protected]) Joe Cecil ([email protected]) Ryan Gabbard ([email protected]) Jacob Lichtefeld ([email protected])

Suggested Reading

The following papers have informed our design decisions and may be referenced in issues.

adam's People

Contributors

aakum03 avatar boyleconnor avatar chris-jenkins-isi avatar denizbeser avatar dependabot[bot] avatar elizlee avatar gayatri1205 avatar gracemcclurg avatar jamart28 avatar lichtefeld avatar paynesa avatar spigo900 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.