【AI】实现在本地Mac,Windows和Mobile上运行Llama2模型
@TOC
推荐超级课程:
在人工智能不断发展的领域中,Llama 2被视为创新的标杆。作为先进的大型语言模型(LLM),Llama 2引起了科技爱好者、开发者和人工智能爱好者的想象。其理解和生成类似人类文本的能力为众多应用铺平了道路,从撰写引人注目的内容到提供编程帮助等等。然而,当Llama 2在本地运行时,其真正的魔力就展现出来,为用户提供无与伦比的隐私、控制和离线可访问性。LM Studio进入,成为人工智能领域的颠覆者,使Mac和Windows用户都能轻松实现Llama 2和其他LLM的本地部署。这种将尖端人工智能与用户友好软件相结合的融合开启了个人和专业人工智能利用的新时代。
Llama 2模型是什么?
Llama 2模型是由Meta AI开发和发布的,代表了大型语言模型(LLM)领域的重要进步。这些模型的参数范围从70亿到700亿个不等,为普遍和特定应用提供了一系列功能。Llama 2被设计为一个自回归语言模型,经过优化以生成类似人类文本的响应,使其成为各种自然语言处理任务的重要工具。
技术规格和能力
- 变种: Llama 2有几个版本可供选择,包括经过预训练和微调的变种,以满足不同的需求和用例。
- 架构: Llama 2的核心基于优化的Transformer架构,利用监督微调(SFT)和强化学习与人类反馈(RLHF)等技术,使模型的输出与人类对于帮助性和安全性的偏好保持一致。
- 训练数据: 这些模型是在一个包含来自公开可获得的在线来源的2万亿令牌的多样数据集上进行训练,确保对各种主题和背景的广泛理解。
Llama 2中的专门模型
- Llama Chat: Llama 2的精细调整版本,Llama Chat专为对话用例进行了优化,已经在100多万个人类注释示例上进行了训练以增强其对话能力。
- Code Llama: 专为代码生成而定制的Code Llama建立在Llama 2架构之上,训练了5000亿个代码标记,支持常见的编程语言如Python、C++、Java等。
在人工智能开发中的意义
Llama 2模型因其开源性、在各种基准测试中的高性能以及对商业和研究目的的适应性而在人工智能领域脱颖而出。它们理解和生成相关文本的能力,结合其开发中的伦理考虑,使Llama 2成为人工智能领域的重要发展,推动着语言模型在技术领域的能力和应用。
要了解更多关于Llama 2模型及其应用的详细信息,您可以查阅Meta AI在他们的官方网站 上提供的资源。
如何在本地使用Llama 2运行Llama.cpp
Llama.cpp是由Georgi Gerganov开发的库,旨在在CPU上高效运行大型语言模型(LLMs),对于没有GPU访问权限的用户特别有益。它为各种LLM提供了高速推理,并可通过llama-cpp-python包与Python集成,让用户能够在其项目中利用Python丰富的库。
Llama.cpp的设置
**安装:**第一步是安装llama-cpp-python包,该包为llama.cpp库提供了Python绑定,使其在Python环境中更易于使用。您可以使用pip安装:
pip install llama-cpp-python
有关更详细的安装说明,您可以参考llama-cpp-python文档 。
**下载和加载LLM:**您需要从Hugging Face等来源下载GGML格式的模型。确保该模型经过量化,以减少内存需求并尽可能少地影响性能。以下是下载和加载模型的示例代码段:
import os
import urllib.request
from llama_cpp import Llama
def download_file(file_link, filename):
if not os.path.isfile(filename):
urllib.request.urlretrieve(file_link, filename)
print("File downloaded successfully.")
else:
print("File already exists.")
ggml_model_path = "MODEL_LINK_HERE"
filename = "MODEL_FILENAME_HERE"
download_file(ggml_model_path, filename)
llm = Llama(model_path=filename, n_ctx=512, n_batch=126)
用实际的模型链接和文件名替换"MODEL_LINK_HERE"
和"MODEL_FILENAME_HERE"
。
**生成文本:**加载模型后,您可以通过向模型传递提示来生成文本。以下是生成文本的简单函数:
def generate_text(prompt, max_tokens=256, temperature=0.1, top_p=0.5, echo=False, stop=["#"]):
output = llm(prompt, max_tokens=max_tokens, temperature=temperature, top_p=top_p, echo=echo, stop=stop)
return output["choices"][0]["text"].strip()
此函数允许自定义生成过程,包括设置最大标记数、随机性温度和停止条件。
如何在Mac上本地运行Llama 2并使用Ollama
Ollama以其简单性、成本效益、隐私性和多功能性脱颖而出,成为云端LLM解决方案的有吸引力的替代选择。它消除了与云模型相关的延迟和数据传输问题,并允许进行广泛的定制。
在Mac上设置Ollama
步骤1。访问Ollama网站并下载ollama dmg包 。
步骤2。安装ollama目前支持的llama模型之一 。只需在Mac终端中运行以下命令:
ollama run llama2
如果您想要测试经过预训练的llama2的版本而无需进行聊天微调,可以使用这个命令:ollama run llama2:text
Ollama支持的llama 2的版本有很多。根据参数和系统内存,选择您想要的选项之一:
- 7b模型通常需要至少8GB的RAM
- 13b模型通常需要至少16GB的RAM
- 70b模型通常需要至少64GB的RAM
一般来说,对于具有适度本地环境的用户,建议运行7B-Chat_Q4_K_M
模型。
ollama run llama2:7b-chat-q4_K_M
使用Docker设置Ollama
安装Docker:首先确保系统上安装了Docker。如果没有,请从官方Docker网站 下载并安装。
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
拉取Ollama Docker镜像:安装好Docker后,在终端中运行以下命令来拉取Ollama镜像:
docker pull ollama/ollama
运行Ollama:要启动Ollama,请执行:
docker run -it ollama/ollama
此命令启动Ollama,您可以开始与模型进行交互。
与Ollama中的模型进行交互
- 列出模型:使用
ollama list
查看可用模型。 - 运行模型:要与特定模型交互,请使用
ollama run <model_name>
。 - 停止模型:如果需要停止模型,
ollama stop <model_name>
就可以了。
Ollama在不同平台上
Ollama的跨平台支持不仅局限于Linux,还覆盖了Windows和macOS用户,因此扩大了其吸引力。
在Windows上设置Ollama
- 下载Windows可执行文件:访问Ollama的GitHub存储库 下载Windows的最新可执行文件。
- 安装Ollama:运行下载的可执行文件并按照提示完成安装。
- 运行Ollama:打开命令提示符,转到Ollama安装目录,并使用
ollama.exe run
启动Ollama。
利用Ollama的GPU加速
对于需要大量计算的任务,Ollama利用GPU加速以提高性能,支持NVIDIA和AMD两种GPU。确保为您的GPU安装了正确的驱动程序,并通过在命令中添加--gpu
标志来激活GPU支持:
ollama run --gpu <model_name>
这个命令启用了GPU加速,显著提升了模型推理速度。
Ollama与Python集成
Ollama与Python的兼容性增强了其在数据科学和机器学习项目中的实用性。安装Ollama Python包(pip install ollama
)后,您可以轻松将Ollama模型整合到Python脚本中,使其能够直接在您的代码库中进行交互和推理。
如何在Windows上运行Llama 2(使用Llama.cpp)
对于Windows生态系统中的用户,本地设置Llama 2需要进行一些准备工作,但结果是在您的指尖上拥有一种强大的人工智能工具。以下是一个详细的指南,帮助您开始:
预安装要求
Nvidia GPU用户:如果您拥有Nvidia GPU,则首先要安装CUDA工具包以利用GPU加速,增强Llama 2的性能。可以从官方Nvidia网站下载该工具包:CUDA Toolkit下载 。
模型下载:接下来,您需要Llama 2模型本身。模型可以从Hugging Face的以下链接下载:Llama 2-13B模型下载 。确保将模型保存在稍后步骤易于访问的位置。
在Windows上安装Llama 2(逐步指南)
打开Windows终端并使用PowerShell执行以下命令:
克隆Llama.cpp存储库:
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
准备构建环境:
mkdir build
cd build
使用CMake生成构建文件,如果您有Nvidia GPU,请启用CUDA:
cmake .. -DLLAMA_CUBLAS=ON
cmake --build . --config Release
转到Release目录并设置模型:
cd bin/Release
mkdir models
mv 下载模型的文件夹\ .\models
使用测试提示运行Llama 2,以确保一切设置正确:
.\main.exe -m .\models\llama-2-13b-chat.ggmlv3.q4_0.bin --color -p "你好,你好,羊驼?" 2> $null
命令中的2> $null
部分用于抑制终端中的调试信息,以保持输出整洁。
使用PowerShell函数简化以后的使用
为了简化运行Llama 2的过程,您可以定义一个PowerShell函数:
使用文本编辑器打开您的PowerShell个人资料,例如:
notepad $PROFILE
将以下函数添加到您的个人资料中,并根据需要调整路径:
function llama {
.\main.exe -m .\models\llama-2-13b-chat.ggmlv3.q4_0.bin -p $args 2> $null
}
通过在PowerShell终端中键入llama "你的提示在这里"
,这个函数让您更方便地运行Llama 2提示。
通过遵循这些步骤,Windows用户可以在本地享受Llama 2的功能,利用人工智能的能力进行各种任务,而无需互联网连接。这个设置不仅使得访问先进的人工智能模型民主化,还提供了个性化、可定制的人工智能体验。
在本地使用MLC LLM运行Llama 2
MLC LLM:在本地运行Llama 2
MLC LLM 提供了一种简化的方法来在本地提供Llama 2模型,利用预编译的二进制文件进行高效推理。以下是一份简化的逐步指南:
- 选择您的GPU:确定您将要使用的GPU类型,例如,对于NVIDIA的A10G GPU,可以选择"a10g"。
- 选择Llama模型大小:确定您希望使用的Llama模型的大小,例如,“7b”或“13b”分别代表70亿或130亿个参数。
- 设置环境:使用符合MLC CUDA要求的NVIDIA CUDA映像,例如,“nvidia/cuda:12.2.2-cudnn8-runtime-ubuntu22.04”。
- 安装依赖项:安装必要的软件包和库,包括
git
,curl
以及Python软件包,如mlc-ai-nightly-cu122
和mlc-chat-nightly-cu122
。 - 下载模型和库:从GitHub或其他来源克隆所需的库和您选择的特定Llama模型。
- 实现推理功能:使用
mlc_chat
中的ChatModule
加载模型和库,并创建一个处理输入提示并生成响应的函数。 - 运行模型:执行您的设置以开始在所选GPU上本地与Llama 2进行交互。
对于更多详细的说明和确切的命令,请参考官方MLC文档 。
通过LM Studio在本地运行Llama 2
LM Studio
LM Studio简化了在本地机器上运行各种LLM,包括Llama 2。不幸的是,在即时搜索结果中,我找不到LM Studio的具体步骤。通常,使用LM Studio会涉及以下步骤:
步骤1. 下载LM Studio 并在本地安装。
步骤2. 在搜索栏中搜索“llama”,选择一个量化版本,并单击下载按钮。在这种情况下,我选择下载“The Block,llama 2 chat 7B Q4_K_M gguf”。
通过LM Studio在本地运行Llama 2
步骤3. 下载完成后,点击左侧面板上的“Chat”按钮,并加载已下载的模型
步骤4. 现在您可以与Llama 2进行聊天!不要忘记在右侧面板上打开“使用Apple Metal(GPU)”选项以获得更快的体验。
结论
Llama 2模型代表了人工智能领域的重大进步,提供了复杂的语言处理能力。通过使用Llama.cpp、OLLAMA、MLC LLM和LM Studio等工具在本地运行这些模型,可以提高灵活性,增强隐私保护,并且比基于云的解决方案更具成本效益。每种方法在技术复杂性和系统要求上有所不同,以满足不同用户需求。我鼓励读者探索与Llama 2和其他LLM进行互动的本地和在线选项。您的选择应符合您的技术专长、资源可用性和特定需求。对LLM的本地部署探索为创新应用和更深入了解人工智能潜力打开了大门。