当前位置: 首页 > news >正文

大模型笔记1: Longformer环境配置

论文:

https://arxiv.org/abs/2004.05150

目录

库安装

LongformerForQuestionAnswering


库安装

首先保证电脑上配置了git.

git环境配置:

https://blog.csdn.net/Andone_hsx/article/details/87937329

3.1、找到git安装路径中bin的位置,如:D:\Program Files\Git\bin

        找到git安装路径中git-core的位置,如:D:\Program Files\Git\libexec\git-core;

        注:"D:\Program Files\Git\"是安装路径,可能与你的安装路径不一样,要按照你自己的路径替换"D:\Program Files\Git\"

        3.2、右键“计算机”->“属性”->“高级系统设置”->“环境变量”->在下方的“系统变量”中找到“path”->选中“path”并选择“编辑”->将            3.1中找到的bin和git-core路径复制到其中->保存并退出

        注:“path”中,每个路径之间要以英文输入状态下的分号——“;”作为间隔

D:\Program Files\Git\mingw64\bin

D:\Program Files\Git\mingw64\libexec\git-core

安装环境

conda create --name longformer python=3.7

y

conda activate longformer

conda install cudatoolkit=10.0

y

pip install git+https://github.com/allenai/longformer.git

报错:

ERROR: Could not find a version that satisfies the requirement pandas>=0.20.3 (from test-tube) (from versions: none)

ERROR: No matching distribution found for pandas>=0.20.3

No module named 'pandas'

Install装不上, 在anaconda navigator装的

更换清华源后似乎可以继续运行了, 参考:

https://www.cnblogs.com/raiuny/p/15950043.html

conda config --add channels Index of /anaconda/cloud/pytorch/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

conda config --set show_channel_urls yes

conda config --set auto_activate_base false

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

好几次报错128, 也许是RP问题, 总之重新运行几次后安装成功了.

环境安装成功会显示successful.

接着跑tests文件夹的test_readme.py, 注意需要下载longformer-base-4096.tar.gz

这个文件我放在项目目录下的/tmp文件夹和tests/tmp都无法读取, 因此修改了self.model_dir路径为绝对路径, 并注释下载解压代码, 就可以运行了:

LongformerForQuestionAnswering

1)test_readme中默认使用的Longformer模型输出是embedding, 缺少LMHead把embedding映射成tokenid或logits等, 无法输出文字. 如果使用Longformer完成最终任务, 需要自己写映射并训练.

2)文档其它longformer模型. 大部分为分类模型. 其中LongformerForQuestionAnswering符合extractive summarization

3)coding过程中可以参考huggingface上的文档例子从transformers库里面调用其它种类的longformer

from transformers import AutoTokenizer, LongformerForQuestionAnswering

import torch

tokenizer = AutoTokenizer.from_pretrained("allenai/longformer-large-4096-finetuned-triviaqa")

model = LongformerForQuestionAnswering.from_pretrained("allenai/longformer-large-4096-finetuned-triviaqa")

question, text = "Who was Jim Henson?", "Jim Henson was a nice puppet"

encoding = tokenizer(question, text, return_tensors="pt")

input_ids = encoding["input_ids"]

# default is local attention everywhere

# the forward method will automatically set global attention on question tokens

attention_mask = encoding["attention_mask"]

outputs = model(input_ids, attention_mask=attention_mask)

start_logits = outputs.start_logits

end_logits = outputs.end_logits

all_tokens = tokenizer.convert_ids_to_tokens(input_ids[0].tolist())

answer_tokens = all_tokens[torch.argmax(start_logits) : torch.argmax(end_logits) + 1]

answer = tokenizer.decode(

    tokenizer.convert_tokens_to_ids(answer_tokens)

)  # remove space prepending space token

如果加载其它qa模型(longformer_base_4096_QA_SQUAD)不配套会报错:

Some weights of the model checkpoint at tmp/longformer_base_4096_QA_SQUAD were not used when initializing LongformerForQuestionAnswering: ['classifier.dense.weight', 'classifier.dense.bias', 'classifier.out_proj.weight', 'classifier.out_proj.bias']

按照示例代码加载longformer-large-4096-finetuned-triviaqa后报错

start_logits = outputs.start_logits

AttributeError: 'tuple' object has no attribute 'start_logits'

这个报错的意思是返回值不是对象而是元组, 因此判断如果是元组, 则手动解析

if isinstance(outputs, tuple):

    loss,start_logits, end_logits,hidden_states,attentions = outputs

else:

    start_logits = outputs.start_logits

    end_logits = outputs.end_logits

库中LongformerForQuestionAnswering类代码有两处可能返回

1.

output = (start_logits, end_logits) + outputs[2:]

2.

return SequenceClassifierOutput(

            loss=loss,

            logits=logits,

            hidden_states=outputs.hidden_states,

            attentions=outputs.attentions,

        )

相关文章:

大模型笔记1: Longformer环境配置

论文: https://arxiv.org/abs/2004.05150 目录 库安装 LongformerForQuestionAnswering 库安装 首先保证电脑上配置了git. git环境配置: https://blog.csdn.net/Andone_hsx/article/details/87937329 3.1、找到git安装路径中bin的位置,如:D:\Prog…...

类和对象(提高)

类和对象(提高) 1、定义一个类 关键字class 6 class Data1 7 { 8 //类中 默认为私有 9 private: 10 int a;//不要给类中成员 初始化 11 protected://保护 12 int b; 13 public://公共 14 int c; 15 //在类的内部 不存在权限之分 16 void showData(void)…...

免费最好用的证件照制作软件,一键换底+老照片修复+图片动漫化,吊打付费!

这款软件真的是阿星用过的,最好用的证件照制作软件,没有之一! 我是阿星,今天要给大家安利一款超实用的证件照工具,一键换底,自动排版,免费无广告,让你在家就能轻松搞定证件照&#…...

antfu/ni 在 Windows 下的安装

问题 全局安装 ni 之后,第一次使用会有这个问题 解决 在 powershell 中输入 Remove-Item Alias:ni -Force -ErrorAction Ignore之后再次运行 ni Windows 11 下的 Powershell 环境配置 可以参考 https://github.com/antfu-collective/ni?tabreadme-ov-file#how …...

Linux 生产消费者模型

💓博主CSDN主页:麻辣韭菜💓   ⏩专栏分类:Linux初窥门径⏪   🚚代码仓库:Linux代码练习🚚   🌹关注我🫵带你学习更多Linux知识   🔝 前言 1. 生产消费者模型 1.1 什么是生产消…...

深入浅出:MongoDB中的背景创建索引

深入浅出:MongoDB中的背景创建索引 想象一下,你正忙于将成千上万的数据塞入你的MongoDB数据库中,你的用户期待着实时的响应速度。此时,你突然想到:“嘿,我应该给这些查询加个索引!” 没错&…...

Spring事务十种失效场景

首先我们要明白什么是事务?它的作用是什么?它在什么场景下在Spring框架下会失效? 事务:本质上是由数据库和程序之间交互的过程中的衍生物,它是一种控制数据的行为规则。有几个特性 1、原子性:执行单元内,要…...

JELR-630HS漏电继电器 30-500mA 导轨安装 约瑟JOSEF

JELR-HS系列 漏电继电器型号: JELR-15HS漏电继电器;JELR-25HS漏电继电器; JELR-32HS漏电继电器;JELR-63HS漏电继电器; JELR-100HS漏电继电器;JELR-120HS漏电继电器; JELR-160HS漏电继电器&a…...

如何实现一个简单的链表或栈结构

实现一个简单的链表或栈结构是面向对象编程中的基础任务。下面我将分别给出链表和栈的简单实现。 链表(单链表)的实现 链表是由一系列节点组成的集合,每个节点都包含数据部分和指向列表中下一个节点的链接(指针或引用&#xff0…...

抖音外卖服务商入驻流程及费用分别是什么?入驻官方平台的难度大吗?

随着抖音关于新增《【到家外卖】内容服务商开放准入公告》的意见征集通知(以下简称“通知”)的发布,抖音外卖服务商入驻流程及费用逐渐成为众多创业者所关注和热议的话题。不过,就当前的讨论情况来看,这个话题似乎没有…...

“小红书、B站崩了”,背后的阿里云怎么了?

导语:阿里云不能承受之重 文 | 魏强 7月2日,“小红书崩了”、“B站崩了”等话题登上了热搜。 据第一财经、财联社等报道,7月2日,用户在B站App无法使用浏览历史关注等内容,消息界面、更新界面、客服界面均不可用&…...

nginx的配置文件

nginx.conf 1、全局模块 worker_processes 1; 工作进程数,设置成服务器内核数的2倍(一般不超过8个,超过8个反正会降低性能,4个 1-2个 ) 处理进程的过程必然涉及配置文件和展示页面,也就是涉及打开文件的…...

艾滋病隐球菌病的病原学诊断方法包括?

艾滋病隐球菌病的病原学诊断方法包括()查看答案 A.培养B.隐球菌抗原C.墨汁染色D.PCR 在感染性疾病研究中,单细胞转录组学的应用包括哪些()? A.细胞异质性研究B.基因组突变检测C.感染过程单细胞分析D.代谢通路分析 开展病原微生物网络实验室体系建设,应通…...

jQuery Tooltip 插件使用教程

jQuery Tooltip 插件使用教程 引言 jQuery Tooltip 插件是 jQuery UI 套件的一部分,它为网页元素添加了交互式的提示框功能。通过这个插件,开发者可以轻松地为链接、按钮、图片等元素添加自定义的提示信息,从而增强用户的交互体验。本文将详细介绍如何使用 jQuery Tooltip…...

访问者模式在金融业务中的应用及其框架实现

引言 访问者模式(Visitor Pattern)是一种行为设计模式,它允许你在不改变对象结构的前提下定义作用于这些对象的新操作。通过使用访问者模式,可以将相关操作分离到访问者中,从而提高系统的灵活性和可维护性。在金融业务…...

.npy格式图像如何进行深度学习模型训练处理,亲测可行

import torchimport torch.nn as nnimport torch.nn.functional as Fimport numpy as npfrom torch.utils.data import DataLoader, Datasetfrom torchvision import transformsfrom PIL import Imageimport json# 加载训练集和测试集数据train_images np.load(../dataset/tra…...

XFeat快速图像特征匹配算法

XFeat(Accelerated Features)是一种新颖的卷积神经网络(CNN)架构,专为快速和鲁棒的像匹配而设计。它特别适用于资源受限的设备,同时提供了与现有深度学习方法相比的高速度和准确性。 轻量级CNN架构&#xf…...

普元EOS学习笔记-低开实现图书的增删改查

前言 在前一篇《普元EOS学习笔记-创建精简应用》中,我已经创建了EOS精简应用。 我之前说过,EOS精简应用就是自己创建的EOS精简版,该项目中,开发者可以进行低代码开发,也可以进行高代码开发。 本文我就记录一下自己在…...

动态住宅代理IP详细解析

在大数据时代的背景下,代理IP成为了很多企业顺利开展的重要工具。代理IP地址可以分为住宅代理IP地址和数据中心代理IP地址。选择住宅代理IP的好处是可以实现真正的高匿名性,而使用数据中心代理IP可能会暴露自己使用代理的情况。 住宅代理IP是指互联网服务…...

等保2.0 实施方案之信息软件验证要求

一、等保2.0背景及意义 随着信息技术的快速发展和网络安全威胁的不断演变,网络安全已成为国家安全、社会稳定和经济发展的重要保障。等保2.0(即《信息安全技术 网络安全等级保护基本要求》2.0版本)作为网络安全等级保护制度的最新标准&#x…...

YOLOv5实战:如何自定义COCO指标计算APtiny(附完整代码修改指南)

YOLOv5实战:深度解析COCO评估指标自定义与APtiny计算优化 在目标检测领域,COCO数据集的评估标准已成为衡量模型性能的黄金准则。但当我们面对特定场景——尤其是小目标检测任务时,标准的3232像素"small"类别划分往往难以满足精细化…...

解锁虚幻引擎资源解析工具的高效解析与实战应用指南

解锁虚幻引擎资源解析工具的高效解析与实战应用指南 【免费下载链接】UEViewer Viewer and exporter for Unreal Engine 1-4 assets (UE Viewer). 项目地址: https://gitcode.com/gh_mirrors/ue/UEViewer 虚幻引擎资源解析是游戏开发与逆向工程领域的关键技术&#xff0…...

从零开始:使用Python Add-in快速构建ArcGIS自定义工具条

1. Python Add-in入门:ArcGIS插件开发新选择 第一次接触ArcGIS插件开发时,我被各种复杂的开发方式搞得晕头转向。直到发现了Python Add-in这个神器,才发现原来开发自定义工具条可以这么简单!Python Add-in是Esri在ArcGIS 10.1引入…...

告别丑陋代码块!用PyQt5+pygments实现Word代码高亮粘贴(附完整源码)

告别丑陋代码块!用PyQt5pygments实现Word代码高亮粘贴(附完整源码) 在技术文档编写过程中,代码展示是不可或缺的部分。然而,直接将IDE中的代码复制到Word文档时,往往会丢失原有的高亮和格式,变成…...

DeepSeek-R1-Distill-Qwen-7B功能体验:Ollama部署后,实测推理速度提升3倍

DeepSeek-R1-Distill-Qwen-7B功能体验:Ollama部署后,实测推理速度提升3倍 1. 模型背景与核心优势 1.1 模型技术背景 DeepSeek-R1-Distill-Qwen-7B是华为昇腾与阿里达摩院技术协作的产物,通过知识蒸馏技术将DeepSeek-R1(660B参数…...

GME-Qwen2-VL-2B实战:手把手教你构建个人多模态知识库

GME-Qwen2-VL-2B实战:手把手教你构建个人多模态知识库 1. 为什么需要多模态知识库? 在日常工作和生活中,我们积累了大量不同类型的数据——文档、图片、截图、笔记等。传统知识管理工具往往只能处理单一类型的数据,要么是纯文本…...

Vitis AI Docker镜像选型指南:CPU版、GPU版与云端优化实战心得

Vitis AI Docker镜像选型指南:CPU版、GPU版与云端优化实战心得 在AI模型部署的实践中,资源约束与成本效率往往是开发者面临的核心挑战。当我们需要将训练好的模型部署到边缘设备时,如何在有限的本地计算资源下高效完成模型优化与编译&#xf…...

告别爆显存!在16G显卡上高效训练SDXL LORA的完整配置流程

16G显卡极限优化:SDXL LORA训练全流程实战指南 引言 当你手握一块RTX 4060 Ti或4070这样的16G显存显卡,想要尝试SDXL LORA训练时,是否常被爆显存的恐惧支配?别担心,这不是硬件性能的终点,而是优化艺术的起点…...

Python办公自动化:用PyMuPDF+pdfplumber一键提取PDF文字/图片/表格(附完整代码)

Python办公自动化实战:PyMuPDF与pdfplumber高效提取PDF三要素 每天面对堆积如山的PDF文档,行政和财务人员最头疼的莫过于手动复制粘贴文字、截图保存图片、重新绘制表格。我曾见过一位财务同事为了处理200份供应商报价单,连续加班一周手工录入…...

APKMirror:安卓应用安全管理的终极解决方案

APKMirror:安卓应用安全管理的终极解决方案 【免费下载链接】APKMirror 项目地址: https://gitcode.com/gh_mirrors/ap/APKMirror 您是否曾在寻找安卓应用的特定版本时感到无从下手?是否担忧从第三方渠道下载的APK文件可能存在安全隐患&#xff…...