1.确定系统是否满足

  • Mac 硬件 / 系统要求(必看)
  • 芯片:Apple Silicon M1/M2/M3(推荐 16GB+ 内存)
  • 系统:macOS 12+( Monterey 及以上,最好 Sonoma)
  • 磁盘:≥50GB 空闲 SSD(模型约 30GB)
  • 内存:至少 16GB,32GB 更稳(8GB 会频繁 swap、很慢)

2.安装Homebrew

如果安装过了就可以跳过,没有需要进行安装

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

3.安装git

brew install git wget

4.安装python3.10

这边也可以去python官网进行下载安装包下载

brew install python@3.10

如果使用上述命令安装出现卡顿Auto-updating Homebrew,则可能是homebrew在更新,执行先禁止更新

export HOMEBREW_NO_AUTO_UPDATE=1

如果是安装包执行的,在命令行可能不生效则执行

echo 'export PATH="/Library/Frameworks/Python.framework/Versions/3.10/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

测试是否安装成功

python3.10 --version

5.安装启动虚拟环境

# 新建目录并进入
mkdir -p ~/ecomgpt && cd ~/ecomgpt

# 创建虚拟环境
python3.10 -m venv venv

# 激活环境(每次新开终端都要执行)
source venv/bin/activate

提示符变成 (venv) 就成功了。

6.下载源码

# 克隆官方仓库
git clone https://github.com/Alibaba-NLP/EcomGPT.git

# 进入项目目录
cd EcomGPT

7.安装依赖

安装PyTorch

pip install torch==2.5.0 torchvision torchaudio

运行文档

pip install transformers==4.45.0 accelerate==0.30.0 gradio==5.0.0 sentencepiece protobuf

或者也可以运行下载的源码目录中的

pip install -r requirements.txt

8.下载 EcomGPT-7B 模型权重

修改镜像地址

pip install modelscope -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn

永久修改

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

下载模型

python -c "from modelscope import snapshot_download; snapshot_download('iic/nlp_ecomgpt_multilingual-7B-ecom', revision='v1.0.1')"

9. 创建运行的脚步

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.运行

python run_ecomgpt_mac.py

11.访问

本机:http://localhost:7860
同局域网手机 / 其他电脑:
http://192.168.192.60:7860

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐