自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 `GLIBCXX_3.4.29‘ not found,升级至libstdc++.so.6.0.29解决问题,欧拉服务器

openGemini1.2升级为1.3,启动报错/usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.29’ not found ,所以需要升级一下。(注意:第二个命令如果说链接已经存在,则执行sudo rm /usr/lib64/libstdc++.so.6,执行完后再执行第二条命令就可以)解压后把里面的内容复制到/usr/lib64/目录下。先看看自己有没有高版本的libstdc。先查看一下自己的GLIBCXX版本。可以看到有29版本了。

2024-09-05 17:02:40 1432

原创 AutoGPTQ量化方案

大型复杂模型(被称为“教师模型”,Teacher Model)中的知识转移给小型简洁模型(被称为“学生模型”,Student Model),从而使学生模型在保持或接近教师模型性能的同时,拥有更小的模型体积和更快的运算速度。定义一个量化范围和一个量化步长(scale factor),将浮点数减去最小值(对于非对称量化,可能还要加上偏移量),然后除以量化步长,得到的结果向下取整即得到相应的整数值。让学生模型在同一训练集上进行训练,除了常规的交叉熵损失外,还添加一项额外的损失项,通过量化技术,将模型中的。

2024-01-15 11:30:35 1289

原创 LangChain+glm3原理解析及本地知识库部署搭建

query是用户输入的信息,然后把用户输入的信息也做Embedding操作,然后得到词向量。

2024-01-12 14:30:02 3188

原创 chatglm3本地部署(综合Demo版本)教程

接下来打开ChatGLM3中的requirements.txt文件,找到里面的torch信息,删除红框中的这一行,因为直接使用这里面的torch,下载的是cpu版本,所以我们上面就自己手动下载了GPU版本。我是在本地c盘中,创建了一个glm3文件夹,然后把代码拉到这个文件夹里,所以在clone之前,需要在cmd中,把路径切换到glm3文件夹下,然后执行如下代码。其实到这里,已经可以运行普通的demo了,但是我们的目标是运行综合Demo,所以我们需要进到composite_demo目录下,然后安装里面的包。

2023-12-25 10:44:05 2283 3

原创 Transformer中的layer norm(包含代码解释)

在transformer中存在add&norm操作,add操作很简单,就是把注意力矩阵和原来的矩阵相加,也就是残差链接,可以有效减少梯度消失。如下图所示,为layer norm的解释图,可以看出layer norm是针对一个token来做的归一化操作。通过输出上的对比我们发现了,使用torch来LN后的EM和我们手动来对Token进行LN的数值一样,说明了LN就是对Token来进行归一会操作的。具体的实现,我们来看下面这段代码,

2023-12-07 11:17:30 2473

原创 Embedding And Word2vec

从上图可以看出,实际上是很简单的一个BP神经网络,输入就是一个一维的向量,然后和第一个权重矩阵w进行乘法,获取隐含层的值h,然后h再和第二个权重矩阵W’,相乘后得到输出(有多少个字,就有多少种输出),最后的输出经过softMax函数,就可以得到每个字的概率,概率最大的,就是我们预测的字。输入层到隐藏层的原理和simple CBOW一样,不同的是隐藏层到输出层,损失函数变成了C个词损失函数的总和,权重矩阵W’还是共享的。余弦相似度的值越接近1,表示两个向量的方向越接近,即两个embedding越相似。

2023-12-02 15:43:39 463

原创 Transformer——decoder

在介绍之前,我们先来说一下。

2023-11-26 01:01:43 1071 2

原创 Transformer——encoder

在自然语言识别中,之前讲过lstm,但是lstm有明显的缺陷,就是当文本过于长的时候,考前的文本信息和后的文本信息,关联性就会越来越弱,并且因为链式求导的原因,会导致梯度消失,所以这里就学习了一种新型神经网络Transformer,他和前面的网络很不一样,他是一种基于注意力的编码-解码架构。

2023-11-21 19:58:11 1077 2

原创 pytorch+LSTM实现使用单参数预测,以及多参数预测(代码注释版)

下面继续在method模块中,定义我们的类LSTM。其中lstm_out, self.hidden_cell = self.lstm(input_seq.view(len(input_seq), 1, -1), self.hidden_cell)相,其实就是pytorch的impose函数,他要接收一个三维的向量,因为LSTM的隐含层是需要接收三个参数的。# 定义LSTM模型# 构造函数,初始化网络使用# input_size:对应于输入中特征的数量。

2023-11-04 00:12:58 3286 2

原创 循环神经网络(RNN)与长短期记忆网络(LSTM)

通过前面的学习,我们以BP神经网络为基础,认识到了损失函数,激活函数,以及梯度下降法的原理;而后学习了卷积神经网络,知道图像识别是如何实现的。今天这篇文章,讲述的就是计算机如何通过RNN与LSTM来做到自然语言的理解。

2023-10-31 19:25:42 772

原创 2.卷积神经网络(CNN)

如下图。其中隐含层使用ReLu,输出层使用的是softMax,这样输出值就是标签和概率。参考:深度学习及应用-赵卫亮,神经网络与深度学习-牟奇。

2023-10-21 21:13:53 476

原创 1.前馈型BP神经网络

感知机,是构成神经网络的基本单位,一个感知机可以接收n个输入X=(x1,x2,x3…xn)T(每个输入,可以理解为一种特征),n个输入对应n个权值W=(w1,w2,w3…wn),此外还有一个偏置项b,学过矩阵的人应该可以看出,这其实是一个y=WX+b的函数,实际上就是对所有的输入,根据权值和偏置量进行求和运算,然后作为一个神经元的输出。如下图:通过上图可以看出,

2023-10-15 15:17:06 231

原创 stream流参数总结

stream常见参数

2022-11-04 09:33:22 1237

原创 Java多线程总结

1.实现线程的三种方式:继承Thread类(无返回值):public class ThreadTest { /** * 继承Thread类 */ public static class MyThread extends Thread { @Override public void run() { System.out.println("This is child thread"); }

2022-01-25 15:47:47 486

原创 设计模式之观察者设计模式

简述:使用过MQ的人对该模式应该不会陌生,简单来说就是发布和订阅的模式,一个被观察者,对应多个观察者,被观察者有状态更新的时候,通知所有观察者进行相关操作。角色:在观察者设计模式中,存在四种角色。1.抽象被观察者角色2.抽象观察者角色3.具体被观察者角色4.具体观察者角色下面我们将通过自己手写实现观察者模式,和使用java内置观察者模式两种方法来学习使用。手写观察者模式:抽象被观察者:...

2022-01-12 13:49:34 6259

原创 Python爬虫入门——有手就行

1.爬虫逻辑:模仿服务器发起http请求,获取网页信息,从返回信息中过滤出自己想要的数据。2.用到的技术python——requests库,BeautifulSoup库下载requests库:pip install requests下载BeautifulSoup库:pip install beautifulsoup43.开始写爬虫这是我们本次要爬取的图片和url地址。点开F12,可以看到请求方式为get请求。使用requests库发起get请求,方法很简单:#设置头headers

2021-10-04 11:28:19 383

原创 DDD之Domain Primitive(DP)

前言:DDD是一种架构思想,而不是一套框架。Domain Primitive:何为DP,他是DDD中的“基础数据结构”,就像Java中的int,string一样,是我们学习的必经之路。这么说有点抽象,接下来通过一个案例来说明。用户注册功能,需要输入用户的名字,电话(带区号的座机),地址。并且后台需要根据电话信息来统计哪个区域注册用户最多。那么就可以看出来电话需要自己的校验逻辑,来判断号码是否合法,以及拆分出区号。传统的方式:public class User { String name;

2021-07-20 17:28:49 3280

原创 一图搞定KaFKa

Kafka 是一套流处理系统,可以让后端服务轻松的相互沟通,是微服务架构中常用的组件。Topic:Topic 是生产者发送消息的目标地址,是消费者的监听目标。一个服务可以监听、发送多个 Topics。consumer group(消费组): 一组服务,扮演一个消费者;如果一个消费组接收了消息,那么kafka会把该消息路由到其中的一个服务上,策略是轮询。Partition: 一个topic是由多个parttion组成的,每个parttion可以看成一个队列,生产者发送消息的时候,随机(默认使用轮询策略

2021-07-06 18:35:00 271 1

原创 MYSQL调优总结

一.MYSQL逻辑架构优化mysql我们需要知道一个道理,那就是mysql是如何工作的,了解它如何工作,让他用最舒服的方式进行工作,就是我们需要做到的。下面从一个mysql查询过程来分析他的逻辑工作原理:1.客户端/服务端通信协议:通信协议采用的是半双工(要么是客户端发送消息给服务器,要么是服务器发送消息给客户端,双方不能同时进行),并且客户端发送过去的消息是一个数据包,而接收的数据是多个数据包,这就有一个问题,那就是客户端发送的语句实在太大,服务器会拒绝接收。建议: 在实际开发中,尽量保持查询

2021-06-29 21:18:55 240 1

原创 简述RocketMQ集群架构基础

1.RocketMQ适用场景解耦系统之间的调用关系,削峰,数据分发(不做详细解释,自行百度)2.RocketMQ结构从上图可以看出rocketMQ几个关键角色,以下做介绍:producer:消息的生产者broker:消息的存储者name server:管理broker的管理者consumer:消费者消息产生到接收的过程:producer生产消息,然后producer去name server中查找broker的信息,以确定要去哪个broker中存放数据。consumer要获取消息的时候,也会

2021-04-27 09:36:10 179

原创 UReport2实现自定义路径图片加载

UReport是一款开源的报表编辑器,可以根据它提供的接口,来实现一些自定义的功能,今天就记录一下如何自定义图片加载。从官方文档看出,要实现自定义,就需要实现这个接口官方默认的图片上传路径的实现:import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import org.springframework.beans.BeansException;import org.spring

2020-08-01 10:56:55 5490 7

原创 Java实现mysql数据库的压缩备份(不覆盖原来的备份)

package Utils;import java.io.*;import java.text.SimpleDateFormat;import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;import java.util.Date;public class BackUp { public static void main(String[] args) throws Exception {

2020-07-16 19:48:03 382

原创 Flume基础——上

Flume的作用:之前学习了Hadoop的hdfs(分布式文件储存系统),MapReduce(分布式计算)。今天学习Flume日志系统,它的作用的是可以对日志进行收集,存储,传输。Flume中记录日志信息的载体Event:Event由两部分——headers和bodyFlume会将收集到每一条日志封装成一个Event对象 ,所以一个Event就是一条日志Event本质上是json串,即Flume将收集到的每一条日志封装了一个个的json,一个json就是一个Eventclass Add im

2020-07-11 15:01:40 220

原创 Hadoop(最终章)——YARN

引入:Hadoop2.0中提供的一套用于资源管理和任务调度的机制,也正因为这套机制的出现,导致Hadoop1.0和Hadoop2.0不兼容 。yarn出现的原因:内因:在Hadoop1.0中,JobTrakcer既要对外接收任务,还要对内管理TaskTracker以及分配任务,并且JobTracker还需要监控TaskTracker的任务执行情况,这就导致JobTracker要负责的任务非常多,从而成为整个集群的性能瓶颈。并且Hadoop1.0中,JobTracker只允许存在一个,就意味着存在单

2020-07-05 13:14:50 231

原创 Hadoop(八)——MapReduce下

1.数据倾斜:原因:因为又分区的情况,导致Reduce阶段的ReduceTask处理的数据量不一样,可能有的多有的少,这就产生了数据倾斜的问题。另外还有可能发生Map阶段的数据倾斜,但是需要满足3个条件:多输入源,文件不可切分,文件大小不均等。reduce阶段的数据倾斜如何优化?二阶段聚合:第一阶段:把数据打散,进行部分聚合第二阶段:根据分区条件来进行聚合没有使用二阶段聚合:每一个reduceTask处理的数据量都不一样,可以明显的看出第一个reduceTask的处理数据量比另外两个要

2020-07-03 23:07:20 188

原创 面试总结(一)

总结一下今天没有回答上来的几个问题:1.乐观锁和悲观锁:乐观锁:每次拿数据的时候都认为别的线程不会修改这个数据,所以不会上锁,但是在更新的时候会判断一下在此期间别的线程有没有修改过数据,乐观锁适用于读操作多的场景,这样可以提高程序的吞吐量。(JUC中的原子性使用的就是乐观锁CAS实现的)悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁, 这样当第二个线程想拿这个数据的时候,第二个线程会一直堵塞,直到第一个释放锁,他拿到锁后才可以访问。2.CAS+

2020-07-02 20:21:21 210

原创 Hadoop(七)——中下下

shuffleMapReduce的shuffle分为map阶段的shuffle和reduce阶段的shuffle,下面就分别来做介绍。map阶段的shuffle:之前我们学的是map阶段并不是直接把数据给reduce,而是会把数据分好,该分区的分区,该封装的封装,该合并的合并再给到reduce,下面就来详细介绍这个过程。1.每一个MapTask都会自带一个缓冲区(默认大小100m)。2.在缓冲区中会进行分区,排序,合并。3.缓冲区的大小是固定的,当达到溢出边界(是缓冲区的80%)的时候,缓冲区

2020-07-01 19:19:56 207

原创 Hadoop(六)——MapReduce(中下)

排序:昨天说了MapReduce组件中的序列化和分区。今天接着说组件。规则:reduce阶段处理完数据后,输出的内容是可以按照我们自己的要求来排序的。除了基本数据类型外,如果是自定义数据类型,那么需要在类中继承一个WritableComparable接口,实现它的compareto方法来自定义比较规则。注意:如果两个键的compareTo结果为0,那么Reduce阶段会将这两个键看作是同一个键然后对应的值分到一组案例:先按照月份升序,如果月份一致则同一月中按照利润降序。文件内容如下:月份/

2020-06-30 19:04:22 265

原创 Hadoop(五)——mapreduce(中)

回顾:上一篇我们讲述了mapreduce处理hdfs中数据的过程,就是分为map阶段和reduce阶段,map阶段就是把hdfs中的数据给“包装”好,这个包装工作会有很多的map线程去做,并且以key——value的形式,通过context传递给reduce阶段。相同key的值底层会把他做成一个带迭代器的数组。reduce阶段也称规约阶段,目的就是把上面分散的数据给集合起来,所以reduce可以拿到这个key,和value的数组迭代器,就可以对数据进行整合,最后传递出去。问题的引出:我们之前在map阶

2020-06-29 22:22:02 209

原创 hadoop(四)——MapReduce(上)

引入:之前学习了hdfs,它是Hadoop的分布式存储系统,那么既然有了存储,我们就需要对存储的数据做一些操作,这就需要使用分布式计算系统MapReduce来做。分布式计算过程:使用统计字母个数的案例来解释计算过程map(映射)过程:MapReduce会把HDFS中的文件切片,然后每一片对应有个MapTask线程,每个MapTask线程处理每个分片的逻辑是相同的,默认对数据进行逐行处理,每片的字母和个数以key-value的形式保存起来。reduce(规约)阶段:从上面可以看出,每个MapR

2020-06-28 22:32:28 192

原创 hadoop(三)——hdfs(下)

dfs目录:引入:上一篇文章中,我们看见了tmp文件下有个dfs文件夹,dfs中有存储主节点(NameNode)信息的name文件夹和存储从节点(dataNode)信息的data文件夹。接下来就详解一下这个dfs目录。dfs的作用:是HDFS的数据目录dfs目录的位置:dfs的目录是由etc/Hadoop/core-site.xml中的hadoop.tmp.dir来指定的。dfs的目录结构:in_use.lock:进入tmp中的name目录或者data目录,可以看见除了current

2020-06-28 21:34:00 1024

原创 Hadoop(二)——hdfs(上)

概述:hdfs是用来做分布式存储的系统。结构: hdfs使用的也是主从结构,主节点叫NameNode,从节点叫DataNode。存储格式: hdfs会对存储的数据进行切块(block),以block的形式进行存储。备份: hdfs会对存入其中的block进行备份(副本),HDFS中默认的副本策略是3,即需要复制2次,加上原来的副本构成3个副本 。HDFS提供了一套类似于Linux的文件系统,即仿照Linux,允许用户产生不同的目录,同时为不同的路径设计权限。根路径是/块(block):Bloc

2020-06-27 17:17:37 491

原创 高并发基础——AVRO

AVRO是Apache提供的一套用于进行序列化和RPC的机制序列化:之前我们在使用redis存储数据的时候,把对象转化为json 的过程,就可以称为序列化。序列化: 将对象按照指定的规则转化为指定形式的数据意义: 当一个项目由多种语言开发的时候,各种语言之间的数据怎么互通?就可以使用序列化来实现这个目标,把数据转化为与语言无关的数据(数字,布尔值,字符或字符串)。AVRO就是在json基础上对对象进行转化 .RPC(Remote Procedure Call) :远程过程调用,指的是允许程序员在

2020-06-27 14:42:43 303

原创 Hadoop(一)

一.概述Hadoop的作用:Hadoop是一套开源的,可靠的,可伸缩的,分布式存储和计算的系统。模块:Hadoop common:公共模块hdfs:分布式存储Hadoop yarn:任务调度和资源管理Hadoop mapreduce:分布式计算Hadoop ozone:对象存储。二.Hadoop的安装:1.关闭云主机的防火墙service iptables stopchkconfig iptables off2.更改主机名,Hadoop集群不允许主机名中出现-或者_vim /e

2020-06-27 14:01:19 150

原创 zookeeper入门——(二)

1.完全分布式的zookeeper安装:1.如果你启动了zookeeper,需要把zookeeper停止。进入到zookeeper的bin目录下,输入命令jps查看是否有QuorumPeerMain,没有则说明关闭了。2.回到/home/software目录下,删除Zookeeper单机模式,可以看到zookeeper安装包被删除了,红色的是下载过的压缩包。3.解压并进入Zookeeper安装目录的子目录conf下,复制zoo_sample.cfg文件tar -xvf zookeeper-3.4

2020-06-22 22:05:57 444

原创 zookeeper入门(一)

1.概述:zookeeper提供了中心化的服务:统一配置信息,命名,提供分布式锁,提供组服务。如下图所示,hive和flume都是基于Hadoop的,这些框架都到zookeeper中进行注册,当有其中一个框架的信息发生改变,就可以使用zookeeper来进行通知,告诉其他框架。2.zookeeper安装的三种模式:单机模式:只在一台服务器上安装,只能启动这个框架的部分功能伪分布式:只在一台服务器上安装,能提供这个框架的大部分甚至全部功能完全分布式:在集群中安装,能提供这个框架的所有功能L

2020-06-21 23:32:02 295

原创 高并发基础——JUC(Lock(锁))

引入:之前Java基础学习了使用synchronized来做锁来实现线程安全问题,今天学习使用JUC中的Lock,他比synchronized更加灵活。1.Lock的实现类ReentrantLock - 重入锁锁在释放之后允许被其他线程抢占或者被一个线程重复抢占。main方法中:static int i = 0; public static void main(String[] args) throws InterruptedException { //声明Reentr

2020-06-19 21:36:53 1144

原创 高并发基础——JUC(concurrentMap,executorService)

一.ConcurrentMap(并发映射):引入:之前在Java基础中,我们学习过了map和它的子类hashmap,hashtable。所以在学习concurrentMap之前我们需要复习一下,hashmap的原理。hashmap原理:底层是使用 数组+链表 ,数组查询快,链表增删快。所以hashmap查询快增删也快。默认初始容量是16,默认加载因子0.75hashmap中我们知道,它是线程不安全的,通俗的说,就是一个线程进来是没有锁来锁这个map的,这就会导致线程不安全,而今天要学习的conc

2020-06-17 23:19:41 437

原创 高并发编程基础——JUC(BlockingQueue阻塞式队列)

引入:什么是JUC?JUC指的是JDK1.5中提供的一套并发包及其子包:java.util.concurrent,java.util.concurrent.lock,java.util.concurrent.atomic 。其中主要内容包括:阻塞式队列、并发映射、锁、执行器服务、原子性操作 。阻塞式队列(blocking queue):概念:阻塞式队列,它也是队列,是队列那就遵循FIFO。需要注意的是,阻塞式队列的容量在声明时就已经固定了,不可以扩容并且BQ中不允许元素为null。阻塞性的体现:

2020-06-16 21:10:32 567 2

原创 高并发编程基础——初识NIO

引入:基础概念:同步:一个对象或者逻辑,在一个时间段内只允许一个线程操作,就是同步操作。异步:一个对象或者逻辑,在一个时间段内只允许多个线程操作,就是异步操作。阻塞:线程没有获取到想要的结果,就会停留在原地等待。非阻塞:线程无论有没有获取到想要的结果,都会继续往下走。Java基础中,学过IO的操作,我们把它叫做BIO,也就是同步阻塞式IO,同步阻塞式IO有它不好的地方,比如它的效率很低,保持恶意连接线程无法释放。所以我们今天学习的就是NIO(同步非阻塞式线程),他的作用就是传输数据。NIO

2020-06-16 19:21:07 196

seaborn数据集seaborn数据集seaborn数据集seaborn数据集seaborn数据集

seaborn数据集seaborn数据集seaborn数据集seaborn数据集seaborn数据集

2023-11-03

空空如也

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

TA关注的人

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