Text Generation
Safetensors
nemotron_h
pretrained
openllm-france
custom_code
Commit
ae16500
·
0 Parent(s):

Initial release of Luciole-8B-Base

Browse files

Co-authored-by: Jérôme Louradour <Jeronymous@users.noreply.huggingface.co>
Co-authored-by: Olivier Gouvert <oligou@users.noreply.huggingface.co>
Co-authored-by: Julie Hunter <juliehunter@users.noreply.huggingface.co>

.gitattributes ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ metadata/evaluation/en_details.png filter=lfs diff=lfs merge=lfs -text
37
+ metadata/evaluation/fr_details.png filter=lfs diff=lfs merge=lfs -text
38
+ metadata/evaluation/multilingual_details.png filter=lfs diff=lfs merge=lfs -text
39
+ metadata/evaluation/ruler_details.png filter=lfs diff=lfs merge=lfs -text
40
+ metadata/evaluation/translation_details.png filter=lfs diff=lfs merge=lfs -text
41
+ metadata/training_logs/ConvergenceCurve.png filter=lfs diff=lfs merge=lfs -text
LICENSE.md ADDED
@@ -0,0 +1,237 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Apache License 2.0
3
+ spdx-id: Apache-2.0
4
+ redirect_from: /licenses/apache/
5
+ featured: true
6
+ hidden: false
7
+
8
+ description: A permissive license whose main conditions require preservation of copyright and license notices. Contributors provide an express grant of patent rights. Licensed works, modifications, and larger works may be distributed under different terms and without source code.
9
+
10
+ how: Create a text file (typically named LICENSE or LICENSE.txt) in the root of your source code and copy the text of the license into the file.
11
+
12
+ note: The Apache Software Foundation <a href="https://apache.org/foundation/license-faq.html#Apply-My-Software">recommends</a> taking the additional step of adding a boilerplate notice to the header of each source file. You can find the notice in the appendix at the very end of the license text.
13
+
14
+ using:
15
+ Kubernetes: https://github.com/kubernetes/kubernetes/blob/master/LICENSE
16
+ PDF.js: https://github.com/mozilla/pdf.js/blob/master/LICENSE
17
+ Swift: https://github.com/apple/swift/blob/main/LICENSE.txt
18
+
19
+ permissions:
20
+ - commercial-use
21
+ - modifications
22
+ - distribution
23
+ - patent-use
24
+ - private-use
25
+
26
+ conditions:
27
+ - include-copyright
28
+ - document-changes
29
+
30
+ limitations:
31
+ - trademark-use
32
+ - liability
33
+ - warranty
34
+
35
+ ---
36
+
37
+ Apache License
38
+ Version 2.0, January 2004
39
+ http://www.apache.org/licenses/
40
+
41
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
42
+
43
+ 1. Definitions.
44
+
45
+ "License" shall mean the terms and conditions for use, reproduction,
46
+ and distribution as defined by Sections 1 through 9 of this document.
47
+
48
+ "Licensor" shall mean the copyright owner or entity authorized by
49
+ the copyright owner that is granting the License.
50
+
51
+ "Legal Entity" shall mean the union of the acting entity and all
52
+ other entities that control, are controlled by, or are under common
53
+ control with that entity. For the purposes of this definition,
54
+ "control" means (i) the power, direct or indirect, to cause the
55
+ direction or management of such entity, whether by contract or
56
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
57
+ outstanding shares, or (iii) beneficial ownership of such entity.
58
+
59
+ "You" (or "Your") shall mean an individual or Legal Entity
60
+ exercising permissions granted by this License.
61
+
62
+ "Source" form shall mean the preferred form for making modifications,
63
+ including but not limited to software source code, documentation
64
+ source, and configuration files.
65
+
66
+ "Object" form shall mean any form resulting from mechanical
67
+ transformation or translation of a Source form, including but
68
+ not limited to compiled object code, generated documentation,
69
+ and conversions to other media types.
70
+
71
+ "Work" shall mean the work of authorship, whether in Source or
72
+ Object form, made available under the License, as indicated by a
73
+ copyright notice that is included in or attached to the work
74
+ (an example is provided in the Appendix below).
75
+
76
+ "Derivative Works" shall mean any work, whether in Source or Object
77
+ form, that is based on (or derived from) the Work and for which the
78
+ editorial revisions, annotations, elaborations, or other modifications
79
+ represent, as a whole, an original work of authorship. For the purposes
80
+ of this License, Derivative Works shall not include works that remain
81
+ separable from, or merely link (or bind by name) to the interfaces of,
82
+ the Work and Derivative Works thereof.
83
+
84
+ "Contribution" shall mean any work of authorship, including
85
+ the original version of the Work and any modifications or additions
86
+ to that Work or Derivative Works thereof, that is intentionally
87
+ submitted to Licensor for inclusion in the Work by the copyright owner
88
+ or by an individual or Legal Entity authorized to submit on behalf of
89
+ the copyright owner. For the purposes of this definition, "submitted"
90
+ means any form of electronic, verbal, or written communication sent
91
+ to the Licensor or its representatives, including but not limited to
92
+ communication on electronic mailing lists, source code control systems,
93
+ and issue tracking systems that are managed by, or on behalf of, the
94
+ Licensor for the purpose of discussing and improving the Work, but
95
+ excluding communication that is conspicuously marked or otherwise
96
+ designated in writing by the copyright owner as "Not a Contribution."
97
+
98
+ "Contributor" shall mean Licensor and any individual or Legal Entity
99
+ on behalf of whom a Contribution has been received by Licensor and
100
+ subsequently incorporated within the Work.
101
+
102
+ 2. Grant of Copyright License. Subject to the terms and conditions of
103
+ this License, each Contributor hereby grants to You a perpetual,
104
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
105
+ copyright license to reproduce, prepare Derivative Works of,
106
+ publicly display, publicly perform, sublicense, and distribute the
107
+ Work and such Derivative Works in Source or Object form.
108
+
109
+ 3. Grant of Patent License. Subject to the terms and conditions of
110
+ this License, each Contributor hereby grants to You a perpetual,
111
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
112
+ (except as stated in this section) patent license to make, have made,
113
+ use, offer to sell, sell, import, and otherwise transfer the Work,
114
+ where such license applies only to those patent claims licensable
115
+ by such Contributor that are necessarily infringed by their
116
+ Contribution(s) alone or by combination of their Contribution(s)
117
+ with the Work to which such Contribution(s) was submitted. If You
118
+ institute patent litigation against any entity (including a
119
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
120
+ or a Contribution incorporated within the Work constitutes direct
121
+ or contributory patent infringement, then any patent licenses
122
+ granted to You under this License for that Work shall terminate
123
+ as of the date such litigation is filed.
124
+
125
+ 4. Redistribution. You may reproduce and distribute copies of the
126
+ Work or Derivative Works thereof in any medium, with or without
127
+ modifications, and in Source or Object form, provided that You
128
+ meet the following conditions:
129
+
130
+ (a) You must give any other recipients of the Work or
131
+ Derivative Works a copy of this License; and
132
+
133
+ (b) You must cause any modified files to carry prominent notices
134
+ stating that You changed the files; and
135
+
136
+ (c) You must retain, in the Source form of any Derivative Works
137
+ that You distribute, all copyright, patent, trademark, and
138
+ attribution notices from the Source form of the Work,
139
+ excluding those notices that do not pertain to any part of
140
+ the Derivative Works; and
141
+
142
+ (d) If the Work includes a "NOTICE" text file as part of its
143
+ distribution, then any Derivative Works that You distribute must
144
+ include a readable copy of the attribution notices contained
145
+ within such NOTICE file, excluding those notices that do not
146
+ pertain to any part of the Derivative Works, in at least one
147
+ of the following places: within a NOTICE text file distributed
148
+ as part of the Derivative Works; within the Source form or
149
+ documentation, if provided along with the Derivative Works; or,
150
+ within a display generated by the Derivative Works, if and
151
+ wherever such third-party notices normally appear. The contents
152
+ of the NOTICE file are for informational purposes only and
153
+ do not modify the License. You may add Your own attribution
154
+ notices within Derivative Works that You distribute, alongside
155
+ or as an addendum to the NOTICE text from the Work, provided
156
+ that such additional attribution notices cannot be construed
157
+ as modifying the License.
158
+
159
+ You may add Your own copyright statement to Your modifications and
160
+ may provide additional or different license terms and conditions
161
+ for use, reproduction, or distribution of Your modifications, or
162
+ for any such Derivative Works as a whole, provided Your use,
163
+ reproduction, and distribution of the Work otherwise complies with
164
+ the conditions stated in this License.
165
+
166
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
167
+ any Contribution intentionally submitted for inclusion in the Work
168
+ by You to the Licensor shall be under the terms and conditions of
169
+ this License, without any additional terms or conditions.
170
+ Notwithstanding the above, nothing herein shall supersede or modify
171
+ the terms of any separate license agreement you may have executed
172
+ with Licensor regarding such Contributions.
173
+
174
+ 6. Trademarks. This License does not grant permission to use the trade
175
+ names, trademarks, service marks, or product names of the Licensor,
176
+ except as required for reasonable and customary use in describing the
177
+ origin of the Work and reproducing the content of the NOTICE file.
178
+
179
+ 7. Disclaimer of Warranty. Unless required by applicable law or
180
+ agreed to in writing, Licensor provides the Work (and each
181
+ Contributor provides its Contributions) on an "AS IS" BASIS,
182
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
183
+ implied, including, without limitation, any warranties or conditions
184
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
185
+ PARTICULAR PURPOSE. You are solely responsible for determining the
186
+ appropriateness of using or redistributing the Work and assume any
187
+ risks associated with Your exercise of permissions under this License.
188
+
189
+ 8. Limitation of Liability. In no event and under no legal theory,
190
+ whether in tort (including negligence), contract, or otherwise,
191
+ unless required by applicable law (such as deliberate and grossly
192
+ negligent acts) or agreed to in writing, shall any Contributor be
193
+ liable to You for damages, including any direct, indirect, special,
194
+ incidental, or consequential damages of any character arising as a
195
+ result of this License or out of the use or inability to use the
196
+ Work (including but not limited to damages for loss of goodwill,
197
+ work stoppage, computer failure or malfunction, or any and all
198
+ other commercial damages or losses), even if such Contributor
199
+ has been advised of the possibility of such damages.
200
+
201
+ 9. Accepting Warranty or Additional Liability. While redistributing
202
+ the Work or Derivative Works thereof, You may choose to offer,
203
+ and charge a fee for, acceptance of support, warranty, indemnity,
204
+ or other liability obligations and/or rights consistent with this
205
+ License. However, in accepting such obligations, You may act only
206
+ on Your own behalf and on Your sole responsibility, not on behalf
207
+ of any other Contributor, and only if You agree to indemnify,
208
+ defend, and hold each Contributor harmless for any liability
209
+ incurred by, or claims asserted against, such Contributor by reason
210
+ of your accepting any such warranty or additional liability.
211
+
212
+ END OF TERMS AND CONDITIONS
213
+
214
+ APPENDIX: How to apply the Apache License to your work.
215
+
216
+ To apply the Apache License to your work, attach the following
217
+ boilerplate notice, with the fields enclosed by brackets "[]"
218
+ replaced with your own identifying information. (Don't include
219
+ the brackets!) The text should be enclosed in the appropriate
220
+ comment syntax for the file format. We also recommend that a
221
+ file or class name and description of purpose be included on the
222
+ same "printed page" as the copyright notice for easier
223
+ identification within third-party archives.
224
+
225
+ Copyright [yyyy] [name of copyright owner]
226
+
227
+ Licensed under the Apache License, Version 2.0 (the "License");
228
+ you may not use this file except in compliance with the License.
229
+ You may obtain a copy of the License at
230
+
231
+ http://www.apache.org/licenses/LICENSE-2.0
232
+
233
+ Unless required by applicable law or agreed to in writing, software
234
+ distributed under the License is distributed on an "AS IS" BASIS,
235
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
236
+ See the License for the specific language governing permissions and
237
+ limitations under the License.
README.md ADDED
@@ -0,0 +1,391 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ pipeline_tag: text-generation
4
+ language:
5
+ - fr
6
+ - en
7
+ - it
8
+ - de
9
+ - es
10
+ - pt
11
+ - nl
12
+ - ar
13
+ tags:
14
+ - pretrained
15
+ - openllm-france
16
+ datasets:
17
+ - OpenLLM-France/Luciole-Training-Dataset
18
+ training_progress:
19
+ num_steps: 1216796
20
+ num_tokens: 5103612329984
21
+ context_length: 131072
22
+ widget:
23
+ - text: |-
24
+ Quelle est la capitale de l'Espagne ? Madrid.
25
+ Quelle est la capitale de la France ?
26
+ example_title: Capital cities in French
27
+ group: 1-shot Question Answering
28
+ ---
29
+
30
+
31
+ # Model Card for Luciole-8B-Base
32
+
33
+ <!-- inspired from the following template:
34
+ https://github.com/huggingface/huggingface_hub/blob/main/src/huggingface_hub/templates/modelcard_template.md?plain=1
35
+ -->
36
+
37
+ ![luciole_logo.png](luciole_logo.png)
38
+
39
+
40
+ **Table of Contents**
41
+
42
+ - [Model Card for Luciole-8B-Base](#model-card-for-luciole-8b-base)
43
+ - [Model Description](#model-description)
44
+ - [Uses](#uses)
45
+ - [Direct use](#direct-use)
46
+ - [Downstream use](#downstream-use)
47
+ - [Out-of-Scope Use](#out-of-scope-use)
48
+ - [Bias, Risks, and Limitations](#bias-risks-and-limitations)
49
+ - [Recommendations](#recommendations)
50
+ - [Example Code in Python](#example-code-in-python)
51
+ - [Load the model](#load-the-model)
52
+ - [Sentence completion](#sentence-completion)
53
+ - [Loading Intermediate Checkpoints](#loading-intermediate-checkpoints)
54
+ - [Training Details](#training-details)
55
+ - [Training Data](#training-data)
56
+ - [Training Procedure](#training-procedure)
57
+ - [Neural Network Architecture](#neural-network-architecture)
58
+ - [Training Hyperparameters](#training-hyperparameters)
59
+ - [Training Convergence and Evaluation](#training-convergence-and-evaluation)
60
+ - [Training loss](#training-loss)
61
+ - [Evaluation](#evaluation)
62
+ - [Citation](#citation)
63
+ - [Acknowledgements](#acknowledgements)
64
+ - [Contact](#contact)
65
+
66
+ ## Model Description
67
+
68
+ Luciole-8B-Base is a pretrained 8B parameter causal language model with a hybrid Mamba-transformer architecture. It was developed by [LINAGORA](https://labs.linagora.com/) and the [OpenLLM-France](https://openllm-france.fr/) consortium as a part of the OpenLLM France project, funded by [BPI France](https://www.bpifrance.fr/) through the [France 2030](https://www.info.gouv.fr/grand-dossier/france-2030) program.
69
+ It was trained on the [GENCI](https://www.genci.fr/) supercomputer Jean Zay, managed by [IDRIS](http://www.idris.fr/docs/idris/missions).
70
+
71
+ Luciole-8B-Base was trained on around 5 trillion tokens of multilingual data, including English (41.9%), French (30.4%), German (3.8%), Spanish (3.5%), Italian (1.9%), Portuguese (1.3%), Dutch (1.0%), Arabic (0.5%), and a small subset of regional languages including regional languages of the French metropolitan area, French variants, and French creoles from around the world (0.4%).
72
+
73
+ The latter were selected from the [FineWeb 2](https://huggingface.co/datasets/HuggingFaceFW/fineweb-2) dataset and include Basque, Breton, Catalan, Corsican, Franco-Provençal, Guadeloupean Creole French, Guianese Creole French, Occitan, Picard, Réunion Creole French, Saint Lucian Creole French, Seselwa Creole French, Tahitian, and Walloon.
74
+
75
+ Training data also include parallel data from a selection of languages (1.7%), as well as several programming languages (9.2%) and English mathematical data (3.5%).
76
+
77
+ * License: [Apache 2.0](https://www.apache.org/licenses/LICENSE-2.0)
78
+ * Training repository: [Luciole-Training](https://github.com/OpenLLM-France/Luciole-Training)
79
+ * Technical report: coming soon.
80
+
81
+
82
+
83
+ ## Uses
84
+
85
+ ### Direct use
86
+ Luciole-8B-Base is a foundation language model trained solely to predict the most probable next word in a sequence. It is designed as the first brick in a more complex training pipeline that would include multitask training on diverse instructions or focused fine-tuning on select downstream tasks, as well as possible alignment for human preferences.
87
+
88
+ ### Downstream use
89
+ Due to its multilingual training, Luciole-8B-Base can be fine-tuned for downstream tasks centered on the generation of multilingual text, with a special focus on French and English.
90
+
91
+ ### Out-of-Scope Use
92
+ Luciole-8B-Base is not intended to generate text directly for end use cases. It must be fine-tuned first. Its pretraining is optimized for multilingual performance, especially in French and English, and might perform less well on other languages without additional training. While trained on code data, it is not optimized for code generation tasks.
93
+
94
+ ## Bias, Risks, and Limitations
95
+
96
+ Like other foundation models, Luciole-8B-Base is trained on large amounts of web data. Additionally, due to the scarcity of French textual non-web data published under open licenses, much of our French data comes from older works in the public domain that carry biases from other time periods. While we made efforts to reduce toxic and offensive content in the [Luciole Training Dataset](https://huggingface.co/datasets/OpenLLM-France/Luciole-Training-Dataset), Luciole-8B-Base may still generate such content. Filtering of the Luciole Training Dataset is an ongoing project to which we welcome contributions.
97
+
98
+ ### Recommendations
99
+ To limit the generation of undesirable content, it is advised to fine-tune Luciole-8B-Base through instruction and preference tuning (DPO, RLHF, etc.).
100
+
101
+ ## Example Code in Python
102
+
103
+ ### Load the model
104
+
105
+ Load the model (quantized version on GPU if possible, for efficient inference):
106
+ ```python
107
+ import transformers
108
+
109
+ model_name = "OpenLLM-France/Luciole-8B-Base"
110
+
111
+ tokenizer = transformers.AutoTokenizer.from_pretrained(model_name)
112
+ model = transformers.AutoModelForCausalLM.from_pretrained(model_name,
113
+ device_map="auto",
114
+ load_in_4bit=True # For efficient inference, if quantization is supported by the GPU card
115
+ )
116
+ ```
117
+ ### Sentence completion
118
+
119
+ Wrap the model in a text generation pipeline, and specify some generation parameters:
120
+ ```
121
+ pipeline = transformers.pipeline("text-generation", model=model, tokenizer=tokenizer)
122
+
123
+ generation_kwargs = dict(
124
+ num_return_sequences=1, # Number of variants to generate.
125
+ return_full_text= False, # Do not include the prompt in the generated text.
126
+ do_sample=True,
127
+ temperature=1.0, top_p=1, top_k=None, # Sampling parameters.
128
+ max_new_tokens=200, # Maximum length for the output text (in number of tokens).
129
+ )
130
+ ```
131
+
132
+ Try 1-shot question answering:
133
+ ```python
134
+ prompt = """\
135
+ Quelle est la capitale de l'Espagne ? Madrid\n\
136
+ Quelle est la capitale de la France ?\
137
+ """
138
+ completions = pipeline(prompt, **generation_kwargs)
139
+ for completion in completions:
140
+ print(prompt + "[…]" + completion['generated_text'])
141
+ ```
142
+ This will print something like:
143
+ ```
144
+ Quelle est la capitale de l'Espagne ? Madrid
145
+ Quelle est la capitale de la France ?[…] Paris
146
+ Quelle est la capitale du Brésil ? Brasilia
147
+ Quelle est la capitale de la Belgique ? Bruxelles
148
+ Quelle est la capitale de l'Italie ? Rome
149
+ ...
150
+ ```
151
+
152
+
153
+ ## Loading Intermediate Checkpoints
154
+
155
+ Intermediate checkpoints are released under dedicated revision tags at regular intervals throughout training:
156
+ - Every **1,000 steps** during the first **5,000 steps**
157
+ - Then every **5,000 steps** up to **30,000 steps**
158
+ - Then every **10,000 steps** beyond that
159
+ - In addition, a checkpoint is provided at the **end of each training phase**
160
+
161
+ All checkpoints are available at:
162
+ https://dl.labs.linagora.com/files/models/OpenLLM-France/Luciole-8B-Base/
163
+
164
+ They are organized into the following subfolders:
165
+ * **Phase 1 – Initial pretraining (context length: 4,096)**
166
+ From [phase1-step0001000](https://dl.labs.linagora.com/files/models/OpenLLM-France/Luciole-8B-Base/phase1-step0001000) to [phase1-step0715787](https://dl.labs.linagora.com/files/models/OpenLLM-France/Luciole-8B-Base/phase1-step0715787)
167
+ * **Phase 2 – Continued pretraining**
168
+ From [phase2-step0010000](https://dl.labs.linagora.com/files/models/OpenLLM-France/Luciole-8B-Base/phase2-step0010000) to [phase2-step0358930](https://dl.labs.linagora.com/files/models/OpenLLM-France/Luciole-8B-Base/phase2-step0358930)
169
+ * **Phase 3 – Annealing phase**
170
+ From [phase3-annealing-step0010000](https://dl.labs.linagora.com/files/models/OpenLLM-France/Luciole-8B-Base/phase3-annealing-step0010000) to [phase3-annealing-step0118238](https://dl.labs.linagora.com/files/models/OpenLLM-France/Luciole-8B-Base/phase3-annealing-step0118238)
171
+ * **Phase 4 – Context extension to 131k tokens**
172
+ [phase4-context-extension-131k-step0003000](https://dl.labs.linagora.com/files/models/OpenLLM-France/Luciole-8B-Base/phase4-context-extension-131k-step0003000) to [phase4-context-extension-131k-step0023841](https://dl.labs.linagora.com/files/models/OpenLLM-France/Luciole-8B-Base/phase4-context-extension-131k-step0023841)
173
+
174
+ The total cumulative number of training steps and training tokens for each checkpoint is specified in
175
+ the YAML header of each `README.md` file, and in
176
+ the `config.json` file (under the keys `"training_steps"` and `"training_tokens"`).
177
+
178
+ ## Training Details
179
+
180
+ ### Training Data
181
+
182
+ The training dataset used for the pretraining of Luciole-8B-Base is available
183
+ at [OpenLLM-France/Luciole-Training-Dataset](https://huggingface.co/datasets/OpenLLM-France/Luciole-Training-Dataset). Information on data preprocessing can be found on the data card or in the [Luciole-Training](https://github.com/OpenLLM-France/Luciole-Training) repository.
184
+
185
+ Pretraining consisted of three principal phases of training with a context length of 4,096 tokens. The token breakdowns for the three phases are as follows:
186
+
187
+ 1. Initial pretraining: 3.5 trillion tokens of diverse data
188
+ 2. Continued pretraining: 1 trillion tokens introducing higher quality data and increasing math and code proportions
189
+ 3. Annealing phase: 0.5 trillion tokens introducing some instruction-style and reasoning data
190
+
191
+ Pretraining was followed by one short mid-training phases to extend the context length to 131,072 tokens:
192
+
193
+ 4. Context extension: 100 billion tokens to extend context length from 4,096 to 131,072 tokens
194
+
195
+
196
+ ### Training Procedure
197
+
198
+ Luciole-8B-Base is a causal decoder-only model trained on a causal language modeling task (i.e., predict the next token).
199
+
200
+ It was pre-trained on 128 - 256 H100 80GB GPUs (32 - 64 nodes) for about 237,036 GPU hours (870 hours) on the [Jean Zay supercomputer](http://www.idris.fr/docs/category/jean-zay).
201
+
202
+ The training code is available at [https://github.com/OpenLLM-France/Luciole-Training](https://github.com/OpenLLM-France/Luciole-Training). Training used version 2.3.1 of NVIDIA's [NeMo framework](https://github.com/NVIDIA-NeMo/NeMo) (now transferred to [NeMo Automodel or NeMo Megatron-Bridge](https://github.com/NVIDIA-NeMo)).
203
+
204
+
205
+
206
+ #### Neural Network Architecture
207
+
208
+ The architecture of Luciole-8B-Base is a custom adaptation of the [NemotronH-8B](https://github.com/NVIDIA-NeMo/NeMo/blob/v2.3.1/nemo/collections/llm/recipes/nemotronh_8b.py) recipe.
209
+ It has exactly 8.08 billion free parameters,
210
+ with the following hyperparameters:
211
+ | **Hyperparameter** | **Value** |
212
+ |---------------------------|---------|
213
+ | Vocabulary size (\# tokens)| 128,000 |
214
+ | \# blocks | 52 |
215
+ | \# attention heads | 32 |
216
+ | \# key-value heads | 8 |
217
+ | Hidden size | 4096 |
218
+ | Intermediate size | 21504 |
219
+ | SSM State size | 128 |
220
+ | Mamba \# heads | 128 |
221
+ | MLP Activation | `relu2`|
222
+ | Mamba Activation | `silu`|
223
+
224
+
225
+ #### Training Hyperparameters
226
+
227
+ The details of the intitial pretraining phase are listed below. For each subsequent phase, only the values that differ from the intitial pretraining phase are listed.
228
+
229
+ **1. Initial pretraining**
230
+
231
+ | **Hyperparameter** | **Value** |
232
+ |------------------------|------------|
233
+ | Total \# samples| 732,965,888 (3T tokens) |
234
+ | Total \# steps | 715,787 |
235
+ | Context length | 4,096 |
236
+ | Batch size | 1,024 |
237
+ | Learning rate schedule | Warmup (2M samples) + Constant |
238
+ | Learning rate | 3e-4 |
239
+ | Weight decay | 0.1 |
240
+ | Dropout | _ |
241
+ | Gradient clipping | 1 |
242
+ | Initializer range | 0.009 |
243
+ | Optimizer | `AdamW` (β₁=0.9, β₂=0.95, ε=1e-5) |
244
+ | Precision | `bfloat16` |
245
+ | Tensor Parallelism (with 256 GPUs) | 2 |
246
+ | Pipeline Parallelism (with 256 GPUs) | 1 |
247
+ | Data Parallelism (with 256 GPUs) | 128 |
248
+
249
+ **2. Continued Pretraining**
250
+
251
+ | **Hyperparameter** | **Value** |
252
+ |------------------------|------------|
253
+ | Total \# samples| 367,545,344 (1.5T tokens) |
254
+ | Total \# steps | 358,931 |
255
+ | Learning rate schedule | Cosine annealing |
256
+ | Maximum Learning rate | 3e-4 |
257
+ | Final Learning rate | 6.87e-5 |
258
+
259
+
260
+ **3. Annealing**
261
+
262
+ | **Hyperparameter** | **Value** |
263
+ |------------------------|------------|
264
+ | Total \# samples | 121,075,712 (0.5T tokens) |
265
+ | Total \# steps | 118,238 |
266
+ | Learning rate schedule | Linear annealing |
267
+ | Maximum Learning rate | 6.87e-5 |
268
+ | Final Learning rate | 0 |
269
+
270
+ **4. Context extension to 131K**
271
+
272
+ | **Hyperparameter** | **Value** |
273
+ |------------------------|------------|
274
+ | Total \# samples| 762,912 (100B tokens) |
275
+ | Total \# steps | 23,841|
276
+ | Context length | 131,072 |
277
+ | Batch size | 32 |
278
+ | Context Parallelism (with 128 GPUs) | 8 |
279
+ | Tensor Parallelism (with 128 GPUs) | 2 |
280
+ | Data Parallelism (with 128 GPUs) | 8 |
281
+
282
+
283
+ ### Training Convergence and Evaluation
284
+
285
+ #### Training loss
286
+
287
+ Information on training loss curves and training stability is available in the training logs, which are released at<br>
288
+ [metadata/training_logs](https://huggingface.co/OpenLLM-France/Luciole-8B-Base/tree/main/metadata/training_logs)<br>
289
+ ├── [ConvergenceCurve_phase1.csv](metadata/training_logs/ConvergenceCurve_phase1.csv) -- training logs for phase 1 (initial pretraining) <br>
290
+ ├── [ConvergenceCurve_phase2.csv](metadata/training_logs/ConvergenceCurve_phase2.csv) -- training logs for phase 2 (continued pretraining) <br>
291
+ ├── [ConvergenceCurve_phase3-annealing.csv](metadata/training_logs/ConvergenceCurve_phase3-annealing.csv) -- training logs for phase 3 (annealing) <br>
292
+ └── [ConvergenceCurve_phase4-context-extension-131k.csv](metadata/training_logs/ConvergenceCurve_phase4-context-extension-131k.csv) -- training logs for phase 4 (context extension to 131k tokens) <br>
293
+
294
+ The following figure shows the training loss curve for the different training phases:
295
+ ![metadata/training_logs/ConvergenceCurve.png](metadata/training_logs/ConvergenceCurve.png)
296
+
297
+ #### Evaluation
298
+
299
+ During the training of Luciole-8B-Base, we conducted multiple evaluations to assess performance on standard benchmarks.
300
+ The primary evaluation languages were French and English, with additional evaluations in German, Spanish, Italian, Portuguese, Dutch, and Arabic.
301
+ These evaluations were performed on intermediate checkpoints throughout training and on the final checkpoint.
302
+ We also evaluated the final checkpoint using the RULER benchmark to measure long-context performance.
303
+
304
+ For comparison, we evaluated the model against the following models, which have between 8B and 2B parameters and were trained on multilingual data, including French:
305
+ - [Gaperon-1125-8B](https://huggingface.co/almanach/Gaperon-1125-8B)
306
+ - [EuroLLM-9B](https://huggingface.co/utter-project/EuroLLM-9B)
307
+ - [salamandra-7b](https://huggingface.co/BSC-LT/salamandra-7b)
308
+ - [Llama-3.1-8B](https://huggingface.co/meta-llama/Llama-3.1-8B)
309
+ - [Apertus-8B-2509](https://huggingface.co/swiss-ai/Apertus-8B-2509)
310
+ - [Qwen3-8B-Base](https://huggingface.co/Qwen/Qwen3-8B-Base)
311
+ - [Ministral-3-8B-Base-2512](https://huggingface.co/mistralai/Ministral-3-8B-Base-2512)
312
+
313
+ The main results are summarized in the figures below.
314
+ **Click on a figure to view the complete evaluation results with detailed metrics.**
315
+ The figures illustrate the evolution of evaluation performance across training checkpoints.
316
+ The x-axis corresponds to the cumulative number of training tokens, while the y-axis reports the average performance across tasks within each category.
317
+ The RULER figure differs in that it reports average performance across different context lengths.
318
+
319
+ <table>
320
+ <tr>
321
+ <td><a href="https://huggingface.co/OpenLLM-France/Luciole-8B-Base/blob/main/metadata/evaluation/fr_details.png"><img src="metadata/evaluation/fr_average.png" alt="French average results"></a></td>
322
+ <td><img src="metadata/evaluation/legend.png" alt="Legend"></td>
323
+ </tr>
324
+ <tr>
325
+ <td><a href="https://huggingface.co/OpenLLM-France/Luciole-8B-Base/blob/main/metadata/evaluation/en_details.png"><img src="metadata/evaluation/en_average.png" alt="English average results"></a></td>
326
+ <td><a href="https://huggingface.co/OpenLLM-France/Luciole-8B-Base/blob/main/metadata/evaluation/multilingual_details.png"><img src="metadata/evaluation/multilingual_average.png" alt="Multilingual average results"></a></td>
327
+ </tr>
328
+ <tr>
329
+ <td><a href="https://huggingface.co/OpenLLM-France/Luciole-8B-Base/blob/main/metadata/evaluation/translation_details.png"><img src="metadata/evaluation/translation_average.png" alt="Translation average results"></a></td>
330
+ <td><a href="https://huggingface.co/OpenLLM-France/Luciole-8B-Base/blob/main/metadata/evaluation/ruler_details.png"><img src="metadata/evaluation/ruler_average.png" alt="RULER average results"></a></td>
331
+ </tr>
332
+ </table>
333
+
334
+ All figures can be found in the [metadata/evaluation](https://huggingface.co/OpenLLM-France/Luciole-8B-Base/tree/main/metadata/evaluation) folder.
335
+
336
+ ## Citation
337
+
338
+ ✍ Paper coming soon!
339
+
340
+
341
+ ## Acknowledgements
342
+
343
+ We gratefully acknowledge BPI France for funding the OpenLLM France project under the [call](https://www.bpifrance.fr/nos-appels-a-projets-concours/appel-a-projets-communs-numeriques-pour-lintelligence-artificielle-generative) "Communs numériques pour l’intelligence artificielle générative" ("Digital commons for generative artificial intelligence") as a part of the [France 2030](https://www.info.gouv.fr/grand-dossier/france-2030) program.
344
+
345
+ Training of Luciole-8B-Base was made possible by computing AI and storage resources by GENCI at IDRIS thanks to the grant 2025-AS011016445 on the supercomputer Jean Zay’s H100 partition. We gratefully acknowledge support from GENCI and IDRIS and from Stephane Requena (GENCI) and Pierre-François Lavallée (IDRIS) in particular.
346
+
347
+ Luciole-8B-Base was created by members of [LINAGORA](https://labs.linagora.com/) for the OpenLLM-France project, including in alphabetical order:
348
+
349
+ Audran Bert
350
+ Akshay Chaturvedi
351
+ Olivier Gouvert
352
+ Julie Hunter
353
+ Jean-Pierre Lorré
354
+ Jérôme Louradour
355
+ Charlotte Noel
356
+ Kate Thompson
357
+
358
+ We thank the support team from IDRIS for technical guidance throughout the project, especially:
359
+
360
+
361
+ Martin Comminges (IDRIS)
362
+ Rémi Lacroix (IDRIS)
363
+ Myriam Peyrounette (IDRIS)
364
+
365
+ as well as the support team from NVIDIA, especially:
366
+
367
+ Meriem Bendris (NVIDIA)
368
+ Hayk Shoukourian (NVIDIA)
369
+ Oleg Sudakov (NVIDIA)
370
+
371
+ We are also greatful to the partners of the [OpenLLM-France](https://www.openllm-france.fr/) consortium for their valuable input, with particular thanks to (in alphabetical order):
372
+
373
+ Clément Bénesse (Opsci)
374
+ Bertrand Cabot (IDRIS)
375
+ Christophe Cerisara (LORIA)
376
+ Liam Duignan (CEA)
377
+ Olivier Ferret (CEA)
378
+ Emile Hazard (OpSci)
379
+ Léo Hunout (IDRIS)
380
+ Gabriel Lauzzana (LORIA)
381
+ Michel-Marie Maudet (LINAGORA)
382
+
383
+
384
+ We would also like to thank members of the [Gaperon](https://huggingface.co/collections/almanach/gaperon), [Salamandra](https://huggingface.co/collections/BSC-LT/salamandra) and [Apertus](https://huggingface.co/collections/swiss-ai/apertus-llm) projects for sharing their insights with us. We also acknowledge the numerous open source actors whose resources have guided us throughout the training process, with particular thanks to [Nvidia](https://www.nvidia.com/en-eu/), [Hugging Face](https://huggingface.co/) and [Allen AI](https://allenai.org/).
385
+
386
+
387
+ Finally, we thank the entire OpenLLM-France community, whose members have helped in diverse ways.
388
+
389
+ ## Contact
390
+
391
+ contact@openllm-france.fr
config.json ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "NemotronHForCausalLM"
4
+ ],
5
+ "attention_bias": false,
6
+ "attention_dropout": 0.0,
7
+ "attention_head_dim": 128,
8
+ "bos_token_id": 0,
9
+ "chunk_size": 256,
10
+ "conv_kernel": 4,
11
+ "eos_token_id": 1,
12
+ "expand": 2,
13
+ "hidden_dropout": 0.0,
14
+ "hidden_size": 4096,
15
+ "hybrid_override_pattern": "M-M-M-M*-M-M-M-M-M*-M-M-M-M-M*-M-M-M-M-M*-M-M-M-M-M-",
16
+ "initializer_range": 0.02,
17
+ "intermediate_size": 21504,
18
+ "layer_norm_epsilon": 1e-05,
19
+ "mamba_head_dim": 64,
20
+ "mamba_hidden_act": "silu",
21
+ "mamba_num_heads": 128,
22
+ "mamba_proj_bias": false,
23
+ "max_position_embeddings": 131072,
24
+ "mlp_bias": false,
25
+ "mlp_hidden_act": "relu2",
26
+ "model_type": "nemotron_h",
27
+ "n_groups": 8,
28
+ "num_attention_heads": 32,
29
+ "num_hidden_layers": 52,
30
+ "num_key_value_heads": 8,
31
+ "num_logits_to_keep": 1,
32
+ "pad_token_id": 0,
33
+ "rescale_prenorm_residual": true,
34
+ "residual_in_fp32": false,
35
+ "sliding_window": null,
36
+ "ssm_state_size": 128,
37
+ "tie_word_embeddings": false,
38
+ "time_step_floor": 0.0001,
39
+ "time_step_max": 0.1,
40
+ "time_step_min": 0.001,
41
+ "torch_dtype": "bfloat16",
42
+ "transformers_version": "4.51.3",
43
+ "use_bias": false,
44
+ "use_cache": true,
45
+ "use_conv_bias": true,
46
+ "use_mamba_kernels": true,
47
+ "vocab_size": 128000,
48
+ "auto_map": {
49
+ "AutoConfig": "configuration_nemotron_h.NemotronHConfig",
50
+ "AutoModelForCausalLM": "modeling_nemotron_h.NemotronHForCausalLM"
51
+ },
52
+ "rms_norm_eps": 1e-05,
53
+ "training_steps": 1216796,
54
+ "training_tokens": 5103612329984
55
+ }
configuration_nemotron_h.py ADDED
@@ -0,0 +1,251 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ # Copyright 2024 AI21 Labs Ltd. and the HuggingFace Inc. team. All rights reserved.
3
+ # Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ """NemotronH model configuration"""
17
+
18
+ import re
19
+
20
+ from transformers.configuration_utils import PretrainedConfig
21
+ from transformers.utils import logging
22
+
23
+
24
+ logger = logging.get_logger(__name__)
25
+
26
+
27
+ class NemotronHConfig(PretrainedConfig):
28
+ r"""
29
+ This is the configuration class to store the configuration of a [`NemotronHModel`]. It is used to instantiate a
30
+ NemotronH model according to the specified arguments, defining the model architecture. Instantiating a configuration
31
+ with the defaults will yield a similar configuration to that of the NemotronH-v0.1 model.
32
+
33
+ [todo](todo)
34
+
35
+ Configuration objects inherit from [`PretrainedConfig`] and can be used to control the model outputs. Read the
36
+ documentation from [`PretrainedConfig`] for more information.
37
+
38
+
39
+ Args:
40
+ vocab_size (`int`, *optional*, defaults to 131072):
41
+ Vocabulary size of the NemotronH model. Defines the number of different tokens that can be represented by the
42
+ `inputs_ids` passed when calling [`NemotronHModel`]
43
+ tie_word_embeddings (`bool`, *optional*, defaults to `False`):
44
+ Whether the model's input and output word embeddings should be tied. Note that this is only relevant if the
45
+ model has a output word embedding layer.
46
+ hidden_size (`int`, *optional*, defaults to 4096):
47
+ Dimension of the hidden representations.
48
+ intermediate_size (`int`, *optional*, defaults to 21504):
49
+ Dimension of the MLP representations.
50
+ num_hidden_layers (`int`, *optional*, defaults to 52):
51
+ Number of hidden layers in the Transformer encoder.
52
+ hybrid_override_pattern (`str`, *optional*, defaults to `"M-M-M-M*-M-M-M-M-M*-M-M-M-M-M*-M-M-M-M-M*-M-M-M-M-M-"`):
53
+ The pattern of the hybrid model. The pattern is a string of characters where each character represents M: Mamba2, *: Attention, -: MLP
54
+ num_attention_heads (`int`, *optional*, defaults to 32):
55
+ Number of attention heads for each attention layer in the Transformer encoder.
56
+ attention_head_dim (`int`, *optional*, defaults to 128):
57
+ Dimension of each attention head.
58
+ num_key_value_heads (`int`, *optional*, defaults to 8):
59
+ This is the number of key_value heads that should be used to implement Grouped Query Attention. If
60
+ `num_key_value_heads=num_attention_heads`, the model will use Multi Head Attention (MHA), if
61
+ `num_key_value_heads=1` the model will use Multi Query Attention (MQA) otherwise GQA is used.
62
+ mlp_hidden_act (`str`, *optional*, defaults to "relu2"):
63
+ The non-linear activation function in the MLP layers.
64
+ attention_bias (`bool`, *optional*, defaults to `False`):
65
+ Whether to use bias in attention layers.
66
+ mlp_bias (`bool`, *optional*, defaults to `False`):
67
+ Whether to use bias in MLP layers.
68
+ use_bias (`bool`, *optional*, defaults to `False`):
69
+ Whether to use bias in the model.
70
+ initializer_range (`float`, *optional*, defaults to 0.02):
71
+ The standard deviation of the truncated_normal_initializer for initializing all weight matrices.
72
+ layer_norm_epsilon (`float`, *optional*, defaults to 1e-5):
73
+ The epsilon used by the layer normalization layers.
74
+ residual_in_fp32 (`bool`, *optional*, defaults to `False`):
75
+ Whether or not residuals should be in `float32`. If set to `False` residuals will keep the same `dtype` as the rest of the model.
76
+ use_cache (`bool`, *optional*, defaults to `True`):
77
+ Whether or not the model should return the last key/values attentions (not used by all models). Only
78
+ relevant if `config.is_decoder=True`.
79
+ num_logits_to_keep (`int` or `None`, *optional*, defaults to 1):
80
+ Number of prompt logits to calculate during generation. If `None`, all logits will be calculated. If an
81
+ integer value, only last `num_logits_to_keep` logits will be calculated.
82
+ pad_token_id (`int`, *optional*, defaults to 0):
83
+ The id of the padding token.
84
+ bos_token_id (`int`, *optional*, defaults to 1):
85
+ The id of the "beginning-of-sequence" token.
86
+ eos_token_id (`int`, *optional*, defaults to 2):
87
+ The id of the "end-of-sequence" token.
88
+ sliding_window (`int`, *optional*, defaults to None):
89
+ Sliding window attention window size.
90
+ max_position_embeddings (`int`, *optional*, defaults to 4096):
91
+ The maximum sequence length that this model might ever be used with.
92
+ attention_dropout (`float`, *optional*, defaults to 0.0):
93
+ The dropout ratio for the attention probabilities.
94
+ hidden_dropout (`float`, *optional*, defaults to 0.0):
95
+ The dropout ratio for the hidden states.
96
+ use_mamba_kernels (`bool`, *optional*, defaults to `True`):
97
+ Flag indicating whether or not to use the fast mamba kernels. These are available only if `mamba-ssm` and
98
+ `causal-conv1d` are installed, and the mamba modules are running on a CUDA device.
99
+ ssm_state_size (`int`, *optional*, defaults to 128):
100
+ The dimension of the mamba state space latents.
101
+ mamba_num_heads (`int`, *optional*, defaults to 128):
102
+ Number of heads in Mamba layers.
103
+ mamba_n_groups (`int`, *optional*, defaults to 8):
104
+ Number of groups in Mamba layers.
105
+ mamba_head_dim (`int`, *optional*, defaults to 64):
106
+ Dimension of each Mamba head.
107
+ mamba_d_conv (`int`, *optional*, defaults to 4):
108
+ The size of the mamba convolution kernel.
109
+ mamba_expand (`int`, *optional*, defaults to 2):
110
+ Expanding factor used to determine the mamba intermediate size.
111
+ mamba_hidden_act (`str`, *optional*, defaults to "silu"):
112
+ The non-linear activation function in the Mamba layers.
113
+ mamba_dt_min (`float`, *optional*, defaults to 0.001):
114
+ Minimum value for the time step in Mamba.
115
+ mamba_dt_max (`float`, *optional*, defaults to 0.1):
116
+ Maximum value for the time step in Mamba.
117
+ mamba_dt_limit (`tuple`, *optional*, defaults to (0.0, float("inf"))):
118
+ Limits for the time step in Mamba.
119
+ mamba_dt_init_floor (`float`, *optional*, defaults to 1e-4):
120
+ Floor value for time step initialization in Mamba.
121
+ mamba_conv_bias (`bool`, *optional*, defaults to `True`):
122
+ Whether to use bias in the convolution layer of the mamba mixer block.
123
+ mamba_proj_bias (`bool`, *optional*, defaults to `False`):
124
+ Whether to use bias in the input and output projections of the mamba mixer block.
125
+ mamba_chunk_size (`int`, *optional*, defaults to 256):
126
+ Size of chunks for Mamba processing.
127
+ rescale_prenorm_residual (`bool`, *optional*, defaults to `True`):
128
+ Whether to rescale the pre-normalization residual connections.
129
+ """
130
+
131
+ model_type = "nemotron_h"
132
+ keys_to_ignore_at_inference = ["past_key_values"]
133
+
134
+ def __init__(
135
+ self,
136
+ vocab_size=131072,
137
+ tie_word_embeddings=False,
138
+ hidden_size=4096,
139
+ intermediate_size=21504,
140
+ num_hidden_layers=52,
141
+ hybrid_override_pattern="M-M-M-M*-M-M-M-M-M*-M-M-M-M-M*-M-M-M-M-M*-M-M-M-M-M-",
142
+ num_attention_heads=32,
143
+ attention_head_dim=128,
144
+ num_key_value_heads=8, # nemo: num_query_groups
145
+ mlp_hidden_act="relu2",
146
+ attention_bias=False,
147
+ mlp_bias=False,
148
+ use_bias=False,
149
+ initializer_range=0.02, # nemo: init_method_std
150
+ layer_norm_epsilon=1e-5, # nemo: layernorm_epsilon
151
+ residual_in_fp32=False, # Megatron Core default value
152
+ use_cache=True,
153
+ num_logits_to_keep=1,
154
+ pad_token_id=0,
155
+ bos_token_id=1,
156
+ eos_token_id=2,
157
+ sliding_window=None,
158
+ max_position_embeddings=4096,
159
+ attention_dropout=0.0,
160
+ hidden_dropout=0.0, # * ADDED
161
+ use_mamba_kernels=True,
162
+ ssm_state_size=128, # mamba_state_size
163
+ mamba_num_heads=128,
164
+ mamba_n_groups=8, # nemo: mamba_ssm_ngroups = num_heads
165
+ mamba_head_dim=64,
166
+ mamba_d_conv=4,
167
+ mamba_expand=2,
168
+ mamba_hidden_act="silu",
169
+ mamba_dt_min=0.001,
170
+ mamba_dt_max=0.1,
171
+ mamba_dt_limit=(0.0, float("inf")),
172
+ mamba_dt_init_floor=1e-4,
173
+ mamba_conv_bias=True,
174
+ mamba_proj_bias=False,
175
+ mamba_chunk_size=256,
176
+ rescale_prenorm_residual=True,
177
+ **kwargs,
178
+ ):
179
+ self.vocab_size = vocab_size
180
+ self.tie_word_embeddings = tie_word_embeddings
181
+ self.hidden_size = hidden_size
182
+ self.intermediate_size = intermediate_size
183
+ self.num_hidden_layers = num_hidden_layers
184
+ self.hybrid_override_pattern = hybrid_override_pattern
185
+ self.num_attention_heads = num_attention_heads
186
+ self.attention_head_dim = attention_head_dim
187
+ self.sliding_window = sliding_window
188
+ self.max_position_embeddings = max_position_embeddings
189
+ self.attention_dropout = attention_dropout
190
+ self.hidden_dropout = hidden_dropout
191
+
192
+ # Validate hybrid_override_pattern
193
+ # M: Mamba2, *: Attention, -: MLP
194
+ assert (
195
+ len(self.hybrid_override_pattern) == self.num_hidden_layers
196
+ ), "hybrid_override_pattern must have the same length as num_hidden_layers"
197
+ assert re.match(
198
+ r"^[*-M]+$", self.hybrid_override_pattern
199
+ ), "hybrid_override_pattern must only contain characters 'M', '*', or '-'"
200
+
201
+ # for backward compatibility
202
+ if num_key_value_heads is None:
203
+ num_key_value_heads = num_attention_heads
204
+
205
+ self.num_key_value_heads = num_key_value_heads
206
+ self.mlp_hidden_act = mlp_hidden_act
207
+ self.attention_bias = attention_bias
208
+ self.mlp_bias = mlp_bias
209
+ self.use_bias = use_bias
210
+ self.initializer_range = initializer_range
211
+ self.layer_norm_epsilon = layer_norm_epsilon
212
+ self.residual_in_fp32 = residual_in_fp32
213
+
214
+ self.use_cache = use_cache
215
+ self.num_logits_to_keep = num_logits_to_keep
216
+
217
+ self.use_mamba_kernels = use_mamba_kernels
218
+ self.n_groups = mamba_n_groups
219
+ self.mamba_head_dim = mamba_head_dim
220
+ self.ssm_state_size = ssm_state_size
221
+ self.mamba_num_heads = mamba_num_heads
222
+ self.conv_kernel = mamba_d_conv
223
+ self.expand = mamba_expand
224
+ self.mamba_hidden_act = mamba_hidden_act
225
+ self.time_step_min = mamba_dt_min
226
+ self.time_step_max = mamba_dt_max
227
+ self.time_step_limit = mamba_dt_limit
228
+ self.time_step_floor = mamba_dt_init_floor
229
+ self.use_conv_bias = mamba_conv_bias
230
+ self.mamba_proj_bias = mamba_proj_bias
231
+ self.chunk_size = mamba_chunk_size
232
+ self.rescale_prenorm_residual = rescale_prenorm_residual
233
+
234
+ super().__init__(
235
+ pad_token_id=pad_token_id,
236
+ bos_token_id=bos_token_id,
237
+ eos_token_id=eos_token_id,
238
+ tie_word_embeddings=tie_word_embeddings,
239
+ **kwargs,
240
+ )
241
+
242
+ @property
243
+ def layers_block_type(self):
244
+ return [
245
+ "mamba"
246
+ if self.hybrid_override_pattern[i] == "M"
247
+ else "attention"
248
+ if self.hybrid_override_pattern[i] == "*"
249
+ else "mlp"
250
+ for i in range(self.num_hidden_layers)
251
+ ]
generation_config.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_from_model_config": true,
3
+ "bos_token_id": 0,
4
+ "eos_token_id": 1,
5
+ "do_sample": true,
6
+ "temperature": 0.7,
7
+ "transformers_version": "4.51.3"
8
+ }
luciole_logo.png ADDED
metadata/evaluation/en_average.png ADDED
metadata/evaluation/en_details.png ADDED

Git LFS Details

  • SHA256: 7f08a0550fad2e03839a3271c40c9b311facd514d046b4bd6075eff6e64fc69d
  • Pointer size: 131 Bytes
  • Size of remote file: 444 kB
metadata/evaluation/fr_average.png ADDED
metadata/evaluation/fr_details.png ADDED

Git LFS Details

  • SHA256: 337d6490a2eed59b062f76b246a1655d60b4169ee2ae5548b9ab6d4f524d6704
  • Pointer size: 131 Bytes
  • Size of remote file: 395 kB
metadata/evaluation/legend.png ADDED
metadata/evaluation/multilingual_average.png ADDED
metadata/evaluation/multilingual_details.png ADDED

Git LFS Details

  • SHA256: 8d73ee1b674485ac70b16f15c9f71c1c3a87d8b35e10ed11b8fea1ff5b980d7f
  • Pointer size: 131 Bytes
  • Size of remote file: 408 kB
metadata/evaluation/ruler_average.png ADDED
metadata/evaluation/ruler_details.png ADDED

Git LFS Details

  • SHA256: 4d27542d5bf25ac907af6960c6abc478c10f3b221e0878e59055a1faf8b993a3
  • Pointer size: 131 Bytes
  • Size of remote file: 379 kB
metadata/evaluation/translation_average.png ADDED
metadata/evaluation/translation_details.png ADDED

Git LFS Details

  • SHA256: 09bc25cf616516cbe6e537d8db02ef41bd2f4e57d162640e2936f0dbc7a83583
  • Pointer size: 131 Bytes
  • Size of remote file: 289 kB
metadata/training_logs/ConvergenceCurve.png ADDED

Git LFS Details

  • SHA256: 25b228182d4614559b3d5d8e32400ad6e05c114415c4e5fcc1ff25c5f39890ea
  • Pointer size: 131 Bytes
  • Size of remote file: 179 kB
metadata/training_logs/ConvergenceCurve_phase1.csv ADDED
@@ -0,0 +1,370 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ training_steps,training_tokens,training_loss,walltime,gputime,learning_rate
2
+ 1290,5410652160,5.970873527526855,1916.6399681568146,490659.83184814453,0.00019340329163242131
3
+ 3265,13694402560,3.2604511642456053,4848.888065814972,1241315.3448486328,0.0003000000142492354
4
+ 4575,19188940800,2.888548288345337,6652.545394897461,1703051.62109375,0.0003000000142492354
5
+ 7055,29590814720,2.7221426296234132,10465.404177904129,2679143.469543457,0.0003000000142492354
6
+ 8895,37308334080,2.616291103363037,13140.052797794342,3363853.5162353516,0.0003000000142492354
7
+ 11670,48947527680,2.536383981704712,17838.381856679916,4566625.755310059,0.0003000000142492354
8
+ 13505,56644075520,2.4767827796936035,20365.318793058395,5213521.611022949,0.0003000000142492354
9
+ 15805,66290974720,2.435423879623413,24113.398501873016,6173030.016479492,0.0003000000142492354
10
+ 17700,74239180800,2.3964507389068603,26849.107813835144,6873371.600341797,0.0003000000142492354
11
+ 19050,79901491200,2.3772277641296387,28767.1561896801,7364391.9845581055,0.0003000000142492354
12
+ 20940,87828725760,2.3991868019104006,31490.177367925644,8061485.406188965,0.0003000000142492354
13
+ 22690,95168757760,2.34321439743042,34120.41601896286,8734826.500854492,0.0003000000142492354
14
+ 24610,103221821440,2.317070655822754,36950.211074352264,9459254.03503418,0.0003000000142492354
15
+ 26810,112449290240,2.3007624912261964,39958.97602677345,10229497.862854004,0.0003000000142492354
16
+ 28705,120397496320,2.2849823093414305,42676.601992845535,10925210.110168457,0.0003000000142492354
17
+ 30270,126961582080,2.2731912517547608,45248.07564377785,11583507.364807129,0.0003000000142492354
18
+ 31601,132544200704,2.2603963216145835,47325.226069927216,12115257.873901367,0.0003000000142492354
19
+ 33941,142358872064,2.2521857452392577,50523.22919034958,12933946.672729492,0.0003000000142492354
20
+ 36466,152949489664,2.243403959274292,54359.25885820389,13915970.267700195,0.0003000000142492354
21
+ 38421,161149353984,2.2240604305267335,57226.93031692505,14650094.161132812,0.0003000000142492354
22
+ 40661,170544594944,2.2141646480560304,60267.03142309189,15428360.044311523,0.0003000000142492354
23
+ 42436,177989484544,2.2029472064971922,62833.42337155342,16085356.383117676,0.0003000000142492354
24
+ 44391,186189348864,2.1936937808990478,65558.18872356415,16782896.313232422,0.0003000000142492354
25
+ 47231,198101172224,2.1810549545288085,69742.60226631165,17854106.18017578,0.0003000000142492354
26
+ 49186,206301036544,2.1736184978485107,72398.7076356411,18534069.15472412,0.0003000000142492354
27
+ 51271,215046160384,2.253606328964233,75214.97789525986,19255034.341186523,0.0003000000142492354
28
+ 53241,223308939264,2.1548781967163086,78210.45499587059,20021876.47894287,0.0003000000142492354
29
+ 56012,234931355648,2.144113004207611,83794.61253786087,21451420.809692383,0.0003000000142492354
30
+ 57617,241663213568,2.142407789230347,86206.46052145958,22068853.893493652,0.0003000000142492354
31
+ 59247,248499929088,2.1375789260864257,88556.97177791595,22670584.775146484,0.0003000000142492354
32
+ 61052,256070647808,2.135520267486572,91073.18482899666,23314735.316223145,0.0003000000142492354
33
+ 63172,264962572288,2.135193681716919,94287.14429044724,24137508.938354492,0.0003000000142492354
34
+ 65447,274504613888,2.1228764247894287,97476.99922704697,24954111.802124023,0.0003000000142492354
35
+ 67567,283396538368,2.119365301132202,100516.82721877098,25732307.76800537,0.0003000000142492354
36
+ 69477,291407659008,2.123221168518066,103194.17188191414,26417708.00177002,0.0003000000142492354
37
+ 71137,298370203648,2.1131165409088135,105529.8620595932,27015644.68725586,0.0003000000142492354
38
+ 73537,308436533248,2.108151330947876,109247.23060750961,27967291.03552246,0.0003000000142492354
39
+ 75797,317915660288,2.104380235671997,112709.61656951904,28853661.841796875,0.0003000000142492354
40
+ 77482,324983062528,2.0942549324035644,114965.09275817871,29431063.74609375,0.0003000000142492354
41
+ 79682,334210531328,2.095156202316284,118112.65136384964,30236838.749145508,0.0003000000142492354
42
+ 81092,340124499968,2.0888681697845457,120136.9697060585,30755064.244750977,0.0003000000142492354
43
+ 83072,348429221888,2.089090986251831,123003.04564857483,31488779.686035156,0.0003000000142492354
44
+ 85122,357027545088,2.0807684326171874,126046.48082518578,32267899.09124756,0.0003000000142492354
45
+ 87342,366338899968,2.077386999130249,129345.90752029419,33112552.325195312,0.0003000000142492354
46
+ 89132,373846704128,2.076601963043213,131821.41572141647,33746282.42468262,0.0003000000142492354
47
+ 91507,383808176128,2.0750280094146727,135420.06685876846,34667537.11584473,0.0003000000142492354
48
+ 94137,394839195648,2.0730009651184083,139305.00298047066,35662080.76300049,0.0003000000142492354
49
+ 95297,399704588288,2.0671301078796387,140983.04415607452,36091659.30395508,0.0003000000142492354
50
+ 96782,405933129728,2.0642451190948488,143185.1160826683,36655389.717163086,0.0003000000142492354
51
+ 98422,412811788288,2.063115482330322,145511.34327673912,37250903.878845215,0.0003000000142492354
52
+ 100512,421577883648,2.0628562641143797,148511.48833179474,38018941.01293945,0.0003000000142492354
53
+ 102607,430364950528,2.0578442001342774,151656.45213866234,38824051.74749756,0.0003000000142492354
54
+ 104452,438103441408,2.0522845554351807,154306.36120462418,39502428.46838379,0.0003000000142492354
55
+ 106042,444772384768,2.063025493621826,156530.71333670616,40071862.61419678,0.0003000000142492354
56
+ 107807,452175331328,2.051406993865967,159062.34849119186,40719961.21374512,0.0003000000142492354
57
+ 109292,458403872768,2.050866708755493,161215.54089927673,41271178.470214844,0.0003000000142492354
58
+ 110058,461616709632,2.0372196435928345,162695.5256602764,41650054.56903076,0.0003000000142492354
59
+ 110858,464972152832,2.0528381304307417,164292.882314682,42058977.872558594,0.0003000000142492354
60
+ 112668,472563843072,2.048712902069092,168021.21762132645,43013431.71105957,0.0003000000142492354
61
+ 114208,479023071232,2.0424085903167724,171323.53970980644,43858826.16571045,0.0003000000142492354
62
+ 116483,488565112832,2.0410716342926025,176055.6183180809,45070238.28942871,0.0003000000142492354
63
+ 118228,495884173312,2.041899814605713,179628.25620746613,45984833.58911133,0.0003000000142492354
64
+ 120588,505782730752,2.0400297927856443,184538.86824464798,47241950.27062988,0.0003000000142492354
65
+ 123358,517400952832,2.0406958198547365,190125.91711258888,48672234.780822754,0.0003000000142492354
66
+ 125728,527341453312,2.036259994506836,195263.58475661278,49987477.69769287,0.0003000000142492354
67
+ 127663,535457431552,2.031679029464722,199415.867323637,51050462.034851074,0.0003000000142492354
68
+ 129318,542399004672,2.0375357055664063,203105.31869864464,51994961.58685303,0.0003000000142492354
69
+ 131178,550200410112,2.031361198425293,207202.1809539795,53043758.32421875,0.0003000000142492354
70
+ 133333,559239135232,2.030757417678833,212193.66782402992,54321578.96295166,0.0003000000142492354
71
+ 135333,567627743232,2.0281761837005616,216530.70245361328,55431859.828125,0.0003000000142492354
72
+ 136513,572577021952,2.0286090087890627,219083.33765363693,56085334.439331055,0.0003000000142492354
73
+ 138828,582286835712,2.026455774307251,223925.60991740227,57324956.13885498,0.0003000000142492354
74
+ 140213,588095946752,2.025322980880737,226956.98628759384,58100988.48962402,0.0003000000142492354
75
+ 141973,595477921792,2.024100871086121,230672.4495754242,59052147.091308594,0.0003000000142492354
76
+ 143943,603740700672,2.0255939197540282,235109.97332429886,60188153.17102051,0.0003000000142492354
77
+ 145393,609822441472,2.0222111415863036,238374.98892879486,61023997.165771484,0.0003000000142492354
78
+ 146808,615757381632,2.021069436073303,241464.79900813103,61814988.54608154,0.0003000000142492354
79
+ 148688,623642673152,2.0275738620758057,245573.41091251373,62866793.193603516,0.0003000000142492354
80
+ 150078,629472755712,2.0161587953567506,248615.07202363014,63645458.43804932,0.0003000000142492354
81
+ 152518,639706857472,2.0174728870391845,253896.8513557911,64997593.94708252,0.0003000000142492354
82
+ 155333,651513823232,2.0140232133865354,259972.51769518852,66552964.52996826,0.0003000000142492354
83
+ 156748,657448763392,2.0141440296173094,263131.802372694,67361741.40740967,0.0003000000142492354
84
+ 158518,664872681472,2.012250723838806,267109.7465071678,68380095.10583496,0.0003000000142492354
85
+ 160458,673009631232,2.010021390914917,271607.1601662636,69531433.00256348,0.0003000000142492354
86
+ 162013,679531773952,2.010418858528137,275090.4128572941,70423145.69146729,0.0003000000142492354
87
+ 163968,687731638272,2.0054669094085695,279294.41458678246,71499370.13421631,0.0003000000142492354
88
+ 165383,693666578432,2.007085976600647,282943.83094644547,72433620.72229004,0.0003000000142492354
89
+ 166938,700188721152,2.007470417022705,286987.54871463776,73468812.47094727,0.0003000000142492354
90
+ 169253,709898534912,2.006239137649536,292243.9255628586,74814444.9440918,0.0003000000142492354
91
+ 170968,717091766272,2.006234574317932,295954.49125385284,75764349.76098633,0.0003000000142492354
92
+ 172743,724536655872,2.00496572971344,300047.9483101368,76812274.76739502,0.0003000000142492354
93
+ 174568,732191260672,2.011391215324402,304318.44550824165,77905522.05010986,0.0003000000142492354
94
+ 176443,740055580672,2.010074944496155,308309.44185471535,78927217.11480713,0.0003000000142492354
95
+ 178318,747919900672,2.0036903190612794,312677.4088833332,80045416.6741333,0.0003000000142492354
96
+ 180388,756602109952,2.00131413936615,317592.41147732735,81303657.3381958,0.0003000000142492354
97
+ 182488,765410148352,2.0021464109420775,322315.0511870384,82512653.10388184,0.0003000000142492354
98
+ 184163,772435607552,2.0196765947341917,326161.1454627514,83497253.23846436,0.0003000000142492354
99
+ 186658,782900396032,2.000793972015381,332129.8559639454,85025243.12677002,0.0003000000142492354
100
+ 188778,791792320512,1.996970248222351,336970.2900085449,86264394.2421875,0.0003000000142492354
101
+ 190673,799740526592,1.99858877658844,341798.2998714447,87500364.76708984,0.0003000000142492354
102
+ 192538,807562903552,1.9963369178771972,346169.3793079853,88619361.10284424,0.0003000000142492354
103
+ 194168,814399619072,1.9985038137435913,350088.6111769676,89622684.46130371,0.0003000000142492354
104
+ 195483,819915128832,1.9990806484222412,353536.11716365814,90505245.99389648,0.0003000000142492354
105
+ 197943,830233116672,1.9929803466796876,359786.9988594055,92105471.70800781,0.0003000000142492354
106
+ 199888,838391037952,1.9950042867660522,364684.3672618866,93359198.01904297,0.0003000000142492354
107
+ 201788,846360215552,2.0014796590805055,369731.45154333115,94651251.59509277,0.0003000000142492354
108
+ 203888,855168253952,1.998976125717163,374842.93220973015,95959790.64569092,0.0003000000142492354
109
+ 205198,860662792192,1.9944438552856445,378113.42284178734,96797036.24749756,0.0003000000142492354
110
+ 206808,867415621632,1.9948081970214844,382128.2782063484,97824839.2208252,0.0003000000142492354
111
+ 208818,875846172672,1.9920325231552125,387198.35644340515,99122779.24951172,0.0003000000142492354
112
+ 210378,882389286912,1.9906885814666748,391134.9718568325,100130552.79534912,0.0003000000142492354
113
+ 212448,891071496192,1.9891257762908936,396670.63805675507,101547683.3425293,0.0003000000142492354
114
+ 214158,898243756032,1.9914959716796874,401418.5783264637,102763156.0515747,0.0003000000142492354
115
+ 215728,904828813312,1.9855500841140747,405583.5513267517,103829389.13964844,0.0003000000142492354
116
+ 217883,913867538432,1.9875614070892333,411368.37800836563,105310304.7701416,0.0003000000142492354
117
+ 220178,923493466112,1.9950485038757324,417221.3559541702,106808667.12426758,0.0003000000142492354
118
+ 222698,934063112192,1.992979145050049,423431.0784766674,108398356.09002686,0.0003000000142492354
119
+ 224348,940983713792,1.9899400997161865,427691.99754333496,109489151.37109375,0.0003000000142492354
120
+ 226988,952056676352,1.9866112327575685,434665.77219700813,111274437.68243408,0.0003000000142492354
121
+ 229223,961430945792,1.9877167844772339,440215.0782737732,112695060.03808594,0.0003000000142492354
122
+ 231223,969819553792,1.982833480834961,445192.8117439747,113969359.80645752,0.0003000000142492354
123
+ 232898,976845012992,1.9834683179855346,449444.1582725048,115057704.51776123,0.0003000000142492354
124
+ 234578,983891443712,1.980756688117981,453948.37761735916,116210784.67004395,0.0003000000142492354
125
+ 236398,991525076992,1.9824994945526122,458921.87237000465,117483999.32672119,0.0003000000142492354
126
+ 238478,1000249229312,1.9863429641723633,464148.6053750515,118822042.97601318,0.0003000000142492354
127
+ 240853,1010210701312,1.9868581438064574,470267.46969914436,120388472.24298096,0.0003000000142492354
128
+ 243668,1022017667072,1.9785122394561767,477878.8736114502,122336991.64453125,0.0003000000142492354
129
+ 245728,1030657933312,1.9805147171020507,483333.8747975826,123733471.94818115,0.0003000000142492354
130
+ 248088,1040556490752,1.98367919921875,489776.30638217926,125382734.43383789,0.0003000000142492354
131
+ 250128,1049112870912,1.9791311168670653,495235.54420924187,126780299.31756592,0.0003000000142492354
132
+ 252403,1058654912512,1.9796437311172486,501276.3134906292,128326736.25360107,0.0003000000142492354
133
+ 254138,1065932029952,1.9786444664001466,505866.6337928772,129501858.25097656,0.0003000000142492354
134
+ 255593,1072034742272,1.9749948978424072,510116.7923388481,130589898.83874512,0.0003000000142492354
135
+ 257163,1078619799552,1.9805126142501832,514394.63652586937,131685026.95062256,0.0003000000142492354
136
+ 259293,1087553667072,1.9805561542510985,519616.2602994442,133021762.63665771,0.0003000000142492354
137
+ 260693,1093425692672,1.982892918586731,522455.496768713,133748607.17279053,0.0003000000142492354
138
+ 262388,1100535037952,1.975461072921753,526073.201719284,134674739.64013672,0.0003000000142492354
139
+ 264618,1109888335872,1.9781722927093506,530781.3980076313,135880037.8899536,0.0003000000142492354
140
+ 265963,1115529674752,1.9748257446289061,533636.5440557003,136610955.27825928,0.0003000000142492354
141
+ 267888,1123603709952,1.9752889156341553,537880.8643171787,137697501.26519775,0.0003000000142492354
142
+ 269843,1131803574272,1.9739223384857179,542046.5531096458,138763917.59606934,0.0003000000142492354
143
+ 272388,1142478077952,1.9724583768844604,547377.2023067474,140128563.79052734,0.0003000000142492354
144
+ 274263,1150342397952,1.9735263442993165,551280.9313902855,141127918.4359131,0.0003000000142492354
145
+ 276518,1159800553472,1.9759536600112915,556069.8272666931,142353875.78027344,0.0003000000142492354
146
+ 278088,1166385610752,1.9720831680297852,559384.3518004417,143202394.0609131,0.0003000000142492354
147
+ 280248,1175445307392,1.9682595920562744,563717.7035460472,144311732.1077881,0.0003000000142492354
148
+ 282888,1186518269952,1.9799007892608642,569097.7370188236,145689020.67681885,0.0003000000142492354
149
+ 285588,1197842890752,1.972299075126648,574613.3726415634,147101023.39624023,0.0003000000142492354
150
+ 287458,1205686239232,1.9757914209365846,578463.5975465775,148086680.97192383,0.0003000000142492354
151
+ 289718,1215165366272,1.9713094091415406,583165.9108099937,149290473.1673584,0.0003000000142492354
152
+ 291768,1223763689472,1.968831171989441,587359.6732494831,150364076.35186768,0.0003000000142492354
153
+ 293488,1230977892352,1.9687632942199706,590978.6720416546,151290540.04266357,0.0003000000142492354
154
+ 296243,1242533199872,1.9675247526168824,596745.1840589046,152766767.1190796,0.0003000000142492354
155
+ 298333,1251299295232,1.9659273052215576,601140.3058359623,153891918.29400635,0.0003000000142492354
156
+ 300143,1258890985472,1.966808819770813,604976.6470561028,154874021.6463623,0.0003000000142492354
157
+ 301943,1266440732672,1.9661268281936646,608761.162166357,155842857.5145874,0.0003000000142492354
158
+ 304838,1278583242752,1.9702806615829467,614507.9426524639,157314033.31903076,0.0003000000142492354
159
+ 306473,1285440929792,1.9643911743164062,617861.4496645927,158172531.11413574,0.0003000000142492354
160
+ 308428,1293640794112,1.9633469486236572,621982.4583539963,159227509.33862305,0.0003000000142492354
161
+ 310853,1303811981312,1.9701481246948243,627004.7200045586,160513208.321167,0.0003000000142492354
162
+ 312728,1311676301312,1.9669458293914794,630913.0796144009,161513748.38128662,0.0003000000142492354
163
+ 314203,1317862899712,1.9643836832046508,633971.249876976,162296639.96850586,0.0003000000142492354
164
+ 315978,1325307789312,1.9652533531188965,637595.4410812855,163224432.91680908,0.0003000000142492354
165
+ 317268,1330718441472,1.9652329683303833,640352.2525105476,163930176.6427002,0.0003000000142492354
166
+ 319243,1339002191872,1.9665932512283326,644526.4115104675,164998761.3466797,0.0003000000142492354
167
+ 320903,1345964736512,1.965696063041687,647834.7610650063,165845698.8326416,0.0003000000142492354
168
+ 323268,1355884265472,1.9655056619644165,653158.2559595108,167208513.52563477,0.0003000000142492354
169
+ 325693,1366055452672,1.969166202545166,658094.7498605251,168472255.96429443,0.0003000000142492354
170
+ 328088,1376100810752,1.959834599494934,663075.8995423317,169747430.2828369,0.0003000000142492354
171
+ 329573,1382329352192,1.9652193641662599,666247.1070299149,170559259.3996582,0.0003000000142492354
172
+ 332383,1394115346432,1.9600944375991822,672137.7539036274,172067264.9993286,0.0003000000142492354
173
+ 334588,1403363786752,1.96407151222229,676819.1959176064,173265714.15490723,0.0003000000142492354
174
+ 336708,1412255711232,1.963568124771118,681316.4080533981,174417000.46166992,0.0003000000142492354
175
+ 338348,1419134369792,1.9614058494567872,684835.5685112476,175317905.5388794,0.0003000000142492354
176
+ 340543,1428340867072,1.9604207324981688,689632.6337156296,176545954.23120117,0.0003000000142492354
177
+ 342283,1435638956032,1.9608780097961427,693278.7204716206,177479352.44073486,0.0003000000142492354
178
+ 344258,1443922706432,1.9617660331726074,697295.1231441498,178507551.52490234,0.0003000000142492354
179
+ 346478,1453234061312,1.9609308624267578,701910.6264374256,179689120.36798096,0.0003000000142492354
180
+ 348378,1461203238912,1.9573345804214477,705759.8878202438,180674531.28198242,0.0003000000142492354
181
+ 349778,1467075264512,1.9614266681671142,708690.9684870243,181424887.93267822,0.0003000000142492354
182
+ 351773,1475442900992,1.9579530572891235,712835.2185485363,182485815.9484253,0.0003000000142492354
183
+ 353813,1483999281152,1.964455862045288,717132.7136621475,183585974.69750977,0.0003000000142492354
184
+ 355633,1491632914432,1.9603030967712403,720853.2569811344,184538433.7871704,0.0003000000142492354
185
+ 357368,1498910031872,1.9643068838119506,724534.5202586651,185480837.18621826,0.0003000000142492354
186
+ 359153,1506396864512,1.9605508756637573,728431.4290521145,186478445.8373413,0.0003000000142492354
187
+ 360998,1514135355392,1.9579992580413819,732383.5597906113,187490191.30639648,0.0003000000142492354
188
+ 363123,1523048251392,1.9576819372177123,736770.1569578648,188613160.18121338,0.0003000000142492354
189
+ 365603,1533450125312,1.959110941886902,742102.3170361519,189978193.16125488,0.0003000000142492354
190
+ 367503,1541419302912,1.955609769821167,746344.5685229301,191064209.54187012,0.0003000000142492354
191
+ 369203,1548549619712,1.9582535791397095,749822.9885122776,191954685.05914307,0.0003000000142492354
192
+ 371333,1557483487232,1.9579929542541503,754185.5399475098,193071498.2265625,0.0003000000142492354
193
+ 373388,1566102781952,1.957696418762207,758274.8679385185,194118366.19226074,0.0003000000142492354
194
+ 376168,1577762947072,1.9575824451446533,764248.9875659943,195647740.81689453,0.0003000000142492354
195
+ 377753,1584410918912,1.9581837558746338,767788.1166574955,196553757.86431885,0.0003000000142492354
196
+ 379323,1590995976192,1.9561321783065795,770935.5572018623,197359502.64367676,0.0003000000142492354
197
+ 380913,1597664919552,1.9606944847106933,774087.8183994293,198166481.5102539,0.0003000000142492354
198
+ 383008,1606451986432,1.9556411361694337,778503.4085962772,199296872.60064697,0.0003000000142492354
199
+ 385328,1616182771712,1.9551253461837768,783158.1024012566,200488474.21472168,0.0003000000142492354
200
+ 386958,1623019487232,1.9550975131988526,786599.5460090637,201369483.7783203,0.0003000000142492354
201
+ 388728,1630443405312,1.954553213119507,790218.0025575161,202295808.65472412,0.0003000000142492354
202
+ 390703,1638727155712,1.9554255104064941,794259.4525990486,203330419.86535645,0.0003000000142492354
203
+ 393058,1648604741632,1.9582529544830323,799226.6983923912,204602034.78845215,0.0003000000142492354
204
+ 395333,1658146783232,1.9579640626907349,803935.4146561623,205807466.15197754,0.0003000000142492354
205
+ 397283,1666325676032,1.9572097873687744,808031.7134544849,206856118.64434814,0.0003000000142492354
206
+ 399063,1673791537152,1.9551084566116332,811768.8775155544,207812832.64398193,0.0003000000142492354
207
+ 400948,1681697800192,1.9539657783508302,815695.0820395947,208817941.00213623,0.0003000000142492354
208
+ 402748,1689247547392,1.9534498262405395,819313.22417593,209744185.3890381,0.0003000000142492354
209
+ 404838,1698013642752,1.9571835231781005,823827.6516792774,210899878.82989502,0.0003000000142492354
210
+ 406978,1706989453312,1.9534950685501098,828320.0534090996,212049933.6727295,0.0003000000142492354
211
+ 408823,1714727944192,1.9579477405548096,832137.5924572945,213027223.66906738,0.0003000000142492354
212
+ 410858,1723263352832,1.9587352895736694,836624.1051552296,214175770.91973877,0.0003000000142492354
213
+ 413173,1732973166592,1.94909686088562,841489.677161932,215421357.3534546,0.0003000000142492354
214
+ 414963,1740480970752,1.9494858360290528,845319.1821036339,216401710.61853027,0.0003000000142492354
215
+ 416438,1746667569152,1.9514140510559081,848435.1806650162,217199406.25024414,0.0003000000142492354
216
+ 418218,1754133430272,1.953859715461731,852178.8924751282,218157796.4736328,0.0003000000142492354
217
+ 419538,1759669911552,1.9514509153366089,854988.7884757519,218877129.84979248,0.0003000000142492354
218
+ 421903,1769589440512,1.9497252225875854,859916.5196237564,220138629.02368164,0.0003000000142492354
219
+ 423563,1776551985152,1.950548481941223,863238.5992774963,220989081.41503906,0.0003000000142492354
220
+ 425998,1786765115392,1.9461521196365357,868412.1394166946,222313507.69067383,0.0003000000142492354
221
+ 428113,1795636068352,1.9487574100494385,872916.5063915253,223466625.63623047,0.0003000000142492354
222
+ 430068,1803835932672,1.9520085430145264,877108.2609584332,224539714.8053589,0.0003000000142492354
223
+ 431843,1811280822272,1.945929660797119,880759.6764304638,225474477.16619873,0.0003000000142492354
224
+ 433533,1818369196032,1.956407871246338,884301.2288644314,226381114.58929443,0.0003000000142492354
225
+ 435433,1826338373632,1.9516588306427003,888296.9268109798,227404013.26361084,0.0003000000142492354
226
+ 437573,1835314184192,1.954493727684021,892747.6124324799,228543388.78271484,0.0003000000142492354
227
+ 439148,1841920212992,1.9496833419799804,895965.43851161,229367152.25897217,0.0003000000142492354
228
+ 441068,1849973276672,1.9504491090774536,899925.4805030823,230380923.00878906,0.0003000000142492354
229
+ 442638,1856558333952,1.9469935894012451,903213.0597736835,231222543.302063,0.0003000000142492354
230
+ 443888,1861801213952,1.9494563484191894,905801.6484167576,231885221.99468994,0.0003000000142492354
231
+ 445928,1870357594112,1.9473052310943604,909896.5962805748,232933528.64782715,0.0003000000142492354
232
+ 448303,1880319066112,1.9493485498428345,914883.1788625717,234210093.78881836,0.0003000000142492354
233
+ 449618,1885834575872,1.9427200174331665,917573.1076028347,234898715.54632568,0.0003000000142492354
234
+ 451443,1893489180672,1.9486754369735717,921398.3529331684,235877978.3508911,0.0003000000142492354
235
+ 453178,1900766298112,1.9485606861114502,925094.3730487823,236824159.50048828,0.0003000000142492354
236
+ 455008,1908441874432,1.9489810371398926,928975.8425166607,237817815.68426514,0.0003000000142492354
237
+ 456268,1913726697472,1.9550775146484376,931600.2976133823,238489676.18902588,0.0003000000142492354
238
+ 458418,1922744451072,1.9456060075759887,935905.3285422325,239591764.10681152,0.0003000000142492354
239
+ 460183,1930147397632,1.947961401939392,939539.942980051,240522225.40289307,0.0003000000142492354
240
+ 461788,1936879255552,1.9488294267654418,942792.8803005219,241354977.3569336,0.0003000000142492354
241
+ 463823,1945414664192,1.947607946395874,946912.1931769848,242409521.4533081,0.0003000000142492354
242
+ 465948,1954327560192,1.9467726850509643,951234.2053678036,243515956.5741577,0.0003000000142492354
243
+ 468153,1963576000512,1.9497644996643066,955770.4690947533,244677240.08825684,0.0003000000142492354
244
+ 470463,1973264842752,1.9484503936767579,960534.4983091354,245896831.56713867,0.0003000000142492354
245
+ 472618,1982303567872,1.9491539764404298,965153.5004379749,247079296.11212158,0.0003000000142492354
246
+ 474008,1988133650432,1.9477979612350464,968103.7006523609,247834547.3670044,0.0003000000142492354
247
+ 475528,1994508992512,1.9452753591537475,971213.4961261749,248630655.00830078,0.0003000000142492354
248
+ 476808,1999877701632,1.9501544761657714,973806.6988768578,249294514.9124756,0.0003000000142492354
249
+ 479038,2009230999552,1.9513997220993042,978369.7799589634,250462663.66949463,0.0003000000142492354
250
+ 480708,2016235487232,1.9453705215454102,981754.654002428,251329191.42462158,0.0003000000142492354
251
+ 482438,2023491633152,1.9476304054260254,985335.1197412014,252245790.65374756,0.0003000000142492354
252
+ 484258,2031125266432,1.946502251625061,989192.7164342403,253233335.40716553,0.0003000000142492354
253
+ 486648,2041149652992,1.9477696752548217,994216.994954586,254519550.70837402,0.0003000000142492354
254
+ 488488,2048867172352,1.9466051578521728,998147.0724525452,255525650.54785156,0.0003000000142492354
255
+ 490083,2055557087232,1.9430851173400878,1001431.4499261379,256366451.1810913,0.0003000000142492354
256
+ 492583,2066042847232,1.9475297498703004,1006415.7696654797,257642437.0343628,0.0003000000142492354
257
+ 494498,2074074939392,1.9443493700027465,1010333.6361887455,258645410.86431885,0.0003000000142492354
258
+ 496963,2084413898752,1.9396081161499024,1015506.1208918095,259969566.94830322,0.0003000000142492354
259
+ 499103,2093389709312,1.9419655513763427,1019873.1831290722,261087534.88104248,0.0003000000142492354
260
+ 501178,2102092890112,1.9465229797363282,1024130.1322581768,262177313.85809326,0.0003000000142492354
261
+ 502393,2107188969472,1.9423305225372314,1026613.9520468712,262813171.72399902,0.0003000000142492354
262
+ 504313,2115242033152,1.9462104892730714,1030607.0607998371,263835407.5647583,0.0003000000142492354
263
+ 506513,2124469501952,1.9463778829574585,1036038.6564817429,265225896.05932617,0.0003000000142492354
264
+ 508283,2131893420032,1.94479172706604,1039523.2592954636,266117954.37963867,0.0003000000142492354
265
+ 510513,2141246717952,1.9500395441055298,1044186.520763874,267311749.31555176,0.0003000000142492354
266
+ 513238,2152676196352,1.9431734418869018,1050192.2955384254,268849227.6578369,0.0003000000142492354
267
+ 515463,2162008522752,1.940658025741577,1054769.0741755962,270020882.98895264,0.0003000000142492354
268
+ 516908,2168069292032,1.94367760181427,1057759.1069140434,270786331.3699951,0.0003000000142492354
269
+ 518913,2176478871552,1.9397131967544556,1061762.4483671188,271811186.7819824,0.0003000000142492354
270
+ 520548,2183336558592,1.9405004644393922,1065249.6324219704,272703905.9000244,0.0003000000142492354
271
+ 522343,2190865334272,1.9442265224456787,1068883.7777450085,273634247.10272217,0.0003000000142492354
272
+ 523948,2197597192192,1.9434235429763793,1072159.4496753216,274472819.1168823,0.0003000000142492354
273
+ 526028,2206321344512,1.944770050048828,1076342.403468132,275543655.2878418,0.0003000000142492354
274
+ 528138,2215171325952,1.9507891464233398,1080682.7243127823,276654777.42407227,0.0003000000142492354
275
+ 529448,2220665864192,1.9469588804244995,1083393.0977442265,277348633.022522,0.0003000000142492354
276
+ 531078,2227502579712,1.9411223173141479,1086933.0393912792,278254858.0841675,0.0003000000142492354
277
+ 533533,2237799596032,1.945275192260742,1092342.3397948742,279639638.9874878,0.0003000000142492354
278
+ 535718,2246964150272,1.9388134288787842,1096843.8852527142,280792034.6246948,0.0003000000142492354
279
+ 538088,2256904650752,1.9404128360748292,1101629.817631483,282017233.31365967,0.0003000000142492354
280
+ 539908,2264538284032,1.9479225158691407,1105403.6813309193,282983342.42071533,0.0003000000142492354
281
+ 541689,2272008339456,1.94042934690203,1109678.1022558212,284077594.17749023,0.0003000000142492354
282
+ 543469,2279474200576,1.947353720664978,1113744.8308417797,285118676.6954956,0.0003000000142492354
283
+ 545714,2288890413056,1.9407488679885865,1118675.616765976,286380957.89208984,0.0003000000142492354
284
+ 547824,2297740394496,1.943647451400757,1123465.322243929,287607122.4944458,0.0003000000142492354
285
+ 550129,2307408265216,1.936250605583191,1128619.5835754871,288926613.3953247,0.0003000000142492354
286
+ 552129,2315796873216,1.9332826375961303,1133199.2653152943,290099011.92071533,0.0003000000142492354
287
+ 553359,2320955867136,1.9386159372329712,1135856.7320129871,290779323.3953247,0.0003000000142492354
288
+ 555114,2328316870656,1.9416591119766236,1139984.8873410225,291836131.15930176,0.0003000000142492354
289
+ 556399,2333706551296,1.938959150314331,1142788.1939873695,292553777.6607666,0.0003000000142492354
290
+ 559029,2344737570816,1.939472279548645,1148689.0084109306,294064386.15319824,0.0003000000142492354
291
+ 560504,2350924169216,1.9378677558898927,1151954.130159378,294900257.3208008,0.0003000000142492354
292
+ 562404,2358893346816,1.93844388961792,1156252.3606095314,296000604.31604004,0.0003000000142492354
293
+ 563969,2365457432576,1.9385316944122315,1159754.4510278702,296897139.46313477,0.0003000000142492354
294
+ 565439,2371623059456,1.940172085762024,1163023.9423487186,297734129.241272,0.0003000000142492354
295
+ 567349,2379634180096,1.9446619653701782,1167051.341565609,298765143.4407959,0.0003000000142492354
296
+ 569419,2388316389376,1.9477505493164062,1171646.2587795258,299941442.2475586,0.0003000000142492354
297
+ 571179,2395698364416,1.940185685157776,1175623.4341797829,300959599.1500244,0.0003000000142492354
298
+ 572794,2402472165376,1.9385631704330444,1179060.1584682465,301839400.5678711,0.0003000000142492354
299
+ 575114,2412202950656,1.9357694053649903,1184413.2855353355,303209801.0970459,0.0003000000142492354
300
+ 577274,2421262647296,1.9404512023925782,1189386.485613346,304482940.3170166,0.0003000000142492354
301
+ 578794,2427637989376,1.938502631187439,1192710.6702563763,305333931.5856323,0.0003000000142492354
302
+ 580859,2436299227136,1.9388711261749267,1197265.731966257,306500027.3833618,0.0003000000142492354
303
+ 582864,2444708806656,1.9373184585571288,1201876.9888648987,307680509.14941406,0.0003000000142492354
304
+ 584749,2452615069696,1.93695809841156,1205988.6900863647,308733104.6621094,0.0003000000142492354
305
+ 586419,2459619557376,1.9383648490905763,1209720.9189519882,309688555.251709,0.0003000000142492354
306
+ 588349,2467714564096,1.939493908882141,1213947.5269494057,310770566.89904785,0.0003000000142492354
307
+ 589844,2473985048576,1.9410696029663086,1217308.0315742493,311630856.0830078,0.0003000000142492354
308
+ 591809,2482226855936,1.9402881526947022,1221565.3580245972,312720731.6542969,0.0003000000142492354
309
+ 593214,2488119853056,1.9392866373062134,1224773.7630198002,313542083.33306885,0.0003000000142492354
310
+ 594889,2495145312256,1.9365543270111083,1228733.0416152477,314555658.6535034,0.0003000000142492354
311
+ 597994,2508168626176,1.9365768003463746,1236302.7512440681,316493504.31848145,0.0003000000142492354
312
+ 600119,2517081522176,1.9411273717880249,1241421.3318464756,317803860.95269775,0.0003000000142492354
313
+ 602079,2525302358016,1.9350768852233886,1245993.7221405506,318974392.86798096,0.0003000000142492354
314
+ 604194,2534173310976,1.932094326019287,1250783.082157135,320200469.03222656,0.0003000000142492354
315
+ 606389,2543379808256,1.9376727628707886,1255871.4827952385,321503099.59558105,0.0003000000142492354
316
+ 608579,2552565334016,1.939154667854309,1261080.8259210587,322836691.435791,0.0003000000142492354
317
+ 610349,2559989252096,1.936561999320984,1265108.8604876995,323867868.2848511,0.0003000000142492354
318
+ 612709,2569887809536,1.937281560897827,1270597.0959351063,325272856.5593872,0.0003000000142492354
319
+ 615014,2579555680256,1.9350225877761842,1276151.3414213657,326694743.4038696,0.0003000000142492354
320
+ 616689,2586581139456,1.9427925062179565,1280048.6847863197,327692463.30529785,0.0003000000142492354
321
+ 619404,2597968674816,1.9364050149917602,1286357.8372046947,329307606.32440186,0.0003000000142492354
322
+ 622299,2610111184896,1.93864896774292,1293083.5514781475,331029389.17840576,0.0003000000142492354
323
+ 623764,2616255840256,1.9380575942993163,1296736.4023706913,331964519.006897,0.0003000000142492354
324
+ 625744,2624560562176,1.9355155229568481,1301489.093458414,333181207.925354,0.0003000000142492354
325
+ 627114,2630306758656,1.9352296638488768,1304957.2336623669,334069051.8175659,0.0003000000142492354
326
+ 628734,2637101531136,1.9340949487686157,1308999.6953866482,335103922.01898193,0.0003000000142492354
327
+ 630624,2645028765696,1.9315508031845092,1313462.8685352802,336246494.34503174,0.0003000000142492354
328
+ 632439,2652641427456,1.9320917558670043,1317971.702303648,337400755.7897339,0.0003000000142492354
329
+ 634469,2661155864576,1.9341316890716553,1323121.1190936565,338719006.4879761,0.0003000000142492354
330
+ 636004,2667594121216,1.93304123878479,1326822.0704636574,339666450.0386963,0.0003000000142492354
331
+ 637769,2674997067776,1.9356712484359742,1331277.904321909,340807143.5064087,0.0003000000142492354
332
+ 639954,2684161622016,1.9327107000350952,1336432.0497164726,342126604.727417,0.0003000000142492354
333
+ 642319,2694081150976,1.9354500675201416,1342074.1212949753,343570975.0515137,0.0003000000142492354
334
+ 644199,2701966442496,1.939101390838623,1346593.1013784409,344727833.95288086,0.0003000000142492354
335
+ 646039,2709683961856,1.9382933473587036,1351035.1993951797,345865011.045166,0.0003000000142492354
336
+ 647584,2716164161536,1.9352576589584352,1354715.6578097343,346807208.399292,0.0003000000142492354
337
+ 650044,2726482149376,1.9363348960876465,1361083.3268795013,348437331.68115234,0.0003000000142492354
338
+ 651704,2733444694016,1.941686954498291,1364981.465630293,349435255.201355,0.0003000000142492354
339
+ 653074,2739190890496,1.938481993675232,1368312.636607647,350288034.9715576,0.0003000000142492354
340
+ 655199,2748103786496,1.9358009958267213,1373476.0453662872,351609867.61376953,0.0003000000142492354
341
+ 657414,2757394169856,1.9342416048049926,1378714.6798548698,352950958.0428467,0.0003000000142492354
342
+ 659149,2764671287296,1.931928095817566,1383080.1730082035,354068524.2901001,0.0003000000142492354
343
+ 660985,2772372029440,1.935685157775879,1387002.5008759499,355072640.22424316,0.0003000000142492354
344
+ 663140,2781410754560,1.9334363698959351,1391618.811923027,356254415.8522949,0.0003000000142492354
345
+ 665290,2790428508160,1.9354631328582763,1396122.1793529987,357407277.9143677,0.0003000000142492354
346
+ 667650,2800327065600,1.931658730506897,1400966.8387339115,358647510.71588135,0.0003000000142492354
347
+ 669220,2806912122880,1.9370522975921631,1404169.4934687614,359467390.3280029,0.0003000000142492354
348
+ 671200,2815216844800,1.9337073278427124,1408546.461587906,360587894.1665039,0.0003000000142492354
349
+ 672570,2820963041280,1.9374622011184692,1411312.4806556702,361295995.04785156,0.0003000000142492354
350
+ 675160,2831826288640,1.9349578189849854,1416801.3328347206,362701141.2056885,0.0003000000142492354
351
+ 677100,2839963238400,1.9355492782592774,1420722.4307272434,363704942.2661743,0.0003000000142492354
352
+ 679220,2848855162880,1.9345752000808716,1425289.8431024551,364874199.8342285,0.0003000000142492354
353
+ 681030,2856446853120,1.9323256921768188,1429037.8618321419,365833692.6290283,0.0003000000142492354
354
+ 682755,2863682027520,1.9327951765060425,1432567.0128557682,366737155.29107666,0.0003000000142492354
355
+ 684625,2871525376000,1.9301513814926148,1436393.6035106182,367716762.49871826,0.0003000000142492354
356
+ 686665,2880081756160,1.9331067037582397,1440623.0019733906,368799488.505188,0.0003000000142492354
357
+ 688505,2887799275520,1.9330306482315063,1444489.784328699,369789384.788147,0.0003000000142492354
358
+ 690905,2897865605120,1.9323818731307982,1449590.7331762314,371095227.69311523,0.0003000000142492354
359
+ 692410,2904178032640,1.9332720708847047,1452694.2836449146,371889736.61309814,0.0003000000142492354
360
+ 694725,2913887846400,1.9385543632507325,1457739.7935256958,373181387.1425781,0.0003000000142492354
361
+ 696550,2921542451200,1.9355508661270142,1461589.2234847546,374166841.21209717,0.0003000000142492354
362
+ 698595,2930119802880,1.9339664602279663,1465841.0182807446,375255300.6798706,0.0003000000142492354
363
+ 701155,2940857221120,1.930873293876648,1471270.0683758259,376645137.5042114,0.0003000000142492354
364
+ 703215,2949497487360,1.9291921377182006,1475620.3646681309,377758813.3550415,0.0003000000142492354
365
+ 705305,2958263582720,1.9304812574386596,1479840.668790102,378839211.2102661,0.0003000000142492354
366
+ 707870,2969021972480,1.930038604736328,1484955.5733499527,380148626.7775879,0.0003000000142492354
367
+ 710170,2978668871680,1.932656879425049,1489657.720097065,381352376.34484863,0.0003000000142492354
368
+ 711900,2985925017600,1.9304987859725953,1493193.3803639412,382257505.37316895,0.0003000000142492354
369
+ 713940,2994481397760,1.9356035280227661,1497471.367437601,383352670.0640259,0.0003000000142492354
370
+ 715785,3002219888640,1.9410306358337401,1501453.1358907223,384372002.7880249,0.0003000000142492354
metadata/training_logs/ConvergenceCurve_phase2.csv ADDED
@@ -0,0 +1,386 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ training_steps,training_tokens,training_loss,walltime,gputime,learning_rate
2
+ 610,2558525440,1.8591474676132203,1577.0631277561188,403728.1607055664,0.00029999890830367804
3
+ 1305,5473566720,1.8590973711013794,3366.526930332184,861830.8941650391,0.00029999500839039683
4
+ 2285,9583984640,1.8500521612167358,5721.44074678421,1464688.8311767578,0.00029998470563441515
5
+ 3220,13505658880,1.844328899383545,7789.655754566193,1994151.8731689453,0.00029996962985023856
6
+ 4090,17154703360,1.8464346218109131,9910.505961179733,2537089.5260620117,0.00029995100339874625
7
+ 5000,20971520000,1.8453072452545165,11916.204143762589,3050548.2608032227,0.00029992678901180625
8
+ 6095,25564282880,1.8352785205841065,14300.995573997498,3661054.8669433594,0.00029989119502715766
9
+ 7065,29632757760,1.8348756313323975,16557.20342874527,4238644.077758789,0.0002998538257088512
10
+ 8065,33827061760,1.8344827222824096,19036.596146821976,4873368.613586426,0.0002998095005750656
11
+ 8945,37518049280,1.828942255973816,20997.795709371567,5375435.701599121,0.00029976567020639777
12
+ 9820,41188065280,1.8338001585006714,23086.91358447075,5910249.877624512,0.0002997176197823137
13
+ 10620,44543508480,1.8306499671936036,24985.23111462593,6396219.165344238,0.0002996697439812124
14
+ 12125,50855936000,1.830906572341919,28553.66275191307,7309737.664489746,0.00029956953949294984
15
+ 12855,53917777920,1.8340681982040405,30271.014125347137,7749379.616088867,0.00029951619217172265
16
+ 14065,58992885760,1.8334971237182618,32994.268872737885,8446532.831420898,0.00029942087712697685
17
+ 15045,63103303680,1.8326430654525756,35287.43020415306,9033582.132263184,0.0002993374364450574
18
+ 16145,67717038080,1.8295758533477784,37766.7780315876,9668295.176086426,0.0002992370864376426
19
+ 17180,72058142720,1.8289901733398437,40321.1701130867,10322219.548950195,0.00029913624166511
20
+ 17990,75455528960,1.8290645360946656,42194.40278887749,10801767.113952637,0.0002990529465023428
21
+ 18615,78076968960,1.8249164342880249,43660.11423587799,11176989.244384766,0.0002989860950037837
22
+ 19680,82543902720,1.8303661298751832,46085.95684170723,11798004.95147705,0.0002988669148180634
23
+ 20770,87115694080,1.830328001976013,48745.56445598602,12478864.500732422,0.00029873813036829233
24
+ 21640,90764738560,1.8286544513702392,50702.001802921295,12979712.461547852,0.00029863035888411105
25
+ 22640,94959042560,1.904537606239319,53069.18496012688,13585711.34979248,0.0002985011087730527
26
+ 23520,98650030080,1.8263292407989502,55266.38353705406,14148194.18548584,0.00029838253976777196
27
+ 24390,102299074560,1.8283975696563721,57249.15934920311,14655784.793395996,0.0002982609439641237
28
+ 25230,105822289920,1.8290383148193359,59200.21234869957,15155254.36126709,0.0002981393481604755
29
+ 26190,109848821760,1.8255306959152222,61412.546890974045,15721612.004089355,0.00029799542971886694
30
+ 27140,113833410560,1.836202530860901,63649.32084918022,16294226.137390137,0.0002978477568831295
31
+ 28160,118111600640,1.834192099571228,66052.28078484535,16909383.88092041,0.0002976834075525403
32
+ 29005,121655787520,1.8257641887664795,68040.92909216881,17418477.847595215,0.000297542690532282
33
+ 29670,124444999680,1.8256645202636719,69607.03523039818,17819401.018981934,0.00029742909828200936
34
+ 30470,127800442880,1.826603798866272,71474.74717855453,18297535.27770996,0.00029728905064985156
35
+ 31540,132288348160,1.828463740348816,73985.46221852303,18940278.327941895,0.00029709600494243205
36
+ 32370,135769620480,1.8263410711288453,75954.74554181099,19444414.858703613,0.0002969417255371809
37
+ 33020,138495918080,1.8224460744857789,77557.6713681221,19854763.870239258,0.0002968181506730616
38
+ 34010,142648279040,1.8231004333496095,79926.30450844765,20461133.954162598,0.0002966253086924553
39
+ 35155,147450757120,1.8239600515365602,82639.50283169746,21155712.72491455,0.00029639527201652527
40
+ 36105,151435345920,1.8210523796081544,84922.23833799362,21740093.014526367,0.0002961987629532814
41
+ 37005,155210219520,1.824894781112671,87062.47863411903,22287994.530334473,0.00029600784182548523
42
+ 37705,158146232320,1.821996898651123,88712.92949080467,22710509.949645996,0.00029585615266114473
43
+ 38625,162004992000,1.8280460500717164,90831.21213316917,23252790.30609131,0.0002956525713670999
44
+ 39510,165716951040,1.834221510887146,92997.24526286125,23807294.78729248,0.00029545219149440527
45
+ 40440,169617653760,1.8383075904846191,95242.45730638504,24382069.07043457,0.0002952368522528559
46
+ 41330,173350584320,1.830979480743408,97276.91481351852,24902890.192260742,0.00029502619872801006
47
+ 42160,176831856640,1.8327462816238402,99362.13406801224,25436706.321411133,0.0002948257024399936
48
+ 43330,181739192320,1.830559525489807,102191.28093719482,26160967.919921875,0.0002945365267805755
49
+ 44290,185765724160,1.828639841079712,104538.39753627777,26761829.76928711,0.00029429348069243133
50
+ 45485,190777917440,1.8290658330917358,107089.43394422531,27414895.08972168,0.00029398369952104986
51
+ 46220,193860730880,1.8209784078598021,108737.09371089935,27836695.989990234,0.00029378922772593796
52
+ 47515,199292354560,1.8233415842056275,111748.68362903595,28607663.009033203,0.0002934391959570348
53
+ 48345,202773626880,1.823132553100586,113723.25442433357,29113153.132629395,0.00029320994508452713
54
+ 49165,206212956160,1.8234637832641603,115590.78886032104,29591241.948242188,0.00029297967557795346
55
+ 50100,210134630400,1.821461820602417,117961.46292924881,30198134.509887695,0.00029271256062202156
56
+ 51100,214328934400,1.822403244972229,120286.80166840553,30793421.227111816,0.0002924215223174542
57
+ 51960,217936035840,1.8264352703094482,122454.73382234573,31348411.858520508,0.00029216677648946643
58
+ 53060,222549770240,1.8246722745895385,125172.27768063545,32044103.086242676,0.0002918350219260901
59
+ 53870,225947156480,1.820338830947876,127063.45998644829,32528245.75653076,0.0002915864752139896
60
+ 54905,230288261120,1.8193842124938966,129660.89175105095,33193188.288269043,0.00029126362642273307
61
+ 55730,233748561920,1.8256155633926392,131626.18517160416,33696303.403930664,0.00029100209940224886
62
+ 56550,237187891200,1.8185726022720337,133608.28788876534,34203721.699523926,0.0002907384478021413
63
+ 57680,241927454720,1.813451075553894,136299.1924214363,34892593.259887695,0.00029036912019364536
64
+ 58740,246373416960,1.8195957946777344,138947.14162111282,35570468.25500488,0.0002900163526646793
65
+ 59630,250106347520,1.8213485813140868,141040.1522409916,36106278.97369385,0.0002897154481615871
66
+ 60340,253084303360,1.8193719291687012,142725.4915714264,36537725.842285156,0.00028947231476195157
67
+ 61260,256943063040,1.8167563629150392,144952.09844470024,37107737.20184326,0.0002891532494686544
68
+ 62180,260801822720,1.821616997718811,147097.62022733688,37656990.77819824,0.00028882958577014506
69
+ 62935,263968522240,1.8151561307907105,149051.16348266602,38157097.8515625,0.0002885606081690639
70
+ 63710,267219107840,1.8175263404846191,151017.6004076004,38660505.7043457,0.00028828129870817065
71
+ 64735,271518269440,1.8181425285339357,153595.16024708748,39320361.023254395,0.00028790696524083614
72
+ 65980,276740177920,1.8494785690307618,156706.34971380234,40116825.5267334,0.0002874447382055223
73
+ 67065,281290997760,1.8292945432662964,159288.90483617783,40777959.63806152,0.0002870352182071656
74
+ 67970,285086842880,1.8285573816299439,161516.45609498024,41348212.76031494,0.0002866888535209
75
+ 69020,289490862080,1.8231487369537354,163975.17231583595,41977644.112854004,0.0002862815745174885
76
+ 70145,294209454080,1.8179030656814574,166737.71277189255,42684854.46960449,0.0002858387597370893
77
+ 71020,297879470080,1.82222318649292,168920.65007448196,43243686.41906738,0.0002854897466022521
78
+ 71900,301570457600,1.8190499830245972,171103.7938094139,43802571.21520996,0.00028513470897451043
79
+ 72730,305051729920,1.8164095449447633,173253.16641569138,44352810.60241699,0.00028479614411480725
80
+ 73500,308281344000,1.822648320198059,175279.33874964714,44871510.71990967,0.00028447885415516794
81
+ 74105,310818897920,1.8248628902435302,176744.5105755329,45246594.707336426,0.00028422739706002176
82
+ 75240,315579432960,1.8264307117462157,179418.98047208786,45931259.00085449,0.00028375055990181863
83
+ 76350,320235110400,1.8188332080841065,181883.70473980904,46562228.41339111,0.00028327779727987945
84
+ 77395,324618158080,1.8180358505249024,184523.65441918373,47238055.531311035,0.00028282692073844373
85
+ 78435,328980234240,1.8177628469467164,187024.7860479355,47878345.228271484,0.00028237266815267503
86
+ 79440,333195509760,1.8160990762710572,189346.2539935112,48472641.02233887,0.00028192848549224436
87
+ 80275,336697753600,1.8202384662628175,191327.86167621613,48979932.58911133,0.0002815555199049413
88
+ 81150,340367769600,1.8183535814285279,193326.0135269165,49491459.462890625,0.00028116090106777847
89
+ 82065,344205557760,1.8186530447006226,195503.11517953873,50048797.485961914,0.0002807441051118076
90
+ 82880,347623915520,1.8188217210769653,197428.6881160736,50541744.157714844,0.0002803693350870162
91
+ 83860,351734333440,1.815137538909912,199687.94003486633,51120112.64892578,0.0002799142966978252
92
+ 84670,355131719680,1.826065616607666,201694.90508198738,51633895.70098877,0.00027953454991802573
93
+ 85575,358927564800,1.8222646951675414,203917.17332839966,52202796.37207031,0.0002791064325720072
94
+ 86690,363604213760,1.8206488370895386,206349.41662192345,52825450.6552124,0.00027857336681336164
95
+ 87850,368469606400,1.8193091201782225,209131.0117805004,53537539.015808105,0.00027801230316981673
96
+ 88770,372328366080,1.8248542833328247,211409.14634346962,54120741.46392822,0.0002775626489892602
97
+ 89610,375851581440,1.8217721843719483,213419.38222527504,54635361.84967041,0.00027714844327419996
98
+ 90430,379290910720,1.8160008716583251,215920.88285684586,55275746.01135254,0.00027674081502482295
99
+ 91205,382541496320,1.8158236122131348,217760.031799078,55746568.140563965,0.00027635254082269967
100
+ 92375,387448832000,1.8178369760513307,220478.92622113228,56442605.11260986,0.0002757608890533447
101
+ 93305,391349534720,1.815445532798767,222732.27391839027,57019462.12310791,0.00027528591454029083
102
+ 94105,394704977920,1.8197657203674316,225054.1094648838,57613852.023010254,0.0002748740080278367
103
+ 95046,398651817984,1.817927827835083,228682.3605451584,58542684.29956055,0.0002743855875451118
104
+ 96146,403265552384,1.8115335369110108,231807.71195149422,59342774.25958252,0.00027380933170206845
105
+ 97451,408739119104,1.8139947843551636,235055.7580397129,60174274.058166504,0.0002731182612478733
106
+ 98176,411779989504,1.8124797201156617,236880.4615137577,60641398.14752197,0.0002727308892644942
107
+ 99011,415282233344,1.8136535596847534,240303.2180700302,61517623.825927734,0.00027228170074522495
108
+ 99926,419120021504,1.8121351099014282,242852.75603866577,62170305.54589844,0.0002717857132665813
109
+ 100606,421972148224,1.810523238182068,244572.99504256248,62610686.730895996,0.0002714146103244275
110
+ 101501,425726050304,1.8080514574050903,246895.61300730705,63205276.929870605,0.0002709229302126914
111
+ 102501,429920354304,1.8128723192214966,249515.85827207565,63876059.71765137,0.0002703692007344216
112
+ 103261,433108025344,1.8141535377502442,251568.564111948,64401552.41265869,0.0002699453034438193
113
+ 104066,436484440064,1.8122142505645753,253572.77815914154,64914631.208740234,0.00026949343737214804
114
+ 105421,442167721984,1.8123528671264648,257055.2549932003,65806145.27825928,0.0002687262312974781
115
+ 106391,446236196864,1.8125610208511354,259383.88051605225,66402273.412109375,0.00026817191974259913
116
+ 107301,450053013504,1.810970335006714,261630.19577002525,66977330.117126465,0.0002676480507943779
117
+ 108131,453534285824,1.8094647312164307,263655.1596364975,67495720.86694336,0.0002671670517884195
118
+ 108926,456868757504,1.8094174718856813,265667.19418144226,68010801.71044922,0.0002667034568730742
119
+ 109641,459867684864,1.8133175992965698,267440.3481326103,68464729.12194824,0.0002662840997800231
120
+ 110701,464313647104,1.8144058895111084,270033.11794018745,69128478.19268799,0.0002656583092175424
121
+ 111481,467585204224,1.8157741832733154,272057.5650296211,69646736.64758301,0.00026519468519836664
122
+ 112356,471255220224,1.811423945426941,274298.8903687,70220515.9343872,0.000264671427430585
123
+ 113021,474044432384,1.813492259979248,276090.6790766716,70679213.84362793,0.00026427156990393996
124
+ 113731,477022388224,1.8101095819473267,277969.1963288784,71160114.26019287,0.0002638425212353468
125
+ 114646,480860176384,1.803206763267517,280198.889534235,71730915.72076416,0.0002632864052429795
126
+ 115606,484886708224,1.8086436986923218,282700.1856443882,72371247.52496338,0.00026269908994436264
127
+ 116671,489353641984,1.8087895679473878,285431.34041285515,73070423.14569092,0.00026204297319054604
128
+ 117696,493652803584,1.8093397521972656,288079.37056040764,73748318.86346436,0.0002614069962874055
129
+ 119021,499210256384,1.8060203695297241,291618.83398628235,74654421.50048828,0.00026057835202664137
130
+ 120376,504893538304,1.8072790145874023,295250.15199518204,75584038.9107666,0.0002597234270069748
131
+ 121671,510325161984,1.8061434650421142,298584.27656030655,76437574.79943848,0.00025889932294376194
132
+ 122741,514813067264,1.8125104475021363,301429.6234998703,77165983.6159668,0.00025821320014074445
133
+ 123981,520014004224,1.8782437419891358,305031.46193122864,78088054.25439453,0.00025741232093423605
134
+ 124911,523914706944,1.8073894453048707,307510.0171813965,78722564.3984375,0.00025680760154500604
135
+ 125676,527123349504,1.8105022525787353,309504.09009194374,79233047.0635376,0.0002563075686339289
136
+ 126606,531024052224,1.8082721614837647,312166.23198723793,79914555.38873291,0.0002556965919211507
137
+ 127521,534861840384,1.8071044921875,314556.3413772583,80526423.39257812,0.0002550921344663948
138
+ 128381,538468941824,1.8064283752441406,317071.62604546547,81170336.26763916,0.0002545210300013423
139
+ 129341,542495473664,1.8118570137023926,319792.94766163826,81866994.6013794,0.0002538801054470241
140
+ 129871,544718454784,1.8066246509552002,321223.2166991234,82233143.47497559,0.0002535247476771474
141
+ 130616,547843211264,1.805527606010437,323247.12055540085,82751262.86218262,0.0002530234050936997
142
+ 131616,552037515264,1.8055236339569092,326068.3877441883,83473507.2625122,0.00025234714848920703
143
+ 133056,558077313024,1.8115102243423462,330177.5115237236,84525442.95007324,0.00025136664044111967
144
+ 134396,563697680384,1.8067532444000245,334005.05911922455,85505295.13452148,0.0002504472795408219
145
+ 135281,567409639424,1.80417941570282,336263.9260504246,86083565.06890869,0.0002498364192433655
146
+ 136061,570681196544,1.8022291994094848,338469.36423516273,86648157.24420166,0.00024929564096964896
147
+ 137421,576385449984,1.8071019792556762,342423.4924445152,87660414.0657959,0.0002483474381733686
148
+ 138276,579971579904,1.8065129804611206,344758.2636282444,88258115.48883057,0.0002477478701621294
149
+ 138926,582697877504,1.8003232765197754,346453.48848080635,88692093.05108643,0.0002472903288435191
150
+ 139761,586200121344,1.8033902835845947,348963.66530394554,89334698.31781006,0.0002467003359925002
151
+ 140466,589157105664,1.8003369140625,350948.2806882858,89842759.85620117,0.0002462002739775926
152
+ 141156,592051175424,1.8041338872909547,353014.50160837173,90371712.41174316,0.0002457091468386352
153
+ 142386,597210169344,1.8076526641845703,356616.3554201126,91293786.98754883,0.00024482954177074134
154
+ 143036,599936466944,1.8042847633361816,358354.11049461365,91738652.2866211,0.0002443625999148935
155
+ 144081,604319514624,1.798984398841858,361473.3364651203,92537174.1350708,0.00024360882525797933
156
+ 144991,608136331264,1.8027111721038818,363746.11743426323,93119006.06317139,0.0002429494052194059
157
+ 145761,611365945344,1.8014432573318482,365923.27353334427,93676358.02453613,0.00024238924379460514
158
+ 146921,616231337984,1.802777690887451,369161.1822578907,94505262.65802002,0.00024154159473255277
159
+ 147606,619104436224,1.799904360771179,371180.13634061813,95022114.90319824,0.00024103895702864975
160
+ 148346,622208221184,1.796466965675354,373459.21619033813,95605559.34472656,0.00024049420608207583
161
+ 149326,626318639104,1.7952518892288207,376243.7543103695,96318401.10345459,0.00023977003002073616
162
+ 150426,630932373504,1.8000261306762695,379202.4017164707,97075814.8394165,0.00023895344929769635
163
+ 151466,635294449664,1.7987578439712524,382167.5741980076,97834898.99468994,0.00023817784676793963
164
+ 152481,639551668224,1.8038560628890992,385010.169318676,98562603.34558105,0.0002374175819568336
165
+ 153446,643599171584,1.8035392475128174,387753.55447626114,99264909.94592285,0.00023669176152907312
166
+ 154376,647499874304,1.8053948736190797,390543.30555176735,99979086.22125244,0.00023598952975589782
167
+ 155336,651526406144,1.8094010257720947,393225.47508335114,100665721.62133789,0.00023526183213107288
168
+ 156421,656077225984,1.808717474937439,396344.19108366966,101464112.91741943,0.00023443601094186306
169
+ 157101,658929352704,1.800858392715454,398201.42544722557,101939564.91448975,0.00023391663853544742
170
+ 157981,662620340224,1.7937493753433227,400643.78608202934,102564809.23699951,0.00023324244830291718
171
+ 158811,666101612544,1.8010107421875,403040.6518623829,103178406.87677002,0.00023260447778739035
172
+ 159611,669457055744,1.7987049579620362,405264.3903121948,103747683.91992188,0.0002319876366527751
173
+ 160336,672497926144,1.8018701553344727,407265.4658946991,104259959.26904297,0.00023142702411860228
174
+ 161641,677971492864,1.7971449041366576,410591.1344573498,105111330.42108154,0.00023041410895530134
175
+ 162541,681746366464,1.8039043569564819,413360.1294693947,105820193.14416504,0.0002297127211932093
176
+ 163591,686150385664,1.8012043523788452,416478.45546102524,106618484.59802246,0.00022889155661687255
177
+ 164281,689044455424,1.7961911725997926,418587.60516381264,107158426.92193604,0.000228350269026123
178
+ 165206,692924186624,1.794422287940979,421477.7675292492,107898308.4874878,0.00022762258595321327
179
+ 166126,696782946304,1.7978273344039917,424045.84924674034,108555737.40716553,0.0002268965181428939
180
+ 167366,701983883264,1.7981152725219727,427657.40657663345,109480296.08361816,0.00022591432207264006
181
+ 168326,706010415104,1.78720947265625,430287.94194436073,110153713.13775635,0.0002251511177746579
182
+ 169041,709009342464,1.7941506385803223,432258.2249650955,110658105.59106445,0.00022458111925516278
183
+ 169796,712176041984,1.796060562133789,434596.4668176174,111256695.50531006,0.00022397781140170991
184
+ 170946,716999491584,1.7885006952285767,438238.4229443073,112189036.27374268,0.00022305604943539947
185
+ 172116,721906827264,1.797088713645935,441693.4589443207,113073525.4897461,0.0002221148315584287
186
+ 173061,725870444544,1.7923605060577392,444468.4626171589,113783926.42999268,0.00022135215112939477
187
+ 173791,728932286464,1.7948624181747437,446910.59599018097,114409112.57348633,0.00022076147433836013
188
+ 174796,733147561984,1.7934260940551758,449828.64092206955,115156132.0760498,0.00021994620328769088
189
+ 175601,736523976704,1.793698182106018,452460.98252153397,115830011.5255127,0.00021929142531007528
190
+ 176591,740676337664,1.7940114498138429,455405.4120359421,116583785.48120117,0.00021848407050129026
191
+ 177601,744912584704,1.7944616556167603,458631.7381057739,117409724.95507812,0.0002176580746890977
192
+ 178766,749798948864,1.7966568183898926,462002.992303133,118272766.02960205,0.0002167024213122204
193
+ 179886,754496569344,1.7952658557891845,465408.72168397903,119144632.75109863,0.00021578080486506224
194
+ 180826,758439215104,1.7959301233291627,468060.1989803314,119823410.93896484,0.00021500517323147506
195
+ 181901,762948091904,1.7965751028060912,471336.89985489845,120662246.362854,0.00021411580382846296
196
+ 182711,766345478144,1.7932391119003297,473834.4921145439,121301629.98132324,0.00021344402921386063
197
+ 183546,769847721984,1.790315465927124,476549.98883342743,121996797.14135742,0.0002127500920323655
198
+ 184471,773727453184,1.7923971509933472,479378.33332276344,122720853.33062744,0.00021197966998443007
199
+ 185281,777124839424,1.7929616165161133,481879.62176418304,123361183.17163086,0.00021130358800292015
200
+ 186351,781612744704,1.794197874069214,485144.32627534866,124196947.52648926,0.00021040848514530808
201
+ 187561,786687852544,1.7894897413253785,489017.726013422,125188537.85943604,0.0002093935472657904
202
+ 188376,790106210304,1.7925705671310426,491489.75262260437,125821376.67138672,0.00020870832668151706
203
+ 189496,794803830784,1.798021569252014,494918.69303560257,126699185.41711426,0.00020776463497895747
204
+ 190446,798788419584,1.7914582395553589,497918.52365231514,127467142.05499268,0.00020696235878858715
205
+ 191431,802919809024,1.7888238143920898,500912.22327923775,128233529.15948486,0.00020612878142856061
206
+ 192231,806275252224,1.7891856002807618,503363.70205020905,128861107.72485352,0.0002054505021078512
207
+ 193001,809504866304,1.7909438037872314,505660.291626215,129449034.65631104,0.00020479658269323409
208
+ 193816,812923224064,1.7878537321090697,508161.10489702225,130089242.8536377,0.0002041033294517547
209
+ 194731,816761012224,1.7863385152816773,511053.355697155,130829659.05847168,0.00020332368148956448
210
+ 195686,820766572544,1.7863201522827148,514147.6957974434,131621810.12414551,0.00020250846864655614
211
+ 196596,824583389184,1.7843420505523682,516835.26493406296,132309827.82312012,0.00020173027587588876
212
+ 197316,827603288064,1.7888860940933227,519109.3273601532,132891987.80419922,0.00020111363846808672
213
+ 198091,830853873664,1.7861195135116577,521508.52252459526,133506181.76629639,0.00020044897974003106
214
+ 199061,834922348544,1.7838082551956176,524697.4795041084,134322554.75305176,0.00019961578072980046
215
+ 200081,839200538624,1.7849241256713868,527931.8647477627,135150557.37542725,0.00019873811106663197
216
+ 201001,843059298304,1.781349549293518,530598.5689041615,135833233.63946533,0.0001979451917577535
217
+ 201926,846939029504,1.7849823999404908,533479.1805455685,136570670.21966553,0.000197146728169173
218
+ 202601,849770184704,1.786809048652649,535447.9412600994,137074672.96258545,0.00019656331278383732
219
+ 203616,854027403264,1.7845071172714233,538755.1341161728,137921314.33374023,0.0001956848573172465
220
+ 204476,857634504704,1.7818892192840576,541460.8675048351,138613982.0812378,0.0001949394791154191
221
+ 205661,862604754944,1.780834264755249,544882.3630354404,139489884.93707275,0.00019391084788367152
222
+ 206426,865813397504,1.784772605895996,547292.2951827049,140106827.56677246,0.00019324585446156561
223
+ 207411,869944786944,1.781447787284851,550311.2109003067,140879669.99047852,0.00019238855747971684
224
+ 208386,874034233344,1.7845117664337158,553355.1096127033,141658908.06085205,0.00019153884204570204
225
+ 209316,877934936064,1.7804460096359254,556255.9352133274,142401519.41461182,0.00019072731083724648
226
+ 210246,881835638784,1.7838315677642822,559155.422185421,143143788.07946777,0.00018991481920238584
227
+ 211266,886113828864,1.7828630161285401,562134.9864623547,143906556.5343628,0.00018902262672781944
228
+ 212491,891251851264,1.7827301454544067,565977.1395728588,144890147.73065186,0.0001879496849142015
229
+ 213266,894502436864,1.7800197172164918,568480.5009863377,145531008.25250244,0.00018727011047303677
230
+ 214001,897585250304,1.781924958229065,570723.8563010693,146105307.21307373,0.00018662508227862418
231
+ 214816,901003608064,1.7810442113876344,573380.5803165436,146785428.56103516,0.00018590924446471035
232
+ 215776,905030139904,1.7792480564117432,576595.4381833076,147608432.17492676,0.00018506527703721076
233
+ 217116,910650507264,1.783895535469055,580763.5647056103,148675472.56463623,0.00018388590251561254
234
+ 218206,915222298624,1.7796743202209473,584161.3940868378,149545316.88623047,0.00018292547611054033
235
+ 218821,917801795584,1.7835624265670775,586042.7060410976,150026932.746521,0.00018238316988572478
236
+ 219936,922478444544,1.777990803718567,589289.7597429752,150858178.49420166,0.000181399256689474
237
+ 220771,925980688384,1.7799182176589965,591183.597155571,151343000.87182617,0.00018066182383336127
238
+ 221776,930195963904,1.7843797159194947,597498.8848052025,152959714.51013184,0.0001797736476873979
239
+ 222601,933656264704,1.7795804595947267,599244.4550690651,153406580.49768066,0.00017904405831359327
240
+ 223381,936927821824,1.7775488567352296,600881.6357765198,153825698.75878906,0.00017835387552622706
241
+ 224351,940996296704,1.7769137907028199,602931.2270174026,154350394.11645508,0.000177495094249025
242
+ 225276,944876027904,1.7799413394927979,604898.2233688831,154853945.18243408,0.00017667567590251565
243
+ 226281,949091303424,1.7780797576904297,608879.9292657375,155873261.8920288,0.0001757848949637264
244
+ 227396,953767952384,1.7739339399337768,611322.3980209827,156498533.89337158,0.00017479606322012842
245
+ 228351,957773512704,1.776587553024292,613331.262953043,157012803.315979,0.00017394870519638062
246
+ 229076,960814383104,1.7716466903686523,614939.4162056446,157424490.54864502,0.00017330517584923655
247
+ 229956,964505370624,1.7750402116775512,639042.4843976498,163594876.00579834,0.00017252382531296462
248
+ 230836,968196358144,1.773681025505066,674079.9672315121,172564471.6112671,0.00017174221284221858
249
+ 231576,971300143104,1.7731093502044677,675813.0097255707,173008130.4897461,0.0001710847718641162
250
+ 232616,975662219264,1.7770291709899901,678184.0271470547,173615110.949646,0.00017016056517604738
251
+ 233746,980401782784,1.7675523900985717,683098.4393451214,174873200.47235107,0.00016915611922740936
252
+ 234641,984155684864,1.7734109878540039,685042.5715277195,175370898.3110962,0.00016836037684697658
253
+ 235651,988391931904,1.773057723045349,687278.392385006,175943268.45056152,0.00016746226174291223
254
+ 236816,993278296064,1.7715669631958009,689921.1887881756,176619824.32977295,0.00016642617993056774
255
+ 237641,996738596864,1.7745240354537963,691761.8118855953,177091023.8427124,0.00016569241415709257
256
+ 238351,999716552704,1.7686384201049805,693362.7359149456,177500860.39422607,0.00016506091924384236
257
+ 239566,1004812632064,1.772002272605896,695954.8275504112,178164435.85290527,0.0001639802794670686
258
+ 240602,1009157931008,1.7767112471840598,698570.652377367,178834087.00860596,0.00016305888129863888
259
+ 241592,1013310291968,1.769608917236328,700894.995667696,179429118.89093018,0.00016217847587540746
260
+ 242257,1016099504128,1.7703381299972534,702365.3212473392,179805522.23931885,0.00016158715880010277
261
+ 242857,1018616086528,1.7689974737167358,703739.399348259,180157286.2331543,0.00016105370013974607
262
+ 243817,1022642618368,1.7718166542053222,705748.6755046844,180671660.92919922,0.00016020028851926327
263
+ 244677,1026249719808,1.7722198677062988,707609.003256321,181147904.83361816,0.0001594359491718933
264
+ 245822,1031052197888,1.7759829998016357,710156.6984853745,181800114.81225586,0.0001584185811225325
265
+ 246987,1035938562048,1.7718148088455201,712665.8724341393,182442463.34313965,0.00015738382353447378
266
+ 247827,1039461777408,1.768600239753723,714449.5088384151,182899074.26263428,0.00015663800877518952
267
+ 248497,1042271961088,1.7677575302124025,715969.9635241032,183288310.6621704,0.00015604331565555185
268
+ 249382,1045983920128,1.7679042387008668,717901.4534947872,183782772.09466553,0.0001552580506540835
269
+ 250387,1050199195648,1.7747929763793946,720140.9932420254,184356094.2699585,0.0001543667312944308
270
+ 251297,1054016012288,1.764917149543762,722106.4530000687,184859251.96801758,0.00015356004587374628
271
+ 252247,1058000601088,1.7661123704910278,724152.5236961842,185383046.06622314,0.00015271836309693754
272
+ 253387,1062782107648,1.7647111511230469,726702.471143961,186035832.612854,0.00015170896949712187
273
+ 254092,1065739091968,1.7652067375183105,728205.9307692051,186420718.2769165,0.00015108509978745133
274
+ 254812,1068758990848,1.7635297060012818,729782.4905691147,186824317.58569336,0.00015044827887322754
275
+ 255752,1072701636608,1.764196171760559,731793.3384439945,187339094.6416626,0.0001496173645136878
276
+ 256607,1076287766528,1.7638698720932007,733637.4365136623,187811183.74749756,0.00014886210556142032
277
+ 257687,1080817614848,1.768958978652954,736014.2164382935,188419639.40820312,0.00014790882414672524
278
+ 258502,1084235972608,1.7669451904296876,737910.9490272999,188905202.95098877,0.00014719001774210483
279
+ 259262,1087423643648,1.7625267791748047,739466.6771183014,189303469.34228516,0.00014652017853222787
280
+ 260217,1091429203968,1.7691507577896117,741740.4932889938,189885566.28198242,0.00014567913603968918
281
+ 261152,1095350878208,1.7591209745407104,743739.9462983608,190397426.25238037,0.00014485644351225346
282
+ 262292,1100132384768,1.764429850578308,746338.3023200035,191062605.3939209,0.00014385442773345858
283
+ 263162,1103781429248,1.7621108627319335,748322.664481163,191570602.10717773,0.00014309051039163023
284
+ 263867,1106738413568,1.7602579402923584,749833.4018764496,191957350.8803711,0.00014247202489059418
285
+ 264607,1109842198528,1.762261848449707,751597.109572649,192408860.05059814,0.00014182332961354405
286
+ 265337,1112904040448,1.759526162147522,753215.5254647732,192823174.51898193,0.0001411839621141553
287
+ 266597,1118188863488,1.7672685623168944,756125.3316853046,193568084.911438,0.00014008168363943696
288
+ 267532,1122110537728,1.7621809148788452,758342.7242014408,194135737.39556885,0.00013926482643000782
289
+ 268487,1126116098048,1.7622956466674804,760522.285752058,194693705.15252686,0.0001384315110044554
290
+ 269417,1130016800768,1.762388858795166,762551.8313989639,195213268.83813477,0.00013762101298198104
291
+ 270407,1134169161728,1.7595157241821289,764804.6590254307,195789992.71051025,0.00013675936497747898
292
+ 271522,1138845810688,1.757354588508606,767161.2214336395,196393272.68701172,0.00013579036749433726
293
+ 272377,1142431940608,1.75795738697052,769135.4329416752,196898670.83306885,0.00013504837988875806
294
+ 273117,1145535725568,1.7606944990158082,770828.8185880184,197332177.5585327,0.0001344069605693221
295
+ 273932,1148954083328,1.7549466705322265,772728.0841300488,197818389.53729248,0.00013370136730372906
296
+ 274807,1152624099328,1.754970712661743,774835.183011055,198357806.85083008,0.00013294484233483672
297
+ 275477,1155434283008,1.7563565397262573,776427.785389185,198765513.05963135,0.0001323662872891873
298
+ 276527,1159838302208,1.7561344528198242,778740.9613273144,199357686.09979248,0.00013146086712367833
299
+ 277247,1162858201088,1.7567948341369628,780449.0009460449,199794944.2421875,0.00013084092643111944
300
+ 278457,1167933308928,1.7568131160736085,783327.161365509,200531753.3095703,0.00012980082829017192
301
+ 279207,1171079036928,1.7493878316879272,785064.701248169,200976563.51953125,0.00012915725528728217
302
+ 280067,1174686138368,1.7545626974105835,787161.4134166241,201513321.83465576,0.00012842037540394813
303
+ 280847,1177957695488,1.7537751245498656,788885.1290473938,201954593.0361328,0.00012775305367540568
304
+ 281792,1181921312768,1.7535089874267578,791144.1982910633,202532914.7625122,0.00012694588804151863
305
+ 282527,1185004126208,1.7483990144729615,792868.6627147198,202974377.65496826,0.00012631912250071764
306
+ 283242,1188003053568,1.7518246269226074,794551.7392299175,203405245.2428589,0.00012571027036756277
307
+ 284042,1191358496768,1.7504371070861817,796430.7740638256,203886278.16033936,0.00012503007019404322
308
+ 284962,1195217256448,1.7529449987411498,798542.8514752388,204426969.97766113,0.00012424921442288905
309
+ 285932,1199285731328,1.7503743505477904,800732.0254025459,204987398.50305176,0.00012342755508143455
310
+ 286977,1203668779008,1.753233289718628,803180.8929703236,205614308.60040283,0.00012254425382707268
311
+ 287987,1207905026048,1.7477283954620362,805582.5547001362,206229134.00323486,0.00012169245019322261
312
+ 289097,1212560703488,1.750057682991028,808215.335089922,206903125.78302002,0.00012075852282578126
313
+ 290688,1219233841152,1.746289751108955,812524.6454071999,208006309.22424316,0.00011942403216380626
314
+ 291853,1224120205312,1.7490476608276366,815008.9563155174,208642292.81677246,0.00011845002882182598
315
+ 292978,1228838797312,1.7491591882705688,817575.6542432308,209299367.4862671,0.00011751207057386637
316
+ 293878,1232613670912,1.7509082746505737,819695.9801375866,209842170.91522217,0.00011676357826218009
317
+ 294713,1236115914752,1.7504260921478272,821648.4782016277,210342010.4196167,0.00011607065971475095
318
+ 295719,1240335384576,1.7448712022680986,823744.3839178085,210878562.28295898,0.00011523780995048583
319
+ 296789,1244823289856,1.750373787879944,825984.0210280418,211451909.3831787,0.0001143543777288869
320
+ 297474,1247696388096,1.7485026979446412,827417.0756909847,211818771.3768921,0.00011379012721590698
321
+ 298299,1251156688896,1.7513857746124268,829165.2048549652,212266292.4428711,0.00011311194975860417
322
+ 299279,1255267106816,1.7491823244094848,831246.0725734234,212798994.5787964,0.00011230834934394807
323
+ 300344,1259734040576,1.7427535009384156,833399.7559521198,213350337.52374268,0.00011143753363285214
324
+ 301039,1262649081856,1.7455463981628419,834808.7789354324,213711047.4074707,0.00011087067832704633
325
+ 302119,1267178930176,1.7416390991210937,837000.7716414928,214272197.54022217,0.000109992062789388
326
+ 302754,1269842313216,1.744261622428894,838301.4644382,214605174.8961792,0.00010947677219519392
327
+ 303674,1273701072896,1.7468348407745362,840212.588075161,215094422.5472412,0.00010873192513827235
328
+ 304569,1277454974976,1.7426301002502442,842025.3971657753,215558501.67443848,0.0001080093061318621
329
+ 305629,1281900937216,1.7432089567184448,844223.7876865864,216121289.6477661,0.00010715603275457397
330
+ 306539,1285717753856,1.7474224805831908,846121.174690485,216607020.72076416,0.000106425752164796
331
+ 307359,1289157083136,1.7466583347320557,847824.3574724197,217043035.51293945,0.00010576950444374233
332
+ 308279,1293015842816,1.7465320491790772,849770.5021283627,217541248.54486084,0.00010503528028493747
333
+ 309319,1297377918976,1.7457301092147828,851883.0546424389,218082061.98846436,0.00010420793842058629
334
+ 310224,1301173764096,1.7416068077087403,853690.4648611546,218544759.00445557,0.00010349031799705699
335
+ 310979,1304340463616,1.7464453649520875,855328.2401285172,218964029.4729004,0.00010289331112289801
336
+ 312049,1308828368896,1.7403749656677245,857482.9606339931,219515637.92230225,0.00010204986028838903
337
+ 312794,1311953125376,1.7413122367858886,859020.4251036644,219909228.8265381,0.00010146444401470944
338
+ 313669,1315623141376,1.7418276071548462,860802.2398767471,220365373.40844727,0.00010077882325276732
339
+ 314359,1318517211136,1.741833634376526,862207.261920929,220725059.0517578,0.00010023967479355633
340
+ 315254,1322271113216,1.7439262866973877,864031.612282753,221192092.74438477,9.954233246389776e-05
341
+ 316439,1327241363456,1.7401941537857055,866466.0625932217,221815312.02386475,9.862254228210077e-05
342
+ 317594,1332085784576,1.7393305683135987,868843.8917312622,222424036.28320312,9.772992780199274e-05
343
+ 318789,1337097977856,1.735496621131897,871252.1925876141,223040561.3024292,9.681050141807646e-05
344
+ 319509,1340117876736,1.7347302961349487,872755.9427747726,223425521.3503418,9.625857637729496e-05
345
+ 320265,1343288770560,1.7467496991157532,874580.2731509209,223892549.92663574,9.568071982357651e-05
346
+ 321180,1347126558720,1.7449059057235718,876753.4169347286,224448874.73529053,9.498363215243444e-05
347
+ 321800,1349727027200,1.7405218362808228,878178.1442410946,224813604.9257202,9.451273217564449e-05
348
+ 322715,1353564815360,1.7354085969924926,880189.6319646835,225328545.78295898,9.381993004353717e-05
349
+ 323880,1358451179520,1.7389711236953735,882752.0865805149,225984534.16461182,9.294157644035295e-05
350
+ 324695,1361869537280,1.7336279153823853,884600.4706878662,226457720.49609375,9.232963202521205e-05
351
+ 325655,1365896069120,1.7351105260848998,886714.7610874176,226998978.8383789,9.161149500869215e-05
352
+ 326905,1371138949120,1.7359595346450805,889553.2458705902,227725630.9428711,9.068083454621956e-05
353
+ 327810,1374934794240,1.7329195594787599,891570.9603435993,228242165.84796143,9.00101731531322e-05
354
+ 328840,1379254927360,1.7390318965911866,893916.9914896488,228842749.8213501,8.92501266207546e-05
355
+ 330425,1385902899200,1.7353940725326538,897621.8574626446,229791195.510437,8.808737038634717e-05
356
+ 331335,1389719715840,1.7316031885147094,899737.9237539768,230332908.48101807,8.74235774972476e-05
357
+ 332180,1393263902720,1.7348940515518187,901687.4612410069,230831990.07769775,8.680969040142372e-05
358
+ 333435,1398527754240,1.7322529554367065,904602.0812029839,231578132.78796387,8.590242214268073e-05
359
+ 334440,1402743029760,1.7298837900161743,906809.8383600712,232143318.62017822,8.517977403244004e-05
360
+ 335016,1405158948864,1.7256827354431152,908038.849224329,232457945.40142822,8.476718357997015e-05
361
+ 335931,1408996737024,1.7300648736953734,909922.6999692917,232940211.19213867,8.411413728026673e-05
362
+ 336606,1411827892224,1.7293842363357543,911300.830876112,233293012.70428467,8.363425877178088e-05
363
+ 337361,1414994591744,1.7288749599456787,912929.468590498,233709943.95916748,8.30994249554351e-05
364
+ 338311,1418979180544,1.7297750091552735,914871.997964859,234207231.4790039,8.242932381108403e-05
365
+ 339316,1423194456064,1.7286423635482788,917048.3813505173,234764385.62573242,8.172395610017702e-05
366
+ 340161,1426738642944,1.7277494335174561,918803.4824960232,235213691.51898193,8.113370859064162e-05
367
+ 341256,1431331405824,1.727659764289856,921161.3741235733,235817311.77563477,8.037270163185894e-05
368
+ 341956,1434267418624,1.726815447807312,922619.1768329144,236190509.26922607,7.98885157564655e-05
369
+ 342631,1437098573824,1.7283334350585937,924017.1923296452,236548401.23638916,7.942333468236029e-05
370
+ 343641,1441334820864,1.7262948656082153,926179.4275717735,237101933.45837402,7.873045979067683e-05
371
+ 344671,1445654953984,1.723881149291992,928277.1951835155,237638961.96697998,7.802779146004468e-05
372
+ 345736,1450121887744,1.7232005310058593,930507.7530829906,238209984.7892456,7.73054562159814e-05
373
+ 346886,1454945337344,1.7255478954315187,932878.4606127739,238816885.91687012,7.653032662346959e-05
374
+ 347916,1459265470464,1.7246453189849853,935008.2810490131,239362119.94854736,7.584038394270465e-05
375
+ 348811,1463019372544,1.726148428916931,936869.9410157204,239838704.9000244,7.524420652771369e-05
376
+ 349646,1466521616384,1.7213160181045533,938576.3196783066,240275537.83764648,7.469081174349412e-05
377
+ 350561,1470359404544,1.7229260206222534,940519.2642490864,240772931.6477661,7.408753299387172e-05
378
+ 351531,1474427879424,1.7213821077346803,942564.1647593975,241296426.17840576,7.345160702243447e-05
379
+ 352506,1478517325824,1.7217609167099,944661.2691597939,241833284.90490723,7.281616126419976e-05
380
+ 353286,1481788882944,1.7240455532073975,946261.5434937477,242242955.1343994,7.231054769363254e-05
381
+ 354296,1486025129984,1.721031813621521,948370.1250343323,242782752.00878906,7.165947317844257e-05
382
+ 355311,1490282348544,1.722795114517212,950490.4979889393,243325567.48516846,7.100934453774244e-05
383
+ 356241,1494183051264,1.7186929035186767,952315.2354710102,243792700.2805786,7.041735079837963e-05
384
+ 356996,1497349750784,1.7216988754272462,953859.0474669933,244187916.1515503,6.993936403887346e-05
385
+ 357981,1501481140224,1.7183150625228882,955918.729688406,244715194.80023193,6.931929965503514e-05
386
+ 358930,1505461534720,1.7198513889312743,958704.589379549,245428374.88116455,6.872571248095483e-05
metadata/training_logs/ConvergenceCurve_phase3-annealing.csv ADDED
@@ -0,0 +1,401 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ training_steps,training_tokens,training_loss,walltime,gputime,learning_rate
2
+ 340,1426063360,1.618240556716919,805.9963190555573,206335.05767822266,6.852795922895893e-05
3
+ 615,2579496960,1.6049977731704712,1480.500453710556,379008.11614990234,6.836811371613294e-05
4
+ 990,4152360960,1.594797191619873,2333.9633750915527,597494.6240234375,6.815014785388485e-05
5
+ 1255,5263851520,1.5912671709060668,2961.687971353531,758192.1206665039,6.79961231071502e-05
6
+ 1565,6564085760,1.5901156234741212,3699.9308836460114,947182.3062133789,6.781593401683494e-05
7
+ 1810,7591690240,1.586198697090149,4255.91148018837,1089513.3389282227,6.767352897441015e-05
8
+ 2150,9017753600,1.5839121961593627,5024.551464319229,1286285.1748657227,6.747590668965131e-05
9
+ 2500,10485760000,1.5820579528808594,5818.159787654877,1489448.9056396484,6.727247091475874e-05
10
+ 2765,11597250560,1.5825859642028808,6431.716231107712,1646519.3551635742,6.711844616802409e-05
11
+ 3160,13254000640,1.578509578704834,7345.451099872589,1880435.4815673828,6.688885332550853e-05
12
+ 3480,14596177920,1.5791614484786987,8092.022440433502,2071557.7447509766,6.670285802101716e-05
13
+ 3775,15833497600,1.5744779205322266,8767.39313364029,2244452.642211914,6.653139280388132e-05
14
+ 4060,17028874240,1.5753804922103882,9447.192639112473,2418481.315612793,6.636573380092159e-05
15
+ 4310,18077450240,1.5748329401016234,10027.022123336792,2566917.6635742188,6.622042565140873e-05
16
+ 4550,19084083200,1.5730882167816163,10576.379052400589,2707553.037414551,6.608092371607199e-05
17
+ 4805,20153630720,1.5715075159072875,11158.414714336395,2856554.166870117,6.593271245947108e-05
18
+ 5105,21411921920,1.569187421798706,11862.036151885986,3036681.2548828125,6.575833685928956e-05
19
+ 5425,22754099200,1.5699743795394898,12592.760034799576,3223746.5689086914,6.557234155479819e-05
20
+ 5650,23697817600,1.5652864265441895,13133.071051836014,3362066.1892700195,6.544155621668324e-05
21
+ 6035,25312624640,1.5638192701339722,14030.22176027298,3591736.770629883,6.521777686430141e-05
22
+ 6330,26549944320,1.5681873321533204,14711.906752586365,3766248.1286621094,6.504631164716557e-05
23
+ 6645,27871150080,1.5627027702331544,15456.196798086166,3956786.3803100586,6.486321944976225e-05
24
+ 6910,28982640640,1.5610841083526612,16066.988289356232,4113149.0020751953,6.47091947030276e-05
25
+ 7165,30052188160,1.5615871906280518,16654.42129969597,4263531.852722168,6.456097617046908e-05
26
+ 7425,31142707200,1.5645559978485108,17265.00631093979,4419841.615600586,6.440985453082249e-05
27
+ 7785,32652656640,1.5607586336135864,18104.521532058716,4634757.512207031,6.420060526579618e-05
28
+ 8070,33848033280,1.5604530096054077,18757.52961397171,4801927.581176758,6.403495353879407e-05
29
+ 8295,34791751680,1.5613171815872193,19274.202206134796,4934195.764770508,6.390416820067912e-05
30
+ 8535,35798384640,1.5578596353530885,19813.71232509613,5072310.355224609,6.37646735413e-05
31
+ 8795,36888903680,1.5551342582702636,20414.72296833992,5226169.0798950195,6.361355190165341e-05
32
+ 9025,37853593600,1.5575386190414429,20940.55059313774,5360780.951843262,6.34798634564504e-05
33
+ 9400,39426457600,1.5554211330413819,21812.109808921814,5583900.111083984,6.326189759420231e-05
34
+ 9715,40747663360,1.556917018890381,22542.035999298096,5770761.2158203125,6.3078805396799e-05
35
+ 10070,42236641280,1.5582432985305785,23352.388293743134,5978211.403198242,6.287246651481837e-05
36
+ 10295,43180359680,1.5568170738220215,23872.827875614166,6111443.936157227,6.274168845266104e-05
37
+ 10605,44480593920,1.5549594163894653,24589.534301757812,6294920.78125,6.256149936234578e-05
38
+ 10930,45843742720,1.5545053482055664,25358.808262348175,6491854.915161133,6.237259367480874e-05
39
+ 11215,47039119360,1.550887818336487,26025.84851026535,6662617.21862793,6.220694194780663e-05
40
+ 11555,48465182720,1.5518133783340453,26791.96462750435,6858742.944641113,6.200931966304779e-05
41
+ 11890,49870274560,1.5535324907302857,27571.72452569008,7058361.47857666,6.181460048537701e-05
42
+ 12175,51065651200,1.550883536338806,28212.412959337234,7222377.717590332,6.16489487583749e-05
43
+ 12425,52114227200,1.5485265445709229,28782.546991109848,7368332.029724121,6.150364060886204e-05
44
+ 12730,53393489920,1.5510961532592773,29507.32570052147,7553875.379333496,6.132636190159246e-05
45
+ 13015,54588866560,1.549284954071045,30158.78279209137,7720648.394775391,6.116070289863274e-05
46
+ 13415,56266588160,1.552486686706543,31101.609414815903,7962012.010192871,6.092820694902912e-05
47
+ 13805,57902366720,1.552199697494507,31992.497676610947,8190079.405212402,6.070152448955923e-05
48
+ 14180,59475230720,1.5470599460601806,32886.17706298828,8418861.328125,6.048355498933233e-05
49
+ 14450,60607692800,1.5489162635803222,33514.932136535645,8579822.626953125,6.032661985955201e-05
50
+ 14695,61635297280,1.5477478408813476,34075.356810092926,8723291.343383789,6.018421481712721e-05
51
+ 15000,62914560000,1.543528437614441,34807.71875858307,8910776.002197266,6.0006936109857634e-05
52
+ 15305,64193822720,1.5468650436401368,35514.63099241257,9091745.534057617,5.9829657402588055e-05
53
+ 15680,65766686720,1.540996379852295,36391.95647358894,9316340.85723877,5.961169154033996e-05
54
+ 15965,66962063360,1.5399002981185914,37070.284098386765,9489992.729187012,5.944603981333785e-05
55
+ 16300,68367155200,1.5444617700576782,37853.563311100006,9690512.207641602,5.925132063566707e-05
56
+ 16670,69919047680,1.5386622858047485,38695.66263437271,9906089.634399414,5.9036261518485844e-05
57
+ 16910,70925680640,1.5419238090515137,39262.56024956703,10051215.42388916,5.889676322112791e-05
58
+ 17165,71995228160,1.5399140405654907,39862.66890287399,10204843.239135742,5.874854832654819e-05
59
+ 17425,73085747200,1.5421667003631592,40465.11421442032,10359069.238891602,5.859742304892279e-05
60
+ 17690,74197237760,1.5381574249267578,41070.201156139374,10513971.49597168,5.8443394664209336e-05
61
+ 17945,75266785280,1.5403591775894165,41660.75303196907,10665152.776184082,5.8295176131650805e-05
62
+ 18275,76650905600,1.5373179054260253,42444.894955158234,10865893.108520508,5.81033673370257e-05
63
+ 18510,77636567040,1.5400733470916748,42997.210401296616,11007285.862731934,5.7966775784734637e-05
64
+ 18750,78643200000,1.5406368732452393,43574.14296269417,11154980.598449707,5.7827277487376705e-05
65
+ 19035,79838576640,1.5359001493453979,44288.694413900375,11337905.769958496,5.7661622122395784e-05
66
+ 19325,81054924800,1.5356152725219727,44993.05548071861,11518222.203063965,5.74930636503268e-05
67
+ 19595,82187386880,1.537904191017151,45617.38076686859,11678049.47631836,5.7336124882567674e-05
68
+ 19770,82921390080,1.534038815498352,46021.857204437256,11781595.444335938,5.723440699512139e-05
69
+ 20040,84053852160,1.5376662874221803,46687.448335886,11951986.773986816,5.707747186534107e-05
70
+ 20280,85060485120,1.5351179456710815,47294.76152420044,12107458.950195312,5.6937973567983136e-05
71
+ 20535,86130032640,1.5340012741088866,47921.1394572258,12267811.701049805,5.678975867340341e-05
72
+ 20860,87493181440,1.5338728380203248,48772.13713765144,12485667.10723877,5.660085298586637e-05
73
+ 21095,88478842880,1.5385234260559082,49363.669286966324,12637099.337463379,5.64642614335753e-05
74
+ 21370,89632276480,1.532801251411438,50073.3399438858,12818775.025634766,5.6304419558728114e-05
75
+ 21645,90785710080,1.5361132955551147,50762.75538563728,12995265.378723145,5.6144577683880925e-05
76
+ 22020,92358574080,1.531789288520813,51738.95875930786,13245173.442382812,5.592661182163283e-05
77
+ 22385,93889495040,1.5336677026748657,52670.29964208603,13483596.708374023,5.571445944951847e-05
78
+ 22695,95189729280,1.5282061100006104,53473.869824409485,13689310.675048828,5.5534273997182027e-05
79
+ 23015,96531906560,1.5331871032714843,54302.397018671036,13901413.636779785,5.534827505471185e-05
80
+ 23305,97748254720,1.5322805833816528,55052.88818240166,14093539.374694824,5.517971658264287e-05
81
+ 23605,99006545920,1.5294403648376464,55848.05881381035,14297103.05633545,5.500534098246135e-05
82
+ 23870,100118036480,1.531037163734436,56520.91497302055,14469354.233093262,5.485131259774789e-05
83
+ 24135,101229527040,1.5261157083511352,57187.208659648895,14639925.416870117,5.4697284213034436e-05
84
+ 24385,102278103040,1.5261563014984132,57812.448143959045,14799986.724853516,5.455197242554277e-05
85
+ 24705,103620280320,1.5302351379394532,58628.562000989914,15008911.872253418,5.4365973483072594e-05
86
+ 24955,104668856320,1.529397587776184,59267.39612221718,15172453.407287598,5.4220665333559737e-05
87
+ 25220,105780346880,1.5290697193145752,59945.24328708649,15345982.28149414,5.4066633310867473e-05
88
+ 25580,107290296320,1.526914210319519,60849.63791370392,15577507.305908203,5.385738768381998e-05
89
+ 25895,108611502080,1.524157953262329,61658.11358332634,15784477.077331543,5.367429548641667e-05
90
+ 26235,110037565440,1.5237834024429322,62533.954092264175,16008692.247619629,5.347667320165783e-05
91
+ 26555,111379742720,1.5251441431045532,63354.29300546646,16218699.009399414,5.3290674259187654e-05
92
+ 26905,112847749120,1.5265145874023438,64249.2104947567,16447797.886657715,5.308724212227389e-05
93
+ 27185,114022154240,1.5199985694885254,64974.279589653015,16633415.574951172,5.292449350235984e-05
94
+ 27475,115238502400,1.527224998474121,65715.40770769119,16823144.373168945,5.275593139231205e-05
95
+ 27760,116433879040,1.5214627742767335,66476.47451162338,17017977.474975586,5.2590279665309936e-05
96
+ 28075,117755084800,1.525670132637024,67291.38590097427,17226594.790649414,5.2407187467906624e-05
97
+ 28370,118992404480,1.5220741653442382,68019.16993141174,17412907.502441406,5.223571861279197e-05
98
+ 28775,120691097600,1.5192509555816651,69026.66728496552,17670826.824951172,5.200031591812149e-05
99
+ 29050,121844531200,1.5173545169830323,69711.20947599411,17846069.625854492,5.18404740432743e-05
100
+ 29335,123039907840,1.5229442358016967,70404.63313817978,18023586.083374023,5.167481867829338e-05
101
+ 29630,124277227520,1.5194816541671754,71168.1383061409,18219043.40637207,5.150335346115753e-05
102
+ 29885,125346775040,1.5225177240371703,71798.30358982086,18380365.71899414,5.1355134928599e-05
103
+ 30210,126709923840,1.521646456718445,72616.72042250633,18589880.42816162,5.116623287904076e-05
104
+ 30465,127779471360,1.5177456331253052,73263.86911273003,18755550.492858887,5.101801434648223e-05
105
+ 30735,128911933440,1.5173807764053344,73955.50183176994,18932608.468933105,5.086107921670191e-05
106
+ 31050,130233139200,1.5206219005584716,74767.35306620598,19140442.38494873,5.06779870192986e-05
107
+ 31415,131764060160,1.5155780935287475,75706.64231777191,19380900.43334961,5.046583464718424e-05
108
+ 31665,132812636160,1.5219171285629272,76349.90894556046,19545576.690063477,5.0320522859692574e-05
109
+ 32045,134406471680,1.5170358562469481,77302.66745686531,19789482.86895752,5.0099650252377614e-05
110
+ 32300,135476019200,1.5156394338607788,77972.0146214962,19960835.743103027,4.995143535779789e-05
111
+ 32615,136797224960,1.5168628215789794,78756.26611709595,20161604.125976562,4.976834316039458e-05
112
+ 32940,138160373760,1.5172155475616456,79585.85103392601,20373977.86468506,4.957944111083634e-05
113
+ 33240,139418664960,1.5123344993591308,80379.44974303246,20577139.13421631,4.940506551065482e-05
114
+ 33580,140844728320,1.5176030588150025,81217.35864281654,20791643.812561035,4.9207443225895986e-05
115
+ 33890,142144962560,1.5181758880615235,82003.55335474014,20992909.658813477,4.902725777355954e-05
116
+ 34165,143298396160,1.5155006074905395,82727.45544552803,21178228.594055176,4.886741589871235e-05
117
+ 34475,144598630400,1.5112392854690553,83544.65241909027,21387431.01928711,4.8687230446375906e-05
118
+ 34820,146045665280,1.5120015907287598,84422.05125689507,21612045.121765137,4.8486701416550204e-05
119
+ 35125,147324928000,1.511203556060791,85196.82748556137,21810387.83630371,4.8309422709280625e-05
120
+ 35400,148478361600,1.511547703742981,85872.22816109657,21983290.409240723,4.8149580834433436e-05
121
+ 35700,149736652800,1.513823585510254,86634.15090918541,22178342.632751465,4.7975208872230724e-05
122
+ 36005,151015915520,1.5114430284500122,87417.37316012383,22378847.5289917,4.7797930164961144e-05
123
+ 36270,152127406080,1.5147535657882691,88070.50267338753,22546048.684387207,4.764390178024769e-05
124
+ 36615,153574440960,1.5105689668655395,88966.28969430923,22775370.161743164,4.7443372750421986e-05
125
+ 36900,154769817600,1.51490469455719,89686.37483000755,22959711.956481934,4.7277717385441065e-05
126
+ 37200,156028108800,1.5133596897125243,90450.27981996536,23155271.633911133,4.710334542323835e-05
127
+ 37465,157139599360,1.5079569578170777,91108.37686300278,23323744.47692871,4.6949317038524896e-05
128
+ 37780,158460805120,1.5125086879730225,91913.1192946434,23529758.53942871,4.6766224841121584e-05
129
+ 38110,159844925440,1.50558678150177,92761.00912809372,23746818.336791992,4.6574412408517674e-05
130
+ 38385,160998359040,1.51372416973114,93450.92206478119,23923436.048583984,4.6414570533670485e-05
131
+ 38700,162319564800,1.5078394937515258,94224.86657977104,24121565.844421387,4.623148197424598e-05
132
+ 38970,163452026880,1.506821026802063,94925.99536538124,24301054.813537598,4.607454320648685e-05
133
+ 39270,164710318080,1.510329613685608,95708.0318236351,24501256.146850586,4.590017124428414e-05
134
+ 39580,166010552320,1.5082668447494507,96510.14937281609,24706598.239440918,4.571998579194769e-05
135
+ 39820,167017185280,1.5053207445144654,97089.1982126236,24854834.74243164,4.558048749458976e-05
136
+ 40085,168128675840,1.5021627807617188,97724.10911917686,25017371.934509277,4.5426459109876305e-05
137
+ 40395,169428910080,1.5078684282302857,98467.72787332535,25207738.33557129,4.524627365753986e-05
138
+ 40650,170498457600,1.5049097061157226,99065.08206963539,25360661.00982666,4.509805512498133e-05
139
+ 40990,171924520960,1.504285216331482,99840.21076202393,25559093.955078125,4.490043284022249e-05
140
+ 41225,172910182400,1.506738648414612,100397.13245034218,25701665.907287598,4.476384128793143e-05
141
+ 41555,174294302720,1.5037948179244995,101157.30819225311,25896270.897216797,4.4572032493306324e-05
142
+ 41810,175363850240,1.507575240135193,101747.4647963047,26047350.987854004,4.442381396074779e-05
143
+ 42115,176643112960,1.5017842960357666,102464.62705016136,26230944.52484131,4.4246535253478214e-05
144
+ 42395,177817518080,1.5062606859207153,103136.38542175293,26402914.66796875,4.408378663356416e-05
145
+ 42680,179012894720,1.5022754383087158,103820.6661593914,26578090.5368042,4.3918134906562045e-05
146
+ 43035,180501872640,1.5056888008117675,104653.6878824234,26791344.09790039,4.371179238660261e-05
147
+ 43375,181927936000,1.5049325942993164,105455.63975095749,26996643.776245117,4.3514170101843774e-05
148
+ 43705,183312056320,1.5028763580322266,106236.37662887573,27196512.416992188,4.332236130721867e-05
149
+ 43965,184402575360,1.5004971170425414,106841.67947530746,27351469.94567871,4.3171236029593274e-05
150
+ 44300,185807667200,1.5000527667999268,107599.03004646301,27545351.69189453,4.2976520489901304e-05
151
+ 44635,187212759040,1.5022150135040284,108396.13827347755,27749411.398010254,4.2781804950209334e-05
152
+ 44880,188240363520,1.5062885856628419,108970.39048075676,27896419.96307373,4.2639399907784536e-05
153
+ 45170,189456711680,1.5018709230422973,109648.80755186081,28070094.733276367,4.247083779773675e-05
154
+ 45580,191176376320,1.4989476108551025,110604.36952710152,28314718.59893799,4.22325283579994e-05
155
+ 45850,192308838400,1.493067693710327,111237.1611392498,28476713.25164795,4.207559322821908e-05
156
+ 46165,193630044160,1.4996389389038085,111963.59861969948,28662681.246643066,4.1892501030815765e-05
157
+ 46435,194762506240,1.500433030128479,112603.90734314919,28826600.27984619,4.173556590103544e-05
158
+ 46650,195664281600,1.4946138525009156,113108.95254850388,28955891.852416992,4.1610597691033036e-05
159
+ 46960,196964515840,1.4971131420135497,113825.1804459095,29139246.194152832,4.143041223869659e-05
160
+ 47215,198034063360,1.4937334489822387,114435.3586423397,29295451.812438965,4.1282197344116867e-05
161
+ 47470,199103610880,1.4962233591079712,115072.24508047104,29458494.740600586,4.1133978811558336e-05
162
+ 47740,200236072960,1.4953879356384276,115708.65568161011,29621415.854492188,4.0977043681778014e-05
163
+ 48035,201473392640,1.4945304012298584,116384.64575529099,29794469.313354492,4.080557846464217e-05
164
+ 48260,202417111040,1.4929394960403441,116917.8391110897,29930966.812438965,4.067479676450603e-05
165
+ 48540,203591516160,1.495974998474121,117569.86111283302,30097884.444885254,4.051205178257078e-05
166
+ 48865,204954664960,1.4918129301071168,118329.11504745483,30292253.452148438,4.0323146095033735e-05
167
+ 49080,205856440320,1.4982340002059937,118833.6501467228,30421414.437561035,4.019817788503133e-05
168
+ 49370,207072788480,1.5003968715667724,119512.44303226471,30595185.416259766,4.002961941296235e-05
169
+ 49690,208414965760,1.4929927015304565,120253.42932701111,30784877.907714844,3.984362047049217e-05
170
+ 50005,209736171520,1.4936941194534301,120972.4400138855,30968944.643554688,3.966052827308886e-05
171
+ 50300,210973491200,1.4882380294799804,121647.13416337967,31141666.345825195,3.948906305595301e-05
172
+ 50550,212022067200,1.486804165840149,122218.50893497467,31287938.287353516,3.934375126846135e-05
173
+ 50810,213112586240,1.4881820821762084,122820.96964716911,31442168.229675293,3.919262962881476e-05
174
+ 51100,214328934400,1.4913074493408203,123471.17196083069,31608620.021972656,3.902406751876697e-05
175
+ 51335,215314595840,1.498164072036743,124019.37543749809,31748960.11199951,3.8887475966475904e-05
176
+ 51665,216698716160,1.4910090827941895,124821.46028637886,31954293.83331299,3.86956671718508e-05
177
+ 51950,217894092800,1.4903889608383178,125483.5426557064,32123786.91986084,3.853001180686988e-05
178
+ 52240,219110440960,1.496640019416809,126171.77869081497,32299975.344848633,3.836144969682209e-05
179
+ 52575,220515532800,1.494093623161316,126951.69672012329,32499634.360351562,3.816673415713012e-05
180
+ 52870,221752852480,1.4892810773849487,127615.13600826263,32669474.818115234,3.7995268939994276e-05
181
+ 53160,222969200640,1.4859894609451294,128297.73133397102,32844219.221496582,3.782670682994649e-05
182
+ 53375,223870976000,1.4920428323745727,128778.67433786392,32967340.630493164,3.770174225792289e-05
183
+ 53640,224982466560,1.490599317550659,129393.81948709488,33124817.78869629,3.7547710235230625e-05
184
+ 53960,226324643840,1.4861323928833008,130156.15509748459,33319975.704956055,3.7361714930739254e-05
185
+ 54300,227750707200,1.4913449001312256,130951.43420100212,33523567.155456543,3.716409264598042e-05
186
+ 54595,228988026880,1.4833179426193237,131635.60251832008,33698714.24468994,3.6992623790865764e-05
187
+ 54850,230057574400,1.487194871902466,132223.70856165886,33849269.39178467,3.684440889628604e-05
188
+ 55185,231462666240,1.491267008781433,133005.1627588272,34049321.666259766,3.6649689718615264e-05
189
+ 55465,232637071360,1.4909626865386962,133658.57569098473,34216595.37689209,3.648694109870121e-05
190
+ 55750,233832448000,1.4853796434402466,134339.60628509521,34390939.208984375,3.6321289371699095e-05
191
+ 56005,234901995520,1.4857091856002809,134944.86699581146,34545885.950927734,3.6173070839140564e-05
192
+ 56260,235971543040,1.483737931251526,135523.6685371399,34694059.14550781,3.602485594456084e-05
193
+ 56515,237041090560,1.4861033582687377,136111.21580958366,34844471.24725342,3.587663741200231e-05
194
+ 56845,238425210880,1.4830087089538575,136868.66960287094,35038379.41833496,3.568482861737721e-05
195
+ 57135,239641559040,1.4836278200149535,137566.16293907166,35216937.712402344,3.551626650732942e-05
196
+ 57470,241046650880,1.485690279006958,138331.76188111305,35412931.04156494,3.532155096763745e-05
197
+ 57760,242262999040,1.4853268766403198,138988.45338225365,35581044.06585693,3.515298885758966e-05
198
+ 58205,244129464320,1.4833063077926636,140067.45882749557,35857269.45983887,3.4894335840363055e-05
199
+ 58445,245136097280,1.4823443174362183,140625.04994630814,36000012.78625488,3.4754837543005124e-05
200
+ 58750,246415360000,1.4824813842773437,141325.74165940285,36179389.86480713,3.4577558835735545e-05
201
+ 59070,247757537280,1.4827831983566284,142058.24861884117,36366911.64642334,3.4391563531244174e-05
202
+ 59365,248994856960,1.4806864595413207,142746.6637802124,36543145.927734375,3.422009467612952e-05
203
+ 59645,250169262080,1.4780278778076172,143398.50452661514,36710017.15881348,3.4057346056215465e-05
204
+ 59870,251112980480,1.4825284004211425,143913.37279200554,36841823.43475342,3.392656799405813e-05
205
+ 60195,252476129280,1.4798415756225587,144675.52619338036,37036934.70550537,3.373766230652109e-05
206
+ 60485,253692477440,1.4777485179901122,145348.05514454842,37209102.117004395,3.356910383445211e-05
207
+ 60780,254929797120,1.4796476650238037,146030.58737277985,37383830.36743164,3.3397634979337454e-05
208
+ 61155,256502661120,1.480228796005249,146908.87734293938,37608672.59979248,3.317966911708936e-05
209
+ 61455,257760952320,1.4823005390167237,147605.4583489895,37786997.33734131,3.300529715488665e-05
210
+ 61695,258767585280,1.4817911291122436,148163.06012272835,37929743.39141846,3.2865798857528716e-05
211
+ 61990,260004904960,1.4828647470474243,148848.27455759048,38105158.286743164,3.269433364039287e-05
212
+ 62255,261116395520,1.4760107707977295,149463.70156526566,38262707.60070801,3.2540305255679414e-05
213
+ 62505,262164971520,1.4802721977233886,150039.92844581604,38410221.682128906,3.239499346818775e-05
214
+ 62750,263192576000,1.4781893348693849,150612.27514147758,38556742.43621826,3.225258842576295e-05
215
+ 63040,264408924160,1.4819868993759155,151304.97952342033,38734074.757995605,3.2084026315715164e-05
216
+ 63440,266086645760,1.4778487586975098,152211.1390864849,38966051.60614014,3.185153036611155e-05
217
+ 63675,267072307200,1.4757684564590454,152758.44339370728,39106161.50878906,3.171493881382048e-05
218
+ 64055,268666142720,1.4742608451843262,153643.5551381111,39332750.115356445,3.149406620650552e-05
219
+ 64430,270239006720,1.4781750535964966,154527.9770743847,39559162.13104248,3.127610034425743e-05
220
+ 64750,271581184000,1.4749154949188232,155266.63118600845,39748257.583618164,3.109010140178725e-05
221
+ 65105,273070161920,1.4730145406723023,156085.60028910637,39957913.67401123,3.0883762519806623e-05
222
+ 65445,274496225280,1.4764969491958617,156891.59435510635,40164248.15490723,3.068614023504779e-05
223
+ 65695,275544801280,1.4745435762405394,157459.66235876083,40309673.56384277,3.054082844755612e-05
224
+ 66015,276886978560,1.4767353296279908,158198.5747241974,40498835.12939453,3.0354829505085945e-05
225
+ 66315,278145269760,1.4752719068527222,158901.02135300636,40678661.46636963,3.0180457542883232e-05
226
+ 66710,279802019840,1.473205132484436,159820.03469586372,40913928.88214111,2.9950866519357078e-05
227
+ 66995,280997396480,1.4723931550979614,160476.88212037086,41082081.82281494,2.9785211154376157e-05
228
+ 67295,282255687680,1.47007230758667,161191.35992765427,41264988.14147949,2.9610839192173444e-05
229
+ 67540,283283292160,1.4693548011779785,161760.2142548561,41410614.849243164,2.9468434149748646e-05
230
+ 67955,285023928320,1.4752857398986816,162760.50145626068,41666688.372802734,2.922721796494443e-05
231
+ 68270,286345134080,1.4734775400161744,163467.50890016556,41847682.27844238,2.904412758653052e-05
232
+ 68515,287372738560,1.4698681640625,164039.26407814026,41994051.604003906,2.8901722544105724e-05
233
+ 68795,288547143680,1.470857663154602,164711.34090185165,42166103.27087402,2.873897392419167e-05
234
+ 69075,289721548800,1.4690834808349609,165361.93133115768,42332654.42077637,2.8576227123267017e-05
235
+ 69370,290958868480,1.4690316343307495,166044.55415010452,42507405.86242676,2.8404760087141767e-05
236
+ 69680,292259102720,1.4698637628555298,166765.3598856926,42691932.130737305,2.822457463480532e-05
237
+ 70015,293664194560,1.4656069946289063,167535.41150689125,42889065.34576416,2.8029859095113352e-05
238
+ 70295,294838599680,1.4658060693740844,168203.70962262154,43060149.66339111,2.7867110475199297e-05
239
+ 70615,296180776960,1.4710540628433229,168979.6358883381,43258786.78741455,2.7681113351718523e-05
240
+ 70955,297606840320,1.469628415107727,169777.67864346504,43463085.73272705,2.7483489247970283e-05
241
+ 71240,298802216960,1.4723303127288818,170448.73286485672,43634875.61340332,2.7317835701978765e-05
242
+ 71635,300458967040,1.4629393482208253,171377.95411467552,43872756.25335693,2.708824467845261e-05
243
+ 71850,301360742400,1.468685245513916,171882.100212574,44001817.654418945,2.6963278287439607e-05
244
+ 72165,302681948160,1.469798617362976,172615.52517652512,44189574.44519043,2.6780186090036295e-05
245
+ 72395,303646638080,1.4712815189361572,173153.7472462654,44327359.295043945,2.6646499463822693e-05
246
+ 72645,304695214080,1.464143590927124,173731.09820842743,44475161.14135742,2.6501189495320432e-05
247
+ 72915,305827676160,1.4653117704391478,174352.08979010582,44634134.98626709,2.634425436554011e-05
248
+ 73215,307085967360,1.4687677574157716,175055.78487992287,44814280.929260254,2.6169880584347993e-05
249
+ 73420,307945799680,1.4661717796325684,175527.70881414413,44935093.4564209,2.6050725864479318e-05
250
+ 73750,309329920000,1.4686805772781373,176280.46760320663,45127799.7064209,2.585891525086481e-05
251
+ 74060,310630154240,1.4662387561798096,176974.81370449066,45305552.30834961,2.567873161751777e-05
252
+ 74405,312077189120,1.4684185075759888,177774.08547639847,45510165.88195801,2.5478202587692067e-05
253
+ 74660,313146736640,1.470201678276062,178373.23720812798,45663548.72528076,2.532998587412294e-05
254
+ 74935,314300170240,1.4661515903472901,179018.95270824432,45828851.89331055,2.517014399927575e-05
255
+ 75245,315600404480,1.4673150062561036,179748.42839598656,46015597.66937256,2.4989958546939306e-05
256
+ 75580,317005496320,1.4635962295532225,180513.01770210266,46211332.53173828,2.4795241188257933e-05
257
+ 75860,318179901440,1.4616325998306274,181166.42831087112,46378605.64758301,2.463249438733328e-05
258
+ 76155,319417221120,1.4656786823272705,181845.31468749046,46552400.55999756,2.446102735120803e-05
259
+ 76410,320486768640,1.463839659690857,182431.91593766212,46702570.480041504,2.4312810637638904e-05
260
+ 76720,321787002880,1.4636628484725953,183150.79497933388,46886603.51470947,2.413262518530246e-05
261
+ 77035,323108208640,1.4582185935974121,183895.1369035244,47077155.047302246,2.3949532987899147e-05
262
+ 77340,324387471360,1.4637500190734862,184588.93916249275,47254768.425598145,2.3772254280629568e-05
263
+ 77630,325603819520,1.462220973968506,185265.27911663055,47427911.45385742,2.3603693989571184e-05
264
+ 77890,326694338560,1.4622275257110595,185858.72430443764,47579833.421936035,2.345257053093519e-05
265
+ 78300,328414003200,1.4603347873687744,186851.575268507,47834003.26873779,2.321426109119784e-05
266
+ 78640,329840066560,1.4623171043395997,187642.81193494797,48036559.85534668,2.3016638806439005e-05
267
+ 78945,331119329280,1.4616960954666138,188349.22605633736,48217401.87042236,2.2839358280180022e-05
268
+ 79280,332524421120,1.459079713821411,189150.4116165638,48422505.37384033,2.2644642740488052e-05
269
+ 79610,333908541440,1.460066180229187,189929.30950641632,48621903.23364258,2.2452832126873545e-05
270
+ 79940,335292661760,1.458433895111084,190710.2808189392,48821831.88964844,2.2261023332248442e-05
271
+ 80200,336383180800,1.4602740097045899,191315.44288516045,48976753.378601074,2.210989987361245e-05
272
+ 80535,337788272640,1.4585590028762818,192075.24276852608,49171262.148742676,2.1915182514931075e-05
273
+ 80745,338669076480,1.4575935792922974,192565.70645332336,49296820.85205078,2.1793121049995534e-05
274
+ 80995,339717652480,1.4569976568222045,193166.014264822,49450499.65179443,2.1647811081493273e-05
275
+ 81285,340934000640,1.4563476514816285,193841.25965118408,49623362.470703125,2.147925079043489e-05
276
+ 81690,342632693760,1.4594932317733764,194807.54062771797,49870730.4006958,2.1243848095764406e-05
277
+ 81990,343890984960,1.4542385864257812,195511.27005696297,50050885.13458252,2.106947431457229e-05
278
+ 82260,345023447040,1.4538869619369508,196146.32533311844,50213459.28527832,2.0912539184791967e-05
279
+ 82540,346197852160,1.4536242580413818,196820.66618442535,50386090.54321289,2.0749790564877912e-05
280
+ 82845,347477114880,1.4568992137908936,197527.9463839531,50567154.27429199,2.0572511857608333e-05
281
+ 83130,348672491520,1.461669783592224,198197.2515809536,50738496.40472412,2.0406858311616816e-05
282
+ 83380,349721067520,1.4520815563201905,198790.98207473755,50890491.41113281,2.026154652412515e-05
283
+ 83700,351063244800,1.4519271898269652,199516.74213290215,51076285.98602295,2.0075549400644377e-05
284
+ 84005,352342507520,1.4575488901138305,200226.67574048042,51258028.98956299,1.9898270693374798e-05
285
+ 84300,353579827200,1.4544986629486083,200895.65742373466,51429288.300476074,1.9726803657249548e-05
286
+ 84600,354838118400,1.45297345161438,201623.05980324745,51615503.30963135,1.955242987605743e-05
287
+ 84850,355886694400,1.4539190101623536,202193.24289917946,51761470.18218994,1.940711990755517e-05
288
+ 85090,356893327360,1.4516407442092896,202735.50936222076,51900290.396728516,1.926762161019724e-05
289
+ 85440,358361333760,1.4553143405914306,203517.53140807152,52100488.04046631,1.906418583530467e-05
290
+ 85775,359766425600,1.454245114326477,204292.7538573742,52298944.98748779,1.88694702956127e-05
291
+ 86045,360898887680,1.4581734180450439,204924.96027827263,52460789.83123779,1.8712535165832378e-05
292
+ 86370,362262036480,1.4495676803588866,205714.482524395,52662907.52624512,1.8523631297284737e-05
293
+ 86740,363813928960,1.4492269659042358,206592.34785556793,52887641.05102539,1.8308570361114107e-05
294
+ 87085,365260963840,1.4531880235671997,207404.72061872482,53095608.478393555,1.8108041331288405e-05
295
+ 87520,367085486080,1.4498338222503662,208419.38573479652,53355362.74810791,1.785520180419553e-05
296
+ 87775,368155033600,1.449286036491394,209015.15674829483,53507880.12756348,1.7706985090626404e-05
297
+ 88035,369245552640,1.445965623855591,209624.789083004,53663946.00524902,1.755586163199041e-05
298
+ 88260,370189271040,1.4476247262954711,210147.98101305962,53797883.13934326,1.7425081750843674e-05
299
+ 88515,371258818560,1.451582098007202,210752.92172312737,53952747.961120605,1.7276865037274547e-05
300
+ 88790,372412252160,1.4487579679489135,211389.40759897232,54115688.345336914,1.711702316242736e-05
301
+ 89110,373754429440,1.4427510118484497,212160.9178698063,54313194.97467041,1.693102421995718e-05
302
+ 89380,374886891520,1.4471882104873657,212785.03998875618,54472970.23712158,1.6774089090176858e-05
303
+ 89655,376040325120,1.447092981338501,213445.27336359024,54641989.9810791,1.661424721532967e-05
304
+ 89965,377340559360,1.4516633462905884,214169.31757092476,54827345.29815674,1.6434061762993224e-05
305
+ 90245,378514964480,1.4478979873657227,214824.39868569374,54995046.0635376,1.6271314962068573e-05
306
+ 90585,379941027840,1.4449454545974731,215616.49609565735,55197823.00048828,1.6073690858320333e-05
307
+ 90840,381010575360,1.4462517023086547,216213.5972893238,55350680.906066895,1.5925474144751206e-05
308
+ 91095,382080122880,1.4513818311691284,216805.89086055756,55502308.060302734,1.577725743118208e-05
309
+ 91345,383128698880,1.4503194522857665,217378.04878234863,55648780.48828125,1.5631947462679818e-05
310
+ 91675,384512819200,1.441401767730713,218140.78364372253,55844040.61279297,1.544013684906531e-05
311
+ 91995,385854996480,1.4448133182525635,218864.7469806671,56029375.22705078,1.5254138816089835e-05
312
+ 92280,387050373120,1.4494926691055299,219533.4955906868,56200574.87121582,1.5088485270098317e-05
313
+ 92635,388539351040,1.442607936859131,220371.54222488403,56415114.80957031,1.4882143659633584e-05
314
+ 92900,389650841600,1.4453481721878052,220998.7774169445,56575687.01873779,1.4728114365425427e-05
315
+ 93095,390468730880,1.4452113437652587,221446.39208316803,56690276.373291016,1.4614772226195782e-05
316
+ 93380,391664107520,1.4432289028167724,222113.27166557312,56860997.54638672,1.4449117770709563e-05
317
+ 93620,392670740480,1.4445120525360107,222671.36609077454,57003869.71923828,1.4309619473351631e-05
318
+ 93880,393761259520,1.443903260231018,223281.7130446434,57160118.53942871,1.4158496014715638e-05
319
+ 94205,395124408320,1.445061569213867,224047.59836912155,57356185.18249512,1.3969592146167997e-05
320
+ 94475,396256870400,1.4411702537536621,224676.60982489586,57517212.11517334,1.3812657016387675e-05
321
+ 94765,397473218560,1.442785415649414,225343.2132947445,57687862.60345459,1.364409581583459e-05
322
+ 95065,398731509760,1.4441711521148681,226041.96816682816,57866743.85070801,1.3469722944137175e-05
323
+ 95350,399926886400,1.4450367927551269,226705.79229354858,58036682.82714844,1.3304069398145657e-05
324
+ 95635,401122263040,1.4430587100982666,227366.83624863625,58205910.07965088,1.3138414942659438e-05
325
+ 96015,402716098560,1.442037172317505,228247.7006161213,58431411.35772705,1.2917542335344478e-05
326
+ 96355,404142161920,1.4418480587005615,229056.66600227356,58638506.49658203,1.2719920050585642e-05
327
+ 96720,405673082880,1.4404057931900025,229924.46289420128,58860662.50091553,1.250776676897658e-05
328
+ 96990,406805544960,1.4440303468704223,230542.48742699623,59018876.781311035,1.2350830729701556e-05
329
+ 97355,408336465920,1.438180251121521,231375.35725951195,59232091.45843506,1.2138677448092494e-05
330
+ 97575,409259212800,1.439077558517456,231882.92070150375,59362027.69958496,1.2010803402517922e-05
331
+ 97905,410643333120,1.438628978729248,232649.20167446136,59558195.62866211,1.1818993698398117e-05
332
+ 98225,411985510400,1.4397692346572877,233372.72338867188,59743417.1875,1.163299566542264e-05
333
+ 98525,413243801600,1.436825532913208,234065.885130167,59920866.593322754,1.1458622793725226e-05
334
+ 98810,414439178240,1.4378496599197388,234738.96312594414,60093174.5602417,1.1292968338239007e-05
335
+ 99075,415550668800,1.435820026397705,235371.6471362114,60255141.66687012,1.1138939044030849e-05
336
+ 99390,416871874560,1.4408235406875611,236099.70878958702,60441525.45013428,1.0955847756122239e-05
337
+ 99690,418130165760,1.4354854536056518,236815.7348573208,60624828.12347412,1.0781474884424824e-05
338
+ 100065,419703029760,1.4379744958877563,237705.01027584076,60852482.630615234,1.0563509022176731e-05
339
+ 100325,420793548800,1.4341013383865358,238303.8801074028,61005793.30749512,1.0412385563540738e-05
340
+ 100570,421821153280,1.4373250198364258,238865.27826070786,61149511.23474121,1.0269981430610642e-05
341
+ 100840,422953615360,1.4392485189437867,239486.5515244007,61308557.19024658,1.0113045391335618e-05
342
+ 101170,424337735680,1.438763918876648,240252.76848316193,61504708.73168945,9.921235687215813e-06
343
+ 101445,425491169280,1.439057412147522,240885.06843209267,61666577.51861572,9.761393812368624e-06
344
+ 101725,426665574400,1.4349830961227417,241555.94319343567,61838321.45751953,9.598645192454569e-06
345
+ 102025,427923865600,1.4397229623794556,242284.0287578106,62024711.36199951,9.424272320757154e-06
346
+ 102260,428909527040,1.4354581880569457,242823.4775042534,62162810.24108887,9.287680768466089e-06
347
+ 102520,430000046080,1.4331795167922974,243445.43759346008,62322032.02392578,9.136557309830096e-06
348
+ 102810,431216394240,1.4352128314971924,244119.4434416294,62494577.52105713,8.967997018771712e-06
349
+ 103060,432264970240,1.4369250345230102,244697.56983041763,62642577.876586914,8.82268614077475e-06
350
+ 103385,433628119040,1.4285495948791505,245475.68335533142,62841774.938964844,8.633782272227108e-06
351
+ 103655,434760581120,1.4313248443603515,246102.15421915054,63002151.48010254,8.476847142446786e-06
352
+ 103930,435914014720,1.434038095474243,246752.50554800034,63168641.420288086,8.317005267599598e-06
353
+ 104190,437004533760,1.431107611656189,247339.81801509857,63318993.411865234,8.165881808963604e-06
354
+ 104510,438346711040,1.4295264863967896,248075.56574225426,63507344.83001709,7.979883775988128e-06
355
+ 104800,439563059200,1.4344947957992553,248759.19261574745,63682353.30963135,7.811323484929744e-06
356
+ 105130,440947179520,1.433149938583374,249534.01866197586,63880708.77746582,7.619513326062588e-06
357
+ 105395,442058670080,1.429944167137146,250154.07029986382,64039441.99676514,7.46548403185443e-06
358
+ 105695,443316961280,1.4318817663192749,250851.6952586174,64218033.986206055,7.2911111601570155e-06
359
+ 105985,444533309440,1.4361343097686767,251532.3388671875,64392278.75,7.122550869098632e-06
360
+ 106210,445477027840,1.4285934686660766,252057.66741394997,64526762.85797119,6.991770987951895e-06
361
+ 106480,446609489920,1.4349623727798462,252694.37735319138,64689760.60241699,6.834835403424222e-06
362
+ 106765,447804866560,1.428853497505188,253356.4467072487,64859250.357055664,6.6691814026853535e-06
363
+ 107065,449063157760,1.428532705307007,254044.0347957611,65035272.907714844,6.494808530987939e-06
364
+ 107405,450489221120,1.4294294834136962,254823.04517149925,65234699.56390381,6.297185791481752e-06
365
+ 107715,451789455360,1.4271887636184692,255532.40568637848,65416295.85571289,6.1170003391453065e-06
366
+ 107995,452963860480,1.4311064767837525,256178.45214009285,65581683.74786377,5.954252628725953e-06
367
+ 108290,454201180160,1.4330047512054442,256872.0287501812,65759239.36004639,5.782785592600703e-06
368
+ 108560,455333642240,1.4316231393814087,257536.53442502022,65929352.812805176,5.62585000807303e-06
369
+ 108895,456738734080,1.4261334419250489,258315.80425143242,66128845.8883667,5.431134013633709e-06
370
+ 109160,457850224640,1.4281217861175537,258946.94263100624,66290417.3135376,5.277104264678201e-06
371
+ 109415,458919772160,1.4271953868865968,259539.20039772987,66442035.30181885,5.128887551109074e-06
372
+ 109665,459968348160,1.4293783569335938,260125.15892148018,66592040.683898926,4.983576673112111e-06
373
+ 109955,461184696320,1.4300671958923339,260828.90233635902,66772198.99810791,4.815016382053727e-06
374
+ 110260,462463959040,1.4307714796066284,261527.6113629341,66951068.50891113,4.637737220036797e-06
375
+ 110620,463973908480,1.4274176740646363,262364.33426618576,67165269.57214355,4.4284897739999e-06
376
+ 110885,465085399040,1.4223868942260742,262973.0377840996,67321097.67272949,4.274460479791742e-06
377
+ 111170,466280775680,1.4271921110153198,263636.1656498909,67490858.40637207,4.1088060243055224e-06
378
+ 111460,467497123840,1.4233088064193726,264358.1378698349,67675683.29467773,3.9402457332471386e-06
379
+ 111685,468440842240,1.4286174154281617,264894.9823355675,67813115.47790527,3.8094660794740776e-06
380
+ 111975,469657190400,1.4273700523376465,265550.1725387573,67980844.16992188,3.6409055610420182e-06
381
+ 112290,470978396160,1.4266534185409545,266293.6787331104,68171181.75567627,3.457814045759733e-06
382
+ 112540,472026972160,1.425380835533142,266881.8741571903,68321759.78424072,3.3125033951364458e-06
383
+ 112830,473243320320,1.42493492603302,267565.7266032696,68496826.01043701,3.1439428767043864e-06
384
+ 113080,474291896320,1.4286265516281127,268158.7574005127,68648641.89453125,2.9986322260810994e-06
385
+ 113370,475508244480,1.4271038579940796,268828.6733150482,68820140.36865234,2.83007170764904e-06
386
+ 113595,476451962880,1.4221965885162353,269348.790794611,68953290.44342041,2.699292053875979e-06
387
+ 113925,477836083200,1.4260382127761841,270119.6772670746,69150637.3803711,2.507481895008823e-06
388
+ 114315,479471861760,1.425297842025757,271028.3651256561,69383261.47216797,2.280797161802184e-06
389
+ 114565,480520437760,1.426431736946106,271618.3868908882,69534307.04406738,2.1354865111788968e-06
390
+ 114880,481841643520,1.4250082492828369,272354.43952679634,69722736.51885986,1.9523949958966114e-06
391
+ 115270,483477422080,1.4197765398025513,273313.7539386749,69968321.00830078,1.7257102626899723e-06
392
+ 115575,484756684800,1.4240530490875245,274083.2974374294,70165324.14398193,1.5484311006730422e-06
393
+ 115910,486161776640,1.4242891073226929,274924.7234261036,70380729.19708252,1.3537147651732084e-06
394
+ 116215,487441039360,1.4271942853927613,275708.40203762054,70581350.92163086,1.176435716843116e-06
395
+ 116495,488615444480,1.4240837621688842,276388.6677002907,70755498.93127441,1.0136876653632498e-06
396
+ 116760,489726935040,1.4214415645599365,277054.4333803654,70925934.94537354,8.596582574682543e-07
397
+ 117000,490733568000,1.4226779556274414,277679.9043869972,71086055.52307129,7.201599601103226e-07
398
+ 117260,491824087040,1.4236890649795533,278377.1483194828,71264549.9697876,5.690368425348424e-07
399
+ 117645,493438894080,1.4247114610671998,279393.5856318474,71524757.92175293,3.4525828596088104e-07
400
+ 117925,494613299200,1.4296443748474121,280118.82418990135,71710418.99261475,1.8251027711357892e-07
401
+ 118235,495913533440,1.4239346981048584,280927.33439207077,71917397.60437012,2.324971770661932e-09
metadata/training_logs/ConvergenceCurve_phase4-context-extension-131k.csv ADDED
@@ -0,0 +1,192 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ training_steps,training_tokens,training_loss,walltime,gputime,learning_rate
2
+ 125,524288000,2.554782357215881,984.4803285598755,126013.48205566406,4.273942613508552e-05
3
+ 250,1048576000,1.492537350654602,1976.7299485206604,253021.43341064453,6.872427184134722e-05
4
+ 375,1572864000,1.4975359773635863,2973.380742073059,380592.73498535156,6.871581717859954e-05
5
+ 500,2097152000,1.4889154148101806,3958.0899834632874,506635.5178833008,6.869788194308057e-05
6
+ 625,2621440000,1.4991708898544311,4951.81186914444,633831.9192504883,6.867046613479033e-05
7
+ 750,3145728000,1.507406897544861,5936.469957828522,759868.1546020508,6.863359158160165e-05
8
+ 875,3670016000,1.498574013710022,6925.770752429962,886498.6563110352,6.858726555947214e-05
9
+ 1000,4194304000,1.4995141220092774,7912.4334597587585,1012791.4828491211,6.853148806840181e-05
10
+ 1125,4718592000,1.497445855140686,8903.68198633194,1139671.2942504883,6.846628821222112e-05
11
+ 1250,5242880000,1.5074591159820556,9896.094131469727,1266700.048828125,6.839167326688766e-05
12
+ 1375,5767168000,1.5002111291885376,10887.623195648193,1393615.7690429688,6.830767233623192e-05
13
+ 1500,6291456000,1.4991462469100951,11878.205075263977,1520410.249633789,6.821430724812672e-05
14
+ 1625,6815744000,1.4921324682235717,12867.40041255951,1647027.2528076172,6.81115998304449e-05
15
+ 1750,7340032000,1.523764271736145,13853.18541765213,1773207.7334594727,6.799957918701693e-05
16
+ 1875,7864320000,1.515320167541504,14843.755986690521,1900000.7662963867,6.787827442167327e-05
17
+ 2000,8388608000,1.5183739233016968,15826.274373531342,2025763.1198120117,6.774772919015959e-05
18
+ 2125,8912896000,1.5051481771469115,16821.798691749573,2153190.2325439453,6.760796532034874e-05
19
+ 2250,9437184000,1.5188077306747436,17806.938366889954,2279288.110961914,6.745903374394402e-05
20
+ 2375,9961472000,1.495236349105835,18797.5475025177,2406086.0803222656,6.73009708407335e-05
21
+ 2500,10485760000,1.4941252279281616,19785.608899593353,2532557.939147949,6.713382026646286e-05
22
+ 2625,11010048000,1.50147403717041,20781.896586418152,2660082.7630615234,6.695761840092018e-05
23
+ 2750,11534336000,1.497354221343994,21773.439099788666,2787000.204772949,6.677243072772399e-05
24
+ 2875,12058624000,1.492594337463379,22754.230978488922,2912541.565246582,6.657830090261996e-05
25
+ 3000,12582912000,1.4926585578918456,23750.513849258423,3040065.772705078,6.63752798573114e-05
26
+ 3125,13107200000,1.4984318923950195,24744.183931350708,3167255.5432128906,6.616342579945922e-05
27
+ 3250,13631488000,1.514411540031433,25741.15688085556,3294868.0807495117,6.594280421268195e-05
28
+ 3375,14155776000,1.5011372566223145,26731.743879318237,3421663.2165527344,6.571345875272527e-05
29
+ 3500,14680064000,1.4847777557373047,27724.0012717247,3548672.1627807617,6.547546945512295e-05
30
+ 3625,15204352000,1.5044882965087891,28723.126101493835,3676560.140991211,6.522889452753589e-05
31
+ 3750,15728640000,1.4940216732025147,29723.706996440887,3804634.4955444336,6.497379945358261e-05
32
+ 3875,16252928000,1.4894179916381836,30711.214339733124,3931035.43548584,6.471026426879689e-05
33
+ 4000,16777216000,1.49800621509552,31701.409969329834,4057780.4760742188,6.443835445679724e-05
34
+ 4125,17301504000,1.484294719696045,32693.367190361023,4184751.000366211,6.415814277715981e-05
35
+ 4250,17825792000,1.5007028341293336,33689.12601232529,4312208.129577637,6.386970926541835e-05
36
+ 4375,18350080000,1.493506498336792,34682.32307434082,4439337.353515625,6.357313395710662e-05
37
+ 4500,18874368000,1.4821550846099854,35666.2157535553,4565275.616455078,6.326850416371599e-05
38
+ 4625,19398656000,1.4927472066879273,36650.89477300644,4691314.530944824,6.29558926448226e-05
39
+ 4750,19922944000,1.4983328580856323,37638.09194803238,4817675.7693481445,6.263539398787543e-05
40
+ 4875,20447232000,1.5008873271942138,38624.85774278641,4943981.79107666,6.230709550436586e-05
41
+ 5000,20971520000,1.4903150367736817,39610.86201429367,5070190.33782959,6.197109178174287e-05
42
+ 5125,21495808000,1.4989620018005372,40605.754997730255,5197536.639709473,6.162746285554022e-05
43
+ 5250,22020096000,1.5058591556549072,41593.60118150711,5323980.95123291,6.12763105891645e-05
44
+ 5375,22544384000,1.4910902786254883,42581.0441327095,5450373.648986816,6.091773684602231e-05
45
+ 5500,23068672000,1.4767752408981323,43574.69149827957,5577560.511779785,6.055183621356264e-05
46
+ 5625,23592960000,1.4914532852172853,44564.69118833542,5704280.472106934,6.0178706917213276e-05
47
+ 5750,24117248000,1.5105006313323974,45558.96450281143,5831547.456359863,5.979845445835963e-05
48
+ 5875,24641536000,1.4840446662902833,46552.533349990845,5958724.268798828,5.94111843383871e-05
49
+ 6000,25165824000,1.4915190172195434,47544.051904678345,6085638.643798828,5.90170020586811e-05
50
+ 6125,25690112000,1.4764682626724244,48542.83632040024,6213483.0490112305,5.8616020396584645e-05
51
+ 6250,26214400000,1.4947553205490112,49535.04325628281,6340485.536804199,5.820834121550433e-05
52
+ 6375,26738688000,1.4819254302978515,50523.48965167999,6467006.675415039,5.779408820671961e-05
53
+ 6500,27262976000,1.4844385862350464,51516.32220029831,6594089.241638184,5.737336687161587e-05
54
+ 6625,27787264000,1.4932914543151856,52510.58640241623,6721355.059509277,5.694629726349376e-05
55
+ 6750,28311552000,1.4815798425674438,53504.04151201248,6848517.313537598,5.65129957976751e-05
56
+ 6875,28835840000,1.4881651401519775,54497.4182844162,6975669.540405273,5.607358252746053e-05
57
+ 7000,29360128000,1.4796349620819091,55486.41178607941,7102260.708618164,5.5628181144129485e-05
58
+ 7125,29884416000,1.4790048694610596,56482.15041399002,7229715.252990723,5.51769117009826e-05
59
+ 7250,30408704000,1.4827857828140258,57463.426065444946,7355318.536376953,5.471989788929932e-05
60
+ 7375,30932992000,1.4792558193206786,58459.337282180786,7482795.172119141,5.4257267038337886e-05
61
+ 7500,31457280000,1.4781176567077636,59457.12294816971,7610511.737365723,5.378914647735655e-05
62
+ 7625,31981568000,1.4841596031188964,60450.812039375305,7737703.941040039,5.3315667173592374e-05
63
+ 7750,32505856000,1.4755689001083374,61440.799317359924,7864422.31262207,5.2836956456303596e-05
64
+ 7875,33030144000,1.4764146280288697,62426.203353405,7990554.02923584,5.2353148930706084e-05
65
+ 8000,33554432000,1.4695409059524536,63427.24039077759,8118686.770019531,5.18643792020157e-05
66
+ 8125,34078720000,1.4723982000350953,64413.376405239105,8244912.1798706055,5.1370778237469494e-05
67
+ 8250,34603008000,1.4811096334457396,65416.51983499527,8373314.5388793945,5.087248428026214e-05
68
+ 8375,35127296000,1.4618944311141968,66408.41525316238,8500277.152404785,5.036963921156712e-05
69
+ 8500,35651584000,1.4810321426391602,67396.42352819443,8626742.211608887,4.986237399862148e-05
70
+ 8625,36175872000,1.4964146041870117,68386.16661310196,8753429.32647705,4.93508305225987e-05
71
+ 8750,36700160000,1.4802560997009278,69378.4465432167,8880441.157531738,4.883515430265106e-05
72
+ 8875,37224448000,1.4757713842391968,70373.2158613205,9007771.630249023,4.831548358197324e-05
73
+ 9000,37748736000,1.4619942569732667,71361.52238368988,9134274.865112305,4.7791963879717514e-05
74
+ 9125,38273024000,1.4840023851394653,72348.26117753983,9260577.430725098,4.726473707705736e-05
75
+ 9250,38797312000,1.4723041582107543,73342.45064258575,9387833.682250977,4.6733952331123874e-05
76
+ 9375,39321600000,1.4644659996032714,74334.40888643265,9514804.337463379,4.6199755161069334e-05
77
+ 9500,39845888000,1.460612325668335,75321.32328510284,9641129.380493164,4.566228744806722e-05
78
+ 9625,40370176000,1.4779297924041748,76309.20647382736,9767578.428649902,4.512170562520623e-05
79
+ 9750,40894464000,1.4698872137069703,77308.77655506134,9895523.399047852,4.457815521163866e-05
80
+ 9875,41418752000,1.468229856491089,78304.61529016495,10022990.757141113,4.403178536449559e-05
81
+ 10000,41943040000,1.4836175775527953,79304.67171669006,10150997.979736328,4.3482745240908116e-05
82
+ 10125,42467328000,1.4738706302642823,80295.66708803177,10277845.387268066,4.293119127396494e-05
83
+ 10250,42991616000,1.473243055343628,81286.63889408112,10404689.778442383,4.237727262079716e-05
84
+ 10375,43515904000,1.4678482389450074,82276.86048984528,10531438.142700195,4.182114207651466e-05
85
+ 10500,44040192000,1.4657092475891114,83264.51493740082,10657857.911987305,4.126295607420616e-05
86
+ 10625,44564480000,1.4797403383255006,84252.94907569885,10784377.481689453,4.070286377100274e-05
87
+ 10750,45088768000,1.4585044288635254,85236.22227907181,10910236.451721191,4.014102159999311e-05
88
+ 10875,45613056000,1.4693016576766968,86232.91317224503,11037812.886047363,3.9577585994265974e-05
89
+ 11000,46137344000,1.4555245351791382,87218.0213546753,11163906.733398438,3.901270974893123e-05
90
+ 11125,46661632000,1.4605278205871581,88211.04061365128,11291013.198547363,3.844655293505639e-05
91
+ 11250,47185920000,1.4623273992538453,89203.6712551117,11418069.920654297,3.787926834775135e-05
92
+ 11375,47710208000,1.4501904296875,90203.31879377365,11546024.805603027,3.7311012420104817e-05
93
+ 11500,48234496000,1.4555465793609619,91199.40769195557,11673524.184570312,3.67419452231843e-05
94
+ 11625,48758784000,1.4745562267303467,92195.03290891647,11800964.212341309,3.6172219552099705e-05
95
+ 11750,49283072000,1.4669678735733032,93188.7359547615,11928158.202209473,3.5601995477918535e-05
96
+ 11875,49807360000,1.4451501083374023,94178.76350164413,12054881.72821045,3.503142579575069e-05
97
+ 12000,50331648000,1.4586689186096191,95164.90592002869,12181107.957763672,3.44606778526213e-05
98
+ 12125,50855936000,1.4642741441726685,96151.27073287964,12307362.653808594,3.388989716768265e-05
99
+ 12250,51380224000,1.4485573005676269,97140.30460119247,12433958.988952637,3.3319251087959856e-05
100
+ 12375,51904512000,1.452154188156128,98129.22229290009,12560540.453491211,3.274888877058402e-05
101
+ 12500,52428800000,1.4662384748458863,99116.62769794464,12686928.345336914,3.217897392460145e-05
102
+ 12625,52953088000,1.4696976613998414,100105.01482248306,12813441.897277832,3.160966298310086e-05
103
+ 12750,53477376000,1.4392393255233764,101090.24580478668,12939551.463012695,3.1041112379170954e-05
104
+ 12875,54001664000,1.4627568244934082,102077.42817878723,13065910.806884766,3.0473474907921627e-05
105
+ 13000,54525952000,1.4575440549850465,103067.62155056,13192655.55847168,2.9906910640420392e-05
106
+ 13125,55050240000,1.4550797605514527,104058.55529546738,13319495.077819824,2.9341577828745358e-05
107
+ 13250,55574528000,1.4468258619308472,105043.32339286804,13445545.39428711,2.877762926800642e-05
108
+ 13375,56098816000,1.4521300840377807,106031.43281936646,13572023.400878906,2.821522139129229e-05
109
+ 13500,56623104000,1.4469180059432984,107026.1884021759,13699352.115478516,2.7654510631691664e-05
110
+ 13625,57147392000,1.4474766778945922,108017.4569606781,13826234.490966797,2.7095649784314446e-05
111
+ 13750,57671680000,1.4578331899642945,109009.42044258118,13953205.81665039,2.6538793463259935e-05
112
+ 13875,58195968000,1.436700382232666,109997.29449272156,14079653.69506836,2.5984098101616837e-05
113
+ 14000,58720256000,1.452729549407959,110987.51145124435,14206401.465759277,2.5431712856516242e-05
114
+ 14125,59244544000,1.460614848136902,111977.30929374695,14333095.58959961,2.4881790523068048e-05
115
+ 14250,59768832000,1.4357179069519044,112969.85160589218,14460141.0055542,2.4334485715371557e-05
116
+ 14375,60293120000,1.4537902307510375,113955.03861904144,14586244.943237305,2.378994759055786e-05
117
+ 14500,60817408000,1.446098918914795,114945.9777879715,14713085.156860352,2.3248327124747448e-05
118
+ 14625,61341696000,1.4509311485290528,115940.73630571365,14840414.247131348,2.2709773475071415e-05
119
+ 14750,61865984000,1.4349867057800294,116929.04821395874,14966918.171386719,2.217443397967145e-05
120
+ 14875,62390272000,1.441828212738037,117920.14652967453,15093778.75579834,2.1642457795678638e-05
121
+ 15000,62914560000,1.4551848554611206,118914.3961763382,15221042.710571289,2.1113990442245267e-05
122
+ 15125,63438848000,1.4536888933181762,119912.7855849266,15348836.554870605,2.0589179257513024e-05
123
+ 15250,63963136000,1.4343218231201171,120902.67904758453,15475542.91809082,2.0068167941644788e-05
124
+ 15375,64487424000,1.434973349571228,121890.9710073471,15602044.28894043,1.9551102013792843e-05
125
+ 15500,65011712000,1.4304817056655883,122881.00431919098,15728768.552856445,1.903812153614126e-05
126
+ 15625,65536000000,1.4382383155822753,123871.80215597153,15855590.675964355,1.8529370208852924e-05
127
+ 15750,66060288000,1.4488927793502808,124860.45211076736,15982137.870178223,1.80249862751225e-05
128
+ 15875,66584576000,1.4491661930084228,125852.39286899567,16109106.287231445,1.7525111616123468e-05
129
+ 16000,67108864000,1.4428399467468263,126844.71413850784,16236123.409729004,1.7029880837071687e-05
130
+ 16125,67633152000,1.4600327444076537,127834.77737665176,16362851.504211426,1.6539434000151232e-05
131
+ 16250,68157440000,1.4474923944473266,128827.42879390717,16489910.885620117,1.605390389158856e-05
132
+ 16375,68681728000,1.4306964492797851,129818.6548280716,16616787.817993164,1.557342693558894e-05
133
+ 16500,69206016000,1.4370262432098388,130809.4248843193,16743606.385192871,1.5098133189894725e-05
134
+ 16625,69730304000,1.461853132247925,131801.40537023544,16870579.887390137,1.462815453123767e-05
135
+ 16750,70254592000,1.4365899896621703,132795.2848958969,16997796.466674805,1.4163621017360128e-05
136
+ 16875,70778880000,1.4278438949584962,133781.98801994324,17124094.466552734,1.3704660887015052e-05
137
+ 17000,71303168000,1.452727656364441,134781.81574344635,17252072.415161133,1.3251400559965987e-05
138
+ 17125,71827456000,1.4432354736328126,135770.59500694275,17378636.160888672,1.2803964636987075e-05
139
+ 17250,72351744000,1.4370049810409546,136763.4261727333,17505718.550109863,1.236247771885246e-05
140
+ 17375,72876032000,1.4415734529495239,137749.88814115524,17631985.68206787,1.1927060768357478e-05
141
+ 17500,73400320000,1.448450403213501,138734.07413721085,17757961.48956299,1.1497834748297464e-05
142
+ 17625,73924608000,1.4521562385559081,139720.14720916748,17884178.842773438,1.1074916983488947e-05
143
+ 17750,74448896000,1.4284476900100709,140720.67550897598,18012246.465148926,1.0658423889253754e-05
144
+ 17875,74973184000,1.4349009227752685,141708.66920232773,18138709.65789795,1.0248471880913712e-05
145
+ 18000,75497472000,1.4354215097427367,142702.52597332,18265923.32458496,9.84517373581184e-06
146
+ 18125,76021760000,1.4429131412506104,143692.95391321182,18392698.100891113,9.448639502807055e-06
147
+ 18250,76546048000,1.4341587257385253,144678.950984478,18518905.726013184,9.05898014025297e-06
148
+ 18375,77070336000,1.4438130140304566,145667.07129478455,18645385.125732422,8.676302059029695e-06
149
+ 18500,77594624000,1.4676322078704833,146658.7003850937,18772313.649291992,8.300710760522634e-06
150
+ 18625,78118912000,1.452341685295105,147646.1154794693,18898702.78137207,7.932311746117193e-06
151
+ 18750,78643200000,1.431972212791443,148639.95228767395,19025913.892822266,7.571204150735866e-06
152
+ 18875,79167488000,1.4444401311874389,149629.34332609177,19152555.945739746,7.21748892829055e-06
153
+ 19000,79691776000,1.4298672103881835,150616.8995141983,19278963.137817383,6.871263394714333e-06
154
+ 19125,80216064000,1.4420791864395142,151607.81851053238,19405800.769348145,6.532623046950903e-06
155
+ 19250,80740352000,1.4332106876373292,152591.41368865967,19531700.952148438,6.201661562954541e-06
156
+ 19375,81264640000,1.4423624134063722,153581.10126018524,19658380.96130371,5.878470346942777e-06
157
+ 19500,81788928000,1.4339903974533081,154569.26450490952,19784865.856628418,5.563138074649032e-06
158
+ 19625,82313216000,1.4349782180786133,155560.8947300911,19911794.52545166,5.2557525123120286e-06
159
+ 19750,82837504000,1.4391859865188599,156555.20820617676,20039066.650390625,4.956397333444329e-06
160
+ 19875,83361792000,1.4334424209594727,157543.97389650345,20165628.65875244,4.665156211558497e-06
161
+ 20000,83886080000,1.4429494667053222,158535.4375243187,20292536.003112793,4.382109182188287e-06
162
+ 20125,84410368000,1.4282504177093507,159526.97605133057,20419452.934570312,4.107334007130703e-06
163
+ 20250,84934656000,1.4241476202011107,160516.53708219528,20546116.746520996,3.840906629193341e-06
164
+ 20375,85458944000,1.4211939144134522,161512.73339509964,20673629.874572754,3.582900717447046e-06
165
+ 20500,85983232000,1.4452216482162477,162514.04677152634,20801797.98675537,3.3333876672259066e-06
166
+ 20625,86507520000,1.4331603813171387,163513.922894001,20929782.13043213,3.092435918006231e-06
167
+ 20750,87031808000,1.4439285373687745,164507.00857162476,21056897.09716797,2.8601120902749244e-06
168
+ 20875,87556096000,1.4297708702087402,165491.65361166,21182931.66229248,2.6364803034084616e-06
169
+ 21000,88080384000,1.4380652761459352,166482.06634283066,21309704.491882324,2.421602175672888e-06
170
+ 21125,88604672000,1.440790328979492,167471.32928848267,21436330.14892578,2.2155370515974937e-06
171
+ 21250,89128960000,1.4167712259292602,168465.6027150154,21563597.147521973,2.0183420019748155e-06
172
+ 21375,89653248000,1.4362161588668823,169454.4678258896,21690171.881713867,1.8300711417396087e-06
173
+ 21500,90177536000,1.4421902465820313,170449.9449276924,21817592.95074463,1.6507766531503876e-06
174
+ 21625,90701824000,1.4315487194061278,171439.339158535,21944235.41229248,1.4805077626078855e-06
175
+ 21750,91226112000,1.4244873237609863,172431.13037109375,22071184.6875,1.3193115364629193e-06
176
+ 21875,91750400000,1.4125955533981323,173419.4010901451,22197683.339538574,1.1672325399558758e-06
177
+ 22000,92274688000,1.4402506971359252,174406.1421227455,22323986.191711426,1.0243126098430366e-06
178
+ 22125,92798976000,1.4289155435562133,175393.06967496872,22450312.918395996,8.905913091439288e-07
179
+ 22250,93323264000,1.4243291425704956,176383.74596118927,22577119.483032227,7.661054723939742e-07
180
+ 22375,93847552000,1.436662836074829,177379.34653520584,22704556.356506348,6.508893761747458e-07
181
+ 22500,94371840000,1.4352865982055665,178370.07630109787,22831369.766540527,5.449749664876435e-07
182
+ 22625,94896128000,1.436001124382019,179361.4937210083,22958271.196289062,4.483913187414146e-07
183
+ 22750,95420416000,1.440036449432373,180355.07584095,23085449.7076416,3.6116514934292354e-07
184
+ 22875,95944704000,1.441613302230835,181344.45638895035,23212090.417785645,2.83320531480058e-07
185
+ 23000,96468992000,1.4311069631576538,182340.00187397003,23339520.239868164,2.1487893775429256e-07
186
+ 23125,96993280000,1.4302243566513062,183328.21281433105,23466011.240234375,1.5585924018068908e-07
187
+ 23250,97517568000,1.434647183418274,184314.68320846558,23592279.450683594,1.0627772439875116e-07
188
+ 23375,98041856000,1.423925666809082,185305.42181253433,23719093.992004395,6.614807546156953e-08
189
+ 23500,98566144000,1.4347464084625243,186310.39970636368,23847731.16241455,3.5481360072253665e-08
190
+ 23625,99090432000,1.4226790523529054,187302.3525762558,23974701.129760742,1.4286050564749075e-08
191
+ 23750,99614720000,1.431354284286499,188291.8809390068,24101360.76019287,2.5679884885221327e-09
192
+ 23840,99992207360,1.4358789854579501,189009.04103040695,24193157.25189209,1.2136202416287989e-12
model-00001-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:29fdaae091083d6b6c63c6b52cfa9b404d3fbddb1ac89aefebe96dbac3924fd9
3
+ size 4957588344
model-00002-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c633742b9e36a42ddf708c14401c6ad71185df89985b873d64312ac2b1933e51
3
+ size 4916952064
model-00003-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1efb32b46e5d31b0433f983a82186d821b731e040854300dd560aa780edab266
3
+ size 4875961752
model-00004-of-00004.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1da5d16e6e186738874618de7e0d47eadbaaeb69dd7b85fe05c8f2dd384c5b44
3
+ size 1400906184
model.safetensors.index.json ADDED
@@ -0,0 +1,318 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "metadata": {
3
+ "total_size": 16151373824
4
+ },
5
+ "weight_map": {
6
+ "backbone.embeddings.weight": "model-00001-of-00004.safetensors",
7
+ "backbone.layers.0.mixer.A_log": "model-00001-of-00004.safetensors",
8
+ "backbone.layers.0.mixer.D": "model-00001-of-00004.safetensors",
9
+ "backbone.layers.0.mixer.conv1d.bias": "model-00001-of-00004.safetensors",
10
+ "backbone.layers.0.mixer.conv1d.weight": "model-00001-of-00004.safetensors",
11
+ "backbone.layers.0.mixer.dt_bias": "model-00001-of-00004.safetensors",
12
+ "backbone.layers.0.mixer.in_proj.weight": "model-00001-of-00004.safetensors",
13
+ "backbone.layers.0.mixer.norm.weight": "model-00001-of-00004.safetensors",
14
+ "backbone.layers.0.mixer.out_proj.weight": "model-00001-of-00004.safetensors",
15
+ "backbone.layers.0.norm.weight": "model-00001-of-00004.safetensors",
16
+ "backbone.layers.1.mixer.down_proj.weight": "model-00001-of-00004.safetensors",
17
+ "backbone.layers.1.mixer.up_proj.weight": "model-00001-of-00004.safetensors",
18
+ "backbone.layers.1.norm.weight": "model-00001-of-00004.safetensors",
19
+ "backbone.layers.10.mixer.down_proj.weight": "model-00001-of-00004.safetensors",
20
+ "backbone.layers.10.mixer.up_proj.weight": "model-00001-of-00004.safetensors",
21
+ "backbone.layers.10.norm.weight": "model-00001-of-00004.safetensors",
22
+ "backbone.layers.11.mixer.A_log": "model-00001-of-00004.safetensors",
23
+ "backbone.layers.11.mixer.D": "model-00001-of-00004.safetensors",
24
+ "backbone.layers.11.mixer.conv1d.bias": "model-00001-of-00004.safetensors",
25
+ "backbone.layers.11.mixer.conv1d.weight": "model-00001-of-00004.safetensors",
26
+ "backbone.layers.11.mixer.dt_bias": "model-00001-of-00004.safetensors",
27
+ "backbone.layers.11.mixer.in_proj.weight": "model-00001-of-00004.safetensors",
28
+ "backbone.layers.11.mixer.norm.weight": "model-00001-of-00004.safetensors",
29
+ "backbone.layers.11.mixer.out_proj.weight": "model-00001-of-00004.safetensors",
30
+ "backbone.layers.11.norm.weight": "model-00001-of-00004.safetensors",
31
+ "backbone.layers.12.mixer.down_proj.weight": "model-00001-of-00004.safetensors",
32
+ "backbone.layers.12.mixer.up_proj.weight": "model-00001-of-00004.safetensors",
33
+ "backbone.layers.12.norm.weight": "model-00001-of-00004.safetensors",
34
+ "backbone.layers.13.mixer.A_log": "model-00001-of-00004.safetensors",
35
+ "backbone.layers.13.mixer.D": "model-00001-of-00004.safetensors",
36
+ "backbone.layers.13.mixer.conv1d.bias": "model-00001-of-00004.safetensors",
37
+ "backbone.layers.13.mixer.conv1d.weight": "model-00001-of-00004.safetensors",
38
+ "backbone.layers.13.mixer.dt_bias": "model-00001-of-00004.safetensors",
39
+ "backbone.layers.13.mixer.in_proj.weight": "model-00001-of-00004.safetensors",
40
+ "backbone.layers.13.mixer.norm.weight": "model-00001-of-00004.safetensors",
41
+ "backbone.layers.13.mixer.out_proj.weight": "model-00001-of-00004.safetensors",
42
+ "backbone.layers.13.norm.weight": "model-00001-of-00004.safetensors",
43
+ "backbone.layers.14.mixer.down_proj.weight": "model-00002-of-00004.safetensors",
44
+ "backbone.layers.14.mixer.up_proj.weight": "model-00001-of-00004.safetensors",
45
+ "backbone.layers.14.norm.weight": "model-00001-of-00004.safetensors",
46
+ "backbone.layers.15.mixer.A_log": "model-00002-of-00004.safetensors",
47
+ "backbone.layers.15.mixer.D": "model-00002-of-00004.safetensors",
48
+ "backbone.layers.15.mixer.conv1d.bias": "model-00002-of-00004.safetensors",
49
+ "backbone.layers.15.mixer.conv1d.weight": "model-00002-of-00004.safetensors",
50
+ "backbone.layers.15.mixer.dt_bias": "model-00002-of-00004.safetensors",
51
+ "backbone.layers.15.mixer.in_proj.weight": "model-00002-of-00004.safetensors",
52
+ "backbone.layers.15.mixer.norm.weight": "model-00002-of-00004.safetensors",
53
+ "backbone.layers.15.mixer.out_proj.weight": "model-00002-of-00004.safetensors",
54
+ "backbone.layers.15.norm.weight": "model-00002-of-00004.safetensors",
55
+ "backbone.layers.16.mixer.down_proj.weight": "model-00002-of-00004.safetensors",
56
+ "backbone.layers.16.mixer.up_proj.weight": "model-00002-of-00004.safetensors",
57
+ "backbone.layers.16.norm.weight": "model-00002-of-00004.safetensors",
58
+ "backbone.layers.17.mixer.A_log": "model-00002-of-00004.safetensors",
59
+ "backbone.layers.17.mixer.D": "model-00002-of-00004.safetensors",
60
+ "backbone.layers.17.mixer.conv1d.bias": "model-00002-of-00004.safetensors",
61
+ "backbone.layers.17.mixer.conv1d.weight": "model-00002-of-00004.safetensors",
62
+ "backbone.layers.17.mixer.dt_bias": "model-00002-of-00004.safetensors",
63
+ "backbone.layers.17.mixer.in_proj.weight": "model-00002-of-00004.safetensors",
64
+ "backbone.layers.17.mixer.norm.weight": "model-00002-of-00004.safetensors",
65
+ "backbone.layers.17.mixer.out_proj.weight": "model-00002-of-00004.safetensors",
66
+ "backbone.layers.17.norm.weight": "model-00002-of-00004.safetensors",
67
+ "backbone.layers.18.mixer.k_proj.weight": "model-00002-of-00004.safetensors",
68
+ "backbone.layers.18.mixer.o_proj.weight": "model-00002-of-00004.safetensors",
69
+ "backbone.layers.18.mixer.q_proj.weight": "model-00002-of-00004.safetensors",
70
+ "backbone.layers.18.mixer.v_proj.weight": "model-00002-of-00004.safetensors",
71
+ "backbone.layers.18.norm.weight": "model-00002-of-00004.safetensors",
72
+ "backbone.layers.19.mixer.down_proj.weight": "model-00002-of-00004.safetensors",
73
+ "backbone.layers.19.mixer.up_proj.weight": "model-00002-of-00004.safetensors",
74
+ "backbone.layers.19.norm.weight": "model-00002-of-00004.safetensors",
75
+ "backbone.layers.2.mixer.A_log": "model-00001-of-00004.safetensors",
76
+ "backbone.layers.2.mixer.D": "model-00001-of-00004.safetensors",
77
+ "backbone.layers.2.mixer.conv1d.bias": "model-00001-of-00004.safetensors",
78
+ "backbone.layers.2.mixer.conv1d.weight": "model-00001-of-00004.safetensors",
79
+ "backbone.layers.2.mixer.dt_bias": "model-00001-of-00004.safetensors",
80
+ "backbone.layers.2.mixer.in_proj.weight": "model-00001-of-00004.safetensors",
81
+ "backbone.layers.2.mixer.norm.weight": "model-00001-of-00004.safetensors",
82
+ "backbone.layers.2.mixer.out_proj.weight": "model-00001-of-00004.safetensors",
83
+ "backbone.layers.2.norm.weight": "model-00001-of-00004.safetensors",
84
+ "backbone.layers.20.mixer.A_log": "model-00002-of-00004.safetensors",
85
+ "backbone.layers.20.mixer.D": "model-00002-of-00004.safetensors",
86
+ "backbone.layers.20.mixer.conv1d.bias": "model-00002-of-00004.safetensors",
87
+ "backbone.layers.20.mixer.conv1d.weight": "model-00002-of-00004.safetensors",
88
+ "backbone.layers.20.mixer.dt_bias": "model-00002-of-00004.safetensors",
89
+ "backbone.layers.20.mixer.in_proj.weight": "model-00002-of-00004.safetensors",
90
+ "backbone.layers.20.mixer.norm.weight": "model-00002-of-00004.safetensors",
91
+ "backbone.layers.20.mixer.out_proj.weight": "model-00002-of-00004.safetensors",
92
+ "backbone.layers.20.norm.weight": "model-00002-of-00004.safetensors",
93
+ "backbone.layers.21.mixer.down_proj.weight": "model-00002-of-00004.safetensors",
94
+ "backbone.layers.21.mixer.up_proj.weight": "model-00002-of-00004.safetensors",
95
+ "backbone.layers.21.norm.weight": "model-00002-of-00004.safetensors",
96
+ "backbone.layers.22.mixer.A_log": "model-00002-of-00004.safetensors",
97
+ "backbone.layers.22.mixer.D": "model-00002-of-00004.safetensors",
98
+ "backbone.layers.22.mixer.conv1d.bias": "model-00002-of-00004.safetensors",
99
+ "backbone.layers.22.mixer.conv1d.weight": "model-00002-of-00004.safetensors",
100
+ "backbone.layers.22.mixer.dt_bias": "model-00002-of-00004.safetensors",
101
+ "backbone.layers.22.mixer.in_proj.weight": "model-00002-of-00004.safetensors",
102
+ "backbone.layers.22.mixer.norm.weight": "model-00002-of-00004.safetensors",
103
+ "backbone.layers.22.mixer.out_proj.weight": "model-00002-of-00004.safetensors",
104
+ "backbone.layers.22.norm.weight": "model-00002-of-00004.safetensors",
105
+ "backbone.layers.23.mixer.down_proj.weight": "model-00002-of-00004.safetensors",
106
+ "backbone.layers.23.mixer.up_proj.weight": "model-00002-of-00004.safetensors",
107
+ "backbone.layers.23.norm.weight": "model-00002-of-00004.safetensors",
108
+ "backbone.layers.24.mixer.A_log": "model-00002-of-00004.safetensors",
109
+ "backbone.layers.24.mixer.D": "model-00002-of-00004.safetensors",
110
+ "backbone.layers.24.mixer.conv1d.bias": "model-00002-of-00004.safetensors",
111
+ "backbone.layers.24.mixer.conv1d.weight": "model-00002-of-00004.safetensors",
112
+ "backbone.layers.24.mixer.dt_bias": "model-00002-of-00004.safetensors",
113
+ "backbone.layers.24.mixer.in_proj.weight": "model-00002-of-00004.safetensors",
114
+ "backbone.layers.24.mixer.norm.weight": "model-00002-of-00004.safetensors",
115
+ "backbone.layers.24.mixer.out_proj.weight": "model-00002-of-00004.safetensors",
116
+ "backbone.layers.24.norm.weight": "model-00002-of-00004.safetensors",
117
+ "backbone.layers.25.mixer.down_proj.weight": "model-00002-of-00004.safetensors",
118
+ "backbone.layers.25.mixer.up_proj.weight": "model-00002-of-00004.safetensors",
119
+ "backbone.layers.25.norm.weight": "model-00002-of-00004.safetensors",
120
+ "backbone.layers.26.mixer.A_log": "model-00002-of-00004.safetensors",
121
+ "backbone.layers.26.mixer.D": "model-00002-of-00004.safetensors",
122
+ "backbone.layers.26.mixer.conv1d.bias": "model-00002-of-00004.safetensors",
123
+ "backbone.layers.26.mixer.conv1d.weight": "model-00002-of-00004.safetensors",
124
+ "backbone.layers.26.mixer.dt_bias": "model-00002-of-00004.safetensors",
125
+ "backbone.layers.26.mixer.in_proj.weight": "model-00002-of-00004.safetensors",
126
+ "backbone.layers.26.mixer.norm.weight": "model-00002-of-00004.safetensors",
127
+ "backbone.layers.26.mixer.out_proj.weight": "model-00002-of-00004.safetensors",
128
+ "backbone.layers.26.norm.weight": "model-00002-of-00004.safetensors",
129
+ "backbone.layers.27.mixer.down_proj.weight": "model-00002-of-00004.safetensors",
130
+ "backbone.layers.27.mixer.up_proj.weight": "model-00002-of-00004.safetensors",
131
+ "backbone.layers.27.norm.weight": "model-00002-of-00004.safetensors",
132
+ "backbone.layers.28.mixer.A_log": "model-00002-of-00004.safetensors",
133
+ "backbone.layers.28.mixer.D": "model-00002-of-00004.safetensors",
134
+ "backbone.layers.28.mixer.conv1d.bias": "model-00002-of-00004.safetensors",
135
+ "backbone.layers.28.mixer.conv1d.weight": "model-00002-of-00004.safetensors",
136
+ "backbone.layers.28.mixer.dt_bias": "model-00002-of-00004.safetensors",
137
+ "backbone.layers.28.mixer.in_proj.weight": "model-00002-of-00004.safetensors",
138
+ "backbone.layers.28.mixer.norm.weight": "model-00002-of-00004.safetensors",
139
+ "backbone.layers.28.mixer.out_proj.weight": "model-00002-of-00004.safetensors",
140
+ "backbone.layers.28.norm.weight": "model-00002-of-00004.safetensors",
141
+ "backbone.layers.29.mixer.k_proj.weight": "model-00002-of-00004.safetensors",
142
+ "backbone.layers.29.mixer.o_proj.weight": "model-00002-of-00004.safetensors",
143
+ "backbone.layers.29.mixer.q_proj.weight": "model-00002-of-00004.safetensors",
144
+ "backbone.layers.29.mixer.v_proj.weight": "model-00002-of-00004.safetensors",
145
+ "backbone.layers.29.norm.weight": "model-00002-of-00004.safetensors",
146
+ "backbone.layers.3.mixer.down_proj.weight": "model-00001-of-00004.safetensors",
147
+ "backbone.layers.3.mixer.up_proj.weight": "model-00001-of-00004.safetensors",
148
+ "backbone.layers.3.norm.weight": "model-00001-of-00004.safetensors",
149
+ "backbone.layers.30.mixer.down_proj.weight": "model-00002-of-00004.safetensors",
150
+ "backbone.layers.30.mixer.up_proj.weight": "model-00002-of-00004.safetensors",
151
+ "backbone.layers.30.norm.weight": "model-00002-of-00004.safetensors",
152
+ "backbone.layers.31.mixer.A_log": "model-00002-of-00004.safetensors",
153
+ "backbone.layers.31.mixer.D": "model-00002-of-00004.safetensors",
154
+ "backbone.layers.31.mixer.conv1d.bias": "model-00002-of-00004.safetensors",
155
+ "backbone.layers.31.mixer.conv1d.weight": "model-00002-of-00004.safetensors",
156
+ "backbone.layers.31.mixer.dt_bias": "model-00002-of-00004.safetensors",
157
+ "backbone.layers.31.mixer.in_proj.weight": "model-00002-of-00004.safetensors",
158
+ "backbone.layers.31.mixer.norm.weight": "model-00002-of-00004.safetensors",
159
+ "backbone.layers.31.mixer.out_proj.weight": "model-00002-of-00004.safetensors",
160
+ "backbone.layers.31.norm.weight": "model-00002-of-00004.safetensors",
161
+ "backbone.layers.32.mixer.down_proj.weight": "model-00002-of-00004.safetensors",
162
+ "backbone.layers.32.mixer.up_proj.weight": "model-00002-of-00004.safetensors",
163
+ "backbone.layers.32.norm.weight": "model-00002-of-00004.safetensors",
164
+ "backbone.layers.33.mixer.A_log": "model-00002-of-00004.safetensors",
165
+ "backbone.layers.33.mixer.D": "model-00002-of-00004.safetensors",
166
+ "backbone.layers.33.mixer.conv1d.bias": "model-00002-of-00004.safetensors",
167
+ "backbone.layers.33.mixer.conv1d.weight": "model-00002-of-00004.safetensors",
168
+ "backbone.layers.33.mixer.dt_bias": "model-00002-of-00004.safetensors",
169
+ "backbone.layers.33.mixer.in_proj.weight": "model-00003-of-00004.safetensors",
170
+ "backbone.layers.33.mixer.norm.weight": "model-00003-of-00004.safetensors",
171
+ "backbone.layers.33.mixer.out_proj.weight": "model-00003-of-00004.safetensors",
172
+ "backbone.layers.33.norm.weight": "model-00002-of-00004.safetensors",
173
+ "backbone.layers.34.mixer.down_proj.weight": "model-00003-of-00004.safetensors",
174
+ "backbone.layers.34.mixer.up_proj.weight": "model-00003-of-00004.safetensors",
175
+ "backbone.layers.34.norm.weight": "model-00003-of-00004.safetensors",
176
+ "backbone.layers.35.mixer.A_log": "model-00003-of-00004.safetensors",
177
+ "backbone.layers.35.mixer.D": "model-00003-of-00004.safetensors",
178
+ "backbone.layers.35.mixer.conv1d.bias": "model-00003-of-00004.safetensors",
179
+ "backbone.layers.35.mixer.conv1d.weight": "model-00003-of-00004.safetensors",
180
+ "backbone.layers.35.mixer.dt_bias": "model-00003-of-00004.safetensors",
181
+ "backbone.layers.35.mixer.in_proj.weight": "model-00003-of-00004.safetensors",
182
+ "backbone.layers.35.mixer.norm.weight": "model-00003-of-00004.safetensors",
183
+ "backbone.layers.35.mixer.out_proj.weight": "model-00003-of-00004.safetensors",
184
+ "backbone.layers.35.norm.weight": "model-00003-of-00004.safetensors",
185
+ "backbone.layers.36.mixer.down_proj.weight": "model-00003-of-00004.safetensors",
186
+ "backbone.layers.36.mixer.up_proj.weight": "model-00003-of-00004.safetensors",
187
+ "backbone.layers.36.norm.weight": "model-00003-of-00004.safetensors",
188
+ "backbone.layers.37.mixer.A_log": "model-00003-of-00004.safetensors",
189
+ "backbone.layers.37.mixer.D": "model-00003-of-00004.safetensors",
190
+ "backbone.layers.37.mixer.conv1d.bias": "model-00003-of-00004.safetensors",
191
+ "backbone.layers.37.mixer.conv1d.weight": "model-00003-of-00004.safetensors",
192
+ "backbone.layers.37.mixer.dt_bias": "model-00003-of-00004.safetensors",
193
+ "backbone.layers.37.mixer.in_proj.weight": "model-00003-of-00004.safetensors",
194
+ "backbone.layers.37.mixer.norm.weight": "model-00003-of-00004.safetensors",
195
+ "backbone.layers.37.mixer.out_proj.weight": "model-00003-of-00004.safetensors",
196
+ "backbone.layers.37.norm.weight": "model-00003-of-00004.safetensors",
197
+ "backbone.layers.38.mixer.down_proj.weight": "model-00003-of-00004.safetensors",
198
+ "backbone.layers.38.mixer.up_proj.weight": "model-00003-of-00004.safetensors",
199
+ "backbone.layers.38.norm.weight": "model-00003-of-00004.safetensors",
200
+ "backbone.layers.39.mixer.A_log": "model-00003-of-00004.safetensors",
201
+ "backbone.layers.39.mixer.D": "model-00003-of-00004.safetensors",
202
+ "backbone.layers.39.mixer.conv1d.bias": "model-00003-of-00004.safetensors",
203
+ "backbone.layers.39.mixer.conv1d.weight": "model-00003-of-00004.safetensors",
204
+ "backbone.layers.39.mixer.dt_bias": "model-00003-of-00004.safetensors",
205
+ "backbone.layers.39.mixer.in_proj.weight": "model-00003-of-00004.safetensors",
206
+ "backbone.layers.39.mixer.norm.weight": "model-00003-of-00004.safetensors",
207
+ "backbone.layers.39.mixer.out_proj.weight": "model-00003-of-00004.safetensors",
208
+ "backbone.layers.39.norm.weight": "model-00003-of-00004.safetensors",
209
+ "backbone.layers.4.mixer.A_log": "model-00001-of-00004.safetensors",
210
+ "backbone.layers.4.mixer.D": "model-00001-of-00004.safetensors",
211
+ "backbone.layers.4.mixer.conv1d.bias": "model-00001-of-00004.safetensors",
212
+ "backbone.layers.4.mixer.conv1d.weight": "model-00001-of-00004.safetensors",
213
+ "backbone.layers.4.mixer.dt_bias": "model-00001-of-00004.safetensors",
214
+ "backbone.layers.4.mixer.in_proj.weight": "model-00001-of-00004.safetensors",
215
+ "backbone.layers.4.mixer.norm.weight": "model-00001-of-00004.safetensors",
216
+ "backbone.layers.4.mixer.out_proj.weight": "model-00001-of-00004.safetensors",
217
+ "backbone.layers.4.norm.weight": "model-00001-of-00004.safetensors",
218
+ "backbone.layers.40.mixer.k_proj.weight": "model-00003-of-00004.safetensors",
219
+ "backbone.layers.40.mixer.o_proj.weight": "model-00003-of-00004.safetensors",
220
+ "backbone.layers.40.mixer.q_proj.weight": "model-00003-of-00004.safetensors",
221
+ "backbone.layers.40.mixer.v_proj.weight": "model-00003-of-00004.safetensors",
222
+ "backbone.layers.40.norm.weight": "model-00003-of-00004.safetensors",
223
+ "backbone.layers.41.mixer.down_proj.weight": "model-00003-of-00004.safetensors",
224
+ "backbone.layers.41.mixer.up_proj.weight": "model-00003-of-00004.safetensors",
225
+ "backbone.layers.41.norm.weight": "model-00003-of-00004.safetensors",
226
+ "backbone.layers.42.mixer.A_log": "model-00003-of-00004.safetensors",
227
+ "backbone.layers.42.mixer.D": "model-00003-of-00004.safetensors",
228
+ "backbone.layers.42.mixer.conv1d.bias": "model-00003-of-00004.safetensors",
229
+ "backbone.layers.42.mixer.conv1d.weight": "model-00003-of-00004.safetensors",
230
+ "backbone.layers.42.mixer.dt_bias": "model-00003-of-00004.safetensors",
231
+ "backbone.layers.42.mixer.in_proj.weight": "model-00003-of-00004.safetensors",
232
+ "backbone.layers.42.mixer.norm.weight": "model-00003-of-00004.safetensors",
233
+ "backbone.layers.42.mixer.out_proj.weight": "model-00003-of-00004.safetensors",
234
+ "backbone.layers.42.norm.weight": "model-00003-of-00004.safetensors",
235
+ "backbone.layers.43.mixer.down_proj.weight": "model-00003-of-00004.safetensors",
236
+ "backbone.layers.43.mixer.up_proj.weight": "model-00003-of-00004.safetensors",
237
+ "backbone.layers.43.norm.weight": "model-00003-of-00004.safetensors",
238
+ "backbone.layers.44.mixer.A_log": "model-00003-of-00004.safetensors",
239
+ "backbone.layers.44.mixer.D": "model-00003-of-00004.safetensors",
240
+ "backbone.layers.44.mixer.conv1d.bias": "model-00003-of-00004.safetensors",
241
+ "backbone.layers.44.mixer.conv1d.weight": "model-00003-of-00004.safetensors",
242
+ "backbone.layers.44.mixer.dt_bias": "model-00003-of-00004.safetensors",
243
+ "backbone.layers.44.mixer.in_proj.weight": "model-00003-of-00004.safetensors",
244
+ "backbone.layers.44.mixer.norm.weight": "model-00003-of-00004.safetensors",
245
+ "backbone.layers.44.mixer.out_proj.weight": "model-00003-of-00004.safetensors",
246
+ "backbone.layers.44.norm.weight": "model-00003-of-00004.safetensors",
247
+ "backbone.layers.45.mixer.down_proj.weight": "model-00003-of-00004.safetensors",
248
+ "backbone.layers.45.mixer.up_proj.weight": "model-00003-of-00004.safetensors",
249
+ "backbone.layers.45.norm.weight": "model-00003-of-00004.safetensors",
250
+ "backbone.layers.46.mixer.A_log": "model-00003-of-00004.safetensors",
251
+ "backbone.layers.46.mixer.D": "model-00003-of-00004.safetensors",
252
+ "backbone.layers.46.mixer.conv1d.bias": "model-00003-of-00004.safetensors",
253
+ "backbone.layers.46.mixer.conv1d.weight": "model-00003-of-00004.safetensors",
254
+ "backbone.layers.46.mixer.dt_bias": "model-00003-of-00004.safetensors",
255
+ "backbone.layers.46.mixer.in_proj.weight": "model-00003-of-00004.safetensors",
256
+ "backbone.layers.46.mixer.norm.weight": "model-00003-of-00004.safetensors",
257
+ "backbone.layers.46.mixer.out_proj.weight": "model-00003-of-00004.safetensors",
258
+ "backbone.layers.46.norm.weight": "model-00003-of-00004.safetensors",
259
+ "backbone.layers.47.mixer.down_proj.weight": "model-00003-of-00004.safetensors",
260
+ "backbone.layers.47.mixer.up_proj.weight": "model-00003-of-00004.safetensors",
261
+ "backbone.layers.47.norm.weight": "model-00003-of-00004.safetensors",
262
+ "backbone.layers.48.mixer.A_log": "model-00003-of-00004.safetensors",
263
+ "backbone.layers.48.mixer.D": "model-00003-of-00004.safetensors",
264
+ "backbone.layers.48.mixer.conv1d.bias": "model-00003-of-00004.safetensors",
265
+ "backbone.layers.48.mixer.conv1d.weight": "model-00003-of-00004.safetensors",
266
+ "backbone.layers.48.mixer.dt_bias": "model-00003-of-00004.safetensors",
267
+ "backbone.layers.48.mixer.in_proj.weight": "model-00003-of-00004.safetensors",
268
+ "backbone.layers.48.mixer.norm.weight": "model-00003-of-00004.safetensors",
269
+ "backbone.layers.48.mixer.out_proj.weight": "model-00003-of-00004.safetensors",
270
+ "backbone.layers.48.norm.weight": "model-00003-of-00004.safetensors",
271
+ "backbone.layers.49.mixer.down_proj.weight": "model-00003-of-00004.safetensors",
272
+ "backbone.layers.49.mixer.up_proj.weight": "model-00003-of-00004.safetensors",
273
+ "backbone.layers.49.norm.weight": "model-00003-of-00004.safetensors",
274
+ "backbone.layers.5.mixer.down_proj.weight": "model-00001-of-00004.safetensors",
275
+ "backbone.layers.5.mixer.up_proj.weight": "model-00001-of-00004.safetensors",
276
+ "backbone.layers.5.norm.weight": "model-00001-of-00004.safetensors",
277
+ "backbone.layers.50.mixer.A_log": "model-00003-of-00004.safetensors",
278
+ "backbone.layers.50.mixer.D": "model-00003-of-00004.safetensors",
279
+ "backbone.layers.50.mixer.conv1d.bias": "model-00003-of-00004.safetensors",
280
+ "backbone.layers.50.mixer.conv1d.weight": "model-00003-of-00004.safetensors",
281
+ "backbone.layers.50.mixer.dt_bias": "model-00003-of-00004.safetensors",
282
+ "backbone.layers.50.mixer.in_proj.weight": "model-00003-of-00004.safetensors",
283
+ "backbone.layers.50.mixer.norm.weight": "model-00003-of-00004.safetensors",
284
+ "backbone.layers.50.mixer.out_proj.weight": "model-00003-of-00004.safetensors",
285
+ "backbone.layers.50.norm.weight": "model-00003-of-00004.safetensors",
286
+ "backbone.layers.51.mixer.down_proj.weight": "model-00004-of-00004.safetensors",
287
+ "backbone.layers.51.mixer.up_proj.weight": "model-00004-of-00004.safetensors",
288
+ "backbone.layers.51.norm.weight": "model-00003-of-00004.safetensors",
289
+ "backbone.layers.6.mixer.A_log": "model-00001-of-00004.safetensors",
290
+ "backbone.layers.6.mixer.D": "model-00001-of-00004.safetensors",
291
+ "backbone.layers.6.mixer.conv1d.bias": "model-00001-of-00004.safetensors",
292
+ "backbone.layers.6.mixer.conv1d.weight": "model-00001-of-00004.safetensors",
293
+ "backbone.layers.6.mixer.dt_bias": "model-00001-of-00004.safetensors",
294
+ "backbone.layers.6.mixer.in_proj.weight": "model-00001-of-00004.safetensors",
295
+ "backbone.layers.6.mixer.norm.weight": "model-00001-of-00004.safetensors",
296
+ "backbone.layers.6.mixer.out_proj.weight": "model-00001-of-00004.safetensors",
297
+ "backbone.layers.6.norm.weight": "model-00001-of-00004.safetensors",
298
+ "backbone.layers.7.mixer.k_proj.weight": "model-00001-of-00004.safetensors",
299
+ "backbone.layers.7.mixer.o_proj.weight": "model-00001-of-00004.safetensors",
300
+ "backbone.layers.7.mixer.q_proj.weight": "model-00001-of-00004.safetensors",
301
+ "backbone.layers.7.mixer.v_proj.weight": "model-00001-of-00004.safetensors",
302
+ "backbone.layers.7.norm.weight": "model-00001-of-00004.safetensors",
303
+ "backbone.layers.8.mixer.down_proj.weight": "model-00001-of-00004.safetensors",
304
+ "backbone.layers.8.mixer.up_proj.weight": "model-00001-of-00004.safetensors",
305
+ "backbone.layers.8.norm.weight": "model-00001-of-00004.safetensors",
306
+ "backbone.layers.9.mixer.A_log": "model-00001-of-00004.safetensors",
307
+ "backbone.layers.9.mixer.D": "model-00001-of-00004.safetensors",
308
+ "backbone.layers.9.mixer.conv1d.bias": "model-00001-of-00004.safetensors",
309
+ "backbone.layers.9.mixer.conv1d.weight": "model-00001-of-00004.safetensors",
310
+ "backbone.layers.9.mixer.dt_bias": "model-00001-of-00004.safetensors",
311
+ "backbone.layers.9.mixer.in_proj.weight": "model-00001-of-00004.safetensors",
312
+ "backbone.layers.9.mixer.norm.weight": "model-00001-of-00004.safetensors",
313
+ "backbone.layers.9.mixer.out_proj.weight": "model-00001-of-00004.safetensors",
314
+ "backbone.layers.9.norm.weight": "model-00001-of-00004.safetensors",
315
+ "backbone.norm_f.weight": "model-00004-of-00004.safetensors",
316
+ "lm_head.weight": "model-00004-of-00004.safetensors"
317
+ }
318
+ }
modeling_nemotron_h.py ADDED
@@ -0,0 +1,1887 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # coding=utf-8
2
+ # Copyright 2024 HuggingFace Inc. team.
3
+ # Copyright (c) 2025, NVIDIA CORPORATION. All rights reserved.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ """PyTorch NemotronH model."""
17
+
18
+ import math
19
+ from dataclasses import dataclass
20
+ from typing import Any, Dict, Optional, Tuple, Union
21
+
22
+ import torch
23
+ import torch.utils.checkpoint
24
+ from torch import nn
25
+ from torch.nn import CrossEntropyLoss
26
+
27
+ from transformers.activations import ACT2FN
28
+ from transformers.cache_utils import DynamicCache # we need __iter__ and __len__ of pkv
29
+ from transformers.generation import GenerationMixin
30
+ from transformers.modeling_attn_mask_utils import (
31
+ AttentionMaskConverter,
32
+ )
33
+ from transformers.modeling_utils import PreTrainedModel
34
+ from transformers.utils import (
35
+ ModelOutput,
36
+ add_code_sample_docstrings,
37
+ add_start_docstrings,
38
+ add_start_docstrings_to_model_forward,
39
+ logging,
40
+ )
41
+ from transformers.utils.import_utils import (
42
+ is_causal_conv1d_available,
43
+ is_flash_attn_2_available,
44
+ is_flash_attn_greater_or_equal_2_10,
45
+ is_mamba_2_ssm_available,
46
+ )
47
+ from .configuration_nemotron_h import NemotronHConfig
48
+
49
+ logger = logging.get_logger(__name__)
50
+
51
+
52
+ # Copied from transformers.models.mamba.modeling_mamba2.modeling_mamba2.py with MAMBA2->NEMOTRONH,Mamba2->NemotronH
53
+ # For Mamba2 components Mamba2->NemotronHMamba2
54
+ if is_mamba_2_ssm_available():
55
+ from mamba_ssm.ops.triton.selective_state_update import selective_state_update
56
+ from mamba_ssm.ops.triton.ssd_combined import (
57
+ mamba_chunk_scan_combined,
58
+ mamba_split_conv1d_scan_combined,
59
+ )
60
+ else:
61
+ (
62
+ mamba_chunk_scan_combined,
63
+ mamba_split_conv1d_scan_combined,
64
+ selective_state_update,
65
+ ) = None, None, None
66
+
67
+ try:
68
+ # from mamba_ssm.ops.triton.layernorm_gated import RMSNorm as RMSNormGated
69
+ from mamba_ssm.ops.triton.layernorm_gated import rmsnorm_fn
70
+ except ImportError:
71
+ raise ImportError("mamba-ssm is required by the Mamba model but cannot be imported")
72
+
73
+ if is_causal_conv1d_available():
74
+ from causal_conv1d import causal_conv1d_fn, causal_conv1d_update
75
+ else:
76
+ causal_conv1d_update, causal_conv1d_fn = None, None
77
+
78
+ if is_flash_attn_2_available():
79
+ from transformers.modeling_flash_attention_utils import _flash_attention_forward
80
+
81
+ is_fast_path_available = all(
82
+ (
83
+ selective_state_update,
84
+ mamba_chunk_scan_combined,
85
+ mamba_split_conv1d_scan_combined,
86
+ causal_conv1d_fn,
87
+ causal_conv1d_update,
88
+ )
89
+ )
90
+
91
+
92
+ _CHECKPOINT_FOR_DOC = "nvidia/Nemotron-H-56B-Base-8K"
93
+ _CONFIG_FOR_DOC = "NemotronHConfig"
94
+
95
+
96
+ # Helper methods for segment sum computation
97
+
98
+
99
+ def pad_tensor_by_size(input_tensor: torch.Tensor, pad_size: int):
100
+ """
101
+ Padding x tensor with `pad_size` on the seq_len dim (dim=1)
102
+
103
+ Assumes that we only have tensors of either size 4 or 3
104
+ """
105
+ pad_shape = (
106
+ (0, 0, 0, 0, 0, pad_size, 0, 0)
107
+ if len(input_tensor.shape) == 4
108
+ else (0, 0, 0, pad_size, 0, 0)
109
+ )
110
+
111
+ return torch.nn.functional.pad(input_tensor, pad_shape, mode="constant", value=0)
112
+
113
+
114
+ def reshape_into_chunks(input_tensor, pad_size, chunk_size):
115
+ """
116
+ Padding input_tensor with `pad_size` on the seq_len dim (dim=1) and
117
+ simultaneously splitting it into chunk sequences.
118
+
119
+ Assumes that we only have tensors of either size 4 or 3
120
+ """
121
+ # [bsz, seq_len, ...] -> [bsz, seq_len multiple of chunk_size, ...]
122
+ input_tensor = pad_tensor_by_size(input_tensor, pad_size)
123
+
124
+ if len(input_tensor.shape) == 3:
125
+ # [bsz, seq_len multiple of chunk_size, num_heads] -> [bsz, -1, chunk_size, num_heads]
126
+ return input_tensor.reshape(
127
+ input_tensor.shape[0], -1, chunk_size, input_tensor.shape[2]
128
+ )
129
+ else:
130
+ # [bsz, seq_len multiple of chunk_size, num_heads, head_dim or state_size] -> [bsz, -1, chunk_size, num_heads, head_dim or state_size]
131
+ return input_tensor.reshape(
132
+ input_tensor.shape[0],
133
+ -1,
134
+ chunk_size,
135
+ input_tensor.shape[2],
136
+ input_tensor.shape[3],
137
+ )
138
+
139
+
140
+ def segment_sum(input_tensor):
141
+ """
142
+ More stable segment sum calculation. Uses cumulative sums and masking instead of direct subtractions.
143
+ """
144
+ chunk_size = input_tensor.size(-1)
145
+ # 1. expand input tensor to have an additional dimension and repeat along that dimension
146
+ # [..., chunk_size] -> [..., chunk_size, chunk_size]
147
+ input_tensor = input_tensor[..., None].expand(*input_tensor.size(), chunk_size)
148
+ # 2. create a lower triangular mask with the diagonal set to 0 to 0 out elements above diag
149
+ mask = torch.tril(
150
+ torch.ones(
151
+ chunk_size, chunk_size, device=input_tensor.device, dtype=torch.bool
152
+ ),
153
+ diagonal=-1,
154
+ )
155
+ input_tensor = input_tensor.masked_fill(~mask, 0)
156
+ # 3. compute actual cumsum
157
+ tensor_segsum = torch.cumsum(input_tensor, dim=-2)
158
+
159
+ # 4. apply mask to keep only the lower triangular part of the cumulative sum result (incl diagonal this time)
160
+ mask = torch.tril(
161
+ torch.ones(
162
+ chunk_size, chunk_size, device=input_tensor.device, dtype=torch.bool
163
+ ),
164
+ diagonal=0,
165
+ )
166
+ tensor_segsum = tensor_segsum.masked_fill(~mask, -torch.inf)
167
+ return tensor_segsum
168
+
169
+
170
+ def apply_mask_to_padding_states(hidden_states, attention_mask):
171
+ """
172
+ Tunes out the hidden states for padding tokens, see https://github.com/state-spaces/mamba/issues/66
173
+ """
174
+ if (
175
+ attention_mask is not None
176
+ and attention_mask.shape[1] > 1
177
+ and attention_mask.shape[0] > 1
178
+ ):
179
+ dtype = hidden_states.dtype
180
+ hidden_states = (hidden_states * attention_mask[:, :, None]).to(dtype)
181
+
182
+ return hidden_states
183
+
184
+
185
+ # Copied from https://github.com/huggingface/transformers/blob/main/src/transformers/models/jamba/modeling_jamba.py
186
+ class HybridMambaAttentionDynamicCache(DynamicCache):
187
+ """
188
+ A dynamic cache that can handle both the attention cache (which has a seq_len dimension) and the mamba cache
189
+ (which has a constant shape regardless of seq_len).
190
+
191
+ This cache has two sets of lists of tensors: `key_cache` and `value_cache` for attention cache and `conv_states`
192
+ and `ssm_states` for mamba cache. Each of these lists has `num_layers` tensors. The expected shape for each tensor
193
+ For attention layers, `key_cache` and `value_cache` have a shape of `(batch_size, num_heads, seq_len, head_dim)`,
194
+ while `conv_states` and `ssm_states` have a shape of `(batch_size, 0)` (empty tensors).
195
+ For mamba layers, `key_cache` and `value_cache` have a shape of `(batch_size, 0)` (empty tensors),
196
+ while `conv_states` represents the convolution state and has a shape of `(batch_size, d_inner, d_conv)`,
197
+ and `ssm_states` represents the ssm state and has a shape of `(batch_size, d_inner, d_state)`.
198
+ """
199
+
200
+ def __init__(self, config, batch_size, dtype=torch.float16, device=None):
201
+ super().__init__()
202
+ self.dtype = dtype
203
+ self.hybrid_override_pattern = config.hybrid_override_pattern
204
+ self.has_previous_state = False # only used by mamba
205
+ intermediate_size = config.expand * config.hidden_size
206
+ ssm_state_size = config.ssm_state_size
207
+ conv_kernel_size = config.conv_kernel
208
+ self.conv_states = []
209
+ self.ssm_states = []
210
+ self.transformer_layers = []
211
+ for i in range(config.num_hidden_layers):
212
+ if self.hybrid_override_pattern[i] == "M":
213
+ # Mamba layer
214
+ self.conv_states += [
215
+ torch.zeros(
216
+ batch_size,
217
+ intermediate_size,
218
+ conv_kernel_size,
219
+ device=device,
220
+ dtype=dtype,
221
+ )
222
+ ]
223
+ self.ssm_states += [
224
+ torch.zeros(
225
+ batch_size,
226
+ intermediate_size,
227
+ ssm_state_size,
228
+ device=device,
229
+ dtype=dtype,
230
+ )
231
+ ]
232
+ else:
233
+ # Attention or MLP layer
234
+ self.conv_states += [torch.tensor([[]] * batch_size, device=device)]
235
+ self.ssm_states += [torch.tensor([[]] * batch_size, device=device)]
236
+ self.transformer_layers.append(i)
237
+
238
+ self.key_cache = [
239
+ torch.tensor([[]] * batch_size, device=device)
240
+ for _ in range(config.num_hidden_layers)
241
+ ]
242
+ self.value_cache = [
243
+ torch.tensor([[]] * batch_size, device=device)
244
+ for _ in range(config.num_hidden_layers)
245
+ ]
246
+
247
+ def update(
248
+ self,
249
+ key_states: torch.Tensor,
250
+ value_states: torch.Tensor,
251
+ layer_idx: int,
252
+ cache_kwargs: Optional[Dict[str, Any]] = None,
253
+ ) -> Tuple[torch.Tensor, torch.Tensor]:
254
+ # Update the cache
255
+ if self.key_cache[layer_idx].shape[-1] == 0:
256
+ self.key_cache[layer_idx] = key_states
257
+ self.value_cache[layer_idx] = value_states
258
+ else:
259
+ self.key_cache[layer_idx] = torch.cat(
260
+ [self.key_cache[layer_idx], key_states], dim=2
261
+ )
262
+ self.value_cache[layer_idx] = torch.cat(
263
+ [self.value_cache[layer_idx], value_states], dim=2
264
+ )
265
+
266
+ return self.key_cache[layer_idx], self.value_cache[layer_idx]
267
+
268
+ def reorder_cache(self, beam_idx: torch.LongTensor):
269
+ """Reorders the cache for beam search, given the selected beam indices."""
270
+ for layer_idx in range(len(self.key_cache)):
271
+ device = self.key_cache[layer_idx].device
272
+ self.key_cache[layer_idx] = self.key_cache[layer_idx].index_select(
273
+ 0, beam_idx.to(device)
274
+ )
275
+ device = self.value_cache[layer_idx].device
276
+ self.value_cache[layer_idx] = self.value_cache[layer_idx].index_select(
277
+ 0, beam_idx.to(device)
278
+ )
279
+
280
+ device = self.conv_states[layer_idx].device
281
+ self.conv_states[layer_idx] = self.conv_states[layer_idx].index_select(
282
+ 0, beam_idx.to(device)
283
+ )
284
+ device = self.ssm_states[layer_idx].device
285
+ self.ssm_states[layer_idx] = self.ssm_states[layer_idx].index_select(
286
+ 0, beam_idx.to(device)
287
+ )
288
+
289
+ def get_seq_length(self, layer_idx: Optional[int] = 0) -> int:
290
+ """Returns the sequence length of the cached states. A layer index can be optionally passed."""
291
+ # take any layer that contains cache and not empty tensor
292
+ layer_idx = (
293
+ self.transformer_layers[0]
294
+ if layer_idx not in self.transformer_layers
295
+ else layer_idx
296
+ )
297
+ if len(self.key_cache) <= layer_idx:
298
+ return 0
299
+ return self.key_cache[layer_idx].shape[-2]
300
+
301
+ def to_legacy_cache(self) -> Tuple[Tuple[torch.Tensor], Tuple[torch.Tensor]]:
302
+ raise NotImplementedError(
303
+ "HybridMambaAttentionDynamicCache does not have a legacy cache equivalent."
304
+ )
305
+
306
+ @classmethod
307
+ def from_legacy_cache(
308
+ cls, past_key_values: Optional[Tuple[Tuple[torch.FloatTensor]]] = None
309
+ ) -> "DynamicCache":
310
+ raise NotImplementedError(
311
+ "HybridMambaAttentionDynamicCache does not have a legacy cache equivalent."
312
+ )
313
+
314
+ # Copied from modeling_mamba2.py
315
+ def update_conv_state(
316
+ self, layer_idx: int, new_conv_state: torch.Tensor, cache_init: bool = False
317
+ ) -> torch.Tensor:
318
+ if cache_init:
319
+ self.conv_states[layer_idx] = new_conv_state.to(self.conv_states.device)
320
+ else:
321
+ self.conv_states[layer_idx] = self.conv_states[layer_idx].roll(
322
+ shifts=-1, dims=-1
323
+ )
324
+ self.conv_states[layer_idx][:, :, -1] = new_conv_state[:, 0, :].to(
325
+ self.conv_states.device
326
+ )
327
+ return self.conv_states[layer_idx]
328
+
329
+ def update_ssm_state(self, layer_idx: int, new_ssm_state: torch.Tensor):
330
+ self.ssm_states[layer_idx] = new_ssm_state.to(self.ssm_states.device)
331
+ return self.ssm_states[layer_idx]
332
+
333
+ def reset(self):
334
+ self.conv_states.zero_()
335
+ self.ssm_states.zero_()
336
+
337
+
338
+ class MambaRMSNormGated(torch.nn.Module):
339
+ def __init__(self, hidden_size, group_size, eps=1e-5):
340
+ super().__init__()
341
+ self.weight = nn.Parameter(torch.ones(hidden_size))
342
+ self.variance_epsilon = eps
343
+ self.group_size = group_size
344
+
345
+ # jan28b version
346
+ def forward(self, hidden_states, gate=None):
347
+ return rmsnorm_fn(
348
+ x=hidden_states,
349
+ weight=self.weight,
350
+ bias=None, # No bias
351
+ z=gate,
352
+ eps=self.variance_epsilon,
353
+ group_size=self.group_size,
354
+ norm_before_gate=False,
355
+ )
356
+
357
+
358
+ class NemotronHMamba2Mixer(nn.Module):
359
+ """
360
+ Compute ∆, A, B, C, and D the state space parameters and compute the `contextualized_states`.
361
+ A, D are input independent (see Mamba paper [1] Section 3.5.2 "Interpretation of A" for why A isn't selective)
362
+ ∆, B, C are input-dependent (this is a key difference between Mamba and the linear time invariant S4,
363
+ and is why Mamba is called **selective** state spaces)
364
+ """
365
+
366
+ def __init__(self, config: NemotronHConfig, layer_idx: int):
367
+ super().__init__()
368
+ self.num_heads = config.mamba_num_heads
369
+ self.hidden_size = config.hidden_size
370
+ self.ssm_state_size = config.ssm_state_size
371
+ self.conv_kernel_size = config.conv_kernel
372
+ self.intermediate_size = config.mamba_num_heads * config.mamba_head_dim
373
+ self.layer_idx = layer_idx
374
+ self.use_conv_bias = config.use_conv_bias
375
+ self.activation = config.mamba_hidden_act
376
+ self.act = ACT2FN[config.mamba_hidden_act]
377
+
378
+ self.layer_norm_epsilon = config.layer_norm_epsilon
379
+
380
+ self.n_groups = config.n_groups
381
+ self.head_dim = config.mamba_head_dim
382
+ self.chunk_size = config.chunk_size
383
+
384
+ self.time_step_limit = config.time_step_limit
385
+ self.time_step_min = config.time_step_min
386
+ self.time_step_max = config.time_step_max
387
+
388
+ self.conv_dim = self.intermediate_size + 2 * self.n_groups * self.ssm_state_size
389
+ self.conv1d = nn.Conv1d(
390
+ in_channels=self.conv_dim,
391
+ out_channels=self.conv_dim,
392
+ bias=config.use_conv_bias,
393
+ kernel_size=config.conv_kernel,
394
+ groups=self.conv_dim,
395
+ padding=config.conv_kernel - 1,
396
+ )
397
+
398
+ # projection of the input hidden states
399
+ projection_size = self.intermediate_size + self.conv_dim + self.num_heads
400
+ self.in_proj = nn.Linear(
401
+ self.hidden_size,
402
+ projection_size,
403
+ bias=config.use_bias,
404
+ )
405
+ # selective projection used to make dt, B and C input dependant
406
+
407
+ # time step projection (discretization)
408
+ # instantiate once and copy inv_dt in init_weights of PretrainedModel
409
+ self.dt_bias = nn.Parameter(torch.ones(self.num_heads))
410
+
411
+ # S4D real initialization. These are not discretized!
412
+ # The core is to load them, compute the discrete states, then write the updated state. Keeps the memory bounded
413
+ A = torch.arange(1, self.num_heads + 1)
414
+ self.A_log = nn.Parameter(torch.log(A))
415
+ self.A_log._no_weight_decay = True
416
+ self.norm = MambaRMSNormGated(
417
+ self.intermediate_size,
418
+ eps=self.layer_norm_epsilon,
419
+ group_size=self.intermediate_size // self.n_groups,
420
+ )
421
+ self.D = nn.Parameter(torch.ones(self.num_heads))
422
+ self.D._no_weight_decay = True
423
+
424
+ self.out_proj = nn.Linear(
425
+ self.intermediate_size, self.hidden_size, bias=config.use_bias
426
+ )
427
+ self.use_bias = config.use_bias
428
+
429
+ if not is_fast_path_available:
430
+ logger.warning_once(
431
+ "The fast path is not available because on of `(selective_state_update, causal_conv1d_fn, causal_conv1d_update)`"
432
+ " is None. Falling back to the naive implementation. To install follow https://github.com/state-spaces/mamba/#installation and"
433
+ " https://github.com/Dao-AILab/causal-conv1d"
434
+ )
435
+
436
+ def cuda_kernels_forward(
437
+ self,
438
+ hidden_states: torch.Tensor,
439
+ cache_params: Optional[HybridMambaAttentionDynamicCache] = None,
440
+ cache_position: Optional[torch.LongTensor] = None,
441
+ attention_mask: Optional[torch.Tensor] = None,
442
+ ):
443
+ # 1. Gated MLP's linear projection
444
+ hidden_states = apply_mask_to_padding_states(hidden_states, attention_mask)
445
+ projected_states = self.in_proj(hidden_states)
446
+
447
+ # Set up dimensions for reshapes later
448
+ batch_size, seq_len, _ = hidden_states.shape
449
+ groups_time_state_size = self.n_groups * self.ssm_state_size
450
+ d_mlp = (
451
+ projected_states.shape[-1]
452
+ - 2 * self.intermediate_size
453
+ - 2 * self.n_groups * self.ssm_state_size
454
+ - self.num_heads
455
+ ) // 2
456
+
457
+ # Single step calculations via cache
458
+ if (
459
+ cache_params is not None
460
+ and cache_position is not None
461
+ and cache_position[0] > 0
462
+ ):
463
+ _, _, gate, hidden_states_B_C, dt = projected_states.squeeze(1).split(
464
+ [d_mlp, d_mlp, self.intermediate_size, self.conv_dim, self.num_heads],
465
+ dim=-1,
466
+ )
467
+
468
+ # 2. Convolution sequence transformation
469
+ hidden_states_B_C = causal_conv1d_update(
470
+ hidden_states_B_C,
471
+ cache_params.conv_states[self.layer_idx],
472
+ self.conv1d.weight.squeeze(1),
473
+ self.conv1d.bias,
474
+ self.activation,
475
+ )
476
+
477
+ hidden_states, B, C = torch.split(
478
+ hidden_states_B_C,
479
+ [
480
+ self.intermediate_size,
481
+ groups_time_state_size,
482
+ groups_time_state_size,
483
+ ],
484
+ dim=-1,
485
+ )
486
+
487
+ # 3. SSM transformation
488
+ A = -torch.exp(self.A_log.float()) # (nheads,)
489
+ A = (
490
+ A[:, None, ...][:, :, None]
491
+ .expand(-1, self.head_dim, self.ssm_state_size)
492
+ .to(dtype=torch.float32)
493
+ )
494
+ dt = dt[:, :, None].expand(-1, -1, self.head_dim)
495
+ dt_bias = self.dt_bias[:, None, ...].expand(-1, self.head_dim)
496
+ D = self.D[:, None, ...].expand(-1, self.head_dim)
497
+ B = B.view(batch_size, self.n_groups, B.shape[1] // self.n_groups)
498
+ C = C.view(batch_size, self.n_groups, C.shape[1] // self.n_groups)
499
+ hidden_states_reshaped = hidden_states.view(
500
+ batch_size, self.num_heads, self.head_dim
501
+ )
502
+ hidden_states = selective_state_update(
503
+ cache_params.ssm_states[self.layer_idx],
504
+ hidden_states_reshaped,
505
+ dt,
506
+ A,
507
+ B,
508
+ C,
509
+ D,
510
+ z=None,
511
+ dt_bias=dt_bias,
512
+ dt_softplus=True,
513
+ )
514
+ hidden_states = hidden_states.view(
515
+ batch_size, self.num_heads * self.head_dim
516
+ )
517
+ hidden_states = self.norm(hidden_states, gate)
518
+
519
+ # 4. Final linear projection
520
+ out = self.out_proj(hidden_states)[:, None, ...]
521
+
522
+ # Fused calculations or step by step if no initialized cache is found
523
+ else:
524
+ A = -torch.exp(
525
+ self.A_log.float()
526
+ ) # (num_heads) or (intermediate_size, state_size)
527
+ dt_limit_kwargs = (
528
+ {}
529
+ if self.time_step_limit == (0.0, float("inf"))
530
+ else {"dt_limit": self.time_step_limit}
531
+ )
532
+
533
+ # 2-4. Fused kernel for conv1d, SSM, and the final projection
534
+ if self.training and cache_params is None:
535
+ out = mamba_split_conv1d_scan_combined(
536
+ projected_states,
537
+ self.conv1d.weight.squeeze(1),
538
+ self.conv1d.bias,
539
+ self.dt_bias,
540
+ A,
541
+ D=self.D,
542
+ chunk_size=self.chunk_size,
543
+ seq_idx=None, # was seq_idx
544
+ activation=self.activation,
545
+ rmsnorm_weight=self.norm.weight,
546
+ rmsnorm_eps=self.norm.variance_epsilon,
547
+ outproj_weight=self.out_proj.weight,
548
+ outproj_bias=self.out_proj.bias,
549
+ headdim=self.head_dim,
550
+ ngroups=self.n_groups,
551
+ norm_before_gate=False,
552
+ return_final_states=False,
553
+ **dt_limit_kwargs,
554
+ )
555
+
556
+ else:
557
+ _, _, gate, hidden_states_B_C, dt = projected_states.split(
558
+ [
559
+ d_mlp,
560
+ d_mlp,
561
+ self.intermediate_size,
562
+ self.conv_dim,
563
+ self.num_heads,
564
+ ],
565
+ dim=-1,
566
+ )
567
+
568
+ # 2. Convolution sequence transformation
569
+ # Init cache
570
+ if cache_params is not None:
571
+ hidden_states_B_C_transposed = hidden_states_B_C.transpose(1, 2)
572
+ conv_states = nn.functional.pad(
573
+ hidden_states_B_C_transposed,
574
+ (
575
+ cache_params.conv_kernel_size
576
+ - hidden_states_B_C_transposed.shape[-1],
577
+ 0,
578
+ ),
579
+ )
580
+ cache_params.update_conv_state(
581
+ layer_idx=self.layer_idx,
582
+ new_conv_state=conv_states,
583
+ cache_init=True,
584
+ )
585
+
586
+ if self.activation not in ["silu", "swish"]:
587
+ hidden_states_B_C = self.act(
588
+ self.conv1d(hidden_states_B_C.transpose(1, 2))[
589
+ ..., :seq_len
590
+ ].transpose(1, 2)
591
+ )
592
+ else:
593
+ hidden_states_B_C = causal_conv1d_fn(
594
+ x=hidden_states_B_C.transpose(1, 2),
595
+ weight=self.conv1d.weight.squeeze(1),
596
+ bias=self.conv1d.bias,
597
+ activation=self.activation,
598
+ ).transpose(1, 2)
599
+ hidden_states_B_C = apply_mask_to_padding_states(
600
+ hidden_states_B_C, attention_mask
601
+ )
602
+ hidden_states, B, C = torch.split(
603
+ hidden_states_B_C,
604
+ [
605
+ self.intermediate_size,
606
+ groups_time_state_size,
607
+ groups_time_state_size,
608
+ ],
609
+ dim=-1,
610
+ )
611
+
612
+ # 3. SSM transformation
613
+ scan_output, ssm_state = mamba_chunk_scan_combined(
614
+ hidden_states.view(batch_size, seq_len, -1, self.head_dim),
615
+ dt,
616
+ A,
617
+ B.view(batch_size, seq_len, self.n_groups, -1),
618
+ C.view(batch_size, seq_len, self.n_groups, -1),
619
+ chunk_size=self.chunk_size,
620
+ D=self.D,
621
+ z=None,
622
+ seq_idx=None,
623
+ return_final_states=True,
624
+ dt_bias=self.dt_bias,
625
+ dt_softplus=True,
626
+ **dt_limit_kwargs,
627
+ )
628
+
629
+ # Init cache
630
+ if ssm_state is not None and cache_params is not None:
631
+ cache_params.update_ssm_state(
632
+ layer_idx=self.layer_idx, new_ssm_state=ssm_state
633
+ )
634
+
635
+ scan_output = scan_output.view(batch_size, seq_len, -1)
636
+
637
+ # Multiply "gate" branch and apply extra normalization layer
638
+ scan_output = self.norm(scan_output, gate)
639
+
640
+ # 4. Final linear projection
641
+ out = self.out_proj(scan_output)
642
+ return out
643
+
644
+ # fmt: off
645
+ def torch_forward(self, input_states, cache_params: Optional[HybridMambaAttentionDynamicCache]=None, cache_position:Optional[torch.LongTensor]=None, attention_mask: Optional[torch.Tensor]=None):
646
+ batch_size, seq_len, _ = input_states.shape
647
+ dtype = input_states.dtype
648
+
649
+ # 1. Gated MLP's linear projection
650
+ input_states = apply_mask_to_padding_states(input_states, attention_mask)
651
+ projected_states = self.in_proj(input_states)
652
+ d_mlp = (projected_states.shape[-1] - 2 * self.intermediate_size - 2 * self.n_groups * self.ssm_state_size-self.num_heads) // 2
653
+ _, _, gate, hidden_states_B_C, dt = projected_states.split(
654
+ [d_mlp, d_mlp, self.intermediate_size, self.conv_dim, self.num_heads], dim=-1
655
+ )
656
+
657
+ # 2. Convolution sequence transformation
658
+ if cache_params is not None and cache_position is not None and cache_position[0] > 0:
659
+ cache_params.update_conv_state(layer_idx=self.layer_idx, new_conv_state=hidden_states_B_C, cache_init=False)
660
+
661
+ # We need to guarantee that anything regarding the cache is on the same device
662
+ conv_states = cache_params.conv_states[self.layer_idx].to(device=self.conv1d.weight.device)
663
+
664
+ hidden_states_B_C = torch.sum(
665
+ conv_states * self.conv1d.weight.squeeze(1), dim=-1
666
+ )
667
+ if self.use_conv_bias:
668
+ hidden_states_B_C = hidden_states_B_C + self.conv1d.bias
669
+ hidden_states_B_C = self.act(hidden_states_B_C)
670
+ else:
671
+ # Init cache
672
+ if cache_params is not None:
673
+ hidden_states_B_C_transposed = hidden_states_B_C.transpose(1, 2)
674
+ conv_states = nn.functional.pad(
675
+ hidden_states_B_C_transposed, (cache_params.conv_kernel_size - hidden_states_B_C_transposed.shape[-1], 0)
676
+ )
677
+ cache_params.update_conv_state(layer_idx=self.layer_idx, new_conv_state=conv_states, cache_init=True)
678
+
679
+ hidden_states_B_C = self.act(self.conv1d(hidden_states_B_C.transpose(1, 2))[..., :seq_len].transpose(1, 2))
680
+
681
+ hidden_states_B_C = apply_mask_to_padding_states(hidden_states_B_C, attention_mask)
682
+ hidden_states, B, C = torch.split(
683
+ hidden_states_B_C,
684
+ [self.intermediate_size, self.n_groups * self.ssm_state_size, self.n_groups * self.ssm_state_size],
685
+ dim=-1
686
+ )
687
+
688
+ # 3. SSM transformation
689
+ A = -torch.exp(self.A_log.float()) # [num_heads]
690
+ if cache_params is not None and cache_position is not None and cache_position[0] > 0:
691
+ # We need to guarantee that anything regarding the cache is on the same device
692
+ cache_device = cache_params.ssm_states.device
693
+
694
+ # Note: there is no need to pad parameter matrices here, as there is just one new token
695
+ # for batched generation
696
+ dt = dt[:, 0, :][:, None, ...]
697
+ dt = dt.transpose(1, 2).expand(batch_size, dt.shape[-1], self.head_dim)
698
+ # [num_heads] -> [num_heads, head_dim]
699
+ dt_bias = self.dt_bias[..., None].expand(self.dt_bias.shape[0], self.head_dim)
700
+
701
+ dt = torch.nn.functional.softplus(dt + dt_bias.to(dt.dtype))
702
+ dt = torch.clamp(dt, self.time_step_limit[0], self.time_step_limit[1])
703
+ A = A[..., None, None].expand(self.num_heads, self.head_dim, self.ssm_state_size).to(dtype=torch.float32)
704
+ # [bsz, num_heads, head_dim, state_size]
705
+ dA = (torch.exp(dt[..., None] * A)).to(device=cache_device)
706
+
707
+ # Discretize B
708
+ # [bsz, n_groups * state_size] -> [bsz, n_groups, 1, state_size] ->
709
+ # -> [bsz, n_groups, group to head repetition factor, state_size] -> [bsz, num_heads, state_size]
710
+ B = B.reshape(batch_size, self.n_groups, -1)[..., None, :]
711
+ B = B.expand(batch_size, self.n_groups, self.num_heads // self.n_groups, B.shape[-1]).contiguous()
712
+ B = B.reshape(batch_size, -1, B.shape[-1])
713
+ # [bsz, num_heads, head_dim, state_size]
714
+ dB = dt[..., None] * B[..., None, :]
715
+
716
+ # Discretize x into dB
717
+ # [bsz, intermediate_size] -> [bsz, num_heads, head_dim]
718
+ hidden_states = hidden_states.reshape(batch_size, -1, self.head_dim)
719
+ dBx = (dB * hidden_states[..., None]).to(device=cache_device)
720
+
721
+ # State calculation
722
+ cache_params.update_ssm_state(
723
+ layer_idx=self.layer_idx,
724
+ new_ssm_state=cache_params.ssm_states[self.layer_idx] * dA + dBx
725
+ )
726
+
727
+ # Subsequent output
728
+ # [bsz, n_groups * state_size] -> [bsz, num_heads, state_size]
729
+ C = C.reshape(batch_size, self.n_groups, -1)[..., None, :]
730
+ C = C.expand(batch_size, self.n_groups, self.num_heads // self.n_groups, C.shape[-1]).contiguous()
731
+ C = C.reshape(batch_size, -1, C.shape[-1])
732
+ # [bsz, num_heads, head_dim]
733
+
734
+ ssm_states = cache_params.ssm_states[self.layer_idx].to(device=C.device, dtype=C.dtype) # Shape: [b, h, d, n]
735
+ # Reshape ssm_states to merge the first two dimensions
736
+ ssm_states_reshaped = ssm_states.view(batch_size * self.num_heads, self.head_dim, self.ssm_state_size) # Shape: [b*h, d, n]
737
+ C_reshaped = C.view(batch_size * self.num_heads, self.ssm_state_size, 1) # Shape: [b*h, n, 1]
738
+ y = torch.bmm(ssm_states_reshaped, C_reshaped)
739
+ y = y.view(batch_size, self.num_heads, self.head_dim)
740
+
741
+ # D skip connection
742
+ # [num_heads] -> [num_heads, head_dim]
743
+ D = self.D[..., None].expand(self.D.shape[0], self.head_dim)
744
+ y = (y + hidden_states * D).to(y.dtype)
745
+
746
+ # [bsz, num_heads, head_dim] -> [bsz, 1, intermediate_size]
747
+ y = y.reshape(batch_size, -1)[:, None, ...]
748
+ else:
749
+ # begin ssd naive implementation without einsums
750
+ dt = nn.functional.softplus(dt + self.dt_bias)
751
+ dt = torch.clamp(dt, self.time_step_limit[0], self.time_step_limit[1])
752
+ hidden_states = hidden_states.reshape(batch_size, seq_len, -1, self.head_dim).float()
753
+ B = B.reshape(batch_size, seq_len, -1, self.ssm_state_size).float()
754
+ C = C.reshape(batch_size, seq_len, -1, self.ssm_state_size).float()
755
+ B = B.repeat(1, 1, self.num_heads // self.n_groups, 1)
756
+ C = C.repeat(1, 1, self.num_heads // self.n_groups, 1)
757
+ pad_size = (self.chunk_size - seq_len % self.chunk_size) % self.chunk_size
758
+
759
+ D_residual = self.D[..., None] * pad_tensor_by_size(hidden_states, pad_size)
760
+
761
+ # Discretize x and A
762
+ hidden_states = hidden_states * dt[..., None]
763
+ A = A.to(hidden_states.dtype) * dt
764
+
765
+ # Rearrange into blocks/chunks
766
+ hidden_states, A, B, C = [reshape_into_chunks(t, pad_size, self.chunk_size) for t in (hidden_states, A, B, C)]
767
+
768
+ # [bsz, -1, chunk_size, num_heads] -> [bsz, num_heads, -1, chunk_size]
769
+ A = A.permute(0, 3, 1, 2)
770
+ A_cumsum = torch.cumsum(A, dim=-1)
771
+
772
+ # 1. Compute the output for each intra-chunk (diagonal blocks)
773
+ # This is the analog of a causal mask
774
+ L = torch.exp(segment_sum(A))
775
+
776
+ # Contraction of C and B to get G (attention-weights like)
777
+ G_intermediate = C[:, :, :, None, :, :] * B[:, :, None, :, :, :] # shape: (b, c, l, s, h, n)
778
+ G = G_intermediate.sum(dim=-1) # shape: (b, c, l, s, h)
779
+
780
+ # Compute M, equivalent to applying attention mask to weights
781
+ M_intermediate = G[..., None] * L.permute(0, 2, 3, 4, 1)[..., None]
782
+ M = M_intermediate.sum(dim=-1)
783
+
784
+ # Compute Y_diag (apply to values)
785
+ Y_diag = (M[..., None] * hidden_states[:, :, None]).sum(dim=3)
786
+
787
+ # 2. Compute the state for each intra-chunk
788
+ # (right term of low-rank factorization of off-diagonal blocks; B terms)
789
+ decay_states = torch.exp((A_cumsum[:, :, :, -1:] - A_cumsum))
790
+ B_decay = B * decay_states.permute(0, -2, -1, 1)[..., None]
791
+ states = (B_decay[..., None, :] * hidden_states[..., None]).sum(dim=2)
792
+
793
+ # 3. Compute the inter-chunk SSM recurrence; produces correct SSM states at chunk boundaries
794
+ # (middle term of factorization of off-diag blocks; A terms)
795
+ if cache_params is not None and cache_position is not None and cache_position[0] > 0:
796
+ previous_states = cache_params.ssm_states[self.layer_idx][:, None, ...].to(device=states.device)
797
+ else:
798
+ previous_states = torch.zeros_like(states[:, :1])
799
+ states = torch.cat([previous_states, states], dim=1)
800
+ decay_chunk = torch.exp(segment_sum(nn.functional.pad(A_cumsum[:, :, :, -1], (1, 0))))
801
+ decay_chunk = decay_chunk.transpose(1, 3)
802
+ new_states = (decay_chunk[..., None, None] * states[:, :, None, ...]).sum(dim=1)
803
+ states, ssm_state = new_states[:, :-1], new_states[:, -1]
804
+
805
+ # 4. Compute state -> output conversion per chunk
806
+ # (left term of low-rank factorization of off-diagonal blocks; C terms)
807
+ state_decay_out = torch.exp(A_cumsum)
808
+ C_times_states = (C[..., None, :] * states[:, :, None, ...])
809
+ state_decay_out_permuted = state_decay_out.permute(0, 2, 3, 1)
810
+ Y_off = (C_times_states.sum(-1) * state_decay_out_permuted[..., None])
811
+
812
+ # Add output of intra-chunk and inter-chunk terms (diagonal and off-diagonal blocks)
813
+ y = Y_diag + Y_off
814
+ # [bsz, -1, self.chunk_size, num_heads, head_dim] -> [bsz, (padded) seq_len, num_heads, head_dim]
815
+ y = y.reshape(batch_size, -1, self.num_heads, self.head_dim)
816
+
817
+ y = y + D_residual
818
+ # Cutting off padded chunks
819
+ if pad_size > 0:
820
+ y = y[:, :seq_len, :, :]
821
+ y = y.reshape(batch_size, seq_len, -1)
822
+
823
+ # Init cache
824
+ if ssm_state is not None and cache_params is not None:
825
+ cache_params.update_ssm_state(layer_idx=self.layer_idx, new_ssm_state=ssm_state)
826
+
827
+ scan_output = self.norm(y, gate)
828
+
829
+ # end ssd naive
830
+
831
+ # 4. Final linear projection
832
+ contextualized_states = self.out_proj(scan_output.to(dtype)) # [batch, seq_len, hidden_size]
833
+ return contextualized_states
834
+ # fmt: on
835
+
836
+ def forward(
837
+ self,
838
+ hidden_states,
839
+ cache_params: Optional[HybridMambaAttentionDynamicCache] = None,
840
+ cache_position: Optional[torch.LongTensor] = None,
841
+ attention_mask: Optional[torch.Tensor] = None,
842
+ ):
843
+ if is_fast_path_available and "cuda" in self.in_proj.weight.device.type:
844
+ return self.cuda_kernels_forward(
845
+ hidden_states, cache_params, cache_position, attention_mask
846
+ )
847
+ dtype = hidden_states.dtype
848
+ if (
849
+ attention_mask is not None
850
+ and attention_mask.shape[1] > 1
851
+ and attention_mask.shape[0] > 1
852
+ ):
853
+ # tune out hidden states for pad tokens, see https://github.com/state-spaces/mamba/issues/66
854
+ hidden_states = (hidden_states * attention_mask[:, :, None]).to(dtype)
855
+
856
+ return self.torch_forward(
857
+ hidden_states, cache_params, cache_position, attention_mask
858
+ )
859
+
860
+
861
+ class NemotronHRMSNorm(nn.Module):
862
+ def __init__(self, hidden_size, eps=1e-6):
863
+ """
864
+ NemotronHRMSNorm is equivalent to T5LayerNorm and LlamaRMSNorm
865
+ """
866
+ super().__init__()
867
+ self.weight = nn.Parameter(torch.ones(hidden_size))
868
+ self.variance_epsilon = eps
869
+
870
+ def forward(self, hidden_states):
871
+ input_dtype = hidden_states.dtype
872
+ hidden_states = hidden_states.to(torch.float32)
873
+ variance = hidden_states.pow(2).mean(-1, keepdim=True)
874
+ hidden_states = hidden_states * torch.rsqrt(variance + self.variance_epsilon)
875
+ # Weights are in float32
876
+ return (self.weight.to(torch.float32) * hidden_states).to(input_dtype)
877
+
878
+
879
+ class NemotronHBlock(nn.Module):
880
+ def __init__(self, config, layer_idx):
881
+ super().__init__()
882
+ self.config = config
883
+ self.layer_idx = layer_idx
884
+ self.residual_in_fp32 = config.residual_in_fp32
885
+ self.norm = NemotronHRMSNorm(config.hidden_size, eps=config.layer_norm_epsilon)
886
+
887
+ # M: Mamba2, *: Attention, -: MLP
888
+ self.block_type = config.layers_block_type[layer_idx]
889
+ if self.block_type == "mamba":
890
+ self.mixer = NemotronHMamba2Mixer(config, layer_idx=layer_idx)
891
+ elif self.block_type == "attention":
892
+ self.mixer = NEMOTRONH_ATTENTION_CLASSES[config._attn_implementation](
893
+ config, layer_idx=layer_idx
894
+ )
895
+ elif self.block_type == "mlp":
896
+ self.mixer = NemotronHMLP(config, layer_idx=layer_idx)
897
+ else:
898
+ raise ValueError(
899
+ f"Invalid layer pattern {config.hybrid_override_pattern[layer_idx]}"
900
+ )
901
+
902
+ def forward(
903
+ self,
904
+ hidden_states,
905
+ cache_params: Optional[HybridMambaAttentionDynamicCache] = None,
906
+ cache_position: Optional[torch.LongTensor] = None,
907
+ attention_mask: Optional[torch.Tensor] = None,
908
+ ):
909
+ with torch.cuda.stream(torch.cuda.default_stream(hidden_states.device)):
910
+ # * Use torch.cuda.stream() to avoid NaN issues when using multiple GPUs
911
+ residual = hidden_states
912
+ hidden_states = self.norm(hidden_states.to(dtype=self.norm.weight.dtype))
913
+ if self.residual_in_fp32:
914
+ residual = residual.to(torch.float32)
915
+
916
+ if self.block_type == "mamba":
917
+ hidden_states = self.mixer(
918
+ hidden_states,
919
+ cache_params=cache_params,
920
+ cache_position=cache_position,
921
+ )
922
+ elif self.block_type == "attention":
923
+ hidden_states = self.mixer(hidden_states, cache_position=cache_position)
924
+ hidden_states = hidden_states[0]
925
+ elif self.block_type == "mlp":
926
+ hidden_states = self.mixer(hidden_states)
927
+ else:
928
+ raise ValueError(f"Invalid block_type: {self.block_type}")
929
+
930
+ hidden_states = residual + hidden_states
931
+ return hidden_states
932
+
933
+
934
+ # Copied from transformers.models.nemotron.modeling_nemotron Nemotron->NemotronH
935
+ class NemotronHMLP(nn.Module):
936
+ def __init__(self, config, layer_idx: Optional[int] = None):
937
+ super().__init__()
938
+ self.config = config
939
+ self.layer_idx = layer_idx
940
+ if layer_idx is None:
941
+ logger.warning_once(
942
+ f"Instantiating {self.__class__.__name__} without passing a `layer_idx` is not recommended and will "
943
+ "lead to errors during the forward call if caching is used. Please make sure to provide a `layer_idx` "
944
+ "when creating this class."
945
+ )
946
+ self.hidden_size = config.hidden_size
947
+ self.intermediate_size = config.intermediate_size
948
+ self.up_proj = nn.Linear(
949
+ self.hidden_size, self.intermediate_size, bias=config.mlp_bias
950
+ )
951
+ self.down_proj = nn.Linear(
952
+ self.intermediate_size, self.hidden_size, bias=config.mlp_bias
953
+ )
954
+ self.act_fn = ACT2FN[config.mlp_hidden_act]
955
+
956
+ def forward(self, x):
957
+ return self.down_proj(self.act_fn(self.up_proj(x)))
958
+
959
+
960
+ # Copied from transformers.models.llama.modeling_llama.repeat_kv
961
+ def repeat_kv(hidden_states: torch.Tensor, n_rep: int) -> torch.Tensor:
962
+ """
963
+ This is the equivalent of torch.repeat_interleave(x, dim=1, repeats=n_rep). The hidden states go from (batch,
964
+ num_key_value_heads, seqlen, head_dim) to (batch, num_attention_heads, seqlen, head_dim)
965
+ """
966
+ batch, num_key_value_heads, slen, head_dim = hidden_states.shape
967
+ if n_rep == 1:
968
+ return hidden_states
969
+ hidden_states = hidden_states[:, :, None, :, :].expand(
970
+ batch, num_key_value_heads, n_rep, slen, head_dim
971
+ )
972
+ return hidden_states.reshape(batch, num_key_value_heads * n_rep, slen, head_dim)
973
+
974
+
975
+ class NemotronHAttention(nn.Module):
976
+ """Multi-headed attention from 'Attention Is All You Need' paper"""
977
+
978
+ def __init__(self, config: NemotronHConfig, layer_idx: Optional[int] = None):
979
+ super().__init__()
980
+ self.config = config
981
+ self.layer_idx = layer_idx
982
+ if layer_idx is None:
983
+ logger.warning_once(
984
+ f"Instantiating {self.__class__.__name__} without passing a `layer_idx` is not recommended and will "
985
+ "lead to errors during the forward call if caching is used. Please make sure to provide a `layer_idx` "
986
+ "when creating this class."
987
+ )
988
+
989
+ self.attention_dropout = config.attention_dropout
990
+ self.hidden_size = config.hidden_size
991
+ self.num_heads = config.num_attention_heads
992
+ if config.attention_head_dim is not None:
993
+ self.head_dim = config.attention_head_dim
994
+ else:
995
+ self.head_dim = config.hidden_size // config.num_attention_heads
996
+ self.num_key_value_heads = config.num_key_value_heads
997
+ self.num_key_value_groups = self.num_heads // self.num_key_value_heads
998
+ self.max_position_embeddings = config.max_position_embeddings
999
+ self.is_causal = True
1000
+
1001
+ self.q_proj = nn.Linear(
1002
+ self.hidden_size, self.num_heads * self.head_dim, bias=config.attention_bias
1003
+ )
1004
+ self.k_proj = nn.Linear(
1005
+ self.hidden_size,
1006
+ self.num_key_value_heads * self.head_dim,
1007
+ bias=config.attention_bias,
1008
+ )
1009
+ self.v_proj = nn.Linear(
1010
+ self.hidden_size,
1011
+ self.num_key_value_heads * self.head_dim,
1012
+ bias=config.attention_bias,
1013
+ )
1014
+ self.o_proj = nn.Linear(
1015
+ self.head_dim * self.num_heads, self.hidden_size, bias=config.attention_bias
1016
+ )
1017
+
1018
+ def forward(
1019
+ self,
1020
+ hidden_states: torch.Tensor,
1021
+ # position_embeddings: Tuple[torch.Tensor, torch.Tensor], #TODO
1022
+ attention_mask: Optional[torch.Tensor] = None,
1023
+ position_ids: Optional[torch.LongTensor] = None,
1024
+ past_key_value: Optional[HybridMambaAttentionDynamicCache] = None,
1025
+ output_attentions: bool = False,
1026
+ use_cache: bool = False,
1027
+ cache_position: Optional[torch.LongTensor] = None,
1028
+ ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:
1029
+ bsz, q_len, _ = hidden_states.size()
1030
+
1031
+ query_states = self.q_proj(hidden_states)
1032
+ key_states = self.k_proj(hidden_states)
1033
+ value_states = self.v_proj(hidden_states)
1034
+
1035
+ query_states = query_states.view(
1036
+ bsz, q_len, self.num_heads, self.head_dim
1037
+ ).transpose(1, 2)
1038
+ key_states = key_states.view(
1039
+ bsz, q_len, self.num_key_value_heads, self.head_dim
1040
+ ).transpose(1, 2)
1041
+ value_states = value_states.view(
1042
+ bsz, q_len, self.num_key_value_heads, self.head_dim
1043
+ ).transpose(1, 2)
1044
+
1045
+ if past_key_value is not None:
1046
+ key_states, value_states = past_key_value.update(
1047
+ key_states, value_states, self.layer_idx
1048
+ )
1049
+
1050
+ key_states = repeat_kv(key_states, self.num_key_value_groups)
1051
+ value_states = repeat_kv(value_states, self.num_key_value_groups)
1052
+
1053
+ causal_mask = attention_mask
1054
+ if attention_mask is not None: # no matter the length, we just slice it
1055
+ causal_mask = attention_mask[:, :, :, : key_states.shape[-2]]
1056
+
1057
+ if query_states.device.type == "cuda" and attention_mask is not None:
1058
+ query_states = query_states.contiguous()
1059
+ key_states = key_states.contiguous()
1060
+ value_states = value_states.contiguous()
1061
+
1062
+ is_causal = True if causal_mask is None and q_len > 1 else False
1063
+
1064
+ attn_output = torch.nn.functional.scaled_dot_product_attention(
1065
+ query_states,
1066
+ key_states,
1067
+ value_states,
1068
+ attn_mask=causal_mask,
1069
+ dropout_p=self.attention_dropout if self.training else 0.0,
1070
+ is_causal=is_causal,
1071
+ )
1072
+ attn_output = attn_output.transpose(1, 2).contiguous()
1073
+ # attn_output = attn_output.view(bsz, q_len, self.hidden_size)
1074
+ attn_output = attn_output.view(bsz, q_len, self.num_heads * self.head_dim)
1075
+
1076
+ attn_output = self.o_proj(attn_output)
1077
+
1078
+ return attn_output, None, past_key_value
1079
+
1080
+
1081
+ # Adapted from transformers.models.mistral.modeling_mistral.MistralFlashAttention2 with Mistral->Jamba
1082
+ # class JambaFlashAttention2(JambaAttention):
1083
+ class NemotronHFlashAttention2(NemotronHAttention):
1084
+ """
1085
+ Jamba flash attention module. This module inherits from `JambaAttention` as the weights of the module stays
1086
+ untouched. The only required change would be on the forward pass where it needs to correctly call the public API of
1087
+ flash attention and deal with padding tokens in case the input contains any of them.
1088
+ """
1089
+
1090
+ def __init__(self, *args, **kwargs):
1091
+ super().__init__(*args, **kwargs)
1092
+
1093
+ # TODO: Should be removed once Flash Attention for RoCm is bumped to 2.1.
1094
+ # 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.
1095
+ # 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).
1096
+ self._flash_attn_uses_top_left_mask = not is_flash_attn_greater_or_equal_2_10()
1097
+
1098
+ def forward(
1099
+ self,
1100
+ hidden_states: torch.Tensor,
1101
+ attention_mask: Optional[torch.Tensor] = None,
1102
+ position_ids: Optional[torch.LongTensor] = None,
1103
+ past_key_value: Optional[HybridMambaAttentionDynamicCache] = None,
1104
+ output_attentions: bool = False,
1105
+ use_cache: bool = False,
1106
+ cache_position: Optional[torch.LongTensor] = None,
1107
+ **kwargs,
1108
+ ):
1109
+ bsz, q_len, _ = hidden_states.size()
1110
+
1111
+ query_states = self.q_proj(hidden_states)
1112
+ key_states = self.k_proj(hidden_states)
1113
+ value_states = self.v_proj(hidden_states)
1114
+
1115
+ # Flash attention requires the input to have the shape
1116
+ # batch_size x seq_length x head_dim x hidden_dim
1117
+ # therefore we just need to keep the original shape
1118
+ query_states = query_states.view(bsz, q_len, self.num_heads, self.head_dim)
1119
+ key_states = key_states.view(
1120
+ bsz, q_len, self.num_key_value_heads, self.head_dim
1121
+ ).transpose(1, 2)
1122
+ value_states = value_states.view(
1123
+ bsz, q_len, self.num_key_value_heads, self.head_dim
1124
+ ).transpose(1, 2)
1125
+
1126
+ if past_key_value is not None:
1127
+ key_states, value_states = past_key_value.update(
1128
+ key_states, value_states, self.layer_idx
1129
+ )
1130
+
1131
+ # repeat k/v heads if n_kv_heads < n_heads
1132
+ key_states = repeat_kv(key_states, self.num_key_value_groups)
1133
+ value_states = repeat_kv(value_states, self.num_key_value_groups)
1134
+ dropout_rate = 0.0 if not self.training else self.attention_dropout
1135
+
1136
+ # In PEFT, usually we cast the layer norms in float32 for training stability reasons
1137
+ # therefore the input hidden states gets silently casted in float32. Hence, we need
1138
+ # cast them back in float16 just to be sure everything works as expected.
1139
+ input_dtype = query_states.dtype
1140
+ if input_dtype == torch.float32:
1141
+ if torch.is_autocast_enabled():
1142
+ target_dtype = torch.get_autocast_gpu_dtype()
1143
+ # Handle the case where the model is quantized
1144
+ elif hasattr(self.config, "_pre_quantization_dtype"):
1145
+ target_dtype = self.config._pre_quantization_dtype
1146
+ else:
1147
+ target_dtype = self.q_proj.weight.dtype
1148
+
1149
+ logger.warning_once(
1150
+ f"The input hidden states seems to be silently casted in float32, this might be related to"
1151
+ f" the fact you have upcasted embedding or layer norm layers in float32. We will cast back the input in"
1152
+ f" {target_dtype}."
1153
+ )
1154
+
1155
+ query_states = query_states.to(target_dtype)
1156
+ key_states = key_states.to(target_dtype)
1157
+ value_states = value_states.to(target_dtype)
1158
+
1159
+ # Reashape to the expected shape for Flash Attention
1160
+ key_states = key_states.transpose(1, 2)
1161
+ value_states = value_states.transpose(1, 2)
1162
+
1163
+ attn_output = _flash_attention_forward(
1164
+ query_states,
1165
+ key_states,
1166
+ value_states,
1167
+ attention_mask,
1168
+ q_len,
1169
+ dropout=dropout_rate,
1170
+ sliding_window=getattr(self.config, "sliding_window", None),
1171
+ is_causal=self.is_causal,
1172
+ use_top_left_mask=self._flash_attn_uses_top_left_mask,
1173
+ )
1174
+
1175
+ # attn_output = attn_output.reshape(bsz, q_len, self.hidden_size).contiguous()
1176
+ attn_output = attn_output.reshape(
1177
+ bsz, q_len, self.num_heads * self.head_dim
1178
+ ).contiguous()
1179
+ attn_output = self.o_proj(attn_output)
1180
+
1181
+ if not output_attentions:
1182
+ attn_weights = None
1183
+
1184
+ return attn_output, attn_weights, past_key_value
1185
+
1186
+
1187
+ # Adapted from transformers.models.mistral.modeling_mistral.MistralSdpaAttention with Mistral->Jamba
1188
+ # class JambaSdpaAttention(JambaAttention):
1189
+ class NemotronHSdpaAttention(NemotronHAttention):
1190
+ """
1191
+ Jamba attention module using torch.nn.functional.scaled_dot_product_attention. This module inherits from
1192
+ `JambaAttention` as the weights of the module stays untouched. The only changes are on the forward pass to adapt to
1193
+ SDPA API.
1194
+ """
1195
+
1196
+ # Adapted from NemotronHAttention.forward
1197
+ def forward(
1198
+ self,
1199
+ hidden_states: torch.Tensor,
1200
+ attention_mask: Optional[torch.Tensor] = None,
1201
+ position_ids: Optional[torch.LongTensor] = None,
1202
+ past_key_value: Optional[HybridMambaAttentionDynamicCache] = None,
1203
+ output_attentions: bool = False,
1204
+ use_cache: bool = False,
1205
+ cache_position: Optional[torch.LongTensor] = None,
1206
+ ) -> Tuple[torch.Tensor, Optional[torch.Tensor], Optional[Tuple[torch.Tensor]]]:
1207
+ if output_attentions:
1208
+ # TODO: Improve this warning with e.g. `model.config.attn_implementation = "manual"` once this is implemented.
1209
+ logger.warning_once(
1210
+ "NemotronHModel is using NemotronHSdpaAttention, but `torch.nn.functional.scaled_dot_product_attention` does not support `output_attentions=True`. Falling back to the manual attention implementation, "
1211
+ '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.'
1212
+ )
1213
+ return super().forward(
1214
+ hidden_states=hidden_states,
1215
+ attention_mask=attention_mask,
1216
+ position_ids=position_ids,
1217
+ past_key_value=past_key_value,
1218
+ output_attentions=output_attentions,
1219
+ use_cache=use_cache,
1220
+ )
1221
+
1222
+ bsz, q_len, _ = hidden_states.size()
1223
+
1224
+ query_states = self.q_proj(hidden_states)
1225
+ key_states = self.k_proj(hidden_states)
1226
+ value_states = self.v_proj(hidden_states)
1227
+
1228
+ query_states = query_states.view(
1229
+ bsz, q_len, self.num_heads, self.head_dim
1230
+ ).transpose(1, 2)
1231
+ key_states = key_states.view(
1232
+ bsz, q_len, self.num_key_value_heads, self.head_dim
1233
+ ).transpose(1, 2)
1234
+ value_states = value_states.view(
1235
+ bsz, q_len, self.num_key_value_heads, self.head_dim
1236
+ ).transpose(1, 2)
1237
+
1238
+ if past_key_value is not None:
1239
+ key_states, value_states = past_key_value.update(
1240
+ key_states, value_states, self.layer_idx
1241
+ )
1242
+
1243
+ key_states = repeat_kv(key_states, self.num_key_value_groups)
1244
+ value_states = repeat_kv(value_states, self.num_key_value_groups)
1245
+
1246
+ causal_mask = attention_mask
1247
+ if attention_mask is not None:
1248
+ causal_mask = causal_mask[:, :, :, : key_states.shape[-2]]
1249
+
1250
+ # SDPA with memory-efficient backend is currently (torch==2.1.2) bugged with non-contiguous inputs with custom attn_mask,
1251
+ # Reference: https://github.com/pytorch/pytorch/issues/112577.
1252
+ if query_states.device.type == "cuda" and attention_mask is not None:
1253
+ query_states = query_states.contiguous()
1254
+ key_states = key_states.contiguous()
1255
+ value_states = value_states.contiguous()
1256
+
1257
+ # We dispatch to SDPA's Flash Attention or Efficient kernels via this `is_causal` if statement instead of an inline conditional assignment
1258
+ # in SDPA to support both torch.compile's dynamic shapes and full graph options. An inline conditional prevents dynamic shapes from compiling.
1259
+ # The q_len > 1 is necessary to match with AttentionMaskConverter.to_causal_4d that does not create a causal mask in case q_len == 1.
1260
+ is_causal = (
1261
+ True if self.is_causal and causal_mask is None and q_len > 1 else False
1262
+ )
1263
+
1264
+ attn_output = torch.nn.functional.scaled_dot_product_attention(
1265
+ query_states,
1266
+ key_states,
1267
+ value_states,
1268
+ attn_mask=causal_mask,
1269
+ dropout_p=self.attention_dropout if self.training else 0.0,
1270
+ is_causal=is_causal,
1271
+ )
1272
+
1273
+ attn_output = attn_output.transpose(1, 2).contiguous()
1274
+ attn_output = attn_output.view(bsz, q_len, self.hidden_size)
1275
+
1276
+ attn_output = self.o_proj(attn_output)
1277
+
1278
+ return attn_output, None, past_key_value
1279
+
1280
+
1281
+ NEMOTRONH_ATTENTION_CLASSES = {
1282
+ "eager": NemotronHAttention,
1283
+ "flash_attention_2": NemotronHFlashAttention2,
1284
+ "sdpa": NemotronHSdpaAttention,
1285
+ }
1286
+
1287
+
1288
+ # Copied from transformers.models.mamba.modeling_mamba2.Mamba2PreTrainedModel
1289
+ class NemotronHPreTrainedModel(PreTrainedModel):
1290
+ """
1291
+ An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained
1292
+ models.
1293
+ """
1294
+
1295
+ config_class = NemotronHConfig
1296
+ base_model_prefix = "backbone"
1297
+ _no_split_modules = ["NemotronHBlock"]
1298
+ supports_gradient_checkpointing = True
1299
+ _is_stateful = True
1300
+
1301
+ def _init_weights(self, module):
1302
+ """Initialize the weights."""
1303
+ if isinstance(module, NemotronHMamba2Mixer):
1304
+ module.A_log._no_weight_decay = True
1305
+ module.D._no_weight_decay = True
1306
+
1307
+ dt = torch.exp(
1308
+ torch.rand(self.config.mamba_num_heads)
1309
+ * (
1310
+ math.log(self.config.time_step_max)
1311
+ - math.log(self.config.time_step_min)
1312
+ )
1313
+ + math.log(self.config.time_step_min)
1314
+ ).clamp(min=self.config.time_step_floor)
1315
+
1316
+ # # Inverse of softplus: https://github.com/pytorch/pytorch/issues/72759
1317
+ inv_dt = dt + torch.log(-torch.expm1(-dt))
1318
+ with torch.no_grad():
1319
+ module.dt_bias.copy_(inv_dt)
1320
+ module.dt_bias._no_reinit = True
1321
+
1322
+ if isinstance(module, nn.Linear):
1323
+ if module.bias is not None:
1324
+ if not getattr(module.bias, "_no_reinit", False):
1325
+ nn.init.zeros_(module.bias)
1326
+ elif isinstance(module, nn.Embedding):
1327
+ nn.init.normal_(module.weight, std=self.config.initializer_range)
1328
+
1329
+ # TODO: Check
1330
+ if self.config.rescale_prenorm_residual:
1331
+ # Reinitialize selected weights subject to the OpenAI GPT-2 Paper Scheme:
1332
+ # > A modified initialization which accounts for the accumulation on the residual path with model depth. Scale
1333
+ # > the weights of residual layers at initialization by a factor of 1/√N where N is the # of residual layers.
1334
+ # > -- GPT-2 :: https://openai.com/blog/better-language-models/
1335
+ #
1336
+ # Reference (Megatron-LM): https://github.com/NVIDIA/Megatron-LM/blob/main/megatron/model/gpt_model.py
1337
+ for name, p in module.named_parameters():
1338
+ if name in ["out_proj.weight"]:
1339
+ # Special Scaled Initialization --> There are 2 Layer Norms per Transformer Block
1340
+ # Following Pytorch init, except scale by 1/sqrt(2 * n_layer)
1341
+ # We need to reinit p since this code could be called multiple times
1342
+ # Having just p *= scale would repeatedly scale it down
1343
+ nn.init.kaiming_uniform_(p, a=math.sqrt(5))
1344
+ with torch.no_grad():
1345
+ p /= math.sqrt(self.config.num_hidden_layers)
1346
+
1347
+
1348
+ @dataclass
1349
+ # Copied from transformers.models.mamba.modeling_mamba2.Mamba2Output with MAMBA2->NemotronH,Mamba2->NemotronH
1350
+ class NemotronHOutput(ModelOutput):
1351
+ """
1352
+ Class for the NemotronH model outputs.
1353
+
1354
+ Args:
1355
+ last_hidden_state (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`):
1356
+ Sequence of hidden-states at the output of the last layer of the model.
1357
+ cache_params (`HybridMambaAttentionDynamicCache`):
1358
+ The state of the model at the last time step. Can be used in a forward method with the next `input_ids` to
1359
+ avoid providing the old `input_ids`.
1360
+
1361
+ Includes both the State space model state matrices after the selective scan, and the Convolutional states
1362
+ hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
1363
+ Tuple of `torch.FloatTensor` (one for the output of the embeddings, if the model has an embedding layer, +
1364
+ one for the output of each layer) of shape `(batch_size, sequence_length, hidden_size)`.
1365
+
1366
+ Hidden-states of the model at the output of each layer plus the optional initial embedding outputs.
1367
+ """
1368
+
1369
+ last_hidden_state: Optional[torch.FloatTensor] = None
1370
+ cache_params: Optional[HybridMambaAttentionDynamicCache] = None
1371
+ hidden_states: Optional[Tuple[torch.FloatTensor]] = None
1372
+ attentions: Optional[Tuple[torch.FloatTensor]] = None
1373
+
1374
+
1375
+ @dataclass
1376
+ # Copied from transformers.models.mamba2.modeling_mamba2.MambaCausalLMOutput with Mamba2->NemotronH
1377
+ class NemotronHCausalLMOutput(ModelOutput):
1378
+ """
1379
+ Base class for causal language model (or autoregressive) outputs.
1380
+
1381
+ Args:
1382
+ loss (`torch.FloatTensor` of shape `(1,)`, *optional*, returned when `labels` is provided):
1383
+ Language modeling loss (for next-token prediction).
1384
+ logits (`torch.FloatTensor` of shape `(batch_size, sequence_length, config.vocab_size)`):
1385
+ Prediction scores of the language modeling head (scores for each vocabulary token before SoftMax).
1386
+ cache_params (`HybridMambaAttentionDynamicCache`):
1387
+ The state of the model at the last time step. Can be used in a forward method with the next `input_ids` to
1388
+ avoid providing the old `input_ids`.
1389
+
1390
+ Includes both the State space model state matrices after the selective scan, and the Convolutional states
1391
+ hidden_states (`tuple(torch.FloatTensor)`, *optional*, returned when `output_hidden_states=True` is passed or when `config.output_hidden_states=True`):
1392
+ Tuple of `torch.FloatTensor` (one for the output of the embeddings, if the model has an embedding layer, +
1393
+ one for the output of each layer) of shape `(batch_size, sequence_length, hidden_size)`.
1394
+
1395
+ Hidden-states of the model at the output of each layer plus the optional initial embedding outputs.
1396
+ """
1397
+
1398
+ loss: Optional[torch.FloatTensor] = None
1399
+ logits: Optional[torch.FloatTensor] = None
1400
+ cache_params: Optional[HybridMambaAttentionDynamicCache] = None
1401
+ hidden_states: Optional[Tuple[torch.FloatTensor]] = None
1402
+ attentions: Optional[Tuple[torch.FloatTensor]] = None
1403
+
1404
+
1405
+ NEMOTRONH_START_DOCSTRING = r"""
1406
+
1407
+ This model inherits from [`PreTrainedModel`]. Check the superclass documentation for the generic methods the
1408
+ library implements for all its model (such as downloading or saving, resizing the input embeddings, pruning heads
1409
+ etc.)
1410
+
1411
+ This model is also a PyTorch [torch.nn.Module](https://pytorch.org/docs/stable/nn.html#torch.nn.Module) subclass.
1412
+ Use it as a regular PyTorch Module and refer to the PyTorch documentation for all matter related to general usage
1413
+ and behavior.
1414
+
1415
+ Parameters:
1416
+ config ([`NemotronHConfig`]): Model configuration class with all the parameters of the model.
1417
+ Initializing with a config file does not load the weights associated with the model, only the
1418
+ configuration. Check out the [`~PreTrainedModel.from_pretrained`] method to load the model weights.
1419
+ """
1420
+
1421
+ NEMOTRONH_INPUTS_DOCSTRING = r"""
1422
+ Args:
1423
+ input_ids (`torch.LongTensor` of shape `(batch_size, input_ids_length)`, *optional*):
1424
+ Indices of input sequence tokens in the vocabulary.
1425
+
1426
+ If `cache_params.seqlen_offset>0`, only `input_ids` that do not have their past calculated should be passed as
1427
+ `input_ids`.
1428
+
1429
+ Indices can be obtained using [`AutoTokenizer`]. See [`PreTrainedTokenizer.encode`] and
1430
+ [`PreTrainedTokenizer.__call__`] for details.
1431
+
1432
+ [What are input IDs?](../glossary#input-ids)
1433
+ inputs_embeds (`torch.FloatTensor` of shape `(batch_size, sequence_length, hidden_size)`, *optional*):
1434
+ Optionally, instead of passing `input_ids` you can choose to directly pass an embedded representation. This
1435
+ is useful if you want more control over how to convert `input_ids` indices into associated vectors than the
1436
+ model's internal embedding lookup matrix.
1437
+ position_ids (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
1438
+ Indices of positions of each input sequence tokens in the position embeddings.
1439
+ cache_params (`HybridMambaAttentionDynamicCache`, *optional*):
1440
+ If passed along, the model uses the previous state in all the blocks (which will give the output for the
1441
+ `input_ids` provided as if the model add `state_input_ids + input_ids` as context).
1442
+ use_cache (`bool`, *optional*):
1443
+ If set to `True`, the `cache_params` is returned and can be used to quickly generate the next logits.
1444
+ output_attentions (`bool`, *optional*):
1445
+ Whether or not to return the attentions tensors of all attention layers.
1446
+ output_hidden_states (`bool`, *optional*):
1447
+ Whether or not to return the hidden states of all layers. See `hidden_states` under returned tensors for
1448
+ more detail.
1449
+ return_dict (`bool`, *optional*):
1450
+ Whether or not to return a [`~utils.ModelOutput`] instead of a plain tuple.
1451
+ cache_position (`torch.LongTensor` of shape `(batch_size,)`, *optional*):
1452
+ The position of the current input in the cache. This is used to ensure that the cache is correctly updated.
1453
+ If `cache_params` is passed, `cache_position` should also be passed.
1454
+ attention_mask (`torch.FloatTensor` of shape `(batch_size, sequence_length)`, *optional*):
1455
+ Mask to avoid performing attention on padding token indices. Mask values selected in `[0, 1]`:
1456
+
1457
+ - 1 for tokens that are **not masked**,
1458
+ - 0 for tokens that are **masked**.
1459
+
1460
+ [What are attention masks?](../glossary#attention-mask)
1461
+ """
1462
+
1463
+
1464
+ @add_start_docstrings(
1465
+ "The bare NemotronH Model transformer outputting raw hidden-states without any specific head on top.",
1466
+ NEMOTRONH_START_DOCSTRING,
1467
+ )
1468
+ class NemotronHModel(NemotronHPreTrainedModel):
1469
+ def __init__(self, config):
1470
+ super().__init__(config)
1471
+
1472
+ self.embeddings = nn.Embedding(config.vocab_size, config.hidden_size)
1473
+ self.layers = nn.ModuleList(
1474
+ [
1475
+ NemotronHBlock(config, layer_idx=idx)
1476
+ for idx in range(config.num_hidden_layers)
1477
+ ]
1478
+ )
1479
+
1480
+ self.gradient_checkpointing = False
1481
+ self.norm_f = NemotronHRMSNorm(
1482
+ config.hidden_size, eps=config.layer_norm_epsilon
1483
+ )
1484
+ # Initialize weights and apply final processing
1485
+ self._register_load_state_dict_pre_hook(self.load_hook)
1486
+ self.post_init()
1487
+
1488
+ def load_hook(self, state_dict, prefix, *args):
1489
+ for k in state_dict:
1490
+ if "embedding." in k:
1491
+ state_dict[k.replace("embedding.", "embeddings.")] = state_dict.pop(k)
1492
+ break
1493
+
1494
+ def get_input_embeddings(self):
1495
+ return self.embeddings
1496
+
1497
+ def set_input_embeddings(self, new_embeddings):
1498
+ self.embeddings = new_embeddings
1499
+
1500
+ @add_start_docstrings_to_model_forward(NEMOTRONH_INPUTS_DOCSTRING)
1501
+ @add_code_sample_docstrings(
1502
+ checkpoint=_CHECKPOINT_FOR_DOC,
1503
+ output_type=NemotronHOutput,
1504
+ config_class=_CONFIG_FOR_DOC,
1505
+ )
1506
+ def forward(
1507
+ self,
1508
+ input_ids: Optional[torch.LongTensor] = None,
1509
+ inputs_embeds: Optional[torch.LongTensor] = None,
1510
+ position_ids: Optional[torch.LongTensor] = None,
1511
+ cache_params: Optional[HybridMambaAttentionDynamicCache] = None,
1512
+ use_cache: Optional[bool] = None,
1513
+ output_attentions: Optional[bool] = None,
1514
+ output_hidden_states: Optional[bool] = None,
1515
+ return_dict: Optional[bool] = None,
1516
+ cache_position: Optional[torch.LongTensor] = None,
1517
+ attention_mask: Optional[torch.Tensor] = None,
1518
+ **kwargs,
1519
+ ) -> Union[Tuple, NemotronHOutput]:
1520
+ output_attentions = (
1521
+ output_attentions
1522
+ if output_attentions is not None
1523
+ else self.config.output_attentions
1524
+ )
1525
+ output_hidden_states = (
1526
+ output_hidden_states
1527
+ if output_hidden_states is not None
1528
+ else self.config.output_hidden_states
1529
+ )
1530
+ # use_cache = use_cache if use_cache is not None else self.config.use_cache
1531
+ use_cache = (
1532
+ use_cache
1533
+ if use_cache is not None
1534
+ else (self.config.use_cache if not self.training else False)
1535
+ )
1536
+
1537
+ return_dict = (
1538
+ return_dict if return_dict is not None else self.config.use_return_dict
1539
+ )
1540
+
1541
+ if (input_ids is None) ^ (inputs_embeds is not None): # ^ is python for xor
1542
+ raise ValueError(
1543
+ "You must specify exactly one of input_ids or inputs_embeds"
1544
+ )
1545
+
1546
+ if inputs_embeds is None:
1547
+ inputs_embeds = self.embeddings(input_ids)
1548
+
1549
+ if self.gradient_checkpointing and self.training and use_cache:
1550
+ logger.warning_once(
1551
+ "`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`."
1552
+ )
1553
+ use_cache = False
1554
+
1555
+ # From zamba_modeling.py
1556
+ if use_cache and cache_params is None:
1557
+ logger.warning_once(
1558
+ "NemotronH requires an initialized `NemotronHHybridDynamicCache` to return a cache. None was "
1559
+ "provided, so no cache will be returned."
1560
+ )
1561
+
1562
+ hidden_states = inputs_embeds
1563
+
1564
+ if cache_position is None:
1565
+ cache_position = torch.arange(
1566
+ hidden_states.shape[1], device=hidden_states.device
1567
+ )
1568
+ if position_ids is None:
1569
+ position_ids = cache_position.unsqueeze(0)
1570
+
1571
+ causal_mask = self._update_causal_mask(
1572
+ attention_mask, inputs_embeds, cache_position
1573
+ )
1574
+ mamba_mask = self._update_mamba_mask(attention_mask, cache_position)
1575
+
1576
+ all_hidden_states = () if output_hidden_states else None
1577
+ all_self_attns = () if output_attentions else None
1578
+ # Until HERE
1579
+
1580
+ for layer_idx, mixer_block in enumerate(self.layers):
1581
+ # Depending on the layer type we opt for 2D base attention mask (Mamba) or 4D causal mask (Attention)
1582
+ if mixer_block.block_type == "mamba":
1583
+ layer_mask = mamba_mask
1584
+ elif mixer_block.block_type == "attention":
1585
+ layer_mask = causal_mask
1586
+ elif mixer_block.block_type == "mlp":
1587
+ layer_mask = None
1588
+ else:
1589
+ raise ValueError(f"Invalid block_type: {self.block_type}")
1590
+
1591
+ if output_hidden_states:
1592
+ all_hidden_states += (hidden_states,)
1593
+
1594
+ if self.gradient_checkpointing and self.training:
1595
+ hidden_states = self._gradient_checkpointing_func(
1596
+ mixer_block.__call__,
1597
+ hidden_states,
1598
+ cache_params,
1599
+ cache_position,
1600
+ layer_mask,
1601
+ )
1602
+ else:
1603
+ hidden_states = mixer_block(
1604
+ hidden_states,
1605
+ cache_params=cache_params,
1606
+ cache_position=cache_position,
1607
+ attention_mask=layer_mask,
1608
+ )
1609
+
1610
+ # TODO: Store attentions
1611
+ # if output_attentions:
1612
+ # if layer_outputs[1] is not None:
1613
+ # # append attentions only of attention layers. Mamba layers return `None` as the attention weights
1614
+ # all_self_attns += (layer_outputs[1],)
1615
+
1616
+ # TODO (Check): should it happen before the forward pass?
1617
+ # if output_hidden_states:
1618
+ # all_hidden_states = all_hidden_states + (hidden_states,)
1619
+
1620
+ hidden_states = self.norm_f(hidden_states)
1621
+
1622
+ if output_hidden_states:
1623
+ all_hidden_states = all_hidden_states + (hidden_states,)
1624
+
1625
+ if not return_dict:
1626
+ return tuple(
1627
+ v
1628
+ for v in [hidden_states, cache_params, all_hidden_states]
1629
+ if v is not None
1630
+ )
1631
+
1632
+ return NemotronHOutput(
1633
+ last_hidden_state=hidden_states,
1634
+ cache_params=cache_params if use_cache else None,
1635
+ hidden_states=all_hidden_states,
1636
+ attentions=all_self_attns,
1637
+ )
1638
+
1639
+ # Copied from transformers.models.jamba.modeling_jamba.JambaModel._update_causal_mask
1640
+ def _update_causal_mask(self, attention_mask, input_tensor, cache_position):
1641
+ if self.config._attn_implementation == "flash_attention_2":
1642
+ if attention_mask is not None and 0.0 in attention_mask:
1643
+ return attention_mask
1644
+ return None
1645
+
1646
+ dtype, device = input_tensor.dtype, input_tensor.device
1647
+ min_dtype = torch.finfo(dtype).min
1648
+ sequence_length = input_tensor.shape[1]
1649
+ target_length = cache_position[-1] + 1
1650
+
1651
+ causal_mask = torch.full(
1652
+ (sequence_length, target_length),
1653
+ fill_value=min_dtype,
1654
+ dtype=dtype,
1655
+ device=device,
1656
+ )
1657
+ if sequence_length != 1:
1658
+ causal_mask = torch.triu(causal_mask, diagonal=1)
1659
+ causal_mask *= torch.arange(
1660
+ target_length, device=device
1661
+ ) > cache_position.reshape(-1, 1)
1662
+ causal_mask = causal_mask[None, None, :, :].expand(
1663
+ input_tensor.shape[0], 1, -1, -1
1664
+ )
1665
+ if attention_mask is not None:
1666
+ causal_mask = (
1667
+ causal_mask.clone()
1668
+ ) # copy to contiguous memory for in-place edit
1669
+ if attention_mask.dim() == 2:
1670
+ mask_length = attention_mask.shape[-1]
1671
+ padding_mask = causal_mask[..., :mask_length].eq(0.0) * attention_mask[
1672
+ :, None, None, :
1673
+ ].eq(0.0)
1674
+ causal_mask[..., :mask_length] = causal_mask[
1675
+ ..., :mask_length
1676
+ ].masked_fill(padding_mask, min_dtype)
1677
+
1678
+ if (
1679
+ self.config._attn_implementation == "sdpa"
1680
+ and attention_mask is not None
1681
+ and attention_mask.device.type == "cuda"
1682
+ ):
1683
+ # Attend to all tokens in fully masked rows in the causal_mask, for example the relevant first rows when
1684
+ # using left padding. This is required by F.scaled_dot_product_attention memory-efficient attention path.
1685
+ # Details: https://github.com/pytorch/pytorch/issues/110213
1686
+ causal_mask = AttentionMaskConverter._unmask_unattended(
1687
+ causal_mask, min_dtype
1688
+ )
1689
+
1690
+ return causal_mask
1691
+
1692
+ def _update_mamba_mask(self, attention_mask, cache_position):
1693
+ """
1694
+ No need for zeroing states when
1695
+ 1. Cached forward
1696
+ 2. Attending to all inputs
1697
+ """
1698
+ mamba_mask = attention_mask
1699
+ if cache_position[0] > 0 or (
1700
+ attention_mask is not None and torch.all(attention_mask == 1)
1701
+ ):
1702
+ mamba_mask = None
1703
+ return mamba_mask
1704
+
1705
+
1706
+ @add_start_docstrings(
1707
+ """
1708
+ The NEMOTRONH Model transformer with a language modeling head on top (linear layer with weights not tied to the input
1709
+ embeddings).
1710
+ """,
1711
+ NEMOTRONH_START_DOCSTRING,
1712
+ )
1713
+ class NemotronHForCausalLM(NemotronHPreTrainedModel, GenerationMixin):
1714
+ _tied_weights_keys = ["lm_head.weight"]
1715
+
1716
+ def __init__(self, config):
1717
+ super().__init__(config)
1718
+ self.backbone = NemotronHModel(config)
1719
+ self.vocab_size = config.vocab_size
1720
+ self.lm_head = nn.Linear(config.hidden_size, config.vocab_size, bias=False)
1721
+
1722
+ # Initialize weights and apply final processing
1723
+ self.post_init()
1724
+
1725
+ def get_input_embeddings(self):
1726
+ return self.backbone.get_input_embeddings()
1727
+
1728
+ def set_input_embeddings(self, new_embeddings):
1729
+ return self.backbone.set_input_embeddings(new_embeddings)
1730
+
1731
+ def get_output_embeddings(self):
1732
+ return self.lm_head
1733
+
1734
+ def set_output_embeddings(self, new_embeddings):
1735
+ self.lm_head = new_embeddings
1736
+
1737
+ def get_decoder(self):
1738
+ return self.model
1739
+
1740
+ def set_decoder(self, decoder):
1741
+ self.model = decoder
1742
+
1743
+ def prepare_inputs_for_generation(
1744
+ self,
1745
+ input_ids,
1746
+ past_key_values=None,
1747
+ attention_mask=None,
1748
+ inputs_embeds=None,
1749
+ cache_position=None,
1750
+ position_ids=None,
1751
+ use_cache=True,
1752
+ **kwargs,
1753
+ ):
1754
+ # Copy from https://github.com/huggingface/transformers/blob/main/src/transformers/models/jamba/modeling_jamba.py
1755
+ # Overwitten -- uses `cache_params` as opposed to `past_key_values`
1756
+ empty_past_kv = past_key_values is None
1757
+
1758
+ # If we have cache: let's slice `input_ids` through `cache_position`, to keep only the unprocessed tokens
1759
+ # Exception 1: when passing input_embeds, input_ids may be missing entries
1760
+ # Exception 2: some generation methods do special slicing of input_ids, so we don't need to do it here
1761
+ # Exception 3: with synced GPUs cache_position may go out of bounds, but we only want dummy token in that case.
1762
+ # (we can't check exception 3 while compiling)
1763
+ if not empty_past_kv:
1764
+ if (
1765
+ inputs_embeds is not None # Exception 1
1766
+ or cache_position[-1] >= input_ids.shape[1] # Exception 3
1767
+ ):
1768
+ input_ids = input_ids[:, -cache_position.shape[0] :]
1769
+ elif (
1770
+ input_ids.shape[1] != cache_position.shape[0]
1771
+ ): # Default case (the "else", a no op, is Exception 2)
1772
+ input_ids = input_ids[:, cache_position]
1773
+ else:
1774
+ past_key_values = HybridMambaAttentionDynamicCache(
1775
+ self.config, input_ids.shape[0], self.dtype, device=self.device
1776
+ )
1777
+
1778
+ if attention_mask is not None and position_ids is None:
1779
+ # create position_ids on the fly for batch generation
1780
+ position_ids = attention_mask.long().cumsum(-1) - 1
1781
+ position_ids.masked_fill_(attention_mask == 0, 1)
1782
+ if not empty_past_kv:
1783
+ position_ids = position_ids[:, -input_ids.shape[1] :]
1784
+
1785
+ # if `inputs_embeds` are passed, we only want to use them in the 1st generation step
1786
+ if inputs_embeds is not None and empty_past_kv:
1787
+ model_inputs = {"inputs_embeds": inputs_embeds}
1788
+ else:
1789
+ model_inputs = {
1790
+ "input_ids": input_ids.contiguous()
1791
+ } # `contiguous()` needed for compilation use cases
1792
+
1793
+ model_inputs.update(
1794
+ {
1795
+ "position_ids": position_ids,
1796
+ "past_key_values": past_key_values,
1797
+ "use_cache": use_cache,
1798
+ "attention_mask": attention_mask,
1799
+ "logits_to_keep": self.config.num_logits_to_keep,
1800
+ "cache_position": cache_position,
1801
+ }
1802
+ )
1803
+ return model_inputs
1804
+
1805
+ @add_start_docstrings_to_model_forward(NEMOTRONH_INPUTS_DOCSTRING)
1806
+ @add_code_sample_docstrings(
1807
+ checkpoint=_CHECKPOINT_FOR_DOC,
1808
+ output_type=NemotronHCausalLMOutput,
1809
+ config_class=_CONFIG_FOR_DOC,
1810
+ )
1811
+ def forward(
1812
+ self,
1813
+ input_ids: Optional[torch.LongTensor] = None,
1814
+ inputs_embeds: Optional[torch.FloatTensor] = None,
1815
+ position_ids: Optional[torch.LongTensor] = None,
1816
+ cache_params: Optional[HybridMambaAttentionDynamicCache] = None,
1817
+ labels: Optional[torch.LongTensor] = None,
1818
+ output_attentions: Optional[bool] = None,
1819
+ output_hidden_states: Optional[bool] = None,
1820
+ return_dict: Optional[bool] = None,
1821
+ use_cache: Optional[bool] = None,
1822
+ cache_position: Optional[torch.Tensor] = None,
1823
+ attention_mask: Optional[torch.Tensor] = None,
1824
+ **kwargs, # for now we need this for generation
1825
+ ) -> Union[Tuple, NemotronHCausalLMOutput]:
1826
+ r"""
1827
+ labels (`torch.LongTensor` of shape `(batch_size, sequence_length)`, *optional*):
1828
+ Labels for language modeling. Note that the labels **are shifted** inside the model, i.e. you can set
1829
+ `labels = input_ids` Indices are selected in `[-100, 0, ..., config.vocab_size]` All labels set to `-100`
1830
+ are ignored (masked), the loss is only computed for labels in `[0, ..., config.vocab_size]`
1831
+ """
1832
+ output_attentions = (
1833
+ output_attentions
1834
+ if output_attentions is not None
1835
+ else self.config.output_attentions
1836
+ )
1837
+
1838
+ output_hidden_states = (
1839
+ output_hidden_states
1840
+ if output_hidden_states is not None
1841
+ else self.config.output_hidden_states
1842
+ )
1843
+ return_dict = (
1844
+ return_dict if return_dict is not None else self.config.use_return_dict
1845
+ )
1846
+
1847
+ nemotron_h_outputs = self.backbone(
1848
+ input_ids,
1849
+ cache_params=cache_params,
1850
+ inputs_embeds=inputs_embeds,
1851
+ output_attentions=output_attentions,
1852
+ output_hidden_states=output_hidden_states,
1853
+ return_dict=return_dict,
1854
+ use_cache=use_cache,
1855
+ cache_position=cache_position,
1856
+ attention_mask=attention_mask,
1857
+ )
1858
+ hidden_states = nemotron_h_outputs[0]
1859
+
1860
+ # TODO: Check zamba_modeling.py: https://github.com/huggingface/transformers/blob/d7188ba600e36d3fd191b12e19f1b3bb81a8404f/src/transformers/models/zamba/modeling_zamba.py#L1284C1-L1286C2
1861
+ # logits = self.lm_head(hidden_states.to(self.lm_head.weight.dtype)).float()
1862
+ logits = self.lm_head(hidden_states.to(self.lm_head.weight.dtype)).float()
1863
+
1864
+ loss = None
1865
+ if labels is not None:
1866
+ # move labels to correct device to enable model parallelism
1867
+ labels = labels.to(logits.device)
1868
+ # Shift so that tokens < n predict n
1869
+ shift_logits = logits[..., :-1, :].contiguous()
1870
+ shift_labels = labels[..., 1:].contiguous()
1871
+ # Flatten the tokens
1872
+ loss_fct = CrossEntropyLoss()
1873
+ loss = loss_fct(
1874
+ shift_logits.view(-1, shift_logits.size(-1)), shift_labels.view(-1)
1875
+ )
1876
+
1877
+ if not return_dict:
1878
+ output = (logits,) + nemotron_h_outputs[1:]
1879
+ return ((loss,) + output) if loss is not None else output
1880
+
1881
+ return NemotronHCausalLMOutput(
1882
+ loss=loss,
1883
+ logits=logits,
1884
+ cache_params=nemotron_h_outputs.cache_params,
1885
+ hidden_states=nemotron_h_outputs.hidden_states,
1886
+ attentions=nemotron_h_outputs.attentions,
1887
+ )
special_tokens_map.json ADDED
@@ -0,0 +1,44 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": {
3
+ "content": "<s>",
4
+ "lstrip": false,
5
+ "normalized": false,
6
+ "rstrip": false,
7
+ "single_word": false
8
+ },
9
+ "cls_token": {
10
+ "content": "<s>",
11
+ "lstrip": false,
12
+ "normalized": false,
13
+ "rstrip": false,
14
+ "single_word": false
15
+ },
16
+ "eos_token": {
17
+ "content": "</s>",
18
+ "lstrip": false,
19
+ "normalized": false,
20
+ "rstrip": false,
21
+ "single_word": false
22
+ },
23
+ "pad_token": {
24
+ "content": "<pad>",
25
+ "lstrip": false,
26
+ "normalized": false,
27
+ "rstrip": false,
28
+ "single_word": false
29
+ },
30
+ "sep_token": {
31
+ "content": "</s>",
32
+ "lstrip": false,
33
+ "normalized": false,
34
+ "rstrip": false,
35
+ "single_word": false
36
+ },
37
+ "unk_token": {
38
+ "content": "<unk>",
39
+ "lstrip": false,
40
+ "normalized": false,
41
+ "rstrip": false,
42
+ "single_word": false
43
+ }
44
+ }
tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
tokenizer_config.json ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "add_bos_token": false,
3
+ "add_eos_token": false,
4
+ "add_prefix_space": null,
5
+ "added_tokens_decoder": {
6
+ "0": {
7
+ "content": "<s>",
8
+ "lstrip": false,
9
+ "normalized": false,
10
+ "rstrip": false,
11
+ "single_word": false,
12
+ "special": true
13
+ },
14
+ "1": {
15
+ "content": "</s>",
16
+ "lstrip": false,
17
+ "normalized": false,
18
+ "rstrip": false,
19
+ "single_word": false,
20
+ "special": true
21
+ },
22
+ "2": {
23
+ "content": "<unk>",
24
+ "lstrip": false,
25
+ "normalized": false,
26
+ "rstrip": false,
27
+ "single_word": false,
28
+ "special": true
29
+ },
30
+ "3": {
31
+ "content": "<pad>",
32
+ "lstrip": false,
33
+ "normalized": false,
34
+ "rstrip": false,
35
+ "single_word": false,
36
+ "special": true
37
+ }
38
+ },
39
+ "bos_token": "<s>",
40
+ "clean_up_tokenization_spaces": false,
41
+ "cls_token": "<s>",
42
+ "eos_token": "</s>",
43
+ "extra_special_tokens": {},
44
+ "legacy": false,
45
+ "model_max_length": 1000000000000000019884624838656,
46
+ "pad_token": "<pad>",
47
+ "sep_token": "</s>",
48
+ "tokenizer_class": "LlamaTokenizerFast",
49
+ "unk_token": "<unk>",
50
+ "use_default_system_prompt": false
51
+ }