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

如何在AWS SageMaker Studio Labs中修改LangChain的CTransformer下载Hugging Face模型的存储路径

如何在AWS SageMaker Studio Labs中修改LangChain的CTransformer下载Hugging Face模型的存储路径

嗨,我之前也遇到过这个问题,来给你支个招!

首先得说,CTransformers默认是用Hugging Face的缓存机制存模型的,在SageMaker Studio Labs里,默认路径是~/.cache/huggingface/hub这个隐藏目录,难怪你找不到😂。不过要把模型存到脚本所在目录其实超简单,只需要在初始化CTransformers的时候多指定一个参数就行。

我给你一步步拆解:

  • 先拿Python的os模块获取当前脚本的绝对路径,这样不管你脚本放在哪个位置,都能精准定位到它的目录。
  • 建议在脚本目录下新建一个专门的models文件夹来存模型,这样文件结构更规整,不会乱七八糟的。
  • 最后在初始化CTransformers的时候,加上cache_dir参数,把刚才的路径传进去,模型就会乖乖下载到你指定的地方了。

给你现成的修改后代码,直接复制用就行:

import os
from langchain.llms import CTransformers
from langchain.callbacks.streaming_stdout import StreamingStdOutCallbackHandler

# 获取当前脚本所在的目录
script_dir = os.path.dirname(os.path.abspath(__file__))
# 创建专门存放模型的文件夹,不存在就自动生成
model_store_dir = os.path.join(script_dir, "models")
os.makedirs(model_store_dir, exist_ok=True)

# 初始化CTransformers时指定自定义存储路径
llm = CTransformers(
    model="TheBloke/Llama-2-7B-Chat-GGML",
    model_file='llama-2-7b-chat.ggmlv3.q2_K.bin',
    callbacks=[StreamingStdOutCallbackHandler()],
    cache_dir=model_store_dir  # 这一步是关键!
)

这样操作后,模型就会被下载到你脚本目录下的models文件夹里,你在SageMaker Studio Labs的文件浏览器里直接点开脚本所在目录就能看到它了。要是你之前已经下载过这个模型,也可以手动去默认缓存目录把模型文件复制到这个models文件夹里,下次运行脚本就不用重复下载了。

备注:内容来源于stack exchange,提问作者808Code

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.21 11:54:35