Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/apple/ml-mycelium
About Interactive web viewer for exploring large neural networks—powers the graph visualization of Talaria
https://github.com/apple/ml-mycelium
graph machine-learning neural-networks visualization
Last synced: about 1 month ago
JSON representation
About Interactive web viewer for exploring large neural networks—powers the graph visualization of Talaria
- Host: GitHub
- URL: https://github.com/apple/ml-mycelium
- Owner: apple
- License: other
- Created: 2024-08-13T17:54:33.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-09-21T01:15:58.000Z (about 2 months ago)
- Last Synced: 2024-09-30T00:23:39.027Z (about 1 month ago)
- Topics: graph, machine-learning, neural-networks, visualization
- Language: JavaScript
- Homepage: https://apple.github.io/ml-mycelium
- Size: 12.8 MB
- Stars: 38
- Watchers: 9
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Mycelium - Talaria's Graph Viewer
Mycelium is a library for quickly creating graph visualizations of machine learning models (or any directed acyclic graph).
It was created to power the graph representations of [Talaria](https://machinelearning.apple.com/research/talaria) (ACM CHI 2024 Best Paper Honorable Mention) — which is an interactive visualization for optimizing the efficiency of on-device inference of machine learning models.It supports the following features:
- Fully customizable node labels and tooltips
- Expand and collapse nodes of large hierarchical models
- Based on SVG but can handle models with thousands of nodes- You can create a loader for your own data format
Mycelium consists of three parts that are mostly independent from another:
- The Svelte-based viewer in `/src/lib`
- Loaders for various formats in `/src/lib/loader`
- A SvelteKit-based web app for quick tests and development in `/src/app.html`### BibTeX
To cite our paper, please use:
```bib
@inproceedings{Hoh+2024,
title={Talaria: Interactively Optimizing Machine Learning Models for Efficient Inference},
author={Fred Hohman and Chaoqun Wang and Jinmook Lee and Jochen Görtler and Dominik Moritz and Jeffrey Bigham and Zhile Ren and Cecile Foret and Qi Shan and Xiaoyi Zhang},
booktitle={Proceedings of the SIGCHI Conference on Human Factors in Computing Systems},
year={2024},
organization={ACM},
doi={10.1145/3613904.3642628}
url = {https://arxiv.org/abs/2404.03085}
}
```### Usage
To install Mycelium via [NPM](https://www.npmjs.com/package/@apple/mycelium) you can run:
```sh
npm install @apple/mycelium
```If you prefer to vendor Mycelium into your project you can follow these steps:
```sh
# in the root directory of Mycelium
pnpm install
pnpm pack # automatically calls `pnpm build:lib`
```The resulting tarball can than be added to your project's dependencies in `package.json` like so:
```json
"@apple/mycelium": "file:apple-mycelium-x.y.z.tgz",
```### Example
The following is an example of the output of Mycelium for a small network with two levels of hierarchy. The information that is shown for each node is fully customizable.
## Deployment
To deploy Mycelium to GitHub Pages, we can run the following commands:
```sh
pnpm install
pnpm run deploy # adding `run` is important here.
```### Development
```sh
pnpm install
pnpm run dev
```This project uses [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) to automatically generate a `CHANGELOG.md` which signals breaking changes.
The following command can be used to create a release and update the changelog:```sh
npx [email protected] --preset conventionalcommits
```