Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Kaggle免费GPU使用攻略

Kaggle免费GPU使用攻略

作者头像
lyhue1991
发布于 2023-02-23 04:03:56
发布于 2023-02-23 04:03:56
5.1K00
代码可运行
举报
运行总次数:0
代码可运行

公众号后台回复关键词:gpu,获取B站视频演示教程。

一,注册Kaggle

在国内使用邮箱注册kaggle时会遇到一个人机验证的步骤,可以通过翻墙访问外网的方式完成,但比较麻烦。

推荐使用FireFox浏览器,下载Header Editor进行解决,无需翻墙相对简单。

1,下载安装FireFox浏览器

2,添加Header Editor浏览器插件【找到FireFox浏览器的 工具 -> 扩展和主题 —> 搜索 Header Editor -> 添加到FireFox】

3,配置Header Editor插件【找到FireFox右上角Header Editor -> 导出和导入 -> 下载规则中输入如下规则url -> 点击向下箭头加载 】

规则url: https://azurezeng.github.io/static/HE-GoogleRedirect.json

4,在kaggle官网用邮箱正常注册kaggle即可。

kaggle官网:https://www.kaggle.com/

5,此后就可以在任何能联网的地方正常登录kaggle,不再需要Header Editor了

二,设置GPU

1,新建notebook. 【点击kaggle主页面左上角+, 选择notebook】

2,开启GPU开关。【点击展开notebook右上角 |< 设置,设置Accelerator为GPU 】

3,查看GPU信息。【NoteBook中使用 nvidia-smi查看】

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
!nvidia-smi 
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import torch 
torch.cuda.is_available() 

三,上传数据

1,点击展开notebook右上角 |< 设置,找到 Add Data,可以从Kaggle社区发布的数据集中选择一些想要的数据集。

2,也可以选在代表上传的向上箭头,上传数据集文件作为自定义数据集。建议压缩后上传,传输效率较高。

3,此外,也可以通过把数据放在github项目中,用git clone的方式获取。

4,notebook加载进来数据集后,可以在右边数据文件位置点击获取对应路径。

公众号 算法美食屋 回复关键词:pytorch, 获取本范例所用数据集eat_pytorch_datasets百度云盘下载链接。

四,CPU训练代码

约14s一个Epoch

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import torch 
from torch import nn
from torch.utils.data import Dataset,DataLoader
from torchvision import transforms as T
from torchvision import datasets 


#======================================================================
# 一,准备数据
#======================================================================

transform_img = T.Compose(
    [T.ToTensor()])

def transform_label(x):
    return torch.tensor(x)

ds_train = datasets.ImageFolder("../input/eat-pytorch-datasets/eat_pytorch_datasets/cifar2/train/",
            transform = transform_img,target_transform = transform_label)
ds_val = datasets.ImageFolder("../input/eat-pytorch-datasets/eat_pytorch_datasets/cifar2/test/",
            transform = transform_img,target_transform = transform_label)
print(ds_train.class_to_idx)

dl_train = DataLoader(ds_train,batch_size = 50,shuffle = True, pin_memory=True, num_workers = 8)
dl_val = DataLoader(ds_val,batch_size = 50,shuffle = False, pin_memory=True, num_workers = 8)


%matplotlib inline
%config InlineBackend.figure_format = 'svg'

#查看部分样本
from matplotlib import pyplot as plt 

plt.figure(figsize=(8,8)) 
for i in range(9):
    img,label = ds_train[i]
    img = img.permute(1,2,0) 
    ax=plt.subplot(3,3,i+1)
    ax.imshow(img.numpy())
    ax.set_title("label = %d"%label.item())
    ax.set_xticks([])
    ax.set_yticks([]) 
plt.show()

# Pytorch的图片默认顺序是 Batch,Channel,Width,Height
for features,labels in dl_train:
    print(features.shape,labels.shape) 
    break
    
    
    

#======================================================================
# 二,定义模型
#======================================================================

class Net(nn.Module):
    
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(in_channels=3,out_channels=32,kernel_size = 3)
        self.pool = nn.MaxPool2d(kernel_size = 2,stride = 2)
        self.conv2 = nn.Conv2d(in_channels=32,out_channels=64,kernel_size = 5)
        self.dropout = nn.Dropout2d(p = 0.1)
        self.adaptive_pool = nn.AdaptiveMaxPool2d((1,1))
        self.flatten = nn.Flatten()
        self.linear1 = nn.Linear(64,32)
        self.relu = nn.ReLU()
        self.linear2 = nn.Linear(32,2)
        
    def forward(self,x):
        x = self.conv1(x)
        x = self.pool(x)
        x = self.conv2(x)
        x = self.pool(x)
        x = self.dropout(x)
        x = self.adaptive_pool(x)
        x = self.flatten(x)
        x = self.linear1(x)
        x = self.relu(x)
        x = self.linear2(x)
        return x 
        
net = Net()
print(net)




#======================================================================
# 三,训练模型(CPU)
#======================================================================


import os,sys,time
import numpy as np
import pandas as pd
import datetime 
from tqdm import tqdm 

import torch
from torch import nn 
from copy import deepcopy
from torchmetrics import Accuracy
#注:多分类使用torchmetrics中的评估指标,二分类使用torchkeras.metrics中的评估指标

def printlog(info):
    nowtime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    print("\n"+"=========="*8 + "%s"%nowtime)
    print(str(info)+"\n")
    

net = Net()

loss_fn = nn.CrossEntropyLoss()
optimizer= torch.optim.Adam(net.parameters(),lr = 0.01)   
metrics_dict = {"acc":Accuracy()}

epochs = 5 
ckpt_path='checkpoint.pt'

#early_stopping相关设置
monitor="val_acc"
patience=3
mode="max"

history = {}

for epoch in range(1, epochs+1):
    printlog("Epoch {0} / {1}".format(epoch, epochs))

    # 1,train -------------------------------------------------  
    net.train()
    
    total_loss,step = 0,0
    
    loop = tqdm(enumerate(dl_train), total =len(dl_train))
    train_metrics_dict = deepcopy(metrics_dict) 
    
    for i, batch in loop: 
        
        features,labels = batch
        #forward
        preds = net(features)
        loss = loss_fn(preds,labels)
        
        #backward
        loss.backward()
        optimizer.step()
        optimizer.zero_grad()
            
        #metrics
        step_metrics = {"train_"+name:metric_fn(preds, labels).item() 
                        for name,metric_fn in train_metrics_dict.items()}
        
        step_log = dict({"train_loss":loss.item()},**step_metrics)

        total_loss += loss.item()
        
        step+=1
        if i!=len(dl_train)-1:
            loop.set_postfix(**step_log)
        else:
            epoch_loss = total_loss/step
            epoch_metrics = {"train_"+name:metric_fn.compute().item() 
                             for name,metric_fn in train_metrics_dict.items()}
            epoch_log = dict({"train_loss":epoch_loss},**epoch_metrics)
            loop.set_postfix(**epoch_log)

            for name,metric_fn in train_metrics_dict.items():
                metric_fn.reset()
                
    for name, metric in epoch_log.items():
        history[name] = history.get(name, []) + [metric]
        

    # 2,validate -------------------------------------------------
    net.eval()
    
    total_loss,step = 0,0
    loop = tqdm(enumerate(dl_val), total =len(dl_val))
    
    val_metrics_dict = deepcopy(metrics_dict) 
    
    with torch.no_grad():
        for i, batch in loop: 

            features,labels = batch
            
            #forward
            preds = net(features)
            loss = loss_fn(preds,labels)

            #metrics
            step_metrics = {"val_"+name:metric_fn(preds, labels).item() 
                            for name,metric_fn in val_metrics_dict.items()}

            step_log = dict({"val_loss":loss.item()},**step_metrics)

            total_loss += loss.item()
            step+=1
            if i!=len(dl_val)-1:
                loop.set_postfix(**step_log)
            else:
                epoch_loss = (total_loss/step)
                epoch_metrics = {"val_"+name:metric_fn.compute().item() 
                                 for name,metric_fn in val_metrics_dict.items()}
                epoch_log = dict({"val_loss":epoch_loss},**epoch_metrics)
                loop.set_postfix(**epoch_log)

                for name,metric_fn in val_metrics_dict.items():
                    metric_fn.reset()
                    
    epoch_log["epoch"] = epoch           
    for name, metric in epoch_log.items():
        history[name] = history.get(name, []) + [metric]

    # 3,early-stopping -------------------------------------------------
    arr_scores = history[monitor]
    best_score_idx = np.argmax(arr_scores) if mode=="max" else np.argmin(arr_scores)
    if best_score_idx==len(arr_scores)-1:
        torch.save(net.state_dict(),ckpt_path)
        print("<<<<<< reach best {0} : {1} >>>>>>".format(monitor,
             arr_scores[best_score_idx]),file=sys.stderr)
    if len(arr_scores)-best_score_idx>patience:
        print("<<<<<< {} without improvement in {} epoch, early stopping >>>>>>".format(
            monitor,patience),file=sys.stderr)
        break 
    net.load_state_dict(torch.load(ckpt_path))
    
dfhistory = pd.DataFrame(history)



五,GPU训练代码

约8s一个Epoch.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import torch 
from torch import nn
from torch.utils.data import Dataset,DataLoader
from torchvision import transforms as T
from torchvision import datasets 


#======================================================================
# 一,准备数据
#======================================================================

transform_img = T.Compose(
    [T.ToTensor()])

def transform_label(x):
    return torch.tensor(x)

ds_train = datasets.ImageFolder("../input/eat-pytorch-datasets/eat_pytorch_datasets/cifar2/train/",
            transform = transform_img,target_transform = transform_label)
ds_val = datasets.ImageFolder("../input/eat-pytorch-datasets/eat_pytorch_datasets/cifar2/test/",
            transform = transform_img,target_transform = transform_label)
print(ds_train.class_to_idx)

dl_train = DataLoader(ds_train,batch_size = 50,shuffle = True, pin_memory=True, num_workers = 8)
dl_val = DataLoader(ds_val,batch_size = 50,shuffle = False, pin_memory=True, num_workers = 8)



%matplotlib inline
%config InlineBackend.figure_format = 'svg'

#查看部分样本
from matplotlib import pyplot as plt 

plt.figure(figsize=(8,8)) 
for i in range(9):
    img,label = ds_train[i]
    img = img.permute(1,2,0) 
    ax=plt.subplot(3,3,i+1)
    ax.imshow(img.numpy())
    ax.set_title("label = %d"%label.item())
    ax.set_xticks([])
    ax.set_yticks([]) 
plt.show()

# Pytorch的图片默认顺序是 Batch,Channel,Width,Height
for features,labels in dl_train:
    print(features.shape,labels.shape) 
    break
    
    
    

#======================================================================
# 二,定义模型
#======================================================================

class Net(nn.Module):
    
    def __init__(self):
        super(Net, self).__init__()
        self.conv1 = nn.Conv2d(in_channels=3,out_channels=32,kernel_size = 3)
        self.pool = nn.MaxPool2d(kernel_size = 2,stride = 2)
        self.conv2 = nn.Conv2d(in_channels=32,out_channels=64,kernel_size = 5)
        self.dropout = nn.Dropout2d(p = 0.1)
        self.adaptive_pool = nn.AdaptiveMaxPool2d((1,1))
        self.flatten = nn.Flatten()
        self.linear1 = nn.Linear(64,32)
        self.relu = nn.ReLU()
        self.linear2 = nn.Linear(32,2)
        
    def forward(self,x):
        x = self.conv1(x)
        x = self.pool(x)
        x = self.conv2(x)
        x = self.pool(x)
        x = self.dropout(x)
        x = self.adaptive_pool(x)
        x = self.flatten(x)
        x = self.linear1(x)
        x = self.relu(x)
        x = self.linear2(x)
        return x 
        
net = Net()
print(net)




#======================================================================
# 三,训练模型(CPU)
#======================================================================


import os,sys,time
import numpy as np
import pandas as pd
import datetime 
from tqdm import tqdm 

import torch
from torch import nn 
from copy import deepcopy
from torchmetrics import Accuracy
#注:多分类使用torchmetrics中的评估指标,二分类使用torchkeras.metrics中的评估指标

def printlog(info):
    nowtime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
    print("\n"+"=========="*8 + "%s"%nowtime)
    print(str(info)+"\n")
    

net = Net()

loss_fn = nn.CrossEntropyLoss()
optimizer= torch.optim.Adam(net.parameters(),lr = 0.01)   
metrics_dict = {"acc":Accuracy()}


#------------------------------移动模型到GPU------------------------------
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
net.to(device)
loss_fn.to(device)
for name,fn in metrics_dict.items():
    fn.to(device)
#-------------------------------------------------------------------------


epochs = 5
ckpt_path='checkpoint.pt'

#early_stopping相关设置
monitor="val_acc"
patience=3
mode="max"

history = {}

for epoch in range(1, epochs+1):
    printlog("Epoch {0} / {1}".format(epoch, epochs))

    # 1,train -------------------------------------------------  
    net.train()
    
    total_loss,step = 0,0
    
    loop = tqdm(enumerate(dl_train), total =len(dl_train))
    train_metrics_dict = deepcopy(metrics_dict) 
    
    for i, batch in loop: 
        
        features,labels = batch
        
        #------------------------------移动数据到GPU------------------------------
        features = features.to(device)
        labels = labels.to(device)
        #-------------------------------------------------------------------------
        
        #forward
        preds = net(features)
        loss = loss_fn(preds,labels)
        
        #backward
        loss.backward()
        optimizer.step()
        optimizer.zero_grad()
            
        #metrics
        step_metrics = {"train_"+name:metric_fn(preds, labels).item() 
                        for name,metric_fn in train_metrics_dict.items()}
        
        step_log = dict({"train_loss":loss.item()},**step_metrics)

        total_loss += loss.item()
        
        step+=1
        if i!=len(dl_train)-1:
            loop.set_postfix(**step_log)
        else:
            epoch_loss = total_loss/step
            epoch_metrics = {"train_"+name:metric_fn.compute().item() 
                             for name,metric_fn in train_metrics_dict.items()}
            epoch_log = dict({"train_loss":epoch_loss},**epoch_metrics)
            loop.set_postfix(**epoch_log)

            for name,metric_fn in train_metrics_dict.items():
                metric_fn.reset()
                
    for name, metric in epoch_log.items():
        history[name] = history.get(name, []) + [metric]
        

    # 2,validate -------------------------------------------------
    net.eval()
    
    total_loss,step = 0,0
    loop = tqdm(enumerate(dl_val), total =len(dl_val))
    
    val_metrics_dict = deepcopy(metrics_dict) 
    
    with torch.no_grad():
        for i, batch in loop: 

            features,labels = batch
            
            #------------------------------移动数据到GPU------------------------------
            features = features.to(device)
            labels = labels.to(device)
            #-------------------------------------------------------------------------
            
            #forward
            preds = net(features)
            loss = loss_fn(preds,labels)

            #metrics
            step_metrics = {"val_"+name:metric_fn(preds, labels).item() 
                            for name,metric_fn in val_metrics_dict.items()}

            step_log = dict({"val_loss":loss.item()},**step_metrics)

            total_loss += loss.item()
            step+=1
            if i!=len(dl_val)-1:
                loop.set_postfix(**step_log)
            else:
                epoch_loss = (total_loss/step)
                epoch_metrics = {"val_"+name:metric_fn.compute().item() 
                                 for name,metric_fn in val_metrics_dict.items()}
                epoch_log = dict({"val_loss":epoch_loss},**epoch_metrics)
                loop.set_postfix(**epoch_log)

                for name,metric_fn in val_metrics_dict.items():
                    metric_fn.reset()
                    
    epoch_log["epoch"] = epoch           
    for name, metric in epoch_log.items():
        history[name] = history.get(name, []) + [metric]

    # 3,early-stopping -------------------------------------------------
    arr_scores = history[monitor]
    best_score_idx = np.argmax(arr_scores) if mode=="max" else np.argmin(arr_scores)
    if best_score_idx==len(arr_scores)-1:
        torch.save(net.state_dict(),ckpt_path)
        print("<<<<<< reach best {0} : {1} >>>>>>".format(monitor,
             arr_scores[best_score_idx]),file=sys.stderr)
    if len(arr_scores)-best_score_idx>patience:
        print("<<<<<< {} without improvement in {} epoch, early stopping >>>>>>".format(
            monitor,patience),file=sys.stderr)
        break 
    net.load_state_dict(torch.load(ckpt_path))
    
dfhistory = pd.DataFrame(history)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-09-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法美食屋 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
谷歌认真起来,就没 OpenAI 什么事了!创始人亲自组队创建“杀手级”多模态 AI 模型
谷歌正在计划如何利用即将推出的大型语言模型系列 Gemini 来取代 ChatGPT。
深度学习与Python
2023/09/08
3140
谷歌认真起来,就没 OpenAI 什么事了!创始人亲自组队创建“杀手级”多模态 AI 模型
谷歌全面反攻 ChatGPT!PaLM 2、Gemini 双杀,Bard 正式开放
这是 Google 不能输的战役,也是全面 AI 的时刻,一场演讲,Google CEO Sundar Pichai 提了不下 25 次的「AI」。 作者 | 袁滚滚       责编 | 唐小引 出品 | CSDN(ID:CSDNnews) 前几日,在 Google 官方发布的文章中提到,「自 2008 年 Google 首次举办 I/O 大会,已经过去了整整十五年。」 在过去的十五年中,Google 作为全球一直领先的科技公司,深刻影响了全世界互联网产业的格局与发展方向。每年一度 I/O 大会(除
博文视点Broadview
2023/05/13
4020
谷歌全面反攻 ChatGPT!PaLM 2、Gemini 双杀,Bard 正式开放
新大模型能超GPT-4,Bard全面升级,谷歌反击ChatGPT
机器之心报道 机器之心编辑部 连今年的安卓 14 上都有生成式 AI,还不止一种。 一年一度的谷歌 I/O 总是吸引着全球开发者的眼球,今年 AI 技术有重大突破,大家的关注度更高了。 当地时间 5 月 10 日上午,加州山景城的海岸圆形剧场座无虚席,今年的大会正式开幕。 ‍ 「AI 正在度过忙碌的一年,而谷歌作为人工智能优先公司的旅程已经七年了,我们正处于一个转折点,」谷歌首席执行官桑达尔・皮查伊(Sundar Pichai)说道。「通过生成式 AI 技术,我们正在迈出下一步。」 在 ChatGPT 推
机器之心
2023/05/16
3420
新大模型能超GPT-4,Bard全面升级,谷歌反击ChatGPT
挑战ChatGPT,谷歌正式发布Bard,CEO亲自下场邀请测试
机器之心报道 机器之心编辑部 虽然完成仍需要「几周时间」,但产品已经邀请测试了。 我们可能正在见证科技领域前所未有的变革。 北京时间2月7日凌晨,谷歌CEO桑达尔·皮查伊(Sundar Pichai)在人们的预料之外突然发布了谷歌的下一代对话AI系统Bard。 自ChatGPT大火之后,最近科技领域各家大厂在AI领域均有一系列动作,人们也格外期待龙头老大谷歌的应对。正如之前内部传来的消息,谷歌新产品名为Bard,为公司内部「code red」优先级项目,对标的正是OpenAI风头正劲的ChatGPT,宣布
机器之心
2023/02/23
2310
挑战ChatGPT,谷歌正式发布Bard,CEO亲自下场邀请测试
谷歌PaLM 2细节曝光:3.6万亿token,3400亿参数
金磊 发自 凹非寺 量子位 | 公众号 QbitAI 谷歌最新大语言模型PaLM 2,更细节内幕被曝出来了! 据CNBC爆料,训练它所用到的token数量多达3.6万亿。 这是什么概念? 要知道,在去年谷歌发布PaLM时,训练token的数量也仅为7800亿。 四舍五入算下来,PaLM 2足足是它前身的近5倍! (token本质是字符串,是训练大语言模型的关键,可以教会模型预测序列中出现的下一个单词。) 不仅如此,当时谷歌发布PaLM 2时,只是提到“新模型比以前的LLM更小”。 而内部文件则是将具体数
量子位
2023/05/19
3950
谷歌PaLM 2细节曝光:3.6万亿token,3400亿参数
一文读懂2023谷歌I/O大会
来自开发者和媒体的参会者早早聚集于沙滩安菲剧场,这座位于谷歌硅谪总部隔壁的露天剧场。与过去两年属人文主题且新品少的IO大会不同,今年的谷歌显然下足了功夫。今年的IO事件上无论在AI更新还是全新硬件产品方面,可以说是近几年来少有的科技盛会。
AiCharm
2023/05/16
7070
一文读懂2023谷歌I/O大会
谷歌打响全面反击战!官宣AI重构搜索、新模型比肩GPT-4,朝着ChatGPT微软开炮
明敏 丰色 发自 凹非寺 量子位 | 公众号 QbitAI 万众瞩目,谷歌的反击来了。 现在,谷歌搜索终于要加入AI对话功能了,排队通道已经开放。 当然这还只是第一步。 大的还在后面: 全新大语言模型PaLM 2正式亮相,谷歌声称它在部分任务超越GPT-4。 Bard能力大更新,不用再排队等候,并支持新语言。 谷歌版AI办公助手也一并推出,将在Gmail中抢先亮相。 谷歌云也上线多个基础大模型,为行业提供更进一步的生成式AI服务…… 在最新一届I/O开发者大会上,谷歌的大放送真的太震撼。 有网友直呼: A
量子位
2023/05/12
5250
谷歌打响全面反击战!官宣AI重构搜索、新模型比肩GPT-4,朝着ChatGPT微软开炮
今晚,谷歌对决微软,Bard 与 ChatGPT 的比赛正式开始
作者 | 孙溥茜 编辑 | 岑峰 1 谷歌今晚“姗姗来迟” “谷歌会在一两年内被彻底颠覆”,本月初Gmail的缔造者保罗·布赫海特(Paul Buchheit )在推特上公开谈论。 北京时间2月8日凌晨,微软举行发布会,正式推出由ChatGPT支持的最新版本Bing搜索引擎和Edge浏览器,新版Bing将借助ChatGPT,回答用户具有上下文内容的答案。桌面版已开启试用,手机版也即将来临。 保罗表示,当人们的搜索需求能够被封装好的、语义清晰的答案满足,搜索广告将会没有生存余地。而谷歌迄今仍是一家有超过50
AI科技评论
2023/02/23
3370
今晚,谷歌对决微软,Bard 与 ChatGPT 的比赛正式开始
谷歌一雪前耻!全新PaLM 2反超GPT-4,办公全家桶炸裂升级,Bard史诗进化
---- 新智元报道   编辑:编辑部 【新智元导读】新版PaLM 2超强进化,办公全家桶Workspace全面升级,Bard全面增强、所有人可用……可以看出,这届I/O大会,谷歌是真的憋出不少大招。 谷歌I/O 2023大会,仿佛又给谷歌的支持者们打了一针强心剂。 此前,因为微软和OpenAI的优异表现,谷歌已经被唱衰了很久。 但是,毕竟是做出了众多奠基性工作的AI老牌公司,谷歌这一轮的发力,让我们精神一振——它只是慢了,并不是噶了。 对打GPT-4的PaLM 2登台、Duet AI整进谷歌办公
新智元
2023/05/15
4110
谷歌一雪前耻!全新PaLM 2反超GPT-4,办公全家桶炸裂升级,Bard史诗进化
谷歌急推ChatGPT「高仿」学徒巴德!劈柴悔到吐血,誓要重夺AI「老大哥」地位
---- 新智元报道   编辑:编辑部 【新智元导读】ChatGPT终于还是把谷歌逼到墙角了。现在的高层,闭口不提什么「声誉风险」,加紧推出「同款」聊天机器人和ChatGPT硬刚! 「出道」几个月,ChatGPT已经大红大紫,成功让自己站在了全世界聚光灯的焦点下。 坐拥OpenAI的微软,也是十分硬气,接连给谷歌暴击——前脚刚表示ChatGPT即将整合进自家搜索引擎必应,后脚就放出ChatGPT计划加入Office「办公全家桶」这个重磅炸弹。 对手步步紧逼,谷歌的AI「老大哥」地位眼看不保。 终于,
新智元
2023/02/24
4040
谷歌急推ChatGPT「高仿」学徒巴德!劈柴悔到吐血,誓要重夺AI「老大哥」地位
谷歌DeepMind联手复仇!Jeff Dean、Hassabis万字长文总结2023绝地反击
刚刚,Jeff Dean和Hassabis联手发文,一同回顾了Google Research和Google DeepMind在2023年的全部成果。
新智元
2023/12/28
2000
谷歌DeepMind联手复仇!Jeff Dean、Hassabis万字长文总结2023绝地反击
谷歌Bard:ChatGPT之外的第三选择
2023年年初,为了对应ChatGPT方面的压力,谷歌Bard仓促上线,此后便进入了低调前行。目前为止已经迭代了9个版本,也就是在近期的版本更新中支持了中文(简体/繁体)语言,对国内用户可以说又友好了一步。
MavenTalker
2023/09/06
3760
谷歌Bard:ChatGPT之外的第三选择
谷歌的又一波反击!开放大语言模型PaLM API
机器之心报道 编辑:小洲 事到如今,OpenAI 的 ChatGPT 在 AI 社区的统治地位已经无需多言。特别是 OpenAI 开放 ChatGPT 的 API 之后,在开发者社区掌握了极大的话语权。 反观谷歌那边,在第一波发布 Bard 失利之后,一直处于沉默状态。 但在今日,谷歌组织了第二波反击:开放自家的大语言模型 API 「PaLM API」,此外今天谷歌还发布了一款帮助开发者快速构建 AI 程序的工具 MakerSuite。谷歌表示,此举是为了帮助开发者们快速构建生成式 AI 应用。 但略为
机器之心
2023/03/29
4180
谷歌的又一波反击!开放大语言模型PaLM API
谷歌全新PaLM-2,效果并未超越GPT-4!
刚刚在Google I/O 大会上,Google发布PaLM2及超过 25 款由 PaLM 2 提供支持的新产品和功能。这意味着 PaLM 2 将最新的高级人工智能功能直接引入我们的产品和人们——包括全球消费者、开发人员和各种规模的企业。它的能力到底怎么样?让我们详细的看一看。
对白
2023/09/01
6680
谷歌全新PaLM-2,效果并未超越GPT-4!
集 8 万员工之力, Google 开放 Bard,我们将它和 ChatGPT 正面 PK 了一下
整理 | 梦依丹      出品 | CSDN(ID:CSDNnews) 2023 年的科技狂欢是 AI 给的,AI 的新闻头条是一个接着一个:Google 开放 Bard;NVIDIA推出了云工具,用于生成式人工智能;Adobe发布 Firefly,AI  图像创建工具;微软发布 Bing 图像创建器,GitHub 发布 Copilot X,开发人员动动嘴就能生成代码…… Google 开放 Bard Google 内测已久的 AI 对话服务 Bard 终于可以公开体验了,目前只有英国和美国用户可以申
AI科技大本营
2023/04/06
4090
集 8 万员工之力, Google 开放 Bard,我们将它和 ChatGPT 正面 PK 了一下
谷歌·Bard“史诗级”更新:定制化的中文服务,开放图像分析功能
今年三月份,谷歌宣布生成式AI Bard推出Beta测试版,当时的版本只面向美国和英国用户开放公测,且暂时只支持英语。
大数据文摘
2023/08/08
3780
谷歌·Bard“史诗级”更新:定制化的中文服务,开放图像分析功能
谷歌Gemini Ultra 大会员:每月19.99美元
北京时间 2 月 8 日晚,随着桑达尔・皮查伊(Sundar Pichai)的一声宣布,谷歌大模型体系全面进入了 Gemini 时代,并带来最新的 Gemini Ultra 模型。
机器之心
2024/02/26
3120
谷歌Gemini Ultra 大会员:每月19.99美元
杠上Google I/O?OpenAI抢先一天直播,ChatGPT或将具备通话功能
当地时间 5 月 13 日,OpenAI 将直播发布 ChatGPT 与 GPT-4 的更新。次日,Google I/O 如约而至。不同于 I/O 大会是谷歌的年度盛会,OpenAI 此次的临时发布颇有点抢热度的意思。这对纠缠已久的「老对头」此次又会如何出招呢?我们不妨来一起回顾一下双方的渊源,并进行大胆猜想!
HyperAI超神经
2024/05/13
1620
杠上Google I/O?OpenAI抢先一天直播,ChatGPT或将具备通话功能
向微软宣战!谷歌类ChatGPT装进办公「全家桶」,升级版Big Bard加急测试
---- 新智元报道   编辑:桃子 【新智元导读】这场AI大战,谷歌还有翻身的机会吗? GPT-4横空出世,让微软又双叒赢麻了! 就在同一天,谷歌向微软再开战,一口气来了个全套的: - 开放大语言模型PaLM API & MakerSuite - 生成式AI装进谷歌Workspace全家桶 - 生成式AI支持Vertex AI平台 - 新平台Generative AI App Builder 发布了这么多,足见谷歌一时的恐慌。 挑战GPT-4!PaLM API 发布 谷歌首次正式开放其PaLM
新智元
2023/03/29
1.4K0
向微软宣战!谷歌类ChatGPT装进办公「全家桶」,升级版Big Bard加急测试
谷歌发布 Gemini:我们还是一家强大的公司
过去半年, 在OpenAI 持续迭代,不断赚足大众视线之际,谷歌迟迟没有发声。直至今日凌晨,谷歌直接丢出了一个重磅炸弹,带着耗时一年之久的多模态模型 Gemini 来了。
AI科技评论
2023/12/11
3430
谷歌发布 Gemini:我们还是一家强大的公司
推荐阅读
谷歌认真起来,就没 OpenAI 什么事了!创始人亲自组队创建“杀手级”多模态 AI 模型
3140
谷歌全面反攻 ChatGPT!PaLM 2、Gemini 双杀,Bard 正式开放
4020
新大模型能超GPT-4,Bard全面升级,谷歌反击ChatGPT
3420
挑战ChatGPT,谷歌正式发布Bard,CEO亲自下场邀请测试
2310
谷歌PaLM 2细节曝光:3.6万亿token,3400亿参数
3950
一文读懂2023谷歌I/O大会
7070
谷歌打响全面反击战!官宣AI重构搜索、新模型比肩GPT-4,朝着ChatGPT微软开炮
5250
今晚,谷歌对决微软,Bard 与 ChatGPT 的比赛正式开始
3370
谷歌一雪前耻!全新PaLM 2反超GPT-4,办公全家桶炸裂升级,Bard史诗进化
4110
谷歌急推ChatGPT「高仿」学徒巴德!劈柴悔到吐血,誓要重夺AI「老大哥」地位
4040
谷歌DeepMind联手复仇!Jeff Dean、Hassabis万字长文总结2023绝地反击
2000
谷歌Bard:ChatGPT之外的第三选择
3760
谷歌的又一波反击!开放大语言模型PaLM API
4180
谷歌全新PaLM-2,效果并未超越GPT-4!
6680
集 8 万员工之力, Google 开放 Bard,我们将它和 ChatGPT 正面 PK 了一下
4090
谷歌·Bard“史诗级”更新:定制化的中文服务,开放图像分析功能
3780
谷歌Gemini Ultra 大会员:每月19.99美元
3120
杠上Google I/O?OpenAI抢先一天直播,ChatGPT或将具备通话功能
1620
向微软宣战!谷歌类ChatGPT装进办公「全家桶」,升级版Big Bard加急测试
1.4K0
谷歌发布 Gemini:我们还是一家强大的公司
3430
相关推荐
谷歌认真起来,就没 OpenAI 什么事了!创始人亲自组队创建“杀手级”多模态 AI 模型
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验