Steven10429 commited on
Commit
bb4bbf2
·
verified ·
1 Parent(s): f52e9f0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -15
app.py CHANGED
@@ -75,14 +75,13 @@ def check_system_resources(model_name):
75
  else:
76
  raise MemoryError(f"❌ 系统内存不足 (需要 {required_memory_gb:.1f}GB, 可用 {available_memory_gb:.1f}GB)")
77
 
78
- def setup_environment(api, model_name):
79
-
80
  # # 检查系统资源并决定使用什么设备
81
  # device, available_memory = check_system_resources(model_name)
82
  device = "cpu"
83
  return device
84
 
85
- def create_hf_repo(repo_name, hf_token, private=True):
86
  """创建HuggingFace仓库"""
87
  try:
88
  # check if repo already exists
@@ -90,7 +89,7 @@ def create_hf_repo(repo_name, hf_token, private=True):
90
  if api.repo_exists(repo_name):
91
  log(f"仓库已存在: {repo_name}")
92
  return ValueError(f"仓库已存在: {repo_name}, 请使用其他名称或删除已存在的仓库")
93
- repo_url = create_repo(repo_name, private=private, token=hf_token)
94
  log(f"创建仓库成功: {repo_url}")
95
  return repo_url
96
  except Exception as e:
@@ -197,15 +196,18 @@ def quantize_and_push_model(model_path, repo_id, bits=8):
197
  def process_model(base_model, lora_model, repo_name, hf_token, progress=gr.Progress()):
198
  """处理模型的主函数,用于Gradio界面"""
199
  try:
 
 
200
  api = HfApi(token=hf_token)
 
201
  # 清空之前的日志
202
  current_logs.clear()
203
 
204
  # 设置环境和检查资源
205
- device = setup_environment(api, base_model)
206
 
207
  # 创建HuggingFace仓库
208
- repo_url = create_hf_repo(api, repo_name)
209
 
210
  # 设置输出目录
211
  output_dir = os.path.join(".", "output", repo_name)
@@ -216,23 +218,31 @@ def process_model(base_model, lora_model, repo_name, hf_token, progress=gr.Progr
216
 
217
  # 推送到HuggingFace
218
  log(f"正在将模型推送到HuggingFace...")
219
- api = HfApi()
220
  api.upload_folder(
221
  folder_path=model_path,
222
  repo_id=repo_name,
223
  repo_type="model"
224
  )
225
 
226
- # progress(0.4, desc="开始8位量化...")
227
- # # 量化并上传模型
228
- # quantize_and_push_model(model_path, repo_name, bits=8)
 
 
 
 
 
 
 
229
 
230
- # progress(0.7, desc="开始4位量化...")
231
- # quantize_and_push_model(model_path, repo_name, bits=4)
 
232
 
233
- # final_message = f"全部完成!模型已上传至: https://huggingface.co/{repo_name}"
234
- # log(final_message)
235
- # progress(1.0, desc="处理完成")
236
 
237
  return "\n".join(current_logs)
238
  except Exception as e:
 
75
  else:
76
  raise MemoryError(f"❌ 系统内存不足 (需要 {required_memory_gb:.1f}GB, 可用 {available_memory_gb:.1f}GB)")
77
 
78
+ def setup_environment(model_name):
 
79
  # # 检查系统资源并决定使用什么设备
80
  # device, available_memory = check_system_resources(model_name)
81
  device = "cpu"
82
  return device
83
 
84
+ def create_hf_repo(repo_name, private=True):
85
  """创建HuggingFace仓库"""
86
  try:
87
  # check if repo already exists
 
89
  if api.repo_exists(repo_name):
90
  log(f"仓库已存在: {repo_name}")
91
  return ValueError(f"仓库已存在: {repo_name}, 请使用其他名称或删除已存在的仓库")
92
+ repo_url = create_repo(repo_name, private=private)
93
  log(f"创建仓库成功: {repo_url}")
94
  return repo_url
95
  except Exception as e:
 
196
  def process_model(base_model, lora_model, repo_name, hf_token, progress=gr.Progress()):
197
  """处理模型的主函数,用于Gradio界面"""
198
  try:
199
+ login(hf_token)
200
+ os.environ["HF_TOKEN"] = hf_token
201
  api = HfApi(token=hf_token)
202
+
203
  # 清空之前的日志
204
  current_logs.clear()
205
 
206
  # 设置环境和检查资源
207
+ device = setup_environment(base_model)
208
 
209
  # 创建HuggingFace仓库
210
+ repo_url = create_hf_repo(repo_name)
211
 
212
  # 设置输出目录
213
  output_dir = os.path.join(".", "output", repo_name)
 
218
 
219
  # 推送到HuggingFace
220
  log(f"正在将模型推送到HuggingFace...")
221
+
222
  api.upload_folder(
223
  folder_path=model_path,
224
  repo_id=repo_name,
225
  repo_type="model"
226
  )
227
 
228
+ progress(0.4, desc="开始8位量化...")
229
+ # 量化并上传模型
230
+ quantize_and_push_model(model_path, repo_name, bits=8)
231
+
232
+ progress(0.7, desc="开始4位量化...")
233
+ quantize_and_push_model(model_path, repo_name, bits=4)
234
+
235
+ final_message = f"全部完成!模型已上传至: https://huggingface.co/{repo_name}"
236
+ log(final_message)
237
+ progress(1.0, desc="处理完成")
238
 
239
+ # remove hf_token from env
240
+ os.environ.pop("HF_TOKEN")
241
+ log("HF_TOKEN已从环境变量中删除")
242
 
243
+ # remove model_path
244
+ os.remove(model_path)
245
+ log(f"模型路径已删除: {model_path}")
246
 
247
  return "\n".join(current_logs)
248
  except Exception as e: