入职3年-我如何做一名AI产品经理
引言从2021年校招加入京东开始,我一直从事AI产品经理的工作,有幸见证了AI行业的热情从一台台服务器烧到了全世界各个角落,也见证了京东AI中台团队的影响力如何一步步的扩大。从21年的迷茫到24年的坚定,很庆幸我正走在适合自己的道路上,也有幸在此分享一些我的成长故事和观点。一、入局:AI风口下的职业判断从事AI产品方向是巧合也是个人的一次判断。我在学生期间主修方向是机械工程和风险管理,之前是没有
实战剖析-vue项目首屏加载时长优化
首屏速度是用户体验的最关键一环,而首屏速度的决定性因素就是资源的加载速度,资源加载速度等于资源大小 + 网速,老的前端项目随着不断增长,代码可能会变得混乱,冗余难以理解,不断的做加法,久而久之,前端性能上就会受到影响,相信大家在工作当中一定遇到,页面加载时间慢,响应时间长等问题,本文将以具体项目为例(vue 2.51.7 webpack:4.23.1),一点一点分析,通过实战的角度,介绍如何对Vu
京东广告研发——AIGC在京东广告创意的技术应用
一、前言现有的广告图片大多依赖人工制作,存在效率和成本的限制。尽管最近AIGC技术取得了卓越的进展,但其在广告图片的应用还存在缺乏卖点信息、难以规模化和个性化以及不利于卖点展示等问题。为了解决上述业界难题,京东广告部门在2023年提出了一系列创新性方法:首先提出了关系感知扩散模型将卖点信息叠加在人工制作的商品图片上;之后提出了融合类目共性和个性化风格的背景生成模型来实现规模化和个性化的图片自动生成
AI从入门到入门之手写数字识别模型java方式Dense全连接神经网络实现
前言:授人以鱼不如授人以渔.先学会用,在学原理,在学创造,可能一辈子用不到这种能力,但是不能不具备这种能力。这篇文章主要是介绍算法入门Helloword之手写图片识别模型java中如何实现以及部分解释。目前大家对于人工智能-机器学习-神经网络的文章都是基于python语言的,对于擅长java的后端小伙伴想要去了解就不是特别友好,所以这里给大家介绍一下如何在java中实现,打开新世界的大门。以下为本
写给职场新人|从迷茫到屡获殊荣的技术人成长之路
1.锚定方向:学生生涯的一次探险如果用一个词语概括我的本科阶段,那大概就是“迷茫”。大三前,我一直在寻找自己的热情所在,自动化专业课程内容太过理论,在个人层面没法落地。恰巧在大三Python Programming这门课中,花几个小时就能开发一个软件,并被很多人使用,这对于一个结果导向型的人来说是件非常有成就感的事情,这件事也坚定了我转计算机的信念。在那之后便开始了自学,通过较为高效的自学方法论,
工程中实践的微服务设计模式
最近在读《微服务架构设计模式》,开始的时候我非常的好奇,因为在我印象中,设计模式是常说的那23种设计模式,而微服务的设计模式又是什么呢?这个问题也留给大家,在文末我会附上我对这个问题的理解。本次文章的内容主要是工作中对微服务设计模式的应用,希望能对大家有所启发。事务发件箱模式事务发件箱模式:将消息保存在数据库 “发件箱”表 作为事务的一部分policy 为处理投保的微服务,以投保事务为例:如上图所
库存领域核心能力--库存预占 建设实践
前言本文总结库存领域建设库存预占能力时遇到的问题以及解决方案。感谢【金鹏】、【孙静】、【陈瑞】同学在本文撰写中提供的内容及帮助!1、库存预占业务概述消费者拍下商品订单后,库存系统先为该订单预留库存,这个预留库存的动作被称为库存预占。在系统中,库存预占主要是对库存数据进行扣减操作。例:假如一个商品有5个可用库存,订单购买了1个此商品,库存系统需要把可用库存的数量由5扣减为4库存预占属于物流核心流程。
微服务架构下如何通过弱依赖原则保障系统高可用
前言 当我初次接触高可用这个概念的时候,对高可用的【少依赖原则】和【弱依赖原则】的边界感模糊,甚至有些“傻傻分不清楚”。这两个原则都关注降低模块之间的依赖关系,但它们之间的确存在某些差异。那么,「少依赖原则」和「弱依赖原则」它们之间本质的区别究竟是啥? 少依赖原则和弱依赖原则都是旨在提高系统的可靠性和稳定性,但是它们之间的
基于Redis实现基本抢红包算法
简介:[key, value]的缓存数据库, Redis官方性能描述非常高, 所以面对高并发场景, 使用Redis来克服高并发压力是一个不错的手段, 本文主要基于Redis来实现基本的抢红包系统设计.发红包模块: 1:发红包模块流程图如下:用户首先输入红包金额和红包个数, 然后生成当前红包标识, 并使用二倍均值算法生成随机金额的红包, 然后将生成的红包存入缓存Redis数据库中, Redis
一种融合指代消解序列标注方法在中文人名识别上的应用(上)
技术领域自然语言处理领域。应用场景: 适用于自然语言处理领域,通过命名实体识别(Named Entity Recognition,NER),准确识别实体。依托自然语言处理领域,基于人民日报数据及构造的舆情公告数据,提出一种融合指代消解的序列标注方法来改进人名识别。解决的问题: 实体包括人名、地名和组织名等,与其他实体相比,人名与职务、
Hive引擎底层初探
1、什么是Hive Hive是一个基于Hadoop的数据仓库工具,用于处理和分析大规模结构化数据。Hive提供了类似SQL的查询语言(HiveQL),使得熟悉SQL的用户能够查询数据。Hive将SQL查询转换为MapReduce任务,以在Hadoop集群上执行数据处理和分析。2、Hive起源回答这个问题之前,先介绍下Hadoop。Hadoop是专门为离线和大数据分析而设计
DDD落地指南-架构师眼中的餐厅
在去年、我整理了一篇名为《如何做架构设计?》的文章,主要探讨了架构设计的目标和过程,然而、那是一篇概括性的文章,用于启发思路,并不是具体的实践指南,因此、我一直期望给出具体参考案例。 我几乎忘了这件事,如今回顾、我发现并没有合适的案例可供参考,现有的案例要么不完整、要么是与业务耦合的特定场景,要么无法支撑研发落地。所以我决定从实
大报文之道:优化策略与实践
写在前面在做正常的需求开发时,当我们提供了一个接口或是调用别人接口时,我们需要考虑接口除了正常的逻辑处理外,还需要考虑接口能接收报文的上限,性能,响应时间等一系列非功能性需求。如果不注意这些问题,就可能在某一天的某个时刻收到一系列系统告警,严重者甚至导致系统不可用,引发线上事故。如涉及明细列表相关的接口中没考虑明细的上限,某一时刻上游下发了一个大明细从而可能就引发了上述的问题。这就是日常所说的大报
如何熟悉一个陌生系统
在日常开发过程中,我们经常需要去承接一个陌生的系统,而且承接的系统都很复杂,那我们应该如何快速去熟悉一个系统呢,有哪些思路和切入点呢,下面从业务和技术以及实操3个层面来分享一些心得体会。业务层面在熟悉一个系统之前一定是先熟悉业务再熟悉技术,切不可本末倒置,下面是熟悉业务的一些要点。1.业务背景系统都是为业务服务,所以要了解系统为公司的哪块业务服务,在所有的业务域里处于一个什么样的地位,实现什么业务
使用Python生成二维码
1、背景上一次我们介绍了什么是二维码,读过这篇文章以后,相信大家对二维码已经有了一定的认识,那么有没有想过如何自己动手生成二维码呢?二维码在我们的生活与工作中,都能够做什么呢?今天我们来探讨一下用Python如何生成二维码。2、使用哪些库Python具有丰富的第三方库,能够生成二维码的就有qrcode库、segno库、pystrich库、myqr库。其中segno是一个纯python语言开发的二维
万字长文,聊聊我在锦礼成长的这一年
”学而不思则罔,思而不学则殆“,本文记录了作者在锦礼侧工作1年间遇到的思考与成长、挑战与困难,也是对过去工作的总结与反思,分享出来,希望对大家有所帮助。本文约10000字如果觉得页面很长那是因为截图和留言很多,哈哈00引言光阴似箭,来到锦礼产品线已满一年了,这期间深刻的了解到B端不同解决方案之间的巨大差别,当然也遇到过很多挑战与困难,有业务团队认可的成就感,有眼高手低造成系统BUG的挫败感,有担任
一种融合指代消解序列标注方法在中文人名识别上的应用(下)
二、使用了BERT模型和指代消解算法:加入BERT语言预处理模型,获取到高质量动态词向量。融入指代消解算法,根据指代词找出符合要求的子串/短语。【2】融入指代消解算法,根据指代词找出符合要求的子串/短语 指代消解算法如图2所示,简单来说,就是考虑文档中子串/短语以及学习子串/短语的可能指代。通过分词器将句子y分割为a~e五个字,将其作为输入传给模型中的BiLSTM模块,然后提
对号入座,快看看你的应用系统用了哪些高并发技术?
一 系统简介百舸流量运营平台承接着京东金融APP核心资源位和京东APP部分重要资源位,大促单接口QPS达到10w+,压测单接口到20w+,典型的c端读链路高并发场景。接下来,聊聊我们的系统都有哪些应对高并发的“武功秘籍”。二 “武功秘籍”1 缓存(redis缓存,本地缓存)缓存是提高系统的并发和提升系统的性能利器。redis分布式缓存用来解决缓存容量和性能问题,本地缓存用来解决redis的热k
实现“代码可视化”需要了解的前置知识-编译器前端
1. 前言“代码可视化”的概念定义和业界案例在前文中已经进行了讲述,综述可阅读浅析“代码可视化”,更多相关知识可查看专栏“代码可视化”。本文梳理了“代码可视化”功能开发需要前置了解的编译器前端部分知识,因能力有限若有解释不清和错误的地方敬请谅解,如果想更深入正规的学习相关知识可以查看文后扩展阅读。2. 编译器(Compiler)主要了解前端和中端相关理论知识,后端部分和目标机器代码、特定机器架构相
并发编程-ExecutorCompletionService解析
1、简单介绍我们在并发编程中,目前大部分做法都是将任务添加到线程池中,并拿到Future对象,将其添加到集合中,等所有任务都添加到线程池后,在通过遍历Future集合,调用future.get()来获取每个任务的结果,这样可以使得先添加到线程池的任务先等待其完成,但是并不能保证第一个添加到线程池的任务就是第一个执行完成的,所以会出现这种情况,后面添加到线程池的任务已经完成了,但是还必须要等待第一