SVECTOR-OFFICIAL commited on
Commit
440ab3d
·
verified ·
1 Parent(s): 7ced4b5

Delete push-model.py

Browse files
Files changed (1) hide show
  1. push-model.py +0 -169
push-model.py DELETED
@@ -1,169 +0,0 @@
1
- import os
2
- from typing import Optional
3
-
4
- from huggingface_hub import HfApi, create_repo
5
- from transformers import AutoConfig, AutoModelForCausalLM, AutoProcessor
6
-
7
-
8
- class SpecVisionModelRegistration:
9
- """
10
- Handles the registration and pushing of SpecVision model to Hugging Face Hub.
11
- """
12
-
13
- def __init__(self,
14
- model_path: str,
15
- repo_name: str,
16
- organization: Optional[str] = None,
17
- token: Optional[str] = None):
18
- """
19
- Initialize the registration handler.
20
-
21
- Args:
22
- model_path: Local path to your model files
23
- repo_name: Name for the Hugging Face repository
24
- organization: Optional organization name on Hugging Face
25
- token: Hugging Face API token
26
- """
27
- self.model_path = model_path
28
- self.repo_name = repo_name
29
- self.organization = organization
30
- self.token = token or os.getenv("HF_TOKEN")
31
-
32
- if not self.token:
33
- raise ValueError("Please provide a Hugging Face token either directly or via HF_TOKEN environment variable")
34
-
35
- self.api = HfApi()
36
-
37
- def register_model_components(self):
38
- """
39
- Register the SpecVision model architecture components with the transformers library.
40
- """
41
- # Import your custom model classes
42
- from configuration_spec_vision import SpecVisionConfig
43
- from modeling_spec_vision import SpecVisionForCausalLM
44
- from processing_spec_vision import SpecVisionProcessor
45
-
46
- # Register the model architecture
47
- AutoConfig.register("spec_vision", SpecVisionConfig)
48
- AutoModelForCausalLM.register(SpecVisionConfig, SpecVisionForCausalLM)
49
- AutoProcessor.register(SpecVisionConfig, SpecVisionProcessor)
50
-
51
- print("✓ Successfully registered SpecVision model architecture")
52
-
53
- def create_huggingface_repo(self):
54
- """
55
- Create a new repository on the Hugging Face Hub.
56
- """
57
- repo_id = f"{self.organization}/{self.repo_name}" if self.organization else self.repo_name
58
-
59
- try:
60
- create_repo(
61
- repo_id,
62
- token=self.token,
63
- private=False,
64
- exist_ok=True
65
- )
66
- print(f"✓ Created/accessed repository: {repo_id}")
67
- return repo_id
68
- except Exception as e:
69
- raise Exception(f"Failed to create repository: {str(e)}")
70
-
71
- def update_model_card(self):
72
- """
73
- Create or update the model card (README.md) with necessary information.
74
- """
75
- model_card = f"""---
76
- language: en
77
- tags:
78
- - spec-vision
79
- - vision-language-model
80
- - transformers
81
- license: apache-2.0
82
- ---
83
-
84
- # SpecVision Model
85
-
86
- This is the SpecVision model, a vision-language model based on the transformers architecture.
87
-
88
- ## Model Description
89
-
90
- SpecVision is designed for vision-language tasks, combining visual and textual understanding capabilities.
91
-
92
- ## Usage
93
-
94
- ```python
95
- from transformers import AutoConfig, AutoModelForCausalLM, AutoProcessor
96
-
97
- # Load the model and processor
98
- model = AutoModelForCausalLM.from_pretrained("{self.repo_name}")
99
- processor = AutoProcessor.from_pretrained("{self.repo_name}")
100
-
101
- # Process inputs
102
- inputs = processor(images=image, text=text, return_tensors="pt")
103
- outputs = model(**inputs)
104
- ```
105
-
106
- ## Training and Evaluation
107
-
108
- [Add your training and evaluation details here]
109
-
110
- ## Limitations and Biases
111
-
112
- [Add any known limitations and biases here]
113
- """
114
-
115
- with open(os.path.join(self.model_path, "README.md"), "w") as f:
116
- f.write(model_card)
117
-
118
- print("✓ Created/updated model card")
119
-
120
- def push_to_hub(self):
121
- """
122
- Push the model, configurations, and related files to Hugging Face Hub.
123
- """
124
- repo_id = self.create_huggingface_repo()
125
-
126
- # Update the model card first
127
- self.update_model_card()
128
-
129
- # Create a dictionary of files to upload
130
- files_to_upload = {}
131
- for filename in os.listdir(self.model_path):
132
- if filename.endswith(('.json', '.py', '.md', '.txt', '.safetensors')):
133
- filepath = os.path.join(self.model_path, filename)
134
- files_to_upload[filename] = filepath
135
-
136
- # Upload all files
137
- for filename, filepath in files_to_upload.items():
138
- self.api.upload_file(
139
- path_or_fileobj=filepath,
140
- path_in_repo=filename,
141
- repo_id=repo_id,
142
- token=self.token
143
- )
144
- print(f"✓ Uploaded {filename}")
145
-
146
- print(f"\nModel successfully pushed to https://huggingface.co/{repo_id}")
147
-
148
- def main():
149
- """
150
- Main function to execute the registration and push process.
151
- """
152
- # You can set your HF_TOKEN as an environment variable or pass it directly
153
- TOKEN = os.getenv("HF_TOKEN") # or "your_token_here"
154
-
155
- registration = SpecVisionModelRegistration(
156
- model_path="./", # Assuming you're running from the model directory
157
- repo_name="Spec-4B-Vision-V1", # Change this to your desired repo name
158
- organization="SVECTOR-CORPORATION", # Your organization name
159
- token=TOKEN
160
- )
161
-
162
- # Register the model architecture
163
- registration.register_model_components()
164
-
165
- # Push everything to the Hub
166
- registration.push_to_hub()
167
-
168
- if __name__ == "__main__":
169
- main()