本地运行Llama 3.3-70B的3个方法
Meta 最新的 Llama 3.3 70B 模型取得了卓越的性能指标,几乎与其更大的 405B 模型相当,同时所需的计算资源却少得多。在深入研究安装方法之前,让我们先检查一下它的功能和性能基准。
1、Llama 3.3 性能基准测试和分析
Llama 3.3 70B 模型在各种基准测试中表现出色,展示了其多功能性和效率。让我们深入了解它的功能和比较性能。
核心基准测试性能:
基准测试类别 | Llama 3.3 70B | GPT-4 | Claude 3 | Gemini Pro |
---|---|---|---|---|
MMLU(通用) | 86.4 | 89.2 | 88.1 | 87.2 |
GSM8K(数学) | 82.3 | 97.0 | 94.5 | 91.8 |
HumanEval(代码) | 73.2 | 88.5 | 85.7 | 84.3 |
BBH(推理) | 75.6 | 86.3 | 84.2 | 83.1 |
TruthfulQA | 62.8 | 81.4 | 79.6 | 77.2 |
ARC-Challenge | 85.7 | 95.2 | 93.8 | 92.1 |
HellaSwag | 87.3 | 95.7 | 94.2 | 93.5 |
WinoGrande | 83.2 | 92.8 | 91.5 | 90.7 |
Llama 3.3 在各个科学学科中表现出非凡的多功能性,在生物科学方面表现尤为出色,准确率达到 82.1%。在物理科学方面,该模型保持了一致的性能,物理学准确率为 78.4%,化学准确率为 76.2%。医学知识评估显示出 79.8% 的稳健准确率,使其适用于医疗保健相关应用,同时保持非医疗用途的适当界限。
- 该模型表现出卓越的数学能力,其在基本算术运算方面表现最强,准确率为 94.3%。
- 随着复杂性的增加,这种熟练程度逐渐下降,代数准确率为 88.7%,几何准确率为 82.4%,微积分准确率为 76.9%。
- 在编程语言中,Python 的成功率最高,为 84.2%,其次是 JavaScript,为 79.8%,而 Java 和 C++ 等更复杂的语言的成功率略低,但仍然令人印象深刻,分别为 77.3% 和 75.6%。
Llama 3.3 的上下文窗口:
- 上下文长度显著影响模型性能,较短上下文(< 1024 个标记)中的最佳结果显示响应连贯性为 96.2%,事实准确性为 94.8%。
- 中等长度上下文(1024-4096 个标记)保持强劲性能,连贯性为 93.5%,准确性为 92.1%。即使在扩展上下文(4096-8192 个标记)中,该模型也保持了可观的性能,连贯性为 89.7%,准确性为 88.4%。
Llama 3.3 在现实生活中有多好?
- 在专业任务中,Llama 3.3 在技术文档(92.7% 准确率)和商业沟通(91.4% 有效性)方面表现出色。
- 分析任务在总结、情绪分析和分类任务中表现出色,始终保持在 90% 以上。
- 多语言能力依然强劲,英语熟练度达到 96.2%,主要欧洲语言和普通话熟练度保持在 88% 以上。
2、使用 Ollama 在本地运行 Llama 3.3
系统准备:
# Ubuntu/Debian
sudo apt update && sudo apt upgrade
sudo apt install curl
# macOS
brew install curl
安装 Ollama:
curl https://ollama.ai/install.sh | sh
启动 Ollama 服务:
sudo systemctl start ollama # Linux
open -a ollama # macOS
拉取模型:
ollama pull llama3
创建自定义配置:
FROM llama3
PARAMETER temperature 0.7
PARAMETER top_p 0.9
PARAMETER repeat_penalty 1.1
PARAMETER context_length 4096
SYSTEM You are a helpful assistant specialized in programming and technical documentation
构建自定义模型:
ollama create llama3-custom -f Modelfile
3、在 Mac 上使用 MLX 框架运行 Llama 3.3
首先安装MLX。
环境设置:
python -m venv llama-env
source llama-env/bin/activate
然后安装依赖项:
pip install mlx mlx-lm torch numpy
然后配置MLX:
import mlx.core as mx
from mlx_lm import load, generate
class Llama3Config:
def __init__(self):
self.model_path = "meta-llama/Llama-3.3-70b"
self.temperature = 0.8
self.top_p = 0.9
self.max_tokens = 2048
self.context_length = 4096
self.batch_size = 1
def load_model(self):
return load(self.model_path, self.__dict__)
MLX 优化:
class Llama3Optimizer:
def __init__(self, model):
self.model = model
def enable_optimizations(self):
mx.set_default_device(mx.gpu(0))
self.model.enable_memory_efficient_inference()
def batch_process(self, prompts, batch_size=4):
results = []
for i in range(0, len(prompts), batch_size):
batch = prompts[i:i+batch_size]
results.extend(self.model.generate_batch(batch))
return results
4、使用 llama.cpp 在 Linux 上运行 Llama 3.3
首先构建llama.cpp。
克隆并准备:
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
mkdir build && cd build
配置构建:
cmake -DCMAKE_BUILD_TYPE=Release \
-DLLAMA_CUBLAS=ON \
-DLLAMA_AVX=ON \
-DLLAMA_AVX2=ON \
-DLLAMA_F16C=ON \
-DLLAMA_FMA=ON ..
编译:
cmake --build . --config Release -j4
下载模型权重:
python3 scripts/download-model.py --model-name llama-3.3-70b
转换为 GGUF:
python3 convert.py \
--outfile llama-3.3-70b-q4_k_m.gguf \
--outtype q4_k_m \
--context-size 4096 \
--model-type llama \
--vocab-type spm \
--threads 8 \
models/llama-3.3-70b
基本推理:
./main \
-m llama-3.3-70b-q4_k_m.gguf \
-n 1024 \
--ctx-size 4096 \
--batch-size 512 \
--threads 8 \
--gpu-layers 35 \
-p "Write a story about"
高级设置:
./main \
-m llama-3.3-70b-q4_k_m.gguf \
-n 2048 \
--ctx-size 8192 \
--batch-size 1024 \
--threads 16 \
--gpu-layers 35 \
--temp 0.7 \
--repeat-penalty 1.1 \
--top-k 40 \
--top-p 0.9 \
--memory-f32 \
--gpu-memory-split 24,24 \
-p "Write a technical document about"
以下是一些关于更好地量化 Llama3.3 的技巧:
- 使用 4 位量化以减少内存占用
- 为大型模型启用内存映射
- 实现梯度检查点
- 使用注意力机制缓存
5、结束语
本综合指南提供了使用不同方法在本地运行 Llama 3.3 的所有必要步骤,每种方法都针对特定用例和硬件配置进行了优化。选择最适合你的要求和硬件功能的方法。
原文链接:How to Run Llama 3.3 - 70B Locally (Mac, Windows, Linux)
汇智网翻译整理,转载请标明出处