本地通过python运行AI大语言模型LLaMa2
什么是Llama2
Llama 全称 large language model, Meta AI 公司2023年发布的开源AI大型语言模型,参数7B~65B。最新版本为Llama 3。 更为详细的介绍可参考,LLaMA - 维基百科,自由的百科全书 (wikipedia.org) 。
什么是llama.cpp?
一个开源c++库,用c++重写了LLaMa的推理代码,可用于CPU上加载运行LLaMa语言模型,极大的降低了对硬件的要求(RAM开销低于4G)。 Git 仓库地址: GitHub - ggerganov/llama.cpp: LLM inference in C/C++
本地运行大模型准备:
- pip install llama-cpp-python , 作为参考,我本地安装运行的版本为0.2.87
- 从Hugging Face上下载一个已经训练好的模型文件到本地 ,作为参考,我下载的是zephyr-7b-beta.Q4_0.gguf 这个模型
TheBloke/zephyr-7B-beta-GGUF at main (huggingface.co)
3.代码示例及运行结果:
运行以下python脚本,即可基于输入prompt得到模型的输出。顺便提一下,对于zephyer-7b-beta模型,prompt输入支持各种不同语言。
一些参数解释:
prompt经token化后被分解为更小单位的个数,代码中的max_tokens为模型输出最大token数;
temperature用于控制模型输出的确定性,区间为0到1, 值越小输出越具有确定性,值越大输出越有随机性;
(temperature表示模型输出层中softmax函数中的T值,T越大,各预测词的权重越平均,因而输出结果更随机)
echo表示是否需要在模型开头打印出原始prompt;
stop表示输出结果遇到哪个字符则中断输出,举例 ‘\n’表示换行则终止输出。
针对不同的prompt,模型对于同一个问题给出的输出可能截然不同:
Happy Coding :) !
拓展阅读: LLAMA2模型架构 -- 一文为你深度解析LLaMA2模型架构_人工智能_华为云开发者联盟_InfoQ写作社区
prompt提示词结构 -- 浅谈LLAMA2核心函数generate源码_llama temperature-CSDN博客