在本地运行大型语言模型的指南
想在您的Mac上本地运行大型语言模型(LLM)吗?本指南将帮助您了解如何在不依赖云服务或昂贵订阅的情况下直接在Mac上运行LLM。无论您是初学者还是经验丰富的开发者,您都能迅速上手。这是评估不同开源模型或创建AI应用程序沙盒的绝佳方式。
我们将从易于使用的工具开始,然后逐步介绍需要编程的解决方案。
一. LM Studio:人人皆可用的用户友好AI
1.1 开始使用LM Studio
LM Studio是初学者和专家的绝佳起点。它提供了一个直观的界面,用于探索和使用各种AI模型。
-
访问 lmstudio.ai 并下载适合您Mac的版本。 -
将下载的文件拖放到应用程序文件夹中进行安装。 -
启动LM Studio,并接受任何安全提示。
1.2 探索模型
在主界面中,点击“加载模型”或从“新近推荐”列表中选择一个模型。
-
我们将在本教程中使用“llama2 3B”模型。点击它以下载。 -
下载完成后,点击“加载模型”以激活它。
1.3 使用聊天界面
模型加载完成后,您可以开始在聊天界面中与之互动。
-
尝试询问“给我讲一个关于Python的笑话”。
观察模型的响应及其性能指标(每秒令牌数、上下文使用情况)。
1.4 利用API服务器
LM Studio还提供了与OpenAI兼容的API服务器,方便您与应用程序集成:
-
点击左侧边栏中的服务器图标。 -
点击“启动服务器”按钮以启动服务器。
复制提供的服务器地址(通常为 http://localhost:1234)。
您可以看到一组可用的端点:
-
GET http://localhost:1234/v1/models -
POST http://localhost:1234/v1/chat/completions -
POST http://localhost:1234/v1/completions -
POST http://localhost:1234/v1/embeddings
您现在可以使用此地址通过Postman或您自己的代码向模型发送请求。以下是使用Postman的示例:
-
创建一个新的POST请求到 http://localhost:1234/v1/chat/completions。 -
将请求体设置为原始JSON,内容如下:
{
"model": "lmstudio-community/Qwen2.5-14B-Instruct-GGUF/Qwen2.5-14B-Instruct-Q4_K_M.gguf",
"messages": [
{
"role": "system",
"content": "你是一个有帮助的笑话者,了解很多关于Python的知识。"
},
{
"role": "user",
"content": "给我讲一个有趣的Python笑话。"
}
],
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "joke_response",
"strict": "true",
"schema": {
"type": "object",
"properties": {
"joke": {
"type": "string"
}
},
"required": [
"joke"
]
}
}
},
"temperature": 0.7,
"max_tokens": 50,
"stream": false
}
-
发送请求并观察模型的响应。
LM Studio非常适合快速测试不同的模型,并在最小设置下将其集成到您的项目中。
二. Ollama:高效且适合开发者
Ollama是一个轻量级且功能强大的LLM部署工具,特别适合喜欢使用命令行的开发者。
2.1 安装Ollama
-
访问Ollama网站并下载Mac版本。 -
将下载的文件拖放到应用程序文件夹中进行安装。 -
启动Ollama并接受任何安全提示。
2.2 从终端使用Ollama
-
打开终端窗口。 -
运行以下命令列出可用模型:
ollama list
-
下载并运行模型,使用命令:
ollama run <model-name>
例如:
ollama run qwen2.5-14b
模型加载后,您可以直接在终端中与其互动。
2.3 Ollama命令和功能
-
使用 /?
查看模型会话内的可用命令。 -
使用 /bye
退出模型会话。 -
使用 --verbose
标志运行模型以获取详细输出。
2.4 使用Ollama的API
Ollama还提供API,方便与您的应用程序集成:
-
确保Ollama正在运行(菜单栏中会显示图标)。 -
发送POST请求到 http://localhost:11434/api/generate。
以下是使用Postman的示例:
{
"model": "qwen2.5:14b",
"prompt": "给我讲一个关于Python的有趣笑话",
"stream": false
}
2.5 Ollama Python库
对于Python开发者,Ollama提供了一个方便的库:
-
安装库:
pip install ollama
-
在您的Python脚本中使用:
import ollama # 导入Ollama库
# 与模型聊天并获取响应
response = ollama.chat(model='qwen2.5:14b', messages=[
{
'role': 'user',
'content': '给我讲一个关于Golang的有趣笑话!',
},
])
# 打印模型的响应内容
print(response['message']['content'])
Ollama在易用性和灵活性之间提供了良好的平衡,是构建AI应用程序的绝佳选择。
三. Hugging Face Transformers:高级模型访问
Hugging Face Transformers是一个强大的库,提供对许多模型的访问,能让您更好地控制其使用。
3.1 设置Hugging Face Transformers
-
创建一个新的Python虚拟环境:
python -m venv env # 创建虚拟环境
-
激活环境:
source env/bin/activate # 激活虚拟环境
-
安装所需的库:
pip install torch transformers accelerate # 安装库
-
安装Hugging Face CLI:
pip install -U huggingface_hub[cli] # 安装CLI
-
登录Hugging Face:
huggingface-cli login # 登录Hugging Face
(您需要在Hugging Face网站上创建用户访问令牌)
3.2 使用Transformers中的模型
以下是使用LLaMA 3.2 3B模型的简单示例:
import torch # 导入PyTorch
from transformers import pipeline # 导入pipeline模块
# 定义模型ID
model_id = "meta-llama/Llama-3.2-3B-Instruct"
# 创建文本生成管道
pipe = pipeline(
"text-generation",
model=model_id,
torch_dtype=torch.bfloat16, # 设置模型的Torch数据类型
device_map="auto", # 自动选择设备
)
# 定义消息
messages = [
{"role": "system", "content": "你是一个海盗聊天机器人,始终用海盗语回复!"},
{"role": "user", "content": "你是谁?"},
]
# 生成输出
outputs = pipe(
messages,
max_new_tokens=256, # 最大生成令牌数
)
# 打印生成的文本
print(outputs[0]["generated_text"][-1]) # 输出生成的文本
3.3 Hugging Face Transformers的优势
-
访问庞大的模型库 -
对模型参数的细粒度控制 -
能够为特定任务微调模型 -
与流行的深度学习框架集成
虽然Hugging Face Transformers需要更多的编码知识,但它提供了无与伦比的灵活性和访问最先进AI模型的能力。
四. 结论
我们探索了三种在Mac上本地运行AI模型的强大工具:
-
LM Studio:适合初学者和快速实验。 -
Ollama:理想的命令行界面和简单的API集成。 -
Hugging Face Transformers:最佳的高级用户选择,需访问广泛模型和细粒度控制。
每种工具都有其优势,选择取决于您的具体需求和技术专长。通过在本地运行这些模型,您可以获得对AI应用程序的更大控制,确保数据隐私,并避免与云服务相关的成本。
在使用更大的模型时,请考虑您Mac的规格,因为这些模型可能会消耗大量资源。建议从较小的模型开始,随着您对工具和硬件能力的熟悉逐渐深入。