|
--- |
|
license: apache-2.0 |
|
--- |
|
|
|
The *TokenFormer* is a **fully attention-based architecture** |
|
that unifies the computations of token-token and token-parameter interactions |
|
by entirely employing the attention mechanism, **maximizes the flexibility of neural network**.[(see paper)](https://arxiv.org/pdf/2410.23168). |
|
It contains four models of sizes |
|
150M, 450M, 900M, 1.5B. For each size, it's trained based on [gpt-neox](https://github.com/EleutherAI/gpt-neox) code base and uses [Pile](https://huggingface.co/datasets/EleutherAI/pile) with 300B tokens. |
|
All 4 model sizes are trained on the exact |
|
same data, in the exact same order. |
|
|
|
# TokenFormer-900M |
|
|
|
## Model Details |
|
|
|
- Developed by: [Haiyang Wang](https://haiyang-w.github.io/) |
|
- Model type: TokenFormer-based Language Model |
|
- Language: English |
|
- Learn more: [TokenFormer's GitHub repository](https://github.com/Haiyang-W/TokenFormer) |
|
for training procedure, config files, and details on how to use. |
|
[See paper](https://arxiv.org/pdf/2410.23168) for more evals and implementation |
|
details. |
|
- Library: [GPT-NeoX](https://github.com/EleutherAI/gpt-neox) |
|
- License: Apache 2.0 |
|
- Contact: to ask questions about this model, please email Haiyang Wang. |
|
|
|
<figure> |
|
|
|
| TokenFormer model | Layers | #QKV Param Tokens | #Output Param Tokens | #FFN Param Tokens | Model Dim | Heads | Batch Size | Learning Rate | Training Iterations | |
|
| ----------------: | -----: | :---------------: | :------------------: | :---------------: | :-------: | :---: | :--------: | :-------------------: | :-------------------------: | |
|
| 150M | 12 | 768 | 768 | 3072 | 768 | 12 | 2M | 6.0 x 10<sup>-4</sup> | 143000 | |
|
| 450M | 24 | 1024 | 1024 | 4096 | 1024 | 16 | 2M | 6.0 x 10<sup>-4</sup> | 143000 | |
|
| 900M | 32 | 1280 | 1280 | 5120 | 1280 | 16 | 2M | 6.0 x 10<sup>-4</sup> | 143000 | |
|
| 1.5B | 40 | 1536 | 1536 | 6144 | 1536 | 16 | 2M | 6.0 x 10<sup>-4</sup> | 143000 | |
|
<figcaption>Engineering details for the <i>TokenFormer</i>. </figcaption> |
|
</figure> |
|
|
|
## Training |
|
|
|
### Training data |
|
|
|
[The Pile](https://pile.eleuther.ai/) is a 825GiB general-purpose dataset in |
|
English. It was created by EleutherAI specifically for training large language |
|
models. It contains texts from 22 diverse sources, roughly broken down into |
|
five categories: academic writing (e.g. arXiv), internet (e.g. CommonCrawl), |
|
prose (e.g. Project Gutenberg), dialogue (e.g. YouTube subtitles), and |
|
miscellaneous (e.g. GitHub, Enron Emails). See [the Pile |
|
paper](https://arxiv.org/abs/2101.00027) for a breakdown of all data sources, |
|
methodology, and a discussion of ethical implications. Consult [the |
|
datasheet](https://arxiv.org/abs/2201.07311) for more detailed documentation |
|
about the Pile and its component datasets. The Pile can be downloaded from |
|
the [official website](https://pile.eleuther.ai/), or from a [community |
|
mirror](https://the-eye.eu/public/AI/pile/).<br> |
|
|
|
### Training procedure |
|
We follow the default training strategy of [Pythia](https://arxiv.org/abs/2304.01373) in [gpt-neox](https://github.com/EleutherAI/gpt-neox), |
|
including the dataset processing, hyper-parameter and code base. |
|
All models were trained on the exact same data, in the exact same order. Each |
|
model saw 299,892,736,000 tokens during training. |
|
|
|
All *TokenFormer* models trained for 143000 steps at a batch size |
|
of 2M (2,097,152 tokens).<br> |
|
See [GitHub](https://github.com/Haiyang-W/TokenFormer) for more details on training |
|
procedure.<br> |
|
TokenFormer uses the same tokenizer as [GPT-NeoX- |
|
20B](https://huggingface.co/EleutherAI/gpt-neox-20b). |
|
|
|
## Evaluations |
|
|
|
All *TokenFormer* models were evaluated using the [LM Evaluation |
|
Harness](https://github.com/EleutherAI/lm-evaluation-harness). |
|
You can run the evaluation with our [instruction](https://github.com/Haiyang-W/TokenFormer?tab=readme-ov-file#evaluations).<br> |
|
Expand the sections below to see plots of evaluation results for all |
|
TokenFormer compared with Opensource Transformer-based LLMs. |
|
|
|
<figure> |
|
|
|
| Model | #Param | LAMBADA | HellaSwag | PIQA | Arc-E | Arc-C | WinoGrande | Average | |
|
| :----: | :------: | :------: | :-------: | :--: | :---: | :---: | :--------: | :------: | |
|
| Pythia | 150M | 35.4 | 30.3 | 62.3 | 43.6 | 23.6 | 51.3 | 40.1 | |
|
| **TokenFormer** | 150M | **45.0** | **35.5** | **64.9** | **47.3** | **24.9** | **50.4** | **44.7** | |
|
| Pythia | 410M | 51.4 | 40.6 | 66.9 | 52.1 | 24.6 | 53.8 | 48.2 | |
|
| **TokenFormer** | 450M | **57.3** | **47.5** | **69.5** | **56.2** | **26.7** | **54.6** | **52.0** | |
|
| Pythia | 1B | 56.1 | 47.2 | 70.7 | 57.0 | 27.1 | 53.5 | 51.9 | |
|
| **TokenFormer** | 900M | **64.0** | **55.3** | **72.4** | **59.9** | **30.6** | **56.4** | **56.4** | |
|
| GPT-Neo | 1.3B | 57.2 | 48.9 | 71.1 | 56.2 | 25.9 | 54.9 | 52.4 | |
|
| OPT | 1.3B | 58.0 | 53.7 | 72.4 | 56.7 | 29.6 | 59.5 | 55.0 | |
|
| Pythia | 1.3B | 61.7 | 52.1 | 71.0 | 60.5 | 28.5 | 57.2 | 55.2 | |
|
| GPT-Neo | 2.7B | 62.2 | 55.8 | 71.1 | 61.1 | 30.2 | 57.6 | 56.5 | |
|
| OPT | 2.7B | 63.6 | 60.6 | 74.8 | 60.8 | 31.3 | 61.0 | 58.7 | |
|
| Pythia | 2.8B | 64.7 | 59.3 | 74.0 | 64.1 | 32.9 | 59.7 | 59.1 | |
|
| **TokenFormer** | 1.5B | **64.7** | 60.0 | **74.8** | **64.8** | 32.0 | 59.7 | **59.3** | |
|
<figcaption>Zero-shot evaluation of Language Modeling. </figcaption> |
|
</figure> |