初学者怎么入门大语言模型(LLM)?

真的想入门大语言模型,只看这一个文章应该是可以入门的。但是修行下去,还是要靠自己的了!

如果你把大语言模型/LLM 当成一门技术来看,那就要看一下这门技术需要什么。

基本要求:

  • 开发语言:Python, C/C++

  • 开发框架:Numpy/Pytorch/Tensorflow/Keras/Onnx

  • 数学知识:线性代数、高数、概率、凸优化

这些东西我们假定你都已经会了,或者熟练使用了。

如果不熟,我建议你自己再学习一下。尤其是数学的几个基本公式,是要学会的。我列一下吧。

数学核心内容

  1. 「线性代数」:关键概念包括向量、矩阵、特征值和特征向量。重要的公式涉及矩阵乘法、行列式以及特征值方程Av=λv,其中 A是矩阵,v 是特征向量,λ是特征值。

  2. 「高数」:基本主题是微分和积分,重点是理解极限、导数和积分的概念。函数 f(x) 在点 x的导数由f′(x)=limh→0 f(x+h)−f(x) 给出,基本微积分定理将微分与积分联系起来。

  3. 「概率」:关键点包括概率公理、条件概率、贝叶斯定理、随机变量和分布。例如,贝叶斯定理由P(A∣B)=P(B∣A)P(A)/P(B)给出,它帮助在发生B 的情况下更新 A 的概率。

  4. 「凸优化」:关注目标函数为凸函数的问题。关键概念包括凸集、凸函数、梯度下降和拉格朗日乘数。梯度下降更新规则可以表示为 xn+1 =xn −_α_∇_f_(xn ),其中 _α_是学习率。

你可以看到这些相对经常用到的数学,其实没有多难,只要你再看一下记住就好了。

开发框架

Numpy 主要是掌握各种数据的使用方法

Pytorch 与 Tensor、 Keras 就是完成各种网络及训练的方法

你至少要能保证下面的代码里的每一行代码都能完全理解

import torch   from torch import nn, optim   from torchvision import datasets, transforms   from torch.utils.data import DataLoader   # Define a transformation to normalize the data   transform = transforms.Compose([transforms.ToTensor(), transforms.Normalize((0.5,), (0.5,))])   # Load the Fashion MNIST dataset   train_dataset = datasets.FashionMNIST(root='./data', train=True, download=True, transform=transform)   test_dataset = datasets.FashionMNIST(root='./data', train=False, download=True, transform=transform)   train_loader = DataLoader(train_dataset, batch_size=64, shuffle=True)   test_loader = DataLoader(test_dataset, batch_size=64, shuffle=False)   # Define the neural network structure   class FashionMNISTNN(nn.Module):       def __init__(self):           super(FashionMNISTNN, self).__init__()           self.flatten = nn.Flatten()           self.linear_relu_stack = nn.Sequential(               nn.Linear(28*28, 512),               nn.ReLU(),               nn.Linear(512, 256),               nn.ReLU(),               nn.Linear(256, 10),           )       def forward(self, x):           x = self.flatten(x)           logits = self.linear_relu_stack(x)           return logits   model = FashionMNISTNN()   # Define the loss function and optimizer   loss_fn = nn.CrossEntropyLoss()   optimizer = optim.Adam(model.parameters(), lr=0.001)   # Function to train the model   def train(dataloader, model, loss_fn, optimizer):       size = len(dataloader.dataset)       model.train()       for batch, (X, y) in enumerate(dataloader):           # Compute prediction and loss           pred = model(X)           loss = loss_fn(pred, y)           # Backpropagation           optimizer.zero_grad()           loss.backward()           optimizer.step()           if batch % 100 == 0:               loss, current = loss.item(), batch * len(X)               print(f"loss: {loss:>7f}  [{current:>5d}/{size:>5d}]")   # Function for testing the model   def test(dataloader, model, loss_fn):       size = len(dataloader.dataset)       num_batches = len(dataloader)       model.eval()       test_loss, correct = 0, 0       with torch.no_grad():           for X, y in dataloader:               pred = model(X)               test_loss += loss_fn(pred, y).item()               correct += (pred.argmax(1) == y).type(torch.float).sum().item()       test_loss /= num_batches       correct /= size       print(f"Test Error: \n Accuracy: {(100*correct):>0.1f}%, Avg loss: {test_loss:>8f} \n")   # Train the model   epochs = 5   for t in range(epochs):       print(f"Epoch {t+1}\n-------------------------------")       train(train_loader, model, loss_fn, optimizer)       test(test_loader, model, loss_fn)   print("Done!")   print("关注微信公众号:佑佑有话说")   

注意,是每一行代码,都能完全理解!!!

Transformer基础

做为 LLM 的基础模型,你要想入门,那对 Transformer 这个模型要了如指掌才成!

而 Transformer 的基本图像就是下面这样的:

推荐自己手写一个 Transformer 模型,至少要写一个 Attention 的结构。还要看懂下面这个图。你就能体会到一个至简的模型是怎么遵循 Scaling Law的,AGI 可能就在这个简单的重复与变大中了!

但是Transformer 这么简单的东西怎么就这么厉害了呢?整个大模型已经发展两三年了,如果你再不跟上,可能很快就淘汰了。

「只要你有想法,你就有结果!只要你投入,就会有成就!」

这些是个基础了。但是对于 LLM 来讲吧,如果你想自己继续研究,那可能要接触的就是下面这些东西了。

  • Prompt 工程

  • RAG 技术

  • Fine-Tune 技术

  • LLM Training From Scratch

  • LLM 部署及优化技术

这几项基本上是针对效果及成本的要求从低到高的顺序,也是技术上从简单到难的顺序列出来的。

  1. 「Prompt 工程」:涉及设计和完善给LLM的Prompt,来得到最准确或最有用的Response。核心原则是通过精心设计的问题或陈述引导LLM生成所需的输出。它需要理解LM的能力和限制,并且通常涉及反复试验以找到最有效的提示。基本技术就是三件事:
    指令角色、精确表达、要求输出格式。

  2. 「RAG 技术(检索增强生成)」:RAG 是一种方法,结合了检索器模型来获取相关文档或数据和生成器模型来产生最终输出。这种技术通过外部信息丰富LLM的响应,提高其准确性和可靠性,特别是对于知识密集型任务。关键是有效整合检索和生成过程,以利用现有知识和生成能力。
    你需要了解的就是 LangChain

  3. 「Fine-Tune 技术」:微调涉及在特定数据集或特定任务上轻微调整预训练模型参数以提高性能。这种方法允许利用大型预训练模型并将它们适应于专门的要求,无需进行大量重新训练。本质是保持LM的一般能力,同时为特定用例进行优化。
    没啥好说的了,自己准备数据针对特定任务训练

  4. 「LLM 从零开始训练」:从头开始训练大型语言模型(LLM)意味着在不依赖现有预训练权重的情况下构建模型。这个过程涉及收集大量数据集、设计模型架构,然后在高性能计算资源上长时间训练模型。核心挑战是需要大量的计算能力和数据,以及有效管理训练过程的专业知识。
    如果你没有在一个顶级的公司或者研究团队,想想就好了。

  5. 「LLM 部署及优化技术」:部署和优化LLM涉及有效提供预测的策略,同时有效管理计算资源。这包括模型量化(减少数字的精度以节省内存)、模型修剪(移除不那么重要的权重)和蒸馏(训练一个较小的模型来模仿一个较大的模型)。目标是减少模型的大小和推理时间,而不会显著影响其性能,使其适合生产环境。

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

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

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

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

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

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

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

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

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

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

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

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

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

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值