从本地直接加载已有的大语言模型文件,用命令方式或python编程方式从本地直接加载模型文件,适合于模型文件已下载到本地的情况,或者模型文件已随软件一起打包的情况、docker容器化部署的情况,也适用Chinese-Llama-2-7b,可避免部署运行时每次重新联网下载huggingface上的模型的麻烦。
介绍两种方法实现:
-
命令方式从本地文件直接加载llama/llama 2/中文llama 的大语言模型:
参考 链接- 在本地编译得到 llama.cpp 的可执行文件(main)后,通过main 加载本地模型文件。
linux下的编译 + 加载模型的命令为:git clone https://github.com/ggerganov/llama.cpp; cd llama.cpp && make -j && ./main -m ./models/7B/ggml-model-q4_0.bin -p "Building a website can be done in 10 simple steps:" -n 512
- 在本地编译得到 llama.cpp 的可执行文件(main)后,通过main 加载本地模型文件。
-
编程方式从本地文件直接加载llama/llama 2/中文llama 的大语言模型:
- 安装准备工作:
pip install llama-cpp-python
对 mac系统的支持、以及让llama.cpp支持使用 OpenBLAS / cuBLAS / CLBlast / Metal 作为后端的设置方法,可参考 链接
- 编程实现
>>> from llama_cpp import Llama >>> llm = Llama(model_path="./models/7B/ggml-model.bin") >>> output = llm("Q: Name the planets in the solar system? A: ", max_tokens=32, stop=["Q:", "\n"], echo=True) >>> print(output)
输出结果:
"id": "cmpl-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "object": "text_completion", "created": 1679561337, "model": "./models/7B/ggml-model.bin", "choices": [ { "text": "Q: Name the planets in the solar system? A: Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune and Pluto.", "index": 0, "logprobs": None, "finish_reason": "stop" } ], "usage": { "prompt_tokens": 14, "completion_tokens": 28, "total_tokens": 42 } }
以上两种方式都实现了从本地加载模型。注意,以上方法适合于模型文件只有一个的时候。
- 安装准备工作:
模型文件有多个的情况:
如果模型文件有多个,比如,像https://huggingface.co/LinkSoul/Chinese-Llama-2-7b 这种有多个文件
pytorch_model-00001-of-00003.bin
pytorch_model-00002-of-00003.bin
pytorch_model-00003-of-00003.bin
那么可以用 Hugging Face库的模型的python常用加载方式:
from transformers import AutoModel, AutoConfig
from pathlib import Path
model_name = "模型名称"
cache_dir = "自定义路径" #可以是当前路径 cache_dir = str( Path(os.getcwd()) / "models" / "7B" )
config = AutoConfig.from_pretrained(model_name, cache_dir=cache_dir)
model = AutoModel.from_pretrained(model_name, config=config, cache_dir=cache_dir)
通过将cache_dir参数设置为你想要的路径,你可以将模型文件保存在指定的位置。请确保指定的路径是存在的,并且具有适当的读写权限。
Reference:
[1]llama.cpp:https://github.com/ggerganov/llama.cpp
[2]ggml-model-q4_0.bin 文件下载地址:https://huggingface.co/rffx0/Chinese-Llama-2-7b-ggml-model-q4_0/resolve/main/ggml-model-q4_0.bin
[3]llama.cpp的python绑定库的安装使用:https://github.com/abetlen/llama-cpp-python#installation-with-openblas–cublas–clblast–metal
[4]开软技巧博客文章地址:https://www.chinaoss.net/article/load-llama-model-file-from-local-disk-by-commandline-or-by-python.html