大模型之路2:继续趟一条小路

继续趟一条小路,可谓是充满了曲折,当然,必不可少的还是坑。

吐槽

看过的喷友,其实你看完以后,大概率也就是和我一起骂骂街,因为....我也的确没理清楚。

我也不知道做错了什么,就是运行不过去。然后。。。 也不知道做对了什么,看起来好像前进了一点点,但就是没有到达美丽的彼岸。握草

部署环境的时候,似乎是有点坑的。一方面是版本兼容问题。另外我今天还遇到了几个没看懂的坑,感觉就像九九八十一难之后又来到了天坑悬崖边。

环境

安装torch等等就不多说了,任意搜都可以。然后一测试,通了,OK

import torch
x = torch.rand(5,3)
print(x)
torch.cuda.is_available()

测试

我是做了一个实体识别的测试。

# 测试推理和统计正确率
all_acc, all_recall = 0, 0
startRow = 0
read_row = 100
for i in range(startRow, len(txtLines)):
    if i > startRow + read_row:
        break

    txt = txtLines[i]
    print(i)
    json_item = json.loads(txt)
    labels = json_item['label']
    t_dict = {}
    for k in labels:
        t_label_dict = labels[k]
        t_dict[data[k]] = list(t_label_dict.keys())

    
    ret = predict(json_item['text'], showMsg = False) # 就是运行聊天,得到聊天结果
    #print("json_item['text'] = ", json_item['text'])
    print('label: ', t_dict)
    try:
        ret_dict = json.loads(ret)
        tKeys = list(ret_dict.keys())
        for k in tKeys:
            if ret_dict[k] in [ '未提供', '未知' , '无', '' ]:
                ret_dict.pop(k)
        print('识别结果', ret_dict)
        acc, recall = evaluate(t_dict, ret_dict)  # 就是我自己写了个简单的统计正确率和召回率
        all_acc += acc
        all_recall += recall
        print('acc= %.2f, recall=%.2f, all_acc=%.2f, all_recall=%.2f'%(acc, recall, all_acc/(i-startRow+1), all_recall/(i-startRow+1)))
    except Exception as e:
        print(e)

和预想的其实不一样。因为虽然是大模型,但是他未必会给我返回我想要的实体类型。这一点就比较头大,需要自己处理。

比如 比较理想的情况下是这样,识别结果的类型都是我想要的。

label: {'组织机构': ['老挝家具协会'], '人名': ['育亭·维沙蓬'], '职位': ['会长']}
识别结果 {'地名': '老挝', '公司': '老挝家具协会', '人名': '育亭·维沙蓬', '职位': '会长'}

但是很多时候是下面这样:

label: {"人名":["吴湖帆", "吴待秋", "吴子深", "冯超然"]}
识别结果: {"name":["吴湖帆", "吴待秋", "吴子深", "冯超然"]}

或者是其他我不需要的类型名称,中英文也很随意。即使我在prompt里写上,“用中文”,效果仍然不能十分满意。

或许这也是微调的意义?

实体识别的具体内容可以参考这位网友的博客,计算机博士微调BaiChuan13B来做命名实体识别_baichuan max_new_tokens-CSDN博客  

或者github (九零后,真年轻啊):torchkeras/examples/BaiChuan13B_NER——transformers.ipynb at master · lyhue1991/torchkeras · GitHub

但是到了后面,我的运行出错了。

求救

艰难的调试过后,运行到这个地方还是可以的,看起来得到了结果。实际上崩溃才刚开始

接下来的错误。。。我没搞明白

反正就这么错了,提示没有这个文件。关键是,我并没有搞明白从哪里生成这个文件

然后我还想要复现一下,重新训练一次,然后又错了。在Jupyter里,就重新执行了刚才的代码,结果刚刚执行了一次的代码,报错了

也就是说,数据、模型似乎转移了位置。

然后我回到上面,开始重新生成数据集、重新加载模型,发现仍然是这个错误。包括最开始的测试代码也已经不能运行了,都提示这个错误。

只能关闭重新开始,才能行。

然后往下我就不会了。。。。。

【不是每个博文都会有好结果的,看到这里,你是不是也感觉坑 ^_^】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/509668.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

探索 ZKFair 的Dargon Slayer蓝图,解锁新阶段的潜力

在当前区块链技术的发展中,Layer 2(L2)解决方案已成为提高区块链扩容性、降低交易成本和提升交易速度的关键技术,但它仍面临一些关键问题和挑战,例如用户体验的改进、跨链互操作性、安全性以及去中心化程度。在这些背景…

马上蓝桥了,干货总结基础树论知识点

目录 今日知识点:对于每个子树如果和小于0就返回0;如果大于0就直接返回。 注意异或的性质,偶消奇不消,所以lca上面的都消掉了,并不需要跑lca,也就是说只需要把根到所有点的距离跑出来即可 如果上传过来小…

Redis如何实现分布式锁,单机Redis与集群Redis问题解决方案

场景1:在单机场景下,可以通过同步锁进行加锁 在单机系统下,该场景是适用的,所有的线程都需要等待同步锁释放 场景2:分布式场景下的分布式锁 场景1中的代码不适用与分布式系统,因为上述的同步锁是JVM层次的…

如何在CentOS安装StackEdit Markdown编辑器并实现无公网IP远程访问使用

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 前言1. ubuntu安装VNC2. 设置vnc开机启动3. windows 安…

从零开始构建gRPC的Go服务

介绍 Protocol Buffers and gRPC是用于定义通过网络有效通信的微服务的流行技术。许多公司在Go中构建gRPC微服务,发布了他们开发的框架,本文将从gRPC入门开始,一步一步构建一个gRPC服务。 背景 之前在B站看过一个gRPC教学视频,…

朵米3.5客服系统源码,附带系统搭建教程

朵米客服系统是一款全功能的客户服务解决方案,提供多渠道支持(如在线聊天、邮件、电话等),帮助企业建立与客户的实时互动。该系统具有智能分流功能,可以快速将客户请求分配给适当的客服人员,提高工作效率。…

操作系统:浅谈文件系统

目录 1.理解文件系统 1.1.从磁盘开始的抽象存储结构 ​编辑 1.2.操作系统下的文件管理 1.2.1.知识储备 1.2.2.存储文件的属性 1.2.3.存储文件的内容 1.2.4.如何新建文件 1.2.5.如何理解目录 1.2.6.如何找到某一个文件 1.3.操作系统如何打开文件 2.软硬链接 我们知…

外贸技巧:热衷开发却不精于追踪!这个误区害惨了外贸人...

很多外贸业务员热衷于开发客户,可对于后续的追踪却不能给予足够的重视。结果是开发的很辛苦,但后期却屡屡因为跟踪不积极,造成订单机会莫名其妙的就悄悄溜走了。 俗话说的好,一鸟在手胜过二鸟在林,而外贸业务员也需要…

Matlab进阶绘图第48期—带等高线的三维特征渲染散点图

带等高线的三维特征渲染散点图是等高线图与特征渲染三维散点图的组合。 其中,等高线图与特征渲染的三维散点图的颜色用于表示同一个特征。 由于等高线图无遮挡但不直观,特征渲染的三维散点图直观但有遮挡,而将二者组合,可以实现…

风险与收益

风险与收益 影响资产需求的主要因素财富总量预期收益率资产的流动性影响流动性的主要因素 风险 如何降低风险系统风险和非系统风险机会集合与有效集合资产组合理论 影响资产需求的主要因素 影响资产需求的主要因素包括:财富总量、预期收益率、资产的流动性和风险。…

免费SSL证书怎么申请?

在数字化时代,网络安全已成为企业与个人无法忽视的重要议题。其中,SSL(Secure Sockets Layer)证书作为保障在线信息传输安全的关键工具,已广泛应用于各类网站。更令人欣喜的是,如今市场上存在众多免费SSL证…

DOTS:Burst

目录 一:简介 1.1 Getting started 1.2 C# language support 1.2.1 HPC# overview 1.2.1.1 Exception expressions 1.2.1.2 Foreach and While 1.2.1.3 Unsupported C# features in HPC# 1.2.2 Static read-only fields and static constructor support 1.…

【Linux】查看某个进程的tcp全连接队列长度

TCP三次握手成功后,会把连接放到全连接队列里,等待服务器端accept后移除。 如下图所示,图片转自:https://zhuanlan.zhihu.com/p/547279481 下图转自博客:https://zhuanlan.zhihu.com/p/340016138 TCP三次握手过程中,第一次握手server收到client的syn后,内核会把该连接存…

多功能知识付费源码下载-实现流量互导多渠道变现(带详细安装教程)

资源变现类产品的许多优势,并剔除了那些无关紧要的元素,使得本产品在运营和变现能力方面实现了质的飞跃。多领域素材资源知识变现营销裂变独立版本。 支持:视频、音频、图文、文档、会员、社群、用户发布、创作分成、任务裂变、流量主、在线…

缺陷检测项目 | 基于深度学习的钢管焊缝缺陷检测

项目应用场景 面向钢管焊缝缺陷检测场景,使用深度学习算法来实现,提供钢管焊缝缺陷检测数据集,数据集已经标注整理好,包括 YOLO 和 PASCAL VOC 数据格式,项目检出效果好。 训练数据集展示 项目效果 项目细节 > 具体…

oracle19c安装-aarch64

建议 参考oracle官方文档提供的软硬件要求 https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/operating-system-checklist-for-oracle-database-installation-on-linux.html#GUID-E5C0A90E-7750-45D9-A8BC-C7319ED934F0 建议使用OracleLinux8.6及以上操作…

一个页面实现两个滚动条【前端】

一个页面实现两个滚动条【前端】 前言版权推荐一个页面实现两个滚动条最后 前言 2024-4-2 12:54:46 以下内容源自《【前端】》 仅供学习交流使用 版权 禁止其他平台发布时删除以下此话 本文首次发布于CSDN平台 作者是CSDN日星月云 博客主页是https://jsss-1.blog.csdn.net …

TIA博途V17开启仿真后软件卡顿的解决办法

TIA博途V17开启仿真后软件卡顿的解决办法 如下图所示,打开TIA博途V17软件,同时打开任务管理器,监控CPU和内存的使用情况,由于我的内存是32G的,而且没有打开其他的任何软件,所以这里可以暂时不考虑内存的影响, 如下图所示,我们在性能中选中CPU,右键选择“将图形更改为—…

电脑常见故障检测方法与对应问题分析说明

电脑常见故障检测方法与对应问题分析说明 前言说明1、机器无法开机故障2、屏幕无法显示3、无法联网4、能开机但是无法进入系统,提示not boot5、USB接口无法识别U盘 前言说明 本文为小白向,许多内容属于经验学而非科学,还望大佬们轻喷。 如上…

快速入门Linux,Linux岗位有哪些?(一)

文章目录 Linux与Linux运维操作系统?操作系统图解 认识LinuxLinux受欢迎的原因什么是Linux运维Linux运维岗位Linux运维岗位职责Linux运维架构师岗位职责Linux运维职业发展路线计算机硬件分类运维人员的三大核心职责 运维人员工作(服务器)什么…