Closed kensoh closed 6 years ago
Reduce scope the for the issue, implement command line integration for calling command line executions and fetching execution output. Main work using CatBoost is defining parameters which are very specific to different use scenarios. Making a defined implementation is not generalized enough.
With command line integration abilities using run step and advanced API integration abilities, should be good for integration with AI / ML example services in issue description, or local implementations such as CatBoost / Caffe.
Exciting new developments ahead, in integration of TagUI automation with AI / ML capabilities.
Hint - AI Singapore (https://www.aisingapore.org) - a government programme to build up AI capabilities in Singapore, including research, industry collaboration, apprenticeship and launching MVPs.
TagUI allows decision making using conditions (either in natural language or JavaScript syntax). With easy-to-use and advanced API calls, it can also connect to AI/ML-as-a-service providers for advanced cognitive abilities. Examples include Wit, Dialogflow, to offerings from Microsoft, Google, Amazon.
Other than these options, I would want to have a native integration that runs an AI / ML tool locally. Be it for reasons such as extensibility, control, price, performance. That is the logical next step.
After looking at open-source tools such as Google deeplearn.js, Andrej's ConvNetJS, Yandex CatBoost, I decided to go with CatBoost for a start. Although the first two are more popular, they are designed to run within the web-browser using JavaScript. Besides performance considerations, there is probably lesser isolation from the actual web automation that is happening.
CatBoost, on the other hand, can run as an executable from command line, across the different major OSes. Other plus points I like about it is it uses gradient boosting which is less computationally intensive, and is the result of production grade MatrixNet used for decision-making at Yandex.
rough ideas what needs to be done (scope reduced, see bottom)
enable support for running of OS-level commands by introducing run step and backporting waitForExec function from CasperJS v1.1.5 (not yet released)
experiment training and applying of classification models using CatBoost command linecreate default parameters data structure which can be tweaked by user before runningideally map into train and query steps that elegantly manage flow of data and answersexperiment with further optimizations to simplify machine learning workflow in TagUIfirm up steps design, new sample flow, update documentation, possibly v3.0 release