Pipcook is a machine learning application framework for front-end developers developed by D2C team of Tao Department technology Department. We hope that Pipcook can become a platform for front-end personnel to learn and practice machine learning, so as to promote the process of front-end intelligence.

The text/Yorkie

Hello everyone, today is the last day of April, so it’s time for the Pipcook team to take stock and report back to the community.

Work brief in April

First, we completed the following designs: MLApp API design, Pipboard UI prototype design and a new Pipcook Daemon design. We then formally migrated Boa to the Pipcook source code for official use by developers, fixed some usage builds based on some internal user feedback, and used TUNA as a Python mirror for domestic users. On the community side, in addition to some basic work, GitHub introduced a good First Issue mechanism for guiding contributors, which also allows some developers to contribute code to Pipcook:

  1. Txiaozhe, who contributed a lot to the CLI section, helped us rewrite the CLI using TypeScript and migrated the remaining Python models using Boa.
  2. Lingzr, which helped us optimize the any type in Core, also optimized parts of our entire type system.
  3. JihangGuo helped us fix some Lint issues.

Special thanks to the above contributors.

Finally, to support Pipcook’s ability to deploy JavaScript code to run on PAI EAS, we also support EAS’s Node.js Integration.

New Pipcook Daemon design

We decided in April to switch from an existing library-based approach to Pipcook to a command-line tool-based approach to migration. We mainly refer to the design of Docker, and hope that Pipcook can behave more like a software for both developers and users. Through Pipcook, it can help users manage Pipeline, plug-in and task of machine learning. Pipelines and plug-ins can also be shared via Pipcook’s CLI, rather than being used as code in node.js projects, so in our next release, the CLI will have the following changes:

  1. Init will no longer be required before running the Pipeline and can be executed directly via pipcook run your-pipeline.json
  2. Each Pipeline depends on a plug-in installed by the Pipcook Daemon into the user directory, just as you would manage different images using Docker
  3. The Pipcook CLI also provides command line tools to view, install, remove, and upgrade plug-ins


Why was the deployment plug-in removed?

If you look at our GitHub Pull Requests list, you’ll see that we’ve removed deployment types from our plug-in types because we believe we should give developers the most freedom and the most consistent output. Therefore, each Pipeline now outputs only one JavaScript library. All the user needs to do is to integrate this JavaScript into the corresponding environment using require. As an alternative to deploying plug-ins, we will provide support for model prediction logic in different operating environments. To simplify the user’s use process.

Plans for May

The Pipcook team will focus on the implementation of Pipboard and the guarantee of core user experience in the next month, as follows:

  1. Pipboard and Pipcook Daemons have a more intuitive feel for pipelines and plug-ins
  2. Pipboard Extension is designed to help Pipcook users better understand samples and models by integrating Facets and Tensorboard
  3. Integrated Imgcook sample manufacturing machine to provide a more convenient user interface for internal users
  4. By implementing Pipcook Daemons and CLI, simplify the cost of Pipeline execution and make it ready to use
  5. Create a core user experience acceptance standard and add it to GitHub Workflow as a check item for each change to ensure that the version after each change does not experience retrogress

On the other hand, due to the good First Issue’s popularity, we continue to add some interesting gameplay to the community, such as:

  1. Add more good First issues, categorize each type of question, and provide more detailed guidance for contributions.
  2. Good First Model was added to attract developers to help us migrate some TFJS and Python models.
  3. Added good First tests to attract developers to help us increase system stability.