syntaxdot
nexus
syntaxdot | nexus | |
---|---|---|
4 | 10 | |
67 | 99 | |
- | - | |
6.2 | 6.0 | |
7 months ago | 4 months ago | |
Rust | Nim | |
GNU General Public License v3.0 or later | 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.
syntaxdot
-
Candle: Torch Replacement in Rust
I am so happy about them releasing this. A few years ago I wrote a multi-task syntax annotator in Rust using Laurent Mazare's excellent tch-rs binding (it seems like he is also working on Candle):
https://github.com/tensordot/syntaxdot
However, the deployment story was always quite difficult. The PyTorch C++ API is not stable, so a particular version of tch-rs will only work with a particular PyTorch version. So, anyone wanting to use SyntaxDot always had to get exactly the right version of libtorch (and set some environment variables) to build the project.
The idea of making an abstraction over Torch and Rust ndarray (similar to Burn) crossed my mind several times, but there is only so much that I could do as a solo developer. So Candle would be a god-given if I was still working on this project.
Seeing Candle wants to make me port curated-transformers to Candle for fun:
https://github.com/explosion/curated-transformers
-
Ask HN: What is the job market like, for niche languages (Nim, crystal)?
They are obviously not as good as in Python, but if you are willing to invest time, it's definitely doable. E.g. I made a multi-task transformer-based syntax annotator in Rust using the tch Torch binding:
https://github.com/tensordot/syntaxdot
In my current job, I do NLP with Python, Cython, and some C++. I don't think doing it in Rust was much more work. Once you are beyond the stage of implementing a small research project or toy model, most systems are going to contain a lot of custom, specialized code. You will have to do that work in any language.
-
PyTorch 1.8 release with AMD ROCm support
What I like about PyTorch is that most of the functionality is actually available through the C++ API as well, which has 'beta API stability' as they call it. So, there are good bindings for some other languages as well. E.g., I have been using the Rust bindings in a larger project [1], and they have been awesome. A precursor to the project was implemented using Tensorflow, which was a world of pain.
Even things like mixed-precision training are fairly easy to do through the API.
[1] https://github.com/tensordot/syntaxdot
-
SpaCy v3.0 Released (Python Natural Language Processing)
Huggingface fills the need for task based prediction when you have a GPU.
With model distillation, it should be possible to annotate hundreds of sentences per second on a single CPU with a library like Huggingface Transformers.
For instance, one of my distilled Dutch multi-task syntax models (UD POS, language-specific POS, lemmatization, morphology, dependency parsing) annotates 316 sentences per second with 4 threads on a Ryzen 3700X. This distilled model has virtually no loss in accuracy, compared to the finetuned XLM-RoBERTa base model.
I don't use Huggingface Transformers, but ported some of their implementations to Rust [1], but that should not make a big difference since all the heavy lifting happens in C++ in libtorch anyway.
tl;dr: it is not true that tranformers are only useful for GPU prediction. You can get high CPU prediction speeds with some tricks (distillation, length-based bucketing in batches, etc.).
[1] https://github.com/tensordot/syntaxdot/tree/main/syntaxdot-t...
nexus
-
Ask HN: Who's an open source maintainer/project that needs sponsorship or help?
Nexus: https://github.com/jfilby/nexus
This is a web framework + ORM for Nim. It's in desperate need of more work to support DBs other than PostgreSQL and make the ORM more flexible. The web side also needs more work.
- Ask HN: Should I learn more languages?
-
Ask HN: Companies of one, what is your tech stack?
I use it mainly for high-performance backend engines. E.g. I'm writing an automated trading system and the trading engine is written in Nim.
I wrote a Nim web framework that has an ORM: https://github.com/jfilby/nexus. However I mainly use the ORM with the back-end engines. You could write a Django-style web app with Nexus + Nimja, but it's difficult to compete with the huge ecosystems of React and Flutter.
-
Ask HN: What is the job market like, for niche languages (Nim, crystal)?
It's not good for Nim, unfortunately. The language is great, but the community isn't that big.
If you're looking for a web framework with an ORM for Nim, check out Nexus: https://github.com/jfilby/nexus
-
Mastering Nim – now available on Amazon
There's no Discord yet, just GitHub issues. Here's an issue to track this request: https://github.com/jfilby/nexus/issues/14
I'll email you regarding what/how to help.
-
Building a personal blog using Django
Django is a great MVC framework. It might be overkill for a blog as another poster wrote, but it's still a good way to learn Django.
If you ever want to learn Nim, please consider Nexus (https://github.com/jfilby/nexus) as I'm building it to be something like Django for Nim.
- Show HN: Nexus Development Framework (Nim)
-
Show HN: Nexus Development Framework
Nexus is a Nim development framework.
https://github.com/jfilby/nexus
The aim to create a web framework similar to Django, with a built-in ORM. The view layer needs work, and is mostly built out of available libraries with Jester for routing and Nimja for templating.
-
Nexus Development Framework
Nexus Development Framework, for Nim, is now available: https://github.com/jfilby/nexus
-
Ask HN: What are some examples of elegant software?
Nim. It's just so quick and easy to write high performance code. That's why I'm writing a web framework for it, soon to be released: https://github.com/jfilby/nexus
What are some alternatives?
laserembeddings - LASER multilingual sentence embeddings as a pip package
NATS - High-Performance server for NATS.io, the cloud and edge native messaging system.
duckling - Language, engine, and tooling for expressing, testing, and evaluating composable language rules on input strings.
src - Read-only git conversion of OpenBSD's official CVS src repository. Pull requests not accepted - send diffs to the tech@ mailing list.
spaCy - 💫 Industrial-strength Natural Language Processing (NLP) in Python
Turbo Vision - A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support.
projects - 🪐 End-to-end NLP workflows from prototype to production
Stockfish - A free and strong UCI chess engine
tensorflow - An Open Source Machine Learning Framework for Everyone
TiddlyWiki - A self-contained JavaScript wiki for the browser, Node.js, AWS Lambda etc.
candle - Minimalist ML framework for Rust
Boost.Asio - Asio C++ Library