Skip to content
Jim Pivarski edited this page Nov 30, 2015 · 101 revisions

Hadrian Wiki

This wiki provides documentation for the Hadrian ecosystem of tools.

First steps

Hadrian (Java/Scala/JVM)

Hadrian is a complete implementation of PFA in Scala, which can be accessed through any JVM language, principally Java. It focuses on model deployment, so it is flexible (can run in restricted environments) and fast.


Titus (Python)

Titus is a complete, independent implementation of PFA in pure Python. It focuses on model development, so it includes model producers and PFA manipulation tools in addition to runtime execution.

  • Complete API reference (Sphinx)
  • Loading, validating, and executing PFA in Titus
  • PFA development tools
    • PrettyPFA is a more human-readable syntax that converts into PFA: use this to write PFA "code"
    • PFA navigation
    • JSON regular expressions: find and change parts of a PFA document with a declarative DSL
    • Convert PMML into PFA
  • Model producers in Titus
    • CUSUM tutorial: an example of building a model primarily with PrettyPFA
    • K-means reference: building cluster models with Titus
    • CART reference: building decision trees with Titus
    • Transformations producer: coordinates operations on Numpy arrays in the producer stage with PFA code in the runtime scoring engine, for developing pre- and post-processors
  • Ready-to-use Titus scripts:
    • pfainspector: command-line tool (with history and tab-complete) for inspecting PFA documents (or other JSON): use this to diagnose faulty PFA
    • pfachain: turns a linear sequence of PFA files into a combined PFA file, with schema-checking and renaming to avoid namespace collisions
    • pfaexternalize: moves large data blocks from a PFA file into external JSON for faster loading (uses ijson)
    • pfarandom: given an input and output schema, creates a PFA file to fit these schama (the PFA file ignores input and generates random outputs)

Aurelius (R)

Aurelius is a toolkit for generating PFA in the R programming language. It focuses on porting models to PFA from their R equivalents. To validate or execute scoring engines, Aurelius sends them to Titus through rPython (so both must be installed).


Antinous (Model development in Jython)

Antinous is a model-producer plugin for Hadrian that allows Jython code to be executed anywhere a PFA scoring engine would go. It also has a library of model producing algorithms.

  • Interaction between PFA, Jython, and Scala/Java code
  • Producer interface
  • Producers
    • K-means
Clone this wiki locally