- 博客(53)
- 资源 (13)
- 收藏
- 关注
原创 langchain系统教学
上面所讲的langchain其实是一整个生态,包括了langchain模块、langsmith模块、langGraph模块、LangServe模块,以及langchain cloud,每个模块都提供了不一样的能力。langchain是一个用于开发以大模型作为底层能力支持的应用的框架,你如果要开发一个基于大模型的的应用,那么选择langchain会方便很多。而langchain是我们从无到有开发产品时要用到的开发框架,本项目将通过源码阅读的形式,来做一些内容的记录。
2024-07-13 09:13:20
274
1
原创 prompt第五讲-fewshot-selector
从上面来看,比对的完全是具体的翻译内容,这样,如果我输入"美丽"这个词,最相似的肯定是带有"美丽"的案例 ,但是这样显然是不对的,我们需要匹配的内容,其实和翻译的案例没关系,而是和种类有关系,最直觉的方法就是在案例中加入种类信息。这样匹配的时候就考虑到了翻译种类的信息,但是,我们虽然在案例上加入了种类信息,麻烦的地方是输入的时候我们只能输入变量,而种类信息我们是把他定义到了partial变量中,除非我们把这个变量也拿出来。我们希望的是根据不同的助手选择不同的案例,这样对模型的回答才具有指导意义。
2024-07-13 09:03:21
828
原创 prompt第四讲-fewshot
因为FewShotPromptTemplate也是继承自runnable的,所以他有的方法和变量基本和前面讲的PromptTemplate差不多,变量可能会有些变化,但是方法基本是统一的,也是遵从(invoke,batch,stream那一套的),而invoke最底层是。着重看一下FewShotPromptTemplate定义模板部分,他没有什么方法可以实例化对象,只支持直接实例化,而实例化。调用了format,所以我只需要讲解一下format,其他的都懂了。要传入的参数也不用咋说,格式一目了然。
2024-07-13 09:00:19
869
原创 prompt第三讲-PromptTemplate
通过PromptTemplate的from_template方法来定义出一个PromptTemplate基本上PromptTemplate也已将讲完了,下面做一个小总结变量2. template:用于存储字符串模板3. input_variables:用于存储变量,这个变量可以是直接从字符串模板中解析出来,也可以是自己指定,只要是和模板中的变量一样就行4. template_format:渲染的格式,这个格式指导着如何解析template。
2024-07-13 08:57:13
1255
原创 prompt第二讲-langchain实现中英翻译助手
4. prompt模板(prompt template)只有一个,只需定义一次;5. prompt是多个的,用户每输入一次,输入变量填充到prompt模板中得到的就是一个新的prompt。
2024-07-13 08:52:26
1234
原创 prompt第一讲-prompt科普
输入模型的就是一堆的字符串,而这这堆字符串通常我们称为promptprompt一般会有四个部分组成3. 描述:定义模型的角色身份,能力边界,以及一些必要的限制条件4. 示例:给出一些案例,加强模型指令跟随能力5. 上下文:和答案相关的上下文,为回答问题提供资料支持6. 问题:用户提出的具体问题基本上大概就这四部分构成一个prompt,当然如果你的任务足够简单,有可能你并不需要四部分都具备,同时呢?也有可能任务很复杂,
2024-07-13 08:49:15
1018
原创 langchain-runnable底层原理
langchain是一个用于开发以大模型作为底层能力支持的应用的框架,你如果要开发一个基于大模型的的应用,那么选择langchain会方便很多。因为它为大模型应用产品提供了全生命周期管理方案。应用的全生命周期管理2. 应用开发:用langchain提供的组件进行项目开发,或者用langGraph提供有状态的应用开发3. 项目监控:用langsmith提供实时的调试、监控和评估,为项目的迭代提供依据。
2024-07-13 08:40:49
831
原创 transformer原理-Attention Is All You Need
还是惯例来感慨一下,transforemr是google公司在2017年7月发表的【Attention Is All You Need】这篇文章中被提出来的。而在大模型得到了蓬勃发展的今天,不管是哪一类大模型(视频、图像、文本),基本上模型的基础架构都是采用了transformer或者是transformer的变体。这一定程度上奠定了transformer的铁王座地位。
2024-04-30 10:33:53
1240
原创 生成式大语言模型论文导读
当下,最火的人工智能无疑就是生成式大模型,包括纯大语言模型和多模态模型,所以本次也抱着学习的态度,以大模型发展的时间线来对主要节点的一些生成式语言模型的论文进行分享(论文和分享内容会动态更新)。
2024-03-31 10:55:38
806
原创 GPT-2原理-Language Models are Unsupervised Multitask Learners
因为GPT-2是GPT-1的延续,所以接下来我介绍的内容都是假设你看过或者了解过GPT-1。在更大的模型上进行效果验证;在更大的数据集上进行模型训练和验证;改进了输入的有损编码情况其实本质上GPT-2就是对GPT-1的缺点进行改进、对优点进行放大、为之前的实验结果找到一个自洽的解释。所以这篇论文的介绍本身也不会太多。
2024-03-31 01:31:43
1066
原创 GPT-1原理-Improving Language Understanding by Generative Pre-Training
首先想感慨一波这是当下最流行的大模型的的开篇之作,由OpenAI提出。虽然【预训练+微调】的训练范式最初不是由GPT-1提出,但是基于transformer的【预训练+微调】是由GPT-1提出,这也是现在大模型所用的范式。这篇论文出自18年,比google公司出的bert要早几个月,你去看bert的论文之后发现,其实bert的思路有大部分是来自GPT-1的。细品一下,虽然当时这篇论文平平无奇,但是历史见证它的后劲很强大。下面会一一的记录一下我看了这篇论文后的理解。
2024-03-28 17:54:01
1749
3
原创 BERT原理-Pre-training of Deep Bidirectional Transformers for Language Understanding
上图就是bert利用了transforemr的编码器结构,从最底层的结构可以看出,E2为原始的单词输入,最中输出的的E2对应的embedding向量T2其实已经综合考虑了上下文信息,因为在神经网络(编码器)内部,信息是交叉,而且特别的是,这个编码器结构恰好实现了和ELMo一样的效果,既能看到单词左边的信息,也能看到单词右边的信息,这就是自注意力的好处。官方虽然没说,但是官方的图展示了,句子的结尾其实也是加的[SEP],至此所有的规则就讲完了,我先甩个图,然后把设计的所有点总结一下。
2024-03-14 17:34:00
1111
原创 langchain系列:Model I/O模块之-Prompts
Model I/O模块其实就是提供了语言模型的基础构建接口,那既然是提供构建的接口,我们首先要知道,构建一个模型到底需要哪一些部分。官方给出了一个图例如下:从上面可以看出,在整个工作的流程中,数据通过一定的格式(Format)组织起来,送入到模型中进行预测(Predict),最后将预测结果进行解析(Parse)输出。输入部分语言模型构建部分输出部分。
2023-07-11 17:01:31
1393
原创 langchain系列:langchain入门(一分钟搞定对话机器人)
随着aigc的火热,各大厂商开始提供他们自己的api服务,诸如openai、google、等,还有的直接开源出自己的模型,放到Huggingface提供使用,而LangChain就是一个基于语言模型开发应用程序的框架,它可以很方便的去调用不同公司的api,以及huggingface的资源,为人们提供统一的开发标准,降低开发难度。
2023-06-26 15:57:43
3287
1
原创 基于pytorch的深度学习模型构建案例
在训练模型过程中,如果是利用一条一条的数据进行训练的话,收敛速度太慢,所以通常是小批量数据送入模型,然后反向梯度训练模型,那么要达到此效果,就必须利用pytorch提供的Dataloaders数据加载器不断的小批量输出数据给模型,而Dataloader加载器中有一个参数是Dataset,所以必须先初始化Dataset,然后利用Dataset初始化Dataloader。还有一些隐藏的组成,比如每个神经元要被激活,是需要一个激活函数的,所以每一个神经网络层的每一个神经元的激活函数就组成了激活层。
2022-10-03 00:18:05
2695
2
原创 决策树的实现和调优(sklearn,GridSearchCV)
前言上一篇讲了决策树的详细的原理。并手写了ID3的实现。desision-tree详细原理介绍本篇就从利用现有sklearn的包,实现决策树决策树实现决策树模型简单描述sklearn提供了两种决策树模型DecisionTreeClassifier --分类决策树,用于分类任务DecisionTreeRegressor --回归决策树,用于回归任务参数介绍DecisionTreeClassifier 参数class sklearn.tree.DecisionTreeClassifie
2022-06-21 00:13:25
7534
原创 矩阵分解(EVD-SVD-Funk SVD-LFM-NCF-GMF)
到了深度学习发展的阶段,NCF在LFM的基础上进行了扩展,在矩阵的求解过程中,不再是通过点乘来进行学习,而是直接将用户矩阵和物品矩阵送入到MLP中,进行充分的卷积来代替点乘,它的好处在于代替点乘的同时,可以对多个特征进行深度交叉。在FunkSVD中,需要求解三个矩阵,但是在实际的工程中,如果是基于一个用户打分矩阵进行分解的话,显然是分解为两个矩阵更好解释一些,一个为用户矩阵,一个为物品矩阵,对应行列相乘就是对应的打分情况,所以考虑将。,那么可以分解为如上的右面所示的表达,其计算过程如下。...
2022-05-05 21:50:23
1089
原创 推荐算法评价指标(ACC、查全率、查准率、F1-Score、ROC、AUC,P-R)
推荐系统的评价指标很多,今天介绍:准确率(ACC)、查准率(P精确率)、查全率(R召回率)、F1-score、ROC、AUC
2022-04-27 10:42:49
10932
5
原创 Maven的安装和适配使用教程-保姆级
前言当你看到这篇文章时,其实已经不用明说Maven到底是干什么的了,懂得都懂了吧?这就是一个项目开发中需要的一个工程管理的框架,至于它在工程开发中起到啥作用捏?1.项目构建Maven构建了一个规范,你可以理解为就是一个文件夹目录结构,规定了什么文件放在哪里哪里,有严格的规定,这个规定是灰常优秀滴,导致大家都使用它,当然你也可以不用遵从。2.依赖管理在项目开发中,需要用到很多依赖,也就是很多jar包,maven提供了一个jar的查找、下载、管理的机制,棒棒滴。仓库定义与分类上面说了maven
2022-03-05 15:11:09
2671
3
原创 开源pnn模型demo示例
本文件是pnn模型的简单使用,实现了训练和测试PNN.py#!/usr/bin/env python# encoding: utf-8import torchimport torch.nn as nnimport torch.nn.functional as F# 定义一个全连接层的神经网络class DNN(nn.Module): def __init__(self, hidden_units, dropout=0.): """ hidden_u
2022-02-28 10:08:09
852
原创 pyspark的聚合函数agg使用
pyspark中聚合函数agg的使用作为聚合函数agg,通常是和分组函数groupby一起使用,表示对分组后的数据进行聚合操作;如果没有分组函数,默认是对整个dataframe进行聚合操作。下面从两方面讲agg。第一就是聚合操作的写法,第二是常用的聚合函数from pyspark.sql import SparkSessionfrom pyspark.sql import functions as Fspark = SparkSession.builder.appName('increase d
2022-01-12 10:23:30
7129
原创 pyspark数据处理之----全量查询select和条件查询filter
在spark中,对数据的查询和数据库是有点对其的,有条件查询也有全量查询头文件导入和测试数据创建具体如何创建原始数据,请看上一篇博客(dataframe的8种创建方法)from pyspark.sql import SparkSessionspark = SparkSession.builder.appName('increase delete change select').master('local').getOrCreate()df = spark.createDataFrame([
2022-01-11 10:37:54
12168
2
原创 pyspark下dataframe的8种创建方式
前言在spark下,有很多种创建dataframe的方法,下面会一一例句from pyspark.sql import SparkSessionfrom datetime import datetime,datefrom pyspark.sql.types import *import pandas as pdfrom pyspark.sql import Rowspark = SparkSession.builder.appName('test').master('local').getOr
2022-01-10 09:32:46
6217
原创 推荐系统之--特征工程(用户画像构建)
特征工程往往是推荐系统中必要的一环,而且是最基础最重要的一环,不论是在模型训练阶段还是召回阶段,都需要以特征工程为基础。下面会从几个方面讲解特征工程。
2021-12-31 16:18:16
4586
2
原创 推荐系统之-协同过滤(userCF、itemCF)
什么是协同过滤?通常协同过滤指代就是userCF,和itemCF。userCF也就是基于用户协同,本质就是找到与自己相同的用户,将相似用户有过行为的物品而我没有过行为的物品推荐给我;itemCF是基于物品的协同,本质是找到物品的相似物品,将我有过行为的物品的相似物品推荐给我。所以本质上说,协同就是相似,是一个不断的在找相似的一个过程,既然是寻找相似,那自然要有一个标准来度量相似情况,通常有以下的集中相似描述的机制在介绍相似的描述标准的时,要介绍以下用户物品打分矩阵。通常一个网站如果有打分机制的话,
2021-12-22 11:28:37
1384
原创 推荐系统流程
4.2.2.召回模块写入db(注意召回模块是异步的,也就是说他不是我们每一次请求都要召回一次,而是召回的内容消费完了才做新的召回,通常召回的内容是事先被召回好,存入数据库中的)4.2.1.解析uid的一些信息(比如使用的是手机还是pc,是wifi还是流量,因为可以根据这些信息决定推荐的策略,诸如如果使用的流量,则我们可能不要优先推荐视频信息给他)1.2.将爬取数据进行数据清洗、分类等操作之后,放入人工审核库,为什么需要人工审核呢,因为会有政治,涉黄,时效等需要考虑,或者是纠正前期分类的错误等。...
2021-12-22 09:04:46
1059
原创 关联规则aprior的python实现
#!/usr/bin/env python# encoding: utf-8"""@author: leon@time: 17:15"""import itertoolsimport osimport sysD = [[1, 2, 5], [2, 4], [2, 3], [1, 2, 4], [1, 3], [2, 3], [1, 3], [1, 2, 3, 5], [1, 2, 3]]# 生成经过去重的原始数据列表def sourceData(data): try:
2021-12-01 20:00:43
278
原创 word2vec的原理和难点介绍(skip-gram,负采样、层次softmax)
前言本文仅作一个备忘录,不详细说明word2vec的两种词袋模型(skip-gram和CBOW),后面的记录默认是在skip-gram的基础下完成,即是利用中心词来预测上下文;同时也不涉及数学的推导计算,仅是做一些我认为比较重要的知识纪要。word2vec是什么?word2vec通常是一种进行文本的向量提取的技术,利用单词的共现(共同出现,后续会有详细记录)思想,通过对文本语料库进行训练,得到的每个单词的向量,最后可以通过向量来计算单词的相似性,或者说是共现概率。是有监督还是无监督?word2ve
2021-11-18 13:04:15
6184
6
原创 变量和常量(java 、scala)
在申明变量之前,首先我们要了解清数据类型,因为变量的申明和数据类型的指定是离不开的。数据类型对比javascalabyteByteshortShortintIntlongLongfloatFloatdoubleDoublecharCharbooleanBooleanStringString从中可以看出,java和scala的数据类型可以说是完全对应,区别只是在于书写的时候,java是小写(String例外),sc
2021-10-06 23:46:49
219
原创 如何创建第一个java程序(java程序编写格式)
概述本文主要针对出学java的程序员,帮助掌握如何创建java程序,在此基础上,才能更方便的学习后续知识,让我们边看理论边实践。示例代码展示public class DataType { public static void main(String[] args) { System.out.println("hello world"); } public void test(){ System.out.println("hello test");
2021-10-06 10:23:41
1093
原创 hadoop集群部署之zookeeper安装(五)
前言最开始肯定是要了解,zookeeper是什么?其实zookeeper是一个为分布式框架提供协调服务的,这就是为什么大家都说zookeeper是大数据框架的润滑剂。在这里并不会详细的讲解zookeeper的详细的原理,我们只需要记住,它是对集群内的所有服务器节点进行监控。那如何监控呢?既然是监控就得把zookeeper安装到每一台你想要监控的服务器上,这时候服务器就被监控起来了,但是如何汇总这些监控信息呢,所以还需要有一个leader,其他的监控信息会随时汇总到leader服务器上。当服务器出现什
2021-08-14 10:48:55
249
原创 hadoop集群部署之hive安装(四)
前言首先讲讲hive是什么?hive本身是一个数据仓库工具,那既然是仓库,那就要存东西,**存什么东西呢?**存的是元数据(俗称metadata),那再问,**什么是元数据呢?**元数据并不是真实的数据,可以理解为是一种数据映射表,将非结构化的数据映射为结构化数据。从上图可以看出,hive中的元数据,其实只是一张张的数据映射表,你可以理解为mysql中的表也是这个样子,本身也就是一些映射表,真实的数据其实是存放在hdfs中,每当我们在hive中进行查询的时候,会根据hive中的映射表最终在hdfs上找
2021-08-11 18:26:18
1750
原创 hadoop集群部署之集群配置(三)
集群节点布置方案我会按照以上表格的表格进行集群节点的布置。关于以上的节点是什么意义,请看第一篇所讲的基础内容,这里只做简单的说明:HDFS层面DataNode:具体的存储节点NameNode:可理解为管理整个存储的目录,也就是哪个文件存到了具体的哪个DataNode上SecondaryNameNode:对NameNode的备份,防止挂掉Yarn层面NodeManager:具体的资源管理节点ResourceManager:总的资源管理节点最后再强调一点内容,就是标红色的节点不能布置到同一
2021-08-06 14:44:18
1891
2
原创 hadoop集群部署之ssh免密登录安装(二)
在第一篇关于hadoop集群的文章中主要是讲了关于集群的一些基础原理知识,以及准备了三台独立的虚拟机。在正式进行集群部署时,我们还需要做一点点的准备,那就是ssh的安装,那为什么要在集群部署中安装ssh呢?scp(完全拷贝)试想一下这样一个场景:当你在hadoop100虚拟机上安装好了hadoop,这时候你要拷贝到其他两台虚拟机上,第一种方法就是直接拷贝,用u盘复制出来,这种办法显然不是我们程序员该做的;第二种办法就是利用scp命令行进行拷贝,比如:scp -r scp_test leon@had
2021-08-05 15:42:10
487
原创 hadoop集群部署之基础概念介绍(一)
在进行hadoop集群部署的之前,首先得了解一下hadoop的工作原理。什么是hadoop呢,hadoop是一套大数据处理框架,主要解决海量数据的存储和分析计算。下面就详细看一下hadoop的组成结构,看它是如何解决存储和分析计算的:首先来看看hadoop的结构组件如下Hadoop组成结构这就是hadoop的结构,HDFS解决了数据的存储,MapReduce用于分析计算,这就和上面的对应上了,其中还会有一个Yarn,它的功能主要是做一个任务调度。各个组件的工作的原理是什么,首先看看HDFS,HD
2021-07-25 16:01:10
424
原创 docker常用命令
帮助命令docker version #docker的版本信息docker info #docker的系统信息docker --help #帮助命令镜像命令docker images镜像查询[root@iZbp1cd9ik6hwx0s4en1shZ ~]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhello-world latest d1165f221234 3 months
2021-06-09 21:57:28
92
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人