Skip to content
Scott Sievert edited this page Sep 29, 2016 · 53 revisions

NEXT is a system that makes it easy to develop, evaluate, and apply active learning. The purpose of this wiki is to provide tutorials and documentation for NEXT users.

NEXT users are either

  • algorithm developers that want to use/test/evaluate some algorithm. These algorithms should fit into an existing interface (e.g., pairwise comparisons) and have their inputs and outputs specified exactly by Algs.yaml.
  • application (or interface) developers that determine the type of question being asked the user (e.g., pairwise comparisons vs triplets).

We anticipate NEXT users being primarily algorithm developers.

Tutorial

This tutorial will walk through creating and deploying a NEXT application

  1. Overview: Start here to get a broad overview of the concepts and components involved in NEXT
  2. Launching on EC2: One way to deploy a NEXT application is on Amazon's EC2
    • EC2 account quick start, a short guide about how to interact with AWS and obtain the key pair/secret access key/etc.
    • Launching locally, a readme in local/. The primary development has been launching experiment with Amazon AWS but we do provide some resources for launching locally.
  3. Run an Experiment: Once NEXT is running, we want to launch an experiment

Development tutorial

  • An application defines the interface the user sees: should they answer pairwise comparisions or triplets?
  • An algorithm decides which target index to show the user.
  • Targets are the items a user sees, with potentially more information (e.g., both a filename and a feature vector for that target).
  1. Develop new application: Here we cover the steps to writing a NEXT application
  • Algorithm: We describe how an algorithm is called.
  • Interface: The interface defines your application's required inputs and outputs
  • Application Code: The application code itself is the glue that allows a single uniform interface across many algorithms within an application
  • Widgets: Widgets are HTML pages that display NEXT queries
  • Dashboard: Dashboards are HTML pages that display any desired statistics about your application, including monitoring and timing information as well as mathematical statistics such as a computed embedding
  • Writing your own application
  • Testing: We document how to test your application.
  1. Add algorithms to existing application: Here we cover adding an algorithm to an existing app and describe the basics of an algorithm and how one may adapt an existing algorithm for NEXT use (including a brief description of the arguments).
  • To develop an algorithm we need 4 functions: initExp, getQuery, processAnswer, getModel. We describe what how these function operatate and what they do.
  • Example: We have developed an example algorithm for use in NEXT.
  1. Debugging: If your code does not work, here's how we debug it
  2. FAQ: Development questions of the "how do I do ...?"

Dataflows

Reference

  • Butler API: The Butler is the mechanism for storing and accessing stored data in a NEXT application
  • Base Interface: All NEXT applications must implement this basic interface (and may extend it)
  • AWS Account Quickstart: How to get set up with an Amazon Web Services account

Builtin Apps Documentation

Clone this wiki locally