SensibleAI Studio Definitions
The purpose of this document is to provide all of the major SensibleAI Studio definitions and key terms.
Definitions & Key Terms
Many of the Definitions and Key Terms reference one another. Referenced Definitions and Key Terms will show up in italics.
SensibleAI Studio Definitions Index
Artifact
Definition: An Artifact is an object that can be generated by a Routine Method Run that holds data, metadata, and other summary level information that can be used after its generated for downstream business processes. An Artifact is comprised of:
- Artifact Metadata
- Artifact Data
- (optional) Artifact Statistics
- (optional) Artifact Previews
Additional Information:
- Artifacts are stored in a file-system backend (like the MetaFileSystem)
- A Run may generate zero to N number of Artifacts. It is entirely dependent on how the Routine Developer defined their Routine.
- Artifacts may be accessed through the SensibleAI Studio UI or programmatically through OneStream Business Rules
Example:
anomaly_instances
- A set of predictions generated by an anomaly detection algorithm that labels data as anomalous or not.decision_tree_visual
- An image of how a decision tree was broken down within a classifier model and it decided to split the tree based on feature values.
Artifact - Artifact Definition
Definition: An Artifact Definition is what defines what a generated Artifact is anticipated to look like after it’s generated by running a Routine Method.
Additional Information:
- An Artifact Definition is broadly comprised of attributes like Artifact Key, Artifact Qualified Key, Artifact File Annotations, Artifact In-Memory Accessible, etc.
Example:
Artifact - Artifact Key (Annotation)
Definition: The name identifier of an Artifact within a particular Routine Method.
Additional Information:
- This is not guaranteed to be unique when dealing with Nested Artifacts. See Artifact Qualified Key example for details.
- The Artifact Key Annotation will map to a directory name found in the Routine Storage Structure within the
artifacts_
directory.
Example:
Artifact - Artifact Qualified Key (Annotation)
Definition: The unique identifier of an Artifact within a particular Routine Method.
Additional Information:
- The Artifact Qualified Key is defined by the Routine Developer when writing the Routine.
- The Artifact Qualified Key will look different from an Artifact Key when Nested Artifacts are involved.
- When you have Nested Artifacts, you will see the Artifact Qualified Key be comprised of both the outer Artifact Key and the inner Artifact Key separated by a “.” (ex:
outer_key.inner_key
).
Example:
my_dataframe
: An example mapping to a dataframemy_list.0.dataframe
: A nested Artifact where you have an Artifactmy_list
then an Artifact0
for the 1st index, then you have an Artifact calleddataframe
. You would say thatdataframe
is the Artifact Key andmy_list.0.dataframe
is the Artifact Qualified Key
Artifact - Artifact Data
Definition: The actual data generated by an Artifact.
Additional Information:
- The type of data that is generated is defined by the Routine Method.
- Some of the common Artifact File Types include:
.parquet
,.html
,.png
,.webref
,.json
, and more. - This file data can be read back on the .NET within Xperiflow Business Rule helper methods.
Example:
Artifact - Artifact File Annotation
Definition: A file path and a description that represents one or more of the anticipated Artifact Data file types found within the Artifact.
Additional Information:
@
= Represents an Artifact directory<int>
= A directory or file variable representing an integer.<str>
= A directory or file variable representing a string.
Example:
- Ex1: An Interactive HTML Artifact
- Annotation:
artifacts_/@report_content/data_/html_content.html
- Description:
- Annotation:
- Ex2: A Tabular Artifact (as partitioned parquet files)
- Annotation:
artifacts_/@anomaly_instances/data_/data_<int>.parquet
- Description: A partitioned set of parquet files where each file will have no more than 1000000 rows.
- Annotation:
Artifact - Artifact Metadata
Definition: The metadata associated with a generated Artifact.
Additional Information:
- This is typically represented as a
artifact_metadata.json
file that is accessible within themetadata_
directory of the Routine Directory Structure. - This holds information such as the Artifact creation time, Artifact description, Artifact title, Artifact File Annotations, and more.
Example:
Artifact - Artifact Preview
Definition: An Artifact Preview is a reviewable representation of an Artifact to better inform a Power User of as to what they will find in the Artifact data itself.
Additional Information:
- An Artifact can have 0 to N number of Artifact Previews generated for it.
- Generation of Artifact Previews may be turned off by the Power User.
Example:
Artifact - Artifact Statistic
Definition: A statistic that is generated off of raw Artifact Data that can provide more insight into the underlying Artifact Data.
Additional Information:
- Artifact Statistics can be seen within SensibleAI Studio after the Artifact has been generated.
- Generation of Artifact Statistics may be turned off by the Power User.
Example:
Artifact - In-Memory Json Accessible
Definition: A special attribute found on an Artifact Definition that denotes whether the Artifact can be accessed as a Json object when the Routine Method is run with a Routine Method Execution Type of “in-memory”.
Additional Information:
- Not all Artifact Data is accessible as a Json object.
Example:
Artifact - Dynamic Artifact
Definition: A special type of Artifact that is generated dynamically when the Routine Method runs. The user won’t know it exists until after the Routine Run is complete.
Additional Information:
- Within the Routine Documentation in the Signature section for any method, the user can see a field titled “Outputs Dynamic Artifacts”, that lets the user know if this Routine may return any Dynamic Artifact.
- You will not see a Dynamic Artifact show up in the Routine Documentation under the Artifacts Section (by definition, you don’t know what the definition of Dynamic Artifact is until you actually Run the Routine Method, therefore we can’t embed it “up-front” in the documentation. We can only tell you if the Routine Method may return other Dynamic Artifacts).
- Typically, Routine Developers try to avoid using this capability in the Routines they develop to provide deterministic results coming out of Routine Methods.
Example:
(Sensible)AI Studio
Definition: The OneStream Solution for managing and interacting with Routines programmatically or through a user interface.
Additional Information:
- Acronym (STU)
- Make sure to not confuse this with the Sensible ML Feature Library which is a prebuilt data store of external data connections to pull information such as macro-economic information, etc.
Example:
Solution Exchange - Routine Store
Definition: The Routine Store is a centralized service to house OneStream developed and community developed Routines made by Routine Developers.
Additional Information: The Routine Store allows:
- Routine Developers to upload their Routines
- Routine Developers to get their Routines approved for commercial use
- AI Services Users to find and import community developed Routines into their library so that they can use them
This feature will not be available until a future release.
Example:
Memory Capacity - Run Memory Capacity
Definition: The max amount of memory in gigabytes that a given Routine Method is allowed to consume at any one time.
Additional Information: If this memory limit is surpassed, the Run will be suspended and terminated. An error message will be provided, denoting that the memory capacity was exceeded.
Example:
Memory Capacity - Total Memory Capacity
Definition: The total memory capacity in gigabytes allowed for the for the AI Services environment that can be used at any one time.
Additional Information: If this memory limit is surpassed, the latest starting Run will be suspended and terminated. An error message will be provided, denoting that the memory capacity was exceeded.
Example:
Stateful Routine
Definition:
A type of Routine that manages state and is comprised of multiple methods that can be executed after this routine type has been created.
A Stateful Routine is defined with the python method name of __init__
.
Additional Information:
- A Stateful Routine resembles a class that you would see in any other programming language. It has a constructor to maintain stateful member variables, has one to N methods on it, and those methods may change the state of the Routine Instance variables as those methods are executed
Example:
- XGBoost Classifier Routine - This is a Routine Method because it is expects the user of the Routine to 1) Construct it 2) Call Fit (a method) which will train the XGBoost Classifier and 3) Call Predict (a method) to leverage the internal trained model to make predictions
Stateless Routine
Definition: A type of Routine that does not manage internal state and does not have a constructor method to instantiate the Routine Instance.
Additional Information:
- A Stateless Routine resembles a “static class” that you would see in any other programming language. The only difference is that you still must “create” the routine instance before you can call the Routine Methods on it.
Example:
Routine Instance
Definition: An instantiated Routine.
Additional Information:
- If the Routine is a Stateless Routine, the Routine is considered “instantiated” once the Routine is “created”.
- If the Routine is a Stateful Routine, the Routine is considered “instantiated” once the Routine is “created” and the Routine Constructor is Run.
- After creating an instance of a Routine, I can now call the various methods that are defined on that routine.
- Just like any programming language, I can create many instances of a Routine
- A Routine Constructor may specify 0 to N parameters.
Example:
- I can create many instances of an CNN Image Classifier Routine. Maybe I will name and create one instance of this CNN Image Classifier Routine for classifying whether an image is a hamburger or a hotdog. I can also create another instance that can be used for classifying whether an image is a Tree or a Dog.
Routine Method
Definition: A method defined as part of a Routine. A method will take in input parameters, execute some business logic, then output (if any) results as Artifacts and potentially alter the state of the Routine Instance.
Additional Information:
- Like any standard programming language, you must instantiation the Routine prior to being able to run the Routine Method.
Example:
Routine Method - Constructor
Definition: A special type of Routine Method that must be invoked on a Stateful Routine prior to calling any of the Routine Methods available on the Routine.
Additional Information:
Example:
Routine Method - Execution Type
Definition: The way in which a Routine Method Run is executed. The Execution Type is set to “background” by default.
Additional Information:
- There are two main Execution Types - “background” and “in-memory”.
- background - Executes the Routine Method Run as a background job on some system defined processing engine.
- in-memory - Executes the Routine Method Run “in-process” (or at the web service tier) to ensure fast execution.
- Note that only certain Routine Methods allow this type of execution (defined by the Routine Developer)
- This should only be used when you need the Routine to return data results behind a UI interaction (4 seconds or less is a good rule of thumb)
- When executing in this way, any Artifact that is In-Memory Json Accessible will allow the Power User to access the Json variation of the Artifact Data as part of the In-Memory result.
Example:
Routine Method - Signature
Definition: The Routine Method’s name, return type (Artifacts), and parameters—essentially how the method should be called and what it returns.
Additional Information:
Example:
Routine
Definition: A modular software component comprised of one or more functions that accept inputs and produce outputs, such as data results or interactive web applications.
Additional Information:
- The python script format and interface that a Routine Developer must implement in order to have their data science functionality accepted into the AI Studio.
BaseRoutine
,ParameterBaseModel
, andArtifactBaseModel
act as the backbone of the interface to develop your script against- There is a test harness to allow developers to validate that their script conforms to the interface.
Example:
Routine Type
Definition: A type of Routine. There are two types of routines that can be defined by Routine Developer and executed by users. The Stateful Routine and the Stateless Routine.
Additional Information:
- The two Routine Types are modeled off the standard programming concepts of Classes and Static Classes. Classes have instance variables, constructors, and methods that take in input, change state, and output results. On the other hand, Static Classes just define 1 to N methods and simply take in inputs and output results.
Example:
Routine Test Harness
Definition: A Python PyTest framework that can validate and provide feedback to Routine Developer on if their Routine conforms to the standards and the interface that the AI Studio expects.
Additional Information: This feature will not be available until a future release.
Example:
Routine Run (Routine Method Run)
Definition: A Run denoted as any invocation of a Routine Method or Routine Constructor.
Additional Information:
- A Routine Run will generate a storage directory structure within the MetaFileSystem
- A Routine Run’s progress can be monitored within SensibleAI Studio or programmatically.
- A Routine Run can be run in “standard mode” or “in-memory” mode. “in-memory” mode allows the Routine Run to be executed on the AI Engine web service to enable faster execution. In this mode, Artifacts that are JSON-serializable are accessible via a JSON representation of the Artifact Data.
Example:
Routine Storage Structure
Definition: A file-based directory structure that outlines how inputs, metadata, and outputs are stored to represent a Routine Instance, and Routine Runs.
Additional Information:
- Whenever a user creates a Routine Instance or Routine Run is created, a new underlying directory structure is created in the MetaFileSystem to represent the data of the Routine Instance or Routine Run.
Example:
Workflow
Definition: An instance of a Workflow Definition
Additional Information: Another analogy to use here is think of a Workflow Instance as an instance of an object.
Example:
Workflow Definition
Definition: A Workflow Definition defines a series of workflow steps, transitions, triggers, validations, that can be taken to execute some use case. A Workflow Definition can have many Workflows (instances)
Additional Information:
- A Workflow Definition is expected to accompany a Routine to define how a user will be guided through the process on the front-end of filling out the necessary parameters to fire of a Routine.
Example:
User - Routine Developer
Definition: A Routine Developer develops and contributes new Routines to the AI Studio that other the Power User can build with.
Additional Information:
- The Routine Developer Builds and Deploys AI Studio Routines in Python. The typical background of a Routine Developer is a Python developer, data scientist, or computer scientist
- The Routine Developer writes code in Python and implements the
BaseRoutine
interface. - Over time, third party developers will be able to develop Routines. For the short term, only OneStream licensed developers will be allowed to act as Routine Developers
Example:
User - Power User
Definition: A Power User is leveraging the outputs (typically relational tables, docs, reports, etc.) of AI Studio Routines to power other processes in OneStream.
Additional Information:
- The Power User integrates AI Studio Routines into business processes in OneStream by leveraging the AI Studio APIs and core OneStream business rule APIs. The typical background of a Power User is OneStream Solution developers, solution consultants, Sensible ML consultants.
Example:
User - End User
Definition: The typical OneStream End User. It is expected that the End User will not spend any time inside of the AI Studio. Rather, they will rely on dashboards / reports built by the Power User
Additional Information:
- The End User simply just leverages the supercharged business processes inside of OneStream that was built for them by the Routine Developers and the Power Users.
Example: