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

M1芯片Mac使用llama_index的适配问题及索引跨端复用咨询

问题解答

问题1:M1芯片Mac与llama_index兼容性及CUDA错误解决

M1芯片Mac完全可以和llama_index配合使用,你遇到的AssertionError: Torch not compiled with CUDA enabled错误,本质是代码中强制依赖了CUDA后端,但M1使用的是Apple Metal(MPS)后端而非CUDA。解决步骤如下:

  • 确保安装适配M1的PyTorch版本,执行命令:
    pip3 install torch torchvision torchaudio
    
    不要安装CUDA专属的PyTorch包。
  • 修改代码,让PyTorch自动检测并使用MPS后端:
    import torch
    # 优先使用MPS, fallback到CPU
    device = torch.device("mps" if torch.backends.mps.is_available() else "cpu")
    
    将自定义LLM模型及相关张量转移到该设备:
    model = model.to(device)
    
  • 检查llama_index的LLM初始化配置,确保没有强制指定cuda设备,例如在初始化自定义LLM时,显式设置device=device参数。

问题2:Colab生成索引后本地加载方案

完全可以在Google Colab的GPU环境生成索引,下载到本地M1 Mac后通过load_from_file加载使用,具体操作如下:

Colab端保存索引代码示例

from llama_index import GPTVectorStoreIndex, SimpleDirectoryReader

# 加载数据集并生成索引
documents = SimpleDirectoryReader("data").load_data()
index = GPTVectorStoreIndex.from_documents(documents)

# 将索引保存为本地文件
index.save_to_disk("index.json")

执行后,在Colab的文件管理器中找到index.json,下载到本地Mac。

本地M1 Mac加载索引代码

from llama_index import GPTVectorStoreIndex

# 从本地文件加载索引
index = GPTVectorStoreIndex.load_from_file("index.json")

# 创建查询引擎并使用
query_engine = index.as_query_engine()
response = query_engine.query("输入你的查询问题")
print(response)

注意事项

  • 确保本地与Colab的llama_index、PyTorch等依赖版本尽量一致,避免序列化/反序列化时出现版本兼容问题。
  • 如果自定义LLM依赖本地模型文件,需将Colab中使用的模型文件同步到本地Mac的对应路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:15:15