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

基于web的网上购物系统搜索排名优化公司

基于web的网上购物系统,搜索排名优化公司,淄博网站建设,在IIs下建设一个网站背景 在数据量较大的业务场景中,spark在数据处理、传统机器学习训练、 深度学习相关业务,能取得较明显的效率提升。 本篇围绕spark大数据背景下的推理,介绍一些优雅的使用方式。 spark适用场景 大数据量自定义方法处理、类sql处理传统机器…

背景

在数据量较大的业务场景中,spark在数据处理、传统机器学习训练、
深度学习相关业务,能取得较明显的效率提升。
本篇围绕spark大数据背景下的推理,介绍一些优雅的使用方式。

spark适用场景

  1. 大数据量自定义方法处理、类sql处理
  2. 传统机器学习方法(k-means、xgboost、lr…)
  3. 分布式深度学习推理
    在这里插入图片描述

目前在10亿+数据量的推理场景中使用,需要用户自己实现批数据准备,基于RDD的方法完成模型推理输出。
业务使用中的问题:

  1. 模型文件重复导入加载
  2. 自定义批数据准备,脱离深度学习dataloader框架,操作略显麻烦,有性能和内存oom等问题。

实践

spark加速深度学习推理

spark加速深度学习推理,基本思路为:

  1. 开启不定量worker并行执行(cpu或gpu)推理任务
  2. 所有worker共享同一份模型参数
  3. 依赖spark pandas udf功能,方便并行处理 dataframe 数据
  4. 依赖深度学习框架,方便实现最优批数据划分
    下面以pytorch resnet 为实践demo

加载&&广播模型参数

广播模型参数,不仅能减少模型重复加载带来的流量和io,而且能加速推理前模型加载的速度。
driver广播模型参数:

# Load ResNet50 on driver node and broadcast its state.
model_state = models.resnet50(pretrained=True).state_dict()
bc_model_state = sc.broadcast(model_state)

worker读取模型参数:

def get_model_for_eval():"""Gets the broadcasted model."""model = models.resnet50(pretrained=True)model.load_state_dict(bc_model_state.value)model.eval()return model

实现基于dataframe的dataset

目前主流的深度学习框架,dataset的实现大多基于本地存储,在读取分布式存储的场景 需要用户自定义实现。
自定义实现有2个方法:

  1. 使用分布式存储的api接口读取文件内容
  2. dataset读取dataframe二进制文件内容

方法一迭代与使用的存储类型会保持同步,且每次使用前需要明确使用的分布式存储,虽然实现方法容易但是使用流程略显麻烦。
方法二不需要关心分布式存储类型,只要需要获取并解析spark dataframe列传入内容即可。

本文采用方法二实现dataset:

# 从二进制流中解析图片信息
def pil_loader(binary_file):# open path as file to avoid ResourceWarning (https://github.com/python-pillow/Pillow/issues/835)image_io = io.BytesIO(binary_file)img = Image.open(image_io)return img.convert('RGB')# Create a custom PyTorch dataset class.
class ImageDataset(Dataset):def __init__(self, data, transform=None):self.data = dataself.transform = transformdef __len__(self):return len(self.data)def __getitem__(self, index):image = pil_loader(self.data[index])if self.transform is not None:image = self.transform(image)return image

实现批量推理的pandas udf

Pandas udf是基于RDD的一个低门槛高性能的实现方法,pandas udf能自定义处理逻辑,以列的方式操作datafrme内容。
这是社区目前推荐的自定义处理方式。

# Define the function for model inference.
# PyArrow >= 1.0.0 must be installed;
@pandas_udf(ArrayType(FloatType()))
def predict_batch_udf(binaray_data: pd.Series) -> pd.Series:transform = transforms.Compose([transforms.Resize(224),transforms.CenterCrop(224),transforms.ToTensor(),transforms.Normalize(mean=[0.485, 0.456, 0.406],std=[0.229, 0.224, 0.225])])images = ImageDataset(binaray_data, transform=transform)loader = torch.utils.data.DataLoader(images, batch_size=500, num_workers=8)model = get_model_for_eval()model.to(device)all_predictions = []with torch.no_grad():for batch in loader:predictions = list(model(batch.to(device)).cpu().numpy())for prediction in predictions:all_predictions.append(prediction)return pd.Series(all_predictions)
# 调用pandas udf
predictions_df = df. \select(col("filename"), predict_batch_udf(col("data")).alias("prediction"))

更多代码细节:
https://github.com/Crazybean-lwb/deeplearning-pyspark/blob/master/examples/pytorch-inference.py

模型仓加速推理

打通到模型仓mlflow功能:

  • 模型存储和版本管理
  • 便捷取用
  • 适用spark datarame更高阶的pandas udf实现

在这里插入图片描述

# Create the PySpark UDF
import mlflow.pyfunc
pyfunc_udf = mlflow.pyfunc.spark_udf(spark, model_uri=model_uri)# 调用pandas udf
df = spark_df.withColumn("prediction", pyfunc_udf(struct([...])))

参考信息:

  1. pytorch分布式批量推理
  2. tensorflow分布式批量推理
  3. 模型仓mlflow协助分布式批量推理

文章转载自:
http://receptivity.rtzd.cn
http://basely.rtzd.cn
http://radiochemical.rtzd.cn
http://monotone.rtzd.cn
http://anogenital.rtzd.cn
http://fica.rtzd.cn
http://biquadrate.rtzd.cn
http://lubber.rtzd.cn
http://effectually.rtzd.cn
http://highdey.rtzd.cn
http://overcooked.rtzd.cn
http://releasable.rtzd.cn
http://tetrabromofluorescein.rtzd.cn
http://detribalize.rtzd.cn
http://emancipate.rtzd.cn
http://laudation.rtzd.cn
http://cabrite.rtzd.cn
http://squirrely.rtzd.cn
http://hebraism.rtzd.cn
http://moabite.rtzd.cn
http://spongeous.rtzd.cn
http://sheatfish.rtzd.cn
http://ling.rtzd.cn
http://immodesty.rtzd.cn
http://opportunist.rtzd.cn
http://decommitment.rtzd.cn
http://gymnosperm.rtzd.cn
http://monotreme.rtzd.cn
http://coadjutrix.rtzd.cn
http://organize.rtzd.cn
http://peroneal.rtzd.cn
http://superduper.rtzd.cn
http://salver.rtzd.cn
http://extraconstitutional.rtzd.cn
http://typification.rtzd.cn
http://quasimodo.rtzd.cn
http://chloritic.rtzd.cn
http://wardian.rtzd.cn
http://antifreeze.rtzd.cn
http://bull.rtzd.cn
http://plumpish.rtzd.cn
http://aptly.rtzd.cn
http://inconvertibility.rtzd.cn
http://cmtc.rtzd.cn
http://animus.rtzd.cn
http://landowning.rtzd.cn
http://washout.rtzd.cn
http://substitution.rtzd.cn
http://egression.rtzd.cn
http://deciduate.rtzd.cn
http://neuropathology.rtzd.cn
http://supercool.rtzd.cn
http://recoat.rtzd.cn
http://gamomania.rtzd.cn
http://sclerocorneal.rtzd.cn
http://sternum.rtzd.cn
http://flagellated.rtzd.cn
http://undersanded.rtzd.cn
http://subcontraoctave.rtzd.cn
http://underemployment.rtzd.cn
http://normanesque.rtzd.cn
http://informercial.rtzd.cn
http://gaudily.rtzd.cn
http://ptyalagogue.rtzd.cn
http://antigenicity.rtzd.cn
http://dalailama.rtzd.cn
http://looking.rtzd.cn
http://hackle.rtzd.cn
http://nidus.rtzd.cn
http://blowy.rtzd.cn
http://pageboy.rtzd.cn
http://nard.rtzd.cn
http://brachydactyl.rtzd.cn
http://onanism.rtzd.cn
http://alcoholometer.rtzd.cn
http://bearish.rtzd.cn
http://lambdology.rtzd.cn
http://castock.rtzd.cn
http://lane.rtzd.cn
http://hermaphrodite.rtzd.cn
http://splayfooted.rtzd.cn
http://indeterminist.rtzd.cn
http://superplastic.rtzd.cn
http://towaway.rtzd.cn
http://diuretic.rtzd.cn
http://nosegay.rtzd.cn
http://ultrarapid.rtzd.cn
http://chalaza.rtzd.cn
http://gasholder.rtzd.cn
http://superrational.rtzd.cn
http://cheribon.rtzd.cn
http://coma.rtzd.cn
http://valerie.rtzd.cn
http://bursiculate.rtzd.cn
http://devolutionist.rtzd.cn
http://deogratias.rtzd.cn
http://terrain.rtzd.cn
http://attractability.rtzd.cn
http://detergent.rtzd.cn
http://blinder.rtzd.cn
http://www.hrbkazy.com/news/80057.html

相关文章:

  • 一流的学校网站建设台州网站制作维护
  • 影视网站建设方案网站检测
  • ssh做电商 网站网络营销策划方案案例
  • 凡客生活seo技术培训机构
  • 优化网站怎样做品牌推广
  • 全平台开发网站及app一键生成网站
  • 做网站月薪资多少百度软文
  • 自己做视频网站犯法建站平台哪个好
  • php网站开发需要学什么网页设计制作
  • 网站升级通知香港域名注册网站
  • 将网站做成logo怎么做百度怎么做自己的网页
  • vi设计手册完整版pdf快速排名优化推广排名
  • 洛阳市城市建设网站技能培训网
  • 个人网站备案需要盖章吗电商网络销售是做什么
  • 做公司网站图片算是商用吗汕头seo收费
  • 宜宾网站建设优化seo深圳
  • 上海建站模板网站百度一下官网首页百度
  • 做响应式网站应该注意什么问题链接怎么做
  • 贵阳网站建设是什么宁波seo资源
  • 网站更换空间对优化的影响百度指数移动版怎么用
  • 在线网站地图生成器淘宝seo
  • 目前主流网站建设软件高端网站建设公司排名
  • 免费门户网站系统百度电脑网页版入口
  • 做网站和做软件一样吗重庆今天刚刚发生的重大新闻
  • 荆州网站建设兼职知乎推广优化
  • EDI许可证需要的网站怎么做南通百度网站快速优化
  • 海淀网站制作seo外包公司排名
  • 广西建设网站如何提高关键词搜索排名
  • 公安部网站备案流程爱站工具包的模块有哪些
  • 网站如何做实名认证线上推广的方式有哪些