SkillAgentSearch skills...

Beimingwu

Beimingwu is the first systematic open-source implementation of the learnware dock system, providing a preliminary research platform for learnware studies and enabling effective learnware search and reuse without building machine learning models from scratch.

Install / Use

/learn @Learnware-LAMDA/Beimingwu
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<div align=center> <img src="./frontend/packages/main/public/logo.svg" width="420" height="auto" style="max-width: 100%;"/> <br/> <br/> </div> <div align="center"> <a href="LICENSE"> <img alt="LICENSE" src="https://img.shields.io/pypi/l/learnware?color=blue"> </a> <a href="https://bmwu.cloud/"> <img alt="Website" src="https://img.shields.io/website/http/docs.bmwu.cloud?down_color=red&down_message=offline&up_message=online"> </a> <a href="https://pypi.org/project/learnware/#history"> <img alt="PypI Versions" src="https://img.shields.io/pypi/v/learnware"> </a> <a href="https://pypi.org/project/learnware/#files"> <img alt="Platform" src="https://img.shields.io/badge/platform-linux%20%7C%20windows%20%7C%20macos-lightgrey"> </a> <a href="https://docs.bmwu.cloud/"> <img alt="Docs Status" src="https://img.shields.io/website/http/docs.bmwu.cloud?down_color=red&down_message=failing&up_message=success&label=docs"> </a> <a href="https://img.shields.io/pypi/dm/example-package"> <img alt="PyPI Downloads" src="https://img.shields.io/pypi/dm/example-package"> </a> </div> <div> <h3 align="center">Beimingwu: The First Learnware Dock System</h3> <h3 align="center">A Research Platform for Learnware</h3> <h3 align="center"> <a href="README_zh.md">中文</a> | <b>English</b> </h3> </div>

Introduction

Learnware was proposed by Professor Zhi-Hua Zhou in 2016 [1, 2]. In the learnware paradigm, developers worldwide can share models with the learnware dock system, which effectively searches for and reuse learnware(s) to help users solve machine learning tasks efficiently without starting from scratch.

Beimingwu is the first systematic open-source implementation of learnware dock system, providing a preliminary research platform for learnware studies. Developers worldwide can submit their models freely to the learnware dock. They can generate specifications for the model with the help of Beimingwu without disclosing their raw data, and then the model and specification can be assembled into a learnware, which will be accommodated in the learnware dock. Future users can solve their tasks by submitting their requirements and reusing helpful learnwares returned by Beimingwu, while also not disclosing their own data. It is anticipated that after Beimingwu accumulates millions of learnwares, an "emergent" behavior may occur: machine learning tasks that have never been specifically tackled may be solved by assembling and reusing some existing learnwares.

A learnware is a well-performed trained model with a specification that describes its capabilities, enabling it to be readily identified and reused in the future based on user requirements. The specification includes a semantic specification in text and a statistical specification sketching the model's statistical information.

[1] Zhi-Hua Zhou. Learnware: on the future of machine learning. Frontiers of Computer Science, 2016, 10(4): 589–590 <br/> [2] Zhi-Hua Zhou. Machine Learning: Development and Future. Communications of CCF, 2017, vol.13, no.1 (2016 CNCC keynote)

What features does Beimingwu have?

As shown in the diagram below, the Beimingwu learnware dock system, serving as a preliminary research platform for learnware, systematically implements the core processes of the learnware paradigm for the first time:

  • Submitting Stage: The system includes multiple detection mechanisms to ensure the quality of uploaded learnwares. Additionally, the system trains a heterogeneous engine based on existing learnware specifications in the system to merge different specification islands and assign new specifications to learnwares. With the submission of more learnwares, the heterogeneous engine will continually update, aiming to construct a more precise specification world through the constant iteration of learnware specifications.
  • Deploying Stage: After users upload task requirements, the system automatically selects whether to recommend a single learnware or multiple learnware combinations and provides efficient deployment methods. Whether it's a single learnware or a combination of multiple learnwares, the system offers baseline learnware reuse methods in a uniform format for convenient usage.
<div align=center> <img src="docs/content/public/overview/learnware-workflow-en.svg" width="700" height="auto" style="max-width: 100%;"/> </div>

In addition, the Beimingwu system also has the following features:

  • Learnware Specification Generation: The Beimingwu system provides specification generation interfaces in the learnware Python package, supporting various data types (tables, images, and text) for efficient local generation.
  • Learnware Quality Inspection: The Beimingwu system includes multiple detection mechanisms to ensure the quality of each learnware in the system.
  • Diverse Learnware Search: The Beimingwu system supports both semantic specifications and statistical specifications searches, covering data types such as tables, images, and text. In addition, for table-based tasks, the system preliminarily supports the search for heterogeneous table learnwares.
  • Local Learnware Deployment: The Beimingwu system provides a unified user interface for learnware deployment and reuse in the learnware Python package, facilitating users' convenient deployment and reuse of arbitrary learnwares.
  • Raw Data Protection: The Beimingwu system operations, including learnware submission, identification, and deployment, do not require users to upload raw data. All relevant statistical specifications are generated locally by users using open-source API.
  • Open Source System: The Beimingwu system's source code is open-source, including the learnware Python package and frontend/backend code. The learnware package is highly extensible, making it easy to integrate new specification designs, learnware system designs, and learnware reuse methods in the future.

How is Beimingwu organized?

System Architecture

As depicted in the figure below, Beimingwu's architecture consists of four hierarchical layers, from the learnware storage layer to the user interaction layer, systematically implementing the learnware paradigm for the first time from the ground up.

The functionalities of the four layers are described as follows:

  • Learnware Storage Layer: Manage the storage of learnwares in zip packages and provides access to them through the learnware database.
  • Core Engine Layer: Encompass all processes within the learnware paradigm, including learnware uploading, searching, reusing, and deployment, and operate independently of the backend and frontend, offering rich algorithmic interfaces for learnware-related tasks and research experiments.
  • System Backend Layer: Enable industrial-level deployment of Beimingwu, offering stable online deployment and providing extensive backend APIs for frontend and client interactions.
  • User Interface Layer: Comprise a web-based frontend and a command-line client for user convenience and interaction.
<div align=center> <img src="docs/content/public/overview/beimingwu-architecture-en.svg" width="700" height="auto" style="max-width: 100%;"/> </div>

Project Structure

Based on the system architecture, Beimingwu is developed with five sub-projects:

  • Engine: Encompassing core components and algorithms within the learnware paradigm, and providing a command-line client for user interaction, it has been releasead as the learnware package.
  • Frontend: Provide the interface and functionality for user interaction with the learnware dock system, including the main system and administrator system.
  • Backend: Responsible for handling the dock system's operation logic and data operations, it ensures system stability and high performance.
  • Docs: Maintain system documentation, including user guides, development guides, etc., ensuring system usability.
  • Deploy: Manage the system deployment configuration, including frontend and backend deployment files.

Quick Start

Welcome to experience Beimingwu. The following instructions will assist you in quickly exploring the search functionality on the system website and provide two demo cases from learnware search to learnware deployment using the learnware package.

The installation instructions for the learnware package can be found here: Installation Guide.

Learnware Search

In Beimingwu, learnwares can be searched using both semantic information and statistical information.

When searching with semantic information, you can fill in the information about your target learnware, and the system will search in the names and descriptions of learnwares. You can also filter by tags.

image

When searching with statistical information, you need to generate and submit a statistical specification, which captures the data distribution while not disclosing your original data. Using the API we provided, you can easily generate this statistical specification locally.

from learnware.specification import generate_stat_spec

data_type = "table"  # Data types: ["table", "image", "text"]
spec = generate_stat_spec(type=data_type, X=test_x)
spec.save("stat.json")

By uploading the JSON file containing statistical information, the system will match learnware with similar statistical information. You can download the learn

View on GitHub
GitHub Stars122
CategoryEducation
Updated2mo ago
Forks4

Languages

Vue

Security Score

100/100

Audited on Jan 14, 2026

No findings