自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 Rust学习(十):计算机科学简述

我们需要知道计算机科学难以有一个简单明确的定义。名称里的“计算机”一词常常让人产生误解,以为它只是单纯地研究计算机本身。其实并非如此,计算机只是一个重要工具。计算机科学的重点在于对问题、解决方案以及产生方案的过程的探究。当面对给定的问题时,计算机科学家致力于开发通用算法,只要依照这些算法,就能在有限时间内解决类似问题。从这个角度来看,计算机科学很大程度上就是对算法的研究。但要注意,不是所有问题都有现成的解决算法,像 NPC 问题就是目前还未攻克的难题。

2024-11-26 20:46:35 1114

原创 Rust学习(九):密码生成器

到目前为止,我们已经介绍了不少Rust基础内容,虽然还有很多知识难以覆盖,但是,我们依然可以以一个Rust项目来深入了解和掌握,Rust构建项目的哲学。我们将在下面编写一个生成密码的命令行工具,可以通过seed参数控制生成密码的账户,通过length参数来控制生成密码的长度,默认长度是16位。

2024-11-25 10:51:48 474

原创 Rust学习(八):异常处理和宏编程:

异常处理是任何编程语言都会遇到的现象,Rust并没有像其他变成语言一样提供了try catch这样的异常处理方法,而是提供了一种独特的异常处理机制。这里需要指明的是作者在书中将Rust中的失败、错误、异常等统称为异常,Rust中的异常有4种:Option, Result, Panic和Abort。Option用于应对可能的失败情况,Rust使用Some和None来表示是否失败,以获取值为例:如果没有获取到值,就会返回None作为返回值,这时不需要报错,只需要依据情况处理即可。

2024-11-22 21:08:06 950

原创 Rust学习(七):智能指针

作为一种编程语言,Rust中最常见的指针类型就是引用,而引用只是一种普通指针,除引用数据之外,没有其他功能。为了更方便的处理复杂的结构数据,有必要在开始我们的算法之旅前,介绍Rust中智能指针的概率,当然,这里我们只会简单的介绍一些常用的智能指针,如果大家对此感到困惑,或者是想进一步深入的学习智能指针的设计哲学,建议阅读其Rust学习资料(doge)。智能指针是一种数据结构,其行为类似于指针,含有元数据,在大部分情况下拥有数据的所有权,提供内存管理或绑定等附加功能,如管理文件句柄和网络链接。

2024-11-20 22:32:50 997

原创 Rust学习(六):函数式编程

我们在前一篇博客中已经介绍了如何通过trait和impl实现Rust的面向对象编程,但是Rust本身实际上并不提倡通过类来解决问题。Rust推崇的是函数式编程,强调将函数作为参数值或者其他函数的返回值,将函数赋值给变量之后在继续执行。其中最重要的两个概念就是:闭包函数和迭代器。

2024-11-18 21:33:29 1177

原创 Rust学习(五):泛型、trait

完成函数的重载之后,就可以正常对两个f64类型的变量使用add()方法进行加法运算了!但是,如果我们要为所有数值类型的变量都实现这样一个add函数,难道要逐个类型的进行函数重载吗?那整个代码将变得过于冗余和难以管理,在Rust中为了处理这种重复性的问题,引出了泛型的概念。

2024-11-15 22:43:56 706

原创 Rust学习(四):作用域、所有权和生命周期:

所有权机制是Rust中的内存管理手段,类似于python中的垃圾回收机制或者是C/C++中的手动释放内存,Rust的编译器会根据一系列规则进行检查,倘若违反了规则,程序连编译器都无法通过(也造就了C/C++编译之后无法允许,Rust无法编译的梗)。每个值只有一个所有者值在任意时刻都只有一个所有者当所有者离开作用域时,值会被自动丢弃。// 设置一个临时作用域:let a = 5;println!("a的值为:{}", a);

2024-11-14 09:01:52 1078

原创 Rust学习(三):rust基础Ⅱ

上一篇文章,我们了解了什么是变量,常量,数据类型等Rust中的基础知识,本篇文章,将进一步介绍Rust的有关基础知识,帮助读者更好的理解rust的编程哲学。

2024-11-12 20:26:03 527

原创 Rust学习(二):rust基础语法Ⅰ

很多关键字和其他编程语言种的关键字功能类似,比如:for,move,if等,但是也有一些独特的关键字,体现了语言的设计者的精妙构思,比如match在Rust种功能强大,但是在C/C++中对应的switch的功能就相对偏弱。

2024-11-11 23:00:08 831

原创 Rust学习(一):初识Rust和Rust环境配置

本系列文章将围绕《Rust数据结构与算法》一书展开,以书中的十章目录为基础,衍生一系列介绍Rust算法逻辑的博客(内容如下):第一章:Rust基础:第二章:计算机科学(概述):第三章:算法分析:第四章:基础数据结构:第五章:递归:第六章:查找:第七章:排序:第八章:树:第九章:图:第十章:实战:下面让我们正式开始Rust之旅吧,首先来了解一下Rust的历史,并在自己的计算机上安装上Rust的环境和工具链!

2024-11-10 22:17:12 1117

原创 ChatGPT成功背后的秘密——RLHF,北京大学NLP团队的论文详解来了

人工智能对齐(AIAlignment) 旨在使人工智能系统的行为与人类的意图和价值观相一致。随着人工智能系统的能力日益增强,对齐失败带来的风险也在不断增加。数百位人工智能专家和公众人物已经表达了对人工智能风险的担忧,他们认为“减轻人工智能带来的灭绝风险应该成为全球优先考虑的问题,与其他社会规模的风险如大流行病和核战争并列。”,为了提供对齐领域的全面和最新概述,由北京大学、剑桥大学、卡内基梅隆大学和香港中文大学等顶尖院校和独立学者深入探讨了对齐的核心概念、方法和实践。

2024-07-21 15:40:21 942

原创 昇思25天打卡营第25天|基于MoblieNetv2的垃圾分类

MobileNet网络是由Google团队于2017年提出的专注于移动端、嵌入式或IoT设备的轻量级CNN网络,相比于传统的卷积神经网络,MobileNet网络使用深度可分离卷积(Depthwise Separable Convolution)的思想在准确率小幅度降低的前提下,大大减小了模型参数与运算量。并引入宽度系数 α和分辨率系数 β使模型满足不同应用场景的需求。

2024-07-13 09:10:52 1219

原创 昇思25天学习打卡营第24天|MindSpore红酒分类实验

K近邻算法(K-Nearest-Neighbor, KNN)是一种用于分类和回归的非参数统计方法,最初由 Cover和Hart于1968年提出(Cover等人,1967),是机器学习最基础的算法之一。它正是基于以上思想:要确定一个样本的类别,可以计算它与所有训练样本的距离,然后找出和该样本最接近的k个样本,统计出这些样本的类别并进行投票,票数最多的那个类就是分类的结果。KNN的三个基本要素:K值,一个样本的分类是由K个邻居的“多数表决”确定的。K值越小,容易受噪声影响,反之,会使类别之间的界限变得模糊。

2024-07-12 14:44:50 1226

原创 昇思25天学习打卡营第23天|基于MindNLP+MusicGen生成自己的个性化音乐

与传统方法不同,MusicGen采用单个stage的Transformer LM结合高效的token交织模式,取消了多层级的多个模型结构,例如分层或上采样,这使得MusicGen能够生成单声道和立体声的高质量音乐样本,同时提供更好的生成输出控制。MusicGen不仅能够生成符合文本描述的音乐,还能够通过旋律条件控制生成的音调结构。

2024-07-11 15:02:06 789

原创 昇思25天打卡营第22天|RNN实现情感分类

最后我们设计一个预测函数,实现开头描述的效果,输入一句评价,获得评价的情感分类。将输入句子进行分词;使用词表获取对应的index id序列;index id序列转为Tensor;送入模型获得预测结果;打印输出预测结果。

2024-07-10 15:29:13 620

原创 昇思25天学习打卡营第21天|LSTM+CRF序列标注

序列标注指给定输入序列,给序列中每个Token进行标注标签的过程。序列标注问题通常用于从文本中进行信息抽取,包括分词(Word Segmentation)、词性标注(Position Tagging)、命名实体识别(Named Entity Recognition, NER)等。以命名实体识别为例:如上表所示,清华大学和北京是地名,需要将其识别,我们对每个输入的单词预测其标签,最后根据标签来识别实体。

2024-07-09 15:15:30 707

原创 昇思25天学习打卡营第20天|Vision Transformer

近些年,随着基于自注意(Self-Attention)结构的模型的发展,特别是Transformer模型的提出,极大地促进了自然语言处理模型的发展。由于Transformers的计算效率和可扩展性,它已经能够训练具有超过100B参数的空前规模的模型。ViT则是自然语言处理和计算机视觉两个领域的融合结晶。在不依赖卷积操作的情况下,依然可以在图像分类任务上达到很好的效果。

2024-07-08 23:24:12 871

原创 昇思25天学习打卡营第19天|SSD目标检测

SSD,全称Single Shot MultiBox Detector,是Wei Liu在ECCV 2016上提出的一种目标检测算法。使用Nvidia Titan X在VOC 2007测试集上,SSD对于输入尺寸300x300的网络,达到74.3%mAP(mean Average Precision)以及59FPS;对于512x512的网络,达到了76.9%mAP ,超越当时最强的Faster RCNN(73.2%mAP)。通过算法产生候选框,然后再对这些候选框进行分类和回归。

2024-07-07 16:46:02 953

原创 昇思25天学习打卡营第18天|ShuffleNet图像分类

ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型,和MobileNet, SqueezeNet等一样主要应用在移动端,所以模型的设计目标就是利用有限的计算资源来达到最好的模型精度。ShuffleNetV1的设计核心是引入了两种操作:Pointwise Group Convolution和Channel Shuffle,这在保持精度的同时大大降低了模型的计算量。因此,ShuffleNetV1和MobileNet类似,都是通过设计更高效的网络结构来实现模型的压缩和加速。

2024-07-06 15:18:29 1027

原创 昇思25天学习打卡营第17天|ChatGLM-6B聊天demo

本次实验,基于MindNLP和ChatGLM6B模型搭建一个小的聊天应用,ChatGLM6B 是基于 GLM-4 模型开发的开源对话机器人,拥有 62 亿个参数,能够进行自然流畅的语言交流。在对话中,ChatGLM6B 可以胜任文案写作、代码调试等任务,还能够根据用户需求进行角色扮演,满足用户在虚拟场景中的互动需求。同时,ChatGLM6B 也具备多模态理解能力,可以解析图片、视频等多种类型的信息,进一步拓展了其在实际应用中的场景。

2024-07-05 15:44:25 572

原创 昇思25天学习打卡营第16天|文本解码原理——以MindNLP为例

在大模型中,文本解码通常是指在自然语言处理(NLP)任务中使用的大型神经网络模型(如Transformer架构的模型)将编码后的文本数据转换回可读的原始文本的过程。这些模型在处理自然语言时,首先将输入文本(如一段话或一个句子)编码成高维空间中的向量表示,这些向量能够捕捉到文本的语义和上下文信息。在编码过程中,模型通过多层神经网络将文本的每个字符、单词或标记(token)转换成对应的向量。这些向量随后在模型的解码阶段被处理,以生成或选择最合适的序列来表示原始文本的含义。

2024-07-04 16:12:45 862

原创 昇思25天学习打卡营第15天|通过GPT实现情感分类

情感分类任务是自然语言处理(NLP)中的一个重要应用,旨在通过分析文本中的情感倾向,将其分类为正面、负面或中性等情感类别。这一任务通常涉及使用机器学习或深度学习模型,如卷积神经网络(CNN)、循环神经网络(RNN)或Transformer模型,对文本进行特征提取和情感分析,以实现对用户评论、社交媒体帖子等文本数据的情感极性判断,从而帮助企业、研究机构等理解和响应用户情感,优化产品和服务。

2024-07-03 22:21:06 334

原创 昇思25天学习打卡营第14天|GPT2文本摘要

GPT-2(Generative Pre-trained Transformer 2)是由OpenAI开发的一种基于Transformer架构(decoder-only)的大型自然语言处理模型。它通过在大规模文本数据上进行预训练,能够理解和生成自然语言文本。GPT-2的特点在于其庞大的模型规模和强大的生成能力,能够生成连贯且上下文相关的文本,适用于多种自然语言处理任务,如文本生成、翻译、问答系统等。

2024-07-02 14:54:00 690

原创 昇思25天学习打卡营第13天|BERT

BERT全称是来自变换器的双向编码器表征量(Bidirectional Encoder Representations from Transformers),它是Google于2018年末开发并发布的一种新型语言模型。与BERT模型相似的预训练语言模型例如问答、命名实体识别、自然语言推理、文本分类等在许多自然语言处理任务中发挥着重要作用。模型是基于Transformer中的Encoder并加上双向的结构,因此一定要熟练掌握Transformer的Encoder的结构。

2024-07-01 22:56:44 1000

原创 昇思25天学习打卡营第12天|ResNet50-图像分类

ResNet50网络是2015年由微软实验室的何恺明提出,获得ILSVRC2015图像分类竞赛第一名。

2024-06-30 16:53:52 1308

原创 昇思25天学习打卡营第11天|ResNet50迁移学习

在实际应用场景中,由于训练数据集不足,所以很少有人会从头开始训练整个网络。普遍的做法是,在一个非常大的基础数据集上训练得到一个预训练模型,然后使用该模型来初始化网络的权重参数或作为固定特征提取器应用于特定的任务中。本章将使用迁移学习的方法对ImageNet数据集中的狼和狗图像进行分类。

2024-06-29 16:25:47 701

原创 昇思25天学习打卡营第10天|FCN图像语义分割

FCN主要用于图像分割领域,是一种端到端的分割方法,是深度学习应用在图像语义分割的开山之作。通过进行像素级的预测直接得出与原图大小相等的label map。因FCN丢弃全连接层替换为全卷积层,网络所有层均为卷积层,故称为全卷积网络。

2024-06-28 19:10:01 1052

原创 昇思25天学习打卡营第9天|使用静态图加速

AI编译框架分为两种运行模式,分别是动态图模式以及静态图模式。MindSpore默认情况下是以动态图模式运行,但也支持手工切换为静态图模式。

2024-06-27 20:43:14 451

原创 昇思25天学习打卡营第8天|保存与加载

上一章节主要介绍了如何调整超参数,并进行网络模型训练。在训练网络模型的过程中,实际上我们希望保存中间和最后的结果,用于微调(fine-tune)和后续的模型推理与部署,本章节我们将介绍如何保存与加载模型。

2024-06-26 18:14:28 492

原创 昇思25天学习打卡营第7天|模型训练

本文介绍了如何使用MindSpore进行模型训练

2024-06-25 19:57:40 1063

原创 昇思25天学习打卡营第6天|函数式自动微分

神经网络的训练主要使用反向传播算法,模型预测值(logits)与正确标签(label)送入损失函数(loss function)获得loss,然后进行反向传播计算,求得梯度(gradients),最终更新至模型参数(parameters)。自动微分能够计算可导函数在某点处的导数值,是反向传播算法的一般化。自动微分主要解决的问题是将一个复杂的数学运算分解为一系列简单的基本运算,该功能对用户屏蔽了大量的求导细节和过程,大大降低了框架的使用门槛。

2024-06-24 18:10:11 803

原创 昇思25天学习打卡营第5天|网络构建

​神经网络模型是由神经网络层和Tensor操作构成的,mindspore.nn提供了常见神经网络层的实现,在MindSpore中,Cell类是构建所有网络的基类(这个类和pytorch中的modul类是一样的作用),也是网络的基本单元。一个神经网络模型表示为一个Cell,它由不同的子Cell构成。使用这样的嵌套结构,可以简单地使用面向对象编程的思维,对神经网络结构进行构建和管理。

2024-06-23 20:57:43 1044

原创 昇思25天学习打卡营第4天|数据变换(Transforms)

数据变换是指将已有的数据转换成可以提供给模型直接训练和验证的数据格式,在深度学习中一般被称为数据预处理,之前在介绍数据集的时候已经有了一个简单的使用,下面将具体介绍如何使用MindSpore中已有的方法,对数据进行处理。

2024-06-22 19:36:16 892

原创 昇思25天学习打卡营第3天|数据集Dataset

数据是深度学习的基础,高质量的数据输入将在整个深度神经网络中起到积极作用。有一种说法是模型最终训练的结果,10%受到算法影响,剩下的90%都是由训练的数据质量决定。(doge)MindSpore提供基于Pipeline的,通过和实现高效的数据预处理。其中Dataset是Pipeline的起始,用于加载原始数据。MindSpore自带的提供了内置的文本、图像、音频等数据集加载接口,并提供了自定义数据集加载接口。此外MindSpore的领域开发库也提供了大量的预加载数据集,可以使用API一键下载使用。

2024-06-21 20:43:02 1109

原创 昇思25天学习打卡营第2天|张量Tensor

张量是一种特殊的数据结构,与数组和矩阵非常相似。张量()是MindSpore网络运算中的基本数据结构(也是所有深度学习模型的基础数据结构),下面将主要介绍张量和稀疏张量的属性及用法。张量(Tensor)是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数,这些线性关系的基本例子有内积、外积、线性映射以及笛卡儿积。其坐标在 𝑛 维空间内,有  N的R次方个分量的一种量,其中每个分量都是坐标的函数,而在坐标变换时,这些分量也依照某些规则作线性变换。

2024-06-20 20:46:08 1151

原创 昇思25天学习打卡营第1天|快速入门

本节通过MindSpore已经封装好的API,快速实现一个深度学习模型的数据集准备、训练评估,模型参数保存和加载,对新手朋友十分友好。

2024-06-19 22:30:40 1044

原创 书生·浦语实战营第二期(七)——OpenCompass

上海人工智能实验室科学家团队正式发布了大模型开源开放评测体系 “司南” (OpenCompass2.0),用于为大语言模型、多模态模型等提供一站式评测服务。

2024-04-21 22:50:56 1021 1

原创 书生·浦语实战营第二期(六)——Agent

Lagent 是一个轻量级开源智能体框架,旨在让用户可以高效地构建基于大语言模型的智能体。同时它也提供了一些典型工具以增强大语言模型的能力。Arxiv 搜索Bing 地图Google 学术搜索Google 搜索交互式 IPython 解释器IPython 解释器PPTPython 解释器在本节中,我们将基于 Lagent 自定义一个工具。Lagent 中关于工具部分的介绍文档位于动作 — Lagent。继承 BaseAction 类实现简单工具的 run 方法;

2024-04-20 20:52:53 907

原创 书生·浦语实战营第二期(五)——Xtuner微调

假如我们想要用 XTuner 这款简单易上手的微调工具包来对模型进行微调的话,那我们最最最先开始的第一步必然就是安装XTuner!安装基础的工具是一切的前提,只有安装了 XTuner 在我们本地后我们才能够去思考说具体怎么操作。:那在完成了安装后,我们下一步就需要去明确我们自己的微调目标了。我们想要利用微调做一些什么事情呢,那我为了做到这个事情我有哪些硬件的资源和数据呢?假如我们有对于一件事情相关的数据集,并且我们还有足够的算力资源,那当然微调就是一件水到渠成的事情。就像 OpenAI 不就是如此吗?

2024-04-19 20:16:12 695

原创 启智AI平台,最好的AI社区算力平台

2023年以来,AI大模型成为了人尽皆知的社会热点词汇,似乎无论什么产业都在努力实现AI化,好像和大模型没有建立关系就是out了。由此引发的百模大战,甚至是2024年以来的千模大战,对于算力的需求正处于一个井喷式的增长区间。

2024-04-18 18:21:22 803

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除