自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(161)
  • 收藏
  • 关注

原创 【InternLM】大模型的评测——OpenCompass

大模型开源开放评测体系 “司南” (OpenCompass2.0)由上海人工智能实验室科学家团队发布,用于为大语言模型、多模态模型等提供一站式评测服务。其主要特点如下:开源可复现:提供公平、公开、可复现的大模型评测方案全面的能力维度:五大维度设计,提供 70+ 个数据集约 40 万题的的模型评测方案,全面评估模型能力丰富的模型支持:已支持 20+ HuggingFace 及 API 模型分布式高效评测:一行命令实现任务分割和分布式评测,数小时即可完成千亿模型全量评测。

2024-04-23 14:04:20 689

原创 【InternLM】Lagent智能体应用搭建

继承 BaseAction 类;实现简单工具的 run 方法;或者实现工具包内每个子工具的功能;简单工具的 run 方法可选被 tool_api 装饰;工具包内每个子工具的功能都需要被 tool_api 装饰参照官方示例进行部署,实现一个调用和风天气 API 的工具以完成实时天气查询的功能。问题1:请帮我查询今天上海的天气问题2:请帮我查询4月23日到4月25日上海的天气情况API似乎不支持这种天气范围的查询AgentLego 在这方面提供了较为详尽的文档,文档地址为。

2024-04-23 10:27:22 827

原创 【InternLM】XTuner微调LLM

LLM大模型的参数量以B(10亿)为单位,动辄迁百亿、千亿。如何在已经训练好的、性能优异的底座模型基础上,通过微调的方式,来实现对模型的性能优化、知识注入、领域迁移和风格对齐等调整,是一件非常有使用场景的工作。Xtuner是上海人工智能实验室推出的用于LLM微调的一站式工具,其:1)模型方面:支持InternLM、Qwen、Baichuan、ChatGLM等国内主流开源大模型,以及Llama、Mixtral和Gemma等国外优秀开源大模型;

2024-04-22 09:05:07 872

原创 【InternLM】LMDeploy部署实践

LMDeploy高效的推理速度。通过引入持久批处理(即连续批处理)、阻塞 KV 缓存、动态拆分与融合、张量并行、高性能 CUDA 内核等关键特性,提供了比 vLLM 高1.8倍的请求吞吐量;vLLM是一款开源的被广泛使用的大模型推理库,其支持大量的Hugging Face模型, LMDeploy广泛将vLLM作为对比对象)高效的量化策略。LMDeploy支持权重和KV量化,INT4量化的推理速度是FP16的2.4被。量化效果已经得到了OpenCompass评估的验证。方便的分布式部署。

2024-04-16 09:03:28 642

原创 【InternLM】茴香豆:搭建你的RAG智能助理

是 InternLM开源的基于 LLM的群聊知识助手,其提供了一整套前后端 web、android、算法源码,支持工业级商用。其最低运行运行成本低至 1.5G 显存,无需训练适用各行业。

2024-04-10 10:42:50 674

原创 【InternLM】轻松玩转书生·浦语大模型趣味 Demo

该chat-model是利用《西游记》剧本中所有关于猪八戒的台词和语句,以及Chat-GPT-3.5生成的相关问题结果,基于InternLM2-chat-1.8b进行全量微调得到的模仿猪八戒语气的聊天语言模型。在第一期实战营中,部分学员运用 InternLM2-Chat-1.8B 模型进行微调训练,产生了一些效果不错的role play模型,本期给出的示例是。是上海人工智能实验室提供的18亿参数“小体量”语言模型,共有三组模型(base model、经过STF的模型和经过指令对其的chat model)

2024-04-02 23:14:33 312

原创 【InternLM】书生·浦语大模型全链路开源开放体系

介绍了“书生·浦语”大规模语言模型的开源生态系统,涵盖InternLM2模型、数据源、训练、调优、部署、评估和应用。InternLM2模型:目前开源的有InternLM2-7B和InternLM2-20B,支持20w token的上下文窗口;在推理、数学和代码等任务上的评测比肩ChatGPT;优秀的对话和创作体验;支持多种工具多轮调用。数据:在发布了6000+数据集,为中国大模型语料数据联盟开源数据服务指定平台,最新发布了万卷-CC的1T token的高质量英文网络文本数据集。

2024-03-29 10:14:13 292

原创 【OpenMMLab】模型训练常见策略

深度学习模型训练常见策略

2023-02-04 23:55:51 653 1

原创 【OpenMMLab】图片分类发展简史

图片分类发展历史

2023-02-03 23:49:36 1391 2

原创 【OpenMMLab】框架算法体系

简单介绍openmmlab框架

2023-02-02 00:51:21 313

原创 【论文解析】从头开始打造Transformer

在谷歌大作Attention is all you need中提出了一种基于seq2seq架构的self-attention特征抽取机制,兼具CNN的并行化优点和RNN的长距离依赖特点,成为后续以MLM为主要任务的Bert、Roberta、albert预训练模型(利用Transformer中的Encode block)以及以AR-ML为主要任务GPT系列模型(利用Transformer中的Decode block)的主要模块,并在各类任务上取得了前所未有的成功。本博客在Transformer浅析一文中已经

2020-09-19 17:27:56 609

原创 【NLP工具】和文本处理相关的Linux命令小结

1. cat/head/tail显示文件开头或结尾的若干行cat -n 5 1.txt # 显示前5行cat -n -5 1.txt # 显示非前5行的其它行head -n 5 1.txt # 显示前5行tail -n 5 1.txt # 显示末尾5行2. grep用于文本内容查找,可在一个或多个文件中搜索并返回符合指定字符串模板的行。grep的命令行格式为grep [选项] pattern file,其中pattern即是字符串模板(支持正则表达式),file是路径或

2020-09-19 13:18:11 445

原创 [Pytorch] spatial dropout的实现

dropout是神经网络中一种常用的正则化技术,其通过随机失活神经元元素,降低单元之间的相互依赖关系,从而降低过拟合的风险。实验表明,在Embedding层和CNN层后直接使用常规的dropout策略,效果并不显著,其原因可能:完全随机的dropout的无序性有损于神经元间的空间关联性,从而降低其捕捉特征的能力。因此学者们提出了一种在某些轴上完全dropout的策略,即spatial dropout。以Embedding层(张量维度为batch*timesteps*embedding)后的dropout为

2020-09-13 14:04:52 3011

原创 【NLP工具】Vim常用命令小结

Vim是解决文本快速处理(尤其是服务器端)的神器,本文简单总结下常用的命令。0. 配置文件1. 基本概念和功能1.1 模式1.2 界面设置:set number 显示各行行号, set nonumber取消该功能:set list 显示制表符和行末, set nolist取消该功能:set fileencoding 查看当前文件编码:e ++enc=gb18003 强制采用某种编码重新打开本文档(临时的)2. 光标移动2.1 行内移动-> 右箭头,向右逐字符移动

2020-09-06 13:07:59 187

原创 【python基础】python中下划线的应用场景

python中普遍在变量或方法命名时使用单下划线_或双下划线__的定义方式,本文介绍五种下划线模式。1. 前单下划线_var这是PEP8的一种规定:即用来表示内部变量或方法。仅用作提醒,并不影响其调用。但注意作为外部模块被导入时,若采用通配符(即from xxx import *),前单下划线的变量或方法无法被导入,除非该外部模块中定义了包含该变量或方法的__all__列表。2. 后单下划线var_用来定义变量名或函数名时,防止与内置关键字冲突,如定义变量class_。3. 前双下划线__var

2020-08-20 21:36:48 193

原创 【python进阶】模仿scikit-learn打造fit和transform流水线

scikit-learn中为各preprocessor、classsifier和estimatior涉及了统一的fit、transform和fit_transform接口,方便了用户的理解和调用。本文模拟其设计理念,设计了一套fit和transform流水线。import typingimport abcimport functoolsimport numpy as npdef transform_validate(func: typing.Callable): @functools.

2020-08-12 11:51:03 352

原创 【python基础】h5py库的基本使用

一个HDF5文件是一种存放两类对象的容器:dataset和group. Dataset是类似于数组的数据集,而group是类似文件夹一样的容器,存放dataset和其他group。在使用h5py的时候需要牢记一句话:groups类比词典,dataset类比Numpy中的数组。...

2020-08-08 17:21:20 4095

原创 利用深度学习进行生存分析——DeepSuv模型小结

局部似然(partial likelihood):L=\prod\limits_{i:E_i=1}\frac{\exp^{\hat h_\theta(x_i)}}{\sum\limits_{j\in R(T_i)}\exp^{\hat h_\theta(x_j)}}其中i,j均为样本编号,E=1表示终止事件(死亡、复发)发生;R(T_i)表示满足T_j>T_i条件,对应的损失函数(定义为neg log partial likelihood loss):l=-\log L=-\sum\limits_{

2020-08-08 14:07:30 7969 4

原创 【python基础】装饰器@property

在装饰器详解中介绍了装饰器的基本用法,而python语言中内置了一些装饰器,本文介绍在类的方法定义中常用的装饰器: @property

2020-08-06 19:58:01 285

原创 【python基础】对于函数闭包的理解

在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。闭包在运行时可以有多个实例,不同的引用环境和相同的函数组合可以产生不同的实例。...

2020-08-05 22:46:37 269

原创 【python基础】装饰器详解

装饰器(decorator)是一种常用的设计模式/思想,主要用于在不修改原函数功能的基础上添加额外的功能,从而实现非业务公共逻辑代码的剥离,达到解耦的目的。从具体实现上来说,装饰器可简单理解为函数的函数的嵌套式结构,外层函数返回内层函数对象,而内层函数本身涵盖被装饰函数以及额外功能逻辑的组合。1. 装饰器的基本用法首先以一个简单而经典的例子引出装饰器的基本写法:要求提供一个函数,能够统计任意一个函数运行的时间。非装饰器版本:将函数对象作为参数传入时间统计函数中import timedef

2020-08-05 20:12:52 348

原创 【Python进阶】抽象类的使用

抽象类是不能实例化的类,其职责是定义子类应实 现的一组抽象方法。优点:规定继承它的子类去实现它所要求的方法。相似功能的归一化,规范代码。处理继承问题方面更加规范、系统,明确调用之间的相互关系,使得继承层次更加清晰。从设计角度去看,如果类是从现实对象抽象而来的,那么抽象类就是基于类抽象而来的。从实现角度来看,抽象类与普通类的不同之处在于:抽象类中有抽象方法,该类不能被实例化,只能被继承,且子类必须实现抽象方法。collections.abc — Abstract Base Classes for C

2020-08-03 17:39:46 995

原创 【python基础】基于sorted的排序函数

sorted是Python的内置排序函数,其基本用法为:sorted(objs, key:key-func, reverse: bool)->List:其中排序对象objs是一个可迭代对象,参数key是一个key function,表示排序所参考的值,参数reverse表示排序逻辑,默认为False,即升序排列,可设置为True实现自动降序。1. 常用用法:字典排序字典排序是sorted函数最常用的地方,即根据字典内的某个key值的大小进行排序。我们以一个学生考试成绩的例子进行介绍:# 学

2020-08-02 16:20:32 1803

原创 【python进阶】类的__slots__属性

python作为一门动态语言,可以在对象创建后动态的添加属性和方法。示例1:动态添加属性class Dog(object): def __init__(self, name, age): self.name = name self.age = agedog = Dog('ahuang', 10)dog.home = 'China' # 直接外部定义print(dog.home) 示例2:动态添加属性class Dog(object

2020-07-29 23:21:01 408

原创 对python中变量作用域、命名空间、引用和赋值的理解

在Python中并不是所有的语句块中都会产生作用域。只有当变量在Module(模块)、Class(类)、def(函数)中定义的时候,才会有作用域的概念。第一,两者的功能不同。global关键字修饰变量后标识该变量是全局变量,对该变量进行修改就是修改全局变量,而nonlocal关键字修饰变量后标识该变量是上一级函数中的局部变量,如果上一级函数中不存在该局部变量,nonlocal位置会发生错误(最上层的函数使用nonlocal修饰变量必定会报错)。第二,两者使用的范围不同。global关键字可以用在任何地方

2020-07-28 23:36:47 817

原创 typing模块: 类型标注的有效工具

能够帮助IDE进行类型检测和自动补全提示

2020-07-27 23:36:25 619

原创 【文本匹配】MatchZoo的基本使用

在前序文章中分别介绍了文本匹配的基本应用场景以及两大主流匹配范式:表示型匹配模型和交互型匹配模型。本文介绍一款文本匹配的基本工具:MatchZoo,其囊括了常见的文本匹配模型,免去重复造轮子的麻烦,且提供了基于Tensorflow和Pytorch的两个版本。本文按照【数据集准备】——>【模型训练】——>【模型使用】的常规顺序,介绍pytorch版本的基本使用。一、数据准备MatchZoo按照DataPack——>Preprocessed——>DataSet——>DataL

2020-07-26 01:10:11 2546 2

原创 【序列标注】CRF++的基本使用

条件随机场(conditional random filed, CRF)是深度学习算法运用于文本序列标注任务前,性能最优异的相关技术之一。即使在深度学习时代,将CRF层接于底层编码层之上仍是序列标注任务的baseline之一。CRF++是CRF算法的实现,虽然在深度学习时代的使用面有所减少,但作为经典工具仍值得了解其基本用法。0. 工具安装CRF++工具包以及本文案例所使用的【人民日报】标注语料的下载请戳链接,提取码:egs1压缩平台内包含适用于windows平台的包和linux平台的tar包。使用

2020-07-22 13:51:34 1498

原创 【动态规划】最大公共子序列和最大公共子串

"""DP法求解最大公共子序列问题:求string1和string2中最长的公共子序列(可不连续)的长度中间状态 M[i,j]表示截至到string[i]和string[j]的序列长度"""def max_cls(string1, string2): M = [[0 for _ in range(len(string2)+1)] for _ in range(len(string1)+1)] # string前补充初始位,值默认为0 for i in range(len(

2020-07-21 23:43:56 602

原创 【动态规划】最短编辑距离

"""采用DP算法实现最小编辑距离状态变量:M[i][j] 截至到string1的第i个字符和string2的第j个字符,改为一样的所需的编辑距离"""def MED(string1, string2): M = [[0 for _ in range(len(string2)+1)] for _ in range(len(string1)+1)] for i in range(len(string2)+1): M[0][i] = i for j in r

2020-07-21 23:42:12 235

原创 【图】用python实现有向图的DFS

# 1. 创建Vertex对象class Vertex(object): """ 节点对象,在基础节点对象的基础上,添加了关于着色、前驱节点以及距离的相关属性和方法 """ def __init__(self, key): self.key = key self.connectedTo = {} # 存放指向的其它节点,以Vertex:连接边weight的 self.color = "white" # BFS中的状态

2020-07-21 23:41:05 1809

原创 【文本匹配】交互型模型

表示型的文本匹配模型存在两大问题:(1)对各文本抽取的仅仅是最后的语义向量,其中的信息损失难以衡量;(2)缺乏对文本pair间词法、句法信息的比较而交互型的文本匹配模型通过尽早在文本pair间进行信息交互,能够改善上述问题。基于交互的匹配模型的基本结构包括:(1)嵌入层,即文本细粒度的嵌入表示;(2)编码层,在嵌入表示的基础上进一步编码;(3)匹配层:将文本对的编码层输出进行交互、对比,得到各文本强化后的向量表征,或者直接得到统一的向量表征;(4)融合层:对匹配层输出向量进一步压缩、融合;(5

2020-07-21 23:36:47 4729 1

原创 【文本匹配】表示型模型

基于表示的匹配模型的基本结构包括:(1)嵌入层,即文本细粒度的嵌入表示;(2)编码层,在嵌入表示的基础上进一步编码;(3)表示层:获取各文本的向量表征;(4)预测层:对文本pair的向量组进行聚合,从而进行文本关系的预测对于对称的文本匹配任务,采用共享的编码器和文本表示DNNs无疑是合理的选择,从而也可以获取各文本在统一语义空间的表示方法。基于表示的匹配模型结构紧凑,可变的花样并不多,主要集中在:(1)如何更好的获取文本表征,即图中编码器和DNNs如何构造;(2)如何更好的比较文本表征间的

2020-07-20 23:53:47 2038 1

原创 【文本匹配】概述

文本匹配是NLP中的重要基础任务,宽泛的讲,任何评判两句话之间关系的问题都可视为文本匹配问题。其应用领域包括但不限于:(1)句子相似度(sentence similarity)/句子复述(paraphrase identification)判断两段文本是否为含义相同,这是一个典型的二分类问题(2)然语言推理(Natural Language Inference)/文本蕴含识别(Textual Entailment)判断【前提文本A】(premise)和【假设文本B】(hypothesis)是否构成语

2020-07-20 23:25:20 1226

原创 【文本分类】常见文本分类深度学习模型汇总

在深度学习被广泛用于NLP之前,文本分类任务的常见pipeline为:(1)人工/半自动特征抽取:包括one-hot编码、count features、TF-IDF、词性/句法信息等等(2)分类器的构造:包括LR、NB、SVM、Xgboost及模型融合在DNN模型应用于语言模型大获成功,进而提出各类词向量(如word2vector、fasttext、glove)后,一个自然而然的问题就是:**如何表达句子、甚至整个文档? **,这也是将深度学习模型运用于文本分类时的核心步骤。本文按照句子向量编码的En

2020-07-17 09:43:53 6894

原创 【剑指offer】剪绳子

【题目】给你一根长度为n的绳子,请把绳子剪成整数长的m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[1],…,k[m]。请问k[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。显然,可以尝试着将问题规模减小并挖掘不同规模问题间的关系。思路一: 将f(n)转变为max(f(n-i)*i)问题,其中i为切分的那段长度为i根据这个思路,可分别写出对应的递归方法、带备忘的递归方法以及DP方法。

2020-06-25 15:54:59 256

原创 【最优二叉树】Huffman树

Huffman树,又称作最优二叉树,是一种用于信息编码的数据结构。其通过对比各元素的频率/数量,自底向顶构建一颗二叉树,频率越低的元素越在底部。在Huffman树中,所有元素均为叶子节点,而中间节点和根节点用于记录两颗孩子节点频次和,从而避免编码过程中可能存在的共用前缀的问题。Huffman树具备如下的基本功能和属性:(1)构建:基于元素频率,自底向顶构建最优二叉树;(2)编码:从root开始,设定左为0,右为1,沿着路径进行编码,可以证明这种编码形式是信息量最优的编码。根据Huffman树的基本属

2020-06-19 22:10:12 946

原创 【字典树】用python实现Trie树

字典树常用做高效的文本词语保存,适用于敏感词过滤、关键词提取等场景。在字典树中相同前缀的词之间共享相同的树节点和路径。字典树结构一般包括如下功能和属性:(1)构建;(2)添加;(3)删除;(4)前缀统计;(5)搜索实现一:通过字典的嵌套来实现class Trie(object): """ 实现1:通过python自带的字典结构 具有如下基本功能: (1)根据一组words进行TrieTree的构建 (2)添加某个word (3)查询某个word

2020-06-19 22:02:28 2060 2

原创 二分搜索及其问题拓展

二分搜索是适用于有序数组的高效搜索方式,本文先介绍二分搜索的递归和非递归形式,然后将其拓展到类似问题。1. 二分搜索的基本实现1.1 递归实现1.2 非递归实现2. 二分搜索的问题拓展2.12.2 模糊边界问题...

2020-06-17 22:47:08 179

原创 【动态规划】数组最长上升子序列问题(LIS)

相较于最长上升子串问题,LIS问题并不严格要求连续的子串,其求解难度也有所提升。在尝试将该问题由nnn规模缩减时,我们不光要考虑n−1n-1n−1规模的,还需要考虑所以更小规模的子问题。因为对于任何位置结尾的最长子串,无法确定其上一个数字在原始数组的什么位置。据此,我们定义如下的状态变量和状态转移函数。状态变量dp[i]: 以数组nums[i]为结尾的最长子串长度状态转移函数: dp[i]=max⁡(dp[j]+1,1)ifj<i&nums[j]<nums[i]dp[i]=\ma

2020-06-16 22:30:46 442

空空如也

空空如也

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

TA关注的人

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