Commit
·
8bfd706
1
Parent(s):
de1caa4
Update README.md
Browse files
README.md
CHANGED
|
@@ -9,23 +9,101 @@ tags:
|
|
| 9 |
- silo
|
| 10 |
---
|
| 11 |
|
| 12 |
-
|
| 13 |
# Silo Language Models: Isolating Legal Risk in a Datastore
|
| 14 |
|
| 15 |
-
This is Silo-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
|
|
|
|
|
|
|
|
|
|
| 17 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
|
| 19 |
### Model Description
|
| 20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 21 |
### Intended Uses and Limitations
|
| 22 |
|
|
|
|
|
|
|
| 23 |
### How to use
|
| 24 |
|
| 25 |
-
### Limitations and Bias
|
| 26 |
|
| 27 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 28 |
|
| 29 |
-
|
| 30 |
|
| 31 |
-
|
|
|
|
| 9 |
- silo
|
| 10 |
---
|
| 11 |
|
|
|
|
| 12 |
# Silo Language Models: Isolating Legal Risk in a Datastore
|
| 13 |
|
| 14 |
+
This is Silo-PDSWBY, first introduced in [Silo Language Models]() by researchers at University of Washington, UC Berkeley, and the Allen Institute for AI.
|
| 15 |
+
|
| 16 |
+
### NOTE: Dependencies
|
| 17 |
+
|
| 18 |
+
To use the model, you need to install a specific transformers fork:
|
| 19 |
|
| 20 |
+
```
|
| 21 |
+
pip install git+https://github.com/kernelmachine/transformers@openlm#egg=transformers
|
| 22 |
+
```
|
| 23 |
|
| 24 |
+
The model also depends on `xformers`, install via
|
| 25 |
+
|
| 26 |
+
```
|
| 27 |
+
pip install xformers
|
| 28 |
+
```
|
| 29 |
|
| 30 |
### Model Description
|
| 31 |
|
| 32 |
+
|
| 33 |
+
Silo-PDSWBY is a 1.3B parameter, decoder-only language model trained on data in the public domain, under permissive software licenses, and under the Creative-Commons BY license from [the Open License Corpus (OLC)](https://huggingface.co/datasets/kernelmachine/open-license-corpus).
|
| 34 |
+
|
| 35 |
+
The model is based on the LLaMA architecture as implemented in (OpenLM)[].
|
| 36 |
+
|
| 37 |
+
The model is trained with 128 A100 GPUs across 16 nodes.
|
| 38 |
+
|
| 39 |
+
|
| 40 |
+
### Model and Training Hyperparameters
|
| 41 |
+
|
| 42 |
+
We follow the model architecture of LLaMa, and we use the GPT-NeoX-20B tokenizer, with 50432 BPE types.
|
| 43 |
+
|
| 44 |
+
During training, we use 2,048 token sequences that are packed across document boundaries, and we pre-pend a beginning-of-text token to every document.
|
| 45 |
+
|
| 46 |
+
We use weight decay of 0.1, the Adam optimizer with beta_2 of 0.95, 2,000 steps of warmup, with a cosine learning rate scheduler.
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
| Model | #L | #H | d_model | LR | Batch |
|
| 50 |
+
|--------|-----|-----|-------------|--------|--------|
|
| 51 |
+
| 1.3B | 24 | 16 | 2048 | 1e-3 | 2.6M |
|
| 52 |
+
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
### Training data
|
| 56 |
+
|
| 57 |
+
Silo-PDSWBY is a 1.3B parameter, decoder-only language model trained on data in the public domain, under permissive software licenses, and under the Creative-Commons BY license from [the Open License Corpus (OLC)](https://huggingface.co/datasets/kernelmachine/open-license-corpus).
|
| 58 |
+
|
| 59 |
+
The model was trained on the following domain proportions (please see the OLC repository for more details on the data sources for each domain):
|
| 60 |
+
|
| 61 |
+
| Domain | Tokens (B) | % |
|
| 62 |
+
|-----------------|------------|-------|
|
| 63 |
+
| | PD SW BY | |
|
| 64 |
+
| Code | 58.9 | 25.8 |
|
| 65 |
+
| Legal | 27.2 | 11.9 |
|
| 66 |
+
| Conversation | 27.2 | 11.9 |
|
| 67 |
+
| Math | 3.5 | 1.5 |
|
| 68 |
+
| Books | 2.9 | 1.3 |
|
| 69 |
+
| Science | 71.5 | 31.3 |
|
| 70 |
+
| News | 0.2 | 0.1 |
|
| 71 |
+
| Wikipedia | 37.0 | 16.2 |
|
| 72 |
+
| Total | 228.3 | 100.0 |
|
| 73 |
+
|
| 74 |
+
|
| 75 |
+
We train with early stopping for 450B tokens in total, or about two epochs of training over this subset
|
| 76 |
+
|
| 77 |
+
Since the distribution of OLC is highly skewed, we perform a simple upweighting scheme where we upsample all data that accounts for less than 5% of the corpus by a factor of 3x, which we found to work well after a sweep of different settings.
|
| 78 |
+
|
| 79 |
### Intended Uses and Limitations
|
| 80 |
|
| 81 |
+
This model can be used for prompting for evaluation of downstream tasks as well as text generation.
|
| 82 |
+
|
| 83 |
### How to use
|
| 84 |
|
|
|
|
| 85 |
|
| 86 |
+
You can use this model directly with a pipeline for text generation.
|
| 87 |
+
|
| 88 |
+
```python
|
| 89 |
+
from transformers import pipeline
|
| 90 |
+
generator = pipeline('text-generation', model="kernelmachine/silo-pdswby-1.3b", device='cuda')
|
| 91 |
+
generator("Hello")
|
| 92 |
+
[{'generated_text': 'Hello,\n\nI am trying to get a list of all the emails in my gmail account'}]
|
| 93 |
+
```
|
| 94 |
+
|
| 95 |
+
By default, generation is deterministic. In order to use the top-k sampling, please set do_sample to True.
|
| 96 |
+
|
| 97 |
+
```python
|
| 98 |
+
from transformers import pipeline, set_seed
|
| 99 |
+
set_seed(42)
|
| 100 |
+
generator = pipeline('text-generation', model="kernelmachine/silo-pdswby-1.3b", device='cuda', do_sample=True)
|
| 101 |
+
generator("Hello")
|
| 102 |
+
[{'generated_text': 'Hello said :D\n<mivol> hi there\n<mivol> is there'}]
|
| 103 |
+
```
|
| 104 |
+
|
| 105 |
+
### Limitations and Bias
|
| 106 |
|
| 107 |
+
Silo-PDSWBY inherits the biases and limitations of public domain data, which carry risks of toxic or otherwise unfair output, due to the prevalence of older copyright-expired text.
|
| 108 |
|
| 109 |
+
Silo-PDSWBY may also output personally identifiable information, because we did not filter that out of training data.
|