Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
wangkx1
model-downloader
Commits
f0129d66
Commit
f0129d66
authored
Jun 06, 2025
by
wangkaixiong
🚴🏼
Browse files
init version
parent
734788aa
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
126 additions
and
0 deletions
+126
-0
download_models.sh
download_models.sh
+41
-0
model_downloader.py
model_downloader.py
+85
-0
No files found.
download_models.sh
0 → 100644
View file @
f0129d66
#!/bin/bash
# 设置日志目录
LOG_DIR
=
"./log_downloads"
CACHE_DIR
=
"./"
# 检查并创建日志目录
if
[
!
-d
"
$LOG_DIR
"
]
;
then
echo
"创建日志目录:
$LOG_DIR
"
mkdir
-p
"
$LOG_DIR
"
fi
# 检查并创建缓存目录
if
[
!
-d
"
$CACHE_DIR
"
]
;
then
echo
"创建缓存目录:
$CACHE_DIR
"
mkdir
-p
"
$CACHE_DIR
"
fi
# 要下载的模型列表
MODELS
=(
"deepseek-ai/DeepSeek-R1-0528"
"Qwen/Qwen3-235B-A22B-GPTQ-Int4"
"Qwen/Qwen3-235B-A22B"
)
# 遍历并下载每个模型
for
MODEL_ID
in
"
${
MODELS
[@]
}
"
;
do
echo
"开始下载模型:
$MODEL_ID
"
python3 model_downloader.py
\
--model-id
"
$MODEL_ID
"
\
--cache-dir
"
$CACHE_DIR
"
\
--log-dir
"
$LOG_DIR
"
# 检查上一个命令的退出状态
if
[
$?
-eq
0
]
;
then
echo
"模型
$MODEL_ID
下载完成"
else
echo
"模型
$MODEL_ID
下载失败"
fi
done
echo
"所有模型下载任务完成"
model_downloader.py
0 → 100644
View file @
f0129d66
import
time
import
argparse
import
logging
from
datetime
import
datetime
from
modelscope
import
snapshot_download
from
requests.exceptions
import
ConnectionError
from
urllib3.exceptions
import
MaxRetryError
def
setup_logging
(
log_file
):
"""������־��¼"""
logging
.
basicConfig
(
level
=
logging
.
INFO
,
format
=
'%(asctime)s - %(levelname)s - %(message)s'
,
handlers
=
[
logging
.
FileHandler
(
log_file
),
logging
.
StreamHandler
()
]
)
return
logging
.
getLogger
(
__name__
)
def
download_model_with_retry
(
model_name
,
cache_dir
,
max_retries
=
100
,
retry_delay
=
10
):
logger
=
logging
.
getLogger
(
__name__
)
retries
=
0
while
retries
<
max_retries
:
try
:
logger
.
info
(
f
"��������� (��
{
retries
+
1
}
��)..."
)
model_dir
=
snapshot_download
(
model_name
,
cache_dir
=
cache_dir
)
logger
.
info
(
"ģ�����سɹ�!"
)
return
model_dir
except
(
ConnectionError
,
MaxRetryError
)
as
e
:
retries
+=
1
logger
.
error
(
f
"����ʧ��:
{
str
(
e
)
}
"
)
if
retries
<
max_retries
:
logger
.
info
(
f
"
{
retry_delay
}
�������..."
)
time
.
sleep
(
retry_delay
)
retry_delay
*=
2
# ָ���˱�
else
:
logger
.
error
(
f
"�Ѵﵽ������Դ���
{
max_retries
}
������ʧ�ܡ�"
)
raise
except
Exception
as
e
:
logger
.
error
(
f
"����δ֪����:
{
str
(
e
)
}
"
)
raise
def
main
():
# �����������
parser
=
argparse
.
ArgumentParser
(
description
=
'����ģ�ͽű�'
)
parser
.
add_argument
(
'--model-id'
,
type
=
str
,
required
=
True
,
help
=
'Ҫ���ص�ģ��ID������ deepseek-ai/DeepSeek-R1-0528'
)
parser
.
add_argument
(
'--cache-dir'
,
type
=
str
,
required
=
True
,
help
=
'ģ�ͻ���Ŀ¼·��'
)
parser
.
add_argument
(
'--log-dir'
,
type
=
str
,
default
=
'./log_downloads'
,
help
=
'��־�ļ�Ŀ¼·��'
)
parser
.
add_argument
(
'--max-retries'
,
type
=
int
,
default
=
100
,
help
=
'������Դ�����Ĭ��Ϊ100'
)
parser
.
add_argument
(
'--retry-delay'
,
type
=
int
,
default
=
10
,
help
=
'��ʼ�����ӳ�ʱ��(��)��Ĭ��Ϊ10��'
)
args
=
parser
.
parse_args
()
# ������־�ļ���
model_id_simple
=
args
.
model_id
.
replace
(
'/'
,
'_'
)
current_date
=
datetime
.
now
().
strftime
(
'%Y%m%d'
)
log_file
=
f
"
{
args
.
log_dir
}
/
{
model_id_simple
}
_
{
current_date
}
.log"
# ������־
logger
=
setup_logging
(
log_file
)
try
:
logger
.
info
(
f
"��ʼ����ģ��:
{
args
.
model_id
}
"
)
logger
.
info
(
f
"����Ŀ¼:
{
args
.
cache_dir
}
"
)
logger
.
info
(
f
"��־�ļ�:
{
log_file
}
"
)
model_dir
=
download_model_with_retry
(
args
.
model_id
,
cache_dir
=
args
.
cache_dir
,
max_retries
=
args
.
max_retries
,
retry_delay
=
args
.
retry_delay
)
except
Exception
as
e
:
logger
.
error
(
f
"��������ʧ��:
{
str
(
e
)
}
"
)
else
:
logger
.
info
(
f
"ģ�������ص�:
{
model_dir
}
"
)
if
__name__
==
"__main__"
:
main
()
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment