初始化项目,由ModelHub XC社区提供模型
Model: aisquared/dlite-v2-1_5b Source: Original Platform
This commit is contained in:
34
.gitattributes
vendored
Normal file
34
.gitattributes
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.arrow filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bin filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ftz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.h5 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.joblib filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.model filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.npy filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.npz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.onnx filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ot filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.parquet filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pb filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pickle filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pkl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pth filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
||||||
|
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tflite filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.wasm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
||||||
131
README.md
Normal file
131
README.md
Normal file
@@ -0,0 +1,131 @@
|
|||||||
|
---
|
||||||
|
license: apache-2.0
|
||||||
|
datasets:
|
||||||
|
- aisquared/databricks-dolly-15k
|
||||||
|
language:
|
||||||
|
- en
|
||||||
|
library_name: transformers
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
# Model Card for `dlite-v2-1.5b`
|
||||||
|
|
||||||
|
<!-- Provide a quick summary of what the model is/does. -->
|
||||||
|
|
||||||
|
AI Squared's `dlite-v2-1.5b` is a large language
|
||||||
|
model which is derived from OpenAI's large [GPT-2](https://huggingface.co/gpt2-large) model and fine-tuned on a corpus of 15k records
|
||||||
|
([Databricks' "Dolly 15k" Dataset](https://huggingface.co/datasets/aisquared/databricks-dolly-15k)) to help it exhibit chat-based capabilities.
|
||||||
|
|
||||||
|
Just like [Databricks' Dolly V2 models](https://www.databricks.com/blog/2023/04/12/dolly-first-open-commercially-viable-instruction-tuned-llm),
|
||||||
|
`dlite-v2-1.5b` (and all other members of the `dlite-v2` family) is licensed for both **research and commercial use.** We are extremely grateful
|
||||||
|
for the work that Databricks has done to create the `databricks-dolly-15k` dataset, for without it we would not be able to create and release this
|
||||||
|
model under such an open and permissive license.
|
||||||
|
|
||||||
|
While `dlite-v2-1.5b` is **not a state-of-the-art model**, we believe that the level of interactivity that can be achieved on such a small model that is trained so cheaply
|
||||||
|
is important to showcase, as it continues to demonstrate that creating powerful AI capabilities may be much more accessible than previously thought.
|
||||||
|
|
||||||
|
|
||||||
|
### Model Description
|
||||||
|
|
||||||
|
<!-- Provide a longer summary of what this model is. -->
|
||||||
|
|
||||||
|
- **Developed by:** AI Squared, Inc.
|
||||||
|
- **Shared by:** AI Squared, Inc.
|
||||||
|
- **Model type:** Large Language Model
|
||||||
|
- **Language(s) (NLP):** EN
|
||||||
|
- **License:** Apache v2.0
|
||||||
|
- **Finetuned from model:** GPT-2
|
||||||
|
|
||||||
|
|
||||||
|
## Bias, Risks, and Limitations
|
||||||
|
|
||||||
|
<!-- This section is meant to convey both technical and sociotechnical limitations. -->
|
||||||
|
|
||||||
|
**`dlite-v2-1.5b` is not a state-of-the-art language model.** `dlite-v2-1.5b` is an experimental technology, and as with any experimental technology,
|
||||||
|
AI Squared urges potential users of this technology to test its capabilities thoroughly before usage.
|
||||||
|
Furthermore, the model can sometimes exhibit undesired behaviors. Some of these behaviors include,
|
||||||
|
but are not limited to: factual inaccuracies, biases, offensive responses, toxicity, and hallucinations.
|
||||||
|
Just as with any other LLM, we advise users of this technology to exercise good judgment when applying this technology.
|
||||||
|
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
To use the model with the `transformers` library on a machine with GPUs, first make sure you have the `transformers` and `accelerate` libraries installed.
|
||||||
|
From your terminal, run:
|
||||||
|
|
||||||
|
```python
|
||||||
|
pip install "accelerate>=0.16.0,<1" "transformers[torch]>=4.28.1,<5" "torch>=1.13.1,<2"
|
||||||
|
```
|
||||||
|
|
||||||
|
The instruction following pipeline can be loaded using the `pipeline` function as shown below. This loads a custom `InstructionTextGenerationPipeline`
|
||||||
|
found in the model repo [here](https://huggingface.co/aisquared/dlite-v2-1_5b/blob/main/instruct_pipeline.py), which is why `trust_remote_code=True` is required.
|
||||||
|
Including `torch_dtype=torch.bfloat16` is generally recommended if this type is supported in order to reduce memory usage. It does not appear to impact output quality.
|
||||||
|
It is also fine to remove it if there is sufficient memory.
|
||||||
|
|
||||||
|
```python
|
||||||
|
from transformers import pipeline
|
||||||
|
import torch
|
||||||
|
|
||||||
|
generate_text = pipeline(model="aisquared/dlite-v2-1_5b", torch_dtype=torch.bfloat16, trust_remote_code=True, device_map="auto")
|
||||||
|
```
|
||||||
|
|
||||||
|
You can then use the pipeline to answer instructions:
|
||||||
|
|
||||||
|
```python
|
||||||
|
res = generate_text("Who was George Washington?")
|
||||||
|
print(res)
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternatively, if you prefer to not use `trust_remote_code=True` you can download [instruct_pipeline.py](https://huggingface.co/aisquared/dlite-v2-1_5b/blob/main/instruct_pipeline.py),
|
||||||
|
store it alongside your notebook, and construct the pipeline yourself from the loaded model and tokenizer:
|
||||||
|
|
||||||
|
```python
|
||||||
|
from instruct_pipeline import InstructionTextGenerationPipeline
|
||||||
|
from transformers import AutoModelForCausalLM, AutoTokenizer
|
||||||
|
import torch
|
||||||
|
|
||||||
|
tokenizer = AutoTokenizer.from_pretrained("aisquared/dlite-v2-1_5b", padding_side="left")
|
||||||
|
model = AutoModelForCausalLM.from_pretrained("aisquared/dlite-v2-1_5b", device_map="auto", torch_dtype=torch.bfloat16)
|
||||||
|
|
||||||
|
generate_text = InstructionTextGenerationPipeline(model=model, tokenizer=tokenizer)
|
||||||
|
```
|
||||||
|
|
||||||
|
### Model Performance Metrics
|
||||||
|
|
||||||
|
We present the results from various model benchmarks on the EleutherAI LLM Evaluation Harness for all models in the DLite family.
|
||||||
|
Model results are sorted by mean score, ascending, to provide an ordering. These metrics serve to further show that none of the DLite models are
|
||||||
|
state of the art, but rather further show that chat-like behaviors in LLMs can be trained almost independent of model size.
|
||||||
|
|
||||||
|
| Model | arc_challenge | arc_easy | boolq | hellaswag | openbookqa | piqa | winogrande |
|
||||||
|
|:--------------|----------------:|-----------:|---------:|------------:|-------------:|---------:|-------------:|
|
||||||
|
| dlite-v2-124m | 0.199659 | 0.447811 | 0.494801 | 0.291675 | 0.156 | 0.620239 | 0.487766 |
|
||||||
|
| gpt2 | 0.190273 | 0.438131 | 0.487156 | 0.289185 | 0.164 | 0.628945 | 0.51618 |
|
||||||
|
| dlite-v1-124m | 0.223549 | 0.462542 | 0.502446 | 0.293268 | 0.17 | 0.622416 | 0.494081 |
|
||||||
|
| gpt2-medium | 0.215017 | 0.490741 | 0.585933 | 0.333101 | 0.186 | 0.676279 | 0.531176 |
|
||||||
|
| dlite-v2-355m | 0.251706 | 0.486111 | 0.547401 | 0.344354 | 0.216 | 0.671926 | 0.52723 |
|
||||||
|
| dlite-v1-355m | 0.234642 | 0.507576 | 0.600306 | 0.338478 | 0.216 | 0.664309 | 0.496448 |
|
||||||
|
| gpt2-large | 0.216724 | 0.531566 | 0.604893 | 0.363971 | 0.194 | 0.703482 | 0.553275 |
|
||||||
|
| dlite-v1-774m | 0.250853 | 0.545875 | 0.614985 | 0.375124 | 0.218 | 0.698041 | 0.562747 |
|
||||||
|
| dlite-v2-774m | 0.269625 | 0.52904 | 0.613761 | 0.395937 | 0.256 | 0.691513 | 0.566693 |
|
||||||
|
| gpt2-xl | 0.25 | 0.582912 | 0.617737 | 0.400418 | 0.224 | 0.708379 | 0.583268 |
|
||||||
|
| dlite-v1-1_5b | 0.268771 | 0.588384 | 0.624159 | 0.401414 | 0.226 | 0.708379 | 0.584846 |
|
||||||
|
| dlite-v2-1_5b | 0.289249 | 0.565657 | 0.601223 | 0.434077 | 0.272 | 0.703482 | 0.588003 |
|
||||||
|
|
||||||
|
### Limitations
|
||||||
|
*DLite is an experimental technology and is not designed for use in any environment without significant testing and safety consideration.
|
||||||
|
Furthermore, the model can sometimes exhibit undesired behaviors. Some of these behaviors include, but are not limited to: factual
|
||||||
|
inaccuracies, biases, offensive responses, toxicity, and hallucinations. Just as with any other LLM, we advise users of this technology
|
||||||
|
to exercise good judgment when applying this technology.*
|
||||||
|
# [Open LLM Leaderboard Evaluation Results](https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard)
|
||||||
|
Detailed results can be found [here](https://huggingface.co/datasets/open-llm-leaderboard/details_aisquared__dlite-v2-1_5b)
|
||||||
|
|
||||||
|
| Metric | Value |
|
||||||
|
|-----------------------|---------------------------|
|
||||||
|
| Avg. | 30.03 |
|
||||||
|
| ARC (25-shot) | 32.59 |
|
||||||
|
| HellaSwag (10-shot) | 53.98 |
|
||||||
|
| MMLU (5-shot) | 24.93 |
|
||||||
|
| TruthfulQA (0-shot) | 38.77 |
|
||||||
|
| Winogrande (5-shot) | 54.7 |
|
||||||
|
| GSM8K (5-shot) | 0.23 |
|
||||||
|
| DROP (3-shot) | 5.04 |
|
||||||
5
added_tokens.json
Normal file
5
added_tokens.json
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"### End": 50257,
|
||||||
|
"### Instruction:": 50258,
|
||||||
|
"### Response:\n": 50259
|
||||||
|
}
|
||||||
47
config.json
Normal file
47
config.json
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
{
|
||||||
|
"_name_or_path": "gpt2-xl",
|
||||||
|
"activation_function": "gelu_new",
|
||||||
|
"architectures": [
|
||||||
|
"GPT2LMHeadModel"
|
||||||
|
],
|
||||||
|
"custom_pipelines": {
|
||||||
|
"text-generation": {
|
||||||
|
"impl": "instruct_pipeline.InstructionTextGenerationPipeline",
|
||||||
|
"pt": "AutoModelForCausalLM",
|
||||||
|
"tf": "TFAutoModelForCausalLM"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"attn_pdrop": 0.1,
|
||||||
|
"bos_token_id": 50256,
|
||||||
|
"embd_pdrop": 0.1,
|
||||||
|
"eos_token_id": 50256,
|
||||||
|
"initializer_range": 0.02,
|
||||||
|
"layer_norm_epsilon": 1e-05,
|
||||||
|
"model_type": "gpt2",
|
||||||
|
"n_ctx": 1024,
|
||||||
|
"n_embd": 1600,
|
||||||
|
"n_head": 25,
|
||||||
|
"n_inner": null,
|
||||||
|
"n_layer": 48,
|
||||||
|
"n_positions": 1024,
|
||||||
|
"output_past": true,
|
||||||
|
"reorder_and_upcast_attn": false,
|
||||||
|
"resid_pdrop": 0.1,
|
||||||
|
"scale_attn_by_inverse_layer_idx": false,
|
||||||
|
"scale_attn_weights": true,
|
||||||
|
"summary_activation": null,
|
||||||
|
"summary_first_dropout": 0.1,
|
||||||
|
"summary_proj_to_labels": true,
|
||||||
|
"summary_type": "cls_index",
|
||||||
|
"summary_use_proj": true,
|
||||||
|
"task_specific_params": {
|
||||||
|
"text-generation": {
|
||||||
|
"do_sample": true,
|
||||||
|
"max_length": 50
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"torch_dtype": "float16",
|
||||||
|
"transformers_version": "4.25.1",
|
||||||
|
"use_cache": false,
|
||||||
|
"vocab_size": 50260
|
||||||
|
}
|
||||||
160
instruct_pipeline.py
Normal file
160
instruct_pipeline.py
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
import re
|
||||||
|
|
||||||
|
import numpy as np
|
||||||
|
from transformers import Pipeline, PreTrainedTokenizer
|
||||||
|
|
||||||
|
|
||||||
|
INSTRUCTION_KEY = "### Instruction:"
|
||||||
|
RESPONSE_KEY = "### Response:"
|
||||||
|
END_KEY = "### End"
|
||||||
|
INTRO_BLURB = (
|
||||||
|
"Below is an instruction that describes a task, along with any additional context. Write a response that appropriately completes the request."
|
||||||
|
)
|
||||||
|
|
||||||
|
# This is the prompt that is used for generating responses using an already trained model. It ends with the response
|
||||||
|
# key, where the job of the model is to provide the completion that follows it (i.e. the response itself).
|
||||||
|
PROMPT_FOR_GENERATION_FORMAT = """{intro}
|
||||||
|
|
||||||
|
{instruction_key}
|
||||||
|
{instruction}
|
||||||
|
|
||||||
|
{response_key}
|
||||||
|
""".format(
|
||||||
|
intro=INTRO_BLURB,
|
||||||
|
instruction_key=INSTRUCTION_KEY,
|
||||||
|
instruction="{instruction}",
|
||||||
|
response_key=RESPONSE_KEY,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def get_special_token_id(tokenizer: PreTrainedTokenizer, key: str) -> int:
|
||||||
|
"""Gets the token ID for a given string that has been added to the tokenizer as a special token.
|
||||||
|
|
||||||
|
When training, we configure the tokenizer so that the sequences like "### Instruction:" and "### End" are
|
||||||
|
treated specially and converted to a single, new token. This retrieves the token ID each of these keys map to.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
tokenizer (PreTrainedTokenizer): the tokenizer
|
||||||
|
key (str): the key to convert to a single token
|
||||||
|
|
||||||
|
Raises:
|
||||||
|
RuntimeError: if more than one ID was generated
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
int: the token ID for the given key
|
||||||
|
"""
|
||||||
|
token_ids = tokenizer.encode(key)
|
||||||
|
if len(token_ids) > 1:
|
||||||
|
raise ValueError(f"Expected only a single token for '{key}' but found {token_ids}")
|
||||||
|
return token_ids[0]
|
||||||
|
|
||||||
|
|
||||||
|
class InstructionTextGenerationPipeline(Pipeline):
|
||||||
|
def __init__(
|
||||||
|
self, *args, do_sample: bool = True, max_new_tokens: int = 256, top_p: float = 0.92, top_k: int = 0, **kwargs
|
||||||
|
):
|
||||||
|
super().__init__(*args, do_sample=do_sample, max_new_tokens=max_new_tokens, top_p=top_p, top_k=top_k, **kwargs)
|
||||||
|
|
||||||
|
def _sanitize_parameters(self, return_instruction_text=False, **generate_kwargs):
|
||||||
|
preprocess_params = {}
|
||||||
|
|
||||||
|
# newer versions of the tokenizer configure the response key as a special token. newer versions still may
|
||||||
|
# append a newline to yield a single token. find whatever token is configured for the response key.
|
||||||
|
tokenizer_response_key = next(
|
||||||
|
(token for token in self.tokenizer.additional_special_tokens if token.startswith(RESPONSE_KEY)), None
|
||||||
|
)
|
||||||
|
|
||||||
|
response_key_token_id = None
|
||||||
|
end_key_token_id = None
|
||||||
|
if tokenizer_response_key:
|
||||||
|
try:
|
||||||
|
response_key_token_id = get_special_token_id(self.tokenizer, tokenizer_response_key)
|
||||||
|
end_key_token_id = get_special_token_id(self.tokenizer, END_KEY)
|
||||||
|
|
||||||
|
# Ensure generation stops once it generates "### End"
|
||||||
|
generate_kwargs["eos_token_id"] = end_key_token_id
|
||||||
|
except ValueError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
forward_params = generate_kwargs
|
||||||
|
postprocess_params = {
|
||||||
|
"response_key_token_id": response_key_token_id,
|
||||||
|
"end_key_token_id": end_key_token_id,
|
||||||
|
"return_instruction_text": return_instruction_text,
|
||||||
|
}
|
||||||
|
|
||||||
|
return preprocess_params, forward_params, postprocess_params
|
||||||
|
|
||||||
|
def preprocess(self, instruction_text, **generate_kwargs):
|
||||||
|
prompt_text = PROMPT_FOR_GENERATION_FORMAT.format(instruction=instruction_text)
|
||||||
|
inputs = self.tokenizer(
|
||||||
|
prompt_text,
|
||||||
|
return_tensors="pt",
|
||||||
|
)
|
||||||
|
inputs["prompt_text"] = prompt_text
|
||||||
|
inputs["instruction_text"] = instruction_text
|
||||||
|
return inputs
|
||||||
|
|
||||||
|
def _forward(self, model_inputs, **generate_kwargs):
|
||||||
|
input_ids = model_inputs["input_ids"]
|
||||||
|
attention_mask = model_inputs.get("attention_mask", None)
|
||||||
|
generated_sequence = self.model.generate(
|
||||||
|
input_ids=input_ids.to(self.model.device),
|
||||||
|
attention_mask=attention_mask,
|
||||||
|
pad_token_id=self.tokenizer.pad_token_id,
|
||||||
|
**generate_kwargs,
|
||||||
|
)[0].cpu()
|
||||||
|
instruction_text = model_inputs.pop("instruction_text")
|
||||||
|
return {"generated_sequence": generated_sequence, "input_ids": input_ids, "instruction_text": instruction_text}
|
||||||
|
|
||||||
|
def postprocess(self, model_outputs, response_key_token_id, end_key_token_id, return_instruction_text):
|
||||||
|
sequence = model_outputs["generated_sequence"]
|
||||||
|
instruction_text = model_outputs["instruction_text"]
|
||||||
|
|
||||||
|
# The response will be set to this variable if we can identify it.
|
||||||
|
decoded = None
|
||||||
|
|
||||||
|
# If we have token IDs for the response and end, then we can find the tokens and only decode between them.
|
||||||
|
if response_key_token_id and end_key_token_id:
|
||||||
|
# Find where "### Response:" is first found in the generated tokens. Considering this is part of the
|
||||||
|
# prompt, we should definitely find it. We will return the tokens found after this token.
|
||||||
|
response_pos = None
|
||||||
|
response_positions = np.where(sequence == response_key_token_id)[0]
|
||||||
|
if len(response_positions) == 0:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
response_pos = response_positions[0]
|
||||||
|
|
||||||
|
if response_pos:
|
||||||
|
# Next find where "### End" is located. The model has been trained to end its responses with this
|
||||||
|
# sequence (or actually, the token ID it maps to, since it is a special token). We may not find
|
||||||
|
# this token, as the response could be truncated. If we don't find it then just return everything
|
||||||
|
# to the end. Note that even though we set eos_token_id, we still see the this token at the end.
|
||||||
|
end_pos = None
|
||||||
|
end_positions = np.where(sequence == end_key_token_id)[0]
|
||||||
|
if len(end_positions) > 0:
|
||||||
|
end_pos = end_positions[0]
|
||||||
|
|
||||||
|
decoded = self.tokenizer.decode(sequence[response_pos + 1 : end_pos]).strip()
|
||||||
|
else:
|
||||||
|
# Otherwise we'll decode everything and use a regex to find the response and end.
|
||||||
|
|
||||||
|
fully_decoded = self.tokenizer.decode(sequence)
|
||||||
|
|
||||||
|
# The response appears after "### Response:". The model has been trained to append "### End" at the
|
||||||
|
# end.
|
||||||
|
m = re.search(r"#+\s*Response:\s*(.+?)#+\s*End", fully_decoded, flags=re.DOTALL)
|
||||||
|
|
||||||
|
if m:
|
||||||
|
decoded = m.group(1).strip()
|
||||||
|
else:
|
||||||
|
# The model might not generate the "### End" sequence before reaching the max tokens. In this case,
|
||||||
|
# return everything after "### Response:".
|
||||||
|
m = re.search(r"#+\s*Response:\s*(.+)", fully_decoded, flags=re.DOTALL)
|
||||||
|
if m:
|
||||||
|
decoded = m.group(1).strip()
|
||||||
|
|
||||||
|
if return_instruction_text:
|
||||||
|
return {"instruction_text": instruction_text, "generated_text": decoded}
|
||||||
|
|
||||||
|
return decoded
|
||||||
50001
merges.txt
Normal file
50001
merges.txt
Normal file
File diff suppressed because it is too large
Load Diff
3
pytorch_model.bin
Normal file
3
pytorch_model.bin
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:5a2ba12acb87aff387e4b0c41a399acde9d210813c2a843bcc92a36ccbb053fd
|
||||||
|
size 3165775133
|
||||||
11
special_tokens_map.json
Normal file
11
special_tokens_map.json
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"additional_special_tokens": [
|
||||||
|
"### End",
|
||||||
|
"### Instruction:",
|
||||||
|
"### Response:\n"
|
||||||
|
],
|
||||||
|
"bos_token": "<|endoftext|>",
|
||||||
|
"eos_token": "<|endoftext|>",
|
||||||
|
"pad_token": "<|endoftext|>",
|
||||||
|
"unk_token": "<|endoftext|>"
|
||||||
|
}
|
||||||
100331
tokenizer.json
Normal file
100331
tokenizer.json
Normal file
File diff suppressed because it is too large
Load Diff
10
tokenizer_config.json
Normal file
10
tokenizer_config.json
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"add_prefix_space": false,
|
||||||
|
"bos_token": "<|endoftext|>",
|
||||||
|
"eos_token": "<|endoftext|>",
|
||||||
|
"model_max_length": 1024,
|
||||||
|
"name_or_path": "gpt2-xl",
|
||||||
|
"special_tokens_map_file": null,
|
||||||
|
"tokenizer_class": "GPT2Tokenizer",
|
||||||
|
"unk_token": "<|endoftext|>"
|
||||||
|
}
|
||||||
3
training_args.bin
Normal file
3
training_args.bin
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:7419979b2c153a41b2f0f96d5d6a8e1a6c584c5eef9ab0e20084ec471e6c2681
|
||||||
|
size 4539
|
||||||
1
vocab.json
Normal file
1
vocab.json
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user