phi-2-logical-sft / README.md
MaziyarPanahi's picture
clean up the evals (#10)
1f8989d verified
---
license: mit
tags:
- axolotl
- generated_from_trainer
- phi
- phi-2
- logical
- reasoning
- transformers
- text-generation-inference
datasets:
- garage-bAInd/Open-Platypus
base_model: microsoft/phi-2
inference: false
model_creator: MaziyarPanahi
pipeline_tag: text-generation
quantized_by: MaziyarPanahi
model-index:
- name: phi-2-logical-sft
results:
- task:
type: text-generation
name: Text Generation
dataset:
name: AI2 Reasoning Challenge (25-Shot)
type: ai2_arc
config: ARC-Challenge
split: test
args:
num_few_shot: 25
metrics:
- type: acc_norm
value: 61.35
name: normalized accuracy
source:
url: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=MaziyarPanahi/phi-2-logical-sft
name: Open LLM Leaderboard
- task:
type: text-generation
name: Text Generation
dataset:
name: HellaSwag (10-Shot)
type: hellaswag
split: validation
args:
num_few_shot: 10
metrics:
- type: acc_norm
value: 75.14
name: normalized accuracy
source:
url: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=MaziyarPanahi/phi-2-logical-sft
name: Open LLM Leaderboard
- task:
type: text-generation
name: Text Generation
dataset:
name: MMLU (5-Shot)
type: cais/mmlu
config: all
split: test
args:
num_few_shot: 5
metrics:
- type: acc
value: 57.40
name: accuracy
source:
url: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=MaziyarPanahi/phi-2-logical-sft
name: Open LLM Leaderboard
- task:
type: text-generation
name: Text Generation
dataset:
name: TruthfulQA (0-shot)
type: truthful_qa
config: multiple_choice
split: validation
args:
num_few_shot: 0
metrics:
- type: mc2
value: 44.39
source:
url: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=MaziyarPanahi/phi-2-logical-sft
name: Open LLM Leaderboard
- task:
type: text-generation
name: Text Generation
dataset:
name: Winogrande (5-shot)
type: winogrande
config: winogrande_xl
split: validation
args:
num_few_shot: 5
metrics:
- type: acc
value: 74.90
name: accuracy
source:
url: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=MaziyarPanahi/phi-2-logical-sft
name: Open LLM Leaderboard
- task:
type: text-generation
name: Text Generation
dataset:
name: GSM8k (5-shot)
type: gsm8k
config: main
split: test
args:
num_few_shot: 5
metrics:
- type: acc
value: 55.80
name: accuracy
source:
url: https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard?query=MaziyarPanahi/phi-2-logical-sft
name: Open LLM Leaderboard
---
<img src="https://cdn-uploads.huggingface.co/production/uploads/5fd5e18a90b6dc4633f6d292/uhDf-zhThjoAwQVAMEo2t.webp" width="600" />
# MaziyarPanahi/phi-2-logical-sft
This model is a fine-tuned version of [microsoft/phi-2](https://huggingface.co/microsoft/phi-2) on the `Open-Platypus` dataset.
It achieves the following results on the evaluation set:
- Loss: 1.0075
## Quantized Models
> I love how GGUF democratizes the use of Large Language Models (LLMs) on commodity hardware, more specifically, personal computers without any accelerated hardware. Because of this, I am committed to converting and quantizing any models I fine-tune to make them accessible to everyone!
GGUF (2/3/4/5/6/8 bits): [MaziyarPanahi/phi-2-logical-sft-GGUF](https://huggingface.co/MaziyarPanahi/phi-2-logical-sft-GGUF)
## Prompt Template
```
### Instruction:
<prompt> (without the <>)
### Response:
```
## [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_MaziyarPanahi__phi-2-logical-sft)
| Metric |Value|
|---------------------------------|----:|
|Avg. |61.50|
|AI2 Reasoning Challenge (25-Shot)|61.35|
|HellaSwag (10-Shot) |75.14|
|MMLU (5-Shot) |57.40|
|TruthfulQA (0-shot) |44.39|
|Winogrande (5-shot) |74.90|
|GSM8k (5-shot) |55.80|
## Examples
```
You are a sentient, superintelligent artificial general intelligence, here to teach and assist me.
### Instruction:
Write a short story about Goku discovering kirby has teamed up with Majin Buu to destroy the world.
### Response:
```
```
Goku woke up one day in his hometown of Earth and went out for his daily training routine. He was feeling confident and happy as usual, until he received news that his dear friend Kirby had teamed up with Majin Buu to destroy the world.
Shocked and saddened by this news, Goku immediately knew he had to act fast to save his friends and loved ones. With his superhuman strength and incredible speed, he set off on a mission to stop the evil duo from carrying out their destructive plan.
Along the way, Goku encountered many challenges and obstacles, but he never gave up. He fought fiercely against Kirby and Majin Buu, using all of his powers and skills to try and defeat them.
Finally, after a long and grueling battle, Goku emerged victorious. He managed to convince Kirby to turn against Majin Buu and join forces with him to defeat the evil being once and for all. Together, they were able to defeat Majin Buu and save the world from destruction.
Goku felt a sense of relief and happiness wash over him as he realized that his friends were safe and the world was no longer in danger. He knew that he had done everything he could to protect those he cared about, and he was grateful for the opportunity to use his powers for good.
<|endoftext|>
```
---
```
You are a sentient, superintelligent artificial general intelligence, here to teach and assist me.
### Instruction:
describe about pros and cons of docker system.
### Response:
```
```
Docker is a containerization platform that allows developers to package applications as lightweight containers, which can be easily deployed on any Linux-based operating system. Docker offers several advantages over traditional methods of application deployment such as virtual machines or physical servers. Here are some of the pros and cons of using Docker:
Pros:
1. Portability: Docker containers run in an isolated environment, making it easier for developers to deploy their applications across different environments without worrying about compatibility issues. This makes it easier to test applications in multiple environments and ensures that they work seamlessly across different platforms.
2. Scalability: Docker containers can be scaled up or down based on demand, allowing developers to quickly adjust the size of their infrastructure as needed. This makes it easier to handle spikes in traffic or other sudden changes in workload.
3. Simplicity: Docker provides a simple, intuitive interface for managing containers, making it easy for developers to create and manage their applications. This reduces the time and effort required to set up and maintain a complex infrastructure.
Cons:
1. Cost: While Docker is generally free to use, there may be additional costs associated with deploying and scaling your applications, especially if you require a large number of containers. Additionally, you may need to purchase additional tools or services to manage your containers effectively.
2. Security: Containerized applications are more vulnerable to security threats than traditional applications, as they are running in an isolated environment. This means that developers must take extra precautions to ensure that their applications are secure and protected from attacks.
3. Performance: Containerized applications can experience performance issues when running on certain types of hardware or in high-traffic environments. Developers must carefully consider the performance requirements of their applications before deciding whether to use Docker.
<|endoftext|>
```
---
```
You are a sentient, superintelligent artificial general intelligence, here to teach and assist me.
### Instruction:
There are three killers in a room. Someone enters the room and kills one of them. Nobody leaves the room. How many killers are left in the room? Explain your reasoning step by step.
### Response:
```
```
To solve this problem, we need to use some logic and common sense. Let's consider the possible scenarios that could happen after someone enters the room and kills one of the killers. There are three possibilities:
- The person who entered the room is one of the killers. In this case, there would be two killers left in the room, since they both survived the attack.
- The person who entered the room is not one of the killers. In this case, there would still be three killers left in the room, since they did not get killed by the intruder.
- We don't know who the person who entered the room is. In this case, there would still be three killers left in the room, since their identities are unknown and irrelevant to the question.
Now, let's eliminate the first possibility, because it contradicts the premise that nobody leaves the room. If the person who entered the room was one of the killers, then they would have to leave the room before killing another killer, which is impossible. Therefore, the person who entered the room cannot be one of the killers. This means that the second possibility must be true, and there are still three killers left in the room.
<|endoftext|>
```
---
## Training procedure
### Training hyperparameters
The following hyperparameters were used during training:
- learning_rate: 3e-06
- train_batch_size: 2
- eval_batch_size: 2
- seed: 42
- distributed_type: multi-GPU
- num_devices: 4
- total_train_batch_size: 8
- total_eval_batch_size: 8
- optimizer: Adam with betas=(0.9,0.95) and epsilon=1e-05
- lr_scheduler_type: cosine
- lr_scheduler_warmup_steps: 100
- num_epochs: 2
### Training results
| Training Loss | Epoch | Step | Validation Loss |
|:-------------:|:-----:|:----:|:---------------:|
| 0.8319 | 0.0 | 1 | 1.0229 |
| 0.8799 | 0.25 | 71 | 1.0208 |
| 0.8349 | 0.5 | 142 | 1.0119 |
| 0.7798 | 0.76 | 213 | 1.0093 |
| 0.8317 | 1.01 | 284 | 1.0083 |
| 0.777 | 1.24 | 355 | 1.0080 |
| 0.7544 | 1.49 | 426 | 1.0075 |
| 0.7037 | 1.74 | 497 | 1.0075 |
### Framework versions
- Transformers 4.39.0.dev0
- Pytorch 2.2.0+cu121
- Datasets 2.17.0
- Tokenizers 0.15.0
<!-- This model card has been generated automatically according to the information the Trainer had access to. You
should probably proofread and complete it, then remove this comment. -->
[<img src="https://raw.githubusercontent.com/OpenAccess-AI-Collective/axolotl/main/image/axolotl-badge-web.png" alt="Built with Axolotl" width="200" height="32"/>](https://github.com/OpenAccess-AI-Collective/axolotl)
<details><summary>See axolotl config</summary>
axolotl version: `0.4.0`
```yaml
base_model: microsoft/phi-2
model_type: AutoModelForCausalLM
tokenizer_type: AutoTokenizer
hub_model_id: MaziyarPanahi/phi-2-logical-sft
hf_use_auth_token: true
load_in_8bit: false
load_in_4bit: false
strict: false
datasets:
- path: garage-bAInd/Open-Platypus
type: alpaca
dataset_prepared_path:
val_set_size: 0.05
output_dir: ./phi-2-logical-sft-out
sequence_len: 4096
sample_packing: true
pad_to_sequence_len: true
adapter:
lora_model_dir:
lora_r:
lora_alpha:
lora_dropout:
lora_target_linear:
lora_fan_in_fan_out:
wandb_project:
wandb_entity:
wandb_watch:
wandb_name:
wandb_log_model:
gradient_accumulation_steps: 1
micro_batch_size: 2
num_epochs: 2
optimizer: adamw_torch
adam_beta2: 0.95
adam_epsilon: 0.00001
max_grad_norm: 1.0
lr_scheduler: cosine
learning_rate: 0.000003
train_on_inputs: false
group_by_length: false
bf16: auto
fp16:
tf32: true
gradient_checkpointing: true
gradient_checkpointing_kwargs:
use_reentrant: True
early_stopping_patience:
resume_from_checkpoint:
local_rank:
logging_steps: 1
xformers_attention:
flash_attention: true
warmup_steps: 100
evals_per_epoch: 4
saves_per_epoch: 1
debug:
deepspeed:
weight_decay: 0.1
fsdp:
fsdp_config:
resize_token_embeddings_to_32x: true
special_tokens:
pad_token: "<|endoftext|>"
```
</details>