Jupyter Notebook 适合做机器学习开发吗?

现在很多机器学习项目都是在Jupyter notebook中开发、训练、调试和演示的,比如openai、deepmind等,kaggle比赛中的原生环境就是Jupyter notebook,几乎任何机器学习的开发都可以在上面进行。

对于问题中的困扰,想要写py文件,可以在Pycharm、vscode中编写,使用Jupyter中的命令行来执行。但一般来说,算法开发调试阶段主要在Jupyter notebook上,到了产品化阶段才会写大量的py文件。

另外,机器学习算法训练需要GPU支持,快算法运行速度,Jupyter能很好的支持GPU运算。

比如说我常用的的星鸾云GPU云服务器,可以结合Jupyter Lab,用于数据科学、数据可视化,也可以搞定机器学习、深度学习,搭建属于你的AI大模型。

星鸾云GPU云服务器,顾名思义,是一个搭建在云服务器上的GPU算力平台,具备超强的大规模、高并发计算能力,你不需要自己搭GPU服务器,也能用到稳定、高效且高性价比的算力。

https://xl.hzxingzai.cn/register?invitation_code=0006407067

Jupyter Lab是基于Python的web交互式开发环境,你可以在Lab上创建多个notebook,可以理解成是Jupyter notebook的加强升级版。

Jupyter Lab集编程开发、文本编辑器、可视化平台、终端以及各种个性化组件于一体,支持写代码、跑算法、展示可视化等等,几乎无所不包。

一般我们会把Jupyter Lab安装在本地,它运行在各种计算资源上,包括CPU、GPU、TPU等等,但由于本地电脑计算资源有限,只能跑跑一些简单的数据分析、机器学习任务,所以这时候就需要星鸾云GPU云服务器来提供GPU算力。

你能在星鸾云平台上创建使用 JupyterLab,以下是在星鸾云中创建使用Jupyter Lab的步骤:

1. 创建星鸾云实例

首先,在星鸾云平台上创建一个GPU云服务器实例。选择合适的GPU型号和配置,并启动实例。

2. 连接到实例

使用SSH远程连接到星鸾云实例。Windows 用户可以使用 PowerShell 或者 XShell,Mac 用户可以直接使用 Terminal。

4. 启动登录 JupyterLab

直接在星鸾云实例中打开Jupyter Lab,接着打开终端,登录实例

5. 使用 JupyterLab

接着在 JupyterLab 中创建新的notebook,编写和运行Python代码,开始享受GPU跑算法带来的快乐吧。

我们使用PyTorch在MNIST数据集上训练一个简单的神经网络,来演示下如何使用星鸾云平台+Jupyter Lab来创建AI模型。

MNIST数据集是一个手写数字识别的经典数据集,我们创建神经网络模型用来识别手写数字。

下面是在Notebook中编写的代码:

导入相关库

import torch
import torch.nn as nn
import torch.optim as optim
from torchvision import datasets, transforms

加载和预处理数据

transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,), (0.5,))])trainset = datasets.MNIST('~/.pytorch/MNIST_data/', download=True, train=True, transform=transform)
trainloader = torch.utils.data.DataLoader(trainset, batch_size=64, shuffle=True)

定义神经网络结构

class Net(nn.Module):def __init__(self):super(Net, self).__init__()self.fc1 = nn.Linear(784, 500)self.fc2 = nn.Linear(500, 10)def forward(self, x):x = x.view(-1, 784)x = torch.relu(self.fc1(x))x = self.fc2(x)return xnet = Net()

定义损失函数和优化器

criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=0.01, momentum=0.5)

训练神经网络

for epoch in range(10):  # loop over the dataset multiple timesrunning_loss = 0.0for i, data in enumerate(trainloader, 0):inputs, labels = dataoptimizer.zero_grad()outputs = net(inputs)loss = criterion(outputs, labels)loss.backward()optimizer.step()running_loss += loss.item()print(f'Epoch {epoch + 1}, Loss: {running_loss / len(trainloader)}')

保存模型

PATH = './mnist_net.pth'
torch.save(net.state_dict(), PATH)

就这样,我们使用星鸾云GPU训练了一个神经网络模型,用于识别手写数据,虽然很简单,但也是一个地地道道的AI模型了。

接下来我们再尝试使用星鸾云GPU+Jupyter Lab开发一个AI大模型聊天工具,用于回答公司的业务问题。

首先配置环境,登录星鸾云实例,并安装必要的软件和库。

用于训练聊天机器人的问答数据主要包括:

公司FAQs
业务相关文档
公司制度文件
等等

然后对数据进行预处理,在JupyterLab中创建一个新的Notebook,编写代码对数据进行清洗、分词和格式化,准备输入模型训练。

接着,选择一个适合对话系统的预训练模型库,建议使用transformers库,然后在GPU加速下进行模型训练,监控训练过程并调整超参数以获得最佳性能。

以下是在JupyterLab的演示代码:

# 导入所需的库
from transformers import Trainer, TrainingArguments# 定义训练参数
training_args = TrainingArguments(output_dir="./results",evaluation_strategy="epoch",learning_rate=2e-5,per_device_train_batch_size=16,per_device_eval_batch_size=16,num_train_epochs=3,weight_decay=0.01,
)# 定义Trainer对象
trainer = Trainer(model=model,args=training_args,train_dataset=train_dataset,  # 训练数据集eval_dataset=eval_dataset,    # 验证数据集tokenizer=tokenizer,
)# 训练模型
trainer.train()# 保存模型
model.save_pretrained("./ai-chat-model")
tokenizer.save_pretrained("./ai-chat-model")

模型训练好后,你可以部署为API服务,然后集成到公司的内部业务支持平台,比如内网、企微、钉钉等。

使用星鸾云GPU云服务器和JupyterLab可以很轻松的进行大模型的训练和调试,结合起来非常的强大。

所以说Jupyter notebook或者Lab是机器学习最好的开发工具之一,对初学者也很友好,可以多试试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/490861.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python(四)—— 使用库

Python 的官方文档传送门:https://docs.python.org/3.10/library/index.html 一,import import和 C/C 的 #include 一样,都是使用库函数的必要步骤,下面给出了几个示例 示例一:日期计算 输入任意两个日期&#xff0c…

无人机飞行服务技术详解

无人机飞行服务技术涵盖了多个方面,以下是对其关键技术的详细解析: 一、无人机类型与特点 无人机根据其设计和功能的不同,主要分为以下几种类型: 1. 多旋翼无人机:最常见的无人机类型,通过多个电机和螺旋…

【落羽的落羽 C语言篇】一些常见的字符函数、字符串函数、内存函数

文章目录 一、字符函数1. 字符分类函数2. 字符转换函数 二、字符串函数1. strlen的使用和模拟实现使用模拟实现 2. strcpy的使用和模拟实现使用模拟实现 3. strcat的使用和模拟实现使用模拟实现 4. strcmp的使用和模拟实现使用模拟实现 5. strncpy的使用6. strncat的使用7. str…

小程序-基于java+SSM+Vue的微信阅读小程序设计与实现

项目运行 1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境&#xff1a…

Airborne使用教程

1.安装环境 前提条件:系统已安装Ruby 打开终端输入如下命令 gem install airborne 或者在Gemfile添加 gem airborne 然后运行bundle install 2.编写脚本 在项目中新建api_tests_spec.rb文件 以GET接口"https://www.thunderclient.com/welcome"为…

社区生活超市系统|Java|SSM|JSP|

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html 5⃣️数据库可…

零基础开始学习鸿蒙开发-基础页面的设计

目录 1.样例图 2.逐项分析 2.1 头顶布局分析:首先我们要把第一行的图标绘制出来,一个左一个右,很明显,需要放在一个Row容器中,具体代码如下: 2.2 和头像同一行的布局,需要注意的是&#xff0c…

211-基于FMC的1路1.5G ADC 1路 2.5G DAC子卡

一、板卡概述 FMC-1AD-1DA-1SYNC是我司自主研发的一款1路1G AD采集、1路2.5G DA回放的FMC、1路AD同步信号子卡。板卡采用标准FMC子卡架构,可方便地与其他FMC板卡实现高速互联,可广泛用于高频模拟信号采集等领域。 二、功能介绍 2.1 原理框图 2.2 硬件…

HTML综合案例

这是一个HTML CSS的综合练习案例&#xff0c;效果如图所示&#xff1a; HTML代码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-w…

NPU是什么?电脑NPU和CPU、GPU区别介绍

随着人工智能技术的飞速发展&#xff0c;计算机硬件架构也在不断演进以适应日益复杂的AI应用场景。其中&#xff0c;NPU&#xff08;Neural Processing Unit&#xff0c;神经网络处理器&#xff09;作为一种专为深度学习和神经网络运算设计的新型处理器&#xff0c;正逐渐崭露头…

【多线程】synchronized使用以及原理详解

1. synchronized关键字的使用 synchronized关键字是对Java中的对象加锁&#xff0c;主要有3种使用形式 修饰实例&#xff08;普通&#xff09;方法 &#xff0c;锁的是当前的实例对象&#xff1b;修饰静态方法&#xff0c;锁的是当前类的Class对象&#xff0c;即使是不同的示…

项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(二)

文章目录 一、登录功能实现1、前端实现1.1 创建登录组件1.2 安装和配置Element Plus1.3 安装axios和调用后端接口2、后端实现2.1 创建数据表和准备数据2.2 配置MYSQL配置信息2.3 登录功能实现2.3.1 创建实体类2.3.2 创建登录服务接口及实现2.3.3 创建Mapper2.3.4 实现登录接口A…

ESP32-S3-devKitC-1 点亮板上的WS2812 RGB LED

ESP32-S3-devKitC-1 板上自带了一个RGB LED&#xff0c;型号为 WS2812。 RGB LED 在板上的位置如下图所示。 为了点亮这个WS2812&#xff0c;需要确定这颗RGB LED连接到哪个GPIO上了。 下面是确定GPIO管脚的过程&#xff1a; 1、根据原理图 2、根据PCB布局图&#xff1a; 程…

汽车电子元件的可靠性保障:AEC-Q102认证

AEC-Q102标准的起源与价值 随着汽车电子系统的日益复杂&#xff0c;电子器件必须能够在极端的温度、湿度、振动和电磁干扰等恶劣条件下保持性能。AEC-Q102标准由汽车电子委员会&#xff08;AEC&#xff09;制定&#xff0c;专门针对LED、激光二极管和光电二极管等光电器件&…

SQL中的联结表

本文介绍什么是联结&#xff0c;为什么使用联结&#xff0c;以及如何编写使用联结的SELECT语句。 1. 联结 SQL最强大的功能之一就是能在数据查询的执行中联结&#xff08;join&#xff09;表。联结是SQL的SELECT能执行的最重要的操作&#xff0c;理解联结及其语法是学习SQL的…

每天40分玩转Django:实操 Todo List应用

实操 Todo List应用 一、今日学习内容概述 学习模块重要程度预计学时主要内容项目初始化⭐⭐⭐⭐0.5小时创建项目、配置环境模型设计⭐⭐⭐⭐⭐1小时Todo模型设计与实现CRUD视图⭐⭐⭐⭐⭐2小时实现增删改查功能模板开发⭐⭐⭐⭐1.5小时页面布局与交互设计功能测试⭐⭐⭐1小时…

Freertos任务切换

一、操作系统进行任务切换的时机&#xff1a; 采用信号量实现任务的互斥&#xff1a; 二、FreeRTOS 任务切换场合 PendSV 中断的时候提到了上下文(任务)切换被触发的场合&#xff1a; ● 可以执行一个系统调用 ● 系统滴答定时器(SysTick)中断。 1、执行系统调用 执行系统…

【Linux】自定义项目-进度条

更多精彩内容..... &#x1f389;❤️播主の主页✨&#x1f618; Stark、-CSDN博客 准备工作&#xff1a;"\r"与"\n"字符 ①&#xff1a;基本含义 在C语言和Linux环境中&#xff0c;\r是回车符&#xff0c;\n是换行符&#xff0c;用于控制文本格式和输出…

【ubuntu24.04】PDFMathTranslate 本地PDF翻译GPU部署

https://huggingface.co/spaces/reycn/PDFMathTranslate-Docker排不上号官方都是要安装包,感觉可以本地试着源码部署一下, http://localhost:7860/官方是这个端口,但是我本地启动是:5000IDEA 里本地 backend启动效果 GUI 是监听7860的

基于卷积神经网络的垃圾分类系统实现(GUI应用)

1.摘要 本文主要实现了一个卷积神经网络模型进行垃圾图像分类&#xff0c;为了提高垃圾分类模型的准确率&#xff0c;使用使用Batch Normalization层、使用早期停止策略来防止过拟合等方法来优化模型&#xff0c;实验结果显示最终优化后的模型准确率较高90%左右。最终&#xf…