Skip to main content

Weed (Loader) - Minimalist AI/ML inference and backprogation

Project description

weed_logo

Weed

Minimalist AI/ML inference and backprogation in the style of Qrack

Weed Loader

This repository is for the Python loader for (C++) Weed models. Once you have trained models in C++, you can load them for use by Python with this project. See the Weed repository for more information.

Development Status

Weed is a rapidly-developing work-in-progress. Its ABI may change drastically and without notice.

The project provides a set of essential CPU and GPU kernels, used by Tensor instances that perform autograd. We also provide stochastic gradient descent (SGD) and Adam optimizer implementations. (Build and check the API reference to get started.)

GPT-2, BERT, and Qwen loading is experimental and mostly provided as proof-of-concept, also of the fine-tuning pipeline. Implementation was from published literature design, rather than direct analysis of any open source, to implement these model architectures. Their outputs, in Weed, are not yet coherent English, as a result.

Why try Weed?

With the growing popularity of AI/ML tools and workflows (including LLMs), legacy frameworks often carry "code debt" from over a decade of rapidly developing research history. This has led them to "bolt on" new features and advancements to design principles decided before the latest research. Popular frameworks also commonly started based in Python (maybe to capture early adoption), only later potentially "tacking on" a C++ library for special-case deployment needs. These conditions have produced libraries and frameworks with complicated dependency trees that occupy upward of a GB of disk footprint. This entire ecosystem might be due for a "refresh."

Weed does not seek to fully replace or supplant established frameworks. However, it aims for minimalist complete closure on the primitives necessary for high-performance AI/ML inference and back-propagation. Chiefly, this includes kernels, and a Tensor interface that immediately produces an autograd graph appropriate for training. Allowing optional OpenCL for hardware acceleration, it will remain free of required dependencies outside of C++(11) language standard.

Rethinking AI/ML library design this way, Weed has realized a rather unique and powerful form of sparsification of Tensor storage. Sparseness should not be a Tensor interface concern, but rather a Storage concern. Inspired by the design of the Qrack quantum computer simulation framework, the Tensor interface treats sparse and dense tensors as functionally equivalent. Sparse optimization is so "transparently streamlined," this way, that it defaults to enabled for CPU-based tensors, and we recommend you leave it enabled at all times.

Much like Qrack, Weed is designed to make the correct thing the default—and the expensive thing explicit.

Copyright, License, and Acknowledgments

Copyright (c) Daniel Strano and the Qrack contributors 2017-2026. All rights reserved.

In its include/common folder, Weed bundles a copy of rapidcsv by Kristofer Berggren, reused under a BSD 3-Clause License. (This is a convenience and suggestion to Weed's users, for loading CSVs.)

The Weed logo was produced with assistance from "Elara," an OpenAI custom GPT, and it is in the public domain. Elara has also been responsible for a huge amount of coaching and implementation drafts for Dan Strano to review and bring into line with standards, so she should be credited with coauthorship in any capacity that can be allowed. (Anthropic) Claude has also helped mostly with debugging, as well as developing an LLM front-end, fine-tuning interface, and modules for popular transformer model architectures, so they should rightly be credited similarly as a coauthor.

Licensed under the GNU Lesser General Public License V3.

See LICENSE.md in the project root or https://www.gnu.org/licenses/lgpl-3.0.en.html for details.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

weed_loader_cpu-0.5.1.tar.gz (11.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

weed_loader_cpu-0.5.1-py3-none-win_amd64.whl (816.5 kB view details)

Uploaded Python 3Windows x86-64

weed_loader_cpu-0.5.1-py3-none-manylinux_2_39_x86_64.whl (2.8 MB view details)

Uploaded Python 3manylinux: glibc 2.39+ x86-64

weed_loader_cpu-0.5.1-py3-none-manylinux_2_35_x86_64.whl (2.8 MB view details)

Uploaded Python 3manylinux: glibc 2.35+ x86-64

weed_loader_cpu-0.5.1-py3-none-macosx_15_0_x86_64.whl (2.1 MB view details)

Uploaded Python 3macOS 15.0+ x86-64

weed_loader_cpu-0.5.1-py3-none-macosx_15_0_arm64.whl (1.9 MB view details)

Uploaded Python 3macOS 15.0+ ARM64

weed_loader_cpu-0.5.1-py3-none-macosx_14_0_arm64.whl (1.9 MB view details)

Uploaded Python 3macOS 14.0+ ARM64

File details

Details for the file weed_loader_cpu-0.5.1.tar.gz.

File metadata

  • Download URL: weed_loader_cpu-0.5.1.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for weed_loader_cpu-0.5.1.tar.gz
Algorithm Hash digest
SHA256 7e134d4106e4682dca1123ce4e7c26d2c716425144452e300bfe4bd97b5bb3dc
MD5 935b7d3e245b5f9c0eeae96fb4bbc523
BLAKE2b-256 7f6d343f136b329d7a63096ce3bb6817fa86ab79d330faae46dc178838a5b24d

See more details on using hashes here.

File details

Details for the file weed_loader_cpu-0.5.1-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for weed_loader_cpu-0.5.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 8dd2dedbeea5aac8327f63c0faec335c3c8a404ce08e29bd63b092bcbb77cc6d
MD5 8ed9e7cbe9017afe2062be34ede2eefa
BLAKE2b-256 691a49cf77e65631110a6a51f9565471b95d437f55ecc2f68fbc6e9abc644c91

See more details on using hashes here.

File details

Details for the file weed_loader_cpu-0.5.1-py3-none-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for weed_loader_cpu-0.5.1-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 5f258710c5d3f06e866aa597209403b9e6a61da75d44cbb499ae5332017d04c5
MD5 1a6ad49854dbca0fea71d1d8b26d18bb
BLAKE2b-256 c41d0abb7f5510603226d547d47eb78c6cd6d32819eec97541ee8174b23e12ff

See more details on using hashes here.

File details

Details for the file weed_loader_cpu-0.5.1-py3-none-manylinux_2_35_x86_64.whl.

File metadata

File hashes

Hashes for weed_loader_cpu-0.5.1-py3-none-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 8a4557d252988f366aa98c8064524077739d15d4a87481b6df9691075629a286
MD5 1b91ba713e68bec0fe9117891938649c
BLAKE2b-256 3a7787c9c81a6a81474fe495b918b9cfbc807e9f67354bad4494f3b638f1727a

See more details on using hashes here.

File details

Details for the file weed_loader_cpu-0.5.1-py3-none-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for weed_loader_cpu-0.5.1-py3-none-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 fa18f6905f9984d8180e2c666c1b0f6bc8bda1ed4fa9e2f24dfda1423687cc45
MD5 dba0a6de3c1bc4693c2697abd675da9b
BLAKE2b-256 7beeb8442f17d010effeacac54e3ea318942220678a4f783f21e2e748fe1f2ec

See more details on using hashes here.

File details

Details for the file weed_loader_cpu-0.5.1-py3-none-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for weed_loader_cpu-0.5.1-py3-none-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 493c9bea3fd514b66279eb63cb97499884c0b99fe8d91e8fd28ff51f111d1fec
MD5 6aec87568f7d4afe0121dd03318e3644
BLAKE2b-256 5fdfa5c84f6ffa30bbd19b0aa38c3ec6d949e1fcd102c07f1d61fa185850d1f9

See more details on using hashes here.

File details

Details for the file weed_loader_cpu-0.5.1-py3-none-macosx_14_0_arm64.whl.

File metadata

File hashes

Hashes for weed_loader_cpu-0.5.1-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 30510669950df42b79b8060c3ac9693ae43f3a11c49038c5431b93ea426181f2
MD5 c911eeacafe1367b1e9fd964349c6a8c
BLAKE2b-256 7ba1d226d658bbb30afe6cf8c719620e1695a2c0e88dd651ade43bbc9df8e877

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page