8 篇文章带有标签 “mps”

语音识别及说话人分离模型(MOSS-Transcribe-Diarize)本地部署最佳实践

基于一次真实落地经历整理:在 Apple M2 Max(64GB 统一内存)上部署 OpenMOSS/MOSS-Transcribe-Diarize(0.9B 端到端音频转写 + 说话人分离),并构建 Web 应用。过程中解决了长音频(30 分钟 / 1–2 小时)在 MPS 上 OOM / 静默卡死的问题。

本文不重复项目能力说明,只讲"怎么把它跑稳、跑长"。能力研究与部署步骤见 README.md,Web 后端实现见 webapp/app.py

0. 一句话结论

不要在 Apple Silicon 上一次性推理超长音频。 端到端音频模型会把整段音频堆叠成一个巨型张量送编码器,自注意力矩阵大小 ∝ 音频长度²,几分钟可以、30 分钟必炸。正确做法是按 ≤300s 分块推理、块间重叠、时间戳偏移拼接、每块后释放 MPS 缓存

1. 部署:把"能跑"变成"稳定跑"

1.1 固定依赖版本,杜绝解析回溯

torch>=2.8 + 未固定版本的 pip install -e . 会让 uv 陷入 version-resolution 回溯死循环(解析到 2.13、多个 transformers 版本,半小时不收敛)。

M2 Max 本地部署 MOSS-Transcribe-Diarize:离线多说话人音频转写 Web 应用完整实战

基于 OpenMOSS/MOSS-Transcribe-Diarize 的本地部署,并构建了一个 Web 应用:用户上传音频/视频,模型自动完成 转写 + 说话人分离(Diarization)+ 时间戳 + 声学事件感知,返回带说话人标签的结构化字幕。

mindmap
  root((MOSS-Transcribe-Diarize<br>本地部署与Web应用))
    模型与能力
      端到端音频理解(0.9B)
      联合ASR与说话人分离
      输出Sxx标签与时间戳
      声学事件感知
      支持50+语言
    部署环境
      Apple Silicon M2 Max
      Python 3.12 + venv
      PyTorch 2.11 + Transformers 5.10
      HF镜像下载
      FastAPI后端 + 静态前端
    长音频处理策略
      自动分块(默认300秒)
      块间重叠(15秒)
      绝对时间偏移与去重
      逐块释放MPS缓存
      跨块标签不对齐(需外部聚类)
    Web应用功能
      拖拽上传音视频
      异步任务轮询
      彩色说话人标签与时间轴
      点击段落定位播放
      导出SRT/JSON/TXT
      一键复制全文
    性能与边界
      RTF小于1(MPS加速)
      单块小于等于300秒稳定
      需注意MPS OOM风险
      支持环境变量调参

一、项目能力研究

定位

MOSS-Transcribe-Diarize 是 OpenMOSS 团队开源的 端到端(end-to-end)音频理解模型,当前版本 0.9B(2026-07-09 开源)。它一次性联合完成「语音识别 + 说话人分离」,而非传统 pipeline(ASR + 独立的 speaker diarization 再对齐)。

  • 2026-07-14 获 INTERSPEECH 2026 第二届 MLC-SLM 挑战赛第一名(覆盖 14 种语言)。
  • 更强版本 MOSS-Transcribe-Diarize Pro 即将以 API 形式提供。

核心能力

能力 说明
长音频多说话人转写 面向会议、电话、播客、访谈、讲座、视频等杂乱多说话人录音
说话人分离(Diarization) 输出一致的说话人标签 [S01] [S02]
时间戳 秒级对齐,格式 [start][Sxx]text[end]
声学事件感知 可选输出,标注非语音声学事件
多语言 支持 50+ 种语言

PyTorch 神经网络实战:从训练到推理的完整指南

该文本提供了一个关于PyTorch二分类神经网络的实现与性能分析的全面概述。首先,它通过具体代码示例展示了如何构建、训练、评估和保存一个基础的神经网络模型,并演示了如何加载模型进行推理。其次,文章深入探讨了不同模型参数规模下Apple的MPS(Metal Performance Shaders)框架与CPU训练时间上的性能对比,通过表格数据清晰地呈现了MPS在处理大型模型时相较于CPU的显著优势,并指出了性能的“转折点”

我的电脑是 Apple MacBook Pro M2 Max 16寸 64G内存

PyTorch 二分类神经网络实现与训练示例 import torch import torch.nn.functional as F from torch.utils.data import Dataset from torch.utils.data import DataLoader # 模型网络 class NeuralNetwork(torch.nn.Module): def init(self, num_inputs, num_outputs): super().init() self.layers = torch.nn.Sequential( torch.nn.Linear(num_inputs, 30), torch.nn.ReLU(), torch.

在 MacBook Pro M2 Max 上安装 FastChat

FastChat

FastChat 是一个开放平台,用于训练、服务和评估基于大型语言模型的聊天机器人。

FastChat Server 架构图

安装 FastChat

克隆代码

git clone https://github.com/lm-sys/FastChat
cd FastChat

创建虚拟环境

python -m venv env
source env/bin/activate

安装

pip install --upgrade pip
pip install -e ".[model_worker,webui]"

升级 FastChat

git pull
pip install -e ".[model_worker,webui]"

创建大模型链接 LLM Qwen mkdir Qwen ln -s /Users/junjian/HuggingFace/Qwen/Qwen-14B-Chat Qwen/Qwen-14B-Chat ln -s /Users/junjian/HuggingFace/Qwen/Qwen-1_8B Qwen/Qwen-1_8B ln -s /Users/junjian/HuggingFace/Qwen/Qwen-1_8B-Chat Qwen/Qwen-1_8B-Chat ln

Qwen (通义千问)

快速开始

克隆代码

git clone https://github.com/QwenLM/Qwen.git
cd Qwen

创建虚拟环境

python -m venv env
source env/bin/activate

安装依赖

pip install -r requirements.txt

创建大模型链接

mkdir Qwen
ln -s /Users/junjian/HuggingFace/Qwen/Qwen-14B-Chat Qwen/Qwen-14B-Chat
ln -s /Users/junjian/HuggingFace/Qwen/Qwen-1_8B Qwen/Qwen-1_8B
ln -s /Users/junjian/HuggingFace/Qwen/Qwen-1_8B-Chat Qwen/Qwen-1_8B-Chat
ln -s /Users/junjian/HuggingFace/Qwen/Qwen-7B-Chat Qwen/Qwen-7B-Chat

聊天

  • 命令行聊天
python cli_demo.py
  • Web 聊天
python web_demo.py

FastChat

克隆代码

git clone https://github.com/lm-sys/FastChat
cd FastChat

创建虚拟环境 python -m venv env source env

Microsoft Phi-2

Phi-2: The surprising power of small language models

microsoft/phi-2

创建虚拟环境

conda create -n huggingface python==3.10.9
conda activate huggingface

安装依赖包

conda install pytorch torchvision -c pytorch
pip install transformers
pip install einops

下载模型

huggingface-cli download microsoft/phi-2 --local-dir microsoft/phi-2 --local-dir-use-symlinks False

代码 import torch from transformers import AutoModelForCausalLM, AutoTokenizer torch.set_default_device("mps") model = AutoModelForCausalLM.

在 MacBook Pro M2 Max 上安装 PyTorch

安装 PyTorch

sudo conda create --name pytorch python
conda activate pytorch

conda install pytorch torchvision torchaudio -c pytorch

安装每日构建版本

pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu

升级

pip3 install --upgrade --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu

训练模型 import torch import torchvision import torchvision.transforms as transforms print(f"PyTorch version: {torch.