Skip to content

Latest commit

 

History

History
179 lines (133 loc) · 7.65 KB

README.md

File metadata and controls

179 lines (133 loc) · 7.65 KB

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.