py660 ML610 commited on
Commit
effc43b
0 Parent(s):

Duplicate from ML610/Replit-v2-CodeInstruct-3b-ggml

Browse files

Co-authored-by: H <ML610@users.noreply.huggingface.co>

Files changed (6) hide show
  1. .gitattributes +58 -0
  2. LICENSE +197 -0
  3. README.md +24 -0
  4. app.py +87 -0
  5. replit-v2-codeinstruct-3b.q4_1.bin +3 -0
  6. requirements.txt +2 -0
.gitattributes ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ ctransformers/_skbuild/win-amd64-3.11/cmake-build/CMakeFiles/ctransformers.dir/models/llm.cc.obj filter=lfs diff=lfs merge=lfs -text
37
+ ctransformers/_skbuild/win-amd64-3.11/cmake-build/ctransformers.exp filter=lfs diff=lfs merge=lfs -text
38
+ ctransformers/_skbuild/win-amd64-3.11/cmake-build/ctransformers.lib filter=lfs diff=lfs merge=lfs -text
39
+ ctransformers/_skbuild/win-amd64-3.11/cmake-build/lib/ctransformers.dll filter=lfs diff=lfs merge=lfs -text
40
+ ctransformers/_skbuild/win-amd64-3.11/cmake-install/ctransformers/lib/avx/libctransformers.dylib filter=lfs diff=lfs merge=lfs -text
41
+ ctransformers/_skbuild/win-amd64-3.11/cmake-install/ctransformers/lib/avx/libctransformers.so filter=lfs diff=lfs merge=lfs -text
42
+ ctransformers/_skbuild/win-amd64-3.11/cmake-install/ctransformers/lib/avx2/libctransformers.dylib filter=lfs diff=lfs merge=lfs -text
43
+ ctransformers/_skbuild/win-amd64-3.11/cmake-install/ctransformers/lib/avx2/libctransformers.so filter=lfs diff=lfs merge=lfs -text
44
+ ctransformers/_skbuild/win-amd64-3.11/cmake-install/ctransformers/lib/basic/libctransformers.dylib filter=lfs diff=lfs merge=lfs -text
45
+ ctransformers/_skbuild/win-amd64-3.11/cmake-install/ctransformers/lib/local/ctransformers.dll filter=lfs diff=lfs merge=lfs -text
46
+ ctransformers/_skbuild/win-amd64-3.11/setuptools/lib.win-amd64-cpython-311/ctransformers/lib/avx/libctransformers.dylib filter=lfs diff=lfs merge=lfs -text
47
+ ctransformers/_skbuild/win-amd64-3.11/setuptools/lib.win-amd64-cpython-311/ctransformers/lib/avx/libctransformers.so filter=lfs diff=lfs merge=lfs -text
48
+ ctransformers/_skbuild/win-amd64-3.11/setuptools/lib.win-amd64-cpython-311/ctransformers/lib/avx2/libctransformers.dylib filter=lfs diff=lfs merge=lfs -text
49
+ ctransformers/_skbuild/win-amd64-3.11/setuptools/lib.win-amd64-cpython-311/ctransformers/lib/avx2/libctransformers.so filter=lfs diff=lfs merge=lfs -text
50
+ ctransformers/_skbuild/win-amd64-3.11/setuptools/lib.win-amd64-cpython-311/ctransformers/lib/basic/libctransformers.dylib filter=lfs diff=lfs merge=lfs -text
51
+ ctransformers/_skbuild/win-amd64-3.11/setuptools/lib.win-amd64-cpython-311/ctransformers/lib/local/ctransformers.dll filter=lfs diff=lfs merge=lfs -text
52
+ ctransformers/ctransformers/lib/avx/libctransformers.dylib filter=lfs diff=lfs merge=lfs -text
53
+ ctransformers/ctransformers/lib/avx/libctransformers.so filter=lfs diff=lfs merge=lfs -text
54
+ ctransformers/ctransformers/lib/avx2/libctransformers.dylib filter=lfs diff=lfs merge=lfs -text
55
+ ctransformers/ctransformers/lib/avx2/libctransformers.so filter=lfs diff=lfs merge=lfs -text
56
+ ctransformers/ctransformers/lib/basic/libctransformers.dylib filter=lfs diff=lfs merge=lfs -text
57
+ ctransformers/models/submodules/ggml/examples/mnist/models/mnist/mnist_model.state_dict filter=lfs diff=lfs merge=lfs -text
58
+ ctransformers/models/submodules/ggml/examples/mnist/models/mnist/t10k-images.idx3-ubyte filter=lfs diff=lfs merge=lfs -text
LICENSE ADDED
@@ -0,0 +1,197 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ NOTICE
2
+
3
+ Copyright (c) 2023
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
+
8
+ Unless required by applicable law or agreed to in writing, software
9
+ distributed under the License is distributed on an "AS IS" BASIS,
10
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ See the License for the specific language governing permissions and
12
+ limitations under the License.
13
+
14
+ The License has been attached herewith below for perusal.
15
+
16
+ ------------------------------------------------------------------------
17
+
18
+ Apache License
19
+
20
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
21
+
22
+ 1. Definitions.
23
+
24
+ "License" shall mean the terms and conditions for use, reproduction,
25
+ and distribution as defined by Sections 1 through 9 of this document.
26
+
27
+ "Licensor" shall mean the copyright owner or entity authorized by
28
+ the copyright owner that is granting the License.
29
+
30
+ "Legal Entity" shall mean the union of the acting entity and all
31
+ other entities that control, are controlled by, or are under common
32
+ control with that entity. For the purposes of this definition,
33
+ "control" means (i) the power, direct or indirect, to cause the
34
+ direction or management of such entity, whether by contract or
35
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
36
+ outstanding shares, or (iii) beneficial ownership of such entity.
37
+
38
+ "You" (or "Your") shall mean an individual or Legal Entity
39
+ exercising permissions granted by this License.
40
+
41
+ "Source" form shall mean the preferred form for making modifications,
42
+ including but not limited to software source code, documentation
43
+ source, and configuration files.
44
+
45
+ "Object" form shall mean any form resulting from mechanical
46
+ transformation or translation of a Source form, including but
47
+ not limited to compiled object code, generated documentation,
48
+ and conversions to other media types.
49
+
50
+ "Work" shall mean the work of authorship, whether in Source or
51
+ Object form, made available under the License, as indicated by a
52
+ the above mentioned copyright notice to which this License has been
53
+ appended.
54
+
55
+ "Derivative Works" shall mean any work, whether in Source or Object
56
+ form, that is based on (or derived from) the Work and for which the
57
+ editorial revisions, annotations, elaborations, or other modifications
58
+ represent, as a whole, an original work of authorship. For the purposes
59
+ of this License, Derivative Works shall not include works that remain
60
+ separable from, or merely link (or bind by name) to the interfaces of,
61
+ the Work and Derivative Works thereof.
62
+
63
+ "Contribution" shall mean any work of authorship, including
64
+ the original version of the Work and any modifications or additions
65
+ to that Work or Derivative Works thereof, that is intentionally
66
+ submitted to Licensor for inclusion in the Work by the copyright owner
67
+ or by an individual or Legal Entity authorized to submit on behalf of
68
+ the copyright owner. For the purposes of this definition, "submitted"
69
+ means any form of electronic, verbal, or written communication sent
70
+ to the Licensor or its representatives, including but not limited to
71
+ communication on electronic mailing lists, source code control systems,
72
+ and issue tracking systems that are managed by, or on behalf of, the
73
+ Licensor for the purpose of discussing and improving the Work, but
74
+ excluding communication that is conspicuously marked or otherwise
75
+ designated in writing by the copyright owner as "Not a Contribution."
76
+
77
+ "Contributor" shall mean Licensor and any individual or Legal Entity
78
+ on behalf of whom a Contribution has been received by Licensor and
79
+ subsequently incorporated within the Work.
80
+
81
+ 2. Grant of Copyright License. Subject to the terms and conditions of
82
+ this License, each Contributor hereby grants to You a perpetual,
83
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
84
+ copyright license to reproduce, prepare Derivative Works of,
85
+ publicly display, publicly perform, sublicense, and distribute the
86
+ Work and such Derivative Works in Source or Object form.
87
+
88
+ 3. Grant of Patent License. Subject to the terms and conditions of
89
+ this License, each Contributor hereby grants to You a perpetual,
90
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
91
+ (except as stated in this section) patent license to make, have made,
92
+ use, offer to sell, sell, import, and otherwise transfer the Work,
93
+ where such license applies only to those patent claims licensable
94
+ by such Contributor that are necessarily infringed by their
95
+ Contribution(s) alone or by combination of their Contribution(s)
96
+ with the Work to which such Contribution(s) was submitted. If You
97
+ institute patent litigation against any entity (including a
98
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
99
+ or a Contribution incorporated within the Work constitutes direct
100
+ or contributory patent infringement, then any patent licenses
101
+ granted to You under this License for that Work shall terminate
102
+ as of the date such litigation is filed.
103
+
104
+ 4. Redistribution. You may reproduce and distribute copies of the
105
+ Work or Derivative Works thereof in any medium, with or without
106
+ modifications, and in Source or Object form, provided that You
107
+ meet the following conditions:
108
+
109
+ (a) You must give any other recipients of the Work or
110
+ Derivative Works a copy of this License; and
111
+
112
+ (b) You must cause any modified files to carry prominent notices
113
+ stating that You changed the files; and
114
+
115
+ (c) You must retain, in the Source form of any Derivative Works
116
+ that You distribute, all copyright, patent, trademark, and
117
+ attribution notices from the Source form of the Work,
118
+ excluding those notices that do not pertain to any part of
119
+ the Derivative Works; and
120
+
121
+ (d) If the Work includes a "NOTICE" text file as part of its
122
+ distribution, then any Derivative Works that You distribute must
123
+ include a readable copy of the attribution notices contained
124
+ within such NOTICE file, excluding those notices that do not
125
+ pertain to any part of the Derivative Works, in at least one
126
+ of the following places: within a NOTICE text file distributed
127
+ as part of the Derivative Works; within the Source form or
128
+ documentation, if provided along with the Derivative Works; or,
129
+ within a display generated by the Derivative Works, if and
130
+ wherever such third-party notices normally appear. The contents
131
+ of the NOTICE file are for informational purposes only and
132
+ do not modify the License. You may add Your own attribution
133
+ notices within Derivative Works that You distribute, alongside
134
+ or as an addendum to the NOTICE text from the Work, provided
135
+ that such additional attribution notices cannot be construed
136
+ as modifying the License.
137
+
138
+ You may add Your own copyright statement to Your modifications, provided
139
+ Your use, reproduction, and distribution of the Work otherwise complies with
140
+ the conditions stated in this License. However, you cannot and will not
141
+ provide additional or different license terms and conditions than the ones
142
+ used herein this License or modify the terms and conditions used herein this
143
+ License to such an extent that they are in effect different from what they were intended,
144
+ for use, reproduction, or distribution of Your modifications, or for any such Derivative
145
+ Works as a whole.
146
+
147
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
148
+ any Contribution intentionally submitted for inclusion in the Work
149
+ by You to the Licensor shall be under the terms and conditions of
150
+ this License, without any additional terms or conditions.
151
+ Notwithstanding the above, nothing herein shall supersede or modify
152
+ the terms of any separate license agreement you may have executed
153
+ with Licensor regarding such Contributions.
154
+
155
+ 6. Trademarks. This License does not grant permission to use the trade
156
+ names, trademarks, service marks, or product names of the Licensor,
157
+ except as required for reasonable and customary use in describing the
158
+ origin of the Work and reproducing the content of the NOTICE file.
159
+
160
+ 7. Disclaimer of Warranty. Unless required by applicable law or
161
+ agreed to in writing, Licensor provides the Work (and each
162
+ Contributor provides its Contributions) on an "AS IS" BASIS,
163
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
164
+ implied, including, without limitation, any warranties or conditions
165
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
166
+ PARTICULAR PURPOSE. You are solely responsible for determining the
167
+ appropriateness of using or redistributing the Work and assume any
168
+ risks associated with Your exercise of permissions under this License.
169
+
170
+ 8. Limitation of Liability. In no event and under no legal theory,
171
+ whether in tort (including negligence), contract, or otherwise,
172
+ unless required by applicable law (such as deliberate and grossly
173
+ negligent acts) or agreed to in writing, shall any Contributor be
174
+ liable to You for damages, including any direct, indirect, special,
175
+ incidental, or consequential damages of any character arising as a
176
+ result of this License or out of the use or inability to use the
177
+ Work (including but not limited to damages for loss of goodwill,
178
+ work stoppage, computer failure or malfunction, or any and all
179
+ other commercial damages or losses), even if such Contributor
180
+ has been advised of the possibility of such damages.
181
+
182
+ 9. Accepting Warranty or Additional Liability. While redistributing
183
+ the Work or Derivative Works thereof, You may choose to offer,
184
+ and charge a fee for, acceptance of support, warranty, indemnity,
185
+ or other liability obligations and/or rights consistent with this
186
+ License. However, in accepting such obligations, You may act only
187
+ on Your own behalf and on Your sole responsibility, not on behalf
188
+ of any other Contributor, and only if You agree to indemnify,
189
+ defend, and hold each Contributor harmless for any liability
190
+ incurred by, or claims asserted against, such Contributor by reason
191
+ of your accepting any such warranty or additional liability.
192
+
193
+ 10. Miscelleanous. The Work has been derived on the basis of the model
194
+ uplodaded by Mr Anton Bacaj at the following GitHub repositiory:
195
+ "https://github.com/abacaj/replit-3B-inference".
196
+
197
+ END OF TERMS AND CONDITIONS
README.md ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: YOUR PERSONAL REPLIT GHOSTWRITER
3
+ emoji: 👀
4
+ colorFrom: blue
5
+ colorTo: indigo
6
+ sdk: gradio
7
+ sdk_version: 3.35.2
8
+ app_file: app.py
9
+ pinned: false
10
+ license: apache-2.0
11
+ duplicated_from: ML610/Replit-v2-CodeInstruct-3b-ggml
12
+ ---
13
+
14
+ # YOUR PERSONAL REPLIT GHOSTWRITER
15
+
16
+ ## ABOUT
17
+
18
+ This project is an attempt to run the GGML 4 bit quantized version of the 'Replit-v2-CodeInstruct-3b' model on a CPU (i.e., a free HuggingFace Space).
19
+
20
+ Checkout the website that I built on top of this model - https://personal-replit-ghostwriter.sixftone-mlh.repl.co/
21
+
22
+ ## CREDITS
23
+
24
+ The 4 bit quantized model was provided by https://huggingface.co/abacaj
app.py ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+
3
+ import os
4
+ from dataclasses import dataclass, asdict
5
+ from ctransformers import AutoModelForCausalLM, AutoConfig
6
+
7
+
8
+ @dataclass
9
+ class GenerationConfig:
10
+ temperature: float
11
+ top_k: int
12
+ top_p: float
13
+ repetition_penalty: float
14
+ max_new_tokens: int
15
+ seed: int
16
+ reset: bool
17
+ stream: bool
18
+ threads: int
19
+ stop: list[str]
20
+
21
+
22
+ def format_prompt(user_prompt: str):
23
+ return f"""### Instruction:
24
+ {user_prompt}
25
+
26
+ ### Response:"""
27
+
28
+
29
+ def generate(
30
+ llm: AutoModelForCausalLM,
31
+ generation_config: GenerationConfig,
32
+ user_prompt: str,
33
+ ):
34
+ """run model inference, will return a Generator if streaming is true"""
35
+
36
+ return llm(format_prompt(user_prompt), **asdict(generation_config))
37
+
38
+ config = AutoConfig.from_pretrained(
39
+ "teknium/Replit-v2-CodeInstruct-3B", context_length=2048
40
+ )
41
+ llm = AutoModelForCausalLM.from_pretrained(
42
+ os.path.abspath("replit-v2-codeinstruct-3b.q4_1.bin"),
43
+ model_type="replit",
44
+ config=config,
45
+ )
46
+
47
+ generation_config = GenerationConfig(
48
+ temperature=0.2,
49
+ top_k=50,
50
+ top_p=0.9,
51
+ repetition_penalty=1.0,
52
+ max_new_tokens=512, # adjust as needed
53
+ seed=42,
54
+ reset=True, # reset history (cache)
55
+ stream=True, # streaming per word/token
56
+ threads=int(os.cpu_count() / 6), # adjust for your CPU
57
+ stop=["<|endoftext|>"],
58
+ )
59
+
60
+ user_prefix = "[user]: "
61
+ assistant_prefix = f"[assistant]:"
62
+
63
+ title = "Replit-v2-CodeInstruct-3b-ggml"
64
+ description = "This space is an attempt to run the GGML 4 bit quantized version of 'Replit's CodeInstruct 3B' on a CPU"
65
+
66
+ example_1 = "Write a python script for a function which calculates the factorial of the number inputted by user."
67
+ example_2 = "Write a python script which prints 'you are logged in' only if the user inputs a number between 1-10"
68
+
69
+ examples = [example_1, example_2]
70
+
71
+ def generate_code(user_input):
72
+ response = generate(llm, generation_config, user_input)
73
+ code = ""
74
+ for word in response:
75
+ code = code + word
76
+ return code
77
+
78
+ UI = gr.Interface(
79
+ fn=generate_code,
80
+ inputs=gr.Textbox(label="user_prompt", placeholder="Ask your queries here...."),
81
+ outputs=gr.Textbox(label="Assistant"),
82
+ title=title,
83
+ description=description,
84
+ examples=examples
85
+ )
86
+
87
+ UI.launch()
replit-v2-codeinstruct-3b.q4_1.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3be2edcc7a10e90ccf33ea868cd128e909a94ca6985806070f758a0d2c495a33
3
+ size 1463873607
requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ git+https://github.com/abacaj/ctransformers.git@2e44d3416eeb376cc165b2c96b7fa0749a2b833d#egg=ctransformers
2
+ transformers==4.30.2