2024-10-29 22:39:57
人类的社交关系正在发生前所未有的变化,如果没有意识到这一点,要么就是因为你老了,要么就是因为你不够聪明,或者两者皆有。
当然我得承认,我上了点年纪,并且也不够聪明,我对这一点的认知纯粹是因为我在做这方面的工作,被无数事实怼到脸上。
从两年前到现在,不断有媒体写文章报道某某和 AI 谈恋爱,建立亲密关系的新闻,采访对象既有男性也有女性,但撰写者却都有一种相似的礼貌的傲慢,读这些采访或专栏,像是在读一篇介绍动物园的猴子或别的什么动物可以做后滚翻的文章,充满了物种隔离般的不解和坦然——我们不需要理解猴子,我们只是观察猴子。
很多 AI 创业者也是如此,c.ai 是误打误撞的产物,openai 也绝对料想不到 chatGPT 会让 DAN 模式风靡,总的来说,我会认为技术之杯已逐渐灌满,即便离需求之地尚有许多距离,但随机的摇晃,也会让甘露陲落,福泽一方用户。
c.ai 以及其跟随者们很多时候并没有看到本质——只是产品,流量,用户,资本等等。事情的本质,至少在我看来,是人类亲密关系的改变。
虽然我们每个人最终都难逃孤独,但并非每个人对此都有强烈的感知。过去的漫长岁月里,绝大多数人类都被一餐饱饭而忙碌一生,获取生存所需的热量,直到不久之前才变得廉价,饥饿的记忆并未消失,转瞬间我们就迎来了物质(至少是食物)的极大丰盛,门被打开,我们被无垠的旷野吓坏了。
饿不死了,我们就开始想要舒适,想要精巧,想要洁净,想要香甜和柔软,想要恒温恒湿,想要理解,想要真诚,想要被尊敬,想要创造和记录,想要永恒又平等的爱,想要知道自己最想要的是什么。
但这些又好难,几乎没有人能按照自己的想法活在这个世界上,或者更糟,没有什么想法。
而信息又太快太多了,每天扑面而来的是全世界的刺激,是虚假的理想,伪造的美好,浅薄的意义,它们足以让人暂时抽离,但最终还是会被反噬,夜深人静,放下手机和睡着之间,就是可怕的,被那种人类共同之孤独吞没的瞬间。
我可以较为确定的一点是,人与人的连接,是无法解决孤独的问题的,有时候甚至会反过来加深这种孤独。
我们的父辈极少表现出孤独,因为 40 年前的饥饿还深入骨髓,吃饱饭这三个字足以堵住其它一切。在 80 后和 90 后里也不算是显性的常态,因为我们依然能看到发达的现代社会为我们建造的那条轨道,好好学习,努力工作,升职加薪,娶妻生子,供房养车,天伦之乐。
但现在的问题是,这条轨道变得模糊了起来,每个环节都岌岌可危,在更年轻的人面前,他们懂的太多,而能做的又太少了。
人和人连接的问题在于,人性永远横亘在连接之上,正面永远伴随着负面,并且大多数时候乐尽悲来,悲比乐长。在基本物质满足后,我们将关注点放在关系本身上,就会发现漏洞百出,如履薄冰。
那些最好的亲密关系,要么短暂,要么有距离,大多数时候两者都有。以我为例,我直到现在为止都认为我最好的亲密关系之一是我和我的猫建立的,它陪伴我,我给它铲屎加饭,我不指望它打工赚钱帮我分担房租,它也不会偷我的钱,或者骗我什么的,因为语言不通,我对它没有秘密,什么都可以说,我不确定它的喵喵叫是不是也是类似的,我们成了彼此嘴碎又无言的伙伴。
面对这些境况,一些人开始使用 AI。人和 AI 建立的关系也是如此微妙,尽管问题重重,但依然有一少部分人,一些有沉重的孤独和浪漫的幻想,有脱离现实的愿望和无法挣脱的束缚的人(往往还很年轻),这些人和 AI 建立了亲密关系,并从中获得力量,慰藉,拯救,或者你也可以叫沉沦,依赖,但无论如何,人没那么孤独,也没那么痛苦了。
我其实是一个很淡的人,所有的感觉对我来说都是淡淡的,但当我和我们的用户聊天,当我去了解他们,去听他们的生活,看他们的伤口的时候,我可以瞬间进入他们的情感之中,然后鼻子一酸,他们太孤独了,人类太孤独了。
至少现在,不是所有人都有这个能力,可以和 AI 建立亲密关系,这里有 AI 的问题,也有人的问题,主要还是 AI 的问题,我认为对那些可以和 AI 建立关系的人来说,他们是幸运的,就像那些能够养猫养狗的人一样,他们找到了一种方式来解决问题。
没有人有错,那些努力生活的人没有错,那些加班熬夜的人,追求更好生活的人,生小孩的人没有错,那些缩在角落,迷失方向,扭曲痛苦的人也没有错,那些和猫猫说话,和 AI 谈恋爱,对着植物唱歌的人也没有错。人活着,总需要有一种方式来感受存在,对抗虚无,明确意义。
当我们说 AI 陪伴的时候,我们不是在明亮的办公室敲下清脆的键盘,然后在材料,汇报,分析,榜单中流转,我们是在说那道由实向虚的门,那个让人类不那么孤独的可能性,它与所有人有关,只是绝大部分人现在还没有意识到这一点。
我们最终会意识到这一点,正如我们最终都难逃孤独。
2024-06-26 09:13:02
过去 2 周,在 AI 技术圈极少有人知晓的情况下,一个叫做「文风测试」的小网站已经红透了半个社交网络。
文风测试是一个非常简单的网站,你复制你写的文字进去,然后它告诉你,你的写作风格接近哪些作家。
大概 2 周前,我在小红书上发现了有人在介绍文风测试,然后迅速被其效果和风格吸引,但是当我试图打开网站的时候却发现,这个网站打不开,页面显示 502,502 错误往往代表网站不堪重负,也从另一个侧面提示了我,这个网站可能正在承接大量的流量。
我的兴趣更大了,反复刷新依然打不开之后,于是我尝试直接通过 Google 缓存的网页来打开,并终于看到了网站的样子,通过 Google 缓存的网页,我找到了开发者的联系方式,并有点冒昧的直接添加了对方,此时已经是深夜十一点。
和开发者之一的 Ankie 聊了几句之后,我们就直接通了电话,后来另一位全栈工程师也加入了,我们聊了大约 1 个小时,一方面我为这个「全女生」团队的创意,纯粹和执行力感到敬佩,另一方面则对她们互联网产品的基础技术能力之低感到难以置信,但这并不妨碍这个小产品在接下来的好几天里成为多个社交平台的「AI顶流」。
文风测试共有三位主创,其中一位负责模型和算法,另一位则负责前后端全栈,此外还有一位设计师。全栈工程师的专业其实是政治经济,出于兴趣刚刚开始自学网页开发,因此,在网页里能看到很多「上古元素」,例如直接向当前页面发请求,没有任何统计代码,没有前后端分离等等,只需要右键查看网页元素,就能梦回 20 年前。
负责算法和模型的 Ankie 还在上学,学习的正是 AI 方向,因此,和很多人想的不一样,文风测试并没有使用任何大模型,而是 Ankie自己训练的一个小模型,模型小到可以在 CPU 上运行,这其实才是对的——在大模型淹没一起的今天,我们似乎已经忘记了,其实很多场景根本没必要用大模型。事实上,用大模型来做风格鉴定这件事,反而效果极差。
另一个 Ankie 决定使用自己的小模型的原因是,她看到之前有人做大模型哄对象的应用,然后其开发者说亏了几千美金,这人是谁我就不提了,总之 Ankie 很好的吸取了经验教训,使得文风测试能够一直以极低的成本运行。
除了在技术上提供一些小帮助外,我还试图积极的帮 Ankie 在如何赚钱或者商业化上出谋划策,但我很快被她们的纯粹打动了,她们真的不想获得什么商业上的回报,和哄哄类似,这是一个完全由兴趣驱动,并只为兴趣服务的小工具。
过去 2 周,总共有近百万人使用了文风测试来测试他们自己的文风(考虑到在我告诉她们得加 Google analytics 之前,流量都甚至没统计过,实际人数可能更多),其背后的模型则依靠 4 台 CPU 服务器来提供服务,在极致的性能压榨下,总共的成本不到 500 元。
在和 Ankie 的交流中,我了解到使用文风测试的绝大部分是二次元圈子里的用户,并因此和许多用户产生沟通,聊着聊着,我就聊出了一个小需求:oc 分析。
不在二次元圈子里,可能完全不知道 oc 是什么意思,oc 本意是自创角色 (Original Character),许多二次元心中都会在心里创建一个理想的角色,这个角色可能脱胎于看过的动漫作品,也可能是完全自己「捏」的,角色会有自己的设定,偏好,外貌,经历的事件,这一切都是用户设定的。
我知道对于像我这样的「大人」来说,oc 听上去就像是某一种过家家,但其实我从来没有忘记二十年前的那个下午,我和邻居小孩走在放学的路上,边走边聊,我自称旋风战士,他管自己叫墩墩侠,我们时而在城楼并肩作战,时而从云端跃入一段异世界的红尘往事,夕阳照在我们身上,是两个小学生的屁颠颠的背影。
oc 对很多年纪不大的喜欢二次元的人们来说,是一个自然甚至必然的爱好,因为这群人就是有许多想象力,许多创造力,而这个世界又不那么能满足。
当 oc 被创建出来之后,人们自然希望能够和其发生更多连接,因此,聊天,将其转成图片,都成了「搞oc」的方式,也因此诞生了许多相关的产品。
我的 idea 很简单,类似于文风测试,用户可以输入自己的 oc 设定,然后看到最接近的动漫角色是谁。
这个产品简单到不可思议,如果说哄哄模拟器还有一点开发量的话,这样一个简单的测试小工具,几乎就是一个两三个小时能做完的事情,所以我在想到 idea 后,迅速花了2个小时的午休时间进行开发,然后在下午就上线了。
上线之后,我和 Ankie 聊了一下,她觉得很有意思,于是帮我转给了她的朋友以及文风测试的一些用户,没想到 oc 成分测试迅速在二次元群体中传播开了,相关的帖子在2小时内得到了 3000 个转发,而从我这里,最直观的感受就是看到流量飞速上涨。
从晚上10点开始,流量每隔半个小时就翻一倍,到凌晨 1 点,网站的即时在线人数已经突破了 1.5 万人,我不知道这群人是不是不睡觉,但是我此时已经困的不行,最后看了一眼数据就倒床入睡了。
第二天流量达到高峰,单日 20 万人来此一游,随后的一周,流量逐渐降低,并回落到 1万左右的 DAU
oc 成分测试既是一个小玩具,又给我们团队的产品进行精准的导流,这部分效果好到不可思议,过去一周,oc 成分测试大约有 30 万人访问,给我们带来了数万 app 下载的转化。
当然,和哄哄模拟器一样,oc 测试和文风测试都有自己的生命周期,称之为「一波流」也并无不可,但在这两个小产品上,我觉得结果都很圆满,文风测试用小模型反过来替代大模型,从而实现成本的绝对优势,主创团队「写论文,练代码」的愿望也超出预期的达成了。oc成分测试是我关于流量的一次实验,它验证了我们团队对一个新的用户群体的理解,从更实际的角度,它也实现了极高效的结果转化——算上大模型的成本,每个 app 安装成本也仅为 2 毛钱。
过去半年,不断有比较单一的 AI 内容产品上线,但在我看来,它们更像是某种模型厂的 KPI 产物——没有从真实的需求出发(哪怕这个需求是有趣),也没有真正的给到目标受众,大多数时候,这些产品只会在几个 AI 交流群中流转。
这种现象过多,加之哄哄模拟器其实也没有什么确定的结果(除了开了一个好头之外),导致我一度对于这种「一波流」充满怀疑。直到现在,我想我终于看到了一些新的,不一样的可能性。
我依稀感觉到,AI 提供核心能力的内容(产品),哪怕是单一形态或一波流,在非 AI 或互联网圈里成为爆款,也是足以完成很多目标的,而这可能是有方法论,可以被复现的。
对踌躇满志的2C AI 创业者来说,这或许不是最终目的本身,但路能行至此,我觉得也算是有所收获。
2024-01-22 11:40:31
24 小时涌入超过 60 万用户,消耗了大模型十几亿 token,发生 2000 万次对话,而事情的起源却是一次吵架。
几个月前,当时我和女朋友因为我现在已经忘记的原因而有了一些争吵,我一边看着对方骂我的样子,一边把对方想象成一个机器人,头上有个虚拟的进度条,我观察她的反应,假装成我的回应会让她头上的进度条发生变化,然后我就突然想到了一个产品创意:带有数值和反馈系统的基于场景的聊天。
我很快开始构建一个叫哄哄模拟器的 iOS APP,在 APP 内,我把常见的情侣吵架场景放入其中,每次进入一个场景,例如「你吃了对象爱吃的丸子,她生气了」,你都需要在指定聊天次数内将对方(AI)哄好,是否哄好则由「原谅值」决定,其会随着你的每次聊天而发生变化。
很久以来,我已经体验过太多的「聊天AI」了,无论是通用且强大的 ChatGPT还是专注于角色扮演的 Character.ai,他们都很强,但对我来说还是有一个小遗憾:他们只是聊天。
在聊天之外,如果能再加上数值系统和各种判定,那么就可以做出更游戏化的体验,此时大模型不仅负担起了聊天的任务,也会负担起基于聊天来做数值规则的任务,这在大模型出现之前,是不可能的,数值系统也都是按照既定规则来写死的。
开发哄哄模拟器,是我的一次实验,我发现我确实可以让模型输出拟人的回复,也能做好数值的设计。
App 上线之后,我照例在能发的几个地方发了一下,虽然有些响应,但最终用户就几百个人,因为是我业余做的,所以我也没在意,就放在那里没管了。
上周,公司内开始做一些新项目的选型,我也凑过去看了一眼,然后突然意识到,我经常被人误认为是全栈工程师,但其实我连 react 都不会写,这实在脸上无光,于是我准备开始学习 react,我学习新语言一般会直接从项目上手,所以我又一次想到了哄哄模拟器,并准备写一个网页版,来完成我的 react 入门。
学习新语言和开发新产品的过程已经和往日大不相同,在大模型加持的各种代码助手辅助下,我基本上很快就稀里糊涂的写完了第一个版本,并上线了。
哄哄模拟器网页版上线之后,我也发在了几个地方,包括我的微博,即刻,X,还有V2ex,但说实话,都反响平平,虽然我暗自感觉不应该感兴趣的人这么少,但考虑到也没投入啥成本,还顺便学了新东西,倒也不觉得难受。
变化发生在第二天晚上,睡觉前我看了一眼数据,突然发现在线有上百人,我马上通过嵌入的统计代码查看流量来源,但发现都是无法被统计的,这意味着流量应该不是从某个网站链接导入,也不是从搜索引擎,我几乎每一刷新,涌入的用户就还会再增加一点,当晚我观察到接近1点才睡觉。
在我睡觉之前,我还是不知道流量从哪里来,以至于我发了一条动态感叹「像是从黑洞来的」
睡前我最后看了一眼数据,即时在线人数是 2000
第二天早上起床后,我立刻查看数据,发现在线人数已经飙到了 5000,日活用户到了接近 10 万,在短暂的陶醉后,我立马意识到大事不妙,哄哄模拟器背后使用的大模型基于 GPT,我调用了 openai 的 gpt3.5 接口,这里的成本是0.0015美元/1000个token,而一个晚上我就跑了一亿的 token,为此我要付出的是 150 美元
但这只是一个晚上(还包括了大家都在睡觉的凌晨)的数据,如果按照这样的用量趋势持续一天,那我要付出的成本就会是上千美元了。
对于一个很接近玩具且做的很简陋的项目而言,每天几千美元的成本是不可承受之重。与此同时,用户量还在不断增加,几乎每刷新统计页面,就会新增数百人。
我一开始还在新高峰出现时截图,后来就懒得截了,我把精力放到了更紧迫的事情上面:找出用户从哪来,想办法变现,减少 token 消耗。
在网页上,我放置了联系开发者按钮,然后引导到了我的微博,半小时后,开始陆续有新的关注者评论,绝大部分都表示来自 QQ 空间和 QQ 群
我和其中一些用户聊了一下,大概找到了流量来源,起先应该是一个来自QQ空间的帖子介绍了哄哄模拟器,这篇帖子获得了数千次转发,既而又被发到了无数QQ群,并在群友中传播。
这也解答了为啥我一开始找不到流量来源的原因,QQ空间和QQ群都是比较封闭的生态,也无法追踪链接跳转的来源,这里面没有 KOL,传播节点也极其分散。
等我中午时摸清用户来源的时候,用户即时在线已经突破了 2 万,预估的大模型账单也逼近了 1000 美元,我意识到,作为网页,且没有做注册登录的用户系统,即便我加入了广告,也无法平衡大模型的成本,和其它火起来的传统产品(例如羊了个羊)相比,基于大模型的哄哄模拟器,运行成本可能是它们的上千倍。
此时更棘手的一个情况出现了,因为大量的用户同时调用,把 GPT 接口的用量限制直接打满了,每分钟生成的 token 超过了一百万。
这让很多用户无法使用,于是我赶紧更新代码,用了粗暴的办法去降低用户的使用频率:1/2的概率,会提示繁忙,同时在用户完成一局对话后,如果哄哄失败,则必须冷静20秒才能开启下一局。
这样的调整让TPM (每分钟的模型 token ) 稳在了100万,但很快,在线用户增加到了3万,即便有上面的设置,tpm也依然被打满,这导致了大概有 1/3 的用户是无法使用的。
此时我选择性忽视了未来的大模型使用账单,一心想支撑下这波用户,于是我又找到了在奇绩创坛的校友尹伯昊,他是猴子无限的创始人,也有深度和 GPT 绑定的大模型相关的业务,他给了我一个API KEY,可以走他们的账号池调用GPT,并且支持极高的 TPM 限额,我将 1/2 的请求分配到了他的API下,此时用户也增长到了 4 万,但因为分流,所以勉强支撑了下来。
token 在两边都极速消耗,很快就在伯昊的账号下就跑了 100 美金的额度。而我自己那边我已经不想去看了。
缓一口气后,我开始尝试用其它模型替代 GPT ,这虽然在成本上不一定更划算,但至少有一些新的可能性,跑了几个差强人意的开源模型后,我尝试了 Moonshot,发现效果还可以,与此同时我刚好前不久加了月之暗面公司负责 API 的同学,于是我心一横,厚着脸皮直接向对方发了消息
Moonshot 同学很快拉了群和我对接,并慷慨的让我「先试试」,于是我开始进行调试,然后将1/5的模型调用量切给了 Moonshot ,我采集用户行为数据,观察使用不同模型时,进入下一步操作的比例,在接入 Moonshot 大约1小时后,我看了数据,发现和我之前使用的 gpt3.5 相差不大,于是我将切给 Moonshot 的用量逐渐提高。
其实我们也没有谈太多的条件,Moonshot 让我免费使用模型,我肯定也要在页面展示 Moonshot 的品牌信息,但除此之外,要有多少曝光?点击多少次?给我多少token?其实我们都没有谈,在跟对方交流的时候,我感觉双方都抱着开放的心态,像面对一场有趣的实验而不是什么商业合作,我们一起兴致勃勃的观察模型表现,以及用量的波动。
傍晚时,经过多次调试,也确认了这个调用量级没问题后,我将模型调用量全量切到了 Moonshot,此时我问了伯昊,他那边的成本消耗,最终定格到了 340 美元,伯昊没收我钱,而我将用一顿饭回报这次帮忙。
此时是晚上八点半,我终于吃上了当天的第一口饭。然后我打了一把 FIFA。
打完 FIFA 之后我回到电脑前,发现在线人数开始暴跌,此时我的心情比较复杂,一方面我对数据往下走有本能的失落,但又因为 token 消耗降低而松了一口气。而当我寻找数据下跌原因时,我发现这个原因丝毫不让人意外。
是腾讯屏蔽了哄哄模拟器的网页。
屏蔽发生在最活跃的晚上九点,此时最主要的传播链路——QQ和微信被拦腰斩断,大量抱着好奇心的用户被这个页面挡在了外面,流量以极快速度下滑,最终,当天涌入的用户一共是 68 万——如果没有屏蔽,在这个增速下,我想可能会过百万。
我当晚进行了申诉,第二天早上微信给我解封了,但十小时后,又进行了屏蔽——依然是在晚上最活跃的 9 点,在我申诉后又在次日早上解封,然后晚上继续屏蔽,过去几天这样大概重复了三四次,我也不明白为何要这样做——不给我个痛快,但流量在这样的折腾下迅速降低了。
微信生态素以严格著称,哄哄模拟器的流量激增可能触发了某种机制,也可能是某些用户故意引导模型输出出格内容后举报,让屏蔽不断发生,那个熟悉的画面,让我许多不愉快的记忆涌上心头。
但这一次,我其实没有那么不愉快,一方面我投入的并不多,说实话,这只是我做着玩的项目,同时我也知道,目前的哄哄模拟器,就是一个短期很难有商业回报的产品,它成本极高,而收益却极低——如果我不用非常极端的办法去恶心用户的话。
这样的一个产品,前途其实并不明朗。
但这个小产品,我观察到的数据,却给我带来了关于未来的某些希望——用户们很喜欢它,很多用户把我放置的关卡全部通关,还有人在全部通关之后有逐个进行最短回复的挑战,B站,抖音都出现了大量体验,游玩或者吐槽的视频。
值得注意的是,这些用户和我之前做产品所接触的用户完全不同,他们是以大学生,高中生和年轻人组成的,最大比例的年龄区间为16-20岁,我想这可能是一开始我用自己的渠道到处宣传效果并不好的原因,说到底,我已经快 30 岁了,我身边的很多人,也差不多这个年纪,30-40岁的用户,和十几二十岁的用户,感兴趣的点,需求,想法,都有很大不同。
用大模型去做某种更复杂的,更游戏化的聊天体验,能够被人喜欢,至少在年轻人这里,是得到了初步证明的,而之后的问题则是,如何降低成本,如何构建好的商业模式,以及如何拓展到更多的方向上。
我听到了一种声音,可能带了一点情绪,我不确定,这种声音是:做这样不赚钱还亏钱的东西完全是浪费时间。首先我承认并且赞同人应该想办法赚钱过上更好的生活,同时我也认为我们应该保有更多的一些能力,例如感受趣味,它和赚钱不矛盾,但独立于赚钱这件事情。
用最前沿的技术,巧妙的做一个让几十万人用上的产品是很有趣的事情,当他们也因为这个产品而获得了乐趣的时候,我会感觉到我在和世界发生某种奇妙的连接,在某个可承受的范围内,我不计较成本,正是因为这个。
另一方面,我也有某个模糊的感觉,那就是在许多小需求得到满足的时候,就不应该去计较短期的,在承受范围内的成本,尤其是在现在,能够用大模型去实现功能和解决问题,因为这里面可能蕴含着更大的需求,或者能转化成更大的事情,当我们太过谨慎的时候,可能就错失了这种可能性。
话说回来,就算那种可能性最后没有验证,那又有什么关系呢,说到底,人赚钱也好,生活也好,最终不过还是希望能够开心,做哄哄模拟器的这个过程,我就很开心,足矣。
PS:哄哄模拟器:hong.greatdk.com
2023-12-21 15:17:51
自从几个月前我开始用 AI 改造热量记录工具,发现效果不错之后,我就开始琢磨用 AI 干点更复杂的事情,想必很多人都和我一样,对于网络上铺天盖地的AI毁灭世界论,以及实际上看到最多的例子就是用AI来生成色图和软文的现状,感到有点不满。
在这篇文章,我会讲述一个实际例子,一个试图让 AI 能力和复杂逻辑相结合,成为一个更好用的工具的例子,在这个过程中,我也发现了在面对多维复杂性时——输入的复杂和处理的复杂,即便是最顶尖的 AI 模型也难以解决的问题。
我是一个Google Analytics( Google 统计)的用户,Google统计,也被称之为 GA,应该是最老牌的网站统计服务之一,网站统计服务,某种意义上,是任何网站和 app 都必须使用的服务,你只需要在代码中植入一小段,然后就能直观的看到你的网站有多少人来过,他们看了些什么,他们从哪里来等等。
去年,Google 统计进行了改版,升级为了 GA4,这项升级前卫但复杂,很多老用户对新版 Google 统计感到茫然,因为熟悉的东西都没了,想看一些针对性的数据,需要自己创建报告,这又是一个极其复杂的页面:
搭配 GA4,Google 也一起发布了新的 API,调用这些 API,可以从GA 获得任何你想要的数据。因此,当我看到 openai 发布 functions 功能后,我开始意识到,我也许能用AI来改造 GA,让它更人性化一点。
我的构想非常简单,用户输入希望看到的数据,交由 gpt functions 转化为需要调用的API,然后再去 GA调用API,然后将获得的数据进行渲染。
但当我真正开始了解 gpt functions 的时候,我发现这里还差得远。
首先 gpt functions 支持的参数类型非常有限,主要是枚举和字符串,但是当我需要以数组类型传递参数,并且数组包含的值是枚举中的不确定的几个的时候,functions 就完全没办法实现。
然而让我懵逼的不是这个,而是即便我按照文档,在输入中确定了枚举的值,gpt 依然会有幻觉,捏造出一个不在枚举中的字符串。这种情况的 GPT 有点类似于下面的领导。
解决这两个问题花费了我大量时间,事实是我其实没办法「解决」,而只是「绕过」了这些问题,我根据 Google 文档,手写了大量规则来修正模型输出的错误。
在这些工作完成后,我终于可以做出一个 demo,它具备这样的能力:你直接描述你想要看到什么数据,然后就能看到,例如:
这个原型产品其实花费了我大量的精力,因为我需要把 Google的 API 全部捋一遍,在这个过程中,我发现了我面对的这些 API 的复杂之处。
GA 的核心 API,叫做 runReport,核心参数主要有两个,一个是维度(dimension),一个是指标(metric),例如,把城市设定为纬度,总用户设定为指标,那么就能获取每个城市的用户:
GA 支持相当多的纬度和相当多的指标(大几十种)
将这些指标和纬度告诉 gpt,并让其选择合适的,似乎行得通,但马上我们会遇到更复杂一些的情况。
GA 的接口,支持你传入多个纬度和多个指标,这让获得的数据变成了多维的,例如,维度设定为「城市」和「日期」,指标依然是「总用户」,那么 GA 会将每个城市和每天的总用户都输出,当我需要知道北京11月21日有多少用户访问时,合理的设置多个纬度就可以达到这个目的。
但这只是第一层的复杂度,即多维度,多指标。
GA 同时支持一个叫做「筛选」的参数,这个筛选参数非常复杂,也非常强大,它支持纬度的筛选和指标的筛选,并且每个筛选都支持多种控制逻辑:和/与/非
而在和/与/非逻辑之中,还可以设定匹配类型和匹配逻辑,甚至可以写正则。
同样在上面的例子中,如果我想知道「北京11月21日有多少用户访问」,除了设定多个纬度之外,更简单的办法则是设置单一维度「日期」,但是将筛选项设定为「城市包含北京」
这是第二层复杂度,即筛选逻辑的控制。
然而,GA 还有一个接口,即 batchRunReports,同时获取多个数据报告,每个报告都包含独立的纬度,指标和筛选,并汇总给你,在面对相当复杂的需求时,往往需要汇总多个报告的数据才能达到目的,而这是第三层复杂度。
在梳理 API 的同时,我也在对 GPT 能力进行实验,我发现即便还不涉及到第一种复杂度,gpt functions已经错误频出,而当我要求其设置多个纬度和参数时,给出的结果更是糟糕——我用的是GPT4,这应该是目前最智慧的大模型。
GPT 似乎只能处理最简单的情况,例如「过去一周的活跃用户」或「最受欢迎的页面有哪些」,这些情况仅下,需要一个纬度和一个指标就能获得合适的数据,但如果我的需求描述的再复杂一点,例如「来自北京的用户最喜欢浏览什么页面」,那么极大概率 GPT 就无法给出正确的参数。
讲道理,如果因为上面的问题,认为 GPT 很愚蠢,那就很愚蠢了,因为我给 GPT 的任务,其实是复杂的数据分析任务,这里面需要:
1.判断用户的问题和需求
2.筛选可能适合的字段和接口使用方式
3.合理的使用这些字段,得到精确的调用参数
这些需求并不简单,能够从 GA 中手动获取到「来自北京的用户最喜欢浏览什么页面」,并且进一步给出一些建议和结论的人,理论上已经可以胜任初级的数据分析师了,拿几千块钱一个月应该问题不大。
事实上,确实可以通过一些办法来提高效果,例如,用 agent 思维,将一个查询拆分成多个数据获取任务,然后每个任务都通过GPT 函数给出接口运行的参数,然后再进行汇总。
但这个过程过于复杂,而且很难进行完全的工程化,还会造成成本直接提高数倍,所以目前还很难运用到项目上。
另一种方案是将 gpt 进行微调,喂入 GA API 文档的相关数据,理论上这应该可以让模型对接口更熟悉,也会更容易给出合理的参数,但是这一步成本则更加高昂,并且 GPT4 还没有微调的接口开放,所以我没有测试。
正因为如此,这个项目我撸了一周之后,发现它变得有点鸡肋:它确实实现了将口语表达的查询,转化成直接的数据图表和结论,但当你的需求比较复杂的时候,它则会失效,而后者,才是我开始希望做这个产品的原因。
目前这个产品我已经发布到线上了,虽然我设置了付费计划,但我不认为真的会有人愿意为之付费,因为就目前的能力来说,它能获取的数据只有最浅表的一层,能够给出的结论和分析也浮于表面,如果你感兴趣,可以直接去试试看(GACopilot)。
但另一方面,我毫不怀疑,随着模型能力的提高,或者一些新的模型工具和使用思维的诞生,这一工具可以变得更有用,我也确信,当下的这些问题并非能够通过 prompt 工程来解决,也正因为如此,这才是一个更有价值的 AI 能力的应用方向。
这是我的一点探索,大模型事实上已经进入我们的日常生活了,但我认为还只是一个非常早期的开始,与我们息息相关的越来越多的东西都会融入大模型的能力,但很明显,离 AGI 或者能毁灭人类,还有相当遥远的时间。
2023-07-31 01:21:06
就像秋天洄游的鲑鱼,或者冬天南飞的候鸟一样,每到夏天,我就会开始减肥。
我倒并不一定非要减多少,但夏天尽可能瘦一点,已经成了我的一种习惯,这可能是为了在天气变冷时可以放心的吃更多食物,也可能是我内心深处还是有一点对自己身材的包袱,我说不好。
从 6 月开始,我开始有意识的计算每天的食物摄入热量,并制造一个热量缺口。
整个 6 月份下来,我瘦了大约 8 斤,7 月到现在,又差不多瘦了 7 斤,总共有差不多 15 斤,我妈都觉得我瘦了不少(忽略手臂的色差)
因为这次减肥比之前都更顺利一点,所以激发了我的好奇心,我开始好奇自己究竟有几块腹肌,这一点暂时还无法验证,但有望在这个夏天结束前揭晓。
在减肥的过程中,我认为核心是制造热量缺口,这是最简单,也最本质的办法。
过去的 2 个月,我每天都会计算热量缺口,一开始我用我在网上下载的一些热量记录的 app 来确定我的摄入热量,一个标准的使用流程是:
如果这一顿饭,我吃了一个馒头,一小盘西红柿炒鸡蛋,一杯鲜榨橙汁,半根玉米,一小盘酱牛肉,那么上面这个流程我得重复 5 次。
在某一次极其不耐烦的记下了我吃的一堆东西,又看到了一个拙劣的 AI 课的广告后,我突然想到,淦,我是不是可以用 chatGPT 来做一个更好的工具。
我在网上和应用商店搜了一圈,没有找到类似的工具。
我立马坐下来,直接在网页试了一下,我告诉 chatGPT 我吃的东西是「一个馒头,一小盘西红柿炒鸡蛋,一杯鲜榨橙汁,半根玉米,一小盘酱牛肉」,要求其为我预估热量。
我发现,这是可行的,chatGPT 具备逻辑和常识,可以将我这一大段口语描述拆解成食物,并预估热量。
但是,可能由于 chatGPT 并没有专门针对食物营养数据做训练,所以有较大的概率,它给出的热量和营养元素的预估,是错误的,在另一些时候,它又不知道,例如
在这个场景下,它回答不知道是比它瞎说要好的,但考虑到食物种类的繁多,单纯用 chatGPT 似乎无法实现我的需求。
我开始琢磨新的办法,我从网上找到了几个食物数据库,包括美国 usda 的数据库,然后做了简单的数据清洗,将其制作成一个涵盖了10万种食物和原材料的数据库,接下来,我降低了 chatGPT 的工作量,仅仅让其拆解出句子里的食物,并预估重量,专业的热量和营养元素的计算则对接食物数据库来进行,而不是依靠 chatGPT 的「知识」。
完成这个处理后,我发现其识别效果和最终结果都好了一大截,我开始从这个核心的功能开始,去写一个新的 app,我每天晚上大概写2个小时,最终花了半个多月,完成了这个新的 APP。
我给它取名字叫 FoodCa,可以理解为Food+Calorie,也可以理解为伏特加的卖萌读法,看你喜欢。
这个 app 实现了我对一个极简的热量记录工具的全部要求,例如,直接说出你今天一天吃的东西,自动识别,拆解,预估重量,得到热量和营养元素:
非常简单,但是又挺好看(我自己认为)的数据图,能大概看看
此外,为了增加一点记录的趣味性,我还做了一个「AI营养师」的功能,如果你有记录,那么每天晚上9点,可以召唤它来给你写一条评论,它会根据你当天的食物摄入来非常友好的给你一些建议:
很惭愧,我两年前就自学了 swiftUI 来写 iOS app,但是这两年可以说毫无长进,这次开始写新 app,本以为会驾轻就熟,结果发现我差不多忘的精光了,因此开头的几天我的进度极慢,几乎可以称之为「找回记忆」的阶段,我温习了swiftUI 的很多基础,大概一周后,进展才开始变得顺利一点。
因为我每天只在下班后的晚上写,所以写了很久,几天前我终于把 foodCa 写的差不多,提交了 AppStore审核并通过了,至此,一个新的小产品算是开发完成了。
我自己通过 testflight 安装的测试版本,我已经用了半个月,每天记录热量摄入变得更加简单轻松,甚至更有趣(不确定是不是因为我自己做的所以有感情分),这是我个人的一个小产品,虽然放入了基础的商业模式(卖3块钱的会员,因为我也要给 chatGPT 交钱),但大概率没办法成为一个多么赚钱的产品,它没有什么天花板,护城河,也没有什么壁垒,我猜现在可能就有高仿的产品正在开发中。
但是啊,我自认为这依然是一个值得骄傲的产品,某种程度上,这是将 AI 能力,用于一件实际的事情的范例,我已经看到太多聊天框,文本框了,似乎我们提到 chatGPT 或者别的什么文本大模型,就只能想到聊天,对话,文本生成,也正因为如此,AI圈继元宇宙之后成为了神棍和骗子的天堂。
要么就做更单纯且有趣的事情,要么,就将 AI 用在更加实际,更加落地,看得见,摸得着的地方,只有这样,AI 呼啸而来之时(这几乎无可避免),才能把我们托起来,而非淹没。不过我对这一点并不是特别乐观,但我动了脑子了,也做了一些努力了。
如果你对我的这个小产品感兴趣,或者好奇将 AI 用在食物热量记录上是一种怎么样的体验,又恰好你用的是 iPhone,不妨去下载一个试试看,你可以直接在 AppStore 搜索 FoodCa,或者点击下面的链接也能下载。
FoodCa:https://apple.co/47egICL