前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2022年算法工作总结

2022年算法工作总结

作者头像
Michael阿明
发布2023-01-13 12:46:02
3790
发布2023-01-13 12:46:02
举报

文章目录
  • 1. 批处理的效率的提升
  • 2. 不要手动分析数据
  • 3. redis 不适合存储非常大的数据量
  • 4. hive 查询效率
  • 5. 内存不足问题
  • 6. 端到端的测试、报警
  • 7. 学习
  • 8. 感谢

总结下2022年工作中的收获

1. 批处理的效率的提升

这是常识,但是还是踩过这些雷

  • 一个NLP分类项目中,GPU在推理的时候没有采用批量输入,效率很低,需要批量输入,同时注意同一个批次内句子的最大长度不要太长,不然占用GPU存储会比较高
  • ES写入时,没有使用 bulk 批量接口,速度太慢,需要使用 批量接口(缩短写入时间),同时配合 生成器作为输入(减少内存占用)

2. 不要手动分析数据

分析用户特征和留存的关系时,使用了 dtale 这个包来手动分析,这个包可视化还挺好的,但是我面对的是很多种组合分析,手动点鼠标要累死我啊

后面果断放弃,使用 pandas groupby 分组 + agg 聚合 + 聚合函数,写代码一劳永逸,省时省力

3. redis 不适合存储非常大的数据量

做一个demo项目展示,我不懂前端,用的最原始的 html 模板 + jinjia渲染模板 + FastAPI框架,用户请求时,根据表单输入去 redis 里 get 数据

demo 打开了大家的思路,大家说想要看更多的时间段的数据,redis 存储不下了,消耗的内存非常大,咨询大数据的同事也说,这是不可行的,内存很贵的,推荐我使用 ES 存储,ES可以弹性伸缩,存储是放在磁盘里的,磁盘存储很便宜

4. hive 查询效率

  • 查询条件中避免 in (里面一大堆具体的数值),sql 可能有长度限制,查询效率也低,不过 in 本身的效率就低,也要减少使用
  • 多表 join 之前,先对单个表把需要的字段和数据单位用 where 限制住,尤其是有分区的表,把分区 指定好,减少数据的规模,查询效率会高一些。不然hive查询非常慢,还说不定告诉你 hive 节点内存不足,查询失败
  • 尽量使用 group by 去重,而不是 distinct
  • hive 查询失败了要有重试机制

5. 内存不足问题

  • 数据去重时,内存不足,程序崩溃,采用某个去重数字字段的后几位分桶,分别在桶内去重(分治)
  • 处理业务问题的时候,直接一股脑的都一起处理了,内存爆了,思考下业务段之间有没有互相的逻辑上的交叉,没有的话,分治处理(分年份、分年级处理)
  • 完成任务后有一个快照线程未被手动销毁,造成内存泄漏

6. 端到端的测试、报警

  • 选数据源时,如果有多个表AB可以选,有没有别的表可以验证数据正确性,抽样数据看看AB哪个更准
  • 端到端的测试,上游产生了多少数据,经过我们的处理后,生成了多少新的数据以及数据是否正确,中间有各种环节的错误数据被丢弃,监控这样的数据比例,发送消息到工作群

7. 学习

今年学习(抄书)不多,陆续抄了些 pyqt、react、python高性能方面的、Rasa、Es 方面的知识,单就书而言,都没有完整系统的学完,也没有实践经验

深度学习方面跟进的不多,仅限于看看公众号的文章,不深入,也没有实践代码

8. 感谢

  • 感谢家人的支持和理解,程序员下班比较晚,平时陪伴时间比较少,努力分配好工作和生活的时间
  • 感谢军哥对我的指导,面对工作上的压力时,告诉我方法和路径,感谢邹老师在技术上给我的支持
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1. 批处理的效率的提升
  • 2. 不要手动分析数据
  • 3. redis 不适合存储非常大的数据量
  • 4. hive 查询效率
  • 5. 内存不足问题
  • 6. 端到端的测试、报警
  • 7. 学习
  • 8. 感谢
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档