Update license: free personal use, paid commercial use (Pratham Kode)
Browse files- LICENSE +94 -0
- README.md +9 -15
- docs/avoiding-gibberish.md +3 -3
- docs/smartwatch-integration.md +5 -5
LICENSE
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Smartwatch LM v0.2 β Personal / Commercial Dual License
|
| 2 |
+
Copyright (c) 2026 Pratham Kode
|
| 3 |
+
|
| 4 |
+
================================================================================
|
| 5 |
+
1. DEFINITIONS
|
| 6 |
+
================================================================================
|
| 7 |
+
|
| 8 |
+
"Software" means the Smartwatch LM v0.2 model, weights, tokenizer, ONNX export,
|
| 9 |
+
documentation, and all other files distributed with this repository.
|
| 10 |
+
|
| 11 |
+
"You" means the individual or legal entity exercising permissions granted by
|
| 12 |
+
this license.
|
| 13 |
+
|
| 14 |
+
"Personal Use" means use of the Software by You for non-commercial purposes,
|
| 15 |
+
including but not limited to:
|
| 16 |
+
|
| 17 |
+
- Personal, hobby, or educational projects
|
| 18 |
+
- Academic research and teaching (non-commercial)
|
| 19 |
+
- Evaluation, experimentation, and prototyping that is not part of a
|
| 20 |
+
commercial product or service
|
| 21 |
+
- Internal testing by an individual who is not acting on behalf of a business
|
| 22 |
+
|
| 23 |
+
"Commercial Use" means any use of the Software that is not Personal Use,
|
| 24 |
+
including but not limited to:
|
| 25 |
+
|
| 26 |
+
- Use in or as part of a product, service, or offering that is sold,
|
| 27 |
+
licensed, or otherwise monetized
|
| 28 |
+
- Use by a for-profit organization in the course of its business operations
|
| 29 |
+
- Use to provide services to third parties, whether or not a fee is charged
|
| 30 |
+
- Distribution of the Software (or derivatives) as part of a commercial
|
| 31 |
+
offering
|
| 32 |
+
|
| 33 |
+
================================================================================
|
| 34 |
+
2. PERSONAL USE LICENSE (FREE)
|
| 35 |
+
================================================================================
|
| 36 |
+
|
| 37 |
+
Subject to the terms of this license, permission is hereby granted, free of
|
| 38 |
+
charge, to any person obtaining a copy of the Software to use, copy, modify,
|
| 39 |
+
and distribute the Software for Personal Use only, provided that:
|
| 40 |
+
|
| 41 |
+
(a) this license text is included with any redistribution; and
|
| 42 |
+
(b) You do not use the Software for Commercial Use without a separate
|
| 43 |
+
commercial license as described in Section 3.
|
| 44 |
+
|
| 45 |
+
================================================================================
|
| 46 |
+
3. COMMERCIAL USE (PAID LICENSE REQUIRED)
|
| 47 |
+
================================================================================
|
| 48 |
+
|
| 49 |
+
Commercial Use of the Software is not permitted under the free Personal Use
|
| 50 |
+
license. To use the Software for Commercial Use, You must obtain a paid
|
| 51 |
+
commercial license from the copyright holder.
|
| 52 |
+
|
| 53 |
+
To request commercial licensing terms and pricing, contact the repository
|
| 54 |
+
maintainer through the Hugging Face model page or project repository.
|
| 55 |
+
|
| 56 |
+
No commercial license is granted by implication. All Commercial Use without
|
| 57 |
+
an executed commercial license agreement is prohibited.
|
| 58 |
+
|
| 59 |
+
================================================================================
|
| 60 |
+
4. RESTRICTIONS
|
| 61 |
+
================================================================================
|
| 62 |
+
|
| 63 |
+
Except as expressly permitted above, You may not:
|
| 64 |
+
|
| 65 |
+
- Use the Software for Commercial Use without a paid commercial license
|
| 66 |
+
- Remove or alter copyright or license notices
|
| 67 |
+
- Use the Software in any manner that violates applicable law
|
| 68 |
+
|
| 69 |
+
================================================================================
|
| 70 |
+
5. DISCLAIMER OF WARRANTY
|
| 71 |
+
================================================================================
|
| 72 |
+
|
| 73 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
| 74 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
| 75 |
+
FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT.
|
| 76 |
+
|
| 77 |
+
================================================================================
|
| 78 |
+
6. LIMITATION OF LIABILITY
|
| 79 |
+
================================================================================
|
| 80 |
+
|
| 81 |
+
IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR
|
| 82 |
+
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING
|
| 83 |
+
FROM, OUT OF, OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
| 84 |
+
IN THE SOFTWARE.
|
| 85 |
+
|
| 86 |
+
================================================================================
|
| 87 |
+
7. TERMINATION
|
| 88 |
+
================================================================================
|
| 89 |
+
|
| 90 |
+
This license terminates automatically if You breach its terms. Upon
|
| 91 |
+
termination, You must cease all use of the Software and destroy any copies in
|
| 92 |
+
Your possession.
|
| 93 |
+
|
| 94 |
+
Sections 5, 6, and 7 survive termination.
|
README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
| 1 |
---
|
| 2 |
-
license:
|
|
|
|
|
|
|
| 3 |
tags:
|
| 4 |
- onnx
|
| 5 |
- smartwatch
|
|
@@ -12,7 +14,7 @@ pipeline_tag: text-generation
|
|
| 12 |
|
| 13 |
# Smartwatch LM v0.2
|
| 14 |
|
| 15 |
-
Small GPT for wrist-wearable chat with intent tags like `<INTENT:GET_STEPS>`.
|
| 16 |
|
| 17 |
## Model details
|
| 18 |
|
|
@@ -29,7 +31,7 @@ Small GPT for wrist-wearable chat with intent tags like `<INTENT:GET_STEPS>`.
|
|
| 29 |
|
| 30 |
| File | Purpose |
|
| 31 |
|------|---------|
|
| 32 |
-
| `smartwatch_lm_merged.onnx` | On-device inference (ONNX Runtime, opset 17, ~
|
| 33 |
| `checkpoint.pt` | PyTorch weights |
|
| 34 |
| `tokenizer.json` | BPE tokenizer |
|
| 35 |
| `config.json` | Architecture + ONNX I/O |
|
|
@@ -54,18 +56,10 @@ python chat.py
|
|
| 54 |
- **Input:** `input_ids` int64 `[batch, seq]` (max seq = 256)
|
| 55 |
- **Output:** `logits` float `[batch, seq, vocab_size]`
|
| 56 |
|
| 57 |
-
|
| 58 |
|
| 59 |
-
|
| 60 |
-
|-------|-------------|
|
| 61 |
-
| [Avoiding gibberish](docs/avoiding-gibberish.md) | BPE cleanup, truncation rules, sample scripts |
|
| 62 |
-
| [Intent reference](docs/intent-reference.md) | All intents and slot placeholders |
|
| 63 |
-
| [Smartwatch integration](docs/smartwatch-integration.md) | End-to-end device wiring |
|
| 64 |
|
| 65 |
-
|
| 66 |
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
- `benchmark/report.json` β full per-prompt results
|
| 70 |
-
- `benchmark/charts/` β metric comparison charts
|
| 71 |
-
- `benchmark/benchmark_prompts.json` β golden prompt set
|
|
|
|
| 1 |
---
|
| 2 |
+
license: other
|
| 3 |
+
license_name: personal-use-free-commercial-paid
|
| 4 |
+
license_link: LICENSE
|
| 5 |
tags:
|
| 6 |
- onnx
|
| 7 |
- smartwatch
|
|
|
|
| 14 |
|
| 15 |
# Smartwatch LM v0.2
|
| 16 |
|
| 17 |
+
Exported from [collab-run-2](../collab-run-2) training. Small GPT for wrist-wearable chat with intent tags like `<INTENT:GET_STEPS>`.
|
| 18 |
|
| 19 |
## Model details
|
| 20 |
|
|
|
|
| 31 |
|
| 32 |
| File | Purpose |
|
| 33 |
|------|---------|
|
| 34 |
+
| `smartwatch_lm_merged.onnx` | On-device inference (ONNX Runtime, opset 17, ~0 MB) |
|
| 35 |
| `checkpoint.pt` | PyTorch weights |
|
| 36 |
| `tokenizer.json` | BPE tokenizer |
|
| 37 |
| `config.json` | Architecture + ONNX I/O |
|
|
|
|
| 56 |
- **Input:** `input_ids` int64 `[batch, seq]` (max seq = 256)
|
| 57 |
- **Output:** `logits` float `[batch, seq, vocab_size]`
|
| 58 |
|
| 59 |
+
See [Export-0.1 docs](docs/) for gibberish cleanup, intents, and device integration.
|
| 60 |
|
| 61 |
+
## License
|
|
|
|
|
|
|
|
|
|
|
|
|
| 62 |
|
| 63 |
+
**Personal use is free.** You may use, modify, and share this model for non-commercial, personal, educational, and research purposes under the terms in [LICENSE](LICENSE).
|
| 64 |
|
| 65 |
+
**Commercial use requires a paid license.** If you want to use this model in a product, service, or other commercial context, contact the repository maintainer to obtain commercial licensing terms.
|
|
|
|
|
|
|
|
|
|
|
|
docs/avoiding-gibberish.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
# Avoiding Gibberish β Output Cleanup Guide
|
| 2 |
|
| 3 |
-
Smartwatch LM v0.
|
| 4 |
|
| 5 |
**Scripts in this repo:**
|
| 6 |
|
|
@@ -79,7 +79,7 @@ These rules are implemented in `extract_bot_reply()` in [`reply_utils.py`](../re
|
|
| 79 |
|
| 80 |
## Generation settings that reduce gibberish
|
| 81 |
|
| 82 |
-
Use conservative sampling β this model is small (
|
| 83 |
|
| 84 |
| Parameter | Recommended | Effect |
|
| 85 |
|-----------|-------------|--------|
|
|
@@ -174,7 +174,7 @@ build_prompt β encode β ONNX loop (top-k, temp 0.5) β decode new tokens on
|
|
| 174 |
- Show raw `Δ ` or mojibake to the user
|
| 175 |
- Put real sensor numbers back into conversation history
|
| 176 |
- Skip truncation at `\nuser:` or first newline
|
| 177 |
-
- Run temperature above 0.8 on this model
|
| 178 |
|
| 179 |
**Do:**
|
| 180 |
|
|
|
|
| 1 |
# Avoiding Gibberish β Output Cleanup Guide
|
| 2 |
|
| 3 |
+
Smartwatch LM v0.1 is a **12M-parameter** domain model. It outputs structured replies with intent tags and slot placeholders. Raw tokenizer decode can still contain **BPE artifacts**, **encoding glitches**, or **run-on text**. This guide lists what to strip, how to truncate, and includes copy-paste scripts in this repo.
|
| 4 |
|
| 5 |
**Scripts in this repo:**
|
| 6 |
|
|
|
|
| 79 |
|
| 80 |
## Generation settings that reduce gibberish
|
| 81 |
|
| 82 |
+
Use conservative sampling β this model is small (12M params):
|
| 83 |
|
| 84 |
| Parameter | Recommended | Effect |
|
| 85 |
|-----------|-------------|--------|
|
|
|
|
| 174 |
- Show raw `Δ ` or mojibake to the user
|
| 175 |
- Put real sensor numbers back into conversation history
|
| 176 |
- Skip truncation at `\nuser:` or first newline
|
| 177 |
+
- Run temperature above 0.8 on this 12M model
|
| 178 |
|
| 179 |
**Do:**
|
| 180 |
|
docs/smartwatch-integration.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
| 1 |
# Smartwatch Integration Guide
|
| 2 |
|
| 3 |
-
How to run **Smartwatch LM v0.
|
| 4 |
|
| 5 |
-
The model is a **
|
| 6 |
|
| 7 |
---
|
| 8 |
|
|
@@ -10,7 +10,7 @@ The model is a **~15.4M-parameter** GPT exported as ONNX. It does not execute de
|
|
| 10 |
|
| 11 |
| File | Size (approx.) | Purpose |
|
| 12 |
|------|----------------|---------|
|
| 13 |
-
| `smartwatch_lm_merged.onnx` | ~
|
| 14 |
| `tokenizer.json` | ~200 KB | Text β token ids |
|
| 15 |
| `tokenizer_config.json` | small | Tokenizer metadata |
|
| 16 |
| `config.json` | small | Architecture and I/O names |
|
|
@@ -22,7 +22,7 @@ Optional on PC: `checkpoint.pt`, `chat.py`, `model.py` for PyTorch chat and fine
|
|
| 22 |
**ONNX I/O:**
|
| 23 |
|
| 24 |
- Input: `input_ids` β int64, shape `[batch, seq]`, max seq **256**
|
| 25 |
-
- Output: `logits` β float, shape `[batch, seq, vocab_size]` (vocab **
|
| 26 |
|
| 27 |
Sample the **last position** logits autoregressively until EOS or max tokens.
|
| 28 |
|
|
@@ -61,7 +61,7 @@ See [Intent reference](./intent-reference.md) for all 35 intents.
|
|
| 61 |
| Companion phone | ORT on phone, BLE to watch for display |
|
| 62 |
| Prototype | `python onnx_sample.py` on desktop |
|
| 63 |
|
| 64 |
-
Budget ~
|
| 65 |
|
| 66 |
---
|
| 67 |
|
|
|
|
| 1 |
# Smartwatch Integration Guide
|
| 2 |
|
| 3 |
+
How to run **Smartwatch LM v0.1** on a wrist device and wire it to sensors, timers, and apps.
|
| 4 |
|
| 5 |
+
The model is a **12M-parameter** GPT exported as ONNX. It does not execute device actions itself β it emits **intent tags** and **slot placeholders** that your firmware parses and handles.
|
| 6 |
|
| 7 |
---
|
| 8 |
|
|
|
|
| 10 |
|
| 11 |
| File | Size (approx.) | Purpose |
|
| 12 |
|------|----------------|---------|
|
| 13 |
+
| `smartwatch_lm_merged.onnx` | ~52 MB | ONNX Runtime inference |
|
| 14 |
| `tokenizer.json` | ~200 KB | Text β token ids |
|
| 15 |
| `tokenizer_config.json` | small | Tokenizer metadata |
|
| 16 |
| `config.json` | small | Architecture and I/O names |
|
|
|
|
| 22 |
**ONNX I/O:**
|
| 23 |
|
| 24 |
- Input: `input_ids` β int64, shape `[batch, seq]`, max seq **256**
|
| 25 |
+
- Output: `logits` β float, shape `[batch, seq, vocab_size]` (vocab **3524**)
|
| 26 |
|
| 27 |
Sample the **last position** logits autoregressively until EOS or max tokens.
|
| 28 |
|
|
|
|
| 61 |
| Companion phone | ORT on phone, BLE to watch for display |
|
| 62 |
| Prototype | `python onnx_sample.py` on desktop |
|
| 63 |
|
| 64 |
+
Budget ~52 MB weights + activations. Quantization or phone-side inference helps on tight RAM.
|
| 65 |
|
| 66 |
---
|
| 67 |
|