重新开始微调Llama 3.1模型

打印 上一主题 下一主题

主题 504|帖子 504|积分 1512


  
在本日的科技专栏中,我们将深入探讨怎样微调Llama 3.1模型,以使其更好地适应您的特定领域数据。微调大型语言模型(如Llama)的重要目的是为了在特定领域的数据上体现更好,从而生成更符合您需求的输出。以下是我们将要先容的五个重要步调:

  • 安装须要的软件包
  • 准备数据集
  • 练习模型
  • 举行推理
  • 生存模型
第一步:安装须要的软件包

起首,我们需要安装一些须要的软件包unsloth和torch,我们将使用它来练习模型,以及accelerate和bitsandbytes等其他工具。值得一提的是,我们使用的是Google Colab提供的免费T4 GPU,这意味着您可以在无需花费任何费用的情况下练习您的模型,这无疑是一个很棒的功能。
  1. !pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"
  2. !pip install --no-deps "trl<0.9.0" peft accelerate bitsandbytes
复制代码
第二步:准备数据集

在这一部分,我们将加载并准备我们的Llama 3.1模型。起首,我们需要导入须要的软件包,如UNS sloth和torch,并设置最大序列长度、数据类型等参数。
  1. import unsloth import FastLanguageModel
  2. import torch
  3. max_sequence_length = 2048
  4. dtype = None
  5. load_in_4bit = True
复制代码
接下来,我们将从UNS sloth加载模型,并使用Laura技能来只更新1%到10%的参数。这样做的好处是可以或许更高效地举行练习。
  1. model,tokenizer = FastLanguageModel.from_pretrained(
  2.     model_name="unsloth/Meta-Llama-3.1-8B",
  3.     max_seq_length = max_sequence_length ,
  4.     dtype = dtype,
  5.     load_in_4bit = load_in_4bit
  6. )
复制代码
第三步:练习模型

如今我们已经准备好了数据集,可以开始练习模型了。在这一步中,我们将配置练习参数,并使用Alpaca数据集来举行练习。
  1. from datasets import load_dataset
  2. data = load_dataset('alpaca', split='train')
  3. data = data.rename_column('output', 'response')
复制代码
接下来,我们将配置练习参数,并开始练习模型。
  1. from transformers import Trainer, TrainingArguments
  2. training_args = TrainingArguments(
  3.     output_dir='./results',
  4.     num_train_epochs=3,
  5.     per_device_train_batch_size=8,
  6.     save_steps=10_000,
  7.     save_total_limit=2,
  8. )
  9. trainer = Trainer(
  10.     model=model,
  11.     args=training_args,
  12.     train_dataset=data,
  13. )
  14. trainer.train()
复制代码
练习完成后,我们可以查看练习的内存和时间统计信息。
  1. print(trainer.state.log_history)
复制代码
第四步:举行推理

练习完成后,我们可以举行推理。起首,我们需要加载模型并对输入举行标记化处理。然后,我们将生成模型的输出。
  1. from transformers import pipeline
  2. inference_pipeline = pipeline('text-generation', model=model)
  3. input_text = "请介绍一下Llama 3.1模型的应用场景。"
  4. outputs = inference_pipeline(input_text)
  5. for i, output in enumerate(outputs):
  6.     print(f"Output {i+1}: {output['generated_text']}")
复制代码
此外,我们还可以使用Hugging Face的新功能——TextStreamer举行实时流式输出,这样我们就无需等候最闭幕果。
  1. from transformers import TextStreamer
  2. streamer = TextStreamer(model=model)
  3. input_text = "请介绍一下Llama 3.1模型的应用场景。"
  4. streamer(input_text)
复制代码
第五步:生存模型

末了,我们需要生存已经练习好的模型。最好的方法是将其推送到Hugging Face Hub,这样就可以随时访问和使用模型。
  1. model.save_pretrained('path_to_your_model')
  2. tokenizer.save_pretrained('path_to_your_tokenizer')
  3. from huggingface_hub import HfApi
  4. api = HfApi()
  5. api.upload_folder(
  6.     folder_path='path_to_your_model',
  7.     path_in_repo='your_repo_name',
  8.     repo_id='your_username/your_repo_name',
  9.     token='your_huggingface_token'
复制代码
如果您盼望以不同的格式(如16位、4位或更低的适配器)生存模型,也可以举行相应的配置。
总结

通过以上五个步调,我们已经完成了Llama 3.1模型的微调。从安装须要的软件包到准备数据集,再到练习模型、举行推理,末了是生存模型,每一步都至关紧张。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

写过一篇

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表