自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

NLP工程化

专注于Python/C++/CUDA、ML/DL/RL和NLP/KG/DS/LLM领域的技术分享。

  • 博客(730)
  • 资源 (29)
  • 收藏
  • 关注

原创 自定义Graph Component:1-开发指南

可以使用自定义NLU组件和策略扩展Rasa,本文提供了如何开发自己的自定义Graph Component指南。Rasa提供各种开箱即用的NLU组件和策略。可以使用自定义Graph Component对其进行自定义或从头开始创建自己的组件。

2023-11-12 20:56:58 2470

原创 报时机器人的rasa shell执行流程分析

本文以报时机器人为载体,介绍了报时机器人的对话能力范围、配置文件功能和训练和运行命令,重点介绍了rasa shell命令启动后的程序执行过程。

2023-11-11 22:46:12 527

原创 聊天机器人框架Rasa资源整理

Rasa是一个主流的构建对话机器人的开源框架,它的优点是几乎覆盖了对话系统的所有功能,并且每个模块都有很好的可扩展性。参考文献收集了一些Rasa相关的开源项目和优质文章。

2023-11-11 22:42:20 491

原创 rasa train nlu详解:1.2-_train_graph()函数

本文使用《使用ResponseSelector实现校园招聘FAQ机器人》中的例子,主要详解介绍_train_graph()函数中变量的具体值。

2023-11-11 22:37:44 198

原创 rasa train nlu详解:1.1-train_nlu()函数

本文使用《使用ResponseSelector实现校园招聘FAQ机器人》中的例子,主要详解介绍train_nlu()函数中变量的具体值。

2023-11-11 22:37:01 1690

原创 使用ResponseSelector实现校园招聘FAQ机器人

本文主要介绍使用ResponseSelector实现校园招聘FAQ机器人,回答面试流程和面试结果查询的FAQ问题。FAQ机器人功能分为业务无关的功能和业务相关的功能2类。

2023-11-11 22:35:54 751

原创 Rasa NLU中的组件

 Rasa NLU部分主要是解决NER(序列建模)和意图识别(分类建模)这2个任务。Rasa NLP是一个基于DAG的通用框架,图中的顶点即组件。组件特征包括有顺序关系、可相互替换、可互斥和可同时使用。有向无环图(DAG)在很多地方都有用到,比如Spark中等。

2023-11-08 00:23:17 1040

原创 Langchain-Chatchat项目:5.1-ChatGLM3-6B工具调用

在语义、数学、推理、代码、知识等不同角度的数据集上测评显示,ChatGLM3-6B-Base 具有在10B以下的基础模型中最强的性能。ChatGLM3-6B采用了全新设计的Prompt格式,除正常的多轮对话外。同时原生支持工具调用(Function Call)、代码执行(Code Interpreter)和Agent任务等复杂场景。本文主要通过天气查询例子介绍了在tool_registry.py中注册新的工具来增强模型能力。

2023-11-06 22:31:58 3687 7

原创 Langchain-Chatchat项目:4.2-P-Tuning v2使用的数据集

本文主要介绍P-tuning-v2论文中的5种任务,分别为Glue任务、NER任务、QA任务、SRL任务、SuperGlue任务,重点介绍了下每种任务使用的数据集。

2023-11-03 23:07:52 1072 2

原创 Langchain-Chatchat项目:4.1-P-Tuning v2实现过程

常见参数高效微调方法(Parameter-Efficient Fine-Tuning,PEFT)有哪些呢?主要是Prompt系列和LoRA系列。本文主要介绍P-Tuning v2微调方法。

2023-11-03 00:11:48 715

原创 DeepSpeed框架:1-大纲和资料梳理

 DeepSpeed是一个深度学习优化软件套件,使分布式训练和推理变得简单、高效和有效。它可以做些什么呢?训练/推理具有数十亿或数万亿参数的密集或稀疏模型;实现出色的系统吞吐量并有效扩展到数千个GPU;在资源受限的GPU系统上进行训练/推理;实现前所未有的低延迟和高吞吐量的推理;以低成本实现极限压缩,实现无与伦比的推理延迟和模型尺寸减小。特别说明,DeepSpeed在Windows上仅支持推理,不支持训练。

2023-10-12 01:18:26 384

原创 CUDA C编程权威指南:2.2-给核函数计时

本文主要通过例子介绍了如何给核函数计时的思路和实现。实现例子代码参考文献[7],只需要把相应章节对应的CMakeLists.txt文件拷贝到CMake项目根目录下面即可运行。

2023-10-09 00:10:05 259

原创 CUDA C编程权威指南:2.1-CUDA编程模型

本文主要通过例子介绍了CUDA异构编程模型,需要说明的是Grid、Block和Thread都是逻辑结构,不是物理结构。实现例子代码参考文献[2],只需要把相应章节对应的CMakeLists.txt文件拷贝到CMake项目根目录下面即可运行。

2023-10-08 10:49:09 243

原创 Langchain-Chatchat项目:3-Langchain计算器工具Agent思路和实现

本文主要讨论Langchain-Chatchat项目中自定义Agent问答的思路和实现。以"计算器工具"为例,简单理解就是通过LLM识别应该使用的工具类型,然后交给相应的工具(也是LLM模型)来解决问题。一个LLM模型可以充当不同的角色,要把结构化的Prompt模板写好,充分利用LLM的Zero/One/Few-Shot能力。

2023-10-07 23:23:47 1090

原创 Langchain-Chatchat项目:1-整体介绍

基于Langchain与ChatGLM等语言模型的本地知识库问答应用实现。项目中默认LLM模型改为THUDM/chatglm2-6b[2],默认Embedding模型改为moka-ai/m3e-base[3]。

2023-10-07 17:04:35 1547

原创 Langchain-Chatchat项目:1.1-ChatGLM2项目整体介绍

ChatGLM2-6B是开源中英双语对话模型ChatGLM-6B的第2代版本,引入新的特性包括更长的上下文(基于FlashAttention技术,将基座模型的上下文长度由ChatGLM-6B的2K扩展到了32K,并在对话阶段使用8K的上下文长度训练);更高效的推理(基于Multi-QueryAttention技术,ChatGLM2-6B有更高效的推理速度和更低的显存占用)。

2023-10-07 16:52:08 424

原创 Langchain-Chatchat项目:1.2-Baichuan2项目整体介绍

由百川智能推出的新一代开源大语言模型,采用2.6万亿Tokens的高质量语料训练,在多个权威的中文、英文和多语言的通用、领域benchmark上取得同尺寸最佳的效果,发布包含有7B、13B的Base和经过PPO训练的Chat版本,并提供了Chat版本的4bits量化。

2023-10-07 16:49:46 911

原创 Langchain-Chatchat项目:2.1-通过GPT2模型来检索NebulaGraph

在官方例子中给出了通过chain = NebulaGraphQAChain.from_llm(ChatOpenAI(temperature=0), graph=graph, verbose=True)来检索NebulaGraph图数据库。本文介绍了通过GPT2替换ChatOpenAI的思路和实现,暂时不考虑效果。之所以没用ChatGLM2是因为加载模型太慢,调试不方便,不过将GPT2替换为ChatGLM2也很方便。

2023-10-07 16:42:09 305 2

原创 Boost程序库完全开发指南:1.1-C++基础知识点梳理

主要整理了N多年前(2010年)学习C++的时候开始总结的知识点,好长时间不写C++代码了,现在LLM量化和推理需要重新学习C++编程,看来出来混迟早要还的。

2023-10-05 01:19:35 247

原创 Boost程序库完全开发指南:1.2-C++基础知识点梳理

主要整理了N多年前(2010年)学习C++的时候开始总结的知识点,好长时间不写C++代码了,现在LLM量化和推理需要重新学习C++编程,看来出来混迟早要还的。

2023-10-05 01:18:54 352

原创 Boost程序库完全开发指南:1-开发环境和构建工具

Boost官方于2019年12月发布的1.72版编写,共包含160余个库/组件,涵盖字符串与文本处理、容器、迭代器、算法、图像处理、模板元编程、并发编程等多个领域,使用Boost,将大大增强C++的功能和表现力。环境:Windows 10,WSL2,Ubuntu 20.04 LTS,Rider(WSL远程开发),gcc/g++ 9.4.0,boost 1.72.0,libstdc++ 20210601。

2023-10-05 01:17:48 770

原创 CUDA C编程权威指南:1.3-CUDA基础知识点梳理

主要整理了N多年前(2013年)学习CUDA的时候开始总结的知识点,好长时间不写CUDA代码了,现在LLM推理需要重新学习CUDA编程,看来出来混迟早要还的。

2023-10-05 01:16:56 354

原创 CUDA C编程权威指南:1.2-CUDA基础知识点梳理

主要整理了N多年前(2013年)学习CUDA的时候开始总结的知识点,好长时间不写CUDA代码了,现在LLM推理需要重新学习CUDA编程,看来出来混迟早要还的。

2023-10-05 01:16:12 297

原创 CUDA C编程权威指南:1.1-CUDA基础知识点梳理

主要整理了N多年前(2013年)学习CUDA的时候开始总结的知识点,好长时间不写CUDA代码了,现在LLM推理需要重新学习CUDA编程,看来出来混迟早要还的。

2023-10-05 01:15:23 532

原创 CUDA C编程权威指南:1-基于CUDA的异构并行计算

什么是CUDA?CUDA(Compute Unified Device Architecture,统一计算设备架构)是NVIDIA(英伟达)提出的并行计算架构,结合了CPU和GPU的优点,主要用来处理密集型及并行计算。什么是异构计算?这里的异构主要指的是主机端的CPU和设备端的GPU,CPU更擅长逻辑控制,而GPU更擅长计算。CUDA编程难吗?干就是了。

2023-10-05 01:14:11 1211

原创 Llama2-Chinese项目:8-TRL资料整理

TRL(Transformer Reinforcement Learning)是一个使用强化学习来训练Transformer语言模型和Stable Diffusion模型的Python类库工具集,听上去很抽象,但如果说主要是做SFT(Supervised Fine-tuning)、RM(Reward Modeling)、RLHF(Reinforcement Learning from Human Feedback)和PPO(Proximal Policy Optimization)等的话,肯定就很熟悉了。

2023-10-05 01:11:49 368

原创 Llama2-Chinese项目:7-外延能力LangChain集成

本文介绍了Llama2模型集成LangChain框架的具体实现,这样可更方便地基于Llama2开发文档检索、问答机器人和智能体应用等。

2023-10-05 01:10:37 777

原创 Llama2-Chinese项目:6-模型评测

测试问题筛选自AtomBulb[1],共95个测试问题,包含:通用知识、语言理解、创作能力、逻辑推理、代码编程、工作技能、使用工具、人格特征八个大的类别。

2023-10-05 01:09:57 230

原创 Llama2-Chinese项目:5-推理加速

随着大模型参数规模的不断增长,在有限的算力资源下,提升模型的推理速度逐渐变为一个重要的研究方向。常用的推理加速框架包含lmdeploy、FasterTransformer和vLLM等。

2023-10-05 01:08:38 801

原创 Llama2-Chinese项目:4-量化模型

FlagAlpha/Llama2-Chinese-13b-Chat-4bit就是对FlagAlpha/Llama2-Chinese-13b-Chat进行4bit量化后的版本。总结起来就是如何合并,如何量化这2个问题。

2023-10-02 22:48:25 935 4

原创 Llama2-Chinese项目:3.2-LoRA微调和模型量化

提供LoRA微调和全量参数微调代码,训练数据为data/train_sft.csv,验证数据为data/dev_sft.csv,数据格式为"Human: "+问题+"\nAssistant: "+答案。本文主要介绍Llama-2-7b模型LoRA微调以及4bit量化的实践过程。

2023-10-01 23:49:05 1172 1

原创 Llama2-Chinese项目:3.1-全量参数微调

提供LoRA微调和全量参数微调代码,训练数据为data/train_sft.csv,验证数据为data/dev_sft.csv。

2023-10-01 00:05:08 1473

原创 手动实现BERT

本文重点介绍了如何从零训练一个BERT模型的过程,包括整体上BERT模型架构、数据集如何做预处理、MASK替换策略、训练模型和保存、加载模型和测试等。

2023-09-29 23:19:41 1105

原创 手动实现Transformer

Transformer和BERT可谓是LLM的基础模型,彻底搞懂极其必要。Transformer最初设想是作为文本翻译模型使用的,而BERT模型构建使用了Transformer的部分组件,如果理解了Transformer,则能很轻松地理解BERT。

2023-09-29 23:18:14 305

原创 NebulaGraph实战:3-信息抽取构建知识图谱

自动信息抽取发展了几十年,虽然模型很多,但是泛化能力很难用满意来形容,直到LLM的诞生。虽然最终信息抽取质量部分还是需要专家审核,但是已经极大的提高了信息抽取的效率。因为传统方法需要大量时间来完成数据清洗、标注和训练,然后来实体抽取、实体属性抽取、实体关系抽取、事件抽取、实体链接和指代消解等等。现在有了LLM,可以实现Zero/One/Few-Shot信息抽取构建知识图谱。

2023-09-26 00:10:35 662

原创 NebulaGraph实战:2-NebulaGraph手工和Python操作

图数据库是专门存储庞大的图形网络并从中检索信息的数据库。它可以将图中的数据高效存储为点(Vertex)和边(Edge),还可以将属性(Property)附加到点和边上。本文以示例数据集basketballplayer为例,通过nGQL操作和Python脚本两种方式构建图谱。数据[10]和代码[9]详见参考文献。

2023-09-24 20:49:33 1395

原创 NebulaGraph实战:1-NebulaGraph安装和基础操作

1]连接数据库:https://docs.nebula-graph.com.cn/3.6.0/nebula-studio/deploy-connect/st-ug-connect/[6]Graph RAG:知识图谱结合LLM的检索增强:https://www.nebula-graph.com.cn/posts/graph-rag-llm。[8]关于LLM和图、图数据库的那些事:https://www.nebula-graph.com.cn/posts/llm-database。

2023-09-24 20:47:38 463

原创 Llama2-Chinese项目:2.3-预训练使用QA还是Text数据集?

综上所述,加载QA数据时,train_dataset的shape为[3246, 3],而加载Text数据时,train_dataset的shape为[1, 3],可见前者是按照逐行处理的,而后者是合并后处理的。这个回答参考下就行了,还是要以场景为导向来思考,比如要训练一个心理咨询机器人,现在已经有了一个LLM的base模型,如果要增量预训练肯定也是在医疗非结构化文本(比如教材、文献等)上预训练,然后拿心理咨询问答数据进行SFT。预训练使用的LoRA技术,给出pretrain的data为Text数据格式。

2023-09-24 20:42:19 743

原创 《语义增强可编程知识图谱SPG》白皮书

语义増强可编程图谱框架:新一代知识图谱语义框架/引擎、SPG+LLM双驱架构及应用相关进展和应用。

2023-09-18 22:44:30 208

原创 心理健康数据集:mental_health_chatbot_dataset

该数据集包含与心理健康相关的问题和答案的对话对,以单一文本形式呈现。数据集是从流行的医疗博客(如WebMD、Mayo Clinic和HealthLine)、在线常见问题等来源精选而来的。所有问题和答案都经过匿名化处理,以删除任何个人身份信息(PII),并经过预处理以删除任何不必要的字符。

2023-09-18 22:41:46 994

人工智能干货推荐.txt

免费送1000+本人工智能电子书,将近20G人工智能干货资料。包括[01]Python书籍_183;[02]机器学习书籍_144;[03]数据挖掘书籍_86;[04]自然语言处理书籍_72;[05]计算机视觉书籍_83;[06]深度学习书籍_93;[07]强化学习书籍_19;[08]语音技术书籍_19;[09]大数据书籍_49;[10]人工智能商业报告_295

2019-06-20

flasky.zip

绝对多数的网站或APP都需要对用户进行认证,包括用户注册、用户登录、邮件确认、修改密码、修改邮箱等功能。有的还需要绑定手机号码,或者使用微信等第三方账号进行登录。该代码是基于Flask实现社交博客程序的用户认证部分。

2019-05-29

TextCNN的TensorFlow实现

TextCNN的核心点在于可以捕获信息的局部相关性,具体到文本分类任务中可以利用CNN来提取句子中类似N-Gram的关键信息。

2019-01-24

TextRNN的TensorFlow实现

TextCNN擅长捕获更短的序列信息,但是TextRNN擅长捕获更长的序列信息。具体到文本分类任务中,BiLSTM从某种意义上可以理解为可以捕获变长且双向的N-Gram信息。

2019-01-24

ResNet的Keras实现

VGGNet和GoogLeNet等网络都表明有足够的深度是模型表现良好的前提,但是在网络深度增加到一定程度时,更深的网络意味着更高的训练误差。误差升高的原因是网络越深,梯度弥散[还有梯度爆炸的可能性]的现象就越明显,所以在后向传播的时候,无法有效的把梯度更新到前面的网络层,靠前的网络层参数无法更新,导致训练和测试效果变差。所以ResNet面临的问题是怎样在增加网络深度的情况下有可以有效解决梯度消失的问题。ResNet中解决深层网络梯度消失的问题的核心结构是残差网络。

2019-01-22

ResNet的TensorFlow实现

VGGNet和GoogLeNet等网络都表明有足够的深度是模型表现良好的前提,但是在网络深度增加到一定程度时,更深的网络意味着更高的训练误差。误差升高的原因是网络越深,梯度弥散[还有梯度爆炸的可能性]的现象就越明显,所以在后向传播的时候,无法有效的把梯度更新到前面的网络层,靠前的网络层参数无法更新,导致训练和测试效果变差。所以ResNet面临的问题是怎样在增加网络深度的情况下有可以有效解决梯度消失的问题。ResNet中解决深层网络梯度消失的问题的核心结构是残差网络。

2019-01-22

LinkQueue.cpp

LinkQueue.cpp

2014-11-10

二叉树顺序存储结构的基本操作

http://blog.csdn.net/ssw_1990/article/details/40511665代码。

2014-11-08

apache-ant-1.8.3-bin.tar

Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。

2014-11-02

概率与计算

《概率与计算》详细地介绍了概率技术以及在概率算法与分析发展中使用过的范例。《概率与计算》分两部分,第一部分介绍了随机抽样、期望、马尔可夫不等式、切比雪夫不等式、切尔诺夫界、球和箱子模型、概率技术和马尔可夫链等核心内容。第二部分主要研究连续概率、有限独立性的应用、熵、马尔可夫链蒙特卡罗方法、耦合、鞅和平衡配置等比较高深的课题。《概率与计算》适合作为高等院校计算机科学和应用数学专业高年级本科生与低年级研究生的教材,也适合作为数学工作者和科技人员的参考书。

2014-08-21

Git-1.9.4-preview20140611.exe

Git是用于Linux内核开发的版本控制工具。与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。

2014-07-15

python-delicious-master

使用此组件,可以操作delicious。同时,分析源码也可以学习python。http://blog.csdn.net/ssw_1990/article/details/27341239

2014-05-28

menagerie-db.rar

mysql 5.1参考手册中使用的动物园数据库。

2014-05-08

macrodata数据集

利用Python进行数据分析,macrodata数据集。

2014-04-15

小费数据集

利用Python进行数据分析,小费数据集。

2014-04-15

ipython_bug.py

一个含有bug的python文件,主要是通过这个文件,学习ipython中ipdb的使用。

2014-04-07

MySQL源码分析整理

为了实现MySQL的更高级别的性能调优,我们通常需要理解其内部实现机制,并对其进行优化调试。在下面的系列中,我们会分别介绍MySQL的部分内部实现机制。

2013-05-08

JavaScript权威指南

Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。

2013-03-22

Proteus入门教程

本书将简单介绍一下Proteus的使用。在这里,我用的Proteus版本是Proteus 6.7 sp3 Professional。

2013-03-11

知者无畏:一个真实的病毒世界

谈起电脑病毒,广大的读者恐怕都有谈虎色变的感觉,不知道这东西到底躲在什么地方,也不知道它们会对自己做些什么。不知道有谁说过这样一句话“无知者无畏”,我觉得真实情况恰恰相反,真正无畏的人只能是拥有了足够知识的人。人心中最大的恐惧就是对未知的恐惧,恐怖片之所以恐怖,是因为你不知道下面将要发生什么;电脑病毒之所以恐怖,也正是因为你不知道它们是什么,它们能做什么。而在电脑病毒这样一个迫切需要知识的领域,真正专业性的书籍很少,仅有的一些书,不是从哗众取宠的目的出发,拼凑一些骇人听闻的病毒/黑客故事,就是非常简单和粗浅的对80年代的病毒进行教科书似的描述。缺少具有专业性和权威性的著作,对于一些新的病毒和反病毒技术,象VBScript病毒、因特网蠕虫等,更是缺少足够的论述。

2013-03-10

MFC类库详解MFC类库详解

MFC类库详解MFC类库详解MFC类库详解MFC类库详解

2010-09-18

空空如也

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

TA关注的人

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