跳到主要内容

ChatGLM2 Chatdoc-TPU

ChatDoc-TPU 是一款将清华大学 KEG 实验室开源 ChatGLM2 模型通过 Sophon SDK 移植到 SG2300X 芯片系列产品上实现本地 TPU 硬件加速推理,并使用 Streamlit 设计成易于用户交互的文件聊天机器人

  • 安装须知

    在安装 ChatDoc-TPU 之前,请使用 memory_edit 工具修改当前设备的内存分配,TPU 内存需要12GB,使用方式参考内存分布修改工具

    推荐 NPU 7168 MB VPU 2048 MB VPP 3072 MB

  • 克隆仓库

    git clone https://github.com/zifeng-radxa/chatdoc
  • 下载 ChatDoc embedding 文件 与 chatglm2-int8-2048 bmodel

    wget https://github.com/radxa-edge/TPU-Edge-AI/releases/download/chatglm-int8-2048/tar_downloader.sh
    bash tar_downloader.sh
    tar -xvf chatglm-int8-2048.tar.gz
    cd chatdoc
    # TPU version
    wget https://github.com/radxa-edge/TPU-Edge-AI/releases/download/embedding/embedding_tpu.zip
    # CPU version
    # wget https://github.com/radxa-edge/TPU-Edge-AI/releases/download/embedding/embedding.zip

    unzip embedding_tpu.zip
    # CPU version
    # unzip embedding.zip
  • 得到文件树架构如下

    .
    ├── chatdoc
    │   ├── data
    │   │   ├── db
    │   │   └── uploaded
    │   ├── embedding
    │   │   └── 1_Pooling
    │   ├── embedding_tpu
    │   │   ├── __pycache__
    │   │   └── text2vec
    │   │   ├── __pycache__
    │   │   ├── model_file
    │   │   ├── tokenizer_cache
    │   │   └── utils
    │   │   └── __pycache__
    │   └── static
    └── chatglm-int8-2048
  • 创建虚拟环境

    必须创建虚拟环境,否则可能会影响其他应用的正常运行, 虚拟环境使用请参考这里

    python3 -m virtualenv .venv
    source .venv/bin/activate
  • 安装依赖

    pip3 install --upgrade pip
    pip3 install -r requirements.txt
    pip3 install https://github.com/radxa-edge/TPU-Edge-AI/releases/download/v0.1.0/tpu_perf-1.2.31-py3-none-manylinux2014_aarch64.whl
  • 启动 Web 服务

    • (推荐)TPU embedding 模式启动(占用更多 TPU 内存)

      bash run_emb_tpu.sh
    • CPU embedding 模式启动(占用更多系统内存)

      bash run.sh
  • 浏览器访问 Airbox ip 地址的 8501 端口

应用展示

chatdoc_1.webp