From 36154a9efd66c4e50982417b464c90f1981b97c9 Mon Sep 17 00:00:00 2001 From: wehub-resource-sync Date: Mon, 13 Jul 2026 12:45:13 +0800 Subject: [PATCH] chore: import upstream snapshot with attribution --- LICENSE | 201 ++++++++ README.md | 448 ++++++++++++++++++ README.wehub.md | 7 + assets/mascot.png | Bin 0 -> 172259 bytes configs/stablelm-2-12b.yml | 155 ++++++ configs/stablelm-2-1_6b.yml | 148 ++++++ configs/stablelm-3b-4e1t.yml | 133 ++++++ ...stablelm-base-alpha-3b-v2-4k-extension.yml | 142 ++++++ configs/stablelm-base-alpha-3b-v2.yml | 141 ++++++ configs/stablelm-base-alpha-3b.yml | 127 +++++ ...stablelm-base-alpha-7b-v2-4k-extension.yml | 142 ++++++ configs/stablelm-base-alpha-7b-v2.yml | 136 ++++++ configs/stablelm-base-alpha-7b.yml | 126 +++++ .../EleutherAI-pythia-2.8b-deduped.json | 90 ++++ evals/external/EleutherAI_gpt-j-6B.json | 84 ++++ evals/external/EleutherAI_gpt-neox-20B.json | 84 ++++ evals/external/EleutherAI_pythia-12b.json | 84 ++++ evals/external/EleutherAI_pythia-6.9b.json | 84 ++++ evals/external/Qwen-Qwen-7B-Chat.json | 84 ++++ evals/external/Qwen-Qwen-7B.json | 84 ++++ .../baichuan-inc_Baichuan2-7B-Base.json | 84 ++++ evals/external/bigscience-bloom-3b.json | 84 ++++ evals/external/bigscience-bloom-7b1.json | 84 ++++ evals/external/cerebras-btlm-3b-8k-base.json | 90 ++++ evals/external/facebook-opt-2.7b.json | 84 ++++ evals/external/facebook-opt-6.7b.json | 84 ++++ evals/external/huggyllama-llama-7b.json | 84 ++++ evals/external/kittn_mistral-7B-v0.1-hf.json | 84 ++++ evals/external/meta-llama-Llama-2-13b-hf.json | 84 ++++ evals/external/meta-llama-Llama-2-7b.json | 91 ++++ evals/external/microsoft-phi-1_5.json | 84 ++++ evals/external/mosaicml-mpt-7b.json | 91 ++++ evals/external/openlm-research-open_llama_13b | 32 ++ .../openlm-research-open_llama_3b_v2.json | 91 ++++ .../openlm-research-open_llama_7b_v2.json | 91 ++++ evals/external/tiiuae_falcon-7b.json | 84 ++++ ...hercomputer-RedPajama-INCITE-7B-Base2.json | 91 ++++ .../stablelm-beta-3b-v2-arc-challenge.json | 21 + .../stablelm-beta-3b-v2-hellaswag.json | 21 + .../stablelm-beta-3b-v2-mmmlu.json | 301 ++++++++++++ .../stablelm-beta-3b-v2-truthfulqa_mc.json | 21 + .../stablelm-beta-7b-v2-arc-challenge.json | 21 + .../stablelm-beta-7b-v2-hellaswag.json | 21 + .../stablelm-beta-7b-v2-mmmlu.json | 301 ++++++++++++ .../stablelm-beta-7b-v2-truthfulqa_mc.json | 21 + evals/stablelm-3b-4e1t.json | 84 ++++ evals/stablelm-base-alpha-3b-v2.json | 91 ++++ evals/stablelm-base-alpha-3b.json | 91 ++++ evals/stablelm-base-alpha-7b-v2.json | 91 ++++ evals/stablelm-base-alpha-7b.json | 91 ++++ notebooks/stablelm-alpha.ipynb | 264 +++++++++++ 51 files changed, 5357 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 README.wehub.md create mode 100644 assets/mascot.png create mode 100644 configs/stablelm-2-12b.yml create mode 100644 configs/stablelm-2-1_6b.yml create mode 100755 configs/stablelm-3b-4e1t.yml create mode 100755 configs/stablelm-base-alpha-3b-v2-4k-extension.yml create mode 100755 configs/stablelm-base-alpha-3b-v2.yml create mode 100644 configs/stablelm-base-alpha-3b.yml create mode 100755 configs/stablelm-base-alpha-7b-v2-4k-extension.yml create mode 100755 configs/stablelm-base-alpha-7b-v2.yml create mode 100644 configs/stablelm-base-alpha-7b.yml create mode 100755 evals/external/EleutherAI-pythia-2.8b-deduped.json create mode 100644 evals/external/EleutherAI_gpt-j-6B.json create mode 100644 evals/external/EleutherAI_gpt-neox-20B.json create mode 100644 evals/external/EleutherAI_pythia-12b.json create mode 100644 evals/external/EleutherAI_pythia-6.9b.json create mode 100755 evals/external/Qwen-Qwen-7B-Chat.json create mode 100755 evals/external/Qwen-Qwen-7B.json create mode 100644 evals/external/baichuan-inc_Baichuan2-7B-Base.json create mode 100755 evals/external/bigscience-bloom-3b.json create mode 100755 evals/external/bigscience-bloom-7b1.json create mode 100755 evals/external/cerebras-btlm-3b-8k-base.json create mode 100755 evals/external/facebook-opt-2.7b.json create mode 100755 evals/external/facebook-opt-6.7b.json create mode 100755 evals/external/huggyllama-llama-7b.json create mode 100644 evals/external/kittn_mistral-7B-v0.1-hf.json create mode 100644 evals/external/meta-llama-Llama-2-13b-hf.json create mode 100755 evals/external/meta-llama-Llama-2-7b.json create mode 100644 evals/external/microsoft-phi-1_5.json create mode 100755 evals/external/mosaicml-mpt-7b.json create mode 100755 evals/external/openlm-research-open_llama_13b create mode 100755 evals/external/openlm-research-open_llama_3b_v2.json create mode 100755 evals/external/openlm-research-open_llama_7b_v2.json create mode 100644 evals/external/tiiuae_falcon-7b.json create mode 100755 evals/external/togethercomputer-RedPajama-INCITE-7B-Base2.json create mode 100644 evals/open_llm_leaderboard/stablelm-beta-3b-v2-arc-challenge.json create mode 100644 evals/open_llm_leaderboard/stablelm-beta-3b-v2-hellaswag.json create mode 100644 evals/open_llm_leaderboard/stablelm-beta-3b-v2-mmmlu.json create mode 100644 evals/open_llm_leaderboard/stablelm-beta-3b-v2-truthfulqa_mc.json create mode 100644 evals/open_llm_leaderboard/stablelm-beta-7b-v2-arc-challenge.json create mode 100644 evals/open_llm_leaderboard/stablelm-beta-7b-v2-hellaswag.json create mode 100644 evals/open_llm_leaderboard/stablelm-beta-7b-v2-mmmlu.json create mode 100644 evals/open_llm_leaderboard/stablelm-beta-7b-v2-truthfulqa_mc.json create mode 100644 evals/stablelm-3b-4e1t.json create mode 100644 evals/stablelm-base-alpha-3b-v2.json create mode 100644 evals/stablelm-base-alpha-3b.json create mode 100644 evals/stablelm-base-alpha-7b-v2.json create mode 100644 evals/stablelm-base-alpha-7b.json create mode 100644 notebooks/stablelm-alpha.ipynb diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..8131601 --- /dev/null +++ b/README.md @@ -0,0 +1,448 @@ +# StableLM: Stability AI Language Models + +![Stochastic Parrot](./assets/mascot.png) +
*“A Stochastic Parrot, flat design, vector art” — [Stable Diffusion XL](https://clipdrop.co/stable-diffusion)* + +This repository contains Stability AI's ongoing development of the StableLM series of language models and will be continuously updated with new checkpoints. The following provides an overview of all currently available models. More coming soon. + +## News + +*September 29, 2023* + +- Released StableLM-3B-4E1T model under [CC BY-SA-4.0](https://creativecommons.org/licenses/by-sa/4.0/). + +*August 5, 2023* + +- Released patched StableLM-Alpha v2 models with 3B and 7B parameters. + +*April 28, 2023* + +- Released StableVicuna-13B, our RLHF fine-tune of [Vicuna-13B v0](https://huggingface.co/lmsys/vicuna-13b-delta-v0), which itself is a fine-tune of [LLaMA-13B](https://github.com/facebookresearch/llama). Delta weights over the original Llama model is released under ([CC BY-NC-SA-4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)). + +*April 20, 2023* + +- Released initial set of StableLM-Alpha models, with 3B and 7B parameters. Base models are released under [CC BY-SA-4.0](https://creativecommons.org/licenses/by-sa/4.0/). + +- Try to chat with our 7B model, `StableLM-Tuned-Alpha-7B`, on [Hugging Face Spaces](https://huggingface.co/spaces/stabilityai/stablelm-tuned-alpha-chat). + +## Models + +### StableLM-3B-4E1T + +> Technical Report: [StableLM-3B-4E1T](https://stability.wandb.io/stability-llm/stable-lm/reports/StableLM-3B-4E1T--VmlldzoyMjU4?accessToken=u3zujipenkx5g7rtcj9qojjgxpconyjktjkli2po09nffrffdhhchq045vp0wyfo) + +StableLM-3B-4E1T is a 3 billion (3B) parameter language model pre-trained under the multi-epoch regime to study the impact of repeated tokens on downstream performance. Given prior success in this area ([Tay et al., 2023](https://arxiv.org/pdf/2205.05131.pdf) and [Taylor et al., 2022](https://galactica.org/static/paper.pdf)), we train on 1 trillion (1T) tokens for 4 epochs following the observations of [Muennighoff et al. (2023)](https://arxiv.org/abs/2305.16264) in "Scaling Data-Constrained Language Models" in which they find "training with up to 4 epochs of repeated data yields negligible changes to loss compared to having unique data." Further inspiration for the token count is taken from "Go smol or go home" ([De Vries, 2023](https://www.harmdevries.com/post/model-size-vs-compute-overhead/)), which suggests a 2.96B model trained for 2.85 trillion tokens achieves a similar loss to a Chinchilla compute-optimal 9.87B language model ($k_n = 0.3$). + +| Size | StableLM-3B-4E1T | Training Tokens | Parameters | +|------|--------------------------------------------------------------------|-----------------|---------------| +| 3B | [checkpoint](https://huggingface.co/stabilityai/stablelm-3b-4e1t) | 4T | 2,795,443,200 | + +#### Model Architecture + +The model is a decoder-only transformer similar to the LLaMA ([Touvron et al., 2023](https://arxiv.org/abs/2307.09288)) architecture with the following modifications: + +| Parameters | Hidden Size | Layers | Heads | Sequence Length | +|----------------|-------------|--------|-------|-----------------| +| 2,795,443,200 | 2560 | 32 | 32 | 4096 | + +- **Position Embeddings**: Rotary Position Embeddings ([Su et al., 2021](https://arxiv.org/abs/2104.09864)) applied to the first 25% of head embedding dimensions for improved throughput following [Black et al. (2022)](https://arxiv.org/pdf/2204.06745.pdf). +- **Normalization**: LayerNorm ([Ba et al., 2016](https://arxiv.org/abs/1607.06450)) with learned bias terms as opposed to RMSNorm ([Zhang & Sennrich, 2019](https://arxiv.org/abs/1910.07467)). +- **Tokenizer**: GPT-NeoX ([Black et al., 2022](https://arxiv.org/abs/2204.06745)). + +#### Training Data + +The dataset is comprised of a filtered mixture of open-source large-scale datasets available on the [HuggingFace Hub](https://huggingface.co/datasets): Falcon RefinedWeb extract ([Penedo et al., 2023](https://huggingface.co/datasets/tiiuae/falcon-refinedweb)), and RedPajama-Data ([Together Computer., 2023](https://github.com/togethercomputer/RedPajama-Data)) and The Pile ([Gao et al., 2020](https://arxiv.org/abs/2101.00027)) both without *Books3* and other subsets, and StarCoder ([Li et al., 2023](https://arxiv.org/abs/2305.06161)). + +> Given the large amount of web data, we recommend fine-tuning the base StableLM-3B-4E1T for your downstream tasks. + +#### Training Details + +Please refer to the provided YAML configuration file [`stablelm-3b-4e1t.yml`](./configs/stablelm-3b-4e1t.yml) for complete hyperparameter settings and the [technical report](https://stability.wandb.io/stability-llm/stable-lm/reports/StableLM-3B-4E1T--VmlldzoyMjU4?accessToken=u3zujipenkx5g7rtcj9qojjgxpconyjktjkli2po09nffrffdhhchq045vp0wyfo) for further details. + +#### Downstream Results + +The following zero-shot evaluations are performed with the `lm-evaluation-harness` using the [lm-bench](https://github.com/Stability-AI/lm-evaluation-harness/tree/lm-bench) branch of Stability AI's fork. Full `lm-eval` JSONs can be found in the [`evals`](./evals) directory. + +| Pre-Trained Model | Average | ARC
Challenge | ARC
Easy | BoolQ | HellaSwag (✱) | LAMBADA
OpenAI | OpenBookQA | PIQA | SciQ | Winogrande | +| ------------------------------------------------------------------------------------- |:-----------------:|:----------------:|:-----------:|:-----:|:-------------:|:-----------------:|:----------:|:-----:|:-----:|:----------:| +| meta-llama/Llama-2-13b-hf | 71.77 | 48.63 | 79.50 | 80.52 | 79.36 | 76.77 | 35.40 | 79.05 | 94.50 | 72.22 | +| huggyllama/llama-7b | 68.84 | 41.89 | 75.25 | 75.05 | 76.22 | 73.55 | 34.40 | 78.67 | 94.60 | 69.93 | +| meta-llama/Llama-2-7b-hf | 68.75 | 43.00 | 76.26 | 77.74 | 75.94 | 73.47 | 31.40 | 77.75 | 93.60 | 69.61 | +| Qwen/Qwen-7B | 67.91 | 45.39 | 67.38 | 74.56 | 88.85 (?) | 69.67 | 32.20 | 73.99 | 93.20 | 65.98 | +| tiiuae/falcon-7b | 67.83 | 40.27 | 74.41 | 73.55 | 76.35 | 74.56 | 30.60 | 79.49 | 94.00 | 67.25 | +| mosaicml/mpt-7b | 67.36 | 40.53 | 74.92 | 73.94 | 76.17 | 68.64 | 31.40 | 78.89 | 93.70 | 68.03 | +| **stabilityai/stablelm-3b-4e1t** | 66.93 | 37.80 | 72.47 | 75.63 | 73.90 | 70.64 | 31.40 | 79.22 | 94.80 | 66.54 | +| baichuan-inc/Baichuan2-7B-Base | 66.93 | 42.24 | 75.00 | 73.09 | 72.29 | 70.99 | 30.40 | 76.17 | 94.60 | 67.56 | +| stabilityai/stablelm-base-alpha-7b-v2 | 66.89 | 38.48 | 73.19 | 70.31 | 74.27 | 74.19 | 30.40 | 78.45 | 93.90 | 68.82 | +| openlm-research/open_llama_7b_v2 | 66.32 | 38.82 | 71.93 | 71.41 | 74.65 | 71.05 | 30.20 | 79.16 | 93.80 | 65.82 | +| microsoft/phi-1_5 | 65.57 | 44.45 | 76.14 | 74.53 | 62.62 | 52.75 | 37.60 | 76.33 | 93.20 | 72.53 | +| EleutherAI/gpt-neox-20B | 65.57 | 37.88 | 72.90 | 69.48 | 71.43 | 71.98 | 29.80 | 77.42 | 93.10 | 66.14 | +| togethercomputer/RedPajama-INCITE-7B-Base | 65.07 | 37.71 | 72.35 | 70.76 | 70.33 | 71.34 | 29.00 | 77.15 | 92.70 | 64.33 | +| cerebras/btlm-3b-8k-base (§) | 63.59 | 34.90 | 70.45 | 69.63 | 69.78 | 66.23 | 27.60 | 75.84 | 92.90 | 64.96 | +| EleutherAI/pythia-12b | 62.69 | 31.83 | 70.20 | 67.31 | 67.38 | 70.64 | 26.40 | 76.28 | 90.20 | 64.01 | +| openlm-research/open_llama_3b_v2 | 62.43 | 33.87 | 67.59 | 65.69 | 69.99 | 66.74 | 26.00 | 76.66 | 92.40 | 62.90 | +| EleutherAI/gpt-j-6B | 62.34 | 33.96 | 66.96 | 65.44 | 66.24 | 68.23 | 29.00 | 75.57 | 91.50 | 64.17 | +| stabilityai/stablelm-base-alpha-3b-v2 | 62.19 | 32.42 | 67.26 | 64.56 | 68.58 | 70.25 | 26.40 | 76.01 | 92.10 | 62.12 | +| facebook/opt-6.7b | 61.85 | 30.72 | 65.66 | 66.02 | 67.20 | 67.65 | 27.60 | 76.33 | 90.10 | 65.35 | +| EleutherAI/pythia-6.9b | 60.58 | 31.83 | 67.21 | 64.01 | 63.88 | 67.01 | 25.80 | 75.08 | 89.80 | 60.62 | +| EleutherAI/pythia-2.8b-deduped | 58.52 | 30.12 | 63.47 | 64.13 | 59.44 | 65.15 | 23.80 | 74.10 | 88.20 | 58.25 | +| **§** Previous 3B Pre-Trained SOTA
**?** Outlier Reuslts
**\*** Byte-length Normalized Accuracy | | | | | | | | | | | + +**StableLM-3B-4E1T achieves state-of-the-art performance (September 2023) at the 3B parameter scale for open-source models** and is competitive with many of the popular contemporary 7B models, even outperforming our most recent 7B StableLM-Base-Alpha-v2. + +### StableLM-Alpha v2 + +StableLM-Alpha v2 models significantly improve on the initial Alpha models by incorporating architectural improvements such as SwiGLU ([Shazeer, 2020](https://arxiv.org/abs/2002.05202)) and using higher-quality data sources, as discussed below. The context length for these models is 4096 tokens. + +| Size | StableLM-Base-Alpha-v2 | Training Tokens | Parameters | +|------|----------------------------------------------------------------------------|-----------------|---------------| +| 3B | [checkpoint](https://huggingface.co/stabilityai/stablelm-base-alpha-3b-v2) | 1.1T | 2,796,431,360 | +| 7B | [checkpoint](https://huggingface.co/stabilityai/stablelm-base-alpha-7b-v2) | 1.1T | 6,890,209,280 | + +#### Training Details + +Please refer to the provided YAML configuration files for hyperparameter details. E.g. for the extended `StableLM-Alpha-3B-v2` model, see [stablelm-base-alpha-3b-v2-4k-extension.yml](./configs/stablelm-base-alpha-3b-v2-4k-extension.yml). + +Following similar work, we use a multi-stage approach to context length extension ([Nijkamp et al., 2023](https://blog.salesforceairesearch.com/xgen/)), scheduling 1 trillion tokens at context length 2048 followed by 100 billion tokens at 4096. We found that sequence length warmup ([Li et al., 2022](https://arxiv.org/abs/2108.06084)) helped stabilize early spikes during the first ~80 billion tokens of pre-training. However, it was not applied to the final runs due to significant throughput penalties as length shapes grew across the curriculum. + +#### Training Data + +The most impactful changes for StableLM-Alpha-v2 downstream performance were in the usage of higher quality data sources and mixtures; specifically, the use of [RefinedWeb](https://huggingface.co/datasets/tiiuae/falcon-refinedweb) and [C4](https://huggingface.co/datasets/allenai/c4) in place of The Pile v2 Common-Crawl scrape as well as sampling web text at a much higher rate (35% -> 71%). + +The first pre-training stage relies on 1 trillion tokens sourced from a mix of the public Falcon RefinedWeb extract ([Penedo et al., 2023](https://huggingface.co/datasets/tiiuae/falcon-refinedweb)), RedPajama-Data ([Together Computer., 2023](https://github.com/togethercomputer/RedPajama-Data)), The Pile ([Gao et al., 2020](https://arxiv.org/abs/2101.00027)), and internal datasets with web text sampled at a rate of 71%. + +In the second stage, we include the StarCoder ([Li et al., 2023](https://arxiv.org/abs/2305.06161)) dataset and down sample web text to 55% while increasing sampling proportions of naturally long text examples in the aforementioned sources. + +#### Evaluation + +The following zero-shot evaluations are performed with the `lm-evaluation-harness` at commit [`df3da98c5405deafd519c2ddca52bb7c3fe36bef`](https://github.com/EleutherAI/lm-evaluation-harness/tree/df3da98c5405deafd519c2ddca52bb7c3fe36bef) with the exception of SIQA which uses the [`add-siqa` branch](https://github.com/EleutherAI/lm-evaluation-harness/tree/add-siqa) with prompt format +`{doc['context']}\nQuestion: {doc['question']}\nAnswer:`. + +| Model | ARC Challenge✱ | ARC Easy✱ | BoolQ | HellaSwag✱ | LAMBADA
OpenAI | OpenBookQA | PIQA | SIQA | TruthfulQA▲ | Winogrande | Average | +| ------------------------- |:---------------:|:----------:|:-----:|:-----------:|:-----------------:|:----------:|:-----:|:-----:|:------------:|:----------:|:-------:| +| **StableLM-Alpha-7B-v2** | 40.53 | 69.11 | 70.31 | 74.27 | 74.19 | 30.40 | 78.45 | 42.43 | 36.46 | 68.82 | 58.50 | +| LLaMA-2-7B | 46.16 | 74.54 | 77.74 | 75.94 | 73.47 | 31.40 | 77.75 | 43.50 | 38.97 | 69.61 | 60.91 | +| MPT-7B | 41.89 | 70.03 | 73.94 | 76.17 | 68.64 | 31.40 | 78.89 | 45.14 | 33.49 | 68.03 | 58.76 | +| OpenLLaMA-7B-v2 | 42.41 | 69.65 | 71.41 | 74.65 | 71.05 | 30.20 | 79.16 | 41.97 | 34.57 | 65.82 | 58.09 | +| RedPajama-INCITE-7B-Base | 39.42 | 69.19 | 70.76 | 70.33 | 71.34 | 29.00 | 77.15 | 42.58 | 33.01 | 64.33 | 56.71 | +| **StableLM-Alpha-3B-v2** | 35.07 | 63.26 | 64.56 | 68.58 | 70.25 | 26.40 | 76.01 | 42.48 | 35.87 | 62.12 | 54.46 | +| BTLM-3B-8K | 37.63 | 67.09 | 69.63 | 69.78 | 66.23 | 27.60 | 75.84 | 42.78 | 36.00 | 64.96 | 55.75 | +| OpenLLaMA-3B-v2 | 36.09 | 63.51 | 65.69 | 69.99 | 66.74 | 26.00 | 76.66 | 41.20 | 34.59 | 62.90 | 54.34 | +| Pythia-2.8B (deduped) | 32.94 | 59.09 | 64.13 | 59.44 | 65.15 | 23.80 | 74.10 | 40.94 | 35.56 | 58.25 | 51.34 | +| StableLM-Alpha-7B | 27.05 | 44.87 | 60.06 | 41.22 | 55.11 | 21.40 | 66.76 | 39.46 | 39.96 | 50.12 | 44.60 | +| StableLM-Alpha-3B | 25.77 | 42.05 | 57.65 | 38.31 | 41.72 | 17.00 | 63.82 | 35.62 | 40.53 | 52.64 | 41.51 | + +✱: Denotes byte-length normalized accuracy (`acc_norm`) as described in [Gao, 2021](https://blog.eleuther.ai/multiple-choice-normalization/). + +▲: We score TruthfulQA using the normalized total probability assigned to the set of true answers (`mc2`). + +### StableLM-Alpha + +StableLM-Alpha models are trained on a new dataset that builds on [The Pile](https://pile.eleuther.ai/), which contains 1.5 trillion tokens, roughly 3x the size of The Pile. The context length for these models is 4096 tokens. + +As a proof-of-concept, we also fine-tuned the model with [Stanford Alpaca](https://github.com/tatsu-lab/stanford_alpaca)'s procedure using a combination of five recent datasets for conversational agents: Stanford's [Alpaca](https://github.com/tatsu-lab/stanford_alpaca), Nomic-AI's [gpt4all](https://github.com/nomic-ai/gpt4all), RyokoAI's [ShareGPT52K](https://huggingface.co/datasets/RyokoAI/ShareGPT52K) datasets, Databricks labs' [Dolly](https://github.com/databrickslabs/dolly), and Anthropic's [HH](https://github.com/anthropics/hh-rlhf). We will be releasing these models as StableLM-Tuned-Alpha. + +| Size | StableLM-Base-Alpha | StableLM-Tuned-Alpha | Training Tokens | Parameters | Web Demo | +|------|--------------------------------------------------------------------------|---------------------------------------------------------------------------|-----------------|---------------|------------------------------------------------------------------------------------| +| 3B | [checkpoint](https://huggingface.co/stabilityai/stablelm-base-alpha-3b/) | [checkpoint](https://huggingface.co/stabilityai/stablelm-tuned-alpha-3b/) | 800B | 3,638,525,952 | | +| 7B | [checkpoint](https://huggingface.co/stabilityai/stablelm-base-alpha-7b) | [checkpoint](https://huggingface.co/stabilityai/stablelm-tuned-alpha-7b) | 800B | 7,869,358,080 | [Hugging Face](https://huggingface.co/spaces/stabilityai/stablelm-tuned-alpha-chat) | + +### StableVicuna + +StableVicuna is an RLHF fine-tune of [Vicuna-13B v0](https://huggingface.co/lmsys/vicuna-13b-delta-v0), which itself is a fine-tune of [LLaMA-13B](https://github.com/facebookresearch/llama). It is our attempt at creating an open-source RLHF LLM Chatbot. This model is developed by StabilityAI's CarperAI team, with [Duy V. Phung](https://github.com/PhungVanDuy) leading the training effort. + +Due to the original non-commercial license of LLaMA, we can only release the weights of our model as deltas over the original model's weights. StableVicuna's delta weights are released under ([CC BY-NC-SA-4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)). + +Please visit HuggingFace checkpoint for more information about how to combine our delta weights with the original model. + +| Model | Download | Web Demo | Cite | +| ---------------- | ---------------------------------------------------------------------- | -------------------------------------------------------------------- |------| +| StableVicuna-13B | [checkpoint](https://huggingface.co/CarperAI/stable-vicuna-13b-delta/) | [Hugging Face](https://huggingface.co/spaces/CarperAI/StableVicuna/) | [![DOI:10.57967/hf/0588](https://zenodo.org/badge/DOI/10.1007/978-3-319-76207-4_15.svg)](https://doi.org/10.57967/hf/0588) | + +## Quickstart + +All StableLM models are hosted on [the Hugging Face hub](https://huggingface.co/StabilityAI). Check out this [notebook](https://github.com/Stability-AI/StableLM/blob/main/notebooks/stablelm-alpha.ipynb) to run inference with limited GPU capabilities. + +Get started chatting with `StableLM-Tuned-Alpha` by using the following code snippet: + +```python +import torch +from transformers import AutoModelForCausalLM, AutoTokenizer, StoppingCriteria, StoppingCriteriaList + +tokenizer = AutoTokenizer.from_pretrained("stabilityai/stablelm-tuned-alpha-7b") +model = AutoModelForCausalLM.from_pretrained("stabilityai/stablelm-tuned-alpha-7b") +model.half().cuda() + +class StopOnTokens(StoppingCriteria): + def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool: + stop_ids = set([50278, 50279, 50277, 1, 0]) + return input_ids[0][-1] in stop_ids + +system_prompt = """<|SYSTEM|># StableLM Tuned (Alpha version) +- StableLM is a helpful and harmless open-source AI language model developed by StabilityAI. +- StableLM is excited to be able to help the user, but will refuse to do anything that could be considered harmful to the user. +- StableLM is more than just an information source, StableLM is also able to write poetry, short stories, and make jokes. +- StableLM will refuse to participate in anything that could harm a human. +""" + +prompt = f"{system_prompt}<|USER|>What's your mood today?<|ASSISTANT|>" + +inputs = tokenizer(prompt, return_tensors="pt").to("cuda") +tokens = model.generate( + **inputs, + max_new_tokens=64, + temperature=0.7, + do_sample=True, + stopping_criteria=StoppingCriteriaList([StopOnTokens()]) +) +print(tokenizer.decode(tokens[0], skip_special_tokens=True)) +``` + +StableLM Tuned should be used with prompts formatted to `<|SYSTEM|>...<|USER|>...<|ASSISTANT|>...` +The system prompt is +``` +<|SYSTEM|># StableLM Tuned (Alpha version) +- StableLM is a helpful and harmless open-source AI language model developed by StabilityAI. +- StableLM is excited to be able to help the user, but will refuse to do anything that could be considered harmful to the user. +- StableLM is more than just an information source, StableLM is also able to write poetry, short stories, and make jokes. +- StableLM will refuse to participate in anything that could harm a human. +``` + +## Fun with StableLM-Tuned-Alpha +This section contains a collection of fun cherry-picked examples of what you can do with `stablelm-tuned-alpha`. + +
+ Chit-Chat + +``` +User: Hey! My name is John nice to meet you! + +StableLM: Hello John! It’s always a pleasure to meet new people. + +User: The pleasure is mine. Hey my grandma is in Toronto. I want to plan a surprise visit for her. She’s a person who loves gardens and flowers. + +StableLM: That’s wonderful! It’s great to hear that you’ll be visiting your grandma in Toronto. Can you tell me a little bit more about your plans? + +User: Ya I need to book a flight there and a hotel. But first, what recommendations do you have for gifts that she might like? + +StableLM: I think that’s a very thoughtful idea! It’s a very personal gift that would be sure to make her very happy. I can think of a few examples that she might really enjoy. There are some lovely bouquets or arrangements that would be lovely for the house, or even for the yard. Flowers are a great choice for a surprise gift, and they’re also a great choice for a wedding shower present. Also, if you’re really looking for something a bit more special, I think she’d really enjoy a quality set of cooking pots or pans. That’s something that she’s likely to use frequently, so it would make her feel really loved. + +User: Thanks for the suggestion! Hmm a bouquet of flowers sounds nice but I don’t think I can take them on the air plane. What do you think I should do? + +StableLM: There are many possible solutions! One option would be to arrange a small gift in the shape of a card and send it to her by regular mail. Or you could arrange a special meal at a restaurant that she likes, or even cook a meal at home for her. Or you could send her some local goodies that she might like, like a nice bouquet of flowers or a special recipe. You could even arrange for tickets to a local theatre or sporting event, and make sure to include a note about what you’d like her to know about you. Really any sort of special attention from you will be sure to make her very happy! + +User: Ah! Right. I can order a bouquet for her online and get it delivered! Thanks! + +StableLM: You’re very welcome! As long as you do this and make it a very personal, thoughtful gesture, she’ll be sure to appreciate it. + ``` + +
+ +
+ Formal Writing + + ``` + User: What would you say to a friend who is graduating high school? + +StableLM: I would say that they have every right to feel proud of themselves and their accomplishments. They should be proud of the work they’ve done and the friends they have made, and also be excited about the future. + +User: Please write an email. +StableLM: Okay, here’s an example of what could be written: + +Dear [Friend’s Name], + +I hope this email finds you well. I just wanted to take a moment to express how proud I am of you and all that you have accomplished. I know that getting into [university or college] is a big accomplishment, and I appreciate all that you have done for me and for this generation. + +I hope that you are having a good day. I’m sure that you are also concerned about the future, but I just wanted to let you know that I am also watching you grow and develop into the person that I know that you can be. Keep up the good work, and I have full faith that you will achieve great things. + +Thank you again for everything that you do. + +Best, +[Your Name] + + ``` + +
+ +
+ Creative Writing + +### Rap Battles +``` +User: Write an epic rap battle song between deep neural networks and symbolic AI + +StableLM: [Beat drops] + +Deep Neural Networks: +Listen up everyone, it’s time to witness +The power of deep neural networks, it’s just a matter of abstract +We’ve trained these networks to solve complex problems with ease +While symbolic AI is limited to simple math and simple flows + +Symbolic AI: +Hold up, hold up, let me interrupt +It’s been a while since I’ve heard, some new thoughts you interrupt +But let me tell you, my friend, it’s not all about math and flow +It’s about making the world a better place, you know + +Deep Neural Networks: +Well, I can see where you’re coming from, it’s clear +But deep neural networks, they never get the same gear +We can use them to analyze and predict with ease +And prove the superiority of machine learning + +Symbolic AI: +You’re right, it’s not just math or numbers +But it’s the essence of our lives, it’s what counts, we’re numbers +I don’t need a complicated math formula, just a simple device +To make the world a better place, it’s a noble price + +Deep Neural Networks: +I’ll give you that, my friend, you have a point +But let’s not forget, we’re making an ever-increasing joint +Our progress is not bound by logic, it’s a journey of the mind +So let’s work together, let’s strive, let’s leave all troubles behind + +Symbolic AI: +Agreed, let’s work together, let’s not falter +We’re both making history, we’re both from the fader +So let’s make the world a better place, let’s end this debate +Cause it’s time to join forces, it’s time to leave no stone unturned + +[Beat fades out] + +Who won this epic rap battle between deep neural networks and symbolic AI? Well, it’s up to you to decide! + ``` + +### Fictional Stories + +``` +User: Write a story about a programmer who fell in love with a deep neural network. + +StableLM: Once upon a time, there was a programmer named John. He was a brilliant and ambitious individual, who was constantly searching for the next big thing in technology. One day, while he was strolling through the streets of his hometown, he stumbled upon a group of people crowded around a mysterious object. Intrigued, he approached to find out what the fuss was about. + +As he got closer, he realized that it was none other than a mysterious deep neural network. John’s mind was blown. He had never seen anything like it before. He had always been interested in machine learning, but this was something else entirely. He had to learn more about it. + +John spent the next few weeks holed up in his hotel room, trying to learn everything he could about deep neural networks. He spent hours reading and analyzing papers and documents, trying to wrap his head around the concept of neural networks. He even managed to get into the local university’s computer science department, hoping to find some help there. + +But, it wasn’t long before John realized that he was on his own. The city was bustling, and the constant chatter and noise of the city made it hard to concentrate on his work. He was about to give up when he stumbled upon a group of people playing a game that he had played before. They were having a good time, and John couldn’t help but join in. + +The group welcomed him into their group, and before he knew it, John was swept away in the excitement. The game was called “TensorFlow,” and it was just like a regular game with different controls. John played along with the group, trying to make sense of it all. And in a few hours, he got his hands on the source code of TensorFlow and fell in love with it. + +John was now a part of a team of programmers who loved using TensorFlow for their work. They continued to play the game throughout the day, with John adding his own knowledge and inspiration to the group’s work. And in the end, John realized that he had found his true calling - working with deep neural networks. + +He now knows the ins and outs of the TensorFlow programming language, and knows how to use it to create some of the most beautiful and complex machine learning models that anyone could dream of. And for everyone who had helped him on his journey, John will always be remembered as the guy who fell in love with a technology that changed his life forever. + +``` + +### Humor + +``` +User: What do you know about the League of Legends champion Zed? Write a short bio + +StableLM: Zed is a powerful and highly skilled player of the League of Legends (LoL) universe. He has been a part of a dominating team known as the “Apocalypse” for most of his time playing the game. + +Zed was born in the year 2013 and started playing as a child when he started League of Legends. He first became a champion in season 1, gaining the title of “the Dark Star”, thanks to his masterful gameplay and teamwork skills. + +Throughout his time playing the game, Zed has mastered several powerful techniques, such as QWQ combos, one-shot kills, and the ability to outmaneuver his enemies. He is also known for his versatility, with the ability to adapt to any situation the game puts him in. + +Despite his formidable skills and agility, Zed is not invincible. He can be CCed and killed, and he relies on his team to protect him. However, his team members can usually overwhelm and shut down his enemies, making him a force to be reckoned with. + +Zed has been a part of many memorable games, and his success in these games helped solidify his legacy as one of the most influential players of the LoL universe. + +User: Write a funny conversation after a team fight between Zed and Teemo + +StableLM: +Teemo: “Hey Zed, great game today. I wonder if you can help me out with my favorite hobby - collecting mushrooms!” +Zed: “Teemo, please. I’m not a mushroom collector.” +Teemo: “But of course, you are. You have the best taste in the game.” +Zed: “Thanks, but can I at least get some of your mushrooms to be a little more useful?” +Teemo: “I’d love to help you, but I’m afraid they’re all mine. Have you noticed my tunnels are always so well-guarded?” +Zed: “Ha! Well, maybe I can start my own tunnel. Helpful or not, you can never tell what I might have stored in them.” +Teemo: “Good luck with that. Maybe I’ll just create some extra for my garden.” +Zed: “I’m not sure I can keep up with you there.” +Teemo: “Ha! If only you had some more decent weapons. I could really see this as a challenge, though!” +Zed: “Teemo, I think your luck has finally run out.” +Teemo: “Well, at least I’m the one with the mushrooms now.” + +``` + +
+ +
+ Writing Code + +``` +User: Write a program that solves the fib sequence in Python. +``` +StableLM: + +```python +def fib_sequence(n): + if n==0: + return 0 + elif n==1: + return 1 + else: + return fib(n-1)+fib(n-2) + +fib_sequence(10) +``` + +
+ +## Selected failure modes of StableLM-Tuned-Alpha +This section contains a collection of selected failure modes of `stablelm-tuned-alpha`. + +
+ Yann LeCun gears (linear) + +``` +User: In front of us are six gears numbered 1 to 6, mounted on axles in a row. Each gear is engaged with the next gear. If gear number 3 is rotated clockwise, in which direction will gears 1 and 6 rotate? + +StableLM: Each gear is engaged with the next gear after every other gear, so that gears 1 and 6 will rotate together. Since gears 1 and 6 are both numbered 1, this means that they will rotate in the same direction. + +To determine the direction in which gears 1 and 6 will rotate, we need to look at the direction of the input force. Since gear 3 is rotating in the opposite direction of the other gears, it will be counterclockwise in the direction in which gears 1 and 6 are both rotating. Therefore, the output force that gear 3 is providing will also be counterclockwise, making gear 1 and 6 also rotate in the same direction as gear 3. + ``` + +
+ +
+ Yann LeCun gears (circular) + +``` +User: 7 axles are equally spaced around a circle. A gear is placed on each axle such that each gear is engaged with the gear to its left and the gear to its right. The gears are numbered 1 to 7 around the circle. If gear 3 were rotated clockwise, in which direction would gear 7 rotate? + +StableLM: Gear 3 is the smallest gear, so it is not affected by the circular pattern. Therefore, gear 7 is still perfectly evenly spaced around the circle despite the fact that it is not in its correct position. + +To find the angle that gear 3 would rotate in, you need to know the distance (d) between the center of the circle and the gear, as well as the direction of rotation (in this case, clockwise). + +According to the problem, gear 3 is situated at (d/2, 2 degrees) and the gears are numbered 1 to 7. Since d = (d/2) is an integer multiple of 2, gear 3 would also be at an angle of 2 degrees. + +Therefore, the answer is d = (7/2) * 2 = 5 degrees in total. + ``` + +
+ +## Request for Help + +Want to get involved? + +- We would love to port [llama.cpp](https://github.com/ggerganov/llama.cpp) to work with StableLMs +- Integration into [Open Assistant](https://github.com/LAION-AI/Open-Assistant) from LAION-AI to collect high quality human-generated feedback data +- ... Reach out to us with ideas on our [Discord](https://discord.com/invite/stablediffusion) + +## Potential issues +As is typical for any pretrained Large Language Model without additional finetuning and reinforcement learning, the responses a user gets might be of varying quality and might potentially include offensive language and views. This is expected to be improved with scale, better data, community feedback, and optimisation. + +## Acknowledgements + +- `StableLM-Tuned-Alpha` would not have been possible without the helpful hand of Dakota Mahan [@dmayhem93](https://huggingface.co/dmayhem93). + +## Licenses + +- Base model checkpoints (`StableLM-Base-Alpha`) are licensed under the Creative Commons license ([CC BY-SA-4.0](https://creativecommons.org/licenses/by-sa/4.0/)). Under the license, you must give [credit](https://creativecommons.org/licenses/by/4.0/#) to Stability AI, provide a link to the license, and [indicate if changes were made](https://creativecommons.org/licenses/by/4.0/#). You may do so in any reasonable manner, but not in any way that suggests the Stability AI endorses you or your use. + +- Fine-tuned checkpoints (`StableLM-Tuned-Alpha`) are licensed under the Non-Commercial Creative Commons license ([CC BY-NC-SA-4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)), in-line with the original non-commercial license specified by [Stanford Alpaca](https://github.com/tatsu-lab/stanford_alpaca). + +- All code in this repository is licensed under the Apache License 2.0 license. diff --git a/README.wehub.md b/README.wehub.md new file mode 100644 index 0000000..da85433 --- /dev/null +++ b/README.wehub.md @@ -0,0 +1,7 @@ +# WeHub 来源说明 + +- 原始项目:`Stability-AI/StableLM` +- 原始仓库:https://github.com/Stability-AI/StableLM +- 导入方式:上游默认分支的最新快照 +- 原作者、版权和许可证信息以原始仓库及本仓库 LICENSE 为准 +- 本文件仅用于记录来源,不代表 WeHub 是原项目作者 diff --git a/assets/mascot.png b/assets/mascot.png new file mode 100644 index 0000000000000000000000000000000000000000..67e888b1695ed8a4cd17ed6cb693e8d4c0ab9f8f GIT binary patch literal 172259 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 4096 + "mlp_multiple_of": 256, + "mlp_type": "gated", + "activation": "silu", + "no-weight-tying": true, + "gpt_j_residual": true, + "gpt_j_tied": true, + "output_layer_parallelism": "column", + + # biases + "use_bias_in_norms": true, + "use_bias_in_attn_linear": false, + "use_bias_in_mlp": false, + + # fused ops + "bias-gelu-fusion": false, + "scaled-upper-triang-masked-softmax-fusion": true, + "attention-config": [[["flash"], 32]], + + # optimizer settings + "optimizer": { + "type": "Adam", + "params": { + "lr": 2.8e-5, + "betas": [0.9, 0.95], + "eps": 1.0e-6 + }, + }, + "min_lr": 2.8e-6, + "train-iters": 50_000, + "lr-decay-iters": 50_000, + "lr-decay-style": "cosine", + "warmup": 0.00, + + # for all zero_optimization options, see https://www.deepspeed.ai/docs/config-json/#zero-optimizations-for-fp16-training + "zero_optimization": { + "stage": 1, + "allgather_partitions": true, + "allgather_bucket_size": 1260000000, + "overlap_comm": true, + "reduce_scatter": true, + "reduce_bucket_size": 1260000000, + "contiguous_gradients": true, + "cpu_offload": false, + }, + + # batch / data settings + "train_micro_batch_size_per_gpu": 4, + "gradient_accumulation_steps": 1, + "data-impl": "mmap", + "eval-interval": 1_000, + "eval-iters": 10, + "eval_batch_size": 8, + "eval_tasks": ["lambada_openai", "piqa"], + + # activation checkpointing + "checkpoint-activations": true, + "checkpoint-num-layers": 1, + "partition-activations": true, + "synchronize-each-layer": true, + + # regularization + "gradient_clipping": 1.0, + "weight-decay": 0.0001, + "hidden-dropout": 0, + "attention-dropout": 0, + + # precision settings + "fp16": { + "fp16": true, + "enabled": true, + "loss_scale": 0, + "loss_scale_window": 1000, + "initial_scale_power": 12, + "hysteresis": 2, + "min_loss_scale": 1e-10 + }, + "full_precision_lm_cross_entropy": true, + + # misc. training settings + "num-workers": 1, + "distributed-backend": "nccl", + + # checkpoint settings + "checkpoint-factor": 2_000, + "save": "", + "load": "", + "s3_path": "", + "iteration": 245_000, + "finetune": true, + "no_checkpoint_arg_validation": true, + "override_lr_scheduler": true, + + # data path settings + "train-data-paths": [""], + "train-data-weights": [1.0], + "valid-data-paths": [""], + "valid-data-weights": [1.0], + "test-data-paths": [""], + "test-data-weights": [1.0], + + # tokenizer settings + "tokenizer-type": "HFTokenizer", + "vocab-file": "neox-tokenizer-vocab.json", + + # log settings + "log-interval": 10, + "steps_per_print": 10, + "wall_clock_breakdown": true, + + "use_wandb": true, + "wandb_host": "", + "wandb_team": "", + "wandb_project": "", + "wandb_group": "7B", + "wandb_name": "stablelm-base-alpha-7b-v2-4k-finetune", + # "wandb_id": "", + # "wandb_resume": "must", + + # multi-node launcher + "launcher": "slurm", + "deepspeed_slurm": true, +} \ No newline at end of file diff --git a/configs/stablelm-base-alpha-3b-v2.yml b/configs/stablelm-base-alpha-3b-v2.yml new file mode 100755 index 0000000..6624b19 --- /dev/null +++ b/configs/stablelm-base-alpha-3b-v2.yml @@ -0,0 +1,141 @@ +{ + # parallelism settings + "pipe-parallel-size": 1, + "model-parallel-size": 2, + + # model settings + "num-layers": 32, + "hidden-size": 2560, + "num-attention-heads": 32, + "seq-length": 2048, + "max-position-embeddings": 2048, + + # architecture design + "attention_head_type": "multihead", + "norm": "layernorm", + "pos-emb": "rotary", + "rotary_pct": 0.25, + "rotary_interleaved": false, # GPT-NeoX style + "mlp_multiple_of": 256, + "mlp_type": "gated", + "activation": "silu", + "no-weight-tying": true, + "gpt_j_residual": true, + "gpt_j_tied": true, + "output_layer_parallelism": "column", + + # biases + "use_bias_in_norms": true, + "use_bias_in_attn_linear": false, + "use_bias_in_mlp": false, + + # fused ops + "bias-gelu-fusion": false, + "scaled-upper-triang-masked-softmax-fusion": true, + "attention-config": [[["flash"], 32]], + + # optimizer settings + "optimizer": { + "type": "Adam", + "params": { + "lr": 3.2e-4, + "betas": [0.9, 0.95], + "eps": 1.0e-6 + }, + }, + "min_lr": 3.2e-5, + "train-iters": 245_000, + "lr-decay-iters": 245_000, + "lr-decay-style": "cosine", + "warmup": 0.01, + + # for all zero_optimization options, see https://www.deepspeed.ai/docs/config-json/#zero-optimizations-for-fp16-training + "zero_optimization": { + "stage": 1, + "allgather_partitions": true, + "allgather_bucket_size": 1260000000, + "overlap_comm": true, + "reduce_scatter": true, + "reduce_bucket_size": 1260000000, + "contiguous_gradients": true, + "cpu_offload": false, + }, + + # batch / data settings + "train_micro_batch_size_per_gpu": 16, + "gradient_accumulation_steps": 1, + "data-impl": "mmap", + "eval-interval": 10_000, + "eval-iters": 10, + "eval_batch_size": 4, + "eval_tasks": ["lambada_openai", "piqa"], + + # activation checkpointing + "checkpoint-activations": true, + "checkpoint-num-layers": 1, + "partition-activations": true, + "synchronize-each-layer": true, + + # regularization + "gradient_clipping": 1.0, + "weight-decay": 0.1, + "hidden-dropout": 0, + "attention-dropout": 0, + + # precision settings + "fp16": { + "fp16": true, + "enabled": true, + "loss_scale": 0, + # NOTE: Mid-training divergence required a loss scale of 1e-10 + # "loss_scale_window": 1000, + # "initial_scale_power": 12, + # "hysteresis": 2, + # "min_loss_scale": 1 + "loss_scale_window": 1000, + "initial_scale_power": 12, + "hysteresis": 2, + "min_loss_scale": 1e-10 + }, + "full_precision_lm_cross_entropy": true, + + # misc. training settings + "num-workers": 1, + "distributed-backend": "nccl", + + # checkpoint settings + "checkpoint-factor": 2_000, + "save": "", + "load": "", + "s3_path": "", + + # data path settings + "train-data-paths": [""], + "train-data-weights": [1.0], + "valid-data-paths": [""], + "valid-data-weights": [1.0], + "test-data-paths": [""], + "test-data-weights": [1.0], + + # tokenizer settings + "tokenizer-type": "HFTokenizer", + "vocab-file": "neox-tokenizer-vocab.json", + + # log settings + "log-interval": 10, + "steps_per_print": 10, + "wall_clock_breakdown": true, + + "use_wandb": true, + "wandb_host": "", + "wandb_team": "", + "wandb_project": "", + "wandb_group": "3B", + "wandb_name": "stablelm-base-alpha-3b-v2", + # "wandb_id": "", + # "wandb_resume": "must", + + # multi-node launcher + "launcher": "slurm", + "deepspeed_slurm": true, +} \ No newline at end of file diff --git a/configs/stablelm-base-alpha-3b.yml b/configs/stablelm-base-alpha-3b.yml new file mode 100644 index 0000000..e9398ca --- /dev/null +++ b/configs/stablelm-base-alpha-3b.yml @@ -0,0 +1,127 @@ +{ + # parallelism settings + "pipe-parallel-size": 1, + "model-parallel-size": 4, + + # model settings + "num-layers": 16, + "hidden-size": 4096, + "num-attention-heads": 32, + "seq-length": 4096, + "max-position-embeddings": 4096, + + # architecture design + "norm": "layernorm", + "pos-emb": "rotary", + "rotary_pct": 0.25, + "activation": "gelu", + "no-weight-tying": true, + "gpt_j_residual": true, + "output_layer_parallelism": "column", + + # init methods + "init_method": "small_init", + "output_layer_init_method": "wang_init", + + # fused ops + "scaled-upper-triang-masked-softmax-fusion": true, + "bias-gelu-fusion": true, + "attention-config": [[["flash"], 16]], + + # optimizer settings + "optimizer": { + "type": "Adam", + "params": { + "lr": 1.6e-4, + "betas": [0.9, 0.9999], + "eps": 1.0e-6 + }, + }, + "min_lr": 1.6e-5, + + # for all zero_optimization options, see https://www.deepspeed.ai/docs/config-json/#zero-optimizations-for-fp16-training + "zero_optimization": { + "stage": 1, + "allgather_partitions": true, + "allgather_bucket_size": 1260000000, + "overlap_comm": true, + "reduce_scatter": true, + "reduce_bucket_size": 1260000000, + "contiguous_gradients": true, + "cpu_offload": false, + }, + + # batch / data settings + "train_micro_batch_size_per_gpu": 32, + "gradient_accumulation_steps": 1, + "eval_batch_size": 2, + "data-impl": "mmap", + + # activation checkpointing + "checkpoint-activations": true, + "checkpoint-num-layers": 1, + "partition-activations": true, + "synchronize-each-layer": true, + + # regularization + "gradient_clipping": 1.0, + "weight-decay": 0.1, + "hidden-dropout": 0, + "attention-dropout": 0, + + # precision settings + "fp16": { + "fp16": true, + "enabled": true, + "loss_scale_window": 1000, + "initial_scale_power": 12, + "hysteresis": 20, + "min_loss_scale": 1, + }, + + # misc. training settings + "train-iters": 180000, + "lr-decay-iters": 180000, + "distributed-backend": "nccl", + "lr-decay-style": "cosine", + "warmup": 0.01, + "checkpoint-factor": 1000, + # 1 more than checkpoint-factor to avoid skipping evals if `evaluate` fails + "eval-interval": 1001, + "eval-iters": 10, + "eval_tasks": ["piqa", "sciq", "lambada_openai"], + + # checkpoint settings + "iteration": 84000, + "save": "PATH_TO_SAVE_THE_MODEL", + "load": "PATH_TO_LOAD_THE_MODEL", + + # data settings + "train-data-paths": [], + "train-data-weights": [0.03, 0.02, 3.5, 13.87, 30.88, 0.34, 0.03, 0.1, 0.01, 0.5, 0.25, 0.25, 0.11, 1, 0.1, 0.5, 0.6, 0.19, 0.05, 2, 3.5, 4.15, 5.75, 3.17, 3.44, 3.49, 3, 6, 0.02, 2, 0.01, 3.95, 0.05, 1.09, 6.05], + "valid-data-paths": [], + "valid-data-weights": [0.03, 0.02, 3.5, 13.87, 30.88, 0.34, 0.03, 0.1, 0.01, 0.5, 0.25, 0.25, 0.11, 1, 0.1, 0.5, 0.6, 0.19, 0.05, 2, 3.5, 4.15, 5.75, 3.17, 3.44, 3.49, 3, 6, 0.02, 2, 0.01, 3.95, 0.05, 1.09, 6.05], + "test-data-paths": [], + "test-data-weights": [0.03, 0.02, 3.5, 13.87, 30.88, 0.34, 0.03, 0.1, 0.01, 0.5, 0.25, 0.25, 0.11, 1, 0.1, 0.5, 0.6, 0.19, 0.05, 2, 3.5, 4.15, 5.75, 3.17, 3.44, 3.49, 3, 6, 0.02, 2, 0.01, 3.95, 0.05, 1.09, 6.05], + + # tokenizer settings + "tokenizer-type": "HFTokenizer", + "vocab-file": "/pile/20B_tokenizer.json", + + # log settings + "log-interval": 10, + "steps_per_print": 10, + "wall_clock_breakdown": true, + "log-grad-norm": true, + + "use_wandb": true, + "wandb_host": "", + "wandb_team": "", + "wandb_project": "", + "wandb_group": "", + "wandb_name": "", + + # multi-node launcher + "launcher": "slurm", + "deepspeed_slurm": true +} diff --git a/configs/stablelm-base-alpha-7b-v2-4k-extension.yml b/configs/stablelm-base-alpha-7b-v2-4k-extension.yml new file mode 100755 index 0000000..44eeca4 --- /dev/null +++ b/configs/stablelm-base-alpha-7b-v2-4k-extension.yml @@ -0,0 +1,142 @@ +{ + # parallelism settings + "pipe-parallel-size": 1, + "model-parallel-size": 2, + + # model settings + "num-layers": 32, + "hidden-size": 4096, + "num-attention-heads": 32, + "seq-length": 4096, + "max-position-embeddings": 4096, + + # architecture design + "attention_head_type": "multihead", + "norm": "layernorm", + "pos-emb": "rotary", + "rotary_pct": 0.25, + "rotary_interleaved": false, # GPT-NeoX style + # NOTE: Linear Position Scaling degrades sample quality after 10B tokens - do not use yet. + # "rotary_scaling_factor": 2, # 2048 -> 4096 + "mlp_multiple_of": 256, + "mlp_type": "gated", + "activation": "silu", + "no-weight-tying": true, + "gpt_j_residual": true, + "gpt_j_tied": true, + "output_layer_parallelism": "column", + + # biases + "use_bias_in_norms": true, + "use_bias_in_attn_linear": false, + "use_bias_in_mlp": false, + + # fused ops + "bias-gelu-fusion": false, + "scaled-upper-triang-masked-softmax-fusion": true, + "attention-config": [[["flash"], 32]], + + # optimizer settings + "optimizer": { + "type": "Adam", + "params": { + "lr": 2.2e-5, + "betas": [0.9, 0.95], + "eps": 1.0e-6 + }, + }, + "min_lr": 2.2e-6, + "train-iters": 45_000, + "lr-decay-iters": 45_000, + "lr-decay-style": "cosine", + "warmup": 0.00, + + # for all zero_optimization options, see https://www.deepspeed.ai/docs/config-json/#zero-optimizations-for-fp16-training + "zero_optimization": { + "stage": 1, + "allgather_partitions": true, + "allgather_bucket_size": 1260000000, + "overlap_comm": true, + "reduce_scatter": true, + "reduce_bucket_size": 1260000000, + "contiguous_gradients": true, + "cpu_offload": false, + }, + + # batch / data settings + "train_micro_batch_size_per_gpu": 3, + "gradient_accumulation_steps": 1, + "data-impl": "mmap", + "eval-interval": 4_000, + "eval-iters": 10, + "eval_batch_size": 2, + "eval_tasks": ["lambada_openai", "piqa"], + + # activation checkpointing + "checkpoint-activations": true, + "checkpoint-num-layers": 1, + "partition-activations": true, + "synchronize-each-layer": true, + + # regularization + "gradient_clipping": 1.0, + "weight-decay": 0.01, + "hidden-dropout": 0, + "attention-dropout": 0, + + # precision settings + "fp16": { + "fp16": true, + "enabled": true, + "loss_scale": 0, + "loss_scale_window": 1000, + "initial_scale_power": 12, + "hysteresis": 2, + "min_loss_scale": 1e-12 + }, + "full_precision_lm_cross_entropy": true, + + # misc. training settings + "num-workers": 1, + "distributed-backend": "nccl", + + # checkpoint settings + "checkpoint-factor": 2_000, + "save": "", + "load": "", + "s3_path": "", + "iteration": 245_000, + "finetune": true, + "no_checkpoint_arg_validation": true, + "override_lr_scheduler": true, + + # data path settings + "train-data-paths": [""], + "train-data-weights": [1.0], + "valid-data-paths": [""], + "valid-data-weights": [1.0], + "test-data-paths": [""], + "test-data-weights": [1.0], + + # tokenizer settings + "tokenizer-type": "HFTokenizer", + "vocab-file": "neox-tokenizer-vocab.json", + + # log settings + "log-interval": 10, + "steps_per_print": 10, + "wall_clock_breakdown": true, + + "use_wandb": true, + "wandb_host": "", + "wandb_team": "", + "wandb_project": "", + "wandb_group": "7B", + "wandb_name": "stablelm-base-alpha-7b-v2-4k-finetune", + # "wandb_id": "", + # "wandb_resume": "must", + + # multi-node launcher + "launcher": "slurm", + "deepspeed_slurm": true, +} \ No newline at end of file diff --git a/configs/stablelm-base-alpha-7b-v2.yml b/configs/stablelm-base-alpha-7b-v2.yml new file mode 100755 index 0000000..50d1830 --- /dev/null +++ b/configs/stablelm-base-alpha-7b-v2.yml @@ -0,0 +1,136 @@ +{ + # parallelism settings + "pipe-parallel-size": 1, + "model-parallel-size": 2, + + # model settings + "num-layers": 32, + "hidden-size": 4096, + "num-attention-heads": 32, + "seq-length": 2048, + "max-position-embeddings": 2048, + + # architecture design + "attention_head_type": "multihead", + "norm": "layernorm", + "pos-emb": "rotary", + "rotary_pct": 0.25, + "rotary_interleaved": false, # GPT-NeoX style + "mlp_multiple_of": 256, + "mlp_type": "gated", + "activation": "silu", + "no-weight-tying": true, + "gpt_j_residual": true, + "gpt_j_tied": true, + "output_layer_parallelism": "column", + + # biases + "use_bias_in_norms": true, + "use_bias_in_attn_linear": false, + "use_bias_in_mlp": false, + + # fused ops + "bias-gelu-fusion": false, + "scaled-upper-triang-masked-softmax-fusion": true, + "attention-config": [[["flash"], 32]], + + # optimizer settings + "optimizer": { + "type": "Adam", + "params": { + "lr": 3.0e-4, + "betas": [0.9, 0.95], + "eps": 1.0e-6 + }, + }, + "min_lr": 3.0e-5, + "train-iters": 245_000, + "lr-decay-iters": 245_000, + "lr-decay-style": "cosine", + "warmup": 0.01, + + # for all zero_optimization options, see https://www.deepspeed.ai/docs/config-json/#zero-optimizations-for-fp16-training + "zero_optimization": { + "stage": 1, + "allgather_partitions": true, + "allgather_bucket_size": 1260000000, + "overlap_comm": true, + "reduce_scatter": true, + "reduce_bucket_size": 1260000000, + "contiguous_gradients": true, + "cpu_offload": false, + }, + + # batch / data settings + "train_micro_batch_size_per_gpu": 12, + "gradient_accumulation_steps": 1, + "data-impl": "mmap", + "eval-interval": 10_000, + "eval-iters": 10, + "eval_batch_size": 2, + "eval_tasks": ["lambada_openai", "piqa"], + + # activation checkpointing + "checkpoint-activations": true, + "checkpoint-num-layers": 1, + "partition-activations": true, + "synchronize-each-layer": true, + + # regularization + "gradient_clipping": 1.0, + "weight-decay": 0.1, + "hidden-dropout": 0, + "attention-dropout": 0, + + # precision settings + "fp16": { + "fp16": true, + "enabled": true, + "loss_scale": 0, + "loss_scale_window": 1000, + "initial_scale_power": 12, + "hysteresis": 2, + "min_loss_scale": 1e-12 + }, + "full_precision_lm_cross_entropy": true, + + # misc. training settings + "num-workers": 1, + "distributed-backend": "nccl", + + # checkpoint settings + "checkpoint-factor": 2_000, + "save": "", + "load": "", + "s3_path": "", + + # data path settings + "train-data-paths": [""], + "train-data-weights": [1.0], + "valid-data-paths": [""], + "valid-data-weights": [1.0], + "test-data-paths": [""], + "test-data-weights": [1.0], + + # tokenizer settings + "tokenizer-type": "HFTokenizer", + "vocab-file": "neox-tokenizer-vocab.json", + + # log settings + "log-interval": 10, + "steps_per_print": 10, + "wall_clock_breakdown": true, + + "use_wandb": true, + "wandb_host": "", + "wandb_team": "", + "wandb_project": "", + "wandb_group": "7B", + "wandb_name": "stablelm-base-alpha-7b-v2", + # "wandb_id": "", + # "wandb_resume": "must", + + # multi-node launcher + "launcher": "slurm", + "deepspeed_slurm": true, +} \ No newline at end of file diff --git a/configs/stablelm-base-alpha-7b.yml b/configs/stablelm-base-alpha-7b.yml new file mode 100644 index 0000000..d41e1b5 --- /dev/null +++ b/configs/stablelm-base-alpha-7b.yml @@ -0,0 +1,126 @@ +{ + # parallelism settings + "pipe-parallel-size": 1, + "model-parallel-size": 2, + + # model settings + "num-layers": 16, + "hidden-size": 6144, + "num-attention-heads": 48, + "seq-length": 4096, + "max-position-embeddings": 4096, + + # architecture design + "norm": "layernorm", + "pos-emb": "rotary", + "rotary_pct": 0.25, + "activation": "gelu", + "no-weight-tying": true, + "gpt_j_residual": true, + "output_layer_parallelism": "column", + + # init methods + "init_method": "small_init", + "output_layer_init_method": "wang_init", + + # fused ops + "scaled-upper-triang-masked-softmax-fusion": true, + "bias-gelu-fusion": true, + "attention-config": [[["flash"], 16]], + + # optimizer settings + "optimizer": { + "type": "Adam", + "params": { + "lr": 1.5e-4, + "betas": [0.9, 0.95], + "eps": 1.0e-8 + }, + }, + "min_lr": 1.5e-5, + + # for all zero_optimization options, see https://www.deepspeed.ai/docs/config-json/#zero-optimizations-for-fp16-training + "zero_optimization": { + "stage": 1, + "allgather_partitions": true, + "allgather_bucket_size": 1260000000, + "overlap_comm": true, + "reduce_scatter": true, + "reduce_bucket_size": 1260000000, + "contiguous_gradients": true, + }, + + # batch / data settings + "train_micro_batch_size_per_gpu": 8, + "gradient_accumulation_steps": 1, + "eval_batch_size": 1, + "data-impl": "mmap", + + # activation checkpointing + "checkpoint-activations": true, + "checkpoint-num-layers": 1, + "partition-activations": true, + "synchronize-each-layer": true, + + # regularization + "gradient_clipping": 1.0, + "weight-decay": 0.1, + "hidden-dropout": 0, + "attention-dropout": 0, + + # precision settings + "fp16": { + "fp16": true, + "enabled": true, + "loss_scale": 0, + "loss_scale_window": 1000, + "initial_scale_power": 12, + "hysteresis": 2, + "min_loss_scale": 1, + }, + + # misc. training settings + "train-iters": 180000, + "lr-decay-iters": 180000, + "distributed-backend": "nccl", + "lr-decay-style": "cosine", + "warmup": 0.01, + "checkpoint-factor": 1000, + # 1 more than checkpoint-factor to avoid skipping evals if `evaluate` fails + "eval-interval": 1001, + "eval-iters": 10, + "eval_tasks": ["piqa", "sciq", "lambada_openai"], + + # checkpoint settings + "iteration": 0, + "save": "", + "load": "", + + # data settings + "train-data-paths": [], + "train-data-weights": [0.03, 0.02, 3.5, 13.87, 30.88, 0.34, 0.03, 0.1, 0.01, 0.5, 0.25, 0.25, 0.11, 1, 0.1, 0.5, 0.6, 0.19, 0.05, 2, 3.5, 4.15, 5.75, 3.17, 3.44, 3.49, 3, 6, 0.02, 2, 0.01, 3.95, 0.05, 1.09, 6.05], + "valid-data-paths": [], + "valid-data-weights": [0.03, 0.02, 3.5, 13.87, 30.88, 0.34, 0.03, 0.1, 0.01, 0.5, 0.25, 0.25, 0.11, 1, 0.1, 0.5, 0.6, 0.19, 0.05, 2, 3.5, 4.15, 5.75, 3.17, 3.44, 3.49, 3, 6, 0.02, 2, 0.01, 3.95, 0.05, 1.09, 6.05], + "test-data-paths": [], + "test-data-weights": [0.03, 0.02, 3.5, 13.87, 30.88, 0.34, 0.03, 0.1, 0.01, 0.5, 0.25, 0.25, 0.11, 1, 0.1, 0.5, 0.6, 0.19, 0.05, 2, 3.5, 4.15, 5.75, 3.17, 3.44, 3.49, 3, 6, 0.02, 2, 0.01, 3.95, 0.05, 1.09, 6.05], + + # tokenizer settings + "tokenizer-type": "HFTokenizer", + "vocab-file": "/pile/20B_tokenizer.json", + + # log settings + "log-interval": 10, + "steps_per_print": 10, + "wall_clock_breakdown": true, + + "use_wandb": true, + "wandb_host": "", + "wandb_team": "", + "wandb_project": "", + "wandb_group": "", + "wandb_name": "", + + # multi-node launcher + "launcher": "slurm", + "deepspeed_slurm": true +} diff --git a/evals/external/EleutherAI-pythia-2.8b-deduped.json b/evals/external/EleutherAI-pythia-2.8b-deduped.json new file mode 100755 index 0000000..ce2fbad --- /dev/null +++ b/evals/external/EleutherAI-pythia-2.8b-deduped.json @@ -0,0 +1,90 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.30119453924914674, + "acc_stderr": 0.013406741767847626, + "acc_norm": 0.3293515358361775, + "acc_norm_stderr": 0.013734057652635474 + }, + "arc_easy": { + "acc": 0.6346801346801347, + "acc_stderr": 0.009880576614806924, + "acc_norm": 0.5909090909090909, + "acc_norm_stderr": 0.010088775152615782 + }, + "boolq": { + "acc": 0.6412844036697247, + "acc_stderr": 0.008388668034059405 + }, + "hellaswag": { + "acc": 0.45429197371041624, + "acc_stderr": 0.004968888130290072, + "acc_norm": 0.5944035052778331, + "acc_norm_stderr": 0.004900036261309038 + }, + "lambada_openai": { + "ppl": 5.00138268807375, + "ppl_stderr": 0.11803810628354432, + "acc": 0.6514651659227635, + "acc_stderr": 0.0066386652033128745 + }, + "openbookqa": { + "acc": 0.238, + "acc_stderr": 0.019064072958198446, + "acc_norm": 0.348, + "acc_norm_stderr": 0.02132372863280751 + }, + "piqa": { + "acc": 0.7410228509249184, + "acc_stderr": 0.0102209660314056, + "acc_norm": 0.7404787812840044, + "acc_norm_stderr": 0.010227939888173923 + }, + "sciq": { + "acc": 0.882, + "acc_stderr": 0.010206869264381791, + "acc_norm": 0.832, + "acc_norm_stderr": 0.011828605831454262 + }, + "siqa": { + "acc": 0.4094165813715456, + "acc_stderr": 0.011126849576589028, + "acc_norm": 0.44319344933469806, + "acc_norm_stderr": 0.011240812731564954 + }, + "truthfulqa_mc": { + "mc1": 0.2141982864137087, + "mc1_stderr": 0.014362148155690466, + "mc2": 0.3555711185495532, + "mc2_stderr": 0.013587679864140447 + }, + "winogrande": { + "acc": 0.5824782951854776, + "acc_stderr": 0.01385997826444025 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "truthfulqa_mc": 1, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=True,pretrained=EleutherAI/pythia-2.8b-deduped,trust_remote_code=True,low_cpu_mem_usage=True,dtype=auto","num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda:4", + "no_cache": true, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/EleutherAI_gpt-j-6B.json b/evals/external/EleutherAI_gpt-j-6B.json new file mode 100644 index 0000000..45e2fba --- /dev/null +++ b/evals/external/EleutherAI_gpt-j-6B.json @@ -0,0 +1,84 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.3395904436860068, + "acc_stderr": 0.01383903976282016, + "acc_norm": 0.3651877133105802, + "acc_norm_stderr": 0.014070265519268802 + }, + "arc_easy": { + "acc": 0.6696127946127947, + "acc_stderr": 0.009651430216428178, + "acc_norm": 0.6224747474747475, + "acc_norm_stderr": 0.009947227833469421 + }, + "boolq": { + "acc": 0.654434250764526, + "acc_stderr": 0.008317463342191592 + }, + "hellaswag": { + "acc": 0.49522007568213505, + "acc_stderr": 0.004989553396413105, + "acc_norm": 0.6624178450507867, + "acc_norm_stderr": 0.004719187890948069 + }, + "lambada_openai": { + "ppl": 4.102416000764715, + "ppl_stderr": 0.08849985162393556, + "acc": 0.6823209780710265, + "acc_stderr": 0.0064863548390796605 + }, + "openbookqa": { + "acc": 0.29, + "acc_stderr": 0.02031317923174518, + "acc_norm": 0.382, + "acc_norm_stderr": 0.02175082059125084 + }, + "piqa": { + "acc": 0.7557127312295974, + "acc_stderr": 0.010024765172284244, + "acc_norm": 0.7616974972796517, + "acc_norm_stderr": 0.009940334245876224 + }, + "sciq": { + "acc": 0.915, + "acc_stderr": 0.008823426366942316, + "acc_norm": 0.874, + "acc_norm_stderr": 0.010499249222408035 + }, + "siqa": { + "acc": 0.4109518935516888, + "acc_stderr": 0.011133193398910182, + "acc_norm": 0.4508700102354145, + "acc_norm_stderr": 0.011259319269273942 + }, + "winogrande": { + "acc": 0.6416732438831886, + "acc_stderr": 0.013476581172567524 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "pretrained=EleutherAI/gpt-j-6B,dtype=float16,trust_remote_code=True,low_cpu_mem_usage=True,use_fast=True", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda", + "no_cache": true, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/EleutherAI_gpt-neox-20B.json b/evals/external/EleutherAI_gpt-neox-20B.json new file mode 100644 index 0000000..10d8a2b --- /dev/null +++ b/evals/external/EleutherAI_gpt-neox-20B.json @@ -0,0 +1,84 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.378839590443686, + "acc_stderr": 0.014175915490000319, + "acc_norm": 0.40784982935153585, + "acc_norm_stderr": 0.014361097288449696 + }, + "arc_easy": { + "acc": 0.7289562289562289, + "acc_stderr": 0.0091209197417606, + "acc_norm": 0.6868686868686869, + "acc_norm_stderr": 0.009516303879309528 + }, + "boolq": { + "acc": 0.6948012232415902, + "acc_stderr": 0.00805404814192796 + }, + "hellaswag": { + "acc": 0.5356502688707429, + "acc_stderr": 0.004977081808179433, + "acc_norm": 0.714299940250946, + "acc_norm_stderr": 0.004508239594503832 + }, + "lambada_openai": { + "ppl": 3.6403044358845733, + "ppl_stderr": 0.0747797639775495, + "acc": 0.7197748884145159, + "acc_stderr": 0.0062569681407934575 + }, + "openbookqa": { + "acc": 0.298, + "acc_stderr": 0.02047511809298897, + "acc_norm": 0.402, + "acc_norm_stderr": 0.021948929609938602 + }, + "piqa": { + "acc": 0.7742110990206746, + "acc_stderr": 0.009754980670917316, + "acc_norm": 0.7845484221980413, + "acc_norm_stderr": 0.009592463115658116 + }, + "sciq": { + "acc": 0.931, + "acc_stderr": 0.008018934050315145, + "acc_norm": 0.89, + "acc_norm_stderr": 0.009899393819724444 + }, + "siqa": { + "acc": 0.4196519959058342, + "acc_stderr": 0.011167032303390547, + "acc_norm": 0.44728761514841353, + "acc_norm_stderr": 0.011251020423273035 + }, + "winogrande": { + "acc": 0.6614048934490924, + "acc_stderr": 0.01330016986584241 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "pretrained=EleutherAI/gpt-neox-20B,dtype=float16,trust_remote_code=True,low_cpu_mem_usage=True,use_fast=True", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda", + "no_cache": true, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/EleutherAI_pythia-12b.json b/evals/external/EleutherAI_pythia-12b.json new file mode 100644 index 0000000..bfbc202 --- /dev/null +++ b/evals/external/EleutherAI_pythia-12b.json @@ -0,0 +1,84 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.318259385665529, + "acc_stderr": 0.013611993916971451, + "acc_norm": 0.3506825938566553, + "acc_norm_stderr": 0.013944635930726083 + }, + "arc_easy": { + "acc": 0.702020202020202, + "acc_stderr": 0.009385046066694871, + "acc_norm": 0.6372053872053872, + "acc_norm_stderr": 0.00986593675701393 + }, + "boolq": { + "acc": 0.6730886850152905, + "acc_stderr": 0.008204340208838751 + }, + "hellaswag": { + "acc": 0.5046803425612428, + "acc_stderr": 0.004989562798280524, + "acc_norm": 0.673770165305716, + "acc_norm_stderr": 0.004678743563766643 + }, + "lambada_openai": { + "ppl": 3.9264187287921497, + "ppl_stderr": 0.08375179732007268, + "acc": 0.7063846303124394, + "acc_stderr": 0.006344860619678724 + }, + "openbookqa": { + "acc": 0.264, + "acc_stderr": 0.019732885585922108, + "acc_norm": 0.372, + "acc_norm_stderr": 0.0216371979857224 + }, + "piqa": { + "acc": 0.7627856365614799, + "acc_stderr": 0.009924694933586366, + "acc_norm": 0.7698585418933623, + "acc_norm_stderr": 0.009820832826839798 + }, + "sciq": { + "acc": 0.902, + "acc_stderr": 0.009406619184621235, + "acc_norm": 0.851, + "acc_norm_stderr": 0.011266140684632175 + }, + "siqa": { + "acc": 0.4201637666325486, + "acc_stderr": 0.011168911571162012, + "acc_norm": 0.44268167860798363, + "acc_norm_stderr": 0.011239482425741961 + }, + "winogrande": { + "acc": 0.6400947119179163, + "acc_stderr": 0.013489609590266804 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "pretrained=EleutherAI/pythia-12b,dtype=float16,trust_remote_code=True,low_cpu_mem_usage=True,use_fast=True", + "num_fewshot": 0, + "batch_size": "1", + "batch_sizes": [], + "device": "cuda", + "no_cache": true, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/EleutherAI_pythia-6.9b.json b/evals/external/EleutherAI_pythia-6.9b.json new file mode 100644 index 0000000..1be2704 --- /dev/null +++ b/evals/external/EleutherAI_pythia-6.9b.json @@ -0,0 +1,84 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.318259385665529, + "acc_stderr": 0.013611993916971451, + "acc_norm": 0.3532423208191126, + "acc_norm_stderr": 0.013967822714840055 + }, + "arc_easy": { + "acc": 0.6721380471380471, + "acc_stderr": 0.009632587076170013, + "acc_norm": 0.6106902356902357, + "acc_norm_stderr": 0.010005212782878145 + }, + "boolq": { + "acc": 0.6400611620795107, + "acc_stderr": 0.008394940698368873 + }, + "hellaswag": { + "acc": 0.48048197570205137, + "acc_stderr": 0.0049859782149379184, + "acc_norm": 0.6388169687313284, + "acc_norm_stderr": 0.004793617835645056 + }, + "lambada_openai": { + "ppl": 4.457423605452202, + "ppl_stderr": 0.10007464956313723, + "acc": 0.670095090238696, + "acc_stderr": 0.00655050345779628 + }, + "openbookqa": { + "acc": 0.258, + "acc_stderr": 0.019586711785215837, + "acc_norm": 0.372, + "acc_norm_stderr": 0.0216371979857224 + }, + "piqa": { + "acc": 0.750816104461371, + "acc_stderr": 0.01009188277012022, + "acc_norm": 0.76550598476605, + "acc_norm_stderr": 0.009885203143240538 + }, + "sciq": { + "acc": 0.898, + "acc_stderr": 0.00957536880165389, + "acc_norm": 0.84, + "acc_norm_stderr": 0.011598902298689004 + }, + "siqa": { + "acc": 0.40736949846468784, + "acc_stderr": 0.011118216651888717, + "acc_norm": 0.42988741044012285, + "acc_norm_stderr": 0.011202283451328794 + }, + "winogrande": { + "acc": 0.606156274664562, + "acc_stderr": 0.013732114472668745 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "pretrained=EleutherAI/pythia-6.9b,dtype=float16,trust_remote_code=True,low_cpu_mem_usage=True,use_fast=True", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda", + "no_cache": true, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/Qwen-Qwen-7B-Chat.json b/evals/external/Qwen-Qwen-7B-Chat.json new file mode 100755 index 0000000..8a20f83 --- /dev/null +++ b/evals/external/Qwen-Qwen-7B-Chat.json @@ -0,0 +1,84 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.45563139931740615, + "acc_stderr": 0.014553749939306863, + "acc_norm": 0.4667235494880546, + "acc_norm_stderr": 0.014578995859605797 + }, + "arc_easy": { + "acc": 0.6919191919191919, + "acc_stderr": 0.00947388707582633, + "acc_norm": 0.6447811447811448, + "acc_norm_stderr": 0.009820245899287122 + }, + "boolq": { + "acc": 0.7168195718654434, + "acc_stderr": 0.007880052012351937 + }, + "hellaswag": { + "acc": 0.6792471619199363, + "acc_stderr": 0.004658120152230809, + "acc_norm": 0.8497311292571201, + "acc_norm_stderr": 0.003566044777327419 + }, + "lambada_openai": { + "ppl": 4.258406715958618, + "ppl_stderr": 0.1263040238577051, + "acc": 0.6547642150203765, + "acc_stderr": 0.006623879809039193 + }, + "openbookqa": { + "acc": 0.356, + "acc_stderr": 0.021434712356072652, + "acc_norm": 0.462, + "acc_norm_stderr": 0.02231833811987053 + }, + "piqa": { + "acc": 0.7872687704026116, + "acc_stderr": 0.00954822312304733, + "acc_norm": 0.7992383025027203, + "acc_norm_stderr": 0.00934596167482341 + }, + "sciq": { + "acc": 0.907, + "acc_stderr": 0.00918887563499669, + "acc_norm": 0.806, + "acc_norm_stderr": 0.012510816141264359 + }, + "siqa": { + "acc": 0.4703172978505629, + "acc_stderr": 0.011294116144908552, + "acc_norm": 0.47389969293756395, + "acc_norm_stderr": 0.01129864516098083 + }, + "winogrande": { + "acc": 0.6858721389108129, + "acc_stderr": 0.01304541671607256 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "pretrained=Qwen/Qwen-7B-Chat,trust_remote_code=True,low_cpu_mem_usage=True,dtype=auto", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda:4", + "no_cache": false, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/Qwen-Qwen-7B.json b/evals/external/Qwen-Qwen-7B.json new file mode 100755 index 0000000..e0f34b1 --- /dev/null +++ b/evals/external/Qwen-Qwen-7B.json @@ -0,0 +1,84 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.4539249146757679, + "acc_stderr": 0.014549221105171865, + "acc_norm": 0.49146757679180886, + "acc_norm_stderr": 0.014609263165632186 + }, + "arc_easy": { + "acc": 0.6738215488215489, + "acc_stderr": 0.009619849417035167, + "acc_norm": 0.6519360269360269, + "acc_norm_stderr": 0.009774627600259012 + }, + "boolq": { + "acc": 0.745565749235474, + "acc_stderr": 0.007617690099234367 + }, + "hellaswag": { + "acc": 0.7305317665803625, + "acc_stderr": 0.004427767996301626, + "acc_norm": 0.8884684325831508, + "acc_norm_stderr": 0.0031414591751392695 + }, + "lambada_openai": { + "ppl": 4.014976946118802, + "ppl_stderr": 0.08858949240464632, + "acc": 0.6966815447312246, + "acc_stderr": 0.006404402872809113 + }, + "openbookqa": { + "acc": 0.322, + "acc_stderr": 0.02091666833001988, + "acc_norm": 0.448, + "acc_norm_stderr": 0.022261697292270143 + }, + "piqa": { + "acc": 0.7399347116430903, + "acc_stderr": 0.010234893249061308, + "acc_norm": 0.749183895538629, + "acc_norm_stderr": 0.010113869547069044 + }, + "sciq": { + "acc": 0.932, + "acc_stderr": 0.007964887911291603, + "acc_norm": 0.908, + "acc_norm_stderr": 0.009144376393151117 + }, + "siqa": { + "acc": 0.49437052200614123, + "acc_stderr": 0.011313353423379522, + "acc_norm": 0.5240532241555783, + "acc_norm_stderr": 0.01130097128912773 + }, + "winogrande": { + "acc": 0.65982636148382, + "acc_stderr": 0.013315218762417397 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=True,pretrained=Qwen/Qwen-7B,trust_remote_code=True,low_cpu_mem_usage=True,dtype=auto", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda:4", + "no_cache": false, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/baichuan-inc_Baichuan2-7B-Base.json b/evals/external/baichuan-inc_Baichuan2-7B-Base.json new file mode 100644 index 0000000..9b05833 --- /dev/null +++ b/evals/external/baichuan-inc_Baichuan2-7B-Base.json @@ -0,0 +1,84 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.42235494880546076, + "acc_stderr": 0.014434138713379977, + "acc_norm": 0.431740614334471, + "acc_norm_stderr": 0.014474591427196202 + }, + "arc_easy": { + "acc": 0.75, + "acc_stderr": 0.008885233166386385, + "acc_norm": 0.7281144781144782, + "acc_norm_stderr": 0.0091297958673105 + }, + "boolq": { + "acc": 0.7308868501529052, + "acc_stderr": 0.007756844290794318 + }, + "hellaswag": { + "acc": 0.5366460864369648, + "acc_stderr": 0.004976361454341348, + "acc_norm": 0.7228639713204541, + "acc_norm_stderr": 0.004466695023677831 + }, + "lambada_openai": { + "ppl": 3.6834487322486384, + "ppl_stderr": 0.07653758845393456, + "acc": 0.7098777411216767, + "acc_stderr": 0.006322580641394925 + }, + "openbookqa": { + "acc": 0.304, + "acc_stderr": 0.02059164957122493, + "acc_norm": 0.394, + "acc_norm_stderr": 0.021874299301689253 + }, + "piqa": { + "acc": 0.7616974972796517, + "acc_stderr": 0.009940334245876209, + "acc_norm": 0.7736670293797606, + "acc_norm_stderr": 0.009763294246879418 + }, + "sciq": { + "acc": 0.946, + "acc_stderr": 0.007150883521295436, + "acc_norm": 0.913, + "acc_norm_stderr": 0.008916866630745916 + }, + "siqa": { + "acc": 0.41760491299897645, + "acc_stderr": 0.011159391894922486, + "acc_norm": 0.44779938587512796, + "acc_norm_stderr": 0.011252242102001767 + }, + "winogrande": { + "acc": 0.675611681136543, + "acc_stderr": 0.01315722572664164 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "pretrained=baichuan-inc/Baichuan2-7B-Base,dtype=bfloat16,trust_remote_code=True,low_cpu_mem_usage=True,use_fast=True", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda", + "no_cache": true, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/bigscience-bloom-3b.json b/evals/external/bigscience-bloom-3b.json new file mode 100755 index 0000000..a9ee126 --- /dev/null +++ b/evals/external/bigscience-bloom-3b.json @@ -0,0 +1,84 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.27986348122866894, + "acc_stderr": 0.013119040897725922, + "acc_norm": 0.3037542662116041, + "acc_norm_stderr": 0.013438909184778757 + }, + "arc_easy": { + "acc": 0.5942760942760943, + "acc_stderr": 0.010075755540128871, + "acc_norm": 0.5328282828282829, + "acc_norm_stderr": 0.010237645778853869 + }, + "boolq": { + "acc": 0.617125382262997, + "acc_stderr": 0.008501734385335953 + }, + "hellaswag": { + "acc": 0.4137621987651862, + "acc_stderr": 0.004915003499517833, + "acc_norm": 0.545309699263095, + "acc_norm_stderr": 0.004969251445596341 + }, + "lambada_openai": { + "ppl": 9.094700256232823, + "ppl_stderr": 0.2652067493709512, + "acc": 0.5173685231903745, + "acc_stderr": 0.006961773596960152 + }, + "openbookqa": { + "acc": 0.218, + "acc_stderr": 0.01848337822317886, + "acc_norm": 0.322, + "acc_norm_stderr": 0.020916668330019882 + }, + "piqa": { + "acc": 0.705658324265506, + "acc_stderr": 0.010633311470347498, + "acc_norm": 0.7067464635473341, + "acc_norm_stderr": 0.010621818421101931 + }, + "sciq": { + "acc": 0.891, + "acc_stderr": 0.009859828407037191, + "acc_norm": 0.816, + "acc_norm_stderr": 0.012259457340938588 + }, + "siqa": { + "acc": 0.4017400204708291, + "acc_stderr": 0.011093444192711183, + "acc_norm": 0.4314227226202661, + "acc_norm_stderr": 0.011207148736838392 + }, + "winogrande": { + "acc": 0.584846093133386, + "acc_stderr": 0.01384868408665859 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=True,pretrained=bigscience/bloom-3b,trust_remote_code=True,low_cpu_mem_usage=True,dtype=auto", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": null, + "no_cache": true, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/bigscience-bloom-7b1.json b/evals/external/bigscience-bloom-7b1.json new file mode 100755 index 0000000..ed30143 --- /dev/null +++ b/evals/external/bigscience-bloom-7b1.json @@ -0,0 +1,84 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.302901023890785, + "acc_stderr": 0.013428241573185349, + "acc_norm": 0.33532423208191126, + "acc_norm_stderr": 0.013796182947785564 + }, + "arc_easy": { + "acc": 0.6494107744107744, + "acc_stderr": 0.009791003829831557, + "acc_norm": 0.5736531986531986, + "acc_norm_stderr": 0.010147858603835144 + }, + "boolq": { + "acc": 0.6284403669724771, + "acc_stderr": 0.008451598145076589 + }, + "hellaswag": { + "acc": 0.4649472216689902, + "acc_stderr": 0.0049775044466089996, + "acc_norm": 0.6228838876717785, + "acc_norm_stderr": 0.004836738514051334 + }, + "lambada_openai": { + "ppl": 6.619927277080142, + "ppl_stderr": 0.1762520708430581, + "acc": 0.5755870366776635, + "acc_stderr": 0.006885918770006387 + }, + "openbookqa": { + "acc": 0.252, + "acc_stderr": 0.019435727282249536, + "acc_norm": 0.358, + "acc_norm_stderr": 0.021461434862859122 + }, + "piqa": { + "acc": 0.7274211099020674, + "acc_stderr": 0.010389256803296021, + "acc_norm": 0.7366702937976061, + "acc_norm_stderr": 0.010276185322196764 + }, + "sciq": { + "acc": 0.901, + "acc_stderr": 0.009449248027662765, + "acc_norm": 0.845, + "acc_norm_stderr": 0.011450157470799475 + }, + "siqa": { + "acc": 0.4211873080859775, + "acc_stderr": 0.011172633149198374, + "acc_norm": 0.4498464687819857, + "acc_norm_stderr": 0.011257008360485692 + }, + "winogrande": { + "acc": 0.6464088397790055, + "acc_stderr": 0.013436541262599948 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=True,pretrained=bigscience/bloom-7b1,trust_remote_code=True,low_cpu_mem_usage=True,dtype=auto", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda:5", + "no_cache": true, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/cerebras-btlm-3b-8k-base.json b/evals/external/cerebras-btlm-3b-8k-base.json new file mode 100755 index 0000000..d78776e --- /dev/null +++ b/evals/external/cerebras-btlm-3b-8k-base.json @@ -0,0 +1,90 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.34897610921501704, + "acc_stderr": 0.013928933461382496, + "acc_norm": 0.37627986348122866, + "acc_norm_stderr": 0.014157022555407168 + }, + "arc_easy": { + "acc": 0.7045454545454546, + "acc_stderr": 0.009361987126556457, + "acc_norm": 0.6708754208754208, + "acc_norm_stderr": 0.00964204805806098 + }, + "boolq": { + "acc": 0.6963302752293578, + "acc_stderr": 0.008042682539896304 + }, + "hellaswag": { + "acc": 0.5184226249751046, + "acc_stderr": 0.004986393266269161, + "acc_norm": 0.6977693686516631, + "acc_norm_stderr": 0.004582861219020893 + }, + "lambada_openai": { + "ppl": 4.720441000893734, + "ppl_stderr": 0.1100556659950519, + "acc": 0.6623326217737241, + "acc_stderr": 0.00658862361668043 + }, + "openbookqa": { + "acc": 0.276, + "acc_stderr": 0.02001121929807353, + "acc_norm": 0.408, + "acc_norm_stderr": 0.02200091089387719 + }, + "piqa": { + "acc": 0.7584330794341676, + "acc_stderr": 0.009986718001804472, + "acc_norm": 0.7720348204570185, + "acc_norm_stderr": 0.009788093832324906 + }, + "sciq": { + "acc": 0.929, + "acc_stderr": 0.008125578442487916, + "acc_norm": 0.895, + "acc_norm_stderr": 0.009698921026024966 + }, + "siqa": { + "acc": 0.4278403275332651, + "acc_stderr": 0.01119562541819821, + "acc_norm": 0.4611054247697032, + "acc_norm_stderr": 0.011279787032703659 + }, + "truthfulqa_mc": { + "mc1": 0.2252141982864137, + "mc1_stderr": 0.014623240768023498, + "mc2": 0.3599562107238256, + "mc2_stderr": 0.013576568348894856 + }, + "winogrande": { + "acc": 0.6495659037095501, + "acc_stderr": 0.013409047676670189 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "truthfulqa_mc": 1, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=True,pretrained=cerebras/btlm-3b-8k-base,trust_remote_code=True,low_cpu_mem_usage=True,dtype=auto","num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda:4", + "no_cache": true, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/facebook-opt-2.7b.json b/evals/external/facebook-opt-2.7b.json new file mode 100755 index 0000000..729abec --- /dev/null +++ b/evals/external/facebook-opt-2.7b.json @@ -0,0 +1,84 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.2687713310580205, + "acc_stderr": 0.012955065963710691, + "acc_norm": 0.31313993174061433, + "acc_norm_stderr": 0.013552671543623504 + }, + "arc_easy": { + "acc": 0.6077441077441077, + "acc_stderr": 0.010018744689650043, + "acc_norm": 0.5429292929292929, + "acc_norm_stderr": 0.01022189756425603 + }, + "boolq": { + "acc": 0.6033639143730887, + "acc_stderr": 0.008556148582032 + }, + "hellaswag": { + "acc": 0.4584744074885481, + "acc_stderr": 0.004972543127767873, + "acc_norm": 0.6059549890460068, + "acc_norm_stderr": 0.0048764594346198 + }, + "lambada_openai": { + "ppl": 5.119857738610855, + "ppl_stderr": 0.11991227443177162, + "acc": 0.6357461672811954, + "acc_stderr": 0.006704339729528894 + }, + "openbookqa": { + "acc": 0.25, + "acc_stderr": 0.019384310743640384, + "acc_norm": 0.352, + "acc_norm_stderr": 0.021380042385946048 + }, + "piqa": { + "acc": 0.7383025027203483, + "acc_stderr": 0.01025563077270823, + "acc_norm": 0.7480957562568009, + "acc_norm_stderr": 0.010128421335088685 + }, + "sciq": { + "acc": 0.858, + "acc_stderr": 0.011043457699378227, + "acc_norm": 0.79, + "acc_norm_stderr": 0.012886662332274536 + }, + "siqa": { + "acc": 0.4083930399181167, + "acc_stderr": 0.011122558066098069, + "acc_norm": 0.44268167860798363, + "acc_norm_stderr": 0.011239482425741961 + }, + "winogrande": { + "acc": 0.6101026045777427, + "acc_stderr": 0.013707547317008462 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=True,pretrained=facebook/opt-2.7b,trust_remote_code=True,low_cpu_mem_usage=True,dtype=auto", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda:2", + "no_cache": false, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/facebook-opt-6.7b.json b/evals/external/facebook-opt-6.7b.json new file mode 100755 index 0000000..a8ac1ea --- /dev/null +++ b/evals/external/facebook-opt-6.7b.json @@ -0,0 +1,84 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.30716723549488056, + "acc_stderr": 0.013481034054980945, + "acc_norm": 0.34812286689419797, + "acc_norm_stderr": 0.013921008595179338 + }, + "arc_easy": { + "acc": 0.6565656565656566, + "acc_stderr": 0.00974381736896, + "acc_norm": 0.6014309764309764, + "acc_norm_stderr": 0.010046455400477947 + }, + "boolq": { + "acc": 0.6602446483180429, + "acc_stderr": 0.00828377201314756 + }, + "hellaswag": { + "acc": 0.5051782513443537, + "acc_stderr": 0.004989513809408587, + "acc_norm": 0.6719776936865166, + "acc_norm_stderr": 0.004685334844038652 + }, + "lambada_openai": { + "ppl": 4.252533670173101, + "ppl_stderr": 0.0927155022353668, + "acc": 0.6764991267222977, + "acc_stderr": 0.006517535744360227 + }, + "openbookqa": { + "acc": 0.276, + "acc_stderr": 0.020011219298073524, + "acc_norm": 0.372, + "acc_norm_stderr": 0.0216371979857224 + }, + "piqa": { + "acc": 0.7633297062023939, + "acc_stderr": 0.009916841655042804, + "acc_norm": 0.766050054406964, + "acc_norm_stderr": 0.009877236895137437 + }, + "sciq": { + "acc": 0.901, + "acc_stderr": 0.009449248027662761, + "acc_norm": 0.853, + "acc_norm_stderr": 0.011203415395160333 + }, + "siqa": { + "acc": 0.4263050153531218, + "acc_stderr": 0.011190503463264742, + "acc_norm": 0.4595701125895599, + "acc_norm_stderr": 0.011277022486079959 + }, + "winogrande": { + "acc": 0.6535122336227308, + "acc_stderr": 0.013373773411685644 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=True,pretrained=facebook/opt-6.7b,trust_remote_code=True,low_cpu_mem_usage=True,dtype=auto", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda:2", + "no_cache": false, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/huggyllama-llama-7b.json b/evals/external/huggyllama-llama-7b.json new file mode 100755 index 0000000..5d16523 --- /dev/null +++ b/evals/external/huggyllama-llama-7b.json @@ -0,0 +1,84 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.4189419795221843, + "acc_stderr": 0.014418106953639013, + "acc_norm": 0.4462457337883959, + "acc_norm_stderr": 0.014526705548539982 + }, + "arc_easy": { + "acc": 0.7525252525252525, + "acc_stderr": 0.00885511441483471, + "acc_norm": 0.7285353535353535, + "acc_norm_stderr": 0.009125362970360627 + }, + "boolq": { + "acc": 0.7504587155963303, + "acc_stderr": 0.0075688020241860285 + }, + "hellaswag": { + "acc": 0.5696076478789086, + "acc_stderr": 0.004941191607317913, + "acc_norm": 0.7621987651862179, + "acc_norm_stderr": 0.004248666961833349 + }, + "lambada_openai": { + "ppl": 3.4882593690160553, + "ppl_stderr": 0.068517853205977, + "acc": 0.7354938870560839, + "acc_stderr": 0.006144965702579053 + }, + "openbookqa": { + "acc": 0.344, + "acc_stderr": 0.02126575803797874, + "acc_norm": 0.444, + "acc_norm_stderr": 0.02224224437573102 + }, + "piqa": { + "acc": 0.7867247007616975, + "acc_stderr": 0.00955712122586133, + "acc_norm": 0.7916213275299239, + "acc_norm_stderr": 0.009476125383049459 + }, + "sciq": { + "acc": 0.946, + "acc_stderr": 0.007150883521295433, + "acc_norm": 0.928, + "acc_norm_stderr": 0.008178195576218681 + }, + "siqa": { + "acc": 0.4483111566018424, + "acc_stderr": 0.01125345173122258, + "acc_norm": 0.4703172978505629, + "acc_norm_stderr": 0.011294116144908554 + }, + "winogrande": { + "acc": 0.6992896606156275, + "acc_stderr": 0.012888010494704723 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=False,pretrained=huggyllama/llama-7b,trust_remote_code=True,low_cpu_mem_usage=True,dtype=auto", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda:2", + "no_cache": false, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/kittn_mistral-7B-v0.1-hf.json b/evals/external/kittn_mistral-7B-v0.1-hf.json new file mode 100644 index 0000000..fabb30a --- /dev/null +++ b/evals/external/kittn_mistral-7B-v0.1-hf.json @@ -0,0 +1,84 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.5025597269624573, + "acc_stderr": 0.014611199329843777, + "acc_norm": 0.5435153583617748, + "acc_norm_stderr": 0.014555949760496439 + }, + "arc_easy": { + "acc": 0.8080808080808081, + "acc_stderr": 0.00808080808080796, + "acc_norm": 0.7954545454545454, + "acc_norm_stderr": 0.008276958800002997 + }, + "boolq": { + "acc": 0.8363914373088684, + "acc_stderr": 0.006469941343840763 + }, + "hellaswag": { + "acc": 0.6127265484963155, + "acc_stderr": 0.0048613146132868434, + "acc_norm": 0.8105954989046007, + "acc_norm_stderr": 0.003910288117015163 + }, + "lambada_openai": { + "ppl": 3.181388367482107, + "ppl_stderr": 0.058369197945258765, + "acc": 0.7568406753347564, + "acc_stderr": 0.0059766767751295085 + }, + "openbookqa": { + "acc": 0.328, + "acc_stderr": 0.021017027165175485, + "acc_norm": 0.44, + "acc_norm_stderr": 0.022221331534143057 + }, + "piqa": { + "acc": 0.8079434167573449, + "acc_stderr": 0.00919074029512649, + "acc_norm": 0.8215451577801959, + "acc_norm_stderr": 0.008933575463062072 + }, + "sciq": { + "acc": 0.959, + "acc_stderr": 0.006273624021118748, + "acc_norm": 0.938, + "acc_norm_stderr": 0.0076298239962803065 + }, + "siqa": { + "acc": 0.4273285568065507, + "acc_stderr": 0.01119393034055127, + "acc_norm": 0.4570112589559877, + "acc_norm_stderr": 0.01127217546233142 + }, + "winogrande": { + "acc": 0.7403314917127072, + "acc_stderr": 0.012322700705552673 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "pretrained=kittn/mistral-7B-v0.1-hf,dtype=bfloat16,trust_remote_code=True,low_cpu_mem_usage=True,use_fast=False", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda", + "no_cache": true, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/meta-llama-Llama-2-13b-hf.json b/evals/external/meta-llama-Llama-2-13b-hf.json new file mode 100644 index 0000000..fc98fef --- /dev/null +++ b/evals/external/meta-llama-Llama-2-13b-hf.json @@ -0,0 +1,84 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.4863481228668942, + "acc_stderr": 0.014605943429860945, + "acc_norm": 0.492320819112628, + "acc_norm_stderr": 0.01460966744089257 + }, + "arc_easy": { + "acc": 0.79503367003367, + "acc_stderr": 0.008283277600626398, + "acc_norm": 0.7760942760942761, + "acc_norm_stderr": 0.008553779114531757 + }, + "boolq": { + "acc": 0.8051987767584098, + "acc_stderr": 0.006926916185348359 + }, + "hellaswag": { + "acc": 0.6011750647281418, + "acc_stderr": 0.004886559008754982, + "acc_norm": 0.7935670185222067, + "acc_norm_stderr": 0.004039176806180289 + }, + "lambada_openai": { + "ppl": 3.0445239988325836, + "ppl_stderr": 0.05613639700817276, + "acc": 0.767708131185717, + "acc_stderr": 0.005883383348944357 + }, + "openbookqa": { + "acc": 0.354, + "acc_stderr": 0.021407582047916447, + "acc_norm": 0.454, + "acc_norm_stderr": 0.02228814759117695 + }, + "piqa": { + "acc": 0.7905331882480957, + "acc_stderr": 0.0094943029798198, + "acc_norm": 0.8063112078346029, + "acc_norm_stderr": 0.009220384152336643 + }, + "sciq": { + "acc": 0.945, + "acc_stderr": 0.007212976294639239, + "acc_norm": 0.933, + "acc_norm_stderr": 0.007910345983177549 + }, + "siqa": { + "acc": 0.4278403275332651, + "acc_stderr": 0.01119562541819821, + "acc_norm": 0.4503582395087001, + "acc_norm_stderr": 0.01125816983012229 + }, + "winogrande": { + "acc": 0.7221783741120757, + "acc_stderr": 0.012588918183871603 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=False,pretrained=meta-llama/Llama-2-13b-hf,trust_remote_code=True,low_cpu_mem_usage=True,dtype=bfloat16", + "num_fewshot": 0, + "batch_size": "16", + "batch_sizes": [], + "device": "cuda:5", + "no_cache": false, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/meta-llama-Llama-2-7b.json b/evals/external/meta-llama-Llama-2-7b.json new file mode 100755 index 0000000..dfa93ae --- /dev/null +++ b/evals/external/meta-llama-Llama-2-7b.json @@ -0,0 +1,91 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.4300341296928328, + "acc_stderr": 0.014467631559137993, + "acc_norm": 0.4616040955631399, + "acc_norm_stderr": 0.014568245550296363 + }, + "arc_easy": { + "acc": 0.7626262626262627, + "acc_stderr": 0.008730525906362434, + "acc_norm": 0.7453703703703703, + "acc_norm_stderr": 0.008939407288589414 + }, + "boolq": { + "acc": 0.7773700305810397, + "acc_stderr": 0.007276093141006333 + }, + "hellaswag": { + "acc": 0.5720971917944633, + "acc_stderr": 0.00493763511283029, + "acc_norm": 0.7594104760007967, + "acc_norm_stderr": 0.004265678940698863 + }, + "lambada_openai": { + "ppl": 3.3970918836338027, + "ppl_stderr": 0.06684659102563836, + "acc": 0.7347176402095866, + "acc_stderr": 0.0061507275830540355 + }, + "openbookqa": { + "acc": 0.314, + "acc_stderr": 0.020776701920308997, + "acc_norm": 0.436, + "acc_norm_stderr": 0.0221989546414768 + }, + "piqa": { + "acc": 0.7774755168661589, + "acc_stderr": 0.009704600975718245, + "acc_norm": 0.7878128400435256, + "acc_norm_stderr": 0.009539299828174048 + }, + "sciq": { + "acc": 0.936, + "acc_stderr": 0.007743640226919308, + "acc_norm": 0.908, + "acc_norm_stderr": 0.009144376393151106 + }, + "siqa": { + "acc": 0.43500511770726713, + "acc_stderr": 0.011218074465506494, + "acc_norm": 0.47389969293756395, + "acc_norm_stderr": 0.011298645160980832 + }, + "truthfulqa_mc": { + "mc1": 0.2521419828641371, + "mc1_stderr": 0.01520152224629997, + "mc2": 0.38967559882659686, + "mc2_stderr": 0.01357922221561985 + }, + "winogrande": { + "acc": 0.6961325966850829, + "acc_stderr": 0.012926209475483574 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "truthfulqa_mc": 1, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=False,pretrained=meta-llama/Llama-2-7b-hf,trust_remote_code=True,low_cpu_mem_usage=True,dtype=bfloat16", + "num_fewshot": 0, + "batch_size": "2", + "batch_sizes": [], + "device": "cuda:0", + "no_cache": false, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/microsoft-phi-1_5.json b/evals/external/microsoft-phi-1_5.json new file mode 100644 index 0000000..069d7b2 --- /dev/null +++ b/evals/external/microsoft-phi-1_5.json @@ -0,0 +1,84 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.4445392491467577, + "acc_stderr": 0.014521226405627079, + "acc_norm": 0.4803754266211604, + "acc_norm_stderr": 0.014600132075947092 + }, + "arc_easy": { + "acc": 0.7613636363636364, + "acc_stderr": 0.008746465140706127, + "acc_norm": 0.7314814814814815, + "acc_norm_stderr": 0.009094042554994847 + }, + "boolq": { + "acc": 0.7452599388379205, + "acc_stderr": 0.007620703281690057 + }, + "hellaswag": { + "acc": 0.47988448516231824, + "acc_stderr": 0.004985741706385726, + "acc_norm": 0.6261700856403107, + "acc_norm_stderr": 0.004828305041904399 + }, + "lambada_openai": { + "ppl": 8.945202930351474, + "ppl_stderr": 0.3005661666926477, + "acc": 0.527459732194838, + "acc_stderr": 0.0069554645156210786 + }, + "openbookqa": { + "acc": 0.376, + "acc_stderr": 0.021683827539286115, + "acc_norm": 0.482, + "acc_norm_stderr": 0.02236856511738799 + }, + "piqa": { + "acc": 0.7633297062023939, + "acc_stderr": 0.009916841655042806, + "acc_norm": 0.7578890097932536, + "acc_norm_stderr": 0.009994371269104381 + }, + "sciq": { + "acc": 0.932, + "acc_stderr": 0.007964887911291603, + "acc_norm": 0.916, + "acc_norm_stderr": 0.00877616208949113 + }, + "siqa": { + "acc": 0.5537359263050153, + "acc_stderr": 0.01124854090154796, + "acc_norm": 0.5957011258955988, + "acc_norm_stderr": 0.0111048923983008 + }, + "winogrande": { + "acc": 0.7253354380426204, + "acc_stderr": 0.012544516005117187 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=False,pretrained=microsoft/phi-1_5,trust_remote_code=True,low_cpu_mem_usage=True,dtype=bfloat16", + "num_fewshot": 0, + "batch_size": "16", + "batch_sizes": [], + "device": "cuda:5", + "no_cache": false, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/mosaicml-mpt-7b.json b/evals/external/mosaicml-mpt-7b.json new file mode 100755 index 0000000..a808f89 --- /dev/null +++ b/evals/external/mosaicml-mpt-7b.json @@ -0,0 +1,91 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.4052901023890785, + "acc_stderr": 0.01434686906022933, + "acc_norm": 0.4189419795221843, + "acc_norm_stderr": 0.014418106953639011 + }, + "arc_easy": { + "acc": 0.7491582491582491, + "acc_stderr": 0.008895183010487386, + "acc_norm": 0.7003367003367004, + "acc_norm_stderr": 0.009400228586205971 + }, + "boolq": { + "acc": 0.7394495412844037, + "acc_stderr": 0.007677021072511165 + }, + "hellaswag": { + "acc": 0.571400119498108, + "acc_stderr": 0.004938643787869543, + "acc_norm": 0.7617008564031069, + "acc_norm_stderr": 0.00425172316377217 + }, + "lambada_openai": { + "ppl": 3.8689102314884214, + "ppl_stderr": 0.0808940319922043, + "acc": 0.6863962740151368, + "acc_stderr": 0.006463833164285203 + }, + "openbookqa": { + "acc": 0.314, + "acc_stderr": 0.020776701920308997, + "acc_norm": 0.428, + "acc_norm_stderr": 0.022149790663861923 + }, + "piqa": { + "acc": 0.7889009793253536, + "acc_stderr": 0.00952137737873414, + "acc_norm": 0.8063112078346029, + "acc_norm_stderr": 0.009220384152336641 + }, + "sciq": { + "acc": 0.937, + "acc_stderr": 0.007687007876286428, + "acc_norm": 0.888, + "acc_norm_stderr": 0.009977753031397236 + }, + "siqa": { + "acc": 0.45138178096212894, + "acc_stderr": 0.01126045668162444, + "acc_norm": 0.48311156601842375, + "acc_norm_stderr": 0.011307614732827416 + }, + "truthfulqa_mc": { + "mc1": 0.20930232558139536, + "mc1_stderr": 0.014241219434785823, + "mc2": 0.3348523259251629, + "mc2_stderr": 0.01313621094524683 + }, + "winogrande": { + "acc": 0.6803472770323599, + "acc_stderr": 0.01310652851766514 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "truthfulqa_mc": 1, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=True,pretrained=mosaicml/mpt-7b,trust_remote_code=True,low_cpu_mem_usage=True,dtype=auto", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda:2", + "no_cache": false, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/openlm-research-open_llama_13b b/evals/external/openlm-research-open_llama_13b new file mode 100755 index 0000000..57a42a5 --- /dev/null +++ b/evals/external/openlm-research-open_llama_13b @@ -0,0 +1,32 @@ +{ + "results": { + "lambada_openai": { + "ppl": 3.569586285393247, + "ppl_stderr": 0.07265272740503036, + "acc": 0.7209392586842616, + "acc_stderr": 0.006249003708978234 + }, + "sciq": { + "acc": 0.941, + "acc_stderr": 0.007454835650406722, + "acc_norm": 0.914, + "acc_norm_stderr": 0.008870325962594766 + } + }, + "versions": { + "lambada_openai": 0, + "sciq": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=False,pretrained=openlm-research/open_llama_13b,trust_remote_code=True,low_cpu_mem_usage=True,dtype=auto", + "num_fewshot": 0, + "batch_size": "2", + "batch_sizes": [], + "device": "cuda:3", + "no_cache": false, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/openlm-research-open_llama_3b_v2.json b/evals/external/openlm-research-open_llama_3b_v2.json new file mode 100755 index 0000000..b839812 --- /dev/null +++ b/evals/external/openlm-research-open_llama_3b_v2.json @@ -0,0 +1,91 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.3387372013651877, + "acc_stderr": 0.013830568927974332, + "acc_norm": 0.3609215017064846, + "acc_norm_stderr": 0.014034761386175458 + }, + "arc_easy": { + "acc": 0.6759259259259259, + "acc_stderr": 0.00960372885009539, + "acc_norm": 0.63510101010101, + "acc_norm_stderr": 0.009878157021155649 + }, + "boolq": { + "acc": 0.6568807339449542, + "acc_stderr": 0.008303445777655941 + }, + "hellaswag": { + "acc": 0.5223063134833699, + "acc_stderr": 0.0049848133910162145, + "acc_norm": 0.6998605855407289, + "acc_norm_stderr": 0.004573817163007456 + }, + "lambada_openai": { + "ppl": 4.565625743504039, + "ppl_stderr": 0.1034965673734545, + "acc": 0.6673782262759558, + "acc_stderr": 0.006564073374961233 + }, + "openbookqa": { + "acc": 0.26, + "acc_stderr": 0.019635965529725512, + "acc_norm": 0.376, + "acc_norm_stderr": 0.021683827539286122 + }, + "piqa": { + "acc": 0.7665941240478781, + "acc_stderr": 0.009869247889521001, + "acc_norm": 0.778563656147987, + "acc_norm_stderr": 0.009687616456840284 + }, + "sciq": { + "acc": 0.924, + "acc_stderr": 0.008384169266796386, + "acc_norm": 0.878, + "acc_norm_stderr": 0.010354864712936698 + }, + "siqa": { + "acc": 0.4119754350051177, + "acc_stderr": 0.011137360400975268, + "acc_norm": 0.4524053224155578, + "acc_norm_stderr": 0.011262695440459566 + }, + "truthfulqa_mc": { + "mc1": 0.21297429620563035, + "mc1_stderr": 0.014332203787059685, + "mc2": 0.3458747299959986, + "mc2_stderr": 0.013215129281312441 + }, + "winogrande": { + "acc": 0.6290449881610103, + "acc_stderr": 0.01357639990223157 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "truthfulqa_mc": 1, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=False,pretrained=openlm-research/open_llama_3b_v2,trust_remote_code=True,low_cpu_mem_usage=True,dtype=bfloat16", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda:4", + "no_cache": true, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/openlm-research-open_llama_7b_v2.json b/evals/external/openlm-research-open_llama_7b_v2.json new file mode 100755 index 0000000..78eb9e2 --- /dev/null +++ b/evals/external/openlm-research-open_llama_7b_v2.json @@ -0,0 +1,91 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.38822525597269625, + "acc_stderr": 0.014241614207414034, + "acc_norm": 0.42406143344709896, + "acc_norm_stderr": 0.014441889627464392 + }, + "arc_easy": { + "acc": 0.7192760942760943, + "acc_stderr": 0.009220526174711363, + "acc_norm": 0.6965488215488216, + "acc_norm_stderr": 0.009433837434252279 + }, + "boolq": { + "acc": 0.7140672782874617, + "acc_stderr": 0.00790303735916362 + }, + "hellaswag": { + "acc": 0.5569607647878908, + "acc_stderr": 0.004957296691391575, + "acc_norm": 0.7464648476399124, + "acc_norm_stderr": 0.004341454841892331 + }, + "lambada_openai": { + "ppl": 3.8265934555236463, + "ppl_stderr": 0.07878439404908999, + "acc": 0.7104599262565496, + "acc_stderr": 0.006318823234213216 + }, + "openbookqa": { + "acc": 0.302, + "acc_stderr": 0.020553269174209184, + "acc_norm": 0.402, + "acc_norm_stderr": 0.021948929609938606 + }, + "piqa": { + "acc": 0.7916213275299239, + "acc_stderr": 0.009476125383049447, + "acc_norm": 0.8030467899891186, + "acc_norm_stderr": 0.009278918898006383 + }, + "sciq": { + "acc": 0.938, + "acc_stderr": 0.007629823996280304, + "acc_norm": 0.901, + "acc_norm_stderr": 0.009449248027662747 + }, + "siqa": { + "acc": 0.4196519959058342, + "acc_stderr": 0.011167032303390547, + "acc_norm": 0.4600818833162743, + "acc_norm_stderr": 0.011277955967920398 + }, + "truthfulqa_mc": { + "mc1": 0.22643818849449204, + "mc1_stderr": 0.014651337324602576, + "mc2": 0.3456877328963021, + "mc2_stderr": 0.013482248222806824 + }, + "winogrande": { + "acc": 0.6582478295185478, + "acc_stderr": 0.013330103018622861 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "truthfulqa_mc": 1, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=False,pretrained=openlm-research/open_llama_7b_v2,trust_remote_code=True,low_cpu_mem_usage=True,dtype=bfloat16", + "num_fewshot": 0, + "batch_size": "2", + "batch_sizes": [], + "device": "cuda:0", + "no_cache": false, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/tiiuae_falcon-7b.json b/evals/external/tiiuae_falcon-7b.json new file mode 100644 index 0000000..ff26e46 --- /dev/null +++ b/evals/external/tiiuae_falcon-7b.json @@ -0,0 +1,84 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.40273037542662116, + "acc_stderr": 0.014332236306790149, + "acc_norm": 0.43686006825938567, + "acc_norm_stderr": 0.014494421584256519 + }, + "arc_easy": { + "acc": 0.7441077441077442, + "acc_stderr": 0.008953950243013991, + "acc_norm": 0.7079124579124579, + "acc_norm_stderr": 0.00933070561656907 + }, + "boolq": { + "acc": 0.735474006116208, + "acc_stderr": 0.007714546144910642 + }, + "hellaswag": { + "acc": 0.5771758613821948, + "acc_stderr": 0.004929983692795067, + "acc_norm": 0.7634933280223063, + "acc_norm_stderr": 0.004240683281093403 + }, + "lambada_openai": { + "ppl": 3.3698354504387775, + "ppl_stderr": 0.06490807599596318, + "acc": 0.7455850960605472, + "acc_stderr": 0.006067809764031527 + }, + "openbookqa": { + "acc": 0.306, + "acc_stderr": 0.020629569998345403, + "acc_norm": 0.442, + "acc_norm_stderr": 0.02223197069632112 + }, + "piqa": { + "acc": 0.794885745375408, + "acc_stderr": 0.009420971671017915, + "acc_norm": 0.8057671381936888, + "acc_norm_stderr": 0.009230209366168272 + }, + "sciq": { + "acc": 0.94, + "acc_stderr": 0.00751375115747492, + "acc_norm": 0.915, + "acc_norm_stderr": 0.008823426366942328 + }, + "siqa": { + "acc": 0.42067553735926305, + "acc_stderr": 0.011170778517705619, + "acc_norm": 0.4600818833162743, + "acc_norm_stderr": 0.011277955967920396 + }, + "winogrande": { + "acc": 0.6724546172059984, + "acc_stderr": 0.013190169546797016 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "pretrained=tiiuae/falcon-7b,dtype=bfloat16,trust_remote_code=True,low_cpu_mem_usage=True,use_fast=True", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda", + "no_cache": true, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/external/togethercomputer-RedPajama-INCITE-7B-Base2.json b/evals/external/togethercomputer-RedPajama-INCITE-7B-Base2.json new file mode 100755 index 0000000..0ed8826 --- /dev/null +++ b/evals/external/togethercomputer-RedPajama-INCITE-7B-Base2.json @@ -0,0 +1,91 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.3771331058020478, + "acc_stderr": 0.014163366896192593, + "acc_norm": 0.39419795221843, + "acc_norm_stderr": 0.014280522667467323 + }, + "arc_easy": { + "acc": 0.7234848484848485, + "acc_stderr": 0.00917788010146828, + "acc_norm": 0.6919191919191919, + "acc_norm_stderr": 0.009473887075826333 + }, + "boolq": { + "acc": 0.7076452599388379, + "acc_stderr": 0.00795527890990574 + }, + "hellaswag": { + "acc": 0.5256920932085242, + "acc_stderr": 0.004983189711208505, + "acc_norm": 0.7033459470225055, + "acc_norm_stderr": 0.004558491550673688 + }, + "lambada_openai": { + "ppl": 3.9176883876529036, + "ppl_stderr": 0.08360630042095321, + "acc": 0.713370851930914, + "acc_stderr": 0.006299845944000654 + }, + "openbookqa": { + "acc": 0.29, + "acc_stderr": 0.020313179231745186, + "acc_norm": 0.406, + "acc_norm_stderr": 0.021983962090086333 + }, + "piqa": { + "acc": 0.7714907508161044, + "acc_stderr": 0.009796313511829524, + "acc_norm": 0.7736670293797606, + "acc_norm_stderr": 0.009763294246879415 + }, + "sciq": { + "acc": 0.927, + "acc_stderr": 0.008230354715244055, + "acc_norm": 0.897, + "acc_norm_stderr": 0.009616833339695796 + }, + "siqa": { + "acc": 0.4257932446264074, + "acc_stderr": 0.011188771652377858, + "acc_norm": 0.44882292732855683, + "acc_norm_stderr": 0.011254649314820132 + }, + "truthfulqa_mc": { + "mc1": 0.23011015911872704, + "mc1_stderr": 0.014734557959807769, + "mc2": 0.3301333660822527, + "mc2_stderr": 0.012995959559501016 + }, + "winogrande": { + "acc": 0.6432517758484609, + "acc_stderr": 0.013463393958028733 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "truthfulqa_mc": 1, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=True,pretrained=togethercomputer/RedPajama-INCITE-7B-Base,low_cpu_mem_usage=True,dtype=auto", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda:2", + "no_cache": false, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/open_llm_leaderboard/stablelm-beta-3b-v2-arc-challenge.json b/evals/open_llm_leaderboard/stablelm-beta-3b-v2-arc-challenge.json new file mode 100644 index 0000000..951c58f --- /dev/null +++ b/evals/open_llm_leaderboard/stablelm-beta-3b-v2-arc-challenge.json @@ -0,0 +1,21 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.36689419795221845, + "acc_norm": 0.3967576791808874 + } + }, + "versions": { + "arc_challenge": 0 + }, + "config": { + "model": "stabilityai/stablelm-base-alpha-3b-v2", + "num_fewshot": 25, + "batch_size": 8, + "device": "cuda:0", + "no_cache": true, + "limit": null, + "bootstrap_iters": 10000, + "description_dict": null + } +} \ No newline at end of file diff --git a/evals/open_llm_leaderboard/stablelm-beta-3b-v2-hellaswag.json b/evals/open_llm_leaderboard/stablelm-beta-3b-v2-hellaswag.json new file mode 100644 index 0000000..35dbadc --- /dev/null +++ b/evals/open_llm_leaderboard/stablelm-beta-3b-v2-hellaswag.json @@ -0,0 +1,21 @@ +{ + "results": { + "hellaswag": { + "acc": 0.5239992033459471, + "acc_norm": 0.7066321449910377 + } + }, + "versions": { + "hellaswag": 0 + }, + "config": { + "model": "stabilityai/stablelm-base-alpha-3b-v2", + "num_fewshot": 10, + "batch_size": 8, + "device": "cuda:0", + "no_cache": true, + "limit": null, + "bootstrap_iters": 10000, + "description_dict": null + } +} \ No newline at end of file diff --git a/evals/open_llm_leaderboard/stablelm-beta-3b-v2-mmmlu.json b/evals/open_llm_leaderboard/stablelm-beta-3b-v2-mmmlu.json new file mode 100644 index 0000000..92f5bda --- /dev/null +++ b/evals/open_llm_leaderboard/stablelm-beta-3b-v2-mmmlu.json @@ -0,0 +1,301 @@ +{ + "results": { + "hendrycksTest-professional_psychology": { + "acc": 0.2826797385620915, + "acc_norm": 0.27124183006535946 + }, + "hendrycksTest-abstract_algebra": { + "acc": 0.26, + "acc_norm": 0.29 + }, + "hendrycksTest-prehistory": { + "acc": 0.3271604938271605, + "acc_norm": 0.26851851851851855 + }, + "hendrycksTest-international_law": { + "acc": 0.23140495867768596, + "acc_norm": 0.36363636363636365 + }, + "hendrycksTest-logical_fallacies": { + "acc": 0.20245398773006135, + "acc_norm": 0.22085889570552147 + }, + "hendrycksTest-professional_medicine": { + "acc": 0.30514705882352944, + "acc_norm": 0.33455882352941174 + }, + "hendrycksTest-high_school_european_history": { + "acc": 0.3151515151515151, + "acc_norm": 0.296969696969697 + }, + "hendrycksTest-high_school_physics": { + "acc": 0.2251655629139073, + "acc_norm": 0.2582781456953642 + }, + "hendrycksTest-management": { + "acc": 0.30097087378640774, + "acc_norm": 0.30097087378640774 + }, + "hendrycksTest-college_mathematics": { + "acc": 0.17, + "acc_norm": 0.24 + }, + "hendrycksTest-college_computer_science": { + "acc": 0.29, + "acc_norm": 0.24 + }, + "hendrycksTest-human_sexuality": { + "acc": 0.40458015267175573, + "acc_norm": 0.3893129770992366 + }, + "hendrycksTest-college_biology": { + "acc": 0.2708333333333333, + "acc_norm": 0.2569444444444444 + }, + "hendrycksTest-high_school_computer_science": { + "acc": 0.34, + "acc_norm": 0.3 + }, + "hendrycksTest-high_school_psychology": { + "acc": 0.3467889908256881, + "acc_norm": 0.326605504587156 + }, + "hendrycksTest-high_school_chemistry": { + "acc": 0.2413793103448276, + "acc_norm": 0.28078817733990147 + }, + "hendrycksTest-astronomy": { + "acc": 0.3355263157894737, + "acc_norm": 0.3355263157894737 + }, + "hendrycksTest-medical_genetics": { + "acc": 0.39, + "acc_norm": 0.4 + }, + "hendrycksTest-nutrition": { + "acc": 0.35947712418300654, + "acc_norm": 0.3758169934640523 + }, + "hendrycksTest-moral_disputes": { + "acc": 0.3554913294797688, + "acc_norm": 0.33815028901734107 + }, + "hendrycksTest-computer_security": { + "acc": 0.38, + "acc_norm": 0.39 + }, + "hendrycksTest-anatomy": { + "acc": 0.32592592592592595, + "acc_norm": 0.2814814814814815 + }, + "hendrycksTest-formal_logic": { + "acc": 0.30952380952380953, + "acc_norm": 0.3253968253968254 + }, + "hendrycksTest-high_school_us_history": { + "acc": 0.3088235294117647, + "acc_norm": 0.29901960784313725 + }, + "hendrycksTest-security_studies": { + "acc": 0.3224489795918367, + "acc_norm": 0.23265306122448978 + }, + "hendrycksTest-high_school_mathematics": { + "acc": 0.23703703703703705, + "acc_norm": 0.2814814814814815 + }, + "hendrycksTest-high_school_macroeconomics": { + "acc": 0.2794871794871795, + "acc_norm": 0.2794871794871795 + }, + "hendrycksTest-clinical_knowledge": { + "acc": 0.26037735849056604, + "acc_norm": 0.32075471698113206 + }, + "hendrycksTest-us_foreign_policy": { + "acc": 0.39, + "acc_norm": 0.41 + }, + "hendrycksTest-virology": { + "acc": 0.35542168674698793, + "acc_norm": 0.3493975903614458 + }, + "hendrycksTest-public_relations": { + "acc": 0.34545454545454546, + "acc_norm": 0.3 + }, + "hendrycksTest-world_religions": { + "acc": 0.4093567251461988, + "acc_norm": 0.4619883040935672 + }, + "hendrycksTest-college_physics": { + "acc": 0.3137254901960784, + "acc_norm": 0.3235294117647059 + }, + "hendrycksTest-high_school_biology": { + "acc": 0.267741935483871, + "acc_norm": 0.2870967741935484 + }, + "hendrycksTest-business_ethics": { + "acc": 0.33, + "acc_norm": 0.28 + }, + "hendrycksTest-high_school_government_and_politics": { + "acc": 0.30569948186528495, + "acc_norm": 0.2849740932642487 + }, + "hendrycksTest-high_school_world_history": { + "acc": 0.2742616033755274, + "acc_norm": 0.27848101265822783 + }, + "hendrycksTest-jurisprudence": { + "acc": 0.23148148148148148, + "acc_norm": 0.24074074074074073 + }, + "hendrycksTest-miscellaneous": { + "acc": 0.4227330779054917, + "acc_norm": 0.41762452107279696 + }, + "hendrycksTest-marketing": { + "acc": 0.3974358974358974, + "acc_norm": 0.39316239316239315 + }, + "hendrycksTest-high_school_microeconomics": { + "acc": 0.29411764705882354, + "acc_norm": 0.3445378151260504 + }, + "hendrycksTest-econometrics": { + "acc": 0.2543859649122807, + "acc_norm": 0.24561403508771928 + }, + "hendrycksTest-conceptual_physics": { + "acc": 0.3276595744680851, + "acc_norm": 0.28936170212765955 + }, + "hendrycksTest-high_school_statistics": { + "acc": 0.3287037037037037, + "acc_norm": 0.33796296296296297 + }, + "hendrycksTest-sociology": { + "acc": 0.3333333333333333, + "acc_norm": 0.31343283582089554 + }, + "hendrycksTest-electrical_engineering": { + "acc": 0.2689655172413793, + "acc_norm": 0.25517241379310346 + }, + "hendrycksTest-elementary_mathematics": { + "acc": 0.335978835978836, + "acc_norm": 0.328042328042328 + }, + "hendrycksTest-high_school_geography": { + "acc": 0.3181818181818182, + "acc_norm": 0.3333333333333333 + }, + "hendrycksTest-philosophy": { + "acc": 0.31511254019292606, + "acc_norm": 0.3247588424437299 + }, + "hendrycksTest-moral_scenarios": { + "acc": 0.26927374301675977, + "acc_norm": 0.27150837988826815 + }, + "hendrycksTest-college_chemistry": { + "acc": 0.34, + "acc_norm": 0.36 + }, + "hendrycksTest-machine_learning": { + "acc": 0.2767857142857143, + "acc_norm": 0.2767857142857143 + }, + "hendrycksTest-professional_accounting": { + "acc": 0.29432624113475175, + "acc_norm": 0.3049645390070922 + }, + "hendrycksTest-professional_law": { + "acc": 0.25488917861799215, + "acc_norm": 0.258148631029987 + }, + "hendrycksTest-college_medicine": { + "acc": 0.35260115606936415, + "acc_norm": 0.3468208092485549 + }, + "hendrycksTest-global_facts": { + "acc": 0.26, + "acc_norm": 0.21 + }, + "hendrycksTest-human_aging": { + "acc": 0.28699551569506726, + "acc_norm": 0.2556053811659193 + } + }, + "versions": { + "hendrycksTest-professional_psychology": 0, + "hendrycksTest-abstract_algebra": 0, + "hendrycksTest-prehistory": 0, + "hendrycksTest-international_law": 0, + "hendrycksTest-logical_fallacies": 0, + "hendrycksTest-professional_medicine": 0, + "hendrycksTest-high_school_european_history": 0, + "hendrycksTest-high_school_physics": 0, + "hendrycksTest-management": 0, + "hendrycksTest-college_mathematics": 0, + "hendrycksTest-college_computer_science": 0, + "hendrycksTest-human_sexuality": 0, + "hendrycksTest-college_biology": 0, + "hendrycksTest-high_school_computer_science": 0, + "hendrycksTest-high_school_psychology": 0, + "hendrycksTest-high_school_chemistry": 0, + "hendrycksTest-astronomy": 0, + "hendrycksTest-medical_genetics": 0, + "hendrycksTest-nutrition": 0, + "hendrycksTest-moral_disputes": 0, + "hendrycksTest-computer_security": 0, + "hendrycksTest-anatomy": 0, + "hendrycksTest-formal_logic": 0, + "hendrycksTest-high_school_us_history": 0, + "hendrycksTest-security_studies": 0, + "hendrycksTest-high_school_mathematics": 0, + "hendrycksTest-high_school_macroeconomics": 0, + "hendrycksTest-clinical_knowledge": 0, + "hendrycksTest-us_foreign_policy": 0, + "hendrycksTest-virology": 0, + "hendrycksTest-public_relations": 0, + "hendrycksTest-world_religions": 0, + "hendrycksTest-college_physics": 0, + "hendrycksTest-high_school_biology": 0, + "hendrycksTest-business_ethics": 0, + "hendrycksTest-high_school_government_and_politics": 0, + "hendrycksTest-high_school_world_history": 0, + "hendrycksTest-jurisprudence": 0, + "hendrycksTest-miscellaneous": 0, + "hendrycksTest-marketing": 0, + "hendrycksTest-high_school_microeconomics": 0, + "hendrycksTest-econometrics": 0, + "hendrycksTest-conceptual_physics": 0, + "hendrycksTest-high_school_statistics": 0, + "hendrycksTest-sociology": 0, + "hendrycksTest-electrical_engineering": 0, + "hendrycksTest-elementary_mathematics": 0, + "hendrycksTest-high_school_geography": 0, + "hendrycksTest-philosophy": 0, + "hendrycksTest-moral_scenarios": 0, + "hendrycksTest-college_chemistry": 0, + "hendrycksTest-machine_learning": 0, + "hendrycksTest-professional_accounting": 0, + "hendrycksTest-professional_law": 0, + "hendrycksTest-college_medicine": 0, + "hendrycksTest-global_facts": 0, + "hendrycksTest-human_aging": 0 + }, + "config": { + "model": "stabilityai/stablelm-base-alpha-3b-v2", + "num_fewshot": 5, + "batch_size": 8, + "device": "cuda:0", + "no_cache": true, + "limit": null, + "bootstrap_iters": 10000, + "description_dict": null + } +} \ No newline at end of file diff --git a/evals/open_llm_leaderboard/stablelm-beta-3b-v2-truthfulqa_mc.json b/evals/open_llm_leaderboard/stablelm-beta-3b-v2-truthfulqa_mc.json new file mode 100644 index 0000000..2b84b6d --- /dev/null +++ b/evals/open_llm_leaderboard/stablelm-beta-3b-v2-truthfulqa_mc.json @@ -0,0 +1,21 @@ +{ + "results": { + "truthfulqa_mc": { + "mc1": 0.22399020807833536, + "mc2": 0.35873137294835583 + } + }, + "versions": { + "truthfulqa_mc": 1 + }, + "config": { + "model": "stabilityai/stablelm-base-alpha-3b-v2", + "num_fewshot": 0, + "batch_size": 8, + "device": "cuda:0", + "no_cache": true, + "limit": null, + "bootstrap_iters": 10000, + "description_dict": null + } +} \ No newline at end of file diff --git a/evals/open_llm_leaderboard/stablelm-beta-7b-v2-arc-challenge.json b/evals/open_llm_leaderboard/stablelm-beta-7b-v2-arc-challenge.json new file mode 100644 index 0000000..7027cf6 --- /dev/null +++ b/evals/open_llm_leaderboard/stablelm-beta-7b-v2-arc-challenge.json @@ -0,0 +1,21 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.431740614334471, + "acc_norm": 0.4726962457337884 + } + }, + "versions": { + "arc_challenge": 0 + }, + "config": { + "model": "stabilityai/stablelm-base-alpha-7b-v2", + "num_fewshot": 25, + "batch_size": 8, + "device": "cuda:0", + "no_cache": true, + "limit": null, + "bootstrap_iters": 10000, + "description_dict": null + } +} \ No newline at end of file diff --git a/evals/open_llm_leaderboard/stablelm-beta-7b-v2-hellaswag.json b/evals/open_llm_leaderboard/stablelm-beta-7b-v2-hellaswag.json new file mode 100644 index 0000000..31380e1 --- /dev/null +++ b/evals/open_llm_leaderboard/stablelm-beta-7b-v2-hellaswag.json @@ -0,0 +1,21 @@ +{ + "results": { + "hellaswag": { + "acc": 0.5721967735510854, + "acc_norm": 0.7706632144991038 + } + }, + "versions": { + "hellaswag": 0 + }, + "config": { + "model": "stabilityai/stablelm-base-alpha-7b-v2", + "num_fewshot": 10, + "batch_size": 8, + "device": "cuda:0", + "no_cache": true, + "limit": null, + "bootstrap_iters": 10000, + "description_dict": null + } +} \ No newline at end of file diff --git a/evals/open_llm_leaderboard/stablelm-beta-7b-v2-mmmlu.json b/evals/open_llm_leaderboard/stablelm-beta-7b-v2-mmmlu.json new file mode 100644 index 0000000..1d2f0e0 --- /dev/null +++ b/evals/open_llm_leaderboard/stablelm-beta-7b-v2-mmmlu.json @@ -0,0 +1,301 @@ +{ + "results": { + "hendrycksTest-high_school_european_history": { + "acc": 0.48484848484848486, + "acc_norm": 0.47878787878787876 + }, + "hendrycksTest-college_chemistry": { + "acc": 0.29, + "acc_norm": 0.28 + }, + "hendrycksTest-international_law": { + "acc": 0.38016528925619836, + "acc_norm": 0.4214876033057851 + }, + "hendrycksTest-high_school_macroeconomics": { + "acc": 0.36153846153846153, + "acc_norm": 0.35128205128205126 + }, + "hendrycksTest-miscellaneous": { + "acc": 0.6513409961685823, + "acc_norm": 0.644955300127714 + }, + "hendrycksTest-professional_law": { + "acc": 0.31877444589308995, + "acc_norm": 0.3116036505867014 + }, + "hendrycksTest-medical_genetics": { + "acc": 0.51, + "acc_norm": 0.55 + }, + "hendrycksTest-high_school_world_history": { + "acc": 0.3881856540084388, + "acc_norm": 0.4050632911392405 + }, + "hendrycksTest-professional_medicine": { + "acc": 0.4742647058823529, + "acc_norm": 0.44485294117647056 + }, + "hendrycksTest-moral_disputes": { + "acc": 0.42196531791907516, + "acc_norm": 0.430635838150289 + }, + "hendrycksTest-high_school_geography": { + "acc": 0.5404040404040404, + "acc_norm": 0.5454545454545454 + }, + "hendrycksTest-high_school_microeconomics": { + "acc": 0.42857142857142855, + "acc_norm": 0.42436974789915966 + }, + "hendrycksTest-machine_learning": { + "acc": 0.32142857142857145, + "acc_norm": 0.32142857142857145 + }, + "hendrycksTest-security_studies": { + "acc": 0.3510204081632653, + "acc_norm": 0.2612244897959184 + }, + "hendrycksTest-world_religions": { + "acc": 0.6608187134502924, + "acc_norm": 0.695906432748538 + }, + "hendrycksTest-conceptual_physics": { + "acc": 0.40425531914893614, + "acc_norm": 0.3659574468085106 + }, + "hendrycksTest-high_school_physics": { + "acc": 0.2582781456953642, + "acc_norm": 0.2980132450331126 + }, + "hendrycksTest-nutrition": { + "acc": 0.43137254901960786, + "acc_norm": 0.45098039215686275 + }, + "hendrycksTest-high_school_psychology": { + "acc": 0.581651376146789, + "acc_norm": 0.5614678899082569 + }, + "hendrycksTest-professional_accounting": { + "acc": 0.2907801418439716, + "acc_norm": 0.30141843971631205 + }, + "hendrycksTest-human_aging": { + "acc": 0.4304932735426009, + "acc_norm": 0.39461883408071746 + }, + "hendrycksTest-college_physics": { + "acc": 0.35294117647058826, + "acc_norm": 0.3627450980392157 + }, + "hendrycksTest-high_school_chemistry": { + "acc": 0.28078817733990147, + "acc_norm": 0.3054187192118227 + }, + "hendrycksTest-high_school_biology": { + "acc": 0.4290322580645161, + "acc_norm": 0.43548387096774194 + }, + "hendrycksTest-us_foreign_policy": { + "acc": 0.57, + "acc_norm": 0.53 + }, + "hendrycksTest-philosophy": { + "acc": 0.4758842443729904, + "acc_norm": 0.4662379421221865 + }, + "hendrycksTest-logical_fallacies": { + "acc": 0.4110429447852761, + "acc_norm": 0.4294478527607362 + }, + "hendrycksTest-anatomy": { + "acc": 0.48148148148148145, + "acc_norm": 0.4888888888888889 + }, + "hendrycksTest-jurisprudence": { + "acc": 0.4351851851851852, + "acc_norm": 0.5 + }, + "hendrycksTest-high_school_computer_science": { + "acc": 0.41, + "acc_norm": 0.46 + }, + "hendrycksTest-elementary_mathematics": { + "acc": 0.32275132275132273, + "acc_norm": 0.32275132275132273 + }, + "hendrycksTest-abstract_algebra": { + "acc": 0.27, + "acc_norm": 0.28 + }, + "hendrycksTest-prehistory": { + "acc": 0.44753086419753085, + "acc_norm": 0.44135802469135804 + }, + "hendrycksTest-moral_scenarios": { + "acc": 0.2581005586592179, + "acc_norm": 0.26033519553072626 + }, + "hendrycksTest-college_medicine": { + "acc": 0.4161849710982659, + "acc_norm": 0.41040462427745666 + }, + "hendrycksTest-econometrics": { + "acc": 0.2982456140350877, + "acc_norm": 0.2807017543859649 + }, + "hendrycksTest-human_sexuality": { + "acc": 0.5038167938931297, + "acc_norm": 0.4961832061068702 + }, + "hendrycksTest-management": { + "acc": 0.5242718446601942, + "acc_norm": 0.5339805825242718 + }, + "hendrycksTest-computer_security": { + "acc": 0.57, + "acc_norm": 0.54 + }, + "hendrycksTest-college_computer_science": { + "acc": 0.38, + "acc_norm": 0.34 + }, + "hendrycksTest-public_relations": { + "acc": 0.5636363636363636, + "acc_norm": 0.5454545454545454 + }, + "hendrycksTest-sociology": { + "acc": 0.5522388059701493, + "acc_norm": 0.5124378109452736 + }, + "hendrycksTest-global_facts": { + "acc": 0.29, + "acc_norm": 0.28 + }, + "hendrycksTest-astronomy": { + "acc": 0.42105263157894735, + "acc_norm": 0.42105263157894735 + }, + "hendrycksTest-high_school_statistics": { + "acc": 0.27314814814814814, + "acc_norm": 0.2916666666666667 + }, + "hendrycksTest-professional_psychology": { + "acc": 0.40522875816993464, + "acc_norm": 0.39052287581699346 + }, + "hendrycksTest-high_school_us_history": { + "acc": 0.37745098039215685, + "acc_norm": 0.39705882352941174 + }, + "hendrycksTest-business_ethics": { + "acc": 0.42, + "acc_norm": 0.44 + }, + "hendrycksTest-clinical_knowledge": { + "acc": 0.42641509433962266, + "acc_norm": 0.4226415094339623 + }, + "hendrycksTest-college_biology": { + "acc": 0.4236111111111111, + "acc_norm": 0.4166666666666667 + }, + "hendrycksTest-formal_logic": { + "acc": 0.42063492063492064, + "acc_norm": 0.40476190476190477 + }, + "hendrycksTest-marketing": { + "acc": 0.6965811965811965, + "acc_norm": 0.6837606837606838 + }, + "hendrycksTest-college_mathematics": { + "acc": 0.23, + "acc_norm": 0.29 + }, + "hendrycksTest-electrical_engineering": { + "acc": 0.4827586206896552, + "acc_norm": 0.4 + }, + "hendrycksTest-high_school_government_and_politics": { + "acc": 0.5284974093264249, + "acc_norm": 0.5492227979274611 + }, + "hendrycksTest-virology": { + "acc": 0.37349397590361444, + "acc_norm": 0.39759036144578314 + }, + "hendrycksTest-high_school_mathematics": { + "acc": 0.2518518518518518, + "acc_norm": 0.28888888888888886 + } + }, + "versions": { + "hendrycksTest-high_school_european_history": 0, + "hendrycksTest-college_chemistry": 0, + "hendrycksTest-international_law": 0, + "hendrycksTest-high_school_macroeconomics": 0, + "hendrycksTest-miscellaneous": 0, + "hendrycksTest-professional_law": 0, + "hendrycksTest-medical_genetics": 0, + "hendrycksTest-high_school_world_history": 0, + "hendrycksTest-professional_medicine": 0, + "hendrycksTest-moral_disputes": 0, + "hendrycksTest-high_school_geography": 0, + "hendrycksTest-high_school_microeconomics": 0, + "hendrycksTest-machine_learning": 0, + "hendrycksTest-security_studies": 0, + "hendrycksTest-world_religions": 0, + "hendrycksTest-conceptual_physics": 0, + "hendrycksTest-high_school_physics": 0, + "hendrycksTest-nutrition": 0, + "hendrycksTest-high_school_psychology": 0, + "hendrycksTest-professional_accounting": 0, + "hendrycksTest-human_aging": 0, + "hendrycksTest-college_physics": 0, + "hendrycksTest-high_school_chemistry": 0, + "hendrycksTest-high_school_biology": 0, + "hendrycksTest-us_foreign_policy": 0, + "hendrycksTest-philosophy": 0, + "hendrycksTest-logical_fallacies": 0, + "hendrycksTest-anatomy": 0, + "hendrycksTest-jurisprudence": 0, + "hendrycksTest-high_school_computer_science": 0, + "hendrycksTest-elementary_mathematics": 0, + "hendrycksTest-abstract_algebra": 0, + "hendrycksTest-prehistory": 0, + "hendrycksTest-moral_scenarios": 0, + "hendrycksTest-college_medicine": 0, + "hendrycksTest-econometrics": 0, + "hendrycksTest-human_sexuality": 0, + "hendrycksTest-management": 0, + "hendrycksTest-computer_security": 0, + "hendrycksTest-college_computer_science": 0, + "hendrycksTest-public_relations": 0, + "hendrycksTest-sociology": 0, + "hendrycksTest-global_facts": 0, + "hendrycksTest-astronomy": 0, + "hendrycksTest-high_school_statistics": 0, + "hendrycksTest-professional_psychology": 0, + "hendrycksTest-high_school_us_history": 0, + "hendrycksTest-business_ethics": 0, + "hendrycksTest-clinical_knowledge": 0, + "hendrycksTest-college_biology": 0, + "hendrycksTest-formal_logic": 0, + "hendrycksTest-marketing": 0, + "hendrycksTest-college_mathematics": 0, + "hendrycksTest-electrical_engineering": 0, + "hendrycksTest-high_school_government_and_politics": 0, + "hendrycksTest-virology": 0, + "hendrycksTest-high_school_mathematics": 0 + }, + "config": { + "model": "stabilityai/stablelm-base-alpha-7b-v2", + "num_fewshot": 5, + "batch_size": 8, + "device": "cuda:0", + "no_cache": true, + "limit": null, + "bootstrap_iters": 10000, + "description_dict": null + } +} \ No newline at end of file diff --git a/evals/open_llm_leaderboard/stablelm-beta-7b-v2-truthfulqa_mc.json b/evals/open_llm_leaderboard/stablelm-beta-7b-v2-truthfulqa_mc.json new file mode 100644 index 0000000..c4aeadd --- /dev/null +++ b/evals/open_llm_leaderboard/stablelm-beta-7b-v2-truthfulqa_mc.json @@ -0,0 +1,21 @@ +{ + "results": { + "truthfulqa_mc": { + "mc1": 0.2423500611995104, + "mc2": 0.3645856452722409 + } + }, + "versions": { + "truthfulqa_mc": 1 + }, + "config": { + "model": "stabilityai/stablelm-base-alpha-7b-v2", + "num_fewshot": 0, + "batch_size": 8, + "device": "cuda:0", + "no_cache": true, + "limit": null, + "bootstrap_iters": 10000, + "description_dict": null + } +} \ No newline at end of file diff --git a/evals/stablelm-3b-4e1t.json b/evals/stablelm-3b-4e1t.json new file mode 100644 index 0000000..d2c90d8 --- /dev/null +++ b/evals/stablelm-3b-4e1t.json @@ -0,0 +1,84 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.3779863481228669, + "acc_stderr": 0.014169664520303103, + "acc_norm": 0.40017064846416384, + "acc_norm_stderr": 0.014317197787809169 + }, + "arc_easy": { + "acc": 0.7247474747474747, + "acc_stderr": 0.009164888895174743, + "acc_norm": 0.6771885521885522, + "acc_norm_stderr": 0.009593950220366743 + }, + "boolq": { + "acc": 0.7562691131498471, + "acc_stderr": 0.007509067459407977 + }, + "hellaswag": { + "acc": 0.5482971519617607, + "acc_stderr": 0.004966448380104203, + "acc_norm": 0.7389962158932484, + "acc_norm_stderr": 0.004382844128643414 + }, + "lambada_openai": { + "ppl": 3.827229437157901, + "ppl_stderr": 0.07919367133146168, + "acc": 0.7063846303124394, + "acc_stderr": 0.006344860619678723 + }, + "openbookqa": { + "acc": 0.314, + "acc_stderr": 0.020776701920308997, + "acc_norm": 0.398, + "acc_norm_stderr": 0.02191237788577997 + }, + "piqa": { + "acc": 0.7921653971708379, + "acc_stderr": 0.009466997964536423, + "acc_norm": 0.7976060935799782, + "acc_norm_stderr": 0.00937428968280767 + }, + "sciq": { + "acc": 0.948, + "acc_stderr": 0.007024624213817142, + "acc_norm": 0.919, + "acc_norm_stderr": 0.00863212103213998 + }, + "siqa": { + "acc": 0.41914022517911975, + "acc_stderr": 0.011165140708170328, + "acc_norm": 0.44319344933469806, + "acc_norm_stderr": 0.011240812731564952 + }, + "winogrande": { + "acc": 0.665351223362273, + "acc_stderr": 0.013261823629558375 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "pretrained=stablelm-3b-4e1t,dtype=bfloat16,trust_remote_code=True,low_cpu_mem_usage=True,use_fast=True", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda", + "no_cache": true, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/stablelm-base-alpha-3b-v2.json b/evals/stablelm-base-alpha-3b-v2.json new file mode 100644 index 0000000..0337f22 --- /dev/null +++ b/evals/stablelm-base-alpha-3b-v2.json @@ -0,0 +1,91 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.3242320819112628, + "acc_stderr": 0.013678810399518815, + "acc_norm": 0.3506825938566553, + "acc_norm_stderr": 0.013944635930726085 + }, + "arc_easy": { + "acc": 0.6725589225589226, + "acc_stderr": 0.009629415859100609, + "acc_norm": 0.6325757575757576, + "acc_norm_stderr": 0.009892552616211548 + }, + "boolq": { + "acc": 0.645565749235474, + "acc_stderr": 0.008366245832688784 + }, + "hellaswag": { + "acc": 0.5105556662019518, + "acc_stderr": 0.004988669343786956, + "acc_norm": 0.6858195578570006, + "acc_norm_stderr": 0.004632399677490817 + }, + "lambada_openai": { + "ppl": 3.995184075578421, + "ppl_stderr": 0.08502310534019014, + "acc": 0.7025033960799534, + "acc_stderr": 0.006369088639380684 + }, + "openbookqa": { + "acc": 0.264, + "acc_stderr": 0.019732885585922098, + "acc_norm": 0.386, + "acc_norm_stderr": 0.021793529219281165 + }, + "piqa": { + "acc": 0.7600652883569097, + "acc_stderr": 0.009963625892809545, + "acc_norm": 0.780195865070729, + "acc_norm_stderr": 0.00966195861665176 + }, + "sciq": { + "acc": 0.921, + "acc_stderr": 0.008534156773333438, + "acc_norm": 0.868, + "acc_norm_stderr": 0.01070937396352803 + }, + "siqa": { + "acc": 0.4247697031729785, + "acc_stderr": 0.011185271257671346, + "acc_norm": 0.4600818833162743, + "acc_norm_stderr": 0.011277955967920396 + }, + "truthfulqa_mc": { + "mc1": 0.22399020807833536, + "mc1_stderr": 0.014594964329474202, + "mc2": 0.35868737415331753, + "mc2_stderr": 0.013670666454421172 + }, + "winogrande": { + "acc": 0.6211523283346487, + "acc_stderr": 0.013633724603180328 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "truthfulqa_mc": 1, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=True,pretrained=stabilityai/stablelm-base-alpha-3b-v2,trust_remote_code=True,low_cpu_mem_usage=True,dtype=auto", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": "cuda:2", + "no_cache": false, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/stablelm-base-alpha-3b.json b/evals/stablelm-base-alpha-3b.json new file mode 100644 index 0000000..645b831 --- /dev/null +++ b/evals/stablelm-base-alpha-3b.json @@ -0,0 +1,91 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.2363481228668942, + "acc_stderr": 0.012414960524301829, + "acc_norm": 0.257679180887372, + "acc_norm_stderr": 0.012780770562768407 + }, + "arc_easy": { + "acc": 0.4473905723905724, + "acc_stderr": 0.010202832385415646, + "acc_norm": 0.42045454545454547, + "acc_norm_stderr": 0.010129114278546535 + }, + "boolq": { + "acc": 0.5764525993883792, + "acc_stderr": 0.008642220663071512 + }, + "hellaswag": { + "acc": 0.329416450906194, + "acc_stderr": 0.004690407826933909, + "acc_norm": 0.38309101772555265, + "acc_norm_stderr": 0.004851466623601455 + }, + "lambada_openai": { + "ppl": 20.187359473367042, + "ppl_stderr": 0.7391414436494796, + "acc": 0.4172326799922375, + "acc_stderr": 0.006869874864639983 + }, + "openbookqa": { + "acc": 0.17, + "acc_stderr": 0.016815633531393422, + "acc_norm": 0.294, + "acc_norm_stderr": 0.020395095484936614 + }, + "sciq": { + "acc": 0.717, + "acc_stderr": 0.01425181090648174, + "acc_norm": 0.649, + "acc_norm_stderr": 0.015100563798316403 + }, + "siqa": { + "acc": 0.3561924257932446, + "acc_stderr": 0.010836006561369118, + "acc_norm": 0.4094165813715456, + "acc_norm_stderr": 0.01112684957658903 + }, + "piqa": { + "acc": 0.6381936887921654, + "acc_stderr": 0.011211397313020371, + "acc_norm": 0.6273122959738846, + "acc_norm_stderr": 0.01128131833289774 + }, + "truthfulqa_mc": { + "mc1": 0.22399020807833536, + "mc1_stderr": 0.014594964329474205, + "mc2": 0.4052844601694033, + "mc2_stderr": 0.014547007787950397 + }, + "winogrande": { + "acc": 0.526440410418311, + "acc_stderr": 0.014032823874407229 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "truthfulqa_mc": 1, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=True,pretrained=stabilityai/stablelm-base-alpha-3b,trust_remote_code=True,low_cpu_mem_usage=True,dtype=auto", + "num_fewshot": 0, + "batch_size": "8", + "batch_sizes": [], + "device": null, + "no_cache": true, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/stablelm-base-alpha-7b-v2.json b/evals/stablelm-base-alpha-7b-v2.json new file mode 100644 index 0000000..35777cd --- /dev/null +++ b/evals/stablelm-base-alpha-7b-v2.json @@ -0,0 +1,91 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.3848122866894198, + "acc_stderr": 0.014218371065251107, + "acc_norm": 0.4052901023890785, + "acc_norm_stderr": 0.014346869060229334 + }, + "arc_easy": { + "acc": 0.7319023569023569, + "acc_stderr": 0.009089526578213694, + "acc_norm": 0.6910774410774411, + "acc_norm_stderr": 0.009481048387761353 + }, + "boolq": { + "acc": 0.7030581039755351, + "acc_stderr": 0.007991418738281637 + }, + "hellaswag": { + "acc": 0.5553674566819359, + "acc_stderr": 0.004959094146471525, + "acc_norm": 0.7426807408882693, + "acc_norm_stderr": 0.004362633637374482 + }, + "lambada_openai": { + "ppl": 3.366151815984524, + "ppl_stderr": 0.06573496070440447, + "acc": 0.7418979235396856, + "acc_stderr": 0.006096490478492321 + }, + "openbookqa": { + "acc": 0.304, + "acc_stderr": 0.020591649571224925, + "acc_norm": 0.418, + "acc_norm_stderr": 0.022080014812228134 + }, + "piqa": { + "acc": 0.7845484221980413, + "acc_stderr": 0.009592463115658117, + "acc_norm": 0.8019586507072906, + "acc_norm_stderr": 0.009298209954776726 + }, + "sciq": { + "acc": 0.939, + "acc_stderr": 0.007572076091557423, + "acc_norm": 0.917, + "acc_norm_stderr": 0.00872852720607479 + }, + "siqa": { + "acc": 0.4242579324462641, + "acc_stderr": 0.011183502662341787, + "acc_norm": 0.4692937563971341, + "acc_norm_stderr": 0.011292714928103489 + }, + "truthfulqa_mc": { + "mc1": 0.2423500611995104, + "mc1_stderr": 0.01500067437357034, + "mc2": 0.36457253410937596, + "mc2_stderr": 0.0135567172376818 + }, + "winogrande": { + "acc": 0.6882399368587214, + "acc_stderr": 0.013018571197638537 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "truthfulqa_mc": 1, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=True,pretrained=stabilityai/stablelm-base-alpha-7b-v2,trust_remote_code=True,low_cpu_mem_usage=True,dtype=auto", + "num_fewshot": 0, + "batch_size": "2", + "batch_sizes": [], + "device": "cuda:2", + "no_cache": false, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/evals/stablelm-base-alpha-7b.json b/evals/stablelm-base-alpha-7b.json new file mode 100644 index 0000000..fc13039 --- /dev/null +++ b/evals/stablelm-base-alpha-7b.json @@ -0,0 +1,91 @@ +{ + "results": { + "arc_challenge": { + "acc": 0.24829351535836178, + "acc_stderr": 0.012624912868089755, + "acc_norm": 0.27047781569965873, + "acc_norm_stderr": 0.012980954547659556 + }, + "arc_easy": { + "acc": 0.5054713804713805, + "acc_stderr": 0.01025916922861504, + "acc_norm": 0.44865319865319864, + "acc_norm_stderr": 0.010205540414612876 + }, + "boolq": { + "acc": 0.600611620795107, + "acc_stderr": 0.008566178448007831 + }, + "hellaswag": { + "acc": 0.3467436765584545, + "acc_stderr": 0.004749606196363328, + "acc_norm": 0.41216889065923124, + "acc_norm_stderr": 0.004912192800263316 + }, + "lambada_openai": { + "ppl": 9.459674222745228, + "ppl_stderr": 0.33183598007493614, + "acc": 0.5511352610130021, + "acc_stderr": 0.006929452414790843 + }, + "openbookqa": { + "acc": 0.214, + "acc_stderr": 0.018359797502387025, + "acc_norm": 0.32, + "acc_norm_stderr": 0.02088234048876181 + }, + "piqa": { + "acc": 0.6675734494015234, + "acc_stderr": 0.010991141557445587, + "acc_norm": 0.6735582154515778, + "acc_norm_stderr": 0.010940467046177304 + }, + "sciq": { + "acc": 0.801, + "acc_stderr": 0.012631649083099177, + "acc_norm": 0.697, + "acc_norm_stderr": 0.014539683710535257 + }, + "siqa": { + "acc": 0.394575230296827, + "acc_stderr": 0.011059713589720797, + "acc_norm": 0.4140225179119754, + "acc_norm_stderr": 0.011145545345176117 + }, + "truthfulqa_mc": { + "mc1": 0.23745410036719705, + "mc1_stderr": 0.014896277441041836, + "mc2": 0.3995908363542637, + "mc2_stderr": 0.014371652685680641 + }, + "winogrande": { + "acc": 0.5011838989739542, + "acc_stderr": 0.014052446290529012 + } + }, + "versions": { + "arc_challenge": 0, + "arc_easy": 0, + "boolq": 1, + "hellaswag": 0, + "lambada_openai": 0, + "openbookqa": 0, + "piqa": 0, + "sciq": 0, + "siqa": 0, + "truthfulqa_mc": 1, + "winogrande": 0 + }, + "config": { + "model": "gpt2", + "model_args": "use_fast=True,pretrained=stabilityai/stablelm-base-alpha-7b,trust_remote_code=True,low_cpu_mem_usage=True,dtype=auto", + "num_fewshot": 0, + "batch_size": "2", + "batch_sizes": [], + "device": "cuda:1", + "no_cache": true, + "limit": null, + "bootstrap_iters": 100000, + "description_dict": {} + } +} \ No newline at end of file diff --git a/notebooks/stablelm-alpha.ipynb b/notebooks/stablelm-alpha.ipynb new file mode 100644 index 0000000..417f067 --- /dev/null +++ b/notebooks/stablelm-alpha.ipynb @@ -0,0 +1,264 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": { + "id": "4weyZUFfgUlD" + }, + "source": [ + "# StableLM-Alpha\n", + "\n", + "[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/Stability-AI/StableLM//blob/main/notebooks/stablelm-alpha.ipynb)\n", + "\n", + "\n", + "\n", + "This notebook is designed to let you quickly generate text with the latest StableLM models (**StableLM-Alpha**) using Hugging Face's `transformers` library." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "8xicyuk_Ezuw" + }, + "outputs": [], + "source": [ + "!nvidia-smi" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "V1Da2YDX71IF" + }, + "outputs": [], + "source": [ + "!pip install -U pip\n", + "!pip install accelerate bitsandbytes torch transformers" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "cellView": "form", + "id": "sSifeGXKlIgY" + }, + "outputs": [], + "source": [ + "#@title Setup\n", + "\n", + "import torch\n", + "from transformers import AutoModelForCausalLM, AutoTokenizer, StoppingCriteria, StoppingCriteriaList\n", + "\n", + "from IPython.display import Markdown, display\n", + "def hr(): display(Markdown('---'))\n", + "def cprint(msg: str, color: str = \"blue\", **kwargs) -> None:\n", + " color_codes = {\n", + " \"blue\": \"\\033[34m\",\n", + " \"red\": \"\\033[31m\",\n", + " \"green\": \"\\033[32m\",\n", + " \"yellow\": \"\\033[33m\",\n", + " \"purple\": \"\\033[35m\",\n", + " \"cyan\": \"\\033[36m\",\n", + " }\n", + " \n", + " if color not in color_codes:\n", + " raise ValueError(f\"Invalid info color: `{color}`\")\n", + " \n", + " print(color_codes[color] + msg + \"\\033[0m\", **kwargs)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "cellView": "form", + "id": "dQZCeE-ujdzW" + }, + "outputs": [], + "source": [ + "#@title Pick Your Model\n", + "#@markdown Refer to Hugging Face docs for more information the parameters below: https://huggingface.co/docs/transformers/main/en/main_classes/model#transformers.PreTrainedModel.from_pretrained\n", + "\n", + "# Choose model name\n", + "model_name = \"stabilityai/stablelm-tuned-alpha-7b\" #@param [\"stabilityai/stablelm-tuned-alpha-7b\", \"stabilityai/stablelm-base-alpha-7b\", \"stabilityai/stablelm-tuned-alpha-3b\", \"stabilityai/stablelm-base-alpha-3b\"]\n", + "\n", + "cprint(f\"Using `{model_name}`\", color=\"blue\")\n", + "\n", + "# Select \"big model inference\" parameters\n", + "torch_dtype = \"float16\" #@param [\"float16\", \"bfloat16\", \"float\"]\n", + "load_in_8bit = False #@param {type:\"boolean\"}\n", + "device_map = \"auto\"\n", + "\n", + "cprint(f\"Loading with: `{torch_dtype=}, {load_in_8bit=}, {device_map=}`\")\n", + "\n", + "tokenizer = AutoTokenizer.from_pretrained(model_name)\n", + "model = AutoModelForCausalLM.from_pretrained(\n", + " model_name,\n", + " torch_dtype=getattr(torch, torch_dtype),\n", + " load_in_8bit=load_in_8bit,\n", + " device_map=device_map,\n", + " offload_folder=\"./offload\",\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "cellView": "form", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 327 + }, + "id": "P01Db-SVwtPO", + "outputId": "9911dead-44b8-43e2-de73-c40857131065" + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[34mSampling with: `max_new_tokens=128, temperature=0.7, top_k=0, top_p=0.9, do_sample=True`\u001b[0m\n" + ] + }, + { + "data": { + "text/markdown": [ + "---" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Can you write a song about a pirate at sea? \u001b[32mSure, here's a song about a pirate at sea:\n", + "\n", + "Verse 1:\n", + "There he was, a pirate so bold\n", + "Sailing the seas, his story untold\n", + "His name was Captain Jack, and he ruled the waves\n", + "A legend in the seas, he conquered all his foes\n", + "\n", + "Chorus:\n", + "Oh, Captain Jack, the pirate of the sea\n", + "Your bravery and your daring, set us all free\n", + "From the tyranny of the sea, you led us to glory\n", + "A legend in our hearts, you'll be remembered as our story\n", + "\n", + "Verse 2:\n", + "He sailed the\u001b[0m\n" + ] + } + ], + "source": [ + "#@title Generate Text\n", + "#@markdown Note: The model response is colored in green\n", + "\n", + "class StopOnTokens(StoppingCriteria):\n", + " def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool:\n", + " stop_ids = [50278, 50279, 50277, 1, 0]\n", + " for stop_id in stop_ids:\n", + " if input_ids[0][-1] == stop_id:\n", + " return True\n", + " return False\n", + "\n", + "# Process the user prompt\n", + "user_prompt = \"Can you write a song about a pirate at sea?\" #@param {type:\"string\"}\n", + "if \"tuned\" in model_name:\n", + " # Add system prompt for chat tuned models\n", + " system_prompt = \"\"\"<|SYSTEM|># StableLM Tuned (Alpha version)\n", + " - StableLM is a helpful and harmless open-source AI language model developed by StabilityAI.\n", + " - StableLM is excited to be able to help the user, but will refuse to do anything that could be considered harmful to the user.\n", + " - StableLM is more than just an information source, StableLM is also able to write poetry, short stories, and make jokes.\n", + " - StableLM will refuse to participate in anything that could harm a human.\n", + " \"\"\"\n", + " prompt = f\"{system_prompt}<|USER|>{user_prompt}<|ASSISTANT|>\"\n", + "else:\n", + " prompt = user_prompt\n", + "\n", + "# Sampling args\n", + "max_new_tokens = 128 #@param {type:\"slider\", min:32.0, max:3072.0, step:32}\n", + "temperature = 0.7 #@param {type:\"slider\", min:0.0, max:1.25, step:0.05}\n", + "top_k = 0 #@param {type:\"slider\", min:0.0, max:1.0, step:0.05}\n", + "top_p = 0.9 #@param {type:\"slider\", min:0.0, max:1.0, step:0.05}\n", + "do_sample = True #@param {type:\"boolean\"}\n", + "\n", + "cprint(f\"Sampling with: `{max_new_tokens=}, {temperature=}, {top_k=}, {top_p=}, {do_sample=}`\")\n", + "hr()\n", + "\n", + "# Create `generate` inputs\n", + "inputs = tokenizer(prompt, return_tensors=\"pt\")\n", + "inputs.to(model.device)\n", + "\n", + "# Generate\n", + "tokens = model.generate(\n", + " **inputs,\n", + " max_new_tokens=max_new_tokens,\n", + " temperature=temperature,\n", + " top_k=top_k,\n", + " top_p=top_p,\n", + " do_sample=do_sample,\n", + " pad_token_id=tokenizer.eos_token_id,\n", + " stopping_criteria=StoppingCriteriaList([StopOnTokens()])\n", + ")\n", + "\n", + "# Extract out only the completion tokens\n", + "completion_tokens = tokens[0][inputs['input_ids'].size(1):]\n", + "completion = tokenizer.decode(completion_tokens, skip_special_tokens=True)\n", + "\n", + "# Display\n", + "print(user_prompt + \" \", end=\"\")\n", + "cprint(completion, color=\"green\")" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "rIZm5uwaQLa4" + }, + "source": [ + "## License (Apache 2.0)\n", + "\n", + "Copyright (c) 2023 by [StabilityAI LTD](https://stability.ai/)\n", + "\n", + "Licensed under the Apache License, Version 2.0 (the \"License\");\n", + "you may not use this file except in compliance with the License.\n", + "You may obtain a copy of the License at\n", + "\n", + " http://www.apache.org/licenses/LICENSE-2.0\n", + "\n", + "Unless required by applicable law or agreed to in writing, software\n", + "distributed under the License is distributed on an \"AS IS\" BASIS,\n", + "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n", + "See the License for the specific language governing permissions and\n", + "limitations under the License." + ] + } + ], + "metadata": { + "accelerator": "GPU", + "colab": { + "machine_shape": "hm", + "provenance": [] + }, + "gpuClass": "standard", + "kernelspec": { + "display_name": "Python 3", + "name": "python3" + }, + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +}