本地通过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++

 

本地运行大模型准备:

  1. pip install llama-cpp-python     , 作为参考,我本地安装运行的版本为0.2.87
  2. 从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博客

 

posted @ 2024-08-13 13:28  henkenen  阅读(149)  评论(0编辑  收藏  举报