- 博客(413)
- 资源 (1)
- 收藏
- 关注
原创 LLM 系列 | 07:吴恩达ChatGPT Prompt课程实践:以智能客服邮件为例
例如,在一个特定的短语中,“我的最爱食品"最有可能的下一个词是"比萨”,其次最有可能的是"寿司"和"塔可"。因此,在温度系数为零时,模型将总是选择最有可能的下一个词,而在较高的温度系数下,它还将选择其中一个不太可能的词。这里指的文本扩展(Expanding)是将短文本,例如一组说明或主题列表,输入到大型语言模型LLM中,让模型生成更长的文本,例如基于某个主题的电子邮件或论文。
2023-06-08 23:39:54
原创 LLM 系列 | 06:ChatGPT Prompt实践:文本摘要&推断&转换
大型语言模型的一个非常好的特点是,对于许多这样的任务,你只需要编写一个prompt即可开始产生结果,而不需要进行大量的工作。同样,如果你试图总结在线购物电子商务网站的许多评论,对于这些评论来说,弄清楚是什么物品,谁制造了该物品,弄清楚积极和消极的情感,以跟踪特定物品或特定制造商的积极或消极情感趋势,可能会很有用。随着全球化与跨境商务的发展,交流的用户可能来自各个不同的国家,使用不同的语言,因此我们需要一个通用翻译器,识别各个消息的语种,并翻译成目标用户的母语,从而实现更方便的跨国交流。
2023-06-07 23:45:38
6
原创 LLM 系列 | 05:ChatGPT Prompt的迭代优化
梅子留酸软齿牙,芭蕉分绿与窗纱。日长睡起无情思,闲看儿童捉柳花。小伙伴们好,我是微信公众号的小编:卖冰棍的小男孩。。后续会持续整理模型加速、模型部署、模型压缩、LLM、AI艺术等系列专题,敬请关注。紧接前文,今天这篇小作文主要介绍ChatGPT Prompt 编写过程中的一些迭代优化细节。在机器学习里,先完成一个能跑通的模型,才能对它进行改进迭代;提示工程(prompt engineering)也一样,最初版本的 prompt 或许不够完美,需要学会如何一步步细化要求,进行迭代改进。
2023-06-03 15:46:54
110
原创 LLM 系列 | 04:ChatGPT Prompt编写指南
Prompt注入是指如果用户将某些输入添加到Prompt中,则可能会向模型提供与原本想要执行的操作相冲突的指令,从而使其遵循冲突的指令而不是执行真正想要的操作。在这个例子中,学生的答案是错误的,但如果我们没有先让模型自己计算,那么可能会被误导以为学生是正确的。例如,在以下的示例中,告诉模型其任务是以一致的风格回答问题,并先给它一个孩子和一个祖父之间的对话的例子。以下示例中,要求 ChatGPT 生成三本书的标题、作者和类别, 并要求以 Json 的格式返回给,为便于解析,还指定了 Json格式的键。
2023-06-03 11:12:33
75
原创 通过mask提取list中的目标元素
需求描述:有2个list,一个是待处理的list,另一个是mask。现在想要根据mask提取出待处理list中的元素。
2023-05-19 21:08:31
28
原创 LLM系列 | 03:实测讯飞星火、文心一言、bing chat和chatgpt
绿树阴浓夏日长,楼台倒影入池塘。水晶帘动微风起,满架蔷薇一院香。小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:教形意拳的老男孩。更多、更新文章欢迎关注。后续会持续整理,敬请关注。今天这篇小作文主要是为了庆祝网上铺天盖地高呼666和999的讯飞版ChatGPT:星火的诞生。参与今天评测有以下4个:星火、文心一言、bing chat和chatgpt。
2023-05-07 23:47:52
230
原创 LLM系列 | 02: Vicuna简介及模型部署实测
Vicuna-13B是在LLaMa-13B的基础上使用监督数据微调得到的模型,数据集来自于ShareGPT.com产生的用户对话数据,共70K条。使用 GPT-4 作为判断的初步评估表明,Vicuna-13B 达到了 OpenAI ChatGPT 和 Google Bard 90% 以上的质量,同时在>90%的情况下优于 LLaMA 和 Stanford Alpaca 等其他模型。剧透下,后文实测效果,其实吧,还行吧。此外,将冗长的对话分成更小的部分,以适应模型的最大上下文长度。月黑见渔灯,孤光一点萤。
2023-04-30 16:53:37
3051
1
原创 LLM系列 | 01: 亲测ChatGPT最强竞品Claude,且无需翻墙、注册简单、免手机号
春风桃李花开日,秋雨梧桐叶落时。小伙伴好,我是微信公众号《小窗幽记机器学习》的小编:卖核弹的小女孩。
2023-04-22 17:38:30
232
原创 【LLM系列】00:斯坦福 Alpaca 模型介绍及其复现
Stanford Alpaca是一个Instruction-following的LLaMA模型,即一个对LLaMA模型进行指令调优的结果模型。更多细节可以参考。
2023-04-21 23:30:21
567
原创 AI艺术系列 | 02:亚洲美女图鉴赏析
本次实验的基础模型是 chilloutmix,这个模型擅长于生成亚洲女性特征的图片,再搭配各种LoRA(Low-Rank Adaptation of Large Language Models)模型可以绘制比较逼真亚洲人脸图像。应广大男性同胞要求,本文绘制主题以亚洲女性为主,所以,速来认领各自的老婆吧。后续也会补充男性、二次元、影视作品等主题的绘制,请拭目以待。
2023-03-05 23:43:51
585
原创 【模型推理加速系列】07: 以BERT为例全面评测各种推理加速方案
本文尝试以NLP领域中的常用模型BERT为例(仅将输入文本进行encode),综合评测包括**Pytorch、ONNX、JIT、TensorRT和OpenVino**在内这5种推理方案的性能。
2022-12-22 23:16:27
712
原创 【模型推理加速系列】06: 基于resnet18加速方案评测
今天这篇文章以resnet18模型为例,对比Pytorch、ONNX、TorchScript、TensorRT模型格式在不同硬件(包括CPU和GPU)上的inference性能
2022-11-27 20:45:59
810
原创 【模型推理加速系列】04:BERT加速方案对比 TorchScript vs. ONNX
本文以 BERT-base 的为例,介绍2种常用的推理加速方案:ONNX 和 TorchScript,并实测对比这两种加速方案与原始Pytorch模型格式的inference性能
2022-11-05 23:36:22
886
3
原创 【论文解读系列】NER方向:W2NER (AAAI 2022)
文章基于词-词关系分类,提出一个统一的实体框架 W2NER,关系包括 NNW 和 THW。框架在面对各种不同的 NER 时非常有效。
2022-10-24 23:19:36
1602
原创 多类别分类任务(multi-class)中为何precision,recall和F1相等?
本文主要介绍在 multi-class 分类任务中,使用 micro 类指标, micro-precision, micro-recall和micro-F1值都是相等这一情况的说明。
2022-10-10 10:51:58
1445
原创 【论文解读系列】NER方向:MarkBERT(2022)
MarkBERT 也是一种考虑如何将词信息引入到模型的方案。MarkBERT基于字的模型,但巧妙地将**词的边界**信息融入模型,具体操作是将词之间插入边界marker。出现边界marker意味着前一个字符是词的尾部字符,而紧接着的字符是另一个词的起始字符。如此可以统一处理所有词,不存在词的OOV问题。
2022-09-27 15:13:04
998
原创 【论文解读系列】NER方向:FGN (2020)
汉字作为象形文字有其潜在的特殊字形信息,而这一点经常被忽视。FGN是一种将**字形信息**融入网络结构的中文NER方法。除了用一个新型CNN对字形信息进行编码外,该方法可以通过**融合机制**提取**字符分布式表示**和**字形表示**之间的交互信息。FGN主要有2个创新点: (1)FGN 提出一种新型的CNN结构,即**CGS-CNN**,以**获取字形信息**和**相邻图之间的交互信息**。(2)提出一种**滑动窗口和注意机制**来融合每个**字符的BERT表示**和**字形表示**。
2022-09-16 18:42:24
507
原创 【论文解读系列】NER方向:FLAT (ACL 2020)
中文NER通常以字符为单位进行序列标注建模,即一般使用character-based模型。这主要是由于中文分词存在误差,会带来错误传导,所以一般character-based的中文NER模型通常要优于 基于word-based(经过分词)的序列标注建模方法。而在character-based模型中引入词汇信息可以显著提升中文NER效果已经得到多方验证。FLAT也是一种将词汇信息融入character-based模型的解决方案。
2022-09-10 11:25:20
469
原创 【论文解读系列】NER方向:SoftLexicon(ACL 2020)
SoftLexicon是一种简单而有效的**将词汇信息纳入字符表示**的方法。这种方法避免设计复杂的序列建模结构,并且对于**任何NER模型**,它**只需要细微地调整字符表示层**来引入词典信息。在4个中文NER基准数据集上的实验结果表明,该方法的推理速度比现有SOTA方法**快6.15倍**,性能更好
2022-09-07 11:44:40
1445
原创 【论文解读系列】NER方向:LatticeLSTM (ACL2018)
LatticeLSTM 出自于 ACL2018中的Chinese NER Using Lattice LSTM。LSTM-CRF模型在英文命名实体识别任务中具有显著效果,在中文NER任务中,基于字符的NER模型也明显优于基于词。
2022-09-02 10:52:19
488
原创 python3中二维数组求最大值
背景在求二维list中最大值时, 不加思考地使用2层max函数,如max(max(list_data)),但是返回结果是错误的。为此,重新梳理下这个错误的知识点。二维数组求最大值a=[[1,2], [2,5], [3,4]] max(a) 输出结果如下:>>> a=[[1,2], [2,5], [3,4]] >>> max(a)[3, 4]可以看出,第一次调用max其实是按照元素里面的第一个元素的排列顺序,输出最大值。如果第一个
2022-05-30 16:32:57
7415
原创 Python多进程处理数据
背景假设有1千万任务数据,每条数据处理耗时1s,那么如何加速整个任务的处理速度?其中一种解决方案就是使用多进程处理。解决方案pandas + pandarallel安装pandarallel: pip install pandarallel示例# -*- coding: utf-8 -*-# @Time : 2022/5/21 6:14 下午# @Author : JasonLiu# @FileName: test.pyimport timeimport pandas as p
2022-05-21 19:33:22
890
原创 如何在 docker 容器内部运行 docker命令
背景有些场景在容器内部需要调用 docker 命令。为此,本文梳理2种可以在容器内部执行docker命令的方法。方法1:基于 docker.sock/var/run/docker.sock是默认的Unix socket(套接字),socket是同一机器中进程间通讯的一种方式。Docker daemon 默认监听docker.sock。比如可以使用下述命令获取 docker engine 的版本信息,以下在宿主机上执行:那么如何在 docker 内运行 docker呢?只需要将宿主机的 docker
2022-03-15 23:13:59
7743
3
原创 基于Triton Server部署BERT模型
背景本文简要介绍如何使用 Triton 部署 BERT模型,主要参考 NVIDIA/DeepLearningExamples准备工作下载数据进入到/data/DeepLearningExamples-master/PyTorch/LanguageModeling/BERT/data/squad后,下载数据:bash ./squad_download.sh下载模型wget --content-disposition https://api.ngc.nvidia.com/v2/models/n
2022-03-11 16:17:32
5590
3
原创 pandas:统计某一列字符串中各个word出现的频率
背景某一列是字符串,想要统计该列字符串分词结果后各词出现的词频。示例代码# -*- coding: utf-8 -*-# @Time : 2022/2/13 4:18 下午# @Author : JasonLiu# @FileName: test.pyimport pdbimport pandas as pdimport numpy as npdf = pd.DataFrame( [[104472, "R.X. Yah & Co"], [104873,
2022-02-13 17:12:54
1869
原创 pandas中列方向字符统计及其合并
背景DataFrame 中某一列为str类型,(1)想要统计该列方向各个字符的词频(2)将2个列的统计结果进行合并,即相同key进行相加
2022-01-19 19:12:06
717
原创 聚类算法指标整理
文章目录前言纯度(purity)纯度的计算Python代码标准互信息(NMI)熵互信息标准互信息MI 和 NMI的计算实现 Python 版调整互信息(AMI)示例代码兰德系数(Rand Index)示例代码调整兰德系数(Adjusted Rand index)示例代码前言本文主要介绍聚类算法的一些常见评测指标。假设某一种算法得到聚类结果为:A=[12111112222311333]\mathrm{A}=\left[\begin{array}{lllllllll}1 & 2 &
2021-11-28 17:54:08
1050
原创 Python 字典内存释放及其浅拷贝和深拷贝之间的区别
背景在用Python搭建服务过程使用字典存放自定义的对象,需要特别指出的是value值是占用内存空间较大的对象。随着时间的流逝和数据的累积,字典的key变得越来越多,从而使得整个字典对象占用过大的内存空间。此时,需要根据实际需要定期删除特定的keys,及时释放内存,否则就可能引发血案:OOM,进程被kill。字典内存释放众所周知,去掉字典中元素可以使用 pop 或者 del 方法,但是这两种方法都没有真正地释放对应的元素的空间。Python 为了保证hash table 探测链的完整,对于那个被删除的
2021-11-18 10:23:59
981
原创 torch.nn.functional.cosine_similarity使用详解
概述根据官网文档的描述,其中 dim表示沿着对应的维度计算余弦相似。那么怎么理解呢?首先,先介绍下所谓的dim:a = torch.tensor([[ [1, 2], [3, 4] ], [ [5, 6], [7, 8] ] ], dtype=torch.float)print(a.shape)"""[ [ [1, 2], [3, 4] ], [ [5, 6], [7, 8] ]]"""假设
2021-10-07 23:44:41
13876
原创 Pandas中数据去重
背景在数据处理过程中常常会遇到重复的问题,这里简要介绍遇到过的数据重复问题及其如何根据具体的需求进行处理。筛选出指定字段存在重复的数据import pandas as pdstudent_dict = {"name": ["Joe", "Nat", "Harry", "Nat"], "age": [20, 21, 19, 21], "marks": [85.10, 77.80, 91.54, 77.80]}# Create DataFrame from dictstudent_df = pd
2021-09-29 11:18:53
8198
原创 pandas中分隔符由多个字符组成
背景在使用pandas过程由于文本中存在形如, 、| 等常规字符,所以需要自定义分隔符,特别是自定义由多个字符组成的分隔符。那么此时在使用 pandas.read_csv()的时候要如何设置?解决比如当生成文件的时候使用#|#作为分隔符,直接使用df = pd.read_csv(raw_file, sep='#|#', quoting=3)会报错: df = pd.read_csv(raw_file, sep='#|#', quoting=3) File "/data/miniconda3
2021-09-25 13:53:13
1623
原创 python中如何释放字典的内存占用?
背景构建一个大字典,并往其中增减元素,但是发现整体的内存消耗并没有因此而维持稳定状态,而是不断增加。问题解析Python中的字典,只有不再使用的时候才会释放对应的内存。在使用 pop 或者 delete 删除字典中的item(或者说entry)后,为了保证hash table 探测链的完整,那个被删除的entry只是被标记成了空,并没有真正被删除掉,所以该字典的内存占用没有得到释放。这是为了避免多度重建hash table。那如何释放字典的内存?现已知的方案是创建或者拷贝一个旧字典再覆盖掉新字典。具体
2021-09-17 15:36:19
3179
原创 python中用 multiprocessing 加速任务处理
背景面对海量任务需要高效对其进行消费,而任务之间不存在处理结果的相互依赖。方案1: multiprocessing模块以下模拟每个任务处理耗时1s,共有50任务的场景。示例代码如下:import timefrom multiprocessing import Pooldef function_call(task_dict): time.sleep(1) # 模拟真实的处理流程 print(task_dict)if __name__ == '__main__':
2021-08-28 10:51:37
389
原创 ICLR 2021 | Autoregressive Entity Retrieval
基本信息标题:Autoregressive Entity Retrieval机构:阿姆斯特丹大学、Facebook AI Research、巴黎高师、巴黎文理研究大学、法国国家信息与自动化研究所、英国伦敦大学学院作者:Nicola De Cao, Gautier Izacard, Sebastian Riedel, Fabio Petroni论文代码:https://github.com/facebookresearch/GENRE论文地址:https://arxiv.org/abs/2
2021-05-16 00:01:11
1581
2
原创 Pytorch中数据读取-Dataset、Dataloader 、TensorDataset 和 Sampler 的使用
0.引言Pytorch 创建用以输入到模型的数据的一般流程如下:创建一个 Dataset 对象,实现__getitem__()和__len__()这两个方法,会用到 transform 对数据进行扩充;创建一个 DataLoader 对象,该对象可以对上述Dataset对象进行迭代遍历DataLoader对象,将样本和标签加载到模型中进行训练。在上述流程中会涉及 Dataset 、 Dataloader 、Sampler 和 TensorDataset,以下将逐一介绍。1. D
2021-05-07 10:53:52
4011
3
原创 将标签转为onehot形式
背景对于给定具体标签,如何将其转为one-hot形式?比如标签集合体育', '娱乐', '家居', '房产', '教育', '时尚', '时政', '游戏', '科技', '财经',对于multiclass任务,如何将训练数据集中的样本的标签转为one-hot形式?方法1: import numpy as np label_list = ['体育', '娱乐', '家居', '房产', '教育', '时尚', '时政', '游戏', '科技', '财经'] label_dict
2021-03-25 17:59:38
1620
4
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人