Instructions to use midudev/text2emoji-tiny with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers.js
How to use midudev/text2emoji-tiny with Transformers.js:
// npm i @huggingface/transformers import { pipeline } from '@huggingface/transformers'; // Allocate pipeline const pipe = await pipeline('text-generation', 'midudev/text2emoji-tiny');
text2emoji-tiny: 2.4M T5, q8 ONNX (Transformers.js layout)
Browse files- README.md +40 -0
- config.json +32 -0
- generation_config.json +8 -0
- onnx/decoder_model_merged_quantized.onnx +3 -0
- onnx/encoder_model_quantized.onnx +3 -0
- special_tokens_map.json +5 -0
- tokenizer.json +0 -0
- tokenizer_config.json +11 -0
README.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: mit
|
| 3 |
+
library_name: transformers.js
|
| 4 |
+
pipeline_tag: text2text-generation
|
| 5 |
+
language:
|
| 6 |
+
- en
|
| 7 |
+
tags:
|
| 8 |
+
- emoji
|
| 9 |
+
- t5
|
| 10 |
+
- onnx
|
| 11 |
+
datasets:
|
| 12 |
+
- KomeijiForce/Text2Emoji
|
| 13 |
+
---
|
| 14 |
+
|
| 15 |
+
# text2emoji-tiny
|
| 16 |
+
|
| 17 |
+
A 2.4M-parameter T5 trained from scratch by [runonweb](https://runonweb.ai/models/emoji) to turn an English
|
| 18 |
+
sentence into a short emoji sequence. 3.9 MB as q8 ONNX (encoder 1.7 MB + merged decoder 2.1 MB), in the
|
| 19 |
+
Transformers.js layout.
|
| 20 |
+
|
| 21 |
+
| Config | Params | val loss | emoji-set F1 |
|
| 22 |
+
|--------|--------|----------|--------------|
|
| 23 |
+
| 3+3 layers, d_model 128, d_ff 512, 4 heads, BPE vocab 8192 | 2.43M | 3.72 | 0.38 |
|
| 24 |
+
|
| 25 |
+
Data: [KomeijiForce/Text2Emoji](https://huggingface.co/datasets/KomeijiForce/Text2Emoji), ~493k
|
| 26 |
+
ChatGPT-generated sentence → emoji pairs after cleaning. The dataset card lists no license; the weights are
|
| 27 |
+
MIT. Recipe: `training/text2emoji` in the runonweb repo.
|
| 28 |
+
|
| 29 |
+
## Use
|
| 30 |
+
|
| 31 |
+
```ts
|
| 32 |
+
import { Emojifier } from 'runonweb/emoji'
|
| 33 |
+
|
| 34 |
+
const emojifier = new Emojifier()
|
| 35 |
+
await emojifier.load()
|
| 36 |
+
const { text } = await emojifier.emojify('I love pizza and my dog') // "🍕❤️🐶"
|
| 37 |
+
```
|
| 38 |
+
|
| 39 |
+
Or with Transformers.js directly: `pipeline('text2text-generation', 'midudev/text2emoji-tiny', { dtype: 'q8' })`,
|
| 40 |
+
decoding with `no_repeat_ngram_size: 1`; emojis come back space-separated.
|
config.json
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architectures": [
|
| 3 |
+
"T5ForConditionalGeneration"
|
| 4 |
+
],
|
| 5 |
+
"classifier_dropout": 0.0,
|
| 6 |
+
"d_ff": 512,
|
| 7 |
+
"d_kv": 32,
|
| 8 |
+
"d_model": 128,
|
| 9 |
+
"decoder_start_token_id": 0,
|
| 10 |
+
"dense_act_fn": "relu",
|
| 11 |
+
"dropout_rate": 0.1,
|
| 12 |
+
"dtype": "float32",
|
| 13 |
+
"eos_token_id": 1,
|
| 14 |
+
"feed_forward_proj": "relu",
|
| 15 |
+
"initializer_factor": 1.0,
|
| 16 |
+
"is_decoder": false,
|
| 17 |
+
"is_encoder_decoder": true,
|
| 18 |
+
"is_gated_act": false,
|
| 19 |
+
"layer_norm_epsilon": 1e-06,
|
| 20 |
+
"model_type": "t5",
|
| 21 |
+
"num_decoder_layers": 3,
|
| 22 |
+
"num_heads": 4,
|
| 23 |
+
"num_layers": 3,
|
| 24 |
+
"pad_token_id": 0,
|
| 25 |
+
"relative_attention_max_distance": 128,
|
| 26 |
+
"relative_attention_num_buckets": 32,
|
| 27 |
+
"scale_decoder_outputs": true,
|
| 28 |
+
"tie_word_embeddings": true,
|
| 29 |
+
"transformers_version": "5.17.0",
|
| 30 |
+
"use_cache": true,
|
| 31 |
+
"vocab_size": 8192
|
| 32 |
+
}
|
generation_config.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"decoder_start_token_id": 0,
|
| 3 |
+
"eos_token_id": 1,
|
| 4 |
+
"pad_token_id": 0,
|
| 5 |
+
"max_new_tokens": 20,
|
| 6 |
+
"num_beams": 1,
|
| 7 |
+
"no_repeat_ngram_size": 1
|
| 8 |
+
}
|
onnx/decoder_model_merged_quantized.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:da45ee0e72df7e4d15a2a8ade7f394884708ca764f4c7eb86daefc42670d4429
|
| 3 |
+
size 2128556
|
onnx/encoder_model_quantized.onnx
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:f2866c5d73b9878dff3d3a13b617821b7170c27c4b9454a46aafd25caabe9249
|
| 3 |
+
size 1734642
|
special_tokens_map.json
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"pad_token": "<pad>",
|
| 3 |
+
"eos_token": "</s>",
|
| 4 |
+
"unk_token": "<unk>"
|
| 5 |
+
}
|
tokenizer.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
tokenizer_config.json
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"backend": "tokenizers",
|
| 3 |
+
"clean_up_tokenization_spaces": false,
|
| 4 |
+
"eos_token": "</s>",
|
| 5 |
+
"is_local": true,
|
| 6 |
+
"local_files_only": false,
|
| 7 |
+
"model_max_length": 128,
|
| 8 |
+
"pad_token": "<pad>",
|
| 9 |
+
"tokenizer_class": "T5Tokenizer",
|
| 10 |
+
"unk_token": "<unk>"
|
| 11 |
+
}
|