【腾讯云HAI域探密】- HAI为NPL保驾护航

近些年,随着机器学习技术的蓬勃发展,以GPU为代表的一系列专用芯片以优越的高性能计算能力和愈发低廉的成本,在机器学习领域得到广泛认可和青睐。GPU等专用芯片以较低的成本提供海量算力,已经成为机器学习和AI人工智能领域的核心利器,在人工智能时代发挥着越来越重要的作用。

在这里插入图片描述

今天给大家推荐和介绍的“高性能应用服务HAI”,是一款大幅降低GPU云服务器使用门槛,多角度优化产品使用体验,开箱即用。拥有澎湃算力,即开即用。以应用为中心,匹配GPU云算力资源,助力中小企业及开发者快速部署LLM、AI作画、数据科学等高性能应用。

在这里插入图片描述
探讨一下如何利用“高性能应用服务HAI”进行业务场景赋能,已经是很多公司目前需要面临的问题。本文分享一下“高性能应用服务HAI”在医疗NLP体系中的实践过程,希望能通过“高性能应用服务HAI”的方案对公司的业务进行将本增效。

在这里插入图片描述


一、为什么在AI的领域需要使用GPU呢?

在这些领域中,GPU 可以加速训练模型、处理海量数据等计算密集型任务,显著提高了计算效率和速度。因此,GPU 已成为现代计算机的重要组成部分,被广泛应用于各种领域。

1. GPU 和 CPU 的主要区别体现在以下几个方面:

在这里插入图片描述

2. GPU 的工作原理:

在这里插入图片描述


二、“高性能应用服务HAI”能够带来什么?

1. 什么是HAI呢?

高性能应用服务(Hyper Application Inventor,HAI)是一款面向 Al、科学计算的GPU 应用服务产品,提供即插即用的澎湃算力与常见环境。助力中小企业及开发者快速部署LLM、AI作画、数据科学等高性能应用,原生集成配套的开发工具与组件,大幅提高应用层的开发生产效率。
在这里插入图片描述

2. 平时在使用AIGC应用的痛点:

在这里插入图片描述

3. 高性能应用服务HAI可以让我们干什么?

通过“高性能应用服务HAI”的StableDiffusion模型可以进行AI绘画,是一种利用深度学习算法进行创作的绘图方式,被广泛应用于游戏、数字媒体、电影、广告设计、动画等领域,可以让设计师加快绘图相关的工作,从“人工”GC逐渐的转向AIGC人工智生产内容。

在这里插入图片描述

4. “高性能应用服务HAI”降本增效的结果:

在这里插入图片描述

5. “高性能应用服务HAI”全面的AI应用托管服务:

“高性能应用服务HAI”是根据应用匹配推选GPU算力资源,实现最高性价比,是面向开发者和企业的AI工程化平台,提供了覆盖数据提供、模型开发、模型训练、模型部署的全流程服务。

在这里插入图片描述

同时,打通必备云服务组件,大幅简化云服务配置流程,为机器学习开发的每个步骤加速创新,包括:

  • 分钟级自动构建LLM、AI作画等应用环境,适合模型开发、模型训练、模型部署
  • 提供多种预装模型环境,包含如StableDiffusion、ChatGLM等热门模型
  • 提供开发者友好的图形界面,支持JupyterLab、WebUI等多种算力连接方,AI研究调试超低门槛。
  • 学术加速为企业提供训练加速和推理加速的能力,提高AI训练和推理的速度、易用性和稳定性,极大提升AI计算的效率。

在这里插入图片描述

“高性能应用服务HAI”基于软硬件一体优化技术,超大规模分布式深度学习任务运行,具备高性能、高效率、高利用率等核心优势,实现AI开发及应用过程的降本增效。


三、对比GPU云服务器,高性能应用服务HAI解决的业务痛点问题:

1. 总结优势与劣势:

在这里插入图片描述

四、“高性能应用服务HAI”的应用场景有哪些?

在这里插入图片描述


六、基于PyTorch 实现NLP自然语言处理:

基于NLP和自然语言处理技术将门诊/住院病历、检查检验报告、处方/医嘱等医疗文档自动识别、转换为结构化数据,支持下游可视化、统计分析、推理等应用,可用于健康档案、质控、保险理赔及临床科研等业务场景,获取医疗知识,节约医疗资源。

在公司的业务场景中,患者的病例需要手动去针对性的打标签,比如,标注这个患者是眼疾,实际上会有很多的问题存在:

  • 工作的性质比较单一枯燥的动作,纯粹的人工作业方式
  • 有人工成本的消耗
  • 操作不准确,评判的标准不一致,容易产出错误

在这里插入图片描述

1. 文本csv内容准备,如下为一些患者的病例一些常见的症状描述。

在这里插入图片描述

2. 安装jieba库:

在这里插入图片描述

3. 使用结巴jieba库将语句进行分词库统计词频:

为了对中文文本数据进行预处理,以便进行NLP分析,代码使用中文分词库jieba对患者的数据进行处理。代码读取患者数据的csv文件,去除第一行(其中包含每列的标签),然后循环处理每一行数据。对于每一行,提取内容并使用jieba进行分词。

import jiebadata_path = "sources/data.csv"
data_list = open("data_path").readlines()[1:]for item in data_list:label = item[0]content = item[2:].strip()seg_list = jieba.cut(content, cut_all = False)for seg_item in seg_list:
print(seg_item)

可以看到一些标点符号,和一些没有语义的词也会被匹配出来,得到的分词结果被过滤以去除任何停用词(不具有意义的词,如“和”或“的”)。

在这里插入图片描述

4. 停用词stopwords处理:

停用词的作用是在文本分析过程中过滤掉这些常见词语,从而减少处理的复杂度,提高算法效率,并且在某些任务中可以改善结果的质量,避免分析结果受到这些词的干扰。

在自然语言处理(NLP)研究中,停用词stopwords是指在文本中频繁出现但通常没有太多有意义的词语。这些词语往往是一些常见的功能词、虚词甚至是一些标点符号,如介词、代词、连词、助动词等,比如中文里的"的"、“是”、“和”、“了”、“。“等等,英文里的"the”、“is”、“and”、”…"等等。

import jiebadata_path = "./sources/his.csv"
data_stop_path = "./sources/hit_stopwords.txt"
data_list = open(data_path).readlines()[1:]
stops_word = open(data_stop_path, encoding='UTF-8').readlines()
stops_word = [line.strip() for line in stops_word]
stops_word.append(" ")
stops_word.append("\n")for item in data_list:label = item[0]content = item[2:].strip()seg_list = jieba.cut(content, cut_all = False)seg_res = []for seg_item in seg_list:if seg_item in stops_word:continueseg_res.append(seg_item)print(content)print(seg_res)

在这里插入图片描述

5. 加载数据集:

使用PyTorch的提供的dataset的接口,根据项目重写dataset和dataloader。

import jiebadata_path = "./sources/his.csv"
data_stop_path = "./sources/hit_stopwords.txt"data_list = open(data_path).readlines()[1:]stops_word = open(data_stop_path, encoding='UTF-8').readlines()
stops_word = [line.strip() for line in stops_word]
stops_word.append(" ")
stops_word.append("\n")voc_dict = {}
min_seq = 1
top_n = 1000
UNK = "<UNK>"
PAD = "<PAD>"for item in data_list:label = item[0]content = item[2:].strip()seg_list = jieba.cut(content, cut_all = False)seg_res = []for seg_item in seg_list:if seg_item in stops_word:continueseg_res.append(seg_item)
if seg_item in voc_dict.keys():voc_dict[seg_item] += 1else:voc_dict[seg_item] = 1
voc_list = sorted([_ for _ in voc_dict.items() if _[1] > min_seq],key=lambda x: x[1],reverse=True)[:top_n]voc_dict = {word_count[0]: idx for idx, word_count in enumerate(voc_list)}
voc_dict.update({UNK: len(voc_dict), PAD: len(voc_dict) + 1})print(voc_dict)# 保存字典
ff = open("./sources/dict.txt", "w")
for item in voc_dict.keys():ff.writelines("{},{}\n".format(item, voc_dict[item]))

在这里插入图片描述

6. 搭建模型结构:

import numpy as np
import jieba
from torch.utils.data import Dataset, DataLoaderdef read_dict(voc_dict_path):voc_dict = {}dict_list = open(voc_dict_path).readlines()print(dict_list[0])for item in dict_list:item = item.split(",")voc_dict[item[0]] = int(item[1].strip())return voc_dict# 将数据集进行处理(分词,过滤...)
def load_data(data_path, data_stop_path):data_list = open(data_path, encoding='utf-8').readlines()[1:]stops_word = open(data_stop_path, encoding='utf-8').readlines()stops_word = [line.strip() for line in stops_word]stops_word.append(" ")stops_word.append("\n")voc_dict = {}data = []max_len_seq = 0np.random.shuffle(data_list)for item in data_list[:]:label = item[0]content = item[2:].strip()seg_list = jieba.cut(content, cut_all=False)seg_res = []for seg_item in seg_list:if seg_item in stops_word:continueseg_res.append(seg_item)if seg_item in voc_dict.keys():voc_dict[seg_item] = voc_dict[seg_item] + 1else:voc_dict[seg_item] = 1if len(seg_res) > max_len_seq:max_len_seq = len(seg_res)data.append([label, seg_res])# print(max_len_seq)return data, max_len_seq# 定义Dataset
class text_CLS(Dataset):def __init__(self, voc_dict_path, data_path, data_stop_path):self.data_path = data_pathself.data_stop_path = data_stop_pathself.voc_dict = read_dict(voc_dict_path)self.data, self.max_len_seq = load_data(self.data_path, self.data_stop_path)np.random.shuffle(self.data)def __len__(self):return len(self.data)def __getitem__(self, item):data = self.data[item]label = int(data[0])word_list = data[1]input_idx = []for word in word_list:if word in self.voc_dict.keys():input_idx.append(self.voc_dict[word])else:input_idx.append(self.voc_dict["<UNK>"])if len(input_idx) < self.max_len_seq:input_idx += [self.voc_dict["<PAD>"] for _ in range(self.max_len_seq - len(input_idx))]# input_idx += [1001 for _ in range(self.max_len_seq - len(input_idx))]data = np.array(input_idx)return label, data# 定义DataLoader
def data_loader(data_path, data_stop_path, dict_path):dataset = text_CLS(dict_path, data_path, data_stop_path)return DataLoader(dataset, batch_size=10, shuffle=True)data_path = "./sources/his.csv"
data_stop_path = "./sources/hit_stopwords.txt"
dict_path = "./sources/dict.txt"train_dataLoader = data_loader(data_path, data_stop_path, dict_path)
for i, batch in enumerate(train_dataLoader):print(batch[0], batch[1].size())
print(batch[0], batch[1])

在这里插入图片描述

7. 网络模型的配置:

import torch
import torch.nn as nn
import torch.nn.functional as F
import numpy as npclass Config():def __init__(self):'''self.embeding = nn.Embedding(config.n_vocab,config.embed_size,padding_idx=config.n_vocab - 1)self.lstm = nn.LSTM(config.embed_size,config.hidden_size,config.num_layers,bidirectional=True, batch_first=True,dropout=config.dropout)self.maxpool = nn.MaxPool1d(config.pad_size)self.fc = nn.Linear(config.hidden_size * 2 + config.embed_size,config.num_classes)self.softmax = nn.Softmax(dim=1)'''self.n_vocab = 1002self.embed_size = 128self.hidden_size = 128self.num_layers = 3self.dropout = 0.8self.num_classes = 2self.pad_size = 32self.batch_size = 128self.is_shuffle = Trueself.learn_rate = 0.001self.num_epochs = 100self.devices = torch.device('cuda' if torch.cuda.is_available() else 'cpu')class Model(nn.Module):def __init__(self, config):super(Model, self).__init__()self.embeding = nn.Embedding(config.n_vocab,padding_idx=config.n_vocab - 1)self.lstm = nn.LSTM(input_size=config.embed_size,hidden_size=config.hidden_size,num_layers=config.num_layers,bidirectional=True,batch_first=True,                            dropout=config.dropout)self.maxpooling = nn.MaxPool1d(config.pad_size)self.fc = nn.Linear(config.hidden_size * 2 + config.embed_size,                            config.num_classes)self.softmax = nn.Softmax(dim=1)def forward(self, x):embed = self.embeding(x)out, _ = self.lstm(embed)out = torch.cat((embed, out), 2)out = F.relu(out)out = out.permute(0, 2, 1)out = self.maxpooling(out).reshape(out.size()[0], -1)out = self.fc(out)out = self.softmax(out)return out# 测试网络是否正确
cfg = Config()
cfg.pad_size = 640
model_textcls = Model(config=cfg)
input_tensor = torch.tensor([i for i in range(640)]).reshape([1, 640])
out_tensor = model_textcls.forward(input_tensor)
print(out_tensor.size())
print(out_tensor)

在这里插入图片描述

8. 训练脚本的搭建:

model_text_cls = Model(cfg)
model_text_cls.to(cfg.devices)
loss_func = nn.CrossEntropyLoss()
optimizer = optim.Adam(model_text_cls.parameters(), lr=cfg.learn_rate)for epoch in range(cfg.num_epochs):for i, batch in enumerate(train_dataloader):label, data = batch# data1 = torch.tensor(data).to(cfg.devices)# label1 = torch.tensor(label).to(cfg.devices)data1 = data.sourceTensor.clone().detach().to(cfg.devices)label1 = label.sourceTensor.clone().detach().to(cfg.devices)optimizer.zero_grad()pred = model_text_cls.forward(data1)loss_val = loss_func(pred, label1)print("epoch is {},ite is {},val is {}".format(epoch, i, loss_val))loss_val.backward()optimizer.step()if epoch % 10 == 0:torch.save(model_text_cls.state_dict(), "./models/{}.pth".format(epoch))

在这里插入图片描述

9. 小结:

可以通过基于PyTorch 实现NLP自然语言处理将患者病例实现AI技术进行转换,从而让业务能够快速实现自动化打标签,可以起到降本增效的结果。

在这里插入图片描述
“高性能应用服务HAI”基于PyTorch 优化的其它类似的场景应用方案:
在这里插入图片描述


总结:

“高性能应用服务HAI”具有澎湃算力,即开即用,基于腾讯云GPU云服务器底层算力,提供开箱即用的高性能云服务。以应用为中心,匹配GPU云算力资源,助力中小企业及开发者快速部署LLM、AI作画、数据科学等高性能应用。

“高性能应用服务HAI”是面向开发者和企业的云原生机器学习/深度学习工程平台,服务覆盖AI开发全链路,内置6+AI框架和模型,具备丰富的行业场景插件。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用EXCEL计算NTC、BS、电压等AD参数

前言 之前计算NTC的AD值算得很麻烦&#xff0c;因为51内核的单片机不支持除法运算&#xff0c;更别说浮点运算了。 EXCEL自动算出参数就显得很方便了。 有纰漏请指出&#xff0c;转载请说明。 学习交流请发邮件 1280253714qq.com 理论基础 参考这篇文章NTC热敏电阻温度采集…

企业数字化转型进入深海区:生成式AI时代下如何制定数据战略

云计算适用于任何人&#xff0c;任何企业&#xff0c;云计算的分支——人工智能(AI)正发展的迅疾如火&#xff0c;炙手可热。特别是ChatGPT已经挑战各行各业对于AI的认知。 作为全球云计算领域的年度风向标活动&#xff0c;12月12日&#xff0c;亚马逊云科技2023 re:Invent中国…

Web漏洞分析-文件解析及上传(下)

随着互联网的迅速发展&#xff0c;网络安全问题变得日益复杂&#xff0c;而文件解析及上传漏洞成为攻击者们频繁攻击的热点之一。本文将深入研究文件解析及上传漏洞&#xff0c;通过对文件上传、Web容器IIS、命令执行、Nginx文件解析漏洞以及公猫任意文件上传等方面的细致分析&…

基于C/C++的非系统库自定义读写ini配置

INI文件由节、键、值组成。 节 [section] 参数 &#xff08;键值&#xff09; namevalue 这里将常用的操作方式封装成了一个dll供外部使用 // 下列 ifdef 块是创建使从 DLL 导出更简单的 // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 LIBCFG_EXPORTS // 符号…

有什么简单实用的民宿管理系统软件?民宿如何开拓盈利渠道?

民宿是近些年兴起的一种小型住宿设施&#xff0c;一般就是利用当地的一些民房改造的。民宿的装修风格一般更加具有本土风味&#xff0c;很适合拍照打卡。不过民宿由于规模比较小&#xff0c;所以员工一般也不多&#xff0c;很多民宿的入住登记都要旅客自己弄。所以有很多民宿会…

STC8模板代码

目录 STC8依赖文件库 程序结构 GPIO操作 初始化所有 使用宏配置IO口 使用函数配置IO口 UART操作 头文件 初始化 UART1 UART2 UART3 UART4 接收逻辑 UART1 UART2 UART3 UART4 发送 UART1 UART2 UART3 UART4 配置printf Timer操作 导入依赖 初始化 Time…

Apache DolphinScheduler 社区荣获 “2023 年度优秀开源技术团队“ 奖项

在开源社区日益繁荣的今天&#xff0c;我们非常荣幸地宣布&#xff1a;Apache DolphinScheduler 社区在 OSCHINA 平台的评选中荣获了“2023 年度优秀开源技术团队”奖项。这一奖项反映了我们社区在过去一年里在内容发表的深度与广度、活动运营影响力以及对开源文化的推广方面所…

AGILE-SCRUM

一个复杂的汽车ECU开发。当时开发队伍遍布全球7个国家&#xff0c;10多个地区&#xff0c;需要同时为多款车型定制不同的软件&#xff0c;头疼的地方是&#xff1a; 涉及到多方人员协调&#xff0c;多模块集成和管理不同软件团队使用的设计工具、验证工具&#xff0c;数据、工…

JS-sessionStorage、localStorage和cookie

sessionStorage 仅在浏览器当前窗口关闭之前有效,即使是刷新或者进入该窗口下的的另一个页面&#xff0c;数据也仍然存在&#xff1b;关闭浏览器或到另一个窗口&#xff0c;数据就是不存在的。 // 设置sessionStorage保存到本地&#xff0c;第一个为变量名&#xff0c;第二个是…

实验一 门电路逻辑功能及测试

一、实验目的 1.熟悉门电路逻辑功能. 2.熟悉数字电路学习机及示波器使用方法。 二、实验仪器及材料 1.双踪示波器 2.器件 74LS00 二输入端四与非门 2片 74LS20 四输人端双与非门 1片 74LS86 二输入端四异或门 1片 74LS04 六反相器 1片 …

如何在本地搭建Oracle数据库并实现无公网ip通过PLSQL工具远程连接数据库

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 正文开始前给大家推荐个网站&#xff0c;前些天发…

基于JAVA的校园电子商城系统论文

摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所以对于信息的宣传和管理就很关键。因此校园购物信息的…

西南科技大学数字电子技术实验七(4行串行累加器设计及FPGA实现)预习报告

一、计算/设计过程 说明&#xff1a;本实验是验证性实验&#xff0c;计算预测验证结果。是设计性实验一定要从系统指标计算出元件参数过程&#xff0c;越详细越好。用公式输入法完成相关公式内容&#xff0c;不得贴手写图片。&#xff08;注意&#xff1a;从抽象公式直接得出结…

正则表达式入门与实践

文章目录 一、为什么要有正则二、正则表达式基础概念三、Pattern与Matcher类的使用(一)Pattern类的常用方法(二)Matcher类的常用方法四、常用正则规则及其含义(一)规范表示(二)数量表示(三)逻辑运算符五、String对正则表达式的支持六、实践演练(一)匹配给定文本中的…

如何预防最新的.halo勒索病毒感染您的计算机?

导言&#xff1a; 数据的安全性愈发成为人们关注的焦点&#xff0c;而.halo勒索病毒的出现给数字生活带来了严重的威胁。本文91数据恢复将深入介绍.halo勒索病毒的特征&#xff0c;提供有效的数据恢复方法&#xff0c;并分享一些预防措施&#xff0c;助您更好地保护自己的数字…

大数据云计算——Docker环境下部署Hadoop集群及运行集群案列

大数据云计算——Docker环境下部署Hadoop集群及运行集群案列 本文着重介绍了在Docker环境下部署Hadoop集群以及实际案例中的集群运行。首先&#xff0c;文章详细解释了Hadoop的基本概念和其在大数据处理中的重要性&#xff0c;以及为何选择在Docker环境下部署Hadoop集群。接着&…

12.HTML5新特性

HTML5新特性 1.介绍 它是万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言&#xff08;HTML&#xff09;的第五次重大修改。用于取代 HTML4 与 XHTML 的新一代标准版本&#xff0c;所以叫HTML5 HTML5 在狭义上是指新一代的 HTML 标准&#xff0c;在广义上是指…

云原生之深入解析K8s中的微服务项目设计与实现

一、微服务项目的设计 ① 微服务设计的思想 一个单片应用程序将被构建、测试并顺利地通过这些环境。事实证明&#xff0c;一旦投资于将生产路径自动化&#xff0c;那么部署更多的应用程序似乎就不再那么可怕了。请记住&#xff0c;CD的目标之一就是让部署变得无聊&#xff0c…

【亲测可用】实在太快了!如何在Linux下5分钟快速安装MongoDB

简介 MongoDB 是一款介于关系数据库和非关系数据库之间的产品&#xff0c;是非关系数据库当中功能最丰富&#xff0c;最像关系数据库的。他支持的数据结构非常松散&#xff0c;是类似json的bson格式&#xff0c;因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询…

如何参与开源项目

大家好&#xff0c;受卡哥邀请&#xff0c;和大家分享一下开源活动的相关经验。首先简要自我介绍一下&#xff0c;我目前在一所985研二在读&#xff0c;主要学习大数据方向&#xff0c;从去年开始参与开源活动近一年时间&#xff0c;也对多个Apache框架有所贡献。 由于学校或专…