您当前的位置:首页 > 电脑百科 > 人工智能

微调大语言模型的七个步骤

时间:2024-05-14 13:30:09  来源:51CTO  作者:

译者 | 布加迪

审校 | 重楼

在最近一年半的时间里,自然语言处理(NLP)领域发生了显著的变化,这主要得益于AI target=_blank class=infotextkey>OpenAI的GPT系列等大语言模型(LLM)的兴起。

这些功能强大的模型已彻底改变了我们处理自然语言任务的方法,在翻译、情绪分析和文本自动生成等方面提供了前所未有的能力。它们理解和生成类似人类的文本的能力已带来了曾经被认为无法实现的可能性。

然而,尽管这些模型具有出色的能力,但训练它们的过程却充满了挑战,比如需要投入大量的时间和资金。这时候,微调LLM就体现出了其重要性。

通过细化这些预训练的模型以更好地适应特定的应用环境或领域,我们就可以显著提高它们处理特定任务的性能。这一步不仅提高了它们的质量,还扩大了它们在一系列广泛领域的用途。

本文旨在将这个过程分解为七个简单步骤,以便使任何LLM针对特定任务进行微调。

理解预训练的大语言模型

LLM是机器学习算法的一个特殊类别,旨在根据前一个单词提供的上下文预测序列中的下一个单词。这些模型建立在Transformers架构上,这是机器学习技术领域的一大突破,在谷歌的《你需要的就是注意力》文章中作了首次解释。

GPT(生成式预训练Transformer)之类的模型就是已经暴露于大量文本数据的预训练语言模型。这种广泛的训练使它们得以掌握语言使用的基本规则,包括如何将单词组合成连贯的句子。

这些模型的一个关键优势在于,它们不仅能够理解自然语言,还能够根据提供的输入生成酷似人类写作的文本。

那么其最大的优点是什么呢?那就是这些模型已经通过API向大众开放。

什么是微调,为什么很重要?

微调是指选择一个预训练的模型,并通过使用特定领域的数据集进一步训练来改进它的过程。

大多数LLM模型有很好的自然语言技能和通用知识性能,但在处理特定的面向任务的问题时差强人意。微调过程提供了一种方法,可以提升模型处理特定问题的性能,同时降低计算费用,无需从头开始构建模型。

简而言之,模型经过微调后,针对特定任务拥有更好的性能,使其在实际应用中更有效、更通用。这个过程对于改进现有模型以处理特定的任务或领域至关重要。

微调LLM的逐步指南

不妨通过如下七个步骤微调一个实际模型来举例说明这个概念。

第一步:明确具体目标

假设我们想要推断任何文本的情绪,决定试用GPT-2来完成这样的任务。

我敢肯定,我们很快就会发现它在这方面做得很差,这并不奇怪。然后,一个自然而然的问题浮现在脑海中:我们可以做些什么来改善其性能?

当然,答案是我们可以!

使用含有推文及相应情绪的数据集训练来自Hugging Face Hub的预训练GPT-2模型,充分利用微调的效果,以便提高性能。

所以,我们的最终目标是拥有一个善于从文本中推断情绪的模型。

第二步:选择预训练的模型和数据集

第二步是选择什么模型作为基本模型。在本文例子中,我们已经选择了模型:GPT-2。所以我们要对它进行一些简单的微调。

始终记住要选择适合您任务的模型。

第三步:加载要使用的数据

我们已有了模型和主要任务,现在需要一些数据来处理。

不过别担心,Hugging Face已经把一切都安排好了!

这时候,它的数据集库有了用武之地。

在这个例子中,我们将充分利用Hugging Face数据集库来导入一个数据集,其中的推文被标记为相应的情绪(积极的、中立的或消极的)。

from datasets import load_dataset

dataset = load_dataset("mteb/tweet_sentiment_extraction")
df = pd.DataFrame(dataset['train'])

数据看起来就像这样:

第四步:分词器(Tokenizer)

现在我们有了模型和数据集来对其进行微调。因此,接下来的合理步骤是加载分词器。由于LLM使用token(而不是单词!!),我们需要分词器将数据发送到我们的模型。

通过利用map方法对整个数据集进行分词处理,我们很容易做到这一点。

from transformers import GPT2Tokenizer

# Loading the dataset to train our model
dataset = load_dataset("mteb/tweet_sentiment_extraction")
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
tokenizer.pad_token = tokenizer.eos_token

def tokenize_function(examples):
 return tokenizer(examples["text"], padding="max_length", truncatinotallow=True)

tokenized_datasets = dataset.map(tokenize_function, batched=True)

为了提高我们的处理性能,生成两个较小的子集:

  • 训练集:用来微调我们的模型。
  • 测试集:用来评估模型。
Small_train_dataset = tokenized_datasets["train"].shuffle(seed=42).select(range(1000))
Small_eval_dataset = tokenized_datasets["test"].shuffle(seed=42).select(range(1000))

第五步:初始化基本模型

一旦我们有了要使用的数据集,就加载我们的模型,并指定预期标签的数量。您可以从推文的情绪数据集知道有三种可能的标签:

  • 0或消极的
  • 1或中性的
  • 2或积极的
from transformers import GPT2ForSequenceClassification

model = GPT2ForSequenceClassification.from_pretrained("gpt2", num_labels=3)

第六步:评估方法

Transformers库提供了一个名为“Trainer”的类,它可以优化我们模型的训练和评估。因此,在实际训练开始之前,我们需要定义一个函数来评估经过微调的模型。

import evaluate

metric = evaluate.load("accuracy")

def compute_metrics(eval_pred):
 logits, labels = eval_pred
 predictions = np.argmax(logits, axis=-1)
 return metric.compute(predictinotallow=predictions, references=labels)

第七步:使用Trainer方法进行微调

最后一步是微调模型。为此,我们将一起设置训练参数与评估策略,并执行Trainer对象。

要执行Trainer对象,我们只需使用train()命令。

from transformers import TrainingArguments, Trainer

training_args = TrainingArguments(
 output_dir="test_trainer",
 #evaluation_strategy="epoch",
 per_device_train_batch_size=1, # Reduce batch size here
 per_device_eval_batch_size=1, # Optionally, reduce for evaluation as well
 gradient_accumulation_steps=4
 )


trainer = Trainer(
 model=model,
 args=training_args,
 train_dataset=small_train_dataset,
 eval_dataset=small_eval_dataset,
 compute_metrics=compute_metrics,

)

trainer.train()

一旦我们的模型经过微调,我们使用测试集来评估其性能。trainer对象已经包含了经过优化的evaluate()方法。

import evaluate

trainer.evaluate()

这就是对任何LLM进行微调的基本过程。

另外请记住,微调LLM的过程对计算资源的要求很高,因此您的本地计算机可能没有足够的能力来进行微调。

主要结论

如今,针对特定任务对预训练的大语言模型(比如GPT)进行微调对于改进LLM在特定领域的性能至关重要。它使我们得以利用LLM的自然语言能力,同时提高它们的效率和定制方面的潜力,使这个过程易于访问且具有成本效益。

如果遵循这七个简单的步骤:从选择正确的模型和数据集到训练和评估微调模型,我们可以在特定领域实现卓越的模型性能。

如果想要查看完整代码,可以在我的大语言模型Github代码库中找到:https://github.com/rfeers/large-language-models/blob/main/7%20Steps%20to%20Fine-Tune%20LLMs.ipynb。

原文标题:7 Steps to Mastering Large Language Model Fine-tuning,作者:Josep Ferrer



Tags:大语言模型   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
微调大语言模型的七个步骤
译者 | 布加迪审校 | 重楼在最近一年半的时间里,自然语言处理(NLP)领域发生了显著的变化,这主要得益于OpenAI的GPT系列等大语言模型(LLM)的兴起。这些功能强大的模型已彻底改变了...【详细内容】
2024-05-14  Search: 大语言模型  点击:(0)  评论:(0)  加入收藏
为何大语言模型不会取代码农?
译者 | 布加迪审校 | 重楼生成式人工智能(GenAI)会取代人类程序员吗?恐怕不会。不过,使用GenAI的人类可能会取代程序员。但是如今有这么多的大语言模型(LLM),实际效果不一而足。如...【详细内容】
2024-03-21  Search: 大语言模型  点击:(42)  评论:(0)  加入收藏
大语言模型插件功能在携程的Python实践
作者简介成学,携程高级安全研发工程师,关注Python/Golang后端开发、大语言模型等领域。一、背景2023年初,科技圈最火爆的话题莫过于大语言模型了,它是一种全新的聊天机器人模型,...【详细内容】
2024-01-26  Search: 大语言模型  点击:(103)  评论:(0)  加入收藏
面向超长上下文,大语言模型如何优化架构,这篇综述一网打尽了
ChatGPT 的诞生,让基于 Transformer 的大型语言模型 (LLM) 为通用人工智能(AGI)铺开了一条革命性的道路,并在知识库、人机交互、机器人等多个领域得到应用。然而,目前存在一个普...【详细内容】
2024-01-03  Search: 大语言模型  点击:(151)  评论:(0)  加入收藏
大语言模型真的需要这么多层吗?
研究表明,移除70% 的注意力头和 20% 的前馈网络对上下文学习影响甚微,这暗示大语言模型或许训练得不够充分。本文经授权转载宝玉老师的个人博客(微博@宝玉xp ),链 接https://ba...【详细内容】
2023-12-19  Search: 大语言模型  点击:(80)  评论:(0)  加入收藏
大语言模型量化方法对比:GPTQ、GGUF、AWQ
在过去的一年里,大型语言模型(llm)有了飞速的发展,在本文中,我们将探讨几种(量化)的方式,除此以外,还会介绍分片及不同的保存和压缩策略。说明:每次加载LLM示例后,建议清除缓存,以防...【详细内容】
2023-11-17  Search: 大语言模型  点击:(277)  评论:(0)  加入收藏
SEO中的大语言模型量化方法
随着互联网的快速发展,搜索引擎优化(SEO)已经成为了企业提升网站流量和排名的重要手段。在SEO的过程中,大语言模型量化方法被广泛应用,以帮助企业更好地理解搜索引擎的工作原理,并...【详细内容】
2023-11-16  Search: 大语言模型  点击:(203)  评论:(0)  加入收藏
大语言模型数据泄露堪忧,超自动化Agent成解决之道
文/王吉伟阻碍广大企业应用大语言模型(LLM,Large Langeuage Models)的诸多因素中,无疑数据安全是最重要的。3月份ChatGPT发生了用户隐私数据泄露事件,OpenAI声明由于开源代码库中...【详细内容】
2023-11-15  Search: 大语言模型  点击:(198)  评论:(0)  加入收藏
无限上下文,多级内存管理!突破ChatGPT等大语言模型上下文限制
目前,ChatGPT、Llama 2、文心一言等主流大语言模型,因技术架构的问题上下文输入一直受到限制,即便是Claude 最多只支持10万token输入,这对于解读上百页报告、书籍、论文来说非常...【详细内容】
2023-11-02  Search: 大语言模型  点击:(312)  评论:(0)  加入收藏
十个2023年最具影响力的开源大语言模型
由于大型语言模型(LLM)的崛起,2023年被认为是开源领域的关键一年。下面精心挑选了一些在2023年上半年掀起波澜的最有影响力的模型。这些模型几乎可以与band、GPT-3.5、GPT4、Cl...【详细内容】
2023-10-13  Search: 大语言模型  点击:(349)  评论:(0)  加入收藏
▌简易百科推荐
微调大语言模型的七个步骤
译者 | 布加迪审校 | 重楼在最近一年半的时间里,自然语言处理(NLP)领域发生了显著的变化,这主要得益于OpenAI的GPT系列等大语言模型(LLM)的兴起。这些功能强大的模型已彻底改变了...【详细内容】
2024-05-14    51CTO  Tags:大语言模型   点击:(0)  评论:(0)  加入收藏
人形机器人成本大揭秘:如何降低成本提高效率?
5月13日,据宇树科技官微消息,该公司发布了一款名为Unitree G1的新型人形机器人。据官方介绍,这款机器人具备超大关节运动角度及34个关节,还结合了力位混合控制技术,能够模拟人手...【详细内容】
2024-05-14    金融界  Tags:人形机器人   点击:(0)  评论:(0)  加入收藏
类人速度超快语音响应!OpenAI推出新旗舰模型GPT-4o,图文音频手机AI搞定
虽然没有带来备受期待的人工智能(AI)搜索引擎,但OpenAI在主打产品AI模型上花了更多心思,拓展多模态功能,让用户可以免费玩转文字、图片和语音输入。美东时间5月13日周一,OpenAI首...【详细内容】
2024-05-14    硬AI  Tags:OpenAI   点击:(3)  评论:(0)  加入收藏
ChatGPT-4o,OpenAI的一小步,人类「AI助理」的一大步
科幻电影‘Her’的剧情正在成为现实。作者 | 黎诗韵5 月 13 日,OpenAI 用一场春季发布会,再次搅动了整个 AI 行业。在 Sam Altman 缺席的情况下,OpenAI CTO Mira Mur...【详细内容】
2024-05-14    极客公园  Tags:ChatGPT   点击:(7)  评论:(0)  加入收藏
“AI+”金融的应用与边际
来源:北京商报金融是“AI+”的最理想应用场景,而AI是普惠金融的核心驱动力(3.750, 0.00, 0.00%)之一。4月29日,在2024中关村(4.340, 0.00, 0.00%)论坛年会——金融科...【详细内容】
2024-04-30    北京商报  Tags:AI+   点击:(21)  评论:(0)  加入收藏
深入理解并掌握 Spring AI 与 Open AI 的使用方法
Spring AI,作为行业领导者,通过其强大、灵活的API和先进的功能,为各种行业提供了颠覆性的解决方案。在本专题中,我们将深入探讨Spring AI在各领域的应用示例。每个案例都将展示...【详细内容】
2024-04-29   路条编程  微信公众号  Tags: Spring AI   点击:(9)  评论:(0)  加入收藏
全面走向“人工智能+” 国内首个汽车大模型标准发布
中国信息通信研究院今天(28日)发布了国内首个汽车大模型标准。标准主要涵盖三个能力域,其中场景丰富度侧重评估汽车大模型对智能座舱和自动驾驶等细分场景的支持情况,能力支持度...【详细内容】
2024-04-28    央视网  Tags:大模型   点击:(30)  评论:(0)  加入收藏
开源还是闭源?哪个才是大模型的发展之路?
2023年7月,Meta发布了其首款面向市场的开源大模型Llama 2,免费提供给研究和商业开发者使用。自此,闭源与开源两种技术路线的交锋正式拉开序幕。 时至今日,围绕闭源与开源...【详细内容】
2024-04-25    比特网  Tags:大模型   点击:(14)  评论:(0)  加入收藏
抖音追不上Sora
来源:字母榜在AI文生视频这条热门赛道,抖音旗下的剪映,正在被OpenAI的Sora越甩越远。近日,美国软件巨头Adobe宣布,将在知名视频编辑软件Premiere Pro的新版本添加多款文生视频AI...【详细内容】
2024-04-24  字母榜    Tags:Sora   点击:(22)  评论:(0)  加入收藏
融汇11款AI工具构建完美应用
想了解更多AIGC的内容,请访问: 51CTO AI.x社区 https://www.51cto.com/aigc/ 如您所见,人工智能(AI)应用在近年来得到了长足的发展。从语音助手到软件开发,人工智能已在我们的生...【详细内容】
2024-04-23    51CTO  Tags:AI工具   点击:(20)  评论:(0)  加入收藏
站内最新
站内热门
站内头条