From 0c2611600220d8191fe2e47ad85a858234c4a2cc Mon Sep 17 00:00:00 2001 From: ModelHub XC Date: Sun, 5 Jul 2026 15:44:12 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=EF=BC=8C=E7=94=B1ModelHub=20XC=E7=A4=BE=E5=8C=BA=E6=8F=90?= =?UTF-8?q?=E4=BE=9B=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Model: upstage/solar-pro-preview-instruct Source: Original Platform --- .gitattributes | 59 + LICENSE | 21 + README.md | 129 +++ added_tokens.json | 130 +++ config.json | 57 + configuration.json | 1 + configuration_solar.py | 206 ++++ generation_config.json | 11 + model-00001-of-00009.safetensors | 3 + model-00002-of-00009.safetensors | 3 + model-00003-of-00009.safetensors | 3 + model-00004-of-00009.safetensors | 3 + model-00005-of-00009.safetensors | 3 + model-00006-of-00009.safetensors | 3 + model-00007-of-00009.safetensors | 3 + model-00008-of-00009.safetensors | 3 + model-00009-of-00009.safetensors | 3 + model.safetensors.index.json | 586 ++++++++++ modeling_solar.py | 1745 ++++++++++++++++++++++++++++++ solar-pro-banner.png | Bin 0 -> 385058 bytes special_tokens_map.json | 30 + tokenizer.json | 3 + tokenizer.model | 3 + tokenizer_config.json | 1067 ++++++++++++++++++ vllm_solar.py | 552 ++++++++++ 25 files changed, 4627 insertions(+) create mode 100644 .gitattributes create mode 100644 LICENSE create mode 100644 README.md create mode 100644 added_tokens.json create mode 100644 config.json create mode 100644 configuration.json create mode 100644 configuration_solar.py create mode 100644 generation_config.json create mode 100644 model-00001-of-00009.safetensors create mode 100644 model-00002-of-00009.safetensors create mode 100644 model-00003-of-00009.safetensors create mode 100644 model-00004-of-00009.safetensors create mode 100644 model-00005-of-00009.safetensors create mode 100644 model-00006-of-00009.safetensors create mode 100644 model-00007-of-00009.safetensors create mode 100644 model-00008-of-00009.safetensors create mode 100644 model-00009-of-00009.safetensors create mode 100644 model.safetensors.index.json create mode 100644 modeling_solar.py create mode 100644 solar-pro-banner.png create mode 100644 special_tokens_map.json create mode 100644 tokenizer.json create mode 100644 tokenizer.model create mode 100644 tokenizer_config.json create mode 100644 vllm_solar.py diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..94d1674 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,59 @@ +*.7z filter=lfs diff=lfs merge=lfs -text +*.arrow filter=lfs diff=lfs merge=lfs -text +*.bin filter=lfs diff=lfs merge=lfs -text +*.bin.* filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.ftz filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.h5 filter=lfs diff=lfs merge=lfs -text +*.joblib filter=lfs diff=lfs merge=lfs -text +*.lfs.* filter=lfs diff=lfs merge=lfs -text + +*.msgpack filter=lfs diff=lfs merge=lfs -text +*.onnx filter=lfs diff=lfs merge=lfs -text +*.ot filter=lfs diff=lfs merge=lfs -text +*.parquet filter=lfs diff=lfs merge=lfs -text +*.pb filter=lfs diff=lfs merge=lfs -text +*.pt filter=lfs diff=lfs merge=lfs -text +*.pth filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +saved_model/**/* filter=lfs diff=lfs merge=lfs -text +*.tar.* filter=lfs diff=lfs merge=lfs -text +*.tflite filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zstandard filter=lfs diff=lfs merge=lfs -text +*.tfevents* filter=lfs diff=lfs merge=lfs -text +*.db* filter=lfs diff=lfs merge=lfs -text +*.ark* filter=lfs diff=lfs merge=lfs -text +**/*ckpt*data* filter=lfs diff=lfs merge=lfs -text +**/*ckpt*.meta filter=lfs diff=lfs merge=lfs -text +**/*ckpt*.index filter=lfs diff=lfs merge=lfs -text + +*.ckpt filter=lfs diff=lfs merge=lfs -text +*.gguf* filter=lfs diff=lfs merge=lfs -text +*.ggml filter=lfs diff=lfs merge=lfs -text +*.llamafile* filter=lfs diff=lfs merge=lfs -text +*.pt2 filter=lfs diff=lfs merge=lfs -text +*.mlmodel filter=lfs diff=lfs merge=lfs -text +*.npy filter=lfs diff=lfs merge=lfs -text +*.npz filter=lfs diff=lfs merge=lfs -text +*.pickle filter=lfs diff=lfs merge=lfs -text +*.pkl filter=lfs diff=lfs merge=lfs -text +*.tar filter=lfs diff=lfs merge=lfs -text +*.wasm filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text +*tfevents* filter=lfs diff=lfs merge=lfs -text + +model-00004-of-00009.safetensors filter=lfs diff=lfs merge=lfs -text +model-00006-of-00009.safetensors filter=lfs diff=lfs merge=lfs -text +model-00009-of-00009.safetensors filter=lfs diff=lfs merge=lfs -text +model-00003-of-00009.safetensors filter=lfs diff=lfs merge=lfs -text +model-00007-of-00009.safetensors filter=lfs diff=lfs merge=lfs -text +model-00001-of-00009.safetensors filter=lfs diff=lfs merge=lfs -text +model-00008-of-00009.safetensors filter=lfs diff=lfs merge=lfs -text +model-00005-of-00009.safetensors filter=lfs diff=lfs merge=lfs -text +model-00002-of-00009.safetensors filter=lfs diff=lfs merge=lfs -text +tokenizer.model filter=lfs diff=lfs merge=lfs -text +tokenizer.json filter=lfs diff=lfs merge=lfs -text \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f6958c1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Upstage Corporation. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..0f1d61c --- /dev/null +++ b/README.md @@ -0,0 +1,129 @@ +--- +license: mit +license_link: https://huggingface.co/upstage/solar-pro-preview-instruct/blob/main/LICENSE +language: +- en +pipeline_tag: text-generation +tags: +- nlp +library_name: transformers +--- + +

+ + + +

+ +# **Solar Pro Preview: The most intelligent LLM on a single GPU** + +# **Summary** + +We introduce **Solar Pro Preview**, an advanced large language model (LLM) with 22 billion parameters designed to [fit into a single GPU](https://www.upstage.ai/products/solar-pro-preview?utm_source=%08platform&utm_medium=huggingface&utm_campaign=solarpro-preview-launch). Solar Pro Preview shows superior performance compared to LLMs with less than 30 billion parameters and delivers performance comparable to models over three times its size, such as Llama 3.1 with 70 billion parameters. + +Solar Pro Preview is developed using an enhanced version of our previous depth up-scaling method, which scales a Phi-3-medium model with 14 billion parameters to 22 billion parameters, intended to run on a GPU with 80GB of VRAM. Our carefully curated training strategy and dataset have significantly enhanced performance from Phi-3-medium, particularly on the MMLU-Pro and IFEval benchmarks, both respected for evaluating a model’s knowledge and instruction-following abilities. + +Solar Pro Preview is a pre-release version of the official Solar Pro, with limitations on language coverage and a maximum context length of 4K. However, we believe Solar Pro Preview not only stands out as a highly efficient and capable model, but has the potential to be further extended to cover more languages and capabilities. The official version of Solar Pro will be released this November 2024 with expanded language support beyond English and longer context windows. To stay informed about the latest updates, please sign up for [our mailing list](https://www.upstage.ai/get-upstage-updates). If you have any feedback or questions about the model, please visit our [model discussion board](https://huggingface.co/upstage/solar-pro-preview-instruct/discussions) and connect with us directly. + +# **Usage** + +Solar Pro Preview is an instruction-tuned language model. This model is specifically designed to follow instructions and engage in conversational tasks. + +### Chat Template + +As an instruction-tuned model, Solar Pro Preview uses the ChatML template for optimal performance in conversational and instruction-following tasks. This approach aligns with the model's training data and is likely to yield more accurate and relevant responses. For instance, a question formatted in the ChatML template looks like the following, where the model generates the answer after <|im_start|>assistant. Note that system prompts are not currently supported in Solar Pro Preview. This feature will be available in the official release. + +``` +<|im_start|>user +Please, introduce yourself.<|im_end|> +<|im_start|>assistant +``` + +### Text Generation + +Below is an example inference code that details loading the model, applying the chat template, and generating the model answer. + +```python +# Install requirements +# !pip install transformers==4.44.2 torch==2.3.1 flash_attn==2.5.8 accelerate==0.31.0 + +# Load model +import torch +from transformers import AutoModelForCausalLM, AutoTokenizer +tokenizer = AutoTokenizer.from_pretrained("upstage/solar-pro-preview-instruct") +model = AutoModelForCausalLM.from_pretrained( + "upstage/solar-pro-preview-instruct", + device_map="cuda", + torch_dtype="auto", + trust_remote_code=True, +) +# Apply chat template +messages = [ + {"role": "user", "content": "Please, introduce yourself."}, +] +prompt = tokenizer.apply_chat_template(messages, return_tensors="pt", add_generation_prompt=True).to(model.device) +# Generate text +outputs = model.generate(prompt, max_new_tokens=512) +print(tokenizer.decode(outputs[0])) +``` + +Solar Pro Preview is also available as an API in [Upstage Console](https://go.upstage.ai/3Xl0Hqv) and we provide other easy-to-use methods as well. If you'd like to explore these options, please visit our [blog page](https://www.upstage.ai/products/solar-pro-preview?utm_source=%08platform&utm_medium=huggingface&utm_campaign=solarpro-preview-launch). + + +# **Evaluation** + +Solar Pro Preview is evaluated over a variety of benchmarks. + +| | Solar-pro-preview | Phi-3-medium-4K-instruct | Phi-3.5-MoE-instruct | Gemma 2 27B IT | Llama-3.1-8B-instruct | Llama-3.1-70B-instruct | +| ------------- | :---------------: | :----------------------: | :------------------: | :----------------------------------------: | :-------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------: | +| *Release Date* | 2024.09.08 | 2024.05.02 | 2024.08.20 | 2024.06.25 | 2024.06.18 | 2024.06.16 | +| *Model size* | 22B | 14B | 41.9B (6.6B) | 27B | 8B | 70B | +| *License* | MIT | MIT | MIT | [gemma](https://ai.google.dev/gemma/terms) | [llama3.1](https://huggingface.co/meta-llama/Meta-Llama-3.1-8B/blob/main/LICENSE) | [llama3.1](https://huggingface.co/meta-llama/Meta-Llama-3.1-8B/blob/main/LICENSE) | +| **MMLU** | 79.14 | 78.02 | 78.66 | 76.13 | 68.25 | 82.09 | +| **MMLU Pro** | 52.11 | 47.51 | 46.99 | 45.68 | 37.88 | 53.01 | +| **IFEval** | 84.37 | 64.37 | 69.15 | 75.36 | 77.40 | 84.13 | +| **ARC-C** | 68.86 | 66.55 | 68.34 | 74.06 | 60.24 | 70.39 | +| **GPQA** | 36.38 | 35.78 | 34.38 | 36.38 | 35.26 | 41.06 | +| **HellaSwag** | 86.36 | 85.68 | 85.97 | 86.02 | 80.08 | 86.42 | +| **EQBench** | 77.91 | 76.78 | 77.22 | 80.32 | 65.80 | 82.52 | +| **BigBench Hard** | 67.31 | 63.09 | 62.58 | 64.88 | 51.06 | 69.54 | +| **MUSR** | 45.85 | 42.28 | 46.79 | 45.67 | 29.68 | 47.22 | +| **GSM8K** | 89.69 | 84.76 | 82.26 | 62.85 | 75.97 | 92.12 | +| **MBPP** | 61.59 | 60.27 | N/A (\*) | 63.08 | 52.20 | 65.51 | + +(*) Since the model tends to generate a chat template, the score can't be accurately determined. + +### Evaluation Protocol + +For easy reproduction of our evaluation results, we list the evaluation tools and settings used below. All evaluations are conducted with NVIDIA DGX H100. + +| | Evaluation setting | Metric | Evaluation tool | +| ------------- | :-------------------- | :------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------- | +| MMLU | 5-shot | macro_avg / acc | [lm-eval-harness](https://github.com/EleutherAI/lm-evaluation-harness/tree/928e8bb6f50d1e93ef5d0bcaa81f8c5fd9a6f4d8) #928e8bb | +| MMLU Pro | 5-shot | macro_avg / acc | [lm-eval-harness](https://github.com/EleutherAI/lm-evaluation-harness/tree/928e8bb6f50d1e93ef5d0bcaa81f8c5fd9a6f4d8) #928e8bb | +| IFEval | 0-shot, chat_template | mean of prompt_level_strict_acc and instruction_level_strict_acc | [lm-eval-harness](https://github.com/EleutherAI/lm-evaluation-harness/tree/928e8bb6f50d1e93ef5d0bcaa81f8c5fd9a6f4d8) #928e8bb | +| ARC-C | 25-shot | acc_norm | [lm-eval-harness](https://github.com/EleutherAI/lm-evaluation-harness/tree/928e8bb6f50d1e93ef5d0bcaa81f8c5fd9a6f4d8) #928e8bb | +| GPQA | 0-shot | acc_norm | [lm-eval-harness](https://github.com/EleutherAI/lm-evaluation-harness/tree/928e8bb6f50d1e93ef5d0bcaa81f8c5fd9a6f4d8) #928e8bb | +| HellaSwag | 10-shot | acc_norm | [lm-eval-harness](https://github.com/EleutherAI/lm-evaluation-harness/tree/928e8bb6f50d1e93ef5d0bcaa81f8c5fd9a6f4d8) #928e8bb | +| EQBench | 0-shot, chat_template | eqbench score | [lm-eval-harness](https://github.com/EleutherAI/lm-evaluation-harness/tree/928e8bb6f50d1e93ef5d0bcaa81f8c5fd9a6f4d8) #928e8bb | +| BigBench Hard | 3-shot | macro_avg / acc_norm | [lm-eval-harness](https://github.com/EleutherAI/lm-evaluation-harness/tree/928e8bb6f50d1e93ef5d0bcaa81f8c5fd9a6f4d8) #928e8bb | +| MUSR | 0-shot | macro_avg / acc_norm | [lm-eval-harness](https://github.com/EleutherAI/lm-evaluation-harness/tree/928e8bb6f50d1e93ef5d0bcaa81f8c5fd9a6f4d8) #928e8bb | +| GSM8K | 8-shot, CoT | acc, exact_match & strict_extract | [lm-eval-harness](https://github.com/EleutherAI/lm-evaluation-harness/tree/928e8bb6f50d1e93ef5d0bcaa81f8c5fd9a6f4d8) #928e8bb | +| MBPP | 0-shot | pass@1 | [bigcode-evaluation-harness](https://github.com/bigcode-project/bigcode-evaluation-harness/tree/0f3e95f0806e78a4f432056cdb1be93604a51d69) #0f3e95f | + +The results may vary slightly for different batch sizes and experimental environment such as GPU type. + +# **Contact us** + +For any questions and suggestions regarding the model, please visit the [discussion board](https://huggingface.co/upstage/solar-pro-preview-instruct/discussions). + +Learn more: + +- [Chat with Solar Pro Preview](https://chat.upstage.ai) +- [Solar Pro Preview blog](https://www.upstage.ai/products/solar-pro-preview) +- [Solar Pro Preview developer documents](https://developers.upstage.ai/docs/apis/chat?utm_campaign=solarpro-preview-launch) + +Also try out: + +- [Document Parse](http://developers.upstage.ai/docs/apis/document-parse?utm_campaign=solarpro-preview-launch): An industry-leading model for converting complex document files to LLM-compatible HTML formats. +- [Solar DocVision Preview](http://developers.upstage.ai/docs/apis/document-qa?utm_campaign=solarpro-preview-launch): A vision LLM specialized on documents. \ No newline at end of file diff --git a/added_tokens.json b/added_tokens.json new file mode 100644 index 0000000..4bc7cb3 --- /dev/null +++ b/added_tokens.json @@ -0,0 +1,130 @@ +{ + "<|assistant|>": 32001, + "<|end|>": 32000, + "<|im_end|>": 32007, + "<|im_start|>": 32010, + "<|placeholder100|>": 32104, + "<|placeholder101|>": 32105, + "<|placeholder102|>": 32106, + "<|placeholder103|>": 32107, + "<|placeholder104|>": 32108, + "<|placeholder105|>": 32109, + "<|placeholder106|>": 32110, + "<|placeholder107|>": 32111, + "<|placeholder108|>": 32112, + "<|placeholder109|>": 32113, + "<|placeholder10|>": 32014, + "<|placeholder110|>": 32114, + "<|placeholder111|>": 32115, + "<|placeholder112|>": 32116, + "<|placeholder113|>": 32117, + "<|placeholder114|>": 32118, + "<|placeholder115|>": 32119, + "<|placeholder116|>": 32120, + "<|placeholder117|>": 32121, + "<|placeholder118|>": 32122, + "<|placeholder119|>": 32123, + "<|placeholder11|>": 32015, + "<|placeholder120|>": 32124, + "<|placeholder121|>": 32125, + "<|placeholder122|>": 32126, + "<|placeholder123|>": 32127, + "<|placeholder12|>": 32016, + "<|placeholder13|>": 32017, + "<|placeholder14|>": 32018, + "<|placeholder15|>": 32019, + "<|placeholder16|>": 32020, + "<|placeholder17|>": 32021, + "<|placeholder18|>": 32022, + "<|placeholder19|>": 32023, + "<|placeholder1|>": 32002, + "<|placeholder20|>": 32024, + "<|placeholder21|>": 32025, + "<|placeholder22|>": 32026, + "<|placeholder23|>": 32027, + "<|placeholder24|>": 32028, + "<|placeholder25|>": 32029, + "<|placeholder26|>": 32030, + "<|placeholder27|>": 32031, + "<|placeholder28|>": 32032, + "<|placeholder29|>": 32033, + "<|placeholder2|>": 32003, + "<|placeholder30|>": 32034, + "<|placeholder31|>": 32035, + "<|placeholder32|>": 32036, + "<|placeholder33|>": 32037, + "<|placeholder34|>": 32038, + "<|placeholder35|>": 32039, + "<|placeholder36|>": 32040, + "<|placeholder37|>": 32041, + "<|placeholder38|>": 32042, + "<|placeholder39|>": 32043, + "<|placeholder3|>": 32004, + "<|placeholder40|>": 32044, + "<|placeholder41|>": 32045, + "<|placeholder42|>": 32046, + "<|placeholder43|>": 32047, + "<|placeholder44|>": 32048, + "<|placeholder45|>": 32049, + "<|placeholder46|>": 32050, + "<|placeholder47|>": 32051, + "<|placeholder48|>": 32052, + "<|placeholder49|>": 32053, + "<|placeholder4|>": 32005, + "<|placeholder50|>": 32054, + "<|placeholder51|>": 32055, + "<|placeholder52|>": 32056, + "<|placeholder53|>": 32057, + "<|placeholder54|>": 32058, + "<|placeholder55|>": 32059, + "<|placeholder56|>": 32060, + "<|placeholder57|>": 32061, + "<|placeholder58|>": 32062, + "<|placeholder59|>": 32063, + "<|placeholder5|>": 32008, + "<|placeholder60|>": 32064, + "<|placeholder61|>": 32065, + "<|placeholder62|>": 32066, + "<|placeholder63|>": 32067, + "<|placeholder64|>": 32068, + "<|placeholder65|>": 32069, + "<|placeholder66|>": 32070, + "<|placeholder67|>": 32071, + "<|placeholder68|>": 32072, + "<|placeholder69|>": 32073, + "<|placeholder6|>": 32009, + "<|placeholder70|>": 32074, + "<|placeholder71|>": 32075, + "<|placeholder72|>": 32076, + "<|placeholder73|>": 32077, + "<|placeholder74|>": 32078, + "<|placeholder75|>": 32079, + "<|placeholder76|>": 32080, + "<|placeholder77|>": 32081, + "<|placeholder78|>": 32082, + "<|placeholder79|>": 32083, + "<|placeholder7|>": 32011, + "<|placeholder80|>": 32084, + "<|placeholder81|>": 32085, + "<|placeholder82|>": 32086, + "<|placeholder83|>": 32087, + "<|placeholder84|>": 32088, + "<|placeholder85|>": 32089, + "<|placeholder86|>": 32090, + "<|placeholder87|>": 32091, + "<|placeholder88|>": 32092, + "<|placeholder89|>": 32093, + "<|placeholder8|>": 32012, + "<|placeholder90|>": 32094, + "<|placeholder91|>": 32095, + "<|placeholder92|>": 32096, + "<|placeholder93|>": 32097, + "<|placeholder94|>": 32098, + "<|placeholder95|>": 32099, + "<|placeholder96|>": 32100, + "<|placeholder97|>": 32101, + "<|placeholder98|>": 32102, + "<|placeholder99|>": 32103, + "<|placeholder9|>": 32013, + "<|system|>": 32006 +} diff --git a/config.json b/config.json new file mode 100644 index 0000000..b02eafa --- /dev/null +++ b/config.json @@ -0,0 +1,57 @@ +{ + "architectures": [ + "SolarForCausalLM" + ], + "attention_bias": false, + "attention_dropout": 0.0, + "auto_map": { + "AutoConfig": "configuration_solar.SolarConfig", + "AutoModelForCausalLM": "modeling_solar.SolarForCausalLM" + }, + "bos_token_id": 1, + "bskcn_1": [ + 12, + 20, + 32, + 44 + ], + "bskcn_2": [ + 20, + 32 + ], + "bskcn_3": [ + 16, + 24, + 36, + 48 + ], + "bskcn_4": [ + 28, + 40 + ], + "bskcn_tv": [ + 0.9, + 0.8 + ], + "eos_token_id": 32007, + "hidden_act": "silu", + "hidden_size": 5120, + "initializer_range": 0.02, + "intermediate_size": 17920, + "max_position_embeddings": 4096, + "mlp_bias": false, + "model_type": "solar", + "num_attention_heads": 40, + "num_hidden_layers": 64, + "num_key_value_heads": 10, + "pretraining_tp": 1, + "rms_norm_eps": 1e-05, + "rope_scaling": null, + "rope_theta": 10000.0, + "sliding_window": 2047, + "tie_word_embeddings": false, + "torch_dtype": "bfloat16", + "transformers_version": "4.44.2", + "use_cache": true, + "vocab_size": 32128 +} diff --git a/configuration.json b/configuration.json new file mode 100644 index 0000000..bbeeda1 --- /dev/null +++ b/configuration.json @@ -0,0 +1 @@ +{"framework": "pytorch", "task": "text-generation", "allow_remote": true} \ No newline at end of file diff --git a/configuration_solar.py b/configuration_solar.py new file mode 100644 index 0000000..c559e83 --- /dev/null +++ b/configuration_solar.py @@ -0,0 +1,206 @@ +# coding=utf-8 +# Copyright 2022 EleutherAI and the HuggingFace Inc. team. All rights reserved. +# +# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX +# and OPT implementations in this library. It has been modified from its +# original forms to accommodate minor architectural differences compared +# to GPT-NeoX and OPT used by the Meta AI team that trained the model. +# +# 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. +"""Solar model configuration""" + +from transformers.configuration_utils import PretrainedConfig +from transformers.utils import logging + + +logger = logging.get_logger(__name__) + + +class SolarConfig(PretrainedConfig): + r""" + This is the configuration class to store the configuration of a [`SolarModel`]. It is used to instantiate an LLaMA + model according to the specified arguments, defining the model architecture. Instantiating a configuration with the + defaults will yield a similar configuration to that of the LLaMA-7B. + + Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the + documentation from [`PretrainedConfig`] for more information. + + + Args: + vocab_size (`int`, *optional*, defaults to 32000): + Vocabulary size of the LLaMA model. Defines the number of different tokens that can be represented by the + `inputs_ids` passed when calling [`SolarModel`] + hidden_size (`int`, *optional*, defaults to 4096): + Dimension of the hidden representations. + intermediate_size (`int`, *optional*, defaults to 11008): + Dimension of the MLP representations. + num_hidden_layers (`int`, *optional*, defaults to 32): + Number of hidden layers in the Transformer decoder. + num_attention_heads (`int`, *optional*, defaults to 32): + Number of attention heads for each attention layer in the Transformer decoder. + num_key_value_heads (`int`, *optional*): + This is the number of key_value heads that should be used to implement Grouped Query Attention. If + `num_key_value_heads=num_attention_heads`, the model will use Multi Head Attention (MHA), if + `num_key_value_heads=1` the model will use Multi Query Attention (MQA) otherwise GQA is used. When + converting a multi-head checkpoint to a GQA checkpoint, each group key and value head should be constructed + by meanpooling all the original heads within that group. For more details checkout [this + paper](https://arxiv.org/pdf/2305.13245.pdf). If it is not specified, will default to + `num_attention_heads`. + hidden_act (`str` or `function`, *optional*, defaults to `"silu"`): + The non-linear activation function (function or string) in the decoder. + max_position_embeddings (`int`, *optional*, defaults to 2048): + The maximum sequence length that this model might ever be used with. Solar 1 supports up to 2048 tokens, + Solar 2 up to 4096, CodeSolar up to 16384. + initializer_range (`float`, *optional*, defaults to 0.02): + The standard deviation of the truncated_normal_initializer for initializing all weight matrices. + rms_norm_eps (`float`, *optional*, defaults to 1e-06): + The epsilon used by the rms normalization layers. + use_cache (`bool`, *optional*, defaults to `True`): + Whether or not the model should return the last key/values attentions (not used by all models). Only + relevant if `config.is_decoder=True`. + pad_token_id (`int`, *optional*): + Padding token id. + bos_token_id (`int`, *optional*, defaults to 1): + Beginning of stream token id. + eos_token_id (`int`, *optional*, defaults to 2): + End of stream token id. + pretraining_tp (`int`, *optional*, defaults to 1): + Experimental feature. Tensor parallelism rank used during pretraining. Please refer to [this + document](https://huggingface.co/docs/transformers/main/perf_train_gpu_many#tensor-parallelism) to understand more about it. This value is + necessary to ensure exact reproducibility of the pretraining results. Please refer to [this + issue](https://github.com/pytorch/pytorch/issues/76232). + tie_word_embeddings (`bool`, *optional*, defaults to `False`): + Whether to tie weight embeddings + rope_theta (`float`, *optional*, defaults to 10000.0): + The base period of the RoPE embeddings. + rope_scaling (`Dict`, *optional*): + Dictionary containing the scaling configuration for the RoPE embeddings. Currently supports two scaling + strategies: linear and dynamic. Their scaling factor must be a float greater than 1. The expected format is + `{"type": strategy name, "factor": scaling factor}`. When using this flag, don't update + `max_position_embeddings` to the expected new maximum. See the following thread for more information on how + these scaling strategies behave: + https://www.reddit.com/r/LocalLLaMA/comments/14mrgpr/dynamically_scaled_rope_further_increases/. This is an + experimental feature, subject to breaking API changes in future versions. + attention_bias (`bool`, *optional*, defaults to `False`): + Whether to use a bias in the query, key, value and output projection layers during self-attention. + attention_dropout (`float`, *optional*, defaults to 0.0): + The dropout ratio for the attention probabilities. + mlp_bias (`bool`, *optional*, defaults to `False`): + Whether to use a bias in up_proj, down_proj and gate_proj layers in the MLP layers. + sliding_window (`int`, *optional*, defaults to 2047): + Sliding window attention window size. If not specified, will default to `2047`. + + ```python + >>> from transformers import SolarModel, SolarConfig + + >>> # Initializing a Solar-pro style configuration + >>> configuration = SolarConfig() + + >>> # Initializing a model from the Solar-pro style configuration + >>> model = SolarModel(configuration) + + >>> # Accessing the model configuration + >>> configuration = model.config + ```""" + + model_type = "solar" + keys_to_ignore_at_inference = ["past_key_values"] + + def __init__( + self, + vocab_size=32000, + hidden_size=4096, + intermediate_size=11008, + num_hidden_layers=32, + num_attention_heads=32, + num_key_value_heads=None, + hidden_act="silu", + max_position_embeddings=2048, + initializer_range=0.02, + rms_norm_eps=1e-6, + use_cache=True, + pad_token_id=None, + bos_token_id=1, + eos_token_id=2, + pretraining_tp=1, + tie_word_embeddings=False, + rope_theta=10000.0, + rope_scaling=None, + attention_bias=False, + attention_dropout=0.0, + mlp_bias=False, + sliding_window=2047, + bskcn_1=[12, 20, 32, 44], + bskcn_2=[20, 32], + bskcn_3=[16, 24, 36, 48], + bskcn_4=[28, 40], + bskcn_tv=[0.9,0.8], + **kwargs, + ): + self.vocab_size = vocab_size + self.max_position_embeddings = max_position_embeddings + self.hidden_size = hidden_size + self.intermediate_size = intermediate_size + self.num_hidden_layers = num_hidden_layers + self.num_attention_heads = num_attention_heads + + # for backward compatibility + if num_key_value_heads is None: + num_key_value_heads = num_attention_heads + + self.num_key_value_heads = num_key_value_heads + self.hidden_act = hidden_act + self.initializer_range = initializer_range + self.rms_norm_eps = rms_norm_eps + self.pretraining_tp = pretraining_tp + self.use_cache = use_cache + self.rope_theta = rope_theta + self.rope_scaling = rope_scaling + self._rope_scaling_validation() + self.attention_bias = attention_bias + self.attention_dropout = attention_dropout + self.mlp_bias = mlp_bias + self.sliding_window = sliding_window + self.bskcn_1 = bskcn_1 + self.bskcn_2 = bskcn_2 + self.bskcn_3 = bskcn_3 + self.bskcn_4 = bskcn_4 + self.bskcn_tv = bskcn_tv + + super().__init__( + pad_token_id=pad_token_id, + bos_token_id=bos_token_id, + eos_token_id=eos_token_id, + tie_word_embeddings=tie_word_embeddings, + **kwargs, + ) + + def _rope_scaling_validation(self): + """ + Validate the `rope_scaling` configuration. + """ + if self.rope_scaling is None: + return + + if not isinstance(self.rope_scaling, dict) or len(self.rope_scaling) != 2: + raise ValueError( + "`rope_scaling` must be a dictionary with two fields, `type` and `factor`, " f"got {self.rope_scaling}" + ) + rope_scaling_type = self.rope_scaling.get("type", None) + rope_scaling_factor = self.rope_scaling.get("factor", None) + if rope_scaling_type is None or rope_scaling_type not in ["linear", "dynamic"]: + raise ValueError( + f"`rope_scaling`'s type field must be one of ['linear', 'dynamic'], got {rope_scaling_type}" + ) + if rope_scaling_factor is None or not isinstance(rope_scaling_factor, float) or rope_scaling_factor <= 1.0: + raise ValueError(f"`rope_scaling`'s factor field must be a float > 1, got {rope_scaling_factor}") \ No newline at end of file diff --git a/generation_config.json b/generation_config.json new file mode 100644 index 0000000..3f8a313 --- /dev/null +++ b/generation_config.json @@ -0,0 +1,11 @@ +{ + "_from_model_config": true, + "bos_token_id": 1, + "eos_token_id": [ + 2, + 32000, + 32007 + ], + "use_cache": true, + "transformers_version": "4.44.2" +} diff --git a/model-00001-of-00009.safetensors b/model-00001-of-00009.safetensors new file mode 100644 index 0000000..784f6fc --- /dev/null +++ b/model-00001-of-00009.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bce5ef2fe88dbf56e12271e674d40408d8884fbcd2878179904be71f8d311bfa +size 4916640672 diff --git a/model-00002-of-00009.safetensors b/model-00002-of-00009.safetensors new file mode 100644 index 0000000..4acb4f9 --- /dev/null +++ b/model-00002-of-00009.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8aeb0f191bfa0ff6a5316fcc99e817dfef70c7c7fcf1bf7423c1c0d0c145d7b3 +size 4954693120 diff --git a/model-00003-of-00009.safetensors b/model-00003-of-00009.safetensors new file mode 100644 index 0000000..9e301e0 --- /dev/null +++ b/model-00003-of-00009.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d3565f2a2f9d6820f9457e6890bc0ed480786022fa023d0b5c69d5bcfc9e2ed7 +size 4902243992 diff --git a/model-00004-of-00009.safetensors b/model-00004-of-00009.safetensors new file mode 100644 index 0000000..ec93463 --- /dev/null +++ b/model-00004-of-00009.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cbb538fb3e865651a8243160df5ee1bd0dd7ab9f9e624bac2946a7d63e5b8d8c +size 4954672440 diff --git a/model-00005-of-00009.safetensors b/model-00005-of-00009.safetensors new file mode 100644 index 0000000..ce374d8 --- /dev/null +++ b/model-00005-of-00009.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a93c34d1340d596ca741a2bf037ca3892b30e6166b745dd2f41d99de5309e08 +size 4954672432 diff --git a/model-00006-of-00009.safetensors b/model-00006-of-00009.safetensors new file mode 100644 index 0000000..3db6630 --- /dev/null +++ b/model-00006-of-00009.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:813a5b5c0623d9fe090972c27e535147be0e76ebaaa3f90847dfaa02bded02b1 +size 4954693144 diff --git a/model-00007-of-00009.safetensors b/model-00007-of-00009.safetensors new file mode 100644 index 0000000..77a3975 --- /dev/null +++ b/model-00007-of-00009.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4c5b2f4d811d8e1568b745382b532dc911ce905af109bdabd6357de55466b61 +size 4902243992 diff --git a/model-00008-of-00009.safetensors b/model-00008-of-00009.safetensors new file mode 100644 index 0000000..4e738ba --- /dev/null +++ b/model-00008-of-00009.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e3b715fd390c37b43bf91e280e89921ca056c5b28f028868f5790ef55a504943 +size 4954672440 diff --git a/model-00009-of-00009.safetensors b/model-00009-of-00009.safetensors new file mode 100644 index 0000000..b4e5bd2 --- /dev/null +++ b/model-00009-of-00009.safetensors @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0af544234a1e6f6dcbf25323f848003b639df26e5d9892e87d59a67118f39a2a +size 4785599296 diff --git a/model.safetensors.index.json b/model.safetensors.index.json new file mode 100644 index 0000000..7c24888 --- /dev/null +++ b/model.safetensors.index.json @@ -0,0 +1,586 @@ +{ + "metadata": { + "total_size": 44280064000 + }, + "weight_map": { + "lm_head.weight": "model-00009-of-00009.safetensors", + "model.embed_tokens.weight": "model-00001-of-00009.safetensors", + "model.layers.0.input_layernorm.weight": "model-00001-of-00009.safetensors", + "model.layers.0.mlp.down_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.0.mlp.gate_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.0.mlp.up_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.0.post_attention_layernorm.weight": "model-00001-of-00009.safetensors", + "model.layers.0.self_attn.k_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.0.self_attn.o_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.0.self_attn.q_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.0.self_attn.v_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.1.input_layernorm.weight": "model-00001-of-00009.safetensors", + "model.layers.1.mlp.down_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.1.mlp.gate_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.1.mlp.up_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.1.post_attention_layernorm.weight": "model-00001-of-00009.safetensors", + "model.layers.1.self_attn.k_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.1.self_attn.o_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.1.self_attn.q_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.1.self_attn.v_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.10.input_layernorm.weight": "model-00002-of-00009.safetensors", + "model.layers.10.mlp.down_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.10.mlp.gate_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.10.mlp.up_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.10.post_attention_layernorm.weight": "model-00002-of-00009.safetensors", + "model.layers.10.self_attn.k_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.10.self_attn.o_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.10.self_attn.q_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.10.self_attn.v_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.11.input_layernorm.weight": "model-00002-of-00009.safetensors", + "model.layers.11.mlp.down_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.11.mlp.gate_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.11.mlp.up_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.11.post_attention_layernorm.weight": "model-00002-of-00009.safetensors", + "model.layers.11.self_attn.k_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.11.self_attn.o_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.11.self_attn.q_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.11.self_attn.v_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.12.input_layernorm.weight": "model-00002-of-00009.safetensors", + "model.layers.12.mlp.down_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.12.mlp.gate_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.12.mlp.up_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.12.post_attention_layernorm.weight": "model-00002-of-00009.safetensors", + "model.layers.12.self_attn.k_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.12.self_attn.o_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.12.self_attn.q_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.12.self_attn.v_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.13.input_layernorm.weight": "model-00002-of-00009.safetensors", + "model.layers.13.mlp.down_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.13.mlp.gate_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.13.mlp.up_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.13.post_attention_layernorm.weight": "model-00002-of-00009.safetensors", + "model.layers.13.self_attn.k_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.13.self_attn.o_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.13.self_attn.q_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.13.self_attn.v_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.14.input_layernorm.weight": "model-00003-of-00009.safetensors", + "model.layers.14.mlp.down_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.14.mlp.gate_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.14.mlp.up_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.14.post_attention_layernorm.weight": "model-00003-of-00009.safetensors", + "model.layers.14.self_attn.k_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.14.self_attn.o_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.14.self_attn.q_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.14.self_attn.v_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.15.input_layernorm.weight": "model-00003-of-00009.safetensors", + "model.layers.15.mlp.down_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.15.mlp.gate_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.15.mlp.up_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.15.post_attention_layernorm.weight": "model-00003-of-00009.safetensors", + "model.layers.15.self_attn.k_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.15.self_attn.o_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.15.self_attn.q_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.15.self_attn.v_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.16.input_layernorm.weight": "model-00003-of-00009.safetensors", + "model.layers.16.mlp.down_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.16.mlp.gate_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.16.mlp.up_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.16.post_attention_layernorm.weight": "model-00003-of-00009.safetensors", + "model.layers.16.self_attn.k_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.16.self_attn.o_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.16.self_attn.q_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.16.self_attn.v_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.17.input_layernorm.weight": "model-00003-of-00009.safetensors", + "model.layers.17.mlp.down_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.17.mlp.gate_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.17.mlp.up_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.17.post_attention_layernorm.weight": "model-00003-of-00009.safetensors", + "model.layers.17.self_attn.k_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.17.self_attn.o_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.17.self_attn.q_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.17.self_attn.v_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.18.input_layernorm.weight": "model-00003-of-00009.safetensors", + "model.layers.18.mlp.down_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.18.mlp.gate_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.18.mlp.up_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.18.post_attention_layernorm.weight": "model-00003-of-00009.safetensors", + "model.layers.18.self_attn.k_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.18.self_attn.o_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.18.self_attn.q_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.18.self_attn.v_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.19.input_layernorm.weight": "model-00003-of-00009.safetensors", + "model.layers.19.mlp.down_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.19.mlp.gate_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.19.mlp.up_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.19.post_attention_layernorm.weight": "model-00003-of-00009.safetensors", + "model.layers.19.self_attn.k_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.19.self_attn.o_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.19.self_attn.q_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.19.self_attn.v_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.2.input_layernorm.weight": "model-00001-of-00009.safetensors", + "model.layers.2.mlp.down_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.2.mlp.gate_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.2.mlp.up_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.2.post_attention_layernorm.weight": "model-00001-of-00009.safetensors", + "model.layers.2.self_attn.k_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.2.self_attn.o_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.2.self_attn.q_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.2.self_attn.v_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.20.input_layernorm.weight": "model-00003-of-00009.safetensors", + "model.layers.20.mlp.down_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.20.mlp.gate_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.20.mlp.up_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.20.post_attention_layernorm.weight": "model-00003-of-00009.safetensors", + "model.layers.20.self_attn.k_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.20.self_attn.o_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.20.self_attn.q_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.20.self_attn.v_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.21.input_layernorm.weight": "model-00004-of-00009.safetensors", + "model.layers.21.mlp.down_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.21.mlp.gate_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.21.mlp.up_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.21.post_attention_layernorm.weight": "model-00004-of-00009.safetensors", + "model.layers.21.self_attn.k_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.21.self_attn.o_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.21.self_attn.q_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.21.self_attn.v_proj.weight": "model-00003-of-00009.safetensors", + "model.layers.22.input_layernorm.weight": "model-00004-of-00009.safetensors", + "model.layers.22.mlp.down_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.22.mlp.gate_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.22.mlp.up_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.22.post_attention_layernorm.weight": "model-00004-of-00009.safetensors", + "model.layers.22.self_attn.k_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.22.self_attn.o_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.22.self_attn.q_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.22.self_attn.v_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.23.input_layernorm.weight": "model-00004-of-00009.safetensors", + "model.layers.23.mlp.down_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.23.mlp.gate_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.23.mlp.up_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.23.post_attention_layernorm.weight": "model-00004-of-00009.safetensors", + "model.layers.23.self_attn.k_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.23.self_attn.o_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.23.self_attn.q_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.23.self_attn.v_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.24.input_layernorm.weight": "model-00004-of-00009.safetensors", + "model.layers.24.mlp.down_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.24.mlp.gate_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.24.mlp.up_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.24.post_attention_layernorm.weight": "model-00004-of-00009.safetensors", + "model.layers.24.self_attn.k_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.24.self_attn.o_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.24.self_attn.q_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.24.self_attn.v_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.25.input_layernorm.weight": "model-00004-of-00009.safetensors", + "model.layers.25.mlp.down_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.25.mlp.gate_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.25.mlp.up_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.25.post_attention_layernorm.weight": "model-00004-of-00009.safetensors", + "model.layers.25.self_attn.k_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.25.self_attn.o_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.25.self_attn.q_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.25.self_attn.v_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.26.input_layernorm.weight": "model-00004-of-00009.safetensors", + "model.layers.26.mlp.down_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.26.mlp.gate_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.26.mlp.up_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.26.post_attention_layernorm.weight": "model-00004-of-00009.safetensors", + "model.layers.26.self_attn.k_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.26.self_attn.o_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.26.self_attn.q_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.26.self_attn.v_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.27.input_layernorm.weight": "model-00004-of-00009.safetensors", + "model.layers.27.mlp.down_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.27.mlp.gate_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.27.mlp.up_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.27.post_attention_layernorm.weight": "model-00004-of-00009.safetensors", + "model.layers.27.self_attn.k_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.27.self_attn.o_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.27.self_attn.q_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.27.self_attn.v_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.28.input_layernorm.weight": "model-00005-of-00009.safetensors", + "model.layers.28.mlp.down_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.28.mlp.gate_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.28.mlp.up_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.28.post_attention_layernorm.weight": "model-00005-of-00009.safetensors", + "model.layers.28.self_attn.k_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.28.self_attn.o_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.28.self_attn.q_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.28.self_attn.v_proj.weight": "model-00004-of-00009.safetensors", + "model.layers.29.input_layernorm.weight": "model-00005-of-00009.safetensors", + "model.layers.29.mlp.down_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.29.mlp.gate_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.29.mlp.up_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.29.post_attention_layernorm.weight": "model-00005-of-00009.safetensors", + "model.layers.29.self_attn.k_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.29.self_attn.o_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.29.self_attn.q_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.29.self_attn.v_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.3.input_layernorm.weight": "model-00001-of-00009.safetensors", + "model.layers.3.mlp.down_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.3.mlp.gate_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.3.mlp.up_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.3.post_attention_layernorm.weight": "model-00001-of-00009.safetensors", + "model.layers.3.self_attn.k_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.3.self_attn.o_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.3.self_attn.q_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.3.self_attn.v_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.30.input_layernorm.weight": "model-00005-of-00009.safetensors", + "model.layers.30.mlp.down_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.30.mlp.gate_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.30.mlp.up_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.30.post_attention_layernorm.weight": "model-00005-of-00009.safetensors", + "model.layers.30.self_attn.k_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.30.self_attn.o_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.30.self_attn.q_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.30.self_attn.v_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.31.input_layernorm.weight": "model-00005-of-00009.safetensors", + "model.layers.31.mlp.down_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.31.mlp.gate_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.31.mlp.up_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.31.post_attention_layernorm.weight": "model-00005-of-00009.safetensors", + "model.layers.31.self_attn.k_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.31.self_attn.o_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.31.self_attn.q_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.31.self_attn.v_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.32.input_layernorm.weight": "model-00005-of-00009.safetensors", + "model.layers.32.mlp.down_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.32.mlp.gate_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.32.mlp.up_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.32.post_attention_layernorm.weight": "model-00005-of-00009.safetensors", + "model.layers.32.self_attn.k_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.32.self_attn.o_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.32.self_attn.q_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.32.self_attn.v_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.33.input_layernorm.weight": "model-00005-of-00009.safetensors", + "model.layers.33.mlp.down_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.33.mlp.gate_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.33.mlp.up_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.33.post_attention_layernorm.weight": "model-00005-of-00009.safetensors", + "model.layers.33.self_attn.k_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.33.self_attn.o_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.33.self_attn.q_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.33.self_attn.v_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.34.input_layernorm.weight": "model-00005-of-00009.safetensors", + "model.layers.34.mlp.down_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.34.mlp.gate_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.34.mlp.up_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.34.post_attention_layernorm.weight": "model-00005-of-00009.safetensors", + "model.layers.34.self_attn.k_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.34.self_attn.o_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.34.self_attn.q_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.34.self_attn.v_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.35.input_layernorm.weight": "model-00006-of-00009.safetensors", + "model.layers.35.mlp.down_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.35.mlp.gate_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.35.mlp.up_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.35.post_attention_layernorm.weight": "model-00006-of-00009.safetensors", + "model.layers.35.self_attn.k_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.35.self_attn.o_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.35.self_attn.q_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.35.self_attn.v_proj.weight": "model-00005-of-00009.safetensors", + "model.layers.36.input_layernorm.weight": "model-00006-of-00009.safetensors", + "model.layers.36.mlp.down_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.36.mlp.gate_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.36.mlp.up_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.36.post_attention_layernorm.weight": "model-00006-of-00009.safetensors", + "model.layers.36.self_attn.k_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.36.self_attn.o_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.36.self_attn.q_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.36.self_attn.v_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.37.input_layernorm.weight": "model-00006-of-00009.safetensors", + "model.layers.37.mlp.down_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.37.mlp.gate_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.37.mlp.up_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.37.post_attention_layernorm.weight": "model-00006-of-00009.safetensors", + "model.layers.37.self_attn.k_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.37.self_attn.o_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.37.self_attn.q_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.37.self_attn.v_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.38.input_layernorm.weight": "model-00006-of-00009.safetensors", + "model.layers.38.mlp.down_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.38.mlp.gate_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.38.mlp.up_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.38.post_attention_layernorm.weight": "model-00006-of-00009.safetensors", + "model.layers.38.self_attn.k_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.38.self_attn.o_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.38.self_attn.q_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.38.self_attn.v_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.39.input_layernorm.weight": "model-00006-of-00009.safetensors", + "model.layers.39.mlp.down_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.39.mlp.gate_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.39.mlp.up_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.39.post_attention_layernorm.weight": "model-00006-of-00009.safetensors", + "model.layers.39.self_attn.k_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.39.self_attn.o_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.39.self_attn.q_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.39.self_attn.v_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.4.input_layernorm.weight": "model-00001-of-00009.safetensors", + "model.layers.4.mlp.down_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.4.mlp.gate_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.4.mlp.up_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.4.post_attention_layernorm.weight": "model-00001-of-00009.safetensors", + "model.layers.4.self_attn.k_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.4.self_attn.o_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.4.self_attn.q_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.4.self_attn.v_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.40.input_layernorm.weight": "model-00006-of-00009.safetensors", + "model.layers.40.mlp.down_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.40.mlp.gate_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.40.mlp.up_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.40.post_attention_layernorm.weight": "model-00006-of-00009.safetensors", + "model.layers.40.self_attn.k_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.40.self_attn.o_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.40.self_attn.q_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.40.self_attn.v_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.41.input_layernorm.weight": "model-00006-of-00009.safetensors", + "model.layers.41.mlp.down_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.41.mlp.gate_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.41.mlp.up_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.41.post_attention_layernorm.weight": "model-00006-of-00009.safetensors", + "model.layers.41.self_attn.k_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.41.self_attn.o_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.41.self_attn.q_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.41.self_attn.v_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.42.input_layernorm.weight": "model-00006-of-00009.safetensors", + "model.layers.42.mlp.down_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.42.mlp.gate_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.42.mlp.up_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.42.post_attention_layernorm.weight": "model-00006-of-00009.safetensors", + "model.layers.42.self_attn.k_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.42.self_attn.o_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.42.self_attn.q_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.42.self_attn.v_proj.weight": "model-00006-of-00009.safetensors", + "model.layers.43.input_layernorm.weight": "model-00007-of-00009.safetensors", + "model.layers.43.mlp.down_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.43.mlp.gate_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.43.mlp.up_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.43.post_attention_layernorm.weight": "model-00007-of-00009.safetensors", + "model.layers.43.self_attn.k_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.43.self_attn.o_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.43.self_attn.q_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.43.self_attn.v_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.44.input_layernorm.weight": "model-00007-of-00009.safetensors", + "model.layers.44.mlp.down_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.44.mlp.gate_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.44.mlp.up_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.44.post_attention_layernorm.weight": "model-00007-of-00009.safetensors", + "model.layers.44.self_attn.k_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.44.self_attn.o_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.44.self_attn.q_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.44.self_attn.v_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.45.input_layernorm.weight": "model-00007-of-00009.safetensors", + "model.layers.45.mlp.down_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.45.mlp.gate_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.45.mlp.up_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.45.post_attention_layernorm.weight": "model-00007-of-00009.safetensors", + "model.layers.45.self_attn.k_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.45.self_attn.o_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.45.self_attn.q_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.45.self_attn.v_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.46.input_layernorm.weight": "model-00007-of-00009.safetensors", + "model.layers.46.mlp.down_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.46.mlp.gate_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.46.mlp.up_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.46.post_attention_layernorm.weight": "model-00007-of-00009.safetensors", + "model.layers.46.self_attn.k_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.46.self_attn.o_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.46.self_attn.q_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.46.self_attn.v_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.47.input_layernorm.weight": "model-00007-of-00009.safetensors", + "model.layers.47.mlp.down_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.47.mlp.gate_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.47.mlp.up_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.47.post_attention_layernorm.weight": "model-00007-of-00009.safetensors", + "model.layers.47.self_attn.k_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.47.self_attn.o_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.47.self_attn.q_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.47.self_attn.v_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.48.input_layernorm.weight": "model-00007-of-00009.safetensors", + "model.layers.48.mlp.down_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.48.mlp.gate_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.48.mlp.up_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.48.post_attention_layernorm.weight": "model-00007-of-00009.safetensors", + "model.layers.48.self_attn.k_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.48.self_attn.o_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.48.self_attn.q_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.48.self_attn.v_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.49.input_layernorm.weight": "model-00007-of-00009.safetensors", + "model.layers.49.mlp.down_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.49.mlp.gate_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.49.mlp.up_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.49.post_attention_layernorm.weight": "model-00007-of-00009.safetensors", + "model.layers.49.self_attn.k_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.49.self_attn.o_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.49.self_attn.q_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.49.self_attn.v_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.5.input_layernorm.weight": "model-00001-of-00009.safetensors", + "model.layers.5.mlp.down_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.5.mlp.gate_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.5.mlp.up_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.5.post_attention_layernorm.weight": "model-00001-of-00009.safetensors", + "model.layers.5.self_attn.k_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.5.self_attn.o_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.5.self_attn.q_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.5.self_attn.v_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.50.input_layernorm.weight": "model-00008-of-00009.safetensors", + "model.layers.50.mlp.down_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.50.mlp.gate_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.50.mlp.up_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.50.post_attention_layernorm.weight": "model-00008-of-00009.safetensors", + "model.layers.50.self_attn.k_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.50.self_attn.o_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.50.self_attn.q_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.50.self_attn.v_proj.weight": "model-00007-of-00009.safetensors", + "model.layers.51.input_layernorm.weight": "model-00008-of-00009.safetensors", + "model.layers.51.mlp.down_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.51.mlp.gate_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.51.mlp.up_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.51.post_attention_layernorm.weight": "model-00008-of-00009.safetensors", + "model.layers.51.self_attn.k_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.51.self_attn.o_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.51.self_attn.q_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.51.self_attn.v_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.52.input_layernorm.weight": "model-00008-of-00009.safetensors", + "model.layers.52.mlp.down_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.52.mlp.gate_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.52.mlp.up_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.52.post_attention_layernorm.weight": "model-00008-of-00009.safetensors", + "model.layers.52.self_attn.k_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.52.self_attn.o_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.52.self_attn.q_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.52.self_attn.v_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.53.input_layernorm.weight": "model-00008-of-00009.safetensors", + "model.layers.53.mlp.down_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.53.mlp.gate_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.53.mlp.up_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.53.post_attention_layernorm.weight": "model-00008-of-00009.safetensors", + "model.layers.53.self_attn.k_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.53.self_attn.o_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.53.self_attn.q_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.53.self_attn.v_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.54.input_layernorm.weight": "model-00008-of-00009.safetensors", + "model.layers.54.mlp.down_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.54.mlp.gate_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.54.mlp.up_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.54.post_attention_layernorm.weight": "model-00008-of-00009.safetensors", + "model.layers.54.self_attn.k_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.54.self_attn.o_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.54.self_attn.q_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.54.self_attn.v_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.55.input_layernorm.weight": "model-00008-of-00009.safetensors", + "model.layers.55.mlp.down_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.55.mlp.gate_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.55.mlp.up_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.55.post_attention_layernorm.weight": "model-00008-of-00009.safetensors", + "model.layers.55.self_attn.k_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.55.self_attn.o_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.55.self_attn.q_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.55.self_attn.v_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.56.input_layernorm.weight": "model-00008-of-00009.safetensors", + "model.layers.56.mlp.down_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.56.mlp.gate_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.56.mlp.up_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.56.post_attention_layernorm.weight": "model-00008-of-00009.safetensors", + "model.layers.56.self_attn.k_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.56.self_attn.o_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.56.self_attn.q_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.56.self_attn.v_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.57.input_layernorm.weight": "model-00009-of-00009.safetensors", + "model.layers.57.mlp.down_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.57.mlp.gate_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.57.mlp.up_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.57.post_attention_layernorm.weight": "model-00009-of-00009.safetensors", + "model.layers.57.self_attn.k_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.57.self_attn.o_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.57.self_attn.q_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.57.self_attn.v_proj.weight": "model-00008-of-00009.safetensors", + "model.layers.58.input_layernorm.weight": "model-00009-of-00009.safetensors", + "model.layers.58.mlp.down_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.58.mlp.gate_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.58.mlp.up_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.58.post_attention_layernorm.weight": "model-00009-of-00009.safetensors", + "model.layers.58.self_attn.k_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.58.self_attn.o_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.58.self_attn.q_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.58.self_attn.v_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.59.input_layernorm.weight": "model-00009-of-00009.safetensors", + "model.layers.59.mlp.down_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.59.mlp.gate_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.59.mlp.up_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.59.post_attention_layernorm.weight": "model-00009-of-00009.safetensors", + "model.layers.59.self_attn.k_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.59.self_attn.o_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.59.self_attn.q_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.59.self_attn.v_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.6.input_layernorm.weight": "model-00002-of-00009.safetensors", + "model.layers.6.mlp.down_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.6.mlp.gate_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.6.mlp.up_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.6.post_attention_layernorm.weight": "model-00002-of-00009.safetensors", + "model.layers.6.self_attn.k_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.6.self_attn.o_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.6.self_attn.q_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.6.self_attn.v_proj.weight": "model-00001-of-00009.safetensors", + "model.layers.60.input_layernorm.weight": "model-00009-of-00009.safetensors", + "model.layers.60.mlp.down_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.60.mlp.gate_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.60.mlp.up_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.60.post_attention_layernorm.weight": "model-00009-of-00009.safetensors", + "model.layers.60.self_attn.k_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.60.self_attn.o_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.60.self_attn.q_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.60.self_attn.v_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.61.input_layernorm.weight": "model-00009-of-00009.safetensors", + "model.layers.61.mlp.down_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.61.mlp.gate_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.61.mlp.up_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.61.post_attention_layernorm.weight": "model-00009-of-00009.safetensors", + "model.layers.61.self_attn.k_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.61.self_attn.o_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.61.self_attn.q_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.61.self_attn.v_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.62.input_layernorm.weight": "model-00009-of-00009.safetensors", + "model.layers.62.mlp.down_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.62.mlp.gate_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.62.mlp.up_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.62.post_attention_layernorm.weight": "model-00009-of-00009.safetensors", + "model.layers.62.self_attn.k_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.62.self_attn.o_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.62.self_attn.q_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.62.self_attn.v_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.63.input_layernorm.weight": "model-00009-of-00009.safetensors", + "model.layers.63.mlp.down_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.63.mlp.gate_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.63.mlp.up_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.63.post_attention_layernorm.weight": "model-00009-of-00009.safetensors", + "model.layers.63.self_attn.k_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.63.self_attn.o_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.63.self_attn.q_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.63.self_attn.v_proj.weight": "model-00009-of-00009.safetensors", + "model.layers.7.input_layernorm.weight": "model-00002-of-00009.safetensors", + "model.layers.7.mlp.down_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.7.mlp.gate_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.7.mlp.up_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.7.post_attention_layernorm.weight": "model-00002-of-00009.safetensors", + "model.layers.7.self_attn.k_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.7.self_attn.o_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.7.self_attn.q_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.7.self_attn.v_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.8.input_layernorm.weight": "model-00002-of-00009.safetensors", + "model.layers.8.mlp.down_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.8.mlp.gate_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.8.mlp.up_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.8.post_attention_layernorm.weight": "model-00002-of-00009.safetensors", + "model.layers.8.self_attn.k_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.8.self_attn.o_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.8.self_attn.q_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.8.self_attn.v_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.9.input_layernorm.weight": "model-00002-of-00009.safetensors", + "model.layers.9.mlp.down_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.9.mlp.gate_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.9.mlp.up_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.9.post_attention_layernorm.weight": "model-00002-of-00009.safetensors", + "model.layers.9.self_attn.k_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.9.self_attn.o_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.9.self_attn.q_proj.weight": "model-00002-of-00009.safetensors", + "model.layers.9.self_attn.v_proj.weight": "model-00002-of-00009.safetensors", + "model.norm.weight": "model-00009-of-00009.safetensors" + } +} diff --git a/modeling_solar.py b/modeling_solar.py new file mode 100644 index 0000000..b5bef12 --- /dev/null +++ b/modeling_solar.py @@ -0,0 +1,1745 @@ +# coding=utf-8 +# Copyright 2022 EleutherAI and the HuggingFace Inc. team. All rights reserved. +# +# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX +# and OPT implementations in this library. It has been modified from its +# original forms to accommodate minor architectural differences compared +# to GPT-NeoX and OPT used by the Meta AI team that trained the model. +# +# 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. +"""PyTorch Solar model.""" +import math +from typing import List, Optional, Tuple, Union + +import torch +import torch.nn.functional as F +import torch.utils.checkpoint +from torch import nn +from torch.nn import BCEWithLogitsLoss, CrossEntropyLoss, MSELoss + +from transformers.activations import ACT2FN +from transformers.cache_utils import Cache, DynamicCache, SlidingWindowCache, StaticCache +from transformers.modeling_attn_mask_utils import AttentionMaskConverter +from transformers.modeling_outputs import ( + BaseModelOutputWithPast, + CausalLMOutputWithPast, + QuestionAnsweringModelOutput, + SequenceClassifierOutputWithPast, + TokenClassifierOutput, +) +from transformers.modeling_utils import PreTrainedModel +from transformers.pytorch_utils import ALL_LAYERNORM_LAYERS +from transformers.utils import ( + add_start_docstrings, + add_start_docstrings_to_model_forward, + is_flash_attn_2_available, + is_flash_attn_greater_or_equal_2_10, + logging, + replace_return_docstrings, +) +from .configuration_solar import SolarConfig + + +if is_flash_attn_2_available(): + from flash_attn import flash_attn_func, flash_attn_varlen_func + from flash_attn.bert_padding import index_first_axis, pad_input, unpad_input # noqa + import inspect + + _flash_supports_window_size = "window_size" in list(inspect.signature(flash_attn_func).parameters) + +logger = logging.get_logger(__name__) + +_CONFIG_FOR_DOC = "SolarConfig" + +# Copied from transformers.models.llama.modeling_llama._get_unpad_data +def _get_unpad_data(attention_mask): + seqlens_in_batch = attention_mask.sum(dim=-1, dtype=torch.int32) + indices = torch.nonzero(attention_mask.flatten(), as_tuple=False).flatten() + max_seqlen_in_batch = seqlens_in_batch.max().item() + cu_seqlens = F.pad(torch.cumsum(seqlens_in_batch, dim=0, dtype=torch.int32), (1, 0)) + return ( + indices, + cu_seqlens, + max_seqlen_in_batch, + ) + +# Copied from transformers.models.llama.modeling_llama.LlamaRMSNorm +class SolarRMSNorm(nn.Module): + def __init__(self, hidden_size, eps=1e-6): + """ + SolarRMSNorm is equivalent to T5LayerNorm + """ + super().__init__() + self.weight = nn.Parameter(torch.ones(hidden_size)) + self.variance_epsilon = eps + + def forward(self, hidden_states): + input_dtype = hidden_states.dtype + hidden_states = hidden_states.to(torch.float32) + variance = hidden_states.pow(2).mean(-1, keepdim=True) + hidden_states = hidden_states * torch.rsqrt(variance + self.variance_epsilon) + return self.weight * hidden_states.to(input_dtype) + + +ALL_LAYERNORM_LAYERS.append(SolarRMSNorm) + + +class SolarRotaryEmbedding(nn.Module): + def __init__(self, dim, max_position_embeddings=2048, base=10000, device=None, scaling_factor=1.0): + super().__init__() + self.scaling_factor = scaling_factor + self.dim = dim + self.max_position_embeddings = max_position_embeddings + self.base = base + inv_freq = 1.0 / (self.base ** (torch.arange(0, self.dim, 2, dtype=torch.int64).float().to(device) / self.dim)) + self.register_buffer("inv_freq", inv_freq, persistent=False) + # For BC we register cos and sin cached + self.max_seq_len_cached = max_position_embeddings + + @torch.no_grad() + def forward(self, x, position_ids): + # x: [bs, num_attention_heads, seq_len, head_size] + inv_freq_expanded = self.inv_freq[None, :, None].float().expand(position_ids.shape[0], -1, 1) + position_ids_expanded = position_ids[:, None, :].float() + # Force float32 since bfloat16 loses precision on long contexts + # See https://github.com/huggingface/transformers/pull/29285 + device_type = x.device.type + device_type = device_type if isinstance(device_type, str) and device_type != "mps" else "cpu" + with torch.autocast(device_type=device_type, enabled=False): + freqs = (inv_freq_expanded.float() @ position_ids_expanded.float()).transpose(1, 2) + emb = torch.cat((freqs, freqs), dim=-1) + cos = emb.cos() + sin = emb.sin() + return cos.to(dtype=x.dtype), sin.to(dtype=x.dtype) + + +class SolarLinearScalingRotaryEmbedding(SolarRotaryEmbedding): + """SolarRotaryEmbedding extended with linear scaling. Credits to the Reddit user /u/kaiokendev""" + + def forward(self, x, position_ids): + # difference to the original RoPE: a scaling factor is aplied to the position ids + position_ids = position_ids.float() / self.scaling_factor + cos, sin = super().forward(x, position_ids) + return cos, sin + + +class SolarDynamicNTKScalingRotaryEmbedding(SolarRotaryEmbedding): + """SolarRotaryEmbedding extended with Dynamic NTK scaling. Credits to the Reddit users /u/bloc97 and /u/emozilla""" + + def forward(self, x, position_ids): + # difference to the original RoPE: inv_freq is recomputed when the sequence length > original length + seq_len = torch.max(position_ids) + 1 + if seq_len > self.max_position_embeddings: + base = self.base * ( + (self.scaling_factor * seq_len / self.max_position_embeddings) - (self.scaling_factor - 1) + ) ** (self.dim / (self.dim - 2)) + inv_freq = 1.0 / ( + base ** (torch.arange(0, self.dim, 2, dtype=torch.int64).float().to(x.device) / self.dim) + ) + self.register_buffer("inv_freq", inv_freq, persistent=False) # TODO joao: this may break with compilation + + cos, sin = super().forward(x, position_ids) + return cos, sin + + +def rotate_half(x): + """Rotates half the hidden dims of the input.""" + x1 = x[..., : x.shape[-1] // 2] + x2 = x[..., x.shape[-1] // 2 :] + return torch.cat((-x2, x1), dim=-1) + + +def apply_rotary_pos_emb(q, k, cos, sin, position_ids=None, unsqueeze_dim=1): + """Applies Rotary Position Embedding to the query and key tensors. + + Args: + q (`torch.Tensor`): The query tensor. + k (`torch.Tensor`): The key tensor. + cos (`torch.Tensor`): The cosine part of the rotary embedding. + sin (`torch.Tensor`): The sine part of the rotary embedding. + position_ids (`torch.Tensor`, *optional*): + Deprecated and unused. + unsqueeze_dim (`int`, *optional*, defaults to 1): + The 'unsqueeze_dim' argument specifies the dimension along which to unsqueeze cos[position_ids] and + sin[position_ids] so that they can be properly broadcasted to the dimensions of q and k. For example, note + that cos[position_ids] and sin[position_ids] have the shape [batch_size, seq_len, head_dim]. Then, if q and + k have the shape [batch_size, heads, seq_len, head_dim], then setting unsqueeze_dim=1 makes + cos[position_ids] and sin[position_ids] broadcastable to the shapes of q and k. Similarly, if q and k have + the shape [batch_size, seq_len, heads, head_dim], then set unsqueeze_dim=2. + Returns: + `tuple(torch.Tensor)` comprising of the query and key tensors rotated using the Rotary Position Embedding. + """ + cos = cos.unsqueeze(unsqueeze_dim) + sin = sin.unsqueeze(unsqueeze_dim) + q_embed = (q * cos) + (rotate_half(q) * sin) + k_embed = (k * cos) + (rotate_half(k) * sin) + return q_embed, k_embed + + +class SolarMLP(nn.Module): + def __init__(self, config): + super().__init__() + self.config = config + self.hidden_size = config.hidden_size + self.intermediate_size = config.intermediate_size + self.gate_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=config.mlp_bias) + self.up_proj = nn.Linear(self.hidden_size, self.intermediate_size, bias=config.mlp_bias) + self.down_proj = nn.Linear(self.intermediate_size, self.hidden_size, bias=config.mlp_bias) + self.act_fn = ACT2FN[config.hidden_act] + + def forward(self, x): + if self.config.pretraining_tp > 1: + slice = self.intermediate_size // self.config.pretraining_tp + gate_proj_slices = self.gate_proj.weight.split(slice, dim=0) + up_proj_slices = self.up_proj.weight.split(slice, dim=0) + down_proj_slices = self.down_proj.weight.split(slice, dim=1) + + gate_proj = torch.cat( + [F.linear(x, gate_proj_slices[i]) for i in range(self.config.pretraining_tp)], dim=-1 + ) + up_proj = torch.cat([F.linear(x, up_proj_slices[i]) for i in range(self.config.pretraining_tp)], dim=-1) + + intermediate_states = (self.act_fn(gate_proj) * up_proj).split(slice, dim=2) + down_proj = [ + F.linear(intermediate_states[i], down_proj_slices[i]) for i in range(self.config.pretraining_tp) + ] + down_proj = sum(down_proj) + else: + down_proj = self.down_proj(self.act_fn(self.gate_proj(x)) * self.up_proj(x)) + + return down_proj + + +def repeat_kv(hidden_states: torch.Tensor, n_rep: int) -> torch.Tensor: + """ + This is the equivalent of torch.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch, + num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim) + """ + batch, num_key_value_heads, slen, head_dim = hidden_states.shape + if n_rep == 1: + return hidden_states + hidden_states = hidden_states[:, :, None, :, :].expand(batch, num_key_value_heads, n_rep, slen, head_dim) + return hidden_states.reshape(batch, num_key_value_heads * n_rep, slen, head_dim) + + +class SolarAttention(nn.Module): + """Multi-headed attention from 'Attention Is All You Need' paper""" + + def __init__(self, config: SolarConfig, layer_idx: Optional[int] = None): + super().__init__() + self.config = config + self.layer_idx = layer_idx + if layer_idx is None: + logger.warning_once( + f"Instantiating {self.__class__.__name__} without passing a `layer_idx` is not recommended and will " + "lead to errors during the forward call if caching is used. Please make sure to provide a `layer_idx` " + "when creating this class." + ) + + self.attention_dropout = config.attention_dropout + self.hidden_size = config.hidden_size + self.num_heads = config.num_attention_heads + self.head_dim = self.hidden_size // self.num_heads + self.num_key_value_heads = config.num_key_value_heads + self.num_key_value_groups = self.num_heads // self.num_key_value_heads + self.max_position_embeddings = config.max_position_embeddings + self.rope_theta = config.rope_theta + self.is_causal = True + + if (self.head_dim * self.num_heads) != self.hidden_size: + raise ValueError( + f"hidden_size must be divisible by num_heads (got `hidden_size`: {self.hidden_size}" + f" and `num_heads`: {self.num_heads})." + ) + + self.q_proj = nn.Linear(self.hidden_size, self.num_heads * self.head_dim, bias=config.attention_bias) + self.k_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=config.attention_bias) + self.v_proj = nn.Linear(self.hidden_size, self.num_key_value_heads * self.head_dim, bias=config.attention_bias) + self.o_proj = nn.Linear(self.hidden_size, self.hidden_size, bias=config.attention_bias) + self._init_rope() + + def _init_rope(self): + if self.config.rope_scaling is None: + self.rotary_emb = SolarRotaryEmbedding( + self.head_dim, + max_position_embeddings=self.max_position_embeddings, + base=self.rope_theta, + ) + else: + scaling_type = self.config.rope_scaling["type"] + scaling_factor = self.config.rope_scaling["factor"] + if scaling_type == "linear": + self.rotary_emb = SolarLinearScalingRotaryEmbedding( + self.head_dim, + max_position_embeddings=self.max_position_embeddings, + scaling_factor=scaling_factor, + base=self.rope_theta, + ) + elif scaling_type == "dynamic": + self.rotary_emb = SolarDynamicNTKScalingRotaryEmbedding( + self.head_dim, + max_position_embeddings=self.max_position_embeddings, + scaling_factor=scaling_factor, + base=self.rope_theta, + ) + else: + raise ValueError(f"Unknown RoPE scaling type {scaling_type}") + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: Optional[torch.Tensor] = None, + position_ids: Optional[torch.LongTensor] = None, + past_key_value: Optional[Cache] = None, + output_attentions: bool = False, + use_cache: bool = False, + cache_position: Optional[torch.LongTensor] = None, + **kwargs, + ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]: + bsz, q_len, _ = hidden_states.size() + + if self.config.pretraining_tp > 1: + key_value_slicing = (self.num_key_value_heads * self.head_dim) // self.config.pretraining_tp + query_slices = self.q_proj.weight.split( + (self.num_heads * self.head_dim) // self.config.pretraining_tp, dim=0 + ) + key_slices = self.k_proj.weight.split(key_value_slicing, dim=0) + value_slices = self.v_proj.weight.split(key_value_slicing, dim=0) + + query_states = [F.linear(hidden_states, query_slices[i]) for i in range(self.config.pretraining_tp)] + query_states = torch.cat(query_states, dim=-1) + + key_states = [F.linear(hidden_states, key_slices[i]) for i in range(self.config.pretraining_tp)] + key_states = torch.cat(key_states, dim=-1) + + value_states = [F.linear(hidden_states, value_slices[i]) for i in range(self.config.pretraining_tp)] + value_states = torch.cat(value_states, dim=-1) + + else: + query_states = self.q_proj(hidden_states) + key_states = self.k_proj(hidden_states) + value_states = self.v_proj(hidden_states) + + query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2) + key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2) + value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2) + + cos, sin = self.rotary_emb(value_states, position_ids) + query_states, key_states = apply_rotary_pos_emb(query_states, key_states, cos, sin) + + if past_key_value is not None: + # sin and cos are specific to RoPE models; cache_position needed for the static cache + cache_kwargs = {"sin": sin, "cos": cos, "cache_position": cache_position} + key_states, value_states = past_key_value.update(key_states, value_states, self.layer_idx, cache_kwargs) + + key_states = repeat_kv(key_states, self.num_key_value_groups) + value_states = repeat_kv(value_states, self.num_key_value_groups) + + attn_weights = torch.matmul(query_states, key_states.transpose(2, 3)) / math.sqrt(self.head_dim) + + if attention_mask is not None: # no matter the length, we just slice it + causal_mask = attention_mask[:, :, :, : key_states.shape[-2]] + attn_weights = attn_weights + causal_mask + + # upcast attention to fp32 + attn_weights = nn.functional.softmax(attn_weights, dim=-1, dtype=torch.float32).to(query_states.dtype) + attn_weights = nn.functional.dropout(attn_weights, p=self.attention_dropout, training=self.training) + attn_output = torch.matmul(attn_weights, value_states) + + if attn_output.size() != (bsz, self.num_heads, q_len, self.head_dim): + raise ValueError( + f"`attn_output` should be of size {(bsz, self.num_heads, q_len, self.head_dim)}, but is" + f" {attn_output.size()}" + ) + + attn_output = attn_output.transpose(1, 2).contiguous() + + attn_output = attn_output.reshape(bsz, q_len, -1) + + if self.config.pretraining_tp > 1: + attn_output = attn_output.split(self.hidden_size // self.config.pretraining_tp, dim=2) + o_proj_slices = self.o_proj.weight.split(self.hidden_size // self.config.pretraining_tp, dim=1) + attn_output = sum([F.linear(attn_output[i], o_proj_slices[i]) for i in range(self.config.pretraining_tp)]) + else: + attn_output = self.o_proj(attn_output) + + if not output_attentions: + attn_weights = None + + return attn_output, attn_weights, past_key_value + +# Copied from transformers.models.mistral.modeling_mistal.MistralFlashAttention2 +class SolarFlashAttention2(SolarAttention): + """ + Solar flash attention module. This module inherits from `SolarAttention` as the weights of the module stays + untouched. The only required change would be on the forward pass where it needs to correctly call the public API of + flash attention and deal with padding tokens in case the input contains any of them. + """ + + # Copied from transformers.models.llama.modeling_llama.LlamaFlashAttention2.__init__ + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + # TODO: Should be removed once Flash Attention for RoCm is bumped to 2.1. + # flash_attn<2.1 generates top-left aligned causal mask, while what is needed here is bottom-right alignement, that was made default for flash_attn>=2.1. This attribute is used to handle this difference. Reference: https://github.com/Dao-AILab/flash-attention/releases/tag/v2.1.0. + # Beware that with flash_attn<2.1, using q_seqlen != k_seqlen (except for the case q_seqlen == 1) produces a wrong mask (top-left). + self._flash_attn_uses_top_left_mask = not is_flash_attn_greater_or_equal_2_10() + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: Optional[torch.Tensor] = None, + position_ids: Optional[torch.LongTensor] = None, + past_key_value: Optional[Cache] = None, + output_attentions: bool = False, + use_cache: bool = False, + cache_position: Optional[torch.LongTensor] = None, + ): + if isinstance(past_key_value, StaticCache): + raise ValueError( + "`static` cache implementation is not compatible with `attn_implementation==flash_attention_2` " + "make sure to use `sdpa` in the mean time, and open an issue at https://github.com/huggingface/transformers" + ) + + output_attentions = False + + bsz, q_len, _ = hidden_states.size() + + query_states = self.q_proj(hidden_states) + key_states = self.k_proj(hidden_states) + value_states = self.v_proj(hidden_states) + + query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2) + key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2) + value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2) + + kv_seq_len = key_states.shape[-2] + if past_key_value is not None: + kv_seq_len += cache_position[0] + + cos, sin = self.rotary_emb(value_states, position_ids) + query_states, key_states = apply_rotary_pos_emb(query_states, key_states, cos, sin) + + use_sliding_windows = ( + _flash_supports_window_size + and getattr(self.config, "sliding_window", None) is not None + and kv_seq_len > self.config.sliding_window + ) + + if not _flash_supports_window_size: + logger.warning_once( + "The current flash attention version does not support sliding window attention, for a more memory efficient implementation" + " make sure to upgrade flash-attn library." + ) + + if past_key_value is not None: + # Activate slicing cache only if the config has a value `sliding_windows` attribute + cache_has_contents = past_key_value.get_seq_length(self.layer_idx) > 0 + if ( + getattr(self.config, "sliding_window", None) is not None + and kv_seq_len > self.config.sliding_window + and cache_has_contents + ): + slicing_tokens = 1 - self.config.sliding_window + + past_key = past_key_value[self.layer_idx][0] + past_value = past_key_value[self.layer_idx][1] + + past_key = past_key[:, :, slicing_tokens:, :].contiguous() + past_value = past_value[:, :, slicing_tokens:, :].contiguous() + + if past_key.shape[-2] != self.config.sliding_window - 1: + raise ValueError( + f"past key must have a shape of (`batch_size, num_heads, self.config.sliding_window-1, head_dim`), got" + f" {past_key.shape}" + ) + + if attention_mask is not None: + attention_mask = attention_mask[:, slicing_tokens:] + attention_mask = torch.cat([attention_mask, torch.ones_like(attention_mask[:, -1:])], dim=-1) + + cache_kwargs = {"sin": sin, "cos": cos} # Specific to RoPE models + key_states, value_states = past_key_value.update(key_states, value_states, self.layer_idx, cache_kwargs) + + # repeat k/v heads if n_kv_heads < n_heads + key_states = repeat_kv(key_states, self.num_key_value_groups) + value_states = repeat_kv(value_states, self.num_key_value_groups) + dropout_rate = 0.0 if not self.training else self.attention_dropout + + # In PEFT, usually we cast the layer norms in float32 for training stability reasons + # therefore the input hidden states gets silently casted in float32. Hence, we need + # cast them back in float16 just to be sure everything works as expected. + input_dtype = query_states.dtype + if input_dtype == torch.float32: + if torch.is_autocast_enabled(): + target_dtype = torch.get_autocast_gpu_dtype() + # Handle the case where the model is quantized + elif hasattr(self.config, "_pre_quantization_dtype"): + target_dtype = self.config._pre_quantization_dtype + else: + target_dtype = self.q_proj.weight.dtype + + logger.warning_once( + f"The input hidden states seems to be silently casted in float32, this might be related to" + f" the fact you have upcasted embedding or layer norm layers in float32. We will cast back the input in" + f" {target_dtype}." + ) + + query_states = query_states.to(target_dtype) + key_states = key_states.to(target_dtype) + value_states = value_states.to(target_dtype) + + # Reashape to the expected shape for Flash Attention + query_states = query_states.transpose(1, 2) + key_states = key_states.transpose(1, 2) + value_states = value_states.transpose(1, 2) + + attn_output = self._flash_attention_forward( + query_states, + key_states, + value_states, + attention_mask, + q_len, + dropout=dropout_rate, + use_sliding_windows=use_sliding_windows, + ) + + attn_output = attn_output.reshape(bsz, q_len, self.hidden_size).contiguous() + attn_output = self.o_proj(attn_output) + + if not output_attentions: + attn_weights = None + + return attn_output, attn_weights, past_key_value + + def _flash_attention_forward( + self, + query_states, + key_states, + value_states, + attention_mask, + query_length, + dropout=0.0, + softmax_scale=None, + use_sliding_windows=False, + ): + """ + Calls the forward method of Flash Attention - if the input hidden states contain at least one padding token + first unpad the input, then computes the attention scores and pad the final attention scores. + + Args: + query_states (`torch.Tensor`): + Input query states to be passed to Flash Attention API + key_states (`torch.Tensor`): + Input key states to be passed to Flash Attention API + value_states (`torch.Tensor`): + Input value states to be passed to Flash Attention API + attention_mask (`torch.Tensor`): + The padding mask - corresponds to a tensor of size `(batch_size, seq_len)` where 0 stands for the + position of padding tokens and 1 for the position of non-padding tokens. + dropout (`float`): + Attention dropout + softmax_scale (`float`, *optional*): + The scaling of QK^T before applying softmax. Default to 1 / sqrt(head_dim) + use_sliding_windows (`bool`, *optional*): + Whether to activate sliding window attention. + """ + if not self._flash_attn_uses_top_left_mask: + causal = self.is_causal + else: + # TODO: Remove the `query_length != 1` check once Flash Attention for RoCm is bumped to 2.1. For details, please see the comment in LlamaFlashAttention2 __init__. + causal = self.is_causal and query_length != 1 + + # Contains at least one padding token in the sequence + if attention_mask is not None: + batch_size = query_states.shape[0] + query_states, key_states, value_states, indices_q, cu_seq_lens, max_seq_lens = self._upad_input( + query_states, key_states, value_states, attention_mask, query_length + ) + + cu_seqlens_q, cu_seqlens_k = cu_seq_lens + max_seqlen_in_batch_q, max_seqlen_in_batch_k = max_seq_lens + + if not use_sliding_windows: + attn_output_unpad = flash_attn_varlen_func( + query_states, + key_states, + value_states, + cu_seqlens_q=cu_seqlens_q, + cu_seqlens_k=cu_seqlens_k, + max_seqlen_q=max_seqlen_in_batch_q, + max_seqlen_k=max_seqlen_in_batch_k, + dropout_p=dropout, + softmax_scale=softmax_scale, + causal=causal, + ) + else: + attn_output_unpad = flash_attn_varlen_func( + query_states, + key_states, + value_states, + cu_seqlens_q=cu_seqlens_q, + cu_seqlens_k=cu_seqlens_k, + max_seqlen_q=max_seqlen_in_batch_q, + max_seqlen_k=max_seqlen_in_batch_k, + dropout_p=dropout, + softmax_scale=softmax_scale, + causal=causal, + window_size=(self.config.sliding_window, self.config.sliding_window), + ) + + attn_output = pad_input(attn_output_unpad, indices_q, batch_size, query_length) + else: + if not use_sliding_windows: + attn_output = flash_attn_func( + query_states, + key_states, + value_states, + dropout, + softmax_scale=softmax_scale, + causal=causal, + ) + else: + attn_output = flash_attn_func( + query_states, + key_states, + value_states, + dropout, + softmax_scale=softmax_scale, + causal=causal, + window_size=(self.config.sliding_window, self.config.sliding_window), + ) + + return attn_output + + def _upad_input(self, query_layer, key_layer, value_layer, attention_mask, query_length): + batch_size, kv_seq_len, num_heads, head_dim = key_layer.shape + + # On the first iteration we need to properly re-create the padding mask + # by slicing it on the proper place + if kv_seq_len != attention_mask.shape[-1]: + attention_mask_num_tokens = attention_mask.shape[-1] + attention_mask = attention_mask[:, attention_mask_num_tokens - kv_seq_len :] + + indices_k, cu_seqlens_k, max_seqlen_in_batch_k = _get_unpad_data(attention_mask) + + key_layer = index_first_axis(key_layer.reshape(batch_size * kv_seq_len, num_heads, head_dim), indices_k) + value_layer = index_first_axis(value_layer.reshape(batch_size * kv_seq_len, num_heads, head_dim), indices_k) + + if query_length == kv_seq_len: + query_layer = index_first_axis( + query_layer.reshape(batch_size * kv_seq_len, num_heads, head_dim), indices_k + ) + cu_seqlens_q = cu_seqlens_k + max_seqlen_in_batch_q = max_seqlen_in_batch_k + indices_q = indices_k + elif query_length == 1: + max_seqlen_in_batch_q = 1 + cu_seqlens_q = torch.arange( + batch_size + 1, dtype=torch.int32, device=query_layer.device + ) # There is a memcpy here, that is very bad. + indices_q = cu_seqlens_q[:-1] + query_layer = query_layer.squeeze(1) + else: + # The -q_len: slice assumes left padding. + attention_mask = attention_mask[:, -query_length:] + query_layer, indices_q, cu_seqlens_q, max_seqlen_in_batch_q = unpad_input(query_layer, attention_mask) + + return ( + query_layer, + key_layer, + value_layer, + indices_q, + (cu_seqlens_q, cu_seqlens_k), + (max_seqlen_in_batch_q, max_seqlen_in_batch_k), + ) + + +class SolarSdpaAttention(SolarAttention): + """ + Solar attention module using torch.nn.functional.scaled_dot_product_attention. This module inherits from + `SolarAttention` as the weights of the module stays untouched. The only changes are on the forward pass to adapt to + SDPA API. + """ + + # Adapted from SolarAttention.forward + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: Optional[torch.Tensor] = None, + position_ids: Optional[torch.LongTensor] = None, + past_key_value: Optional[Cache] = None, + output_attentions: bool = False, + use_cache: bool = False, + cache_position: Optional[torch.LongTensor] = None, + **kwargs, + ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]: + if output_attentions: + # TODO: Improve this warning with e.g. `model.config.attn_implementation = "manual"` once this is implemented. + logger.warning_once( + "SolarModel is using SolarSdpaAttention, but `torch.nn.functional.scaled_dot_product_attention` does not support `output_attentions=True`. Falling back to the manual attention implementation, " + 'but specifying the manual implementation will be required from Transformers version v5.0.0 onwards. This warning can be removed using the argument `attn_implementation="eager"` when loading the model.' + ) + return super().forward( + hidden_states=hidden_states, + attention_mask=attention_mask, + position_ids=position_ids, + past_key_value=past_key_value, + output_attentions=output_attentions, + use_cache=use_cache, + cache_position=cache_position, + ) + + bsz, q_len, _ = hidden_states.size() + + query_states = self.q_proj(hidden_states) + key_states = self.k_proj(hidden_states) + value_states = self.v_proj(hidden_states) + + query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim).transpose(1, 2) + key_states = key_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2) + value_states = value_states.view(bsz, q_len, self.num_key_value_heads, self.head_dim).transpose(1, 2) + + cos, sin = self.rotary_emb(value_states, position_ids) + query_states, key_states = apply_rotary_pos_emb(query_states, key_states, cos, sin) + + if past_key_value is not None: + # sin and cos are specific to RoPE models; cache_position needed for the static cache + cache_kwargs = {"sin": sin, "cos": cos, "cache_position": cache_position} + key_states, value_states = past_key_value.update(key_states, value_states, self.layer_idx, cache_kwargs) + + key_states = repeat_kv(key_states, self.num_key_value_groups) + value_states = repeat_kv(value_states, self.num_key_value_groups) + + causal_mask = attention_mask + if attention_mask is not None: + causal_mask = causal_mask[:, :, :, : key_states.shape[-2]] + + # SDPA with memory-efficient backend is currently (torch==2.1.2) bugged with non-contiguous inputs with custom attn_mask, + # Reference: https://github.com/pytorch/pytorch/issues/112577. + if query_states.device.type == "cuda" and causal_mask is not None: + query_states = query_states.contiguous() + key_states = key_states.contiguous() + value_states = value_states.contiguous() + + # We dispatch to SDPA's Flash Attention or Efficient kernels via this `is_causal` if statement instead of an inline conditional assignment + # in SDPA to support both torch.compile's dynamic shapes and full graph options. An inline conditional prevents dynamic shapes from compiling. + is_causal = True if causal_mask is None and q_len > 1 else False + + attn_output = torch.nn.functional.scaled_dot_product_attention( + query_states, + key_states, + value_states, + attn_mask=causal_mask, + dropout_p=self.attention_dropout if self.training else 0.0, + is_causal=is_causal, + ) + + attn_output = attn_output.transpose(1, 2).contiguous() + attn_output = attn_output.view(bsz, q_len, -1) + + attn_output = self.o_proj(attn_output) + + return attn_output, None, past_key_value + + +SOLAR_ATTENTION_CLASSES = { + "eager": SolarAttention, + "flash_attention_2": SolarFlashAttention2, + "sdpa": SolarSdpaAttention, +} + + +class SolarDecoderLayer(nn.Module): + def __init__(self, config: SolarConfig, layer_idx: int): + super().__init__() + self.hidden_size = config.hidden_size + + self.self_attn = SOLAR_ATTENTION_CLASSES[config._attn_implementation](config=config, layer_idx=layer_idx) + + self.mlp = SolarMLP(config) + self.input_layernorm = SolarRMSNorm(config.hidden_size, eps=config.rms_norm_eps) + self.post_attention_layernorm = SolarRMSNorm(config.hidden_size, eps=config.rms_norm_eps) + + def forward( + self, + hidden_states: torch.Tensor, + attention_mask: Optional[torch.Tensor] = None, + position_ids: Optional[torch.LongTensor] = None, + past_key_value: Optional[Cache] = None, + output_attentions: Optional[bool] = False, + use_cache: Optional[bool] = False, + cache_position: Optional[torch.LongTensor] = None, + **kwargs, + ) -> Tuple[torch.FloatTensor, Optional[Tuple[torch.FloatTensor, torch.FloatTensor]]]: + """ + Args: + hidden_states (`torch.FloatTensor`): input to the layer of shape `(batch, seq_len, embed_dim)` + attention_mask (`torch.FloatTensor`, *optional*): + attention mask of size `(batch_size, sequence_length)` if flash attention is used or `(batch_size, 1, + query_sequence_length, key_sequence_length)` if default attention is used. + output_attentions (`bool`, *optional*): + Whether or not to return the attentions tensors of all attention layers. See `attentions` under + returned tensors for more detail. + use_cache (`bool`, *optional*): + If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding + (see `past_key_values`). + past_key_value (`Tuple(torch.FloatTensor)`, *optional*): cached past key and value projection states + cache_position (`torch.LongTensor` of shape `(sequence_length)`, *optional*): + Indices depicting the position of the input sequence tokens in the sequence + kwargs (`dict`, *optional*): + Arbitrary kwargs to be ignored, used for FSDP and other methods that injects code + into the model + """ + residual = hidden_states + + hidden_states = self.input_layernorm(hidden_states) + + # Self Attention + hidden_states, self_attn_weights, present_key_value = self.self_attn( + hidden_states=hidden_states, + attention_mask=attention_mask, + position_ids=position_ids, + past_key_value=past_key_value, + output_attentions=output_attentions, + use_cache=use_cache, + cache_position=cache_position, + ) + hidden_states = residual + hidden_states + + # Fully Connected + residual = hidden_states + hidden_states = self.post_attention_layernorm(hidden_states) + hidden_states = self.mlp(hidden_states) + hidden_states = residual + hidden_states + + outputs = (hidden_states,) + + if output_attentions: + outputs += (self_attn_weights,) + + if use_cache: + outputs += (present_key_value,) + + return outputs + + +SOLAR_START_DOCSTRING = r""" + This model inherits from [`PreTrainedModel`]. Check the superclass documentation for the generic methods the + library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads + etc.) + + This model is also a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) subclass. + Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage + and behavior. + + Parameters: + config ([`SolarConfig`]): + Model configuration class with all the parameters of the model. Initializing with a config file does not + load the weights associated with the model, only the configuration. Check out the + [`~PreTrainedModel.from_pretrained`] method to load the model weights. +""" + + +@add_start_docstrings( + "The bare Solar Model outputting raw hidden-states without any specific head on top.", + SOLAR_START_DOCSTRING, +) +class SolarPreTrainedModel(PreTrainedModel): + config_class = SolarConfig + base_model_prefix = "model" + supports_gradient_checkpointing = True + _no_split_modules = ["SolarDecoderLayer"] + _skip_keys_device_placement = ["past_key_values"] + _supports_flash_attn_2 = True + _supports_sdpa = True + _supports_cache_class = True + _supports_quantized_cache = True + _supports_static_cache = True + + def _init_weights(self, module): + std = self.config.initializer_range + if isinstance(module, nn.Linear): + module.weight.data.normal_(mean=0.0, std=std) + if module.bias is not None: + module.bias.data.zero_() + elif isinstance(module, nn.Embedding): + module.weight.data.normal_(mean=0.0, std=std) + if module.padding_idx is not None: + module.weight.data[module.padding_idx].zero_() + + +SOLAR_INPUTS_DOCSTRING = r""" + Args: + input_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`): + Indices of input sequence tokens in the vocabulary. Padding will be ignored by default should you provide + it. + + Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and + [`PreTrainedTokenizer.__call__`] for details. + + [What are input IDs?](../glossary#input-ids) + attention_mask (`torch.Tensor` of shape `(batch_size, sequence_length)`, *optional*): + Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`: + + - 1 for tokens that are **not masked**, + - 0 for tokens that are **masked**. + + [What are attention masks?](../glossary#attention-mask) + + Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and + [`PreTrainedTokenizer.__call__`] for details. + + If `past_key_values` is used, optionally only the last `input_ids` have to be input (see + `past_key_values`). + + If you want to change padding behavior, you should read [`modeling_opt._prepare_decoder_attention_mask`] + and modify to your needs. See diagram 1 in [the paper](https://arxiv.org/abs/1910.13461) for more + information on the default strategy. + + - 1 indicates the head is **not masked**, + - 0 indicates the head is **masked**. + position_ids (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*): + Indices of positions of each input sequence tokens in the position embeddings. Selected in the range `[0, + config.n_positions - 1]`. + + [What are position IDs?](../glossary#position-ids) + past_key_values (`Cache` or `tuple(tuple(torch.FloatTensor))`, *optional*): + Pre-computed hidden-states (key and values in the self-attention blocks and in the cross-attention + blocks) that can be used to speed up sequential decoding. This typically consists in the `past_key_values` + returned by the model at a previous stage of decoding, when `use_cache=True` or `config.use_cache=True`. + + Two formats are allowed: + - a [`~cache_utils.Cache`] instance; + - Tuple of `tuple(torch.FloatTensor)` of length `config.n_layers`, with each tuple having 2 tensors of + shape `(batch_size, num_heads, sequence_length, embed_size_per_head)`). This is also known as the legacy + cache format. + + The model will output the same cache format that is fed as input. If no `past_key_values` are passed, the + legacy cache format will be returned. + + If `past_key_values` are used, the user can optionally input only the last `input_ids` (those that don't + have their past key value states given to this model) of shape `(batch_size, 1)` instead of all `input_ids` + of shape `(batch_size, sequence_length)`. + inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*): + Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation. This + is useful if you want more control over how to convert `input_ids` indices into associated vectors than the + model's internal embedding lookup matrix. + use_cache (`bool`, *optional*): + If set to `True`, `past_key_values` key value states are returned and can be used to speed up decoding (see + `past_key_values`). + output_attentions (`bool`, *optional*): + Whether or not to return the attentions tensors of all attention layers. See `attentions` under returned + tensors for more detail. + output_hidden_states (`bool`, *optional*): + Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for + more detail. + return_dict (`bool`, *optional*): + Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple. + cache_position (`torch.LongTensor` of shape `(sequence_length)`, *optional*): + Indices depicting the position of the input sequence tokens in the sequence. Contrarily to `position_ids`, + this tensor is not affected by padding. It is used to update the cache in the correct position and to infer + the complete sequence length. +""" + + +@add_start_docstrings( + "The bare Solar Model outputting raw hidden-states without any specific head on top.", + SOLAR_START_DOCSTRING, +) +class SolarModel(SolarPreTrainedModel): + """ + Transformer decoder consisting of *config.num_hidden_layers* layers. Each layer is a [`SolarDecoderLayer`] + + Args: + config: SolarConfig + """ + + def __init__(self, config: SolarConfig): + super().__init__(config) + self.padding_idx = config.pad_token_id + self.vocab_size = config.vocab_size + + self.embed_tokens = nn.Embedding(config.vocab_size, config.hidden_size, self.padding_idx) + self.layers = nn.ModuleList( + [SolarDecoderLayer(config, layer_idx) for layer_idx in range(config.num_hidden_layers)] + ) + self._attn_implementation = config._attn_implementation + self.norm = SolarRMSNorm(config.hidden_size, eps=config.rms_norm_eps) + + self.gradient_checkpointing = False + # Initialize weights and apply final processing + self.post_init() + + def get_input_embeddings(self): + return self.embed_tokens + + def set_input_embeddings(self, value): + self.embed_tokens = value + + @add_start_docstrings_to_model_forward(SOLAR_INPUTS_DOCSTRING) + def forward( + self, + input_ids: torch.LongTensor = None, + attention_mask: Optional[torch.Tensor] = None, + position_ids: Optional[torch.LongTensor] = None, + past_key_values: Optional[Union[Cache, List[torch.FloatTensor]]] = None, + inputs_embeds: Optional[torch.FloatTensor] = None, + use_cache: Optional[bool] = None, + output_attentions: Optional[bool] = None, + output_hidden_states: Optional[bool] = None, + return_dict: Optional[bool] = None, + cache_position: Optional[torch.LongTensor] = None, + ) -> Union[Tuple, BaseModelOutputWithPast]: + output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions + output_hidden_states = ( + output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states + ) + use_cache = use_cache if use_cache is not None else self.config.use_cache + + return_dict = return_dict if return_dict is not None else self.config.use_return_dict + + # retrieve input_ids and inputs_embeds + if (input_ids is None) ^ (inputs_embeds is not None): + raise ValueError( + "You cannot specify both input_ids and inputs_embeds at the same time, and must specify either one" + ) + + if self.gradient_checkpointing and self.training and use_cache: + logger.warning_once( + "`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`..." + ) + use_cache = False + + if inputs_embeds is None: + inputs_embeds = self.embed_tokens(input_ids) + + return_legacy_cache = False + if use_cache and not isinstance(past_key_values, Cache): + past_key_values = DynamicCache.from_legacy_cache(past_key_values) + return_legacy_cache = True + logger.warning_once( + "We detected that you are passing `past_key_values` as a tuple and this is deprecated and will be removed in v4.43. " + "Please use an appropriate `Cache` class (https://huggingface.co/docs/transformers/v4.41.3/en/internal/generation_utils#transformers.Cache)" + ) + + if cache_position is None: + past_seen_tokens = past_key_values.get_seq_length() if past_key_values is not None else 0 + cache_position = torch.arange( + past_seen_tokens, past_seen_tokens + inputs_embeds.shape[1], device=inputs_embeds.device + ) + + if position_ids is None: + position_ids = cache_position.unsqueeze(0) + + causal_mask = self._update_causal_mask( + attention_mask, inputs_embeds, cache_position, past_key_values, use_cache, output_attentions + ) + + hidden_states = inputs_embeds + + # decoder layers + all_hidden_states = () if output_hidden_states else None + all_self_attns = () if output_attentions else None + next_decoder_cache = None + + bskcn_1 = None + bskcn_2 = None + bskcn_tv = self.config.bskcn_tv[0] if self.training else self.config.bskcn_tv[1] + for layer_idx, decoder_layer in enumerate(self.layers): + if layer_idx in self.config.bskcn_1: + bskcn_1 = hidden_states + if layer_idx in self.config.bskcn_2: + bskcn_2 = hidden_states + if layer_idx in self.config.bskcn_3: + hidden_states = (bskcn_1*bskcn_tv).to(hidden_states.device) + hidden_states*(1-bskcn_tv) + if layer_idx in self.config.bskcn_4: + hidden_states = (bskcn_2*bskcn_tv).to(hidden_states.device) + hidden_states*(1-bskcn_tv) + + if output_hidden_states: + all_hidden_states += (hidden_states,) + + if self.gradient_checkpointing and self.training: + layer_outputs = self._gradient_checkpointing_func( + decoder_layer.__call__, + hidden_states, + causal_mask, + position_ids, + past_key_values, + output_attentions, + use_cache, + cache_position, + ) + else: + layer_outputs = decoder_layer( + hidden_states, + attention_mask=causal_mask, + position_ids=position_ids, + past_key_value=past_key_values, + output_attentions=output_attentions, + use_cache=use_cache, + cache_position=cache_position, + ) + + hidden_states = layer_outputs[0] + + if use_cache: + next_decoder_cache = layer_outputs[2 if output_attentions else 1] + + if output_attentions: + all_self_attns += (layer_outputs[1],) + + hidden_states = self.norm(hidden_states) + + # add hidden states from the last decoder layer + if output_hidden_states: + all_hidden_states += (hidden_states,) + + next_cache = next_decoder_cache if use_cache else None + if return_legacy_cache: + next_cache = next_cache.to_legacy_cache() + + if not return_dict: + return tuple(v for v in [hidden_states, next_cache, all_hidden_states, all_self_attns] if v is not None) + return BaseModelOutputWithPast( + last_hidden_state=hidden_states, + past_key_values=next_cache, + hidden_states=all_hidden_states, + attentions=all_self_attns, + ) + + def _update_causal_mask( + self, + attention_mask: torch.Tensor, + input_tensor: torch.Tensor, + cache_position: torch.Tensor, + past_key_values: Cache, + use_cache: bool, + output_attentions: bool, + ): + # TODO: As of torch==2.2.0, the `attention_mask` passed to the model in `generate` is 2D and of dynamic length even when the static + # KV cache is used. This is an issue for torch.compile which then recaptures cudagraphs at each decode steps due to the dynamic shapes. + # (`recording cudagraph tree for symint key 13`, etc.), which is VERY slow. A workaround is `@torch.compiler.disable`, but this prevents using + # `fullgraph=True`. See more context in https://github.com/huggingface/transformers/pull/29114 + + if self._attn_implementation == "flash_attention_2": + if attention_mask is not None and use_cache: + is_padding_right = attention_mask[:, -1].sum().item() != input_tensor.size()[0] + if is_padding_right: + raise ValueError( + "You are attempting to perform batched generation with padding_side='right'" + " this may lead to unexpected behaviour for Flash Attention version of Solar. Make sure to " + " call `tokenizer.padding_side = 'left'` before tokenizing the input. " + ) + if attention_mask is not None and 0.0 in attention_mask: + return attention_mask + return None + + # For SDPA, when possible, we will rely on its `is_causal` argument instead of its `attn_mask` argument, in + # order to dispatch on Flash Attention 2. This feature is not compatible with static cache, as SDPA will fail + # to infer the attention mask. + + # cache_position must be valid here no matter which cache we use + past_seen_tokens = cache_position[0] if past_key_values is not None else 0 + using_static_cache = isinstance(past_key_values, StaticCache) + using_sliding_window_cache = isinstance(past_key_values, SlidingWindowCache) + + if ( + self.config._attn_implementation == "sdpa" + and not (using_static_cache or using_sliding_window_cache) + and not output_attentions + ): + if AttentionMaskConverter._ignore_causal_mask_sdpa( + attention_mask, + inputs_embeds=input_tensor, + past_key_values_length=past_seen_tokens, + sliding_window=self.config.sliding_window, + is_training=self.training, + ): + return None + + dtype, device = input_tensor.dtype, input_tensor.device + min_dtype = torch.finfo(dtype).min + sequence_length = input_tensor.shape[1] + # SlidingWindowCache + if using_sliding_window_cache: + target_length = max(sequence_length, self.config.sliding_window) + # StaticCache + elif using_static_cache: + target_length = past_key_values.get_max_length() + # DynamicCache or no cache + else: + target_length = ( + attention_mask.shape[-1] + if isinstance(attention_mask, torch.Tensor) + else past_seen_tokens + sequence_length + 1 + ) + + if attention_mask is not None and attention_mask.dim() == 4: + # in this case we assume that the mask comes already in inverted form and requires no inversion or slicing + if attention_mask.max() != 0: + raise ValueError("Custom 4D attention mask should be passed in inverted form with max==0`") + causal_mask = attention_mask + else: + causal_mask = torch.full( + (sequence_length, target_length), fill_value=min_dtype, dtype=dtype, device=device + ) + exclude_mask = torch.arange(target_length, device=device) > cache_position.reshape(-1, 1) + if self.config.sliding_window is not None: + if not using_sliding_window_cache or sequence_length > self.config.sliding_window: + exclude_mask |= torch.arange(target_length, device=device) <= ( + cache_position.reshape(-1, 1) - self.config.sliding_window + ) + causal_mask *= exclude_mask + causal_mask = causal_mask[None, None, :, :].expand(input_tensor.shape[0], 1, -1, -1) + if attention_mask is not None: + causal_mask = causal_mask.clone() # copy to contiguous memory for in-place edit + if attention_mask.dim() == 2: + mask_length = attention_mask.shape[-1] + padding_mask = causal_mask[:, :, :, :mask_length] + attention_mask[:, None, None, :] + padding_mask = padding_mask == 0 + causal_mask[:, :, :, :mask_length] = causal_mask[:, :, :, :mask_length].masked_fill( + padding_mask, min_dtype + ) + + if ( + self.config._attn_implementation == "sdpa" + and attention_mask is not None + and attention_mask.device.type == "cuda" + and not output_attentions + ): + # Attend to all tokens in fully masked rows in the causal_mask, for example the relevant first rows when + # using left padding. This is required by F.scaled_dot_product_attention memory-efficient attention path. + # Details: https://github.com/pytorch/pytorch/issues/110213 + causal_mask = AttentionMaskConverter._unmask_unattended(causal_mask, min_dtype) + + return causal_mask + +# Copied from transformers.models.mistral.modeling_mistal.SolarCasualLM +class SolarForCausalLM(SolarPreTrainedModel): + _tied_weights_keys = ["lm_head.weight"] + + def __init__(self, config): + super().__init__(config) + self.model = SolarModel(config) + self.vocab_size = config.vocab_size + self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False) + + # Initialize weights and apply final processing + self.post_init() + + def get_input_embeddings(self): + return self.model.embed_tokens + + def set_input_embeddings(self, value): + self.model.embed_tokens = value + + def get_output_embeddings(self): + return self.lm_head + + def set_output_embeddings(self, new_embeddings): + self.lm_head = new_embeddings + + def set_decoder(self, decoder): + self.model = decoder + + def get_decoder(self): + return self.model + + @add_start_docstrings_to_model_forward(SOLAR_INPUTS_DOCSTRING) + @replace_return_docstrings(output_type=CausalLMOutputWithPast, config_class=_CONFIG_FOR_DOC) + def forward( + self, + input_ids: torch.LongTensor = None, + attention_mask: Optional[torch.Tensor] = None, + position_ids: Optional[torch.LongTensor] = None, + past_key_values: Optional[Union[Cache, List[torch.FloatTensor]]] = None, + inputs_embeds: Optional[torch.FloatTensor] = None, + labels: Optional[torch.LongTensor] = None, + use_cache: Optional[bool] = None, + output_attentions: Optional[bool] = None, + output_hidden_states: Optional[bool] = None, + return_dict: Optional[bool] = None, + cache_position: Optional[torch.LongTensor] = None, + ) -> Union[Tuple, CausalLMOutputWithPast]: + r""" + Args: + labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*): + Labels for computing the masked language modeling loss. Indices should either be in `[0, ..., + config.vocab_size]` or -100 (see `input_ids` docstring). Tokens with indices set to `-100` are ignored + (masked), the loss is only computed for the tokens with labels in `[0, ..., config.vocab_size]`. + + Returns: + + Example: + + ```python + >>> from transformers import AutoTokenizer, SolarForCausalLM + + >>> model = SolarForCausalLM.from_pretrained("upstage/Solar-pro-1.0") + >>> tokenizer = AutoTokenizer.from_pretrained("upstage/Solar-pro-1.0") + + >>> prompt = "Hey, are you conscious? Can you talk to me?" + >>> inputs = tokenizer(prompt, return_tensors="pt") + + >>> # Generate + >>> generate_ids = model.generate(inputs.input_ids, max_length=30) + >>> tokenizer.batch_decode(generate_ids, skip_special_tokens=True, clean_up_tokenization_spaces=False)[0] + "Hey, are you conscious? Can you talk to me?\nI'm not conscious, but I can talk to you." + ```""" + + output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions + output_hidden_states = ( + output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states + ) + return_dict = return_dict if return_dict is not None else self.config.use_return_dict + + # decoder outputs consists of (dec_features, layer_state, dec_hidden, dec_attn) + outputs = self.model( + input_ids=input_ids, + attention_mask=attention_mask, + position_ids=position_ids, + past_key_values=past_key_values, + inputs_embeds=inputs_embeds, + use_cache=use_cache, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + return_dict=return_dict, + cache_position=cache_position, + ) + + hidden_states = outputs[0] + logits = self.lm_head(hidden_states) + logits = logits.float() + + loss = None + if labels is not None: + # Shift so that tokens < n predict n + shift_logits = logits[..., :-1, :].contiguous() + shift_labels = labels[..., 1:].contiguous() + # Flatten the tokens + shift_logits = shift_logits.view(-1, self.config.vocab_size) + shift_labels = shift_labels.view(-1) + # Ensure tensors are on the same device + shift_labels = shift_labels.to(shift_logits.device) + loss_fct = CrossEntropyLoss() + loss = loss_fct(shift_logits, shift_labels) + + if not return_dict: + output = (logits,) + outputs[1:] + return (loss,) + output if loss is not None else output + + return CausalLMOutputWithPast( + loss=loss, + logits=logits, + past_key_values=outputs.past_key_values, + hidden_states=outputs.hidden_states, + attentions=outputs.attentions, + ) + + def prepare_inputs_for_generation( + self, + input_ids, + past_key_values=None, + attention_mask=None, + inputs_embeds=None, + cache_position=None, + use_cache=True, + **kwargs, + ): + past_length = 0 + # Omit tokens covered by past_key_values + if past_key_values is not None: + # Past key values are always initialized with a `Cache` object -> no need for if-else anymore + past_length = cache_position[0] if cache_position is not None else past_key_values.get_seq_length() + max_cache_length = ( + torch.tensor(past_key_values.get_max_length(), device=input_ids.device) + if past_key_values.get_max_length() is not None + else None + ) + cache_length = past_length if max_cache_length is None else torch.min(max_cache_length, past_length) + + # Keep only the unprocessed tokens: + # 1 - If the length of the attention_mask exceeds the length of input_ids, then we are in a setting where + # some of the inputs are exclusively passed as part of the cache (e.g. when passing input_embeds as + # input) + if attention_mask is not None and attention_mask.shape[1] > input_ids.shape[1]: + input_ids = input_ids[:, -(attention_mask.shape[1] - past_length) :] + # 2 - If the past_length is smaller than input_ids', then input_ids holds all input tokens. We can discard + # input_ids based on the past_length. + elif past_length < input_ids.shape[1]: + input_ids = input_ids[:, past_length:] + # 3 - Otherwise (past_length >= input_ids.shape[1]), let's assume input_ids only has unprocessed tokens. + + # If we are about to go beyond the maximum cache length, we need to crop the input attention mask. + if ( + max_cache_length is not None + and attention_mask is not None + and cache_length + input_ids.shape[1] > max_cache_length + ): + attention_mask = attention_mask[:, -max_cache_length:] + + position_ids = kwargs.get("position_ids", None) + if attention_mask is not None and position_ids is None: + # create position_ids on the fly for batch generation + position_ids = attention_mask.long().cumsum(-1) - 1 + position_ids.masked_fill_(attention_mask == 0, 1) + if past_key_values: + position_ids = position_ids[:, -input_ids.shape[1] :] + + # crop the attention_mask to sliding window size during decode phase if using SlidingWindowCache + if ( + past_length > 0 + and attention_mask is not None + and isinstance(past_key_values, SlidingWindowCache) + and attention_mask.shape[1] > past_key_values.max_cache_len + ): + attention_mask = attention_mask[:, -past_key_values.max_cache_len :] + + # if `inputs_embeds` are passed, we only want to use them in the 1st generation step + if inputs_embeds is not None and past_length == 0: + model_inputs = {"inputs_embeds": inputs_embeds} + else: + model_inputs = {"input_ids": input_ids.contiguous()} + + input_length = position_ids.shape[-1] if position_ids is not None else input_ids.shape[-1] + if cache_position is None: + cache_position = torch.arange(past_length, past_length + input_length, device=input_ids.device) + elif use_cache: + cache_position = cache_position[-input_length:] + + model_inputs.update( + { + "position_ids": position_ids, + "cache_position": cache_position, + "past_key_values": past_key_values, + "use_cache": use_cache, + "attention_mask": attention_mask, + } + ) + return model_inputs + + @staticmethod + def _reorder_cache(past_key_values, beam_idx): + reordered_past = () + for layer_past in past_key_values: + reordered_past += ( + tuple(past_state.index_select(0, beam_idx.to(past_state.device)) for past_state in layer_past), + ) + return reordered_past + + +@add_start_docstrings( + """ + The Solar Model transformer with a sequence classification head on top (linear layer). + + [`SolarForSequenceClassification`] uses the last token in order to do the classification, as other causal models + (e.g. GPT-2) do. + + Since it does classification on the last token, it requires to know the position of the last token. If a + `pad_token_id` is defined in the configuration, it finds the last token that is not a padding token in each row. If + no `pad_token_id` is defined, it simply takes the last value in each row of the batch. Since it cannot guess the + padding tokens when `inputs_embeds` are passed instead of `input_ids`, it does the same (take the last value in + each row of the batch). + """, + SOLAR_START_DOCSTRING, +) +class SolarForSequenceClassification(SolarPreTrainedModel): + def __init__(self, config): + super().__init__(config) + self.num_labels = config.num_labels + self.model = SolarModel(config) + self.score = nn.Linear(config.hidden_size, self.num_labels, bias=False) + + # Initialize weights and apply final processing + self.post_init() + + def get_input_embeddings(self): + return self.model.embed_tokens + + def set_input_embeddings(self, value): + self.model.embed_tokens = value + + @add_start_docstrings_to_model_forward(SOLAR_INPUTS_DOCSTRING) + def forward( + self, + input_ids: torch.LongTensor = None, + attention_mask: Optional[torch.Tensor] = None, + position_ids: Optional[torch.LongTensor] = None, + past_key_values: Optional[Union[Cache, List[torch.FloatTensor]]] = None, + inputs_embeds: Optional[torch.FloatTensor] = None, + labels: Optional[torch.LongTensor] = None, + use_cache: Optional[bool] = None, + output_attentions: Optional[bool] = None, + output_hidden_states: Optional[bool] = None, + return_dict: Optional[bool] = None, + ) -> Union[Tuple, SequenceClassifierOutputWithPast]: + r""" + labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*): + Labels for computing the sequence classification/regression loss. Indices should be in `[0, ..., + config.num_labels - 1]`. If `config.num_labels == 1` a regression loss is computed (Mean-Square loss), If + `config.num_labels > 1` a classification loss is computed (Cross-Entropy). + """ + return_dict = return_dict if return_dict is not None else self.config.use_return_dict + + transformer_outputs = self.model( + input_ids, + attention_mask=attention_mask, + position_ids=position_ids, + past_key_values=past_key_values, + inputs_embeds=inputs_embeds, + use_cache=use_cache, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + return_dict=return_dict, + ) + hidden_states = transformer_outputs[0] + logits = self.score(hidden_states) + + if input_ids is not None: + batch_size = input_ids.shape[0] + else: + batch_size = inputs_embeds.shape[0] + + if self.config.pad_token_id is None and batch_size != 1: + raise ValueError("Cannot handle batch sizes > 1 if no padding token is defined.") + if self.config.pad_token_id is None: + sequence_lengths = -1 + else: + if input_ids is not None: + # if no pad token found, use modulo instead of reverse indexing for ONNX compatibility + sequence_lengths = torch.eq(input_ids, self.config.pad_token_id).int().argmax(-1) - 1 + sequence_lengths = sequence_lengths % input_ids.shape[-1] + sequence_lengths = sequence_lengths.to(logits.device) + else: + sequence_lengths = -1 + + pooled_logits = logits[torch.arange(batch_size, device=logits.device), sequence_lengths] + + loss = None + if labels is not None: + labels = labels.to(logits.device) + if self.config.problem_type is None: + if self.num_labels == 1: + self.config.problem_type = "regression" + elif self.num_labels > 1 and (labels.dtype == torch.long or labels.dtype == torch.int): + self.config.problem_type = "single_label_classification" + else: + self.config.problem_type = "multi_label_classification" + + if self.config.problem_type == "regression": + loss_fct = MSELoss() + if self.num_labels == 1: + loss = loss_fct(pooled_logits.squeeze(), labels.squeeze()) + else: + loss = loss_fct(pooled_logits, labels) + elif self.config.problem_type == "single_label_classification": + loss_fct = CrossEntropyLoss() + loss = loss_fct(pooled_logits.view(-1, self.num_labels), labels.view(-1)) + elif self.config.problem_type == "multi_label_classification": + loss_fct = BCEWithLogitsLoss() + loss = loss_fct(pooled_logits, labels) + if not return_dict: + output = (pooled_logits,) + transformer_outputs[1:] + return ((loss,) + output) if loss is not None else output + + return SequenceClassifierOutputWithPast( + loss=loss, + logits=pooled_logits, + past_key_values=transformer_outputs.past_key_values, + hidden_states=transformer_outputs.hidden_states, + attentions=transformer_outputs.attentions, + ) + + +@add_start_docstrings( + """ +The Solar Model transformer with a span classification head on top for extractive question-answering tasks like +SQuAD (a linear layer on top of the hidden-states output to compute `span start logits` and `span end logits`). + """, + SOLAR_START_DOCSTRING, +) +class SolarForQuestionAnswering(SolarPreTrainedModel): + base_model_prefix = "transformer" + + # Copied from transformers.models.bloom.modeling_bloom.BloomForQuestionAnswering.__init__ with Bloom->Solar + def __init__(self, config): + super().__init__(config) + self.transformer = SolarModel(config) + self.qa_outputs = nn.Linear(config.hidden_size, 2) + + # Initialize weights and apply final processing + self.post_init() + + def get_input_embeddings(self): + return self.transformer.embed_tokens + + def set_input_embeddings(self, value): + self.transformer.embed_tokens = value + + @add_start_docstrings_to_model_forward(SOLAR_INPUTS_DOCSTRING) + def forward( + self, + input_ids: Optional[torch.LongTensor] = None, + attention_mask: Optional[torch.FloatTensor] = None, + position_ids: Optional[torch.LongTensor] = None, + past_key_values: Optional[Union[Cache, List[torch.FloatTensor]]] = None, + inputs_embeds: Optional[torch.FloatTensor] = None, + start_positions: Optional[torch.LongTensor] = None, + end_positions: Optional[torch.LongTensor] = None, + output_attentions: Optional[bool] = None, + output_hidden_states: Optional[bool] = None, + return_dict: Optional[bool] = None, + ) -> Union[Tuple, QuestionAnsweringModelOutput]: + r""" + start_positions (`torch.LongTensor` of shape `(batch_size,)`, *optional*): + Labels for position (index) of the start of the labelled span for computing the token classification loss. + Positions are clamped to the length of the sequence (`sequence_length`). Position outside of the sequence + are not taken into account for computing the loss. + end_positions (`torch.LongTensor` of shape `(batch_size,)`, *optional*): + Labels for position (index) of the end of the labelled span for computing the token classification loss. + Positions are clamped to the length of the sequence (`sequence_length`). Position outside of the sequence + are not taken into account for computing the loss. + """ + return_dict = return_dict if return_dict is not None else self.config.use_return_dict + + outputs = self.transformer( + input_ids, + attention_mask=attention_mask, + position_ids=position_ids, + past_key_values=past_key_values, + inputs_embeds=inputs_embeds, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + return_dict=return_dict, + ) + + sequence_output = outputs[0] + + logits = self.qa_outputs(sequence_output) + start_logits, end_logits = logits.split(1, dim=-1) + start_logits = start_logits.squeeze(-1).contiguous() + end_logits = end_logits.squeeze(-1).contiguous() + + total_loss = None + if start_positions is not None and end_positions is not None: + # If we are on multi-GPU, split add a dimension + if len(start_positions.size()) > 1: + start_positions = start_positions.squeeze(-1).to(start_logits.device) + if len(end_positions.size()) > 1: + end_positions = end_positions.squeeze(-1).to(end_logits.device) + # sometimes the start/end positions are outside our model inputs, we ignore these terms + ignored_index = start_logits.size(1) + start_positions = start_positions.clamp(0, ignored_index) + end_positions = end_positions.clamp(0, ignored_index) + + loss_fct = CrossEntropyLoss(ignore_index=ignored_index) + start_loss = loss_fct(start_logits, start_positions) + end_loss = loss_fct(end_logits, end_positions) + total_loss = (start_loss + end_loss) / 2 + + if not return_dict: + output = (start_logits, end_logits) + outputs[2:] + return ((total_loss,) + output) if total_loss is not None else output + + return QuestionAnsweringModelOutput( + loss=total_loss, + start_logits=start_logits, + end_logits=end_logits, + hidden_states=outputs.hidden_states, + attentions=outputs.attentions, + ) + + +@add_start_docstrings( + """ + The Solar Model transformer with a token classification head on top (a linear layer on top of the hidden-states + output) e.g. for Named-Entity-Recognition (NER) tasks. + """, + SOLAR_START_DOCSTRING, +) +class SolarForTokenClassification(SolarPreTrainedModel): + def __init__(self, config): + super().__init__(config) + self.num_labels = config.num_labels + self.model = SolarModel(config) + if getattr(config, "classifier_dropout", None) is not None: + classifier_dropout = config.classifier_dropout + elif getattr(config, "hidden_dropout", None) is not None: + classifier_dropout = config.hidden_dropout + else: + classifier_dropout = 0.1 + self.dropout = nn.Dropout(classifier_dropout) + self.score = nn.Linear(config.hidden_size, config.num_labels) + + # Initialize weights and apply final processing + self.post_init() + + def get_input_embeddings(self): + return self.model.embed_tokens + + def set_input_embeddings(self, value): + self.model.embed_tokens = value + + @add_start_docstrings_to_model_forward(SOLAR_INPUTS_DOCSTRING) + def forward( + self, + input_ids: Optional[torch.LongTensor] = None, + attention_mask: Optional[torch.Tensor] = None, + position_ids: Optional[torch.LongTensor] = None, + past_key_values: Optional[List[torch.FloatTensor]] = None, + inputs_embeds: Optional[torch.FloatTensor] = None, + labels: Optional[torch.LongTensor] = None, + use_cache: Optional[bool] = None, + output_attentions: Optional[bool] = None, + output_hidden_states: Optional[bool] = None, + return_dict: Optional[bool] = None, + ) -> Union[Tuple, TokenClassifierOutput]: + r""" + labels (`torch.LongTensor` of shape `(batch_size,)`, *optional*): + Labels for computing the sequence classification/regression loss. Indices should be in `[0, ..., + config.num_labels - 1]`. If `config.num_labels == 1` a regression loss is computed (Mean-Square loss), If + `config.num_labels > 1` a classification loss is computed (Cross-Entropy). + """ + return_dict = return_dict if return_dict is not None else self.config.use_return_dict + + outputs = self.model( + input_ids, + attention_mask=attention_mask, + position_ids=position_ids, + past_key_values=past_key_values, + inputs_embeds=inputs_embeds, + use_cache=use_cache, + output_attentions=output_attentions, + output_hidden_states=output_hidden_states, + return_dict=return_dict, + ) + sequence_output = outputs[0] + sequence_output = self.dropout(sequence_output) + logits = self.score(sequence_output) + + loss = None + if labels is not None: + loss_fct = CrossEntropyLoss() + loss = loss_fct(logits.view(-1, self.num_labels), labels.view(-1)) + + if not return_dict: + output = (logits,) + outputs[2:] + return ((loss,) + output) if loss is not None else output + + return TokenClassifierOutput( + loss=loss, + logits=logits, + hidden_states=outputs.hidden_states, + attentions=outputs.attentions, + ) diff --git a/solar-pro-banner.png b/solar-pro-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..d5da77039c13a63e467e64e0fcab678797dc1125 GIT binary patch literal 385058 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�p5TX12uwm)3SJi@v|VoLUD%iQxn0J6G1WMOeP9j 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󥳿ggGfj=1Q;BF`s{`NT1VoN*fWlQZ>)f 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 Vz+%la_+JS;S5{Xld1CVJ{{z&blve-% literal 0 HcmV?d00001 diff --git a/special_tokens_map.json b/special_tokens_map.json new file mode 100644 index 0000000..9dc5d24 --- /dev/null +++ b/special_tokens_map.json @@ -0,0 +1,30 @@ +{ + "bos_token": { + "content": "<|startoftext|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "eos_token": { + "content": "<|im_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "pad_token": { + "content": "<|im_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + }, + "unk_token": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false + } +} diff --git a/tokenizer.json b/tokenizer.json new file mode 100644 index 0000000..cf70593 --- /dev/null +++ b/tokenizer.json @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:592a70a0f7aae41e1e2711383a233def76a85ef1698e35a0935ec5892d5403bd +size 1866587 diff --git a/tokenizer.model b/tokenizer.model new file mode 100644 index 0000000..58c0e7a --- /dev/null +++ b/tokenizer.model @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e79e5412a9810832e8183fb69a7fef269d8558215223b5e1bd07480e711119b7 +size 499744 diff --git a/tokenizer_config.json b/tokenizer_config.json new file mode 100644 index 0000000..570de84 --- /dev/null +++ b/tokenizer_config.json @@ -0,0 +1,1067 @@ +{ + "add_bos_token": true, + "add_eos_token": false, + "add_prefix_space": null, + "added_tokens_decoder": { + "0": { + "content": "", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "1": { + "content": "<|startoftext|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "2": { + "content": "<|endoftext|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "32000": { + "content": "<|end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "32001": { + "content": "<|assistant|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "32002": { + "content": "<|placeholder1|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32003": { + "content": "<|placeholder2|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32004": { + "content": "<|placeholder3|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32005": { + "content": "<|placeholder4|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32006": { + "content": "<|system|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "32007": { + "content": "<|im_end|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "32008": { + "content": "<|placeholder5|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32009": { + "content": "<|placeholder6|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32010": { + "content": "<|im_start|>", + "lstrip": false, + "normalized": false, + "rstrip": false, + "single_word": false, + "special": true + }, + "32011": { + "content": "<|placeholder7|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32012": { + "content": "<|placeholder8|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32013": { + "content": "<|placeholder9|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32014": { + "content": "<|placeholder10|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32015": { + "content": "<|placeholder11|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32016": { + "content": "<|placeholder12|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32017": { + "content": "<|placeholder13|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32018": { + "content": "<|placeholder14|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32019": { + "content": "<|placeholder15|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32020": { + "content": "<|placeholder16|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32021": { + "content": "<|placeholder17|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32022": { + "content": "<|placeholder18|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32023": { + "content": "<|placeholder19|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32024": { + "content": "<|placeholder20|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32025": { + "content": "<|placeholder21|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32026": { + "content": "<|placeholder22|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32027": { + "content": "<|placeholder23|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32028": { + "content": "<|placeholder24|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32029": { + "content": "<|placeholder25|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32030": { + "content": "<|placeholder26|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32031": { + "content": "<|placeholder27|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32032": { + "content": "<|placeholder28|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32033": { + "content": "<|placeholder29|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32034": { + "content": "<|placeholder30|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32035": { + "content": "<|placeholder31|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32036": { + "content": "<|placeholder32|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32037": { + "content": "<|placeholder33|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32038": { + "content": "<|placeholder34|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32039": { + "content": "<|placeholder35|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32040": { + "content": "<|placeholder36|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32041": { + "content": "<|placeholder37|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32042": { + "content": "<|placeholder38|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32043": { + "content": "<|placeholder39|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32044": { + "content": "<|placeholder40|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32045": { + "content": "<|placeholder41|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32046": { + "content": "<|placeholder42|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32047": { + "content": "<|placeholder43|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32048": { + "content": "<|placeholder44|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32049": { + "content": "<|placeholder45|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32050": { + "content": "<|placeholder46|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32051": { + "content": "<|placeholder47|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32052": { + "content": "<|placeholder48|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32053": { + "content": "<|placeholder49|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32054": { + "content": "<|placeholder50|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32055": { + "content": "<|placeholder51|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32056": { + "content": "<|placeholder52|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32057": { + "content": "<|placeholder53|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32058": { + "content": "<|placeholder54|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32059": { + "content": "<|placeholder55|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32060": { + "content": "<|placeholder56|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32061": { + "content": "<|placeholder57|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32062": { + "content": "<|placeholder58|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32063": { + "content": "<|placeholder59|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32064": { + "content": "<|placeholder60|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32065": { + "content": "<|placeholder61|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32066": { + "content": "<|placeholder62|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32067": { + "content": "<|placeholder63|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32068": { + "content": "<|placeholder64|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32069": { + "content": "<|placeholder65|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32070": { + "content": "<|placeholder66|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32071": { + "content": "<|placeholder67|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32072": { + "content": "<|placeholder68|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32073": { + "content": "<|placeholder69|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32074": { + "content": "<|placeholder70|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32075": { + "content": "<|placeholder71|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32076": { + "content": "<|placeholder72|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32077": { + "content": "<|placeholder73|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32078": { + "content": "<|placeholder74|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32079": { + "content": "<|placeholder75|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32080": { + "content": "<|placeholder76|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32081": { + "content": "<|placeholder77|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32082": { + "content": "<|placeholder78|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32083": { + "content": "<|placeholder79|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32084": { + "content": "<|placeholder80|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32085": { + "content": "<|placeholder81|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32086": { + "content": "<|placeholder82|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32087": { + "content": "<|placeholder83|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32088": { + "content": "<|placeholder84|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32089": { + "content": "<|placeholder85|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32090": { + "content": "<|placeholder86|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32091": { + "content": "<|placeholder87|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32092": { + "content": "<|placeholder88|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32093": { + "content": "<|placeholder89|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32094": { + "content": "<|placeholder90|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32095": { + "content": "<|placeholder91|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32096": { + "content": "<|placeholder92|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32097": { + "content": "<|placeholder93|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32098": { + "content": "<|placeholder94|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32099": { + "content": "<|placeholder95|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32100": { + "content": "<|placeholder96|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32101": { + "content": "<|placeholder97|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32102": { + "content": "<|placeholder98|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32103": { + "content": "<|placeholder99|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32104": { + "content": "<|placeholder100|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32105": { + "content": "<|placeholder101|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32106": { + "content": "<|placeholder102|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32107": { + "content": "<|placeholder103|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32108": { + "content": "<|placeholder104|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32109": { + "content": "<|placeholder105|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32110": { + "content": "<|placeholder106|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32111": { + "content": "<|placeholder107|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32112": { + "content": "<|placeholder108|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32113": { + "content": "<|placeholder109|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32114": { + "content": "<|placeholder110|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32115": { + "content": "<|placeholder111|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32116": { + "content": "<|placeholder112|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32117": { + "content": "<|placeholder113|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32118": { + "content": "<|placeholder114|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32119": { + "content": "<|placeholder115|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32120": { + "content": "<|placeholder116|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32121": { + "content": "<|placeholder117|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32122": { + "content": "<|placeholder118|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32123": { + "content": "<|placeholder119|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32124": { + "content": "<|placeholder120|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32125": { + "content": "<|placeholder121|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32126": { + "content": "<|placeholder122|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + }, + "32127": { + "content": "<|placeholder123|>", + "lstrip": false, + "normalized": false, + "rstrip": true, + "single_word": false, + "special": true + } + }, + "bos_token": "<|startoftext|>", + "chat_template": "{% if not add_generation_prompt is defined %}{% set add_generation_prompt = false %}{% endif %}{% for message in messages %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\n' }}{% endif %}", + "clean_up_tokenization_spaces": false, + "eos_token": "<|im_end|>", + "legacy": true, + "model_max_length": 4096, + "pad_token": "<|im_end|>", + "padding_side": "left", + "sp_model_kwargs": {}, + "tokenizer_class": "LlamaTokenizer", + "unk_token": "", + "use_default_system_prompt": false +} diff --git a/vllm_solar.py b/vllm_solar.py new file mode 100644 index 0000000..70d2f02 --- /dev/null +++ b/vllm_solar.py @@ -0,0 +1,552 @@ +# coding=utf-8 +# Adapted from +# https://github.com/huggingface/transformers/blob/v4.28.0/src/transformers/models/llama/modeling_llama.py +# Copyright 2023 The vLLM team. +# Copyright 2022 EleutherAI and the HuggingFace Inc. team. All rights reserved. +# +# This code is based on EleutherAI's GPT-NeoX library and the GPT-NeoX +# and OPT implementations in this library. It has been modified from its +# original forms to accommodate minor architectural differences compared +# to GPT-NeoX and OPT used by the Meta AI team that trained the model. +# +# 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. +"""Inference-only Solar model compatible with HuggingFace weights.""" +from typing import Any, Dict, Iterable, List, Optional, Tuple, Union + +import torch +from torch import nn + +from vllm.attention import Attention, AttentionMetadata +from vllm.config import CacheConfig, LoRAConfig +from vllm.distributed import (get_pp_group, get_tensor_model_parallel_rank, + get_tensor_model_parallel_world_size) +from vllm.model_executor.layers.activation import SiluAndMul +from vllm.model_executor.layers.layernorm import RMSNorm +from vllm.model_executor.layers.linear import (MergedColumnParallelLinear, + QKVParallelLinear, + RowParallelLinear) +from vllm.model_executor.layers.logits_processor import LogitsProcessor +from vllm.model_executor.layers.quantization.base_config import ( + QuantizationConfig) +from vllm.model_executor.layers.quantization.compressed_tensors.utils import ( + get_compressed_tensors_cache_scale) +from vllm.model_executor.layers.rotary_embedding import get_rope +from vllm.model_executor.layers.sampler import Sampler +from vllm.model_executor.layers.vocab_parallel_embedding import ( + DEFAULT_VOCAB_PADDING_SIZE, ParallelLMHead, VocabParallelEmbedding) +from vllm.model_executor.model_loader.weight_utils import ( + default_weight_loader, kv_cache_scales_loader, maybe_remap_kv_scale_name) +from vllm.model_executor.sampling_metadata import SamplingMetadata +from vllm.sequence import IntermediateTensors, SamplerOutput +from vllm.utils import is_hip + +from vllm.model_executor.models.interfaces import SupportsLoRA +from vllm.model_executor.models.utils import PPMissingLayer, is_pp_missing_parameter, make_layers + +class SolarMLP(nn.Module): + + def __init__( + self, + hidden_size: int, + intermediate_size: int, + hidden_act: str, + quant_config: Optional[QuantizationConfig] = None, + bias: bool = False, + prefix: str = "", + ) -> None: + super().__init__() + self.gate_up_proj = MergedColumnParallelLinear( + input_size=hidden_size, + output_sizes=[intermediate_size] * 2, + bias=bias, + quant_config=quant_config, + prefix=f"{prefix}.gate_up_proj") + self.down_proj = RowParallelLinear(input_size=intermediate_size, + output_size=hidden_size, + bias=bias, + quant_config=quant_config, + prefix=f"{prefix}.down_proj") + if hidden_act != "silu": + raise ValueError(f"Unsupported activation: {hidden_act}. " + "Only silu is supported for now.") + self.act_fn = SiluAndMul() + + def forward(self, x): + gate_up, _ = self.gate_up_proj(x) + x = self.act_fn(gate_up) + x, _ = self.down_proj(x) + return x + + +class SolarAttention(nn.Module): + + def __init__( + self, + config, + hidden_size: int, + num_heads: int, + num_kv_heads: int, + rope_theta: float = 10000, + rope_scaling: Optional[Dict[str, Any]] = None, + max_position_embeddings: int = 8192, + quant_config: Optional[QuantizationConfig] = None, + bias: bool = False, + cache_config: Optional[CacheConfig] = None, + prefix: str = "", + ) -> None: + super().__init__() + self.hidden_size = hidden_size + tp_size = get_tensor_model_parallel_world_size() + self.total_num_heads = num_heads + assert self.total_num_heads % tp_size == 0 + self.num_heads = self.total_num_heads // tp_size + self.total_num_kv_heads = num_kv_heads + if self.total_num_kv_heads >= tp_size: + # Number of KV heads is greater than TP size, so we partition + # the KV heads across multiple tensor parallel GPUs. + assert self.total_num_kv_heads % tp_size == 0 + else: + # Number of KV heads is less than TP size, so we replicate + # the KV heads across multiple tensor parallel GPUs. + assert tp_size % self.total_num_kv_heads == 0 + self.num_kv_heads = max(1, self.total_num_kv_heads // tp_size) + # MistralConfig has an optional head_dim introduced by Mistral-Nemo + self.head_dim = getattr(config, "head_dim", + self.hidden_size // self.total_num_heads) + self.q_size = self.num_heads * self.head_dim + self.kv_size = self.num_kv_heads * self.head_dim + self.scaling = self.head_dim**-0.5 + self.rope_theta = rope_theta + self.max_position_embeddings = max_position_embeddings + + self.qkv_proj = QKVParallelLinear( + hidden_size=hidden_size, + head_size=self.head_dim, + total_num_heads=self.total_num_heads, + total_num_kv_heads=self.total_num_kv_heads, + bias=bias, + quant_config=quant_config, + prefix=f"{prefix}.qkv_proj", + ) + self.o_proj = RowParallelLinear( + input_size=self.total_num_heads * self.head_dim, + output_size=hidden_size, + bias=bias, + quant_config=quant_config, + prefix=f"{prefix}.o_proj", + ) + + self.rotary_emb = get_rope( + self.head_dim, + rotary_dim=self.head_dim, + max_position=max_position_embeddings, + base=rope_theta, + rope_scaling=rope_scaling, + ) + self.attn = Attention(self.num_heads, + self.head_dim, + self.scaling, + num_kv_heads=self.num_kv_heads, + cache_config=cache_config, + quant_config=quant_config) + + def forward( + self, + positions: torch.Tensor, + hidden_states: torch.Tensor, + kv_cache: torch.Tensor, + attn_metadata: AttentionMetadata, + ) -> torch.Tensor: + qkv, _ = self.qkv_proj(hidden_states) + q, k, v = qkv.split([self.q_size, self.kv_size, self.kv_size], dim=-1) + q, k = self.rotary_emb(positions, q, k) + attn_output = self.attn(q, k, v, kv_cache, attn_metadata) + output, _ = self.o_proj(attn_output) + return output + + +class SolarDecoderLayer(nn.Module): + + def __init__( + self, + config, + cache_config: Optional[CacheConfig] = None, + quant_config: Optional[QuantizationConfig] = None, + prefix: str = "", + ) -> None: + super().__init__() + self.hidden_size = config.hidden_size + rope_theta = getattr(config, "rope_theta", 10000) + rope_scaling = getattr(config, "rope_scaling", None) + if rope_scaling is not None and getattr( + config, "original_max_position_embeddings", None): + rope_scaling["original_max_position_embeddings"] = ( + config.original_max_position_embeddings) + max_position_embeddings = getattr(config, "max_position_embeddings", + 8192) + # Support abacusai/Smaug-72B-v0.1 with attention_bias + # Support internlm/internlm-7b with bias + attention_bias = getattr(config, "attention_bias", False) or getattr( + config, "bias", False) + self.self_attn = SolarAttention( + config=config, + hidden_size=self.hidden_size, + num_heads=config.num_attention_heads, + num_kv_heads=getattr(config, "num_key_value_heads", + config.num_attention_heads), + rope_theta=rope_theta, + rope_scaling=rope_scaling, + max_position_embeddings=max_position_embeddings, + quant_config=quant_config, + bias=attention_bias, + cache_config=cache_config, + prefix=f"{prefix}.self_attn", + ) + self.mlp = SolarMLP( + hidden_size=self.hidden_size, + intermediate_size=config.intermediate_size, + hidden_act=config.hidden_act, + quant_config=quant_config, + bias=getattr(config, "mlp_bias", False), + prefix=f"{prefix}.mlp", + ) + self.input_layernorm = RMSNorm(config.hidden_size, + eps=config.rms_norm_eps) + self.post_attention_layernorm = RMSNorm(config.hidden_size, + eps=config.rms_norm_eps) + + def forward( + self, + positions: torch.Tensor, + hidden_states: torch.Tensor, + kv_cache: torch.Tensor, + attn_metadata: AttentionMetadata, + residual: Optional[torch.Tensor], + ) -> Tuple[torch.Tensor, torch.Tensor]: + # Self Attention + if residual is None: + residual = hidden_states + hidden_states = self.input_layernorm(hidden_states) + else: + hidden_states, residual = self.input_layernorm( + hidden_states, residual) + hidden_states = self.self_attn( + positions=positions, + hidden_states=hidden_states, + kv_cache=kv_cache, + attn_metadata=attn_metadata, + ) + + # Fully Connected + hidden_states, residual = self.post_attention_layernorm( + hidden_states, residual) + hidden_states = self.mlp(hidden_states) + return hidden_states, residual + + +class SolarModel(nn.Module): + + def __init__( + self, + config, + cache_config: Optional[CacheConfig] = None, + quant_config: Optional[QuantizationConfig] = None, + lora_config: Optional[LoRAConfig] = None, + prefix: str = "", + ) -> None: + super().__init__() + self.config = config + self.padding_idx = config.pad_token_id + lora_vocab = (lora_config.lora_extra_vocab_size * + (lora_config.max_loras or 1)) if lora_config else 0 + self.vocab_size = config.vocab_size + lora_vocab + self.org_vocab_size = config.vocab_size + if get_pp_group().is_first_rank or (config.tie_word_embeddings + and get_pp_group().is_last_rank): + self.embed_tokens = VocabParallelEmbedding( + self.vocab_size, + config.hidden_size, + org_num_embeddings=config.vocab_size, + ) + else: + self.embed_tokens = PPMissingLayer() + self.start_layer, self.end_layer, self.layers = make_layers( + config.num_hidden_layers, + lambda prefix: SolarDecoderLayer(config=config, + cache_config=cache_config, + quant_config=quant_config, + prefix=prefix), + prefix=f"{prefix}.layers") + if get_pp_group().is_last_rank: + self.norm = RMSNorm(config.hidden_size, eps=config.rms_norm_eps) + else: + self.norm = PPMissingLayer() + + def get_input_embeddings(self, input_ids: torch.Tensor) -> torch.Tensor: + return self.embed_tokens(input_ids) + + def forward( + self, + input_ids: Optional[torch.Tensor], + positions: torch.Tensor, + kv_caches: List[torch.Tensor], + attn_metadata: AttentionMetadata, + intermediate_tensors: Optional[IntermediateTensors], + inputs_embeds: Optional[torch.Tensor] = None, + ) -> Union[torch.Tensor, IntermediateTensors]: + if get_pp_group().is_first_rank: + if inputs_embeds is not None: + hidden_states = inputs_embeds + else: + hidden_states = self.get_input_embeddings(input_ids) + residual = None + else: + assert intermediate_tensors is not None + hidden_states = intermediate_tensors["hidden_states"] + residual = intermediate_tensors["residual"] + + bskcn_h_1 = None + bskcn_h_2 = None + bskcn_r_1 = None + bskcn_r_2 = None + bskcn_tv = self.config.bskcn_tv[0] if self.training else self.config.bskcn_tv[1] + + for i in range(self.start_layer, self.end_layer): + if i in self.config.bskcn_1: + bskcn_h_1 = hidden_states.clone() + bskcn_r_1 = residual.clone() + if i in self.config.bskcn_2: + bskcn_h_2 = hidden_states.clone() + bskcn_r_2 = residual.clone() + if i in self.config.bskcn_3: + hidden_states = bskcn_h_1*bskcn_tv + hidden_states*(1-bskcn_tv) + residual = bskcn_r_1*bskcn_tv + residual*(1-bskcn_tv) + if i in self.config.bskcn_4: + hidden_states = bskcn_h_2*bskcn_tv + hidden_states*(1-bskcn_tv) + residual = bskcn_r_2*bskcn_tv + residual*(1-bskcn_tv) + layer = self.layers[i] + hidden_states, residual = layer( + positions, + hidden_states, + kv_caches[i - self.start_layer], + attn_metadata, + residual, + ) + + if not get_pp_group().is_last_rank: + return IntermediateTensors({ + "hidden_states": hidden_states, + "residual": residual + }) + + hidden_states, _ = self.norm(hidden_states, residual) + return hidden_states + + +class SolarForCausalLM(nn.Module, SupportsLoRA): + packed_modules_mapping = { + "qkv_proj": [ + "q_proj", + "k_proj", + "v_proj", + ], + "gate_up_proj": [ + "gate_proj", + "up_proj", + ], + } + + # LoRA specific attributes + supported_lora_modules = [ + "qkv_proj", "o_proj", "gate_up_proj", "down_proj", "embed_tokens", + "lm_head" + ] + embedding_modules = { + "embed_tokens": "input_embeddings", + "lm_head": "output_embeddings", + } + embedding_padding_modules = ["lm_head"] + bitsandbytes_stacked_params_mapping = { + # shard_name, weight_name, index + "q_proj": ("qkv_proj", 0), + "k_proj": ("qkv_proj", 1), + "v_proj": ("qkv_proj", 2), + "gate_proj": ("gate_up_proj", 0), + "up_proj": ("gate_up_proj", 1), + } + + def __init__( + self, + config, + cache_config: Optional[CacheConfig] = None, + quant_config: Optional[QuantizationConfig] = None, + lora_config: Optional[LoRAConfig] = None, + ) -> None: + super().__init__() + + self.config = config + self.lora_config = lora_config + + self.model = SolarModel(config, + cache_config, + quant_config, + lora_config=lora_config, + prefix="model") + if get_pp_group().is_last_rank: + self.unpadded_vocab_size = config.vocab_size + if lora_config: + self.unpadded_vocab_size += lora_config.lora_extra_vocab_size + self.lm_head = ParallelLMHead( + self.unpadded_vocab_size, + config.hidden_size, + org_num_embeddings=config.vocab_size, + padding_size=DEFAULT_VOCAB_PADDING_SIZE + # We need bigger padding if using lora for kernel + # compatibility + if not lora_config else lora_config.lora_vocab_padding_size, + quant_config=quant_config, + ) + if config.tie_word_embeddings: + self.lm_head.weight = self.model.embed_tokens.weight + + logit_scale = getattr(config, "logit_scale", 1.0) + self.logits_processor = LogitsProcessor(self.unpadded_vocab_size, + config.vocab_size, + logit_scale) + self.sampler = Sampler() + else: + self.lm_head = PPMissingLayer() + + def forward( + self, + input_ids: torch.Tensor, + positions: torch.Tensor, + kv_caches: List[torch.Tensor], + attn_metadata: AttentionMetadata, + intermediate_tensors: Optional[IntermediateTensors] = None, + ) -> Union[torch.Tensor, IntermediateTensors]: + model_output = self.model(input_ids, positions, kv_caches, + attn_metadata, intermediate_tensors) + return model_output + + def compute_logits(self, hidden_states: torch.Tensor, + sampling_metadata: SamplingMetadata) -> torch.Tensor: + logits = self.logits_processor(self.lm_head, hidden_states, + sampling_metadata) + return logits + + def sample( + self, + logits: torch.Tensor, + sampling_metadata: SamplingMetadata, + ) -> Optional[SamplerOutput]: + next_tokens = self.sampler(logits, sampling_metadata) + return next_tokens + + def make_empty_intermediate_tensors( + self, batch_size: int, dtype: torch.dtype, + device: torch.device) -> IntermediateTensors: + return IntermediateTensors({ + "hidden_states": + torch.zeros((batch_size, self.config.hidden_size), + dtype=dtype, + device=device), + "residual": + torch.zeros((batch_size, self.config.hidden_size), + dtype=dtype, + device=device), + }) + + def load_weights(self, weights: Iterable[Tuple[str, torch.Tensor]]): + stacked_params_mapping = [ + # (param_name, shard_name, shard_id) + (".qkv_proj", ".q_proj", "q"), + (".qkv_proj", ".k_proj", "k"), + (".qkv_proj", ".v_proj", "v"), + (".gate_up_proj", ".gate_proj", 0), + (".gate_up_proj", ".up_proj", 1), + ] + params_dict = dict(self.named_parameters()) + for name, loaded_weight in weights: + if "rotary_emb.inv_freq" in name: + continue + if ("rotary_emb.cos_cached" in name + or "rotary_emb.sin_cached" in name): + # Models trained using ColossalAI may include these tensors in + # the checkpoint. Skip them. + continue + if scale_name := get_compressed_tensors_cache_scale(name): + # Loading kv cache scales for compressed-tensors quantization + param = params_dict[scale_name] + weight_loader = getattr(param, "weight_loader", + default_weight_loader) + loaded_weight = loaded_weight[0] + weight_loader(param, loaded_weight) + continue + for (param_name, weight_name, shard_id) in stacked_params_mapping: + if weight_name not in name: + continue + name = name.replace(weight_name, param_name) + # Skip loading extra bias for GPTQ models. + if name.endswith(".bias") and name not in params_dict: + continue + + if is_pp_missing_parameter(name, self): + continue + + param = params_dict[name] + weight_loader = param.weight_loader + weight_loader(param, loaded_weight, shard_id) + + break + else: + # Skip loading extra bias for GPTQ models. + if name.endswith(".bias") and name not in params_dict: + continue + # Remapping the name of FP8 kv-scale. + name = maybe_remap_kv_scale_name(name, params_dict) + if name is None: + continue + + if is_pp_missing_parameter(name, self): + continue + + param = params_dict[name] + weight_loader = getattr(param, "weight_loader", + default_weight_loader) + weight_loader(param, loaded_weight) + + # If this function is called, it should always initialize KV cache scale + # factors (or else raise an exception). Thus, handled exceptions should + # make sure to leave KV cache scale factors in a known good (dummy) state + def load_kv_cache_scales(self, quantization_param_path: str) -> None: + tp_size = get_tensor_model_parallel_world_size() + tp_rank = get_tensor_model_parallel_rank() + for layer_idx, scaling_factor in kv_cache_scales_loader( + quantization_param_path, tp_rank, tp_size, + self.config.num_hidden_layers, + self.config.__class__.model_type): + if not isinstance(self.model.layers[layer_idx], nn.Identity): + layer_self_attn = self.model.layers[layer_idx].self_attn + + if is_hip(): + # The scaling factor convention we are assuming is + # quantized_value * scaling_factor ~= true_value + # which is consistent with the practice of setting + # scaling_factor = tensor_amax / FPtype_max + scaling_factor *= 2 + if hasattr(layer_self_attn, "kv_scale"): + layer_self_attn.attn._kv_scale = scaling_factor + else: + raise RuntimeError("Self attention has no KV cache scaling " + "factor attribute!")