r/pytorch • u/Putrid_Bee_4840 • 14h ago
Open-sourced my knowledge-graph extraction engine: code, weights, and every failed experiment — plus a licensing lesson I learned the hard way
Solo dev. Just released everything from a weeks-long ML project and wanted to share both the release and a licensing gotcha that might save someone else the headache.
What's open:
- Code: Apache-2.0, on GitHub. Non-autoregressive decoders that turn sentence embeddings into knowledge-graph triples (for GraphRAG, agent memory, that kind of thing).
- Weights: 11 trained checkpoints, free on Hugging Face.
- The full test suite (113 tests, runs offline).
- The changelog documents negative results too — every approach that failed and why. I think hiding the failures makes releases less useful, so they're all in there: the loss function that made things worse, the LLM-distillation attempt that collapsed, the char-level generator that scored 0.006.
- Training recipes are reproducible: same splits, same seeds, documented protocol.
The licensing lesson: my decoder heads are trained from scratch, so Apache-2.0 was easy. But they consume embeddings from Meta's SONAR encoder — and SONAR's weights are CC-BY-NC 4.0 even though its code is MIT. Which means: my Apache-licensed decoders are useless commercially without a non-commercial encoder running upstream. The NC restriction attaches at runtime, not at my artifact level. I only fully worked this through after publishing, wrote an internal due-diligence doc, and the fix is on the roadmap: migrating to BGE-M3 (MIT-licensed weights, same embedding dimension, so the architecture doesn't even change).
If you're building on top of any "open" model: check the weights license separately from the code license. They differ more often than you'd think.
Repo: https://github.com/DeliVali/cogito-estella
Questions for this community:
- For those who maintain ML projects: do you publish negative results/failed experiments, or just the wins? I'd like to know if anyone else finds this valuable or if I'm just cluttering my changelog.
- How do you handle the mixed-license situation (permissive code, NC weights upstream) in your docs? I disclosed it in README + release notes + model card, but curious what the standard is.
- Solo maintainer here — what's the one thing that made your project contributor-friendly early on?



