Skip to content

Commit a874858

Browse files
committed
Propose NNTrainer Project
NNTrainer is an on-device neural network training and personalization framework. NNTrainer was introduced in LF AI & Data TAC meeting on January 16, 2025 via Zoom. @jijoongmoon Signed-off-by: MyungJoo Ham <[email protected]>
1 parent fde4bcf commit a874858

File tree

1 file changed

+164
-0
lines changed

1 file changed

+164
-0
lines changed

proposals/nntrainer.adoc

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
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

Comments
 (0)