|
| 1 | +== NNTrainer Project Proposal |
| 2 | + |
| 3 | + |
| 4 | +=== Name of project |
| 5 | + |
| 6 | +NNTrainer |
| 7 | + |
| 8 | +=== Requested project maturity level |
| 9 | + |
| 10 | +Sandbox. |
| 11 | + |
| 12 | +=== Project description (what it does, why it is valuable, origin and history, ongoing development). |
| 13 | + |
| 14 | + |
| 15 | +NNTrainer is a software framework for training neural network models on embedded devices with limited hardware resources. |
| 16 | + |
| 17 | + |
| 18 | +Most neural network training frameworks focus on high performance computers (e.g., workstations or clouds), which have relatively huge memory and data, powerful processors, and virtually infinite energy. |
| 19 | +NNTrainer provides unique characteristics as a neural network training framework that allows lightweight devices (mobile phones and home appliances) to train and fine-tune neural networks without remote servers. |
| 20 | +NNTrainer focuses on saving peak memory consumption, optimizations for lightweight devices, and training scenarios (low-data, real-time, low-computation, or privacy-preserving) for mobile phones and home appliances. |
| 21 | + |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | +NNTrainer was started as a subproject of NNStreamer, another LFAI project, in Samsung, 2019. |
| 27 | +However, common code between NNStreamer and NNTrainer was found to be minimal. |
| 28 | +Thus, it was detached from NNStreamer and developed as an independent software package. |
| 29 | + |
| 30 | + |
| 31 | + |
| 32 | +From its initial development, NNTrainer has been an open source software project accepting public contributions. |
| 33 | +The first "practical" application of NNTrainer was voice personalization (on-device fine-tuned TTS), which was first released with Galaxy S23 in 2023: https://www.zdnet.com/article/this-new-samsung-galaxy-feature-lets-you-clone-your-own-voice-sort-of/[ZDNet: This new Samsung Galaxy feature lets you clone your own voice (sort of)]. |
| 34 | +Since its first practical application, several practical applications have appeared with even less powerful hardware: e.g., refrigerators, air conditioners, robotic vacuums, and ovens. |
| 35 | +Surprisingly, NNTrainer provides on-device training and fine-tuning services for machine learning mechanisms in such home appliacnes with less than 1GB of available memory and a slow embedded CPU core. |
| 36 | + |
| 37 | + |
| 38 | +In 2024, Galaxy S24 have introduced on-device generative AI services with large language models (LLMs). |
| 39 | +NNTrainer has started supporting LLMs and productized LLM applications as well. |
| 40 | +Recent contributions in 2025 mostly focus on LLM serving and expanding hardware support; i.e., reduce peak memory consumption, increase throughput, add NPU supports, and add Windows supports. |
| 41 | + |
| 42 | +More information is available at |
| 43 | + |
| 44 | +* https://github.com/nnstreamer/nntrainer[Github repo] (The main NNTrainer page) |
| 45 | +* https://conf.researchr.org/details/icse-2024/icse-2024-software-engineering-in-practice/5/A-New-Frontier-of-AI-On-Device-AI-Training-and-Personalization[ICSE 2024 Conference] (2024.4.) "A New Frontier of AI: On-Device AI Training and Personalization" |
| 46 | +* https://arxiv.org/abs/2206.04688[Arxiv article] (2022.6.) "NNTrainer: Light-Weight On-Device Training Framework" |
| 47 | +* https://www.youtube.com/watch?v=HKKowY78P1[SDC 21' presentation] (2021.10.) "[Tech Talk] NNTrainer: Personalize neural networks on devices!" |
| 48 | +* https://www.youtube.com/watch?v=HWiV7WbIM3E&t=48s[SSDC 21' presentation] (2021.11.) (Korean) |
| 49 | + |
| 50 | + |
| 51 | +=== Statement on alignment with LF AI’s mission. |
| 52 | + |
| 53 | +NNTrainer supports innovation of on-device, resource-efficient, open-source neural network training and personalization under a neutral, vendor-agnostic governance model, and drives interoperable, scalable AI capabilities directly on embedded devices. |
| 54 | + |
| 55 | +=== Have you identified possible collaboration opportunities with current LF AI hosted projects (https://lfai.foundation/projects/)? Please explain. |
| 56 | + |
| 57 | +* ONNX: ONNX is going to be the standard model format of NNTrainer in the next versions. It is likely that NNTrainer is going to be fully compatible with ONNX within a few months. It is highly desirable if NNTrainer's quantization formats and LLM context and weight save/load can be upstreamed to ONNX standard format. |
| 58 | +* NNStreamer: NNTrainer provides plugins for NNStreamer and its other spun-off projects (Device MLOps and ML API). Many consumer electronics products access nntrainer via NNStreamer and its APIs. |
| 59 | + |
| 60 | + |
| 61 | +=== License name, version, and URL to license text |
| 62 | + |
| 63 | +Apache 2.0. https://github.com/nnstreamer/nntrainer/blob/main/LICENSE |
| 64 | + |
| 65 | +=== Source control (GitHub, etc.) |
| 66 | + |
| 67 | +https://github.com/nnstreamer/nntrainer[Github] |
| 68 | + |
| 69 | +=== Does the project sits in its own GH organization? |
| 70 | + |
| 71 | +It is sharing a GH organization with NNStreamer. |
| 72 | + |
| 73 | +=== Do you have the GH DCO app active in the repos? |
| 74 | + |
| 75 | +Yes. |
| 76 | + |
| 77 | +=== Issue tracker (GitHub, JIRA, etc) |
| 78 | + |
| 79 | +https://github.com/nnstreamer/nntrainer/issues[Github Issues] |
| 80 | + |
| 81 | +=== Collaboration tools (mailing lists, wiki, IRC, Slack, Glitter, etc.) |
| 82 | + |
| 83 | +* https://github.com/nnstreamer/nntrainer/issues[Github Issues] and https://github.com/nnstreamer/nntrainer/discussions[Github Discussions] |
| 84 | + |
| 85 | +=== External dependencies including licenses (name and version) of those dependencies. |
| 86 | + |
| 87 | +** Meson (Apache 2.0) |
| 88 | +** Openblas (BSD-3) |
| 89 | +** Iniparser (MIT) |
| 90 | +** FlatBuffers (Apache 2.0). Optional |
| 91 | +** GTest (BSD-3). Optional (when user builds unit tests) |
| 92 | +** Python >= 3 (PSF). Optional |
| 93 | +** NNStreamer (LGPL 2.1). Optional (when user wants nnstreamer plugins) |
| 94 | +** GStreamer (LGPL 2.1). Optional (when user wants nnstreamer plugins) |
| 95 | +** ONNX (Apache 2.0) |
| 96 | +** ruy (Apache 2.0) |
| 97 | +** ggml (MIT) |
| 98 | +** CLBlast (Apache 2.0) |
| 99 | + |
| 100 | + |
| 101 | +=== Initial committers (name, email, organization) and how long have they been working on project? |
| 102 | + |
| 103 | +** Jijoong Moon, [email protected], Samsung Research, 7 years |
| 104 | +** MyungJoo Ham, [email protected], Samsung Research, 7 years |
| 105 | +** Hyeonseok Lee, [email protected], Samsung Research, 6 years |
| 106 | +** Mete Ozay, [email protected], Samsung Research UK, 5 years |
| 107 | +** Donghak Park, [email protected], Samsung Research, 4 years |
| 108 | +** Seungbaek Hong, [email protected], Samsung Research, 4 years |
| 109 | +** Donghyeon Jeong, [email protected] / [email protected], Samsung Research, 3 years |
| 110 | +** Sungsik Kong, [email protected], Samsung Research, 3 years |
| 111 | +** Daekyung Jung, [email protected], Samsung Research, 2 years |
| 112 | +** Eunju Yang, [email protected], Samsung Research, 2 years |
| 113 | + |
| 114 | +=== Have the project defined the roles of contributor, committer, maintainer, etc.? Please document it in MAINTAINERS.md. |
| 115 | + |
| 116 | +Yes. https://github.com/nnstreamer/nntrainer/blob/main/MAINTAINERS.md |
| 117 | + |
| 118 | +=== Total number of contributors to the project including their affiliations. |
| 119 | + |
| 120 | +44 (2025-06-26, https://github.com/nnstreamer/nntrainer/graphs/contributors ) |
| 121 | + |
| 122 | +** Samsung Research (Samsung) |
| 123 | +** SRI Bangalore (Samsung) |
| 124 | +** SR Poland (Samsung) |
| 125 | +** Samsung R&D Institute UK (Samsung) |
| 126 | +** NHN |
| 127 | +** Meta |
| 128 | +** Mango Boost |
| 129 | +** Danggeun Market |
| 130 | +** Seoul National University (students) |
| 131 | + |
| 132 | +=== Does the project have a release methodology? Please document it in RELEASES.md. |
| 133 | + |
| 134 | +Yes. https://github.com/nnstreamer/nntrainer/blob/main/RELEASE.md |
| 135 | + |
| 136 | +=== Does the project have a code of conduct? If yes, please share the URL. If no, please created CODE_OF_CONDUCT.md and point to https://lfprojects.org/policies/code-of-conduct/. You can use [email protected] as email for contact on this topic. |
| 137 | + |
| 138 | +Yes. https://github.com/nnstreamer/nntrainer/blob/main/CODE_OF_CONDUCT.md |
| 139 | + |
| 140 | +=== Did the project achieve any of the CII best practices badges? A different badge is required depending on the requested incubation level. |
| 141 | + |
| 142 | +"openssf best practics: in progress 91%" in https://github.com/nnstreamer/nntrainer?tab=readme-ov-file#nntrainer |
| 143 | + |
| 144 | +https://www.bestpractices.dev/en/projects/9179 |
| 145 | + |
| 146 | +=== Do you have any specific infrastructure requests needed as part of hosting the project in the LF AI? |
| 147 | + |
| 148 | +No. |
| 149 | + |
| 150 | +=== Project website - Do you have a web site? If no, did you reserve a domain, and would like you to have a website created? |
| 151 | + |
| 152 | +No. |
| 153 | + |
| 154 | +=== Project governance - Do you have a working governance model for the project? Please provide URL to where it is documented, typically GOVERNANCE.md. |
| 155 | + |
| 156 | + |
| 157 | + |
| 158 | +=== Social media accounts - Do you have any Twitter/LinkedIn/Facebook/etc. project accounts? Please provide pointers. |
| 159 | + |
| 160 | +No. |
| 161 | + |
| 162 | +=== Existing sponsorship (e.g., whether any organization has provided funding or other support to date, and a description of that support), if any. |
| 163 | + |
| 164 | +No. |
0 commit comments