- 博客(26)
- 资源 (9)
- 收藏
- 关注
原创 随机森林原理及代码
机器学习中有一种大类叫集成学习(Ensemble Learning),集成学习的基本思想就是将多个分类器组合,从而实现一个预测效果更好的集成分类器。集成算法大致可以分为:Bagging,Boosting 和 Stacking 三大类型。机器学习中有两种任务,回归和分类,而随机森林可以同时胜任这两种任务。其中分类任务是对离散值进行预测(比如将一景图像中的植被,建筑,水体等地物类型分类);回归任务是对连续值进行预测(比如根据已有的数据预测明天的气温是多少度,预测明天某基金的价格)。
2024-02-27 15:28:57
961
原创 决策树原理及代码
决策树是一种机器学习的方法。决策树的生成算法有ID3, C4.5和CART等。决策树是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。
2024-02-27 15:23:34
1002
原创 朴素贝叶斯原理及代码
朴素贝叶斯(naive Bayes)算法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入输出的联合概率分布。然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。不同于其他分类器,朴素贝叶斯是一种基于概率理论的分类算法;总体来说,朴素贝叶斯原理和实现都比较简单,学习和预测效率较高,是一种经典而常用的分类算法。其中的朴素(naive)是指的对于数据集中的各个特征(feature)都有较强的独立性假设,并未将特征之间的相关性考虑其中。
2024-02-27 15:10:25
438
原创 LangChain介绍及代码实践
LangChian 作为一个大语言模型开发框架,是 LLM 应用架构的重要一环。那什么是 LLM 应用架构呢?其实就是指基于语言模型的应用程序设计和开发的架构。LangChian 可以将 LLM 模型、向量数据库、交互层 Prompt、外部知识、外部工具整合到一起,进而可以自由构建 LLM 应用。
2023-11-01 23:40:27
1269
原创 ChatGLM系列八:微调医疗问答系统
deep prompt tuning 增加了 continuo us prompts 的能力,并缩小了跨各种设置进行微调的差距,特别是对于小型模型和困难任务。ChatGLM2-6B 是 ChatGLM-6B 的第二代版本,在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上,同时引入了许多新特性,如:更强大的性能、更长的上下文、更高效的推理、更开放的协议等。P-Tuning v2 层与层之间的 continuous prompt 是相互独立的。
2023-10-27 17:26:15
837
1
原创 ChatGLM系列七:LangChain+ChatGLM-6B
在开发过程中,我们经常会遇到需要构建基于本地知识库的问答系统的问题。这种系统需要能够根据用户提供的问题,在本地的知识库中查找并返回相关答案。然而,要实现这样的功能并不容易,涉及到语言模型的选择、知识库的管理以及问答的匹配和检索等核心问题。
2023-10-27 16:52:19
543
原创 ChatGLM系列六:基于知识库的问答
下载milvus-standalone-docker-compose.yml并保存为docker-compose.yml。通过向量索引库计算出与问题最为相似的文档。
2023-10-27 16:30:57
265
原创 ChatGLM系列五:Lora微调
目前主流对大模型进行微调方法有三种:Freeze方法、P-Tuning方法和Lora方法LoRA: 在大型语言模型上对指定参数(权重矩阵)并行增加额外的低秩矩阵,并在模型训练过程中,仅训练额外增加的并行低秩矩阵的参数,冻结其他参数。当“秩值”远小于原始参数维度时,新增的低秩矩阵参数量也就很小。在下游任务tuning时,仅须训练很小的参数,但能获取较好的表现结果。
2023-10-27 16:05:26
2274
原创 ChatGLM系列四:P-Tuning微调
P-Tuning,参考ChatGLM官方代码 ,是一种针对于大模型的soft-prompt方法P-Tuning: 在输入的embedding层前,将prompt转换为可学习的额外一层embedding层.P-Tuning,仅对大模型的Embedding加入新的参数。P-Tuning-V2,将大模型的Embedding和每一层前都加上新的参数。当prefix_projection为True时,为P-Tuning-V2方法,在大模型的Embedding和每一层前都加上新的参数;
2023-10-27 15:55:53
535
1
原创 ChatGLM系列三:Freeze微调
目前主流对大模型进行微调方法有三种:Freeze方法、P-Tuning方法和Lora方法。Freeze: 即参数冻结,对原始模型部分参数进行冻结操作,仅训练部分参数,以达到在单卡或不进行TP或PP操作,就可以对大模型进行训练。Freeze仅训练模型后五层的全连接层参数训练、评估也是基于ChatGLM-Efficient-Tuning框架。
2023-10-27 15:49:40
811
原创 ChatGLM系列二:ChatGLM2的介绍及代码实践
2023年06月25日,清华大学开源了 ChatGLM2-6B 模型,是 ChatGLM 模型的升级版本。ChatGLM2-6B 在多个方面有显著提升:模型性能更强,在各种测试集上的表现更好;支持更长的上下文,最大上下文长度提升到 32k;推理速度提高42%,能支持更长的生成;开源许可更加开放,允许商业使用。ChatGLM2-6B在多个维度的能力上取得了巨大提升,包括数理逻辑、知识推理和长文档理解。
2023-10-26 19:22:57
1325
原创 ChatGLM系列一:ChatGLM的介绍及代码实践
下面是官方对ChatGLM的介绍:ChatGLM-6B,结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存)。经过约 1T 标识符的中英双语训练,辅以监督微调、 反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM-6B 虽然规模不及千亿模型,但大大降低了用户部署的门槛,并且已经能生成相当符合人类偏好的回答。
2023-10-24 23:21:39
1506
原创 语音转文本一
linux 版本:http://www.ffmpeg.org/download.html#build-linux linux 静态编译版本:https://www.johnvansickle.com/ffmpeg/ windows 版本 :http://ffmpeg.org/download.html#build-windows。输出 amr-wb 格式,采样率 16000。以16000采样率 16bits 编码的pcm文件为例,每个16bits(=2bytes)记录了 1/16000s的音频数据。
2022-10-13 17:46:51
3843
1
原创 fasttext原理及代码实践
#!/usr/bin/env python# -*- coding: utf-8 -*-# author ChenYongSheng# date 20201222import pandas as pdimport jieba'''数据预处理'''df = pd.read_csv('data/8qi/xx.csv', header=0)stopwords = [line.strip() for line in open('data/all/stopwords.txt', encoding
2020-12-23 09:47:33
1895
9
原创 fastbert介绍及代码实践
模型结构FastBERT的创新点很容易理解,就是在每层Transformer后都去预测样本标签,如果某样本预测结果的置信度很高,就不用继续计算了。论文把这个逻辑称为样本自适应机制(Sample-wise adaptive mechanism),就是自适应调整每个样本的计算量,容易的样本通过一两层就可以预测出来,较难的样本则需要走完全程。那么问题来了,用什么去预测中间层的结果呢?作者的解决方案是给每层后面接一个分类器,毕竟分类器比Transformer需要的成本小多了:注:FLOPs (floating
2020-07-02 10:52:46
1771
原创 tensorflow serving介绍及代码实践
第一步安装docker1.安装dockeryum install docker2.查看docker版本docker -v3.启动dockerservice docker start4.设置开机启动dockersystemctl enable docker5.停止dockersystemctl stop docker6.查看docker镜像docker images7.删除镜像docker rmi 镜像id8.查看docker容器状态&ID
2020-05-26 14:00:45
1089
1
原创 kmeans算法原理介绍
基本思想 1、选取K个点做为初始聚集的簇心 2、分别计算每个样本点到 K个簇核心的距离(这里的距离一般取欧氏距离或余弦距离),找到离该点最近的簇核心,将它归属到对应的簇 3、所有点都归属到簇之后, M个点就分为了 K个簇。之后重新计算每个簇的重心(平均距离中心),将其定为新的“簇核心”; 4、反复迭代 2 - 3 步骤,直到达到某个中止条件 常用的中止...
2020-04-14 23:17:01
11886
1
原创 支持向量机松弛变量的理解
1,线性可分,即能找到超平面,对于硬间隔支持向量机2,部分点不可分,总体近似可分,近似线性可分,对应软间隔支持向量机3,线性不可分,需要用到核函数软间隔支持向量机要加个松弛变量ξ。我们都知道,硬间隔满足,yi * ( wi * x + b )≥1,这是函数间隔,是几何间隔的||w|| 倍。由于一些点出现在两条线的间隔内部,函数间隔的约束条件不满足,所以引入松弛变量ξ,使yi * ( w...
2020-03-26 21:45:10
2482
1
原创 拉格朗日乘子法和KKT条件
在约束最优化问题中,常常利用拉格朗日对偶性(Lagrange duality)将原始问题转换为对偶问题,通过解对偶问题而得到原始问题的解。该方法应用在许多统计学习方法中,例如最大熵模型和支持向量机。对于等式约束的优化问题,可以应用拉格朗日乘子法(Lagrange Multiplier)去求取最优值;如果含有不等式约束,可以应用KKT(Karush-Kuhn-Tucker)条件去求取。当然,这两个...
2020-03-26 15:04:39
489
原创 拉格朗日乘子,原始问题和对偶问题
1.原始问题假设是定义在上的连续可微函数(为什么要求连续可微呢,后面再说,这里不用多想),考虑约束最优化问题:称为约束最优化问题的原始问题。现在如果不考虑约束条件,原始问题就是:因为假设其连续可微,利用高中的知识,对求导数,然后令导数为0,就可解出最优解,很easy. 那么,问题来了(呵呵。。。),偏偏有约束条件,好烦啊,要是能想办法把约束条件去掉就好了,bingo! ...
2020-03-25 23:34:07
3135
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人