大模型微调实战(1):Hugging Face 入门

大模型微调实战(1):Hugging Face 入门

1. Hugging Face 介绍

从本篇文章开始,我们会开启一个系列专题——大模型微调实战*在这个专题中,我们会详细介绍下如何使用和私有部署开源的大模型,并且结合特定业务场景,逐步微调出属于自己的大模型。*

本次是专题的第一节,我们不会涉及太多底层的技术原理,而是先了解下 Hugging Face 这个重要的社区。

**Hugging Face 是全世界最知名的开源模型社区,甚至没有之一。Hugging Face 在 AI 领域内的地位,丝毫不亚于 GitHub 在软件开发领域。***Hugging Face 于2016年成立于纽约,最初定位为 AI 聊天机器人 开发商,推出了一款面向青少年的对话应用,但未取得广泛成功。但是很快,团队发现开发者对*开源 NLP 工具****的需求激增,尤其是随着 *Transformer 架构(如 Google 的 BERT)的兴起*,决定转向技术基础设施方向,最终大获成功。

进入到 Hugging Face 的官网,可以看到最重要的两个模块,分别是 Models 和 DataSets 。下面我们分别介绍下。

img

2. Models 模型

首先来说模型。目前 Hugging Face 上已经涵盖了大多数的开源模型,我们需要使用的大模型通常都可以在这里找到。

目前 Hugging Face 将模型划分成了几大类别,如 Multimodal 多模态模型、Computer Vision 计算机视觉模型、Natural Language Processing 自然语言处理模型等等。*当下在大模型领域,最核心的研究方向还是自然语言处理模型。*

**在 NLP 模型分类下,还有两个下属的子分类,即 Text Generation 和 Fill-Mask,他们分别是以 GPT 为代表的自回归模型,和以 BERT 为代表的自编码模型。****

img

进入到具体的模型中,我们还可以直接在线体验模型的功能。例如,我们找到 stable-diffusion 模型,输入 prompt,直接就可以生成图片,非常方便。

img

3. DataSets 数据集

除了模型之外,数据集对于模型的训练也至关重要。Hugging Face 上收集了大量的、各个维度的高质量的数据集,如****文本翻译、对话、数学推理、代码生成****等等。

img

我们可以在 Hugging Face 上直接浏览 DataSets 的采样数据,也可以将数据集下载到本地进行训练。

img

4. 调用 Hugging Face 在线模型

相信通过上面的介绍,大家已经对 Hugging Face 有了一个初步的认知。下面我们就来实际操练一下,如何调用 Hugging Face 上的在线模型。

演示的模型我们选择 ***\*gpt2-chinese-cluecorpussmall\**** ,它是基于 gpt-2 这个基础模型,并结合一些中文语料训练出来的,具备一定的中文理解和生成能力。

img

创建 Access Token

在使用 Hugging Face 之前,需要先创建 Access Token,它代表了访问 Hugging Face 的身份凭证。

特别提示:申请 Token 时需要选择用户权限,在测试环境下,可以考虑把全部权限都勾选上,以避免出现某些功能无法使用的情况。

img

调用模型

本次我们采用原生 HTTP 请求的方式来调用 Hugging Face,暂时不需要安装 transformers 库,仅使用 requests 库来发送 HTTP 请求即可。可以参考下面的代码:

import os
import dotenvimport requests
# 加载环境变量,并读取HuggingFace的api_tokendotenv.load_dotenv()api_token = os.getenv("HUGGINGFACEHUB_API_TOKEN")
# 定义API的base_url# https://api-inference.huggingface.co/models 这个前缀是固定形式# uer/gpt2-chinese-cluecorpussmall 这个是模型的namespace+名称base_url = "https://api-inference.huggingface.co/models/uer/gpt2-chinese-cluecorpussmall"
# 在Http Header中指定api_tokenheaders = {"Authorization": f"Bearer {api_token}"}
# 发送文本生成请求response = requests.post(base_url, headers=headers, json={"inputs": "帮我介绍下李白:"})
# 打印结果print(response.json())

最终的生成结果是这样的:

img

可以看到 API 是可以正常访问的,但是生成的内容质量非常差,基本上驴唇不对马嘴,这是因为 *gpt2 这个基础模型的参数还很小,性能完全无法与 gpt-3.5 及之后的模型相提并论。*

5. 小结

本次的文章中,我们对 Hugging Face 这个重量级的开源社区进行了介绍,概览了它的 Models 和 Datasets 这两个核心模块,并且通过一个简单的 demo 演示了如何调用 Hugging Face 上的在线模型,相信大家对于 Hugging Face 已经有了初步的了解了。

零基础入门AI大模型

今天贴心为大家准备好了一系列AI大模型资源,包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

有需要的小伙伴,可以点击下方链接免费领取【保证100%免费

点击领取 《AI大模型&人工智能&入门进阶学习资源包》

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

5.免费获取

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码或者点击以下链接都可以免费领取【保证100%免费】

点击领取 《AI大模型&人工智能&入门进阶学习资源包》

在这里插入图片描述

### 关于在魔搭社区进行LLM大模型微调实战教程 #### 大模型微调入门实战概述 对于希望深入理解并实践大型语言模型(LLM微调的学习者来说,在魔搭社区找到合适的资源至关重要。具体到Qwen2这一特定的大模型,存在详尽的入门实战指南[^2]。 #### 完整代码实例展示 针对Qwen2-1.5B版本的具体操作流程已被记录下来,并提供了完整的源码供参考。此部分不仅涵盖了理论讲解还包含了实际编码实现细节,有助于读者更好地掌握如何调整超参数以及优化策略来提升模型表现。 ```python from transformers import AutoTokenizer, AutoModelForSeq2SeqLM import torch tokenizer = AutoTokenizer.from_pretrained("model_id") model = AutoModelForSeq2SeqLM.from_pretrained("model_id") def fine_tune_model(training_data_path): # 加载训练数据集 dataset = load_dataset('csv', data_files=training_data_path) def tokenize_function(examples): return tokenizer(examples['text'], padding="max_length", truncation=True) tokenized_datasets = dataset.map(tokenize_function, batched=True) training_args = TrainingArguments( output_dir="./results", evaluation_strategy="epoch", learning_rate=2e-5, per_device_train_batch_size=8, per_device_eval_batch_size=8, num_train_epochs=3, weight_decay=0.01, ) trainer = Trainer( model=model, args=training_args, train_dataset=tokenized_datasets["train"], eval_dataset=tokenized_datasets["test"] ) trainer.train() fine_tune_model('/path/to/training/data.csv') ``` 上述Python脚本展示了基于Hugging Face库对指定ID下的预训练模型执行微调的过程。通过设置不同的`TrainingArguments`选项,可以灵活控制整个训练周期内的各项配置项,从而满足不同应用场景的需求。 #### 数据准备与处理方法论 为了使微调工作更加高效,通常还需要特别注意输入给定的数据质量及其格式转换方式。例如,在这里提到的例子中采用了Fudan大学新闻分类语料作为训练素材之一;而在其他情况下,则可能涉及更多样化的文本来源。无论哪种情形下,都建议先做好充分清洗和标注前的工作再投入正式训练环节。 #### 总结与经验分享 综上所述,借助像魔搭这样的开源平台所提供的工具链和服务支持,即使是初学者也能较为轻松地上手尝试LLM微调任务。当然,除了遵循既有的指导文档外,积极参与社区交流、勇于探索未知领域同样重要——这往往能带来意想不到的新发现!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值