-
Notifications
You must be signed in to change notification settings - Fork 208
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PipApp: the application framework for machine learning #33
Comments
@utkobe I have simplified the Modules and APIs, and now we are more focusing on the vision and nlp. |
yorkie
changed the title
meta: ML Application
meta: MLApp, the application framework for machine learning
Apr 9, 2020
yorkie
changed the title
meta: MLApp, the application framework for machine learning
PipApp: the application framework for machine learning
Jun 2, 2020
To implement the PipApp, the following is what we have to achieve:
The plugin matching algorithm of the pipeline generator:
|
Awesome job~~ |
This is finished at #241. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
The vision of Pipcook is to take the JavaScript developers and engineers into the world of machine learning quickly and seamlessly, then we're responsible for creating easy enough APIs.
In the Pipcook stack, the
pipcook-app
is to be defined the ML application, which abstracts some duplicated stuffs and hides low-level algorithm implementation which requires a learning curve for every ML rookie.APIs
Every module represents a type of dataset, and basically we provide some different methods for developers.
module
ml
This module is to create machine learning functions, it provides the core abilities to represent your machine learning application in an intuitive way.
interface
ml.Function
To hide the ML details as possible, Pipcook lets your declare your functions for machine learning purpose in a specific type
ml.Function
, you can create aml.Function
via the followingcreate()
function.Internally, the Pipcook compiler parses the applications, then generates the training code via the
ml.Function
instances, and replaces these slots with model generated inferences.interface
ml.FunctionImpl(arg: data.MLType)
This interface is to describe the internal machine learning internals for applications, and it accepts an argument in
data.MLType
as the input, however the output's type is not required.create(fn: ml.FunctionImpl): ml.Function
This is to create the above
ml.Function
with aml.FunctionImpl
object.module
data
This module is to declare all types for your application's I/O.
interface
data.MLType
It's the base interface to tell the Pipcook compiler a type for ML.
interface
data.ImageType
extendsdata.MLType
It represents the image type for given
ml.Function
I/O.interface
data.TextType
extendsdata.MLType
It represents the text type for given
ml.Function
I/O.module
vision
This module provides vision-related functions like image classification and object detection.
interface
vision.Position2D
it represents the position in 2d for object detections:
label
{string} the label string represents the object's type.left
{number} the left of detected object in pixel.top
{number} the top of detected object in pixel.height
{number} the height of detected object.width
{number} the width of detected object.classify(img: ImageType): string
It recognizes the type of image, and returns the type string.
detect(img: ImageType): vision.Position2D[]
It detects target from a single image, and returns the position and label of detected objects.
module
nlp
This module provides NLP-related functions like text classification and clustering.
interface
nlp.Cluster
label
{string} the label for this cluster.items
{string[]} the strings in this cluster.interface
nlp.ClusteringResult
clusters
{nlp.Cluster[]} all grouped clusters, and each is an object ofnlp.Cluster
.noises
{string[]} all labeled noises strings.classify(input: string): string
it recognizes the type of text, and returns the type string.
clustering(inputs: string[]): nlp.ClusteringResult
it clusters all types of given inputs, and returns the result in
nlp.ClusteringResult
.Anti-APIs
The anti-API means the API must be hidden under the application user, there is a list here:
pipcook-app
, thus we don't any other APIs for serving models specially.Example
Then run the following commands to train:
And run your ML application:
The text was updated successfully, but these errors were encountered: