Spaces:
Running
Running
Update app.py (#15)
Browse files- Update app.py (4fb64a2876f7880976b7db6feebe48e727684449)
app.py
CHANGED
@@ -11,6 +11,7 @@ from huggingface_hub import whoami
|
|
11 |
from huggingface_hub import ModelCard
|
12 |
from huggingface_hub import login
|
13 |
from huggingface_hub import scan_cache_dir
|
|
|
14 |
|
15 |
from gradio_huggingfacehub_search import HuggingfaceHubSearch
|
16 |
|
@@ -18,7 +19,9 @@ from apscheduler.schedulers.background import BackgroundScheduler
|
|
18 |
|
19 |
from textwrap import dedent
|
20 |
|
21 |
-
from mlx_lm import convert
|
|
|
|
|
22 |
|
23 |
HF_TOKEN = os.environ.get("HF_TOKEN")
|
24 |
|
@@ -33,6 +36,55 @@ def clear_cache():
|
|
33 |
|
34 |
print("Cache has been cleared")
|
35 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
def process_model(model_id, q_method,oauth_token: gr.OAuthToken | None):
|
37 |
|
38 |
if oauth_token.token is None:
|
@@ -41,11 +93,12 @@ def process_model(model_id, q_method,oauth_token: gr.OAuthToken | None):
|
|
41 |
model_name = model_id.split('/')[-1]
|
42 |
username = whoami(oauth_token.token)["name"]
|
43 |
|
44 |
-
login(token=oauth_token.token, add_to_git_credential=True)
|
45 |
|
46 |
try:
|
47 |
upload_repo = username + "/" + model_name + "-mlx"
|
48 |
-
convert(model_id, quantize=True
|
|
|
49 |
clear_cache()
|
50 |
return (
|
51 |
f'Find your repo <a href=\'{new_repo_url}\' target="_blank" style="text-decoration:underline">here</a>',
|
|
|
11 |
from huggingface_hub import ModelCard
|
12 |
from huggingface_hub import login
|
13 |
from huggingface_hub import scan_cache_dir
|
14 |
+
from huggingface_hub import logging
|
15 |
|
16 |
from gradio_huggingfacehub_search import HuggingfaceHubSearch
|
17 |
|
|
|
19 |
|
20 |
from textwrap import dedent
|
21 |
|
22 |
+
from mlx_lm import convert, __version__
|
23 |
+
|
24 |
+
from typing import Any, Callable, Dict, Generator, List, Optional, Tuple, Type, Union
|
25 |
|
26 |
HF_TOKEN = os.environ.get("HF_TOKEN")
|
27 |
|
|
|
36 |
|
37 |
print("Cache has been cleared")
|
38 |
|
39 |
+
def upload_to_hub(path, upload_repo, hf_path, token):
|
40 |
+
|
41 |
+
card = ModelCard.load(hf_path)
|
42 |
+
card.data.tags = ["mlx"] if card.data.tags is None else card.data.tags + ["mlx"]
|
43 |
+
card.data.base_model = hf_path
|
44 |
+
card.text = dedent(
|
45 |
+
f"""
|
46 |
+
# {upload_repo}
|
47 |
+
|
48 |
+
The Model [{upload_repo}](https://huggingface.co/{upload_repo}) was converted to MLX format from [{hf_path}](https://huggingface.co/{hf_path}) using mlx-lm version **{__version__}**.
|
49 |
+
|
50 |
+
## Use with mlx
|
51 |
+
|
52 |
+
```bash
|
53 |
+
pip install mlx-lm
|
54 |
+
```
|
55 |
+
|
56 |
+
```python
|
57 |
+
from mlx_lm import load, generate
|
58 |
+
|
59 |
+
model, tokenizer = load("{upload_repo}")
|
60 |
+
|
61 |
+
prompt="hello"
|
62 |
+
|
63 |
+
if hasattr(tokenizer, "apply_chat_template") and tokenizer.chat_template is not None:
|
64 |
+
messages = [{{"role": "user", "content": prompt}}]
|
65 |
+
prompt = tokenizer.apply_chat_template(
|
66 |
+
messages, tokenize=False, add_generation_prompt=True
|
67 |
+
)
|
68 |
+
|
69 |
+
response = generate(model, tokenizer, prompt=prompt, verbose=True)
|
70 |
+
```
|
71 |
+
"""
|
72 |
+
)
|
73 |
+
card.save(os.path.join(path, "README.md"))
|
74 |
+
|
75 |
+
logging.set_verbosity_info()
|
76 |
+
|
77 |
+
api = HfApi()
|
78 |
+
api.create_repo(repo_id=upload_repo, exist_ok=True)
|
79 |
+
api.upload_folder(
|
80 |
+
folder_path=path,
|
81 |
+
repo_id=upload_repo,
|
82 |
+
repo_type="model",
|
83 |
+
multi_commits=True,
|
84 |
+
multi_commits_verbose=True,
|
85 |
+
)
|
86 |
+
print(f"Upload successful, go to https://huggingface.co/{upload_repo} for details.")
|
87 |
+
|
88 |
def process_model(model_id, q_method,oauth_token: gr.OAuthToken | None):
|
89 |
|
90 |
if oauth_token.token is None:
|
|
|
93 |
model_name = model_id.split('/')[-1]
|
94 |
username = whoami(oauth_token.token)["name"]
|
95 |
|
96 |
+
# login(token=oauth_token.token, add_to_git_credential=True)
|
97 |
|
98 |
try:
|
99 |
upload_repo = username + "/" + model_name + "-mlx"
|
100 |
+
convert(model_id, quantize=True)
|
101 |
+
upload_repo(path="mlx_model", upload_repo=upload_repo, hf_path=repo_id, token=oauth_token.token)
|
102 |
clear_cache()
|
103 |
return (
|
104 |
f'Find your repo <a href=\'{new_repo_url}\' target="_blank" style="text-decoration:underline">here</a>',
|