AI image created on ChatGPT 4o by the author

如何在不到10小时的时间里,通过Kaggle和ChatGPT启动我的LLM之旅

人工智能正以闪电般的速度发展—我如何使用人工智能学习人工智能

人工智能不仅仅是一个流行词;它正在重新塑造数据科学和数据分析的世界。像GPT-4这样的大型语言模型(LLMs)的崛起已经彻底改变了我们如何解释数据,生成洞见并自动化复杂任务。

作为一名数据科学家,我知道我必须跟上时代。几个月前,我迈出了走向LLM世界的第一步。凭借我的数据科学背景和对人工智能的浓厚兴趣,我参加了Kaggle项目,并将ChatGPT作为我的个人导师。那时,我对LLMs的了解很基础 — 更像是一种初露头角的好奇心,而不是一个专注的努力。

现在,最初的好奇心已经发展成为真正的技能,并对LLMs如何解决现实世界问题有了更深入的理解。这个飞跃很快 — 仅仅在10小时内,我取得了显著进步,得益于Kaggle的实际项目和ChatGPT的深入指导的强大结合。

为什么选择Kaggle和ChatGPT?

决定踏入LLM的世界之后,接下来出现的问题是:

如何能够有效地学习LLMs?

有很多途径可以选择 — 在线课程、研究论文、书籍 — 虽然这些都很有价值,但我坚信

掌握新事物的最有效方式是积极地努力工作。

参与实践项目可以让您:

  • 学习术语和模型:当应用在真实场景中时,掌握基本概念和架构变得更加直观。
  • 解决现实世界的问题:将LLMs应用于实际数据科学挑战有助于弥合理论与实践之间的差距。
  • 排除故障并创新:在项目中面对并解决问题会增强解决问题的技能并鼓励创新思维。
  • 理解方法论:尝试不同的方法可以让我们了解何时以及如何应用不同的技术。

所以我转向Kaggle和ChatGPT - 这对我学习之旅来说是完美的组合。

Kaggle是一个理想的平台,适合初学者参与真实项目,参加比赛并与其他数据爱好者合作。它提供:

  • 免费GPU使用:每周最多30小时—非常适合初学者跳过繁琐的设置。
  • 访问开源模型:轻松使用像Llama和Mistral这样的模型。它们可以直接下载和使用,让您轻松入门。
  • 干净的数据集:准备好的数据使项目启动变得顺畅
  • 充满活力的社区:与他人合作和学习

另一方面,ChatGPT充当了我的个人导师:

  • Instant Problem-Solving: 每当我遇到挑战或困难时,ChatGPT 都会立即提供帮助、解释和解决方案。
  • 概念澄清:ChatGPT用清晰的解释简化复杂概念
  • 代码优化:ChatGPT优化了我的代码以提高效率。
  • 构思生成:它推动我以创新建议探索超越最初的想法。

一起,Kaggle 和 ChatGPT 创建了一个全面的学习环境,使我能够掌握理论与实践应用。

项目选择: 自动作文评分

在Kaggle上浏览了各种项目后,自动作文评分(AES)引起了我的注意。这个项目涉及开发一个系统,对大约 24,000 篇学生论文进行评估和打分,分数在 1 到 6 之间。这个任务简单而全面,为理解 LLMs 如何应用于现实场景提供了坚实的基础。此外,评分论文感觉就像是一种看到 LLMs 实际运作的实实在在的方式。

我从Chris Deotte的笔记本Mistral 7B Baseline — [LB 0.7X]开始,为AES进行微调LLM提供了全面的指导。它非常适合初学者,并允许我直接在Kaggle上重新运行代码,使我更容易理解基本要点。

使用ChatGPT的帮助,我逐步在笔记本上工作。每当我遇到不清楚的代码时,ChatGPT用简单的方式解释,让我理解整个过程。我还尝试了新的想法 - 探索不同的预处理方法、调整参数和测试模型 - 在ChatGPT的指导下,我学会了最佳实践和潜在问题。每晚只花2小时时间,我很快就熟悉了微调过程。

在连续努力了10小时后,我成功地调整了Mistral 7B模型,用于AES任务。这种亲身经历增强了我的技术技能,扩展了我对关键的LLM概念的理解。

AI image created on ChatGPT 4o by the author

ChatGPT:我的终极学习伴侣

使用ChatGPT是一个改变游戏规则的工具。它不仅仅是一个工具;它成为了我的导师、指引和问题解决者。

代码老师

每当我遇到复杂的代码时,我会把它拆分成简单的部分。例如,我需要弄清楚:

Explain the following codes in an easy to understand way.
***code***
<tokenizer = AutoTokenizer.from_pretrained(model_name, padding_side='right')
tokenizer.pad_token = tokenizer.eos_token>

ChatGPT 的解释使我能够轻松理解每个组件的目的,让我能够自信地工作。

错误修复者

在处理复杂模型时,出现错误是不可避免的,但ChatGPT在引导我解决这些问题方面表现得非常出色。例如,我在验证时遇到了以下运行时错误:

When I run the following codes, I get this error. How to fix it?
***error***
<RuntimeError: Expected all tensors to be on the same device,
but found at least two devices, cuda:0 and cpu!>
***code***
<....>

我求助于ChatGPT,它提供了一步一步的解决方案:

# 1. Determine the Device:
import torch
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"Using device: {device}")
# 2. Move the Model to the Device
model.to(device)
# 3.move Input Tensors to the Device
tokenized_sample = {k: v.to(device) for k, v in tokenized_sample.items()}[p

这个指导不仅解决了错误,而且提高了我对PyTorch中设备管理的理解。

术语翻译器

LLMs 带有许多可能让人感到不知所措的技术术语。ChatGPT 耐心地用简单的语言解释了类似 Fine-Tuning、PEFT(参数高效微调)和 LoRA(低秩调整)这些术语。

我的对话GPT提示:

"LLM中的PEFT是什么意思?"

ChatGPT的回答提供了对PEFT的全面介绍,解释了其重要性、关键技术、优势和各种应用。此外,它还提供了在实践中实施PEFT的示例代码。这些详细的解释增强了我的信心,使复杂的概念变得更容易理解。

创新火花

除了故障排除和解释,ChatGPT还建议对我的项目进行有意义的改进。例如,它建议将 AES 任务中的 AutoModelForCausalLM 切换到 AutoModelForSequenceClassification。

关键学习和见解

在ChatGPT的帮助下进行AES项目的工作让我收获颇丰。以下是我的关键收获:

  • LLMs的数据预处理: 掌握分词和索引等技术,有效准备数据可以确保模型训练和评估更加顺利。
  • 深入了解术语:了解如何利用预训练模型,如Mistral 7B,以及使用PEFT和LoRA等技术。
  • 训练、验证和测试:对训练、验证和测试工作流程的更深入掌握,可以确保模型的可靠性性能。

下一步和未来计划

有了坚实的基础,我感到兴奋:

  • 探索高级技术:深入研究模型,解决新的Kaggle项目。
  • 构建项目和应用程序:在现实场景中应用技能
  • 分享和合作:在GitHub上共享文档并与社区互动

开始我的LLM之旅是在Kaggle和ChatGPT的帮助下得以启蒙。我克服了技术障碍,在数据科学中对LLMs有了深刻的理解。ChatGPT是至关重要的——它是我的代码指导,错误修复,术语翻译和创新启发者。如果你想深入研究LLMs,我强烈推荐这种实用方法。查看我的Kaggle笔记本,深入了解这个项目。愉快学习!

2024-10-16 04:26:44 AI中文站翻译自原文