- 博客(270)
- 收藏
- 关注
原创 NLP: SBERT介绍及sentence-transformers库的使用
bi-encoder是一种独立编码方式,即输入的两个文本会被分别编码为独立的向量,然后通过计算这两个向量的相似度来判断文本之间的关系。Sentence-BERT(简写SBERT)模型是BERT模型最有趣的变体之一,通过扩展预训练的BERT模型来获得固定长度的句子特征,主要用于句子对分类、计算两个句子之间的相似度任务。三元组网络架构的SBERT模型的任务计算出一个特征,使锚定句和正向句之间的相似度高,锚定句和负向句之间的相似度低。在SBERT中,通过汇聚所有标记的特征来计算整个句子的特征。
2024-10-09 21:00:00
2389
原创 FastAPI: websocket的用法及举例
WebSocket 是一种在单个TCP连接上进行全双工通信的协议,允许客户端和服务器之间相互发送数据,而不需要像传统的HTTP请求-响应模型那样频繁建立和断开连接。
2024-09-30 22:40:16
1451
原创 NLP:BERT的介绍并使用该模型计算文本相似度
Transformer中的位置编码用于为输入序列中的每个词提供位置信息,以弥补模型中缺少顺序感的缺陷,使模型能够捕捉词汇的相对顺序和位置信息。Transformer中的编码器的作用是提取原句中的特征值。一个编码器的输出作为下一个编码器的输入。
2024-09-28 20:04:39
1164
原创 NLP:命名实体识别及案例(Bert微调)
这里使用NER任务中常用的数据集:CoNLL-2003,该数据集最早由 CoNLL(Conference on Computational Natural Language Learning)共享任务发布,广泛应用于自然语言处理中的 NER 任务。该数据集中训练集共14041条,验证集共3250条,测试集共3453。"id": "0",tokens表示文本中的单词。所有的tokens组合起来就是句子的原始文本。NER任务中需要为数据集中的每个单词都会被标注相关的标签。chunk_tags表示短语块标签。
2024-09-22 19:19:26
1221
1
原创 Rasa: Rasa Core中的相关概念及用法
与故事一样,规则也是对话管理模型的训练数据。但与故事不同的地方在于,规则可以保证,当某个意图出现时,无论什么样的上下文都能百分百触发某个或多个特定的动作时。所以,规则没有泛化能力。
2024-09-11 20:00:00
922
原创 LangChain:与RAG相关的模块
本篇博客主要整理LangChain中与RAG(Retrieval-Augmented Generation,即检索增强生成)相关的模块。
2024-08-12 17:42:17
590
原创 在Docker中部署Rasa NLU服务
Rasa是一个开源的机器学习框架,专为构建基于文本和语音的对话驱动型自动化智能客服助手而设计。它能够克服传统客服的部分缺陷,提供自然语言理解(Rasa NLU)和对话管理(Rasa Core)两大核心功能。Rasa NLU负责用户意图识别、实体提取等,而Rasa Core则基于对话历史和用户输入,预测并决定下一步的对话动作。
2024-08-07 11:16:27
1259
原创 LangChain: Runnable的定义和使用
在LangChain中,Runnable是LangChain中用于定义一个可运行对象的抽象接口。它允许开发者定义任何执行某种操作的逻辑单元,并通过标准化的方法使其能够在更大的系统中无缝协作。
2024-07-31 16:07:40
2708
原创 FastAPI的简单用法
FastAPI 是一个用于构建高性能Web应用程序和API接口的Python框架。其与flask的最大区别在于:FastAPI基于Starlette和Pydantic,支持异步编程,能够提供高并发和高性能。关于Starlette和Pydantic。
2024-07-23 20:30:43
718
原创 Fabric:Fabric-Gateway-Go的使用方法
是Hyperledger Fabric v2.4及更高版本中引入的一项服务,它位于Fabric Peer节点中,通过一个简单的gRPC接口服务于客户端应用。将交易提交逻辑从客户端应用程序中剥离出来,可以减轻开发者的负担,并优化网络流量和安全性。支持的语言有:JavaScript/TypeScript、Java、Go及Python等。这里仅以为例来说明。需要说明一点,与Fabric-SDK相比,不能部署链码,所以在使用开发区块链应用之前,需要先自行完成通道及链码的部署。
2024-07-20 22:49:05
1679
1
原创 利用react和chainlit开发大模型结果人工评测平台
利用LLM的prompt做了个简单的服务推荐助手,依据用户的提问找出合适的服务项目推荐给的用户。为了测评prompt的效果,使用react+chainlit开发了一个简单的效果测评平台。在该平台上,可以模拟用户向LLM发出问题,并对大模型返回的服务项目进行评判。鉴于后端prompt暂时无法公开,这里仅公开前端的react代码,至于后端代码可以参考chainlit官方提供的样例(
2024-07-15 14:05:32
498
原创 React:useState和useEffect
最近因为想要开发一个简单的应用才开始接触React。但是并没有系统学习React,所以这篇博客可能会写的不够专业。
2024-07-12 22:54:26
723
原创 Python:正则表达式相关整理
最近因为一些原因频繁使用正则表达式,因为以前系统整理过关于正则表达式的相关知识,所以这里仅记录使用期间遇到的问题。本文内容基于re包。
2024-07-12 17:26:44
627
原创 远程过程调用协议gRPC及在go环境下的使用
远程过程调用(Remote Procedure Call,PRC是一种进程间通信技术,它使得程序可以像调用本地函数一样调用远程服务器上的函数。RPC 屏蔽了底层的通信细节,让开发者能够更专注于业务逻辑,而无需关心网络编程的复杂性。
2024-06-26 14:57:45
1037
1
原创 Python并发编程:多线程
全局解释锁(Global Interpreter Lock,简称GIL)是Python(特别是CPython)解释器中的一个机制,这个机制会限制同一时间只有一个线程执行Python字节码。
2024-05-25 16:45:02
929
1
原创 Python并发编程:多进程
并发编程指的是在一个程序中同时执行多个独立的任务(或操作),使得这些任务看起来是同时执行的。并发编程有多种实现方式,这里仅介绍多线程和多进程。模块中,通常使用消息传递机制进行进程之间的通信(尽量避免使用锁这类同步原语)。
2024-05-23 17:51:57
612
原创 Python使用asyncio包实现异步编程
在Python中实现异步函数的定义需要两个关键字(async和awaitasyncasync关键字声明一个异步函数。它可以在执行过程中暂停并允许其他代码执行。当你调用一个异步函数时,它会立即返回一个协程对象而不是实际的结果。
2024-05-15 20:03:31
1165
原创 HTTP协议及Python实现
HTTP(Hypertext Transfer Protocol)是一种用于传输超文本数据的应用层协议。它是万维网上数据交换的基础,定义了客户端和服务器之间进行通信的规则。
2024-05-12 22:50:53
1094
原创 创建React项目(新手小白篇)
React.js 是一个由 Facebook 开发的 JavaScript 库,用于构建用户界面。它是一个用于构建交互式的、可重用的 UI 组件的开源库。React 主要用于构建单页面应用(SPA),但也可以与其他 JavaScript 库和框架集成,用于开发更复杂的应用程序。
2024-05-12 10:46:44
1186
原创 LangChain:输出封装OutputParser
LLM模型的输出通常都是字符串形式,Langchain中的输出封装`OutputParser`可以将其转化解析成结构化对象。
2024-04-24 10:53:14
2785
原创 LLM:检索增强生成(RAG)
其基本思想是利用信息检索的技术,从大规模语料库(存储在向量数据库)中检索出与当前任务相关的文本片段,并将这些文本片段作为输入提供给生成模型,以引导生成模型产生更准确、更相关的文本输出。通过预训练的方式,GPT模型能够学习得到通用的文本表示,从而在各种自然语言处理任务中表现出色,包括文本生成、文本分类、问答等。简单地说,嵌入(Embedding)思想可以视为一种尝试通过用向量来表示所有东西的“本质”的方法,其特性是“相近的事物”由相近的数表示。参数调整输出的文本向量的维度。
2024-04-03 18:16:02
1605
原创 LLM:函数调用(Function Calling)
虽然大模型能解决很多问题,但大模型并不能知晓一切。比如,大模型不知道最新消息(GPT-3.5 的知识截至 2021年9月,GPT-4 是 2023 年12月)。另外,大模型没有“真逻辑”。它表现出的逻辑、推理,是训练文本的统计规律,而不是真正的逻辑,所以有幻觉。所以大模型需要连接真实世界,并对接真逻辑系统。这就需要用到“函数调用”。让用户能够使用高效的外部工具、与外部API进行交互。函数调用(Function Calling)可以。在使用GPT模型进行函数调用时,需要用到。
2024-03-31 18:39:09
2801
1
原创 JSON Schema及其用法
本篇主要介绍JSON Schema的基本语法,必要时会使用python代码来验证。JSON Schema是一种用于描述的规范,可以用来定义JSON数据对象的结构、格式和约束条件。通过JSON Schema,可以对JSON数据进行验证、校验和文档化,确保数据的正确性和完整性。
2024-03-30 17:30:34
3564
原创 GPT:多轮对话并搭建简单的聊天机器人
多轮对话能力至关重要,它不仅能深化交流,精准捕捉对方意图,还能促进有效沟通,增强理解。在智能客服、教育辅导等领域,多轮对话更是提升服务质量、增强用户体验的关键。
2024-03-28 15:30:39
3950
2
原创 LLM: Prompt的使用
本文用的LLM是openai的gpt系列。Prompt是输入给AI模型的文本或语句,用来引导大模型(Large Language Model, LLM)生成相关的输出。好的prompt可以提高大模型输出的准确性和可靠性。。
2024-03-25 19:58:28
2463
原创 Fabric2.2:在有系统通道的情况下搭建应用通道
Fabric-SDK-GO的当前版本没有办法在没有系统通道的情况下创建应用通道,而Fabric的最新几个版本允许在没有系统通道的情况下搭建应用通道。为了解决这个矛盾并使用Fabric-SDK-GO完成后续的项目开发,所以只能将Fabric做降级。出现这种错误是因为在docker配置文件中指定了系统通道文件路径,docker容器会自己创建相关文件。本篇博客不会完整地介绍整个系统通道的搭建过程,这里主要是为了配合使用Fabric-SDK-GO。接下来使用如下命令创建应用通道并配置各个组织的锚节点。
2024-01-12 17:15:32
1512
原创 Fabric:使用GoLand+Fabric-SDK-Go操作Fabric网络(附代码)
本篇博客主要记录使用Fabric-Sdk-Go@1.0.0操作FabricV2.2.10网络的整体代码及错误记录。涉及创建通道、安装及实例化链码、链码执行等过程。
2023-12-20 13:22:30
2458
11
原创 Fabric:链码的部署及执行
Tips:peer lifecycle chaincode package命令只是将链码打包成一个tar格式的文件,这个过程不需要与具体的peer节点交互,因此这个命令的执行不需要事先绑定节点。Fabric中链码的部署一般包括以下步骤:编写链码->打包链码->安装链码->实例化链码->部署链码等。Tips: 虽然在fabric_test网络中创建了3个peer节点,但链码不一定需要在所有peer节点上都安装。安装链码主要负责将将链码部署到每个需要执行链码的Peer节点上。查看peer节点已经安装的链码。
2023-12-06 18:21:43
2628
3
原创 Fabric:创建应用通道
两部分需要频繁的设置环境变量,尤其是当需要添加的peer节点越多时,整个过程比较繁琐并且容易出错。并且给组织添加锚节点的时候也需要执行很多命令。Tips:在执行这条命令的时候要保证环境变量FABRIC_CFG_PATH为空值,若不为空,需要使用-configPath参数指定。通道创建完成后,需要将orderer节点和peer节点加入都通道中。在通道配置信息中包含了每个组织的锚节点信息,每个通道都可以通过使用。这里一共有3个peer节点要添加到通道上,这里仅以。文件来完成节点的添加及锚节点的设置。
2023-12-02 21:34:14
1909
2
原创 Fabric:搭建自定义网络
可以根据要搭建的网络的需求在在文件中修改相关的配置。两个组织:Org1, Org2。Org1中有2个peer节点,而Org2中有2个peer节点,另外还有1个orderer节点。
2023-11-28 17:14:43
3208
原创 Fabric: 使用InvokeChaincode实现跨通道数据访问
因为工作中遇到一些问题考虑使用Fabric的跨通道链码调用方法InvokeChaincode()来解决,这篇文章主要是记录以下在Fabric测试网络中InvokeChaincode()的使用过程及遇到的问题。
2023-11-09 17:57:06
1122
5
原创 Hyperledger Fabric搭建测试网络
本文使用的Fabric版本:V2.5.4Ubuntu系统:16.04LTS前序文章已经详细介绍了如何安装部署Hyperledger Fabric系统,这里不再赘述。本篇文章主要介绍如何使用Fabric的测试网络。为了方便,。
2023-10-26 19:45:00
2209
5
原创 Ubuntu系统下配置安装区块链Hyperledger Fabric(新手小白篇)
有些安装过程比较简单的,不会详细赘述。主要还是集中在Hyperledger Fabric的配置上。本篇主要介绍在Ubuntu系统上安装Hyperledger Fabric的过程。这里使用的Ubuntu:16.04 LTS。
2023-10-15 19:13:20
3303
原创 布隆过滤器及其用法
布隆过滤器(Bloom Filter, BF)是由Howrad Bloom在1970年提出的一种具有高效时间和空间效率的二进制向量数据结构,用来检测一个元素是不是属于这个集合。注意,布隆过滤器只判断是否出现在集合中,无法给出元素在集合中的具体位置。
2023-10-07 17:10:10
318
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人