You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS下导入sentence_transformers挂起及mutex锁阻塞问题排查

macOS下sentence_transformers导入死锁问题

问题描述

在macOS系统中,导入sentence_transformers库会导致Python脚本无限挂起,仅输出底层mutex锁阻塞错误,脚本无法通过Ctrl+C终止,只能强制退出终端或进程。
错误信息:

[mutex.cc : 452] RAW: Lock blocking 0x11b3e1888 @

背景

该问题始于尝试用Python的asyncio库并发运行sentence-transformers任务后,代码结构示例如下:

import asyncio
# from sentence_transformers import SentenceTransformer # 此导入现在出现问题

# model = SentenceTransformer('all-MiniLM-L6-v2') # 示例模型加载

async def process_with_tracking(org_data):
    # 最终会使用模型的一些处理逻辑
    # e.g., model.encode(org_data['text'])
    pass

async def main():
    orgs = [...] # 数据对象列表
    tasks = []
    
    # 为每个数据对象创建任务
    for org in orgs:
        task = asyncio.create_task(process_with_tracking(org))
        tasks.append(task)

    # 等待所有任务完成
    if tasks:
        await asyncio.gather(*tasks, return_exceptions=True)

# asyncio.run(main())

推测是之前的并发执行导致sentence-transformers或其依赖(如Hugging Face Transformers、PyTorch)的共享资源/缓存文件出现死锁或损坏。

核心问题

问题已扩散至全系统,即使不使用asyncio或任何并发机制也会触发。仅包含导入语句的极简脚本即可导致挂起:
test_import.py

print("Attempting to import sentence_transformers...")
import sentence_transformers
print("Import successful!") # 该行永远无法执行

运行python test_import.py时,脚本在第一个打印语句后挂起,并输出上述[mutex.cc]错误。

已尝试操作

  • 重启电脑:问题仍存在
  • 重装库:多次执行pip uninstall sentence-transformers和pip install sentence-transformers
  • 运行极简脚本:确认仅导入语句即可触发挂起,排除asyncio代码为直接触发因素

疑问

  1. 是什么导致这种重装库和重启后依然存在的持续锁问题?
  2. sentence-transformers或Hugging Face transformers在macOS上的缓存、配置或锁文件存储位置在哪里?能否手动检查或删除这些文件(例如~/.cache/huggingface/)?
  3. 底层tokenizer并行机制(tokenizers)在macOS上是否存在已知问题会导致这种状态?如何重置它?

环境

  • 操作系统:macOS
  • Python版本:3.10

内容的提问来源于stack exchange,提问作者Akash Dubey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 13:42:44