在 Mac M1 上运行 Llama 2 并进行训练

本文指导如何在MacM1设备上安装依赖并配置Llama2,Meta的开源大模型,以便训练和使用。重点介绍了如何下载模型、安装依赖、准备数据以及进行模型精调的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 Mac M1 上运行 Llama 2 并进行训练

在这里插入图片描述

Llama 2 是由领先的人工智能研究公司 Meta (前Facebook)开发并发布的下一代大型语言模型 (LLM)。 它基于 2 万亿个公共数据 token 进行了预训练,旨在帮助开发人员和企业组织构建基于人工智能的生成工具和用户体验。Llama 2 在许多外部基准测试中都优于其他开源语言模型,包括推理、编码、熟练程度和知识测试。更关键的是,相比 ChatGPTClaude 等闭源大模型,Llama 2 更加开放友好,可以免费用于研究和商业用途,并且可以方便地从 Meta 网站上下载。因此 Llama 2 是进行大模型研究的理想选择。

然而,Llama 2 对苹果 M1 芯片的支持不太好,如果你想在 Mac M1 设备上运行 Llama 2 并使用自己的数据对其进行训练,需要安装一些额外的依赖和环境,并进行相应的配置。本文将指导你完成在 Mac M1 上设置 Llama 2 的过程,并根据使用你自己的数据对其进行精调。

安装依赖

要想在 Mac M1 上运行 Llama 2,你需要安装一些依赖项,例如 PythonPyTorchTensorFlowHugging Face Transformers。你可以使用 HomebrewAnaconda 来安装这些软件包。例如,要使用 Homebrew 安装 Python 3.9,可以在终端中运行以下命令:

brew install python@3.9

要安装 PyTorch for Mac M1,可以按照以下链接中的说明进行操作:https://pytorch.org/get-started/locally/#macos-version

同样地,要安装 TensorFlow for Mac M1,可以按照以下链接中的说明进行操作:https://developer.apple.com/metal/tensorflow-plugin/

Hugging Face Transformers 的安装相对简单,只需在终端中运行以下命令:

pip install transformers

完成上述三个依赖项后,环境就搭建好了。

下载 Llama 2 模型重量和代码

环境依赖搭建好后,接下来就要下载 Llama 2 模型权重和代码。你需要在 Meta 网站上填写表格并同意其隐私政策。 提交表格后,会收到一封电子邮件,其中包含下载模型文件的链接。这里有好多个不同参数规模的模型,你可以根据具体需要选择,参数范围从 7B 到 70B。其中 Llama-2-chat 针对对话场景进行了特别优化

为了方便讲解,本教程中,你将使用 Llama-2-chat-7B 模型作为演示。你也可以从此链接 https://ai.meta.com/llama/llama-2-chat-7B.zip 下载模型权重和代码。下载下来的 zip 文件,可以将其解压缩到任意目录中。解压后应该会看到一个名为 llama-2-chat-7B 的文件夹,其中包含以下文件:

  • config.json: 模型配置文件。
  • pytorch_model.bin: PyTorch 模型权重文件。
  • tokenizer.json: 模型的 tokenizer 文件。
  • vocab.txt: 模型的字典文件。
  • run_generation.py: 使用模型生成文本的 Python 脚本。

精调Llama 2

要使用自己的数据对 Llama 2 进行精调,首先需要准备一个包含训练数据的文本文件。文件中的每一行都应包含对话内容或模型说明。例如,如果你想针对客服机器人场景精调 Llama 2,训练文件可能如下所示:

 USER: 你好,我的订单有问题。
LLAMA: 你好,很高兴为您服务。麻烦您告诉我一下订单号。
 USER: #123456789
LLAMA: 收到。这个订单有什么问题呢?
 USER: 我收到的货物是坏的。
LLAMA: 很抱歉给您带来此困扰。你能发一下订单收据和物品照片给我吗?我帮你走免费换货流程。
 USER: 可以。发给你了。
LLAMA: 感谢您的配合。我会尽快处理您的问题。对于本次货损,再次向您致以歉意。
 USER: 谢谢。
LLAMA: 不客气。还有其他问题吗?
 USER: 没有了。
LLAMA: 那感谢您选择你的服务。祝您生活愉快。

你可以将训练文件另存为 train.txt 与模型文件放在同一目录下。然后,在终端中运行以下命令,使用你的训练数据精调 Llama 2

python run_generation.py --model_type gpt2 --model_name_or_path ./llama-2-chat-7B --train_data_file ./train.txt --output_dir ./llama-2-chat-7B-finetuned --do_train --per_device_train_batch_size 1 --gradient_accumulation_steps 4 --learning_rate 5e-5 --num_train_epochs 3 --save_steps 1000 --save_total_limit 1

这个命令参数比较多,你逐个解析一下:

  • model_type: 模型的类型,Llama 2gpt2
  • model_name_or_path: 模型目录的路径,在本例中为 ./llama-2-chat-7B
  • train_data_file: 训练数据文件的路径,本例中为 ./train.txt
  • output_dir: 输出目录的路径,精调后的模型将保存在这里,在本例中为 ./llama-2-chat-7B-finetuned
  • do_train: 表明你要训练模型。
  • per_device_train_batch_size: 每个设备用于训练的批大小,在本例中为 1
  • gradient_accumulation_steps: 执行向后/更新过程之前累积梯度的步数,在本例中为 4
  • Learning_rate: 训练的学习率,本例中为 5e-5
  • num_train_epochs: 训练模型的轮数,本例中为 3
  • save_steps: 每个多少步保存一次检查点,本例中为 1000
  • save_total_limit: 要保留的检查点的最大数量,本例中为 1

你可以根据需要和可用资源调整这些参数。请注意,精调 Llama 2 可能需要很长时间,并且需要大量内存和算力,尤其是对于较大的模型。你可以通过查看终端中打印的日志来监控训练过程的进度。

使用精调 Llama 2 模型

使用你自己的数据对 Llama 2 进行精调后,就可以通过在终端中运行以下命令来使用精调后的模型:

python run_generation.py --model_type gpt2 --model_name_or_path ./llama-2-chat-7B-finetuned --length 100 --prompt "USER: 你好,我想取消我的订单。"

参数说明如下:

  • model_type: 模型的类型,Llama 2gpt2
  • model_name_or_path: 精调模型目录的路径,在本例中为 ./llama-2-chat-7B-finetuned
  • length: 生成文本的最大长度,在本例中为 100 个token。
  • prompt: 模型的文本输入,例如示例中的“USER: 你好,我想取消我的订单。”

你可以根据需要和偏好更改这些参数。你还可以使用 --no_cuda 标志并在终端中输入文本来与模型进行交互。 例如:

python run_generation.py --model_type gpt2 --model_name_or_path ./llama-2-chat-7B-finetuned --length 100 --no_cuda
 USER: 你好,我想取消我的订单。
LLAMA: 你好,感谢您联系你。我能问一下您为什么要取消订单吗?
 USER: 我不需要了。
LLAMA: 明白了解。很遗憾你的产品和服务没有让您满意。您可以自助式取消订单,只要在订单列表中找到要取消的订单,然后点击查看详情,在页面最下方有取消按钮。
 USER: 谢谢。
LLAMA: 不客气。祝您生活愉快。

结论

Llama 2 是一种功能强大且多样的大型语言模型,可用于各种生成式和对话式 AI 应用。通过使用你自己的数据对其进行精调,你可以根据你的特定场景和用例对其进行自定义,并提高其性能和生成质量。希望本文对你有所帮助。

<think>好的,用户想在Mac上使用LlamaFactory训练机器学习模型。首先,我需要回忆一下之前提供的引用内容。引用[1]提到使用Llama-Factory训练LoRA模型,比如增强GLM-4-9B-Chat模型的脑筋急转弯能力,提到了环境准备。引用[2]和[3]涉及LLaMA2训练和配置,虽然用户询问的是LlamaFactory,但可能步骤类似。引用[4]是关于Ollama导入模型的文档,可能与模型部署相关。 首先,用户的环境是Mac,需要考虑系统兼容性。需要指导用户安装必要的依赖,比如Python、PyTorch,可能还需要CUDA支持,但Mac可能使用MPS加速。然后,克隆LlamaFactory仓库,安装依赖库,如requirements.txt。接着是数据集的准备和处理,需要下载数据进行tokenize预处理,这可能比较耗时。之后修改配置文件,选择适合的模型参数,可能涉及调整batch size或学习率以适应Mac的硬件限制。开始训练时要指定正确的参数,比如模型路径、数据集路径和LoRA配置。训练完成后,进行模型推理测试,确保模型正确运行。最后,导出模型以便后续使用,可能参考Ollama的导入方法。 需要提醒用户注意Mac的硬件限制,比如内存和显存,可能需要调整配置参数避免内存溢出。同时,引用中提到的示例是增强GLM-4模型的脑筋急转弯能力,用户的应用场景可能不同,需根据需求调整数据集和训练参数。另外,用户可能需要查看LlamaFactory的官方文档,确保步骤正确,特别是Mac特有的设置,比如使用MPS后端替代CUDA。最后,生成相关问题时要覆盖环境准备、配置调整、性能优化和应用场景等方面。</think>### 在 Mac 上使用 LlamaFactory 训练模型的步骤 #### 1. **环境准备** - **安装 Python 和 PyTorch** Mac 推荐通过 `conda` 或 `pyenv` 管理 Python 环境,安装 Python 3.8+ 版本。 使用以下命令安装 PyTorch(Mac 需选择 MPS 加速支持版本): ```bash pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu ``` - **克隆 LlamaFactory 仓库** 从 GitHub 克隆仓库安装依赖: ```bash git clone https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -r requirements.txt ``` 引用[1]提到环境需依赖 Python 和 PyTorch,Mac 本地训练时注意选择 CPU/MPS 模式[^1]。 --- #### 2. **数据集处理** - **下载数据集** 选择适合任务的数据集(如 JSON/CSV 格式),例如对话数据集或特定领域文本。 - **Tokenize 预处理** 使用模型对应的 tokenizer 处理数据(需与模型匹配),例如: ```python from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("THUDM/glm-4b-ft") tokenized_data = tokenizer(dataset_text, padding=True, truncation=True) ``` 引用[2]强调数据集预处理可能耗时较长,建议先验证数据格式[^2]。 --- #### 3. **配置训练参数** - **修改配置文件** 在 `train_args.yaml` 中设置: ```yaml model_name_or_path: "THUDM/glm-4-9B-Chat" # 替换为你的模型路径 dataset_path: "./data/train.json" output_dir: "./output" lora_rank: 8 # LoRA 参数 per_device_train_batch_size: 2 # Mac 需调小 batch_size 避免内存不足 ``` 引用[3]提到配置需适配设备性能,Mac 需特别注意显存限制[^3]。 --- #### 4. **启动训练** - **执行训练命令** 使用以下命令启动 LoRA 微调: ```bash python src/train.py --config train_args.yaml ``` 若显存不足,可添加 `--use_cpu` 强制使用 CPU 训练: ```bash python src/train.py --config train_args.yaml --use_cpu ``` --- #### 5. **模型导出与测试** - **导出适配 Ollama 的格式** 训练完成后,将模型转换为 GGUF 格式: ```bash python scripts/convert_to_gguf.py --model_dir ./output --output_file model.gguf ``` 参考引用[4],通过 Ollama 导入模型进行部署[^4]。 --- ### 关键注意事项 1. **硬件限制** Mac 的 M1/M2 芯片可使用 `mps` 加速,但大模型(如 GLM-4-9B)需降低 `batch_size` 或使用量化(如 4-bit 训练)。 2. **模型兼容性** LlamaFactory 目前主要支持 LLaMA、GLM 等架构,需确认模型与框架的匹配性[^3]。 ---
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JarodYv

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值