- 博客(30)
- 收藏
- 关注

原创 基于闻达(wenda+chatGLM-6B),构建自己的知识库小助手
ChatGLM-6B是清华团队+智谱AI开发的,一个开源的、支持中英双语的对话语言模型,具有 62 亿参数。被很多人视为ChatGPT的平替。但是由于ChatGLM-6B 的规模较小,目前已知其具有相当多的局限性。解决这一问题的方式大体上有两种:一种是使用更大规模的模型来提升整体能力,提升其自我认知能力。开发者表示基于 1300 亿参数 GLM-130B 的 ChatGLM 已经在内测开发中。另一种便是使用插件或者外挂的方式,提升模型在某一个领域的能力。
2023-04-28 17:32:38
27926
18

原创 基于chatGLM-6B模型微调详细教程(linux版)(ptuning & lora)
基于chatGLM-6B模型预训练(linux版)(ptuning || lora)
2023-04-26 15:35:40
14846
6
原创 基于llama模型进行增量预训练
大家知道AI模型是怎么训练出来的吗?AI模型的训练训练过程分为如下三个阶段第一个阶段叫做无监督学习(PreTraining),就是输入大量的文本语料让GPT自己寻找语言的规律, 这样一个巨大的词向量空间就形成了,但是话说的漂亮并不一定正确。第二个阶段叫做监督学习(Supervised Fine-Tuning,也叫微调),就是人工标注一些语料,教会GPT什 么该说,什么不该说。(训练数据集)
2023-06-19 16:51:09
11117
26
原创 使用数据预训练一个AI语言模型
我们之前讲过了如何部署一个别人已经训练好的AI模型、也学会了如何微调一个AI模型,也讲了预训练模型和微调模型的区别,那本文就聊聊如何从零训练一个语言模型吧!
2023-05-29 14:41:08
4599
4
原创 闻达(wenda+chatGLM-6B)一键部署包
本文是《基于闻达(wenda+chatGLM-6B),构建自己的知识库小助手》的一键部署包,将处理数据、模型启动整理为可执行脚本,并提供内置python虚拟环境,无需任何额外的环境配置,只需要上传自己的知识库文件即可使用
2023-05-28 16:48:05
2583
9
原创 训练大语言模型的步骤
训练底座大模型是一项复杂的任务,需要丰富的数据和大量的计算资源。另外,需要注意的是,底座大模型可能会产生大量的参数和计算复杂度,因此在部署和使用时需要仔细考虑硬件和性能方面的要求。选择适合的模型架构、对于底座大模型,考虑使用Transformer的架构,这种架构在自然语言处理任务中表现出色。根据模型评估的结果和反馈,可以进行迭代和改进,调整模型架构、数据预处理步骤或训练策略,以提高模型的性能。足够的高质量数据来训练模型,确保数据集的多样性和代表性,以便模型能够学习到广泛的模式和特征。
2023-05-22 16:51:18
5947
原创 预训练与微调的区别
微调(Fine-tuning):微调是指在特定任务上使用预训练模型进行进一步的训练,以使其适应特定任务的要求。在微调阶段,预训练模型被加载到特定任务的训练数据上,并根据该任务的标签或目标函数进行优化。预训练模型的目标是捕捉到底层语言的统计规律和语义信息,而不是特定任务的细节。综上所述,预训练是为了捕捉通用语言特征和语义信息,而微调是将预训练模型应用于特定任务并进行优化,以使其适应该任务的要求。预训练模型的目标是成为一个通用的语言理解模型,而微调则是将其特化为特定任务的模型。
2023-05-22 16:45:56
5189
1
转载 SpringBoot中使用AOP
简介AOP简介AOP可能对于广大开发者耳熟能详,它是Aspect Oriented Programming的缩写,翻译成中文就是:面向切面编程。这个可能是面试中经常提到的问题,同时它也是Spring框架中一个重大的特性,AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果,对于我们开发中最常见的可能就是日志记录,事务处理,异常处理等等。SpringBoot中使用AOP接下来介绍SpringBoot项目中如何运用
2021-06-06 10:51:57
152
原创 Rancher完整离线部署(docker~harbor~rancher~jenkins)
初衷此次发表该博客主要是由于bo zh在一周的rancher离线搭建的过程中,踩了很多的坑,由于网络上没有一个完整的搭建过程,顾写下这篇博客供大家参考。
2021-06-05 15:54:29
16476
4
原创 springboot如何与mybatis集成(源码底层实现)
AutoConfigurationImportSelector是springboot的一个核心配置类,springboot项目启动时,此类会自动加载许多框架,如下:如上图,一共98个框架,那么此类时如何去找到这些框架并 获取对象呢?答:在这些框架中,每个框架都有一个spring.factories文件,在这些文件中都有各个文件的全限定类名地址,springboot启动后,AutoConfigurationImportSelector类中调用SpringFactoriesLoader类
2020-07-23 00:47:22
396
原创 在idea中配置maven出现Unable to import maven project: See logs for details错误的解决办法
首先查看报错信息idea——Help——Show Log in Explorer点击idea.log查看报错信息经过各种尝试后,发现是因为我安装的idea2019版本与maven3.6.3的兼容性问题,于是把maven切换成3.5成功解决
2020-07-22 23:02:54
2363
原创 关于Redis,你想知道的都有
Redis 是什么?Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(
2020-07-18 23:28:30
282
原创 大数据——kafka(分布式消息系统)
Kafka简介 Kafka是一个分布式,支持分区,多副本的分布式消息系统(MQ)。它提供了普通消息系统的功能,但具有自己独特的设计特性。 kafka使用ZooKeeper用于管理、协调代理。 Kafka只有一种模式——发布/订阅。 目前是大数据生产中最常用的MQ,也是社区最活跃的MQ。 Kafka的优缺点优点:高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group
2020-07-14 18:48:12
650
原创 大数据——Hive(数据仓库工具)
什么是Hive?Hive是基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表。Hive提供类似SQL的HiveQL的数据处理功能,Hive将HiveQL语句转换成MapReduce程序交给Hadoop集群处理。为什么要用Hive?MapReduce实现复杂查询逻辑开发难度太大,人员学习成本太高,项目周期要求短,引入Hive可以使用HiveQL这种类SQL语法,提供快速开发的能力,避免写MapReduce程序,降低学习成本。Hive的组成:用户接口;CLI、Hi.
2020-07-12 16:46:07
692
原创 HDFS入门,基础,学习笔记(可能是最详细的HDFS入门基础了)
什么是HDFS?HDFS是分布式文件存储系统,用于大数据的存储.一个HDFS系统通常由一个NameNode,一个SecondaryNameNode和若干DataNode组成.NameNode负责管理整个文件系统元数据;DataNode负责管理具体文件数据块存储;Secondary NameNode协助NameNode进行元数据的备份.HDFS详解:NameNode:NameNode用来管理文件系统的元数据,是HDFS集群中的大管家,它不负责存储具体的数据.NameNode由两个核心...
2020-07-09 00:30:10
541
原创 大数据——Flume入门,基础,学习笔记
什么是Flume?Flume是一种分布式,可靠且可用的系统,用于有效地收集,聚合和移动大量日志数据.Flume组成Agent:Agent是Flume最重要的组成部分,Flume系统就是由一个一个的Agent组成的.Source:Agent的内部组件,用于接收日志数据,并将其封装成一个一个的event,然后传给Channel.event:Flume系统内部将日志数据封装成event进行传输,event的结构是json串.Channel:传输通道,被动的接收Source传来的数据,并进行
2020-07-08 12:00:17
311
原创 mysql数据库及表操作(二)
新增、更新、删除表记录-- 10.往学生表(stu)中插入记录(数据)-- 语法:INSERT INTO 表名(列名1,列名2,列名3...) VALUES(值1,值2,值3...);-- 如果是在cmd中执行插入记录的语句,先set names gbk;insert into stu(id,name,gender,birthday,score) value(null,'刘鑫','...
2020-03-16 20:34:38
472
原创 mysql数据库及表操作(一)
连接mysql服务器1、连接mysql服务器: mysql -uroot -proot -u:后面的root是用户名,这里使用的是超级管理员root; -p:(小写的p)后面的root是密码,这是在安装MySQL时就已经指定的密码; 2、连接mysql服务器并指定IP和端口:mysql -uroot -proot -h127.0.0.1 -P3306 -h:后面给出的127...
2020-03-16 20:31:16
219
原创 解决多线程安全问题的三种方式
解决多线程安全问题的方式有三种:1.同步代码块(隐式锁)2.同步方法(隐式锁)3.同步锁Lock(java1.5以后)粘贴一个博主写的 https://blog.youkuaiyun.com/qq_38974634/article/details/81292061...
2020-03-10 21:23:25
301
原创 hashcode详解
粘贴一个博主写的,很经典。写这篇不是博客的博客,方便以后复习,以及各位查看。https://www.cnblogs.com/whgk/p/6071617.html
2020-03-09 12:30:51
126
原创 java中的序列化和反序列化入门实践
序列化--是指把java程序中的对象永久区存储在磁盘中的过程,可以看做是一个out的过程反序列化--是指从磁盘中恢复一个被序列化好的文件,可以看成是一个in的过程序列化工具类ObjectOutputStream反序列化工具类ObjectInputStream实例代码:import java.io.FileInputStream;import java.io.FileOu...
2020-03-06 22:45:52
160
1
原创 java利用递归删除文件夹(以及里面的文件和子文件夹)
1.在main方法中使用Scanner工具类从控制台获取String类型的地址;2.将获取的地址转变为File类型;3.创建一个删除方法删除文件夹首先要获取该文件夹下的所有文件和文件夹数组,然后遍历数组,在遍历过程中判断是否为文件,如果是文件则直接删除,如果是文件夹则递归调用该删除方法; 循环结束后,记得要把最外层的空文件夹删除;4.main方法中调用删除方法;具体代码如...
2020-03-04 22:41:10
10990
原创 日期工具类SimpleDateFormat实例
使用日期工具类SimpleDateFormat测试出生天数用户输入自己的出生年月日,控制台输出用户出生到现在时间的天数需要用到的方法:parse(String):把String解析成Dateimport java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;impor...
2020-03-03 20:17:47
221
原创 java中的异常处理
当程序遇到了异常,可以选择两种处理方式:捕获或者向上抛出。当调用了一个抛出异常的方法时,调用位置可以能不做处理继续向上抛出也可以捕获异常自行处理。 调用抛出异常的方法时不做处理,继续向上抛出:public class Test2_Exception { public static void main(String[] args) throws Exception {//继...
2020-02-28 22:05:07
103
原创 java中接口和抽象类的相同与不同
相同点:①接口和抽象类都不能被实例化;②接口的实现类和抽象类的子类都必须全部重写接口或抽象类中的抽象方法才能被实例化;不同点:①接口不能有构造方法,抽象类可以有;②接口不能有方法体,抽象类可以有;③接口不能有静态方法,抽象类可以有;④接口中没有变量,都是静态常量,必须是public static final修饰(默认添加),而在抽象类中没有...
2020-02-28 19:38:39
268
原创 理解java中的接口
一、为什么需要接口: java中不允许多重继承,一个子类只可以继承一个父类,只能继承父类的功能。但是如果一个类想要继承多个类的功能,我们就需要用到接口(interface)来实现了。二、接口的特点: ①接口中没有成员变量,都是常量 ②接口中没有普通方法,都是抽象方法 ③接口类不可以被实例化三、让我们创建一个接口来具体感受 ...
2020-02-28 19:13:59
150
原创 不让外界创建对象有几种解决方案
第一种:构造方法私有化 private修饰的构造方法,使外界不能创建本类对象第二种:抽象类 abstract修饰成抽象类,抽象类不可被实例化,不能创建对象第三种:接口是更加严格的抽象类,所以也不能被实例化,不可创建对象 ①构造方法私有化 ②抽象类 ...
2020-02-28 18:31:37
678
原创 用二维数组打印一个杨辉三角
需要知道的杨辉三角的规则1.第一行有一个元素,第n行有n哥元素2.每一行的第一个元素和最后一个元素都是13.从第三行开始,对于非第一个元素和最后一个元素的元素。即: yanghui[i][j] = yanghui[i-1][j-1] + yanghui[i-1][j];public class YangHuiTest { public static void m...
2020-02-27 21:49:51
395
原创 理解java中的抽象类
1.概念:Java中可以定义没有方法体的方法,该方法由其子类来具体的实现。该没有方法体的方法我们称之为抽象方法,含有抽象方法的类我们称之为抽象类。抽象类可以理解为是一个只有方法声明没有方法体的特殊类。2.特点1、通过java关键字abstract实现2、可以修饰方法或者类3、抽象类中可以没有抽象方法(由子类去实现)4、如果类中有抽象方法,那该类必须定义为...
2020-02-27 17:39:53
193
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人