如何在MAC下安装EcomGpt模型
- 1.确定系统是否满足
- 2.安装Homebrew
- 3.安装git
- 4.安装python3.10
- 5.安装启动虚拟环境
- 6.下载源码
- 7.安装依赖
- [8.下载 EcomGPT-7B 模型权重](#8.下载 EcomGPT-7B 模型权重)
- [9. 创建运行的脚步](#9. 创建运行的脚步)
- 10.运行
- 11.访问
1.确定系统是否满足
- Mac 硬件 / 系统要求(必看)
- 芯片:Apple Silicon M1/M2/M3(推荐 16GB+ 内存)
- 系统:macOS 12+( Monterey 及以上,最好 Sonoma)
- 磁盘:≥50GB 空闲 SSD(模型约 30GB)
- 内存:至少 16GB,32GB 更稳(8GB 会频繁 swap、很慢)
2.安装Homebrew
如果安装过了就可以跳过,没有需要进行安装
bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
3.安装git
bash
brew install git wget
4.安装python3.10
这边也可以去python官网进行下载安装包下载
bash
brew install python@3.10
如果使用上述命令安装出现卡顿Auto-updating Homebrew,则可能是homebrew在更新,执行先禁止更新
bash
export HOMEBREW_NO_AUTO_UPDATE=1
如果是安装包执行的,在命令行可能不生效则执行
bash
echo 'export PATH="/Library/Frameworks/Python.framework/Versions/3.10/bin:$PATH"' >> ~/.zshrc
bash
source ~/.zshrc
测试是否安装成功
bash
python3.10 --version
5.安装启动虚拟环境
bash
# 新建目录并进入
mkdir -p ~/ecomgpt && cd ~/ecomgpt
# 创建虚拟环境
python3.10 -m venv venv
# 激活环境(每次新开终端都要执行)
source venv/bin/activate
提示符变成 (venv) 就成功了。
6.下载源码
bash
# 克隆官方仓库
git clone https://github.com/Alibaba-NLP/EcomGPT.git
# 进入项目目录
cd EcomGPT
7.安装依赖
安装PyTorch
bash
pip install torch==2.5.0 torchvision torchaudio
运行文档
bash
pip install transformers==4.45.0 accelerate==0.30.0 gradio==5.0.0 sentencepiece protobuf
或者也可以运行下载的源码目录中的
bash
pip install -r requirements.txt
8.下载 EcomGPT-7B 模型权重
修改镜像地址
bash
pip install modelscope -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn
永久修改
bash
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
下载模型
bash
python -c "from modelscope import snapshot_download; snapshot_download('iic/nlp_ecomgpt_multilingual-7B-ecom', revision='v1.0.1')"
9. 创建运行的脚步
bash
cat > run_ecomgpt_mac.py << 'EOF'
from transformers import AutoModelForCausalLM, AutoTokenizer
from modelscope import snapshot_download
import gradio as gr
import torch
model_name = "iic/nlp_ecomgpt_multilingual-7B-ecom"
model_dir = snapshot_download(model_name, revision="v1.0.1")
tokenizer = AutoTokenizer.from_pretrained(model_dir)
device = "mps" if torch.backends.mps.is_available() else "cpu"
model = AutoModelForCausalLM.from_pretrained(
model_dir,
low_cpu_mem_usage=True
).to(device)
def chat(message, history=None):
prompt = f"请帮我写一段吸引人的电商商品文案:{message}\n文案内容:"
inputs = tokenizer(
prompt,
return_tensors="pt",
truncation=True,
max_length=256
).to(device)
outputs = model.generate(
**inputs,
max_new_tokens=300,
do_sample=True,
top_p=0.9,
temperature=0.6,
pad_token_id=tokenizer.eos_token_id,
eos_token_id=tokenizer.eos_token_id,
repetition_penalty=1.1
)
res = tokenizer.decode(outputs[0], skip_special_tokens=True)
if "文案内容:" in res:
res = res.split("文案内容:")[-1].strip()
return res
with gr.Blocks(title="EcomGPT 电商文案") as demo:
gr.Markdown("# EcomGPT 电商文案生成")
gr.ChatInterface(chat)
# 关键:0.0.0.0 允许局域网访问
demo.launch(server_name="0.0.0.0", server_port=7860, share=False)
EOF
10.运行
bash
python run_ecomgpt_mac.py
11.访问
同局域网手机 / 其他电脑: