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

Google Colab V100环境下libcublas.so.11缺失报错求助

问题描述

在Google Colab的V100 GPU高内存模式下开发LLM项目,此前代码运行正常。自2023年12月15日torch v2.1.2发布后,出现报错:

RuntimeError: Library libcublas.so.11 is not found or cannot be loaded

尝试回退至之前可用的torch==2.1.1和torchaudio==2.1.1版本,问题仍未解决。错误触发于遍历faster-whisper返回的segments_raw时。


依赖列表

git+https://github.com/pyannote/pyannote-audio
git+https://github.com/huggingface/transformers.git@v4.34.1
openai==0.28
ffmpeg-python
pandas==1.5.0
tokenizers==0.14
torch==2.1.1
torchaudio==2.1.1
tqdm==4.64.1
EasyNMT==2.0.2
psutil==5.9.2
requests
pydub
docxtpl
faster-whisper==0.10.0
git+https://github.com/openai/whisper.git

导入模块

from faster_whisper import WhisperModel
from datetime import datetime, timedelta
from time import time
from pathlib import Path
import pandas as pd
import os
from pydub import AudioSegment
import numpy as np
from sklearn.cluster import AgglomerativeClustering
from sklearn.metrics import silhouette_score

import requests

import torch
import pyannote.audio
from pyannote.audio.pipelines.speaker_verification import PretrainedSpeakerEmbedding
from pyannote.audio import Audio
from pyannote.core import Segment

import wave
import contextlib
import psutil

import openai
from codecs import decode

from docxtpl import DocxTemplate

报错代码片段

def EETDT(audio_path, whisper_model, num_speakers, output_name="diarization_result", selected_source_lang="eng", transcript=None):
    """
    使用Whisper分割音频片段并生成转录文本。

    语音识别基于OpenAI Whisper模型,说话人分离模型及流水线来自pyannote-audio
    audio_path : str -> wav文件路径
    whisper_model : str -> small/medium/large/large-v2/large-v3
    num_speakers : int -> 音频中的说话人数量(设为0时由函数自动判断)
    output_name : str -> 输出文件的期望名称
    selected_source_lang : str -> 语言代码
    """

    audio_name = audio_path.split("/")[-1].split(".")[0]

    model = WhisperModel(whisper_model, compute_type="int8")
    time_start = time()
    if(audio_path == None):
        raise ValueError("错误:未输入视频文件")
    print("输入文件:", audio_path)
    if not audio_path.endswith(".wav"):
        print("提交的音频不是wav格式,开始转换...")
        audio = AudioSegment.from_file(audio_path)
        audio_suffix = audio_path.split(".")[-1]
        new_path = audio_path.replace(audio_suffix,"wav")
        audio.export(new_path, format="wav")
        audio_path = new_path
        print("已转换为wav格式:", new_path)
    try:
        # 获取音频时长
        with contextlib.closing(wave.open(audio_path,'r')) as f:
            frames = f.getnframes()
            rate = f.getframerate()
            duration = frames / float(rate)
        if duration < 30:
            raise ValueError(f"音频时长需超过30秒,当前时长:{duration}")
        print(f"音频文件时长: {duration}")

        # 转录音频
        options = dict(language=selected_source_lang, beam_size=5, best_of=5)
        transcribe_options = dict(task="transcribe", **options)
        segments_raw, info = model.transcribe(audio_path, **transcribe_options)

        # 转换为原openai格式
        segments = []
        i = 0
        full_transcript = list()
        if type(transcript) != type(pd.DataFrame()):
            for segment_chunk in segments_raw: # <-- 此处触发错误
                chunk = {}
                chunk["start"] = segment_chunk.start
                chunk["end"] = segment_chunk.end
                chunk["text"] = segment_chunk.text
                full_transcript.append(segment_chunk.text)
                segments.append(chunk)
                i += 1
            full_transcript = "".join(full_transcript)
            print("使用fast-whisper完成音频转录")
        else:
            for i in range(len(transcript)):
                full_transcript.append(transcript["text"].iloc[i])
            full_transcript = "".join(full_transcript)
            print("已输入预转录的音频文本")

    except Exception as e:
        raise RuntimeError("视频转音频出错")
# 代码无法离开try块

解决方案

1. 清理环境残留依赖

回退torch版本后,旧的CUDA缓存可能未清理,执行:

!pip uninstall -y torch torchaudio torchvision
!pip cache purge

2. 安装匹配CUDA版本的torch

Colab V100对应CUDA 11.8,指定源安装:

!pip install torch==2.1.1 torchaudio==2.1.1 torchvision==0.16.1 --index-url https://download.pytorch.org/whl/cu118

3. 修复libcublas.so.11缺失

直接安装对应系统库:

!apt-get update && apt-get install -y libcublas11

4. 升级兼容版依赖

  • faster-whisper 0.10.0与torch2.1.x存在兼容问题,升级至稳定版:
!pip install faster-whisper==0.11.1
  • 重新安装pyannote-audio确保兼容性:
!pip install git+https://github.com/pyannote/pyannote-audio --force-reinstall

5. 代码调整

将compute_type="int8"改为compute_type="float16"(int8在部分CUDA环境下需额外配置,float16更稳定):

model = WhisperModel(whisper_model, compute_type="float16")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 03:22:34