2023年七月份随笔

Posted by AlstonWilliams on July 29, 2023

生活

本月尝试用AI帮我做更多的事情。不管是工作还是生活中,希望AI能够帮助我做更多的事情。

尝试了几个方向,首先是AI辅助写代码,尝试Github Copilot辅助写代码,试用下来还是挺惊艳的,它相较于IDEA自动补全代码的方式,IDEA只能在我们输入一个方法名的时候,检索可能存在哪些方法然后让我们选择,但Copilot能做到更进一步,它能够自动帮我们把代码补全。比如我想写一个计算器,有如下代码:

result := 0.0
switch operator {
  case Operator_SUM:
    result = a + b
  ...
}

然后我们在写其他的case的时候,比如减的情况下,Copilot能自动帮我们生成出来。

这是一个很了不起的能力。还有一些比如我们日常用的比较多的反序列化json的代码,也能一下子自动帮我们生成,并自动生成error处理的代码。

但它不是银弹,它有一些问题,比如它生成的速度比较慢,往往需要1s+才能有提示,比我们手动写代码的速度可能慢一些,至少我是很少能等到。另一方面,它的语料库不够丰富,它是用Github上的代码库训练的,但在字节跳动这边大量使用的是内部的框架,这些代码它是无法生成的。而且,它有安全上的问题,它会把代码传到对方的服务器上去生成代码,而不是本地有个模型直接给你算出来,这就会导致代码泄露。所以在公司环境这个工具是不能用的。

现在各大型公司内部应该都在做大模型相关的工作,用内部的数据训练,所以语料库和安全这块应该能解决。但速度这块,是需要继续提升的,这种响应速度是完全不够看的。

也尝试用AI做一些私人订制化的AI助手。比如我们最近想开源节流,了解每个月花费都在哪里,如何去节省。如果数据都手工录入手工分析太费劲,不可能落地。所以我想能不能用AI做一些工作,我给它我们每个月的账单,然后它告诉我大头花在哪些地方,哪些地方可以优化。尝试了下,用LangChain写了些代码,基本思路是先手动下载账单,做一些预处理,然后通过LangChain读取格式化之后的数据,并且调用ChatGPT进行分析。然后告诉我最终的结果。倒是都走通了,但存在一些问题。首先,分析结果不准确,比如我会问它,我每个月在美团上花了多少钱,它算出来的结果是不准确的。其次,跟Copilot一样,它是需要把数据都传到ChatGPT的服务器上,是存在数据安全问题的。

最重要的是它算出来的结果不准确。现在大模型的原理都是根据输入用概率计算哪种输出最符合人类的预期,然后去做输出。这内部是没有逻辑在里面的。所以它在处理这种逻辑计算的时候不符合预期。

AI在文字处理方面的表现还是很惊艳的。现在有太多的AI工具,但多数都是处于内测阶段。国外有OpenAI的ChatGPT、Google的Bard、微软的NewBing,国内最有名的是百度的文心一言。试用了ChatGPT,Bard和NewBing。ChatGPT语料库不是最新的,Bard和NewBing可以支持最新的语料库,但Bard之前不支持中文,英文回答的还不错。NewBing不登录有条数限制,登录了又用不了了,因为账号没有在试用名单里。Google Chrome有一些比较好的工具,可以极大帮助我们提升工作效率。比如有个插件叫MaxAI.me,在我们选择一段文字之后,可以让它帮忙摘要、改写,以及一键生成摘要,这个工具很不错。

希望哪一天AI能足够智能,足够私人化。

思考

有些道理是需要从实践中来到实践中去。关于思维方式这一点,一直在刻意练习,5w1h做到没那么容易。

What:需要清楚定义问题,存在什么问题,这个问题真的是个问题吗?是否大家都认可这个问题?

Why:解决这个问题能带来什么收益,收益是最终收益吗?比如我们解决一个稳定性问题,过程指标有SLA提升了多少,P99提升了多少,但这些指标不是最终指标,不是最终的收益。最终的收益应当是我们通过做了这些事情,让用户的体验提升了多少,停留时常提升了多久。比如我们建设一个通用能力,覆盖了多少地方是一个过程指标,最终收益是通过这个能力带来了多少人力的节省。在做需求详情的时候,经常会看到这个需求最终目标是提升GMV,但它定的指标是WAU提升多少,这也是因为WAU是一个过程指标,需要跟其他的需求协同一起做一些事情来达成最终的GMV目标。若只看单个需求的收益难免雾里看花看不到价值。

How:解决这件事的方案是什么?比如一个技术问题,需要准备好整体的架构图,每个环节的交互流程,以及在这个过程中会出现什么问题,我们要如何解决这些问题。如何保障系统能够平稳运行?最终方案是什么?我们如何去进行实施?一下子就把一个复杂的方案实施到位不现实,那么我们要去如何拆分,拆分成几期,每期都要做什么?需要上下游如何配合?需要他们配合什么?他们要做什么?

When:这件事的执行节奏是什么样子?比如一个需求的话,从需求评审到进入研发到联调到测试到上线。每个时间节点都是什么时候?每个环节的时间有什么风险没?

Who:需要哪些上下游参与?需要他们做什么?他们应该怎么做?

Where:做的事情最终收益如何衡量?是用在哪个地方?如何可视化的进行衡量?

工作

这个月有些忙碌,但依旧是幸福的一个月。

去成都出差一趟,时间被极大压缩了。原先就稍显忙碌的节奏,被这一压缩,就忙的起飞了。往往一天满满当当的会议,中午饭点到了还是要拉着人对齐这个对齐那个,然后吃完饭回来接着忙,一天基本除了吃饭的二三十分钟其它时间都是扑在工作上。有一句话说“当你感觉特别累的时候,往往也是成长最大的时候”。现在回过头来想想这句话是有一定的道理的,因为要做的事情太多,所以需要了解每件事情背后对应的业务中的位置是什么,为什么要做,能带来什么价值,跟其它事情相比是什么优先级。但每个业务方肯定都认为自己的需求最重要,这就需要我了解我们组同学的排期,每个需求预期上线时间,目前的进度,协同方的时间排期,然后看我们组同学需要先介入哪些需求,如何排,这样去保证在忙碌中需求交付还是有条不紊的进行。当遇到时间冲突的时候,也能拿着我们人力排期表,去battle产品内部做优先级调整。来了新需求,因为了解每个人的排期,所以能在需求还在前置评估的时候,拍出来一个我们能介入的最早时间,让业务方对上线时间有个预期,及时协调资源。

因为去深入了解了负责的方向的业务情况,知道业务在做的事情,以及需要数据提供的能力,在数据沉淀这块上,就做的比较好,有块数据我们沉淀下来之后,极大的提升了开发效率和可复用性。在此后这块修修改改好多次,并接入了一些新的场景,但我们基本都不需要开发,改下配置就好了,大概节省10个人天左右。了解业务的重点,不仅在开发的排期上能有的放矢,在做产品稳定性保障的时候也能有的放矢,不至于花了很多精力却最终发现没有收益。

现在相比两个月前的自己,成长不少。可能也是厚积薄发吧。

不过在业务这块,还是需要继续提升。下个月去重点了解下用户方向业务做的事情,大下个月了解商家方向业务做的事情。

这个月开始,对数据的需求开始有一些场景化的诊断类需求渐渐萌芽了。之前以为会是搞一个诊断模块,现在这个还没等到,倒是有一些小的诊断类需求出现了,比如会告诉用户你的视频相对过去30天GMV提升了多少。这些点需求点很少,很零散,但我们可以从中归纳总结出来一些方法论去做场景化建设。比如维度上可以区分用户、视频、商品等多个维度,对比方式上可以分为跟自己对比、跟同行业对比、跟同级别对比,指标上有GMV、VV等指标。这些诊断策略是灵活性很高的,如果我们每次都是case by case的去建设,那么务必造成人力的重复消耗。更好的做法是什么呢?建设不同主题的指标库,可以通过规则配置的方式从指标库中取到对应维度对应指标的数据,然后输出一个诊断结果。未来有了这个诊断结果之后,我们可以给用户输出优化建议,真正做到数据驱动业务发展。

广告

字节跳动生活服务团队招数仓、后端、产品以及QA。有想法的朋友欢迎联系我帮忙内推,直达Leader。