nodevectors
refinery
nodevectors | refinery | |
---|---|---|
8 | 20 | |
497 | 1,365 | |
- | 0.9% | |
0.0 | 4.5 | |
almost 2 years ago | 14 days ago | |
Python | Python | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nodevectors
-
Vectorizing Graph Neural Networks
Yes, people working on graph based ML realize quickly that the underlying data structures most originally academic libraries (networkX, PyG, etc.) use are bad.
I wrote about this before [1] and based a node embedding library around the concept [2].
The NetworkX style graphs are laid out as a bunch of items in a heap with pointers to each other. That works at extreme scales, because everything is on a cluster's RAM and you don't mind paying the latency costs of fetch operations. But it makes little sense for graphs with < 5B nodes to be honest.
Laying out the graph as a CSR sparse matrix makes way more sense because of data locality. At larger scales, you could just leave the CSR array data on NVMe drives, and you'd still operate at 500mb/s random query throughput with hand coded access, ~150mb/s with mmap. That remains to be implemented by someone.
[1] https://www.singlelunch.com/2019/08/01/700x-faster-node2vec-...
[2] https://github.com/VHRanger/nodevectors
-
Zoomable, animated scatterplots in the browser that scales over a billion points
Ideally, you'd embed the graph into 2 or 3d first, then visualize it as a scatterplot.
Visualizing the edges at scale doesnt yield nice results in general.
The way to do it is to reduce the graph to some 300d or 500d embeddings, then use TSNE/UMAP/PACMAP to reduce that to 3d. Then visualize.
My prefered way is to use some first order embedding method like GGVec in this library [1] (disclaimer I wrote it). Node2Vec and ProNE don't yield great embeddings for visualization (the first is too filamented, the second too close to the unit ball).
Another great library to do this work is GRAPE [2]. Try first-order embedding methods, or short walks on second order methods to avoid the embeddings being too filamented by long random walk sampling.
[1] https://github.com/VHRanger/nodevectors
[2] https://github.com/AnacletoLAB/grape/
-
[P] We are building a curated list of open source tooling for data-centric AI workflows, looking for contributions.
For graph embeddings, there's quite a few. I'd recommend this one, but there's also this one (disclaimer: I'm the author) or this one, more of a DGL library.
-
clustering on sparse data (that's also wide)
You could also use some node embedding library to embed the sparse matrix into a denser one and then cluster that.
-
Faster Python calculations with Numba: 2 lines of code, 13× speed-up
Numba fits very few usecases, but where it does fit it's awesome.
I've been using it in a python graph library to write graph traversal routines and it's done me very well: https://github.com/VHRanger/nodevectors
The best part is the native openMP support on for loops IMO. Makes parallelism in data work very efficient compared to python alternatives that use processes (instead of threads)
-
UMAP works by representing high-dimensional data as a weighted graph and projecting that graph in lower dimensions. Could you use it directly to visualize a graph?
I was playing around with graph embeddings (https://github.com/VHRanger/nodevectors/) and wanted to visualize them, which led me to look into UMAP.
-
[D] Best methods for imbalanced multi-class classification with high dimensional, sparse predictors
The best candidates for it would be UMAP or graph embedding methods
-
Why I'm Lukewarm on Graph Neural Networks
As expected, networkx couldn't handle more than a million nodes so I had to search for python libs which might handle that much data.
This is why I've been using your lib (https://github.com/VHRanger/nodevectors) for at least 2 weeks now as well as these 2 other libs: https://github.com/louisabraham/fastnode2vec and https://github.com/sknetwork-team/scikit-network. What do they have in common? They handle sparse graphs (using CSR representations).
Having a graph with several million nodes isn't just some edge case, social graph for instance grow way faster than anyone could expect.
refinery
-
[P] We are building a curated list of open source tooling for data-centric AI workflows, looking for contributions.
You definitely forgot https://www.kern.ai/ :)
-
How we used AI to automate stock sentiment classification
We will build the web scraper in Kern AI workflow, labeled our news articles in refinery, and then enrich the data with gates AI. After that, we will use workflow again to send out the predictions and the enriched data via a webhook to Slack. If you'd like to follow along or explore these tools on your own, you can join our waitlist here: https://www.kern.ai/
-
German's NLP startup Kern AI has raised €2.7M in seed funding to accelerate its recent growth
A platform has been developed by the German startup Kern AI for NLP developers and data scientists to not only control the labeling process but also automate and orchestrate tangential tasks and enable them to address low-quality data that comes their way. Several companies exist substantively to power this labeling process.
-
Why and how we started Kern AI (our seed funding announcement)
Fast forward to July ‘22 (after many further product iterations and a full redesign), we open-sourced our product under a new name: Kern AI refinery (the origin of the name is very simple: we want to improve, i.e., refine, the foundation for building models).
-
GPT and BERT: A Comparison of Transformer Architectures
Get it for free here: https://github.com/code-kern-ai/refinery
- Open-source tool to label, assess and maintain natural language data. Treat training data like a software artifact!
-
Drastically decrease the size of your Docker application
Containers are amazing for building applications. Because they allow you to pack up a programm together with all it's dependencies and execute it wherever you like. That is why our application consists of 20+ individual containers, forming our data-centric IDE for NLP, which you can check out here: https://github.com/code-kern-ai/refinery.
-
Introducing bricks, an open-source content-library for NLP
Today we launched bricks, an open-source library which provides enrichments for your natural language processing projects. Our main goal with bricks is to shorten the amount of time that you need from idea to implementation. Bricks also seamlessly integrates into our main tool, the Kern AI refinery.
-
How to fine-tune your embeddings for better similarity search
This blog post will share our experience with fine-tuning sentence embeddings on a commonly available dataset using similarity learning. We additionally explore how this could benefit the labeling workflow in the Kern AI refinery. To understand this post, you should know what embeddings are and how they are generated. A rough idea of what fine-tuning is also helps. All the code and data referenced in this post is available on GitHub.
-
Build for Hugging Face, Rasa or Sklearn
We've built our open-source IDE for data-centric NLP with the belief that data scientists and engineers know best what kind of framework they want to use for their model building. Today, we'll show you three new adapters for the SDK.
What are some alternatives?
ndarray_comparison - Benchmark of toy calculation on an n-dimensional array using python, numba, cython, pythran and rust
sqlx - 🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, and SQLite.
deepscatter - Zoomable, animated scatterplots in the browser that scales over a billion points
fiftyone - The open-source tool for building high-quality datasets and computer vision models
GCGT - Source code for the paper: GPU-based Compressed Graph Traversal
dbs-tools - Perl tools to transform account / transaction data from DBS Bank into proper CSV
nanocube
azuredatastudio - Azure Data Studio is a data management and development tool with connectivity to popular cloud and on-premises databases. Azure Data Studio supports Windows, macOS, and Linux, with immediate capability to connect to Azure SQL and SQL Server. Browse the extension library for more database support options including MySQL, PostgreSQL, and MongoDB.
CloudForest - Ensembles of decision trees in go/golang.
serde_postgres - Easily Deserialize Postgres rows.
BotLibre - An open platform for artificial intelligence, chat bots, virtual agents, social media automation, and live chat automation.
cleanlab - The standard data-centric AI package for data quality and machine learning with messy, real-world data and labels.