Python本地运行Llama 2触发AssertionError问题求助
Llama 2本地运行AssertionError问题排查与解决
问题描述
在Jupyter Notebook中本地运行Llama 2 7B模型,已将模型文件llama-2-7b-chat.ggmlv3.q8_0.bin保存至D盘根目录,通过!pip install llama-cpp-python安装了0.2.6版本,初始化模型时触发AssertionError。
初始化代码:
MODEL_Q8_0 = Llama( model_path="D:/llama-2-7b-chat.ggmlv3.q8_0.bin", n_ctx=2048)
错误信息:
AssertionError Traceback (most recent call last) c:\Users\btayl\Downloads\llama2-quickstart.ipynb\llama2-quickstart.ipynb Cell 5 line 1 ----> 1 MODEL_Q8_0 = Llama( 2 model_path="D:/llama-2-7b-chat.ggmlv3.q8_0.bin", 3 n_ctx=2048) File d:\Programs\Python3.11\Lib\site-packages\llama_cpp\llama.py:340, in Llama.__init__(self, model_path, seed, n_ctx, n_batch, n_gpu_layers, main_gpu, tensor_split, rope_freq_base, rope_freq_scale, low_vram, mul_mat_q, f16_kv, logits_all, vocab_only, use_mmap, use_mlock, embedding, n_threads, last_n_tokens_size, lora_base, lora_path, numa, verbose, **kwargs) 336 with suppress_stdout_stderr(): 337 self.model = llama_cpp.llama_load_model_from_file( 338 self.model_path.encode("utf-8"), self.params 339 ) --> 340 assert self.model is not None 342 if verbose: 343 self.ctx = llama_cpp.llama_new_context_with_model(self.model, self.params) AssertionError:
已尝试将llama-cpp-python降级至0.1.78,问题仍未解决。
解决方案
校验模型文件完整性
确认模型文件是否下载完整,可对比官方提供的文件哈希值,若不匹配则重新下载。替换为GGUF格式模型
GGML格式已被弃用,新版llama-cpp-python优先支持GGUF格式。下载Llama 2 7B的GGUF格式模型(如llama-2-7b-chat.Q8_0.gguf),修改初始化代码中的模型路径:MODEL_Q8_0 = Llama( model_path="D:/llama-2-7b-chat.Q8_0.gguf", n_ctx=2048)检查路径格式与文件权限
尝试使用原始字符串路径或双反斜杠格式避免转义问题,同时确保Python进程有D盘文件的读取权限:# 原始字符串写法 MODEL_Q8_0 = Llama( model_path=r"D:/llama-2-7b-chat.ggmlv3.q8_0.bin", n_ctx=2048) # 双反斜杠写法 MODEL_Q8_0 = Llama( model_path="D:\\llama-2-7b-chat.ggmlv3.q8_0.bin", n_ctx=2048)重新编译llama-cpp-python
卸载现有版本后,针对硬件环境重新编译安装,以确保兼容性:# 卸载现有版本 pip uninstall -y llama-cpp-python # CPU版本安装0.1.78 pip install llama-cpp-python==0.1.78 # GPU(NVIDIA)版本安装0.1.78 CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python==0.1.78启用 verbose 模式定位错误
初始化时添加verbose=True参数,查看详细加载日志,定位模型加载失败的具体原因:MODEL_Q8_0 = Llama( model_path="D:/llama-2-7b-chat.ggmlv3.q8_0.bin", n_ctx=2048, verbose=True )
内容的提问来源于stack exchange,提问作者SputnicK
相关产品推荐
相关产品推荐

