在过去的一年里,见证了LLM的蓬勃发展,而模型的参数量也不断刷新记录,在2023年下半年,外界传言GPT-4是一个专家混合模型。因此,如果你想用人工智能做点什么,你需要IBM或NASA类似的计算能力:你怎么能运行8个2200亿参数的模型,每个模型的有效参数大小达到1.76万亿?
然而,nano Models(比如新诞生的GeminiNano)、Tiny Models(就像TinyLlama家族)和Microsoft Phi1和2等另辟蹊径,希望一些较小的大模型也可以部署到生产环境中,给更多的企业和个人带来福音。
一、Tiny-Vicuna-1B介绍
Tiny Vicuna是一个Llama模型(Vicuna是使用从ShareGPT收集的用户共享对话进行微调Llama的大模型)。这个小模型是TinyLlama项目的一部分,该项目旨在通过适当的优化,在3万亿tokens上预训练的1.1B Llama模型,但由于Tiny Vicuna 1B是用WizardVicuna数据集微调的TinyLLama 1.1B,因此被称为Tiny Vicuna!运行Tiny Vicuna 1B量化版本,只需要不超过700 Mb的RAM!
二、运行Tiny-Vicuna-1B-GGUF
我们将使用Huggingface上Jiayi-Pan的Tiny-Vicuna-1B的量化GGUF模型文件。因为即使它是一个只有11亿个参数的模型,在CPU上全精度运行也需要将近10 GB的RAM。
Step1:在新目录中创建虚拟环境并将其激活:
mkdir TinyVicuna
cd TinyVicuna
python3.10 -m venv venv #I am using python 3.10
python -m venv venv #if you are on Windows
#to activate the Virtual Environment
source venv/bin/activate #for mac
venv\Scripts\activate #for windows users
Step2:安装所需的包
pip install llama-cpp-python
pip install gradio
pip install psutil
pip install plotly
最后两个依赖项仅用于提供推断时间期间的CPU/RAM使用统计信息。我认为亲眼看到这一切是件好事😉。
Step3:接下来是在同一目录中下载GGUF文件。你可以选择量化方法,但不要低于q4。本演示使用q5版本:有点重,但质量损失很小。下载链接:https://huggingface.co/afrideva/Tiny-Vicuna-1B-GGUF/tree/main
Step4:运行python文件中模型核心代码的两个不同部分,我将在下面对它们进行解释,python文件下载地址:https://github.com/fabiomatricardi/KingOfTheTiny/raw/main/40-vicuna1B_PG_MEM.py。
from llama_cpp import Llama
modelfile = "./tiny-vicuna-1b.q5_k_m.gguf"
contextlength=2048
stoptoken = '<s>'
################ LOADING THE MODELS ###############################
# Set gpu_layers to the number of layers to offload to GPU.
# Set to 0 if no GPU acceleration is availab