第一百一十章 四十七个用户
两周。
林知行把credit-score-lite从GitHub仓库变成了注册即用的在线工具。核心算法封装成API,加上用户注册、付费订阅、数据可视化面板。阿里云最低配ECS,服务器费一个月八百。
方小满负责运营。他在中小商户群里发免费试用链接,附上十七家商户的案例数据——"不用懂代码,注册就能用,帮你算清楚哪些货该进、哪些该砍"。
两周后,方小满在白板上写了一行字。
四十七。注册用户四十七家。付费用户三家。每家每月九十九块。
"月收入,"方小满说,"两百九十七块。"
他把记号笔的笔帽盖上,又拔开,又盖上。
林知行说:"这比零好。"
方小满转头看他:"好多少?"
他走到桌前拿起计算器,按了几下。"服务器费八百。房租一千四。生活费三千。减去两百九十七,本月净亏四千九百零三。"
计算器上的数字是红色的。
"还有四十四个注册用户没付费。"林知行说。
"我挨个问了。"方小满从口袋里掏出手机,翻出一个Excel表格。"十一家说'还在试用再看看'。九家说'功能够用但不确定值不值九十九'。七家说'老板不在等老板回来'。五家说'和我的收银系统不兼容'。四家说'看不懂决策日志太技术了'。三家说'注册着玩的没打算用'。还有五家没回复。"
林知行走到白板前,在"四十七"下面写了一行字:付费转化率:6.4%
一百个人里有六个愿意付钱。要覆盖服务器费需要一千二百个注册用户。要覆盖全部成本需要七千个。方小满一天能带来三到五个注册,一千二百个需要八个月。
八个月后账上早就清零了。
"知行。"方小满的声音从背后传来。
"嗯。"
"你有没有想过,可能不是推广的问题?"
林知行转过头。方小满坐在行军床上,双手撑着膝盖。
"我这几天一直在想,"他说,"为什么那十七家商户里只有两家还在付费?之前他们用得好好的,王老板还说每个月少亏两千块。但现在——"
他站起来,走到白板前,拿起另一支笔,在白板上画了一个图。横轴时间,纵轴使用频率。曲线从左上角逐渐下降,到右边几乎贴着横轴。
"王老板的使用数据。"方小满说,"上线第一个月每天登录三次。第二个月每天一次。第三个月每周两次。第四个月——"
"停了。"
"他不是不喜欢。他是学会了。他把产品当成学习工具,学会了就不用了。"
林知行盯着那条下降的曲线,忽然想起姜意在小城时说过的话——"功能只解决当下的问题,产品定义未来的方向"。
那时候他不理解。现在理解了。
他的产品是一个功能,不是一个产品。它解决了"怎么进货"的问题,但没有解决"怎么持续优化进货策略"的问题。用户学完就走了,因为产品没有给他们留下来的理由。
"我们需要一个让用户必须持续使用的功能。"林知行说,"不是'帮你算一次',是'帮你持续监控'。不是'告诉你该进多少货',是'告诉你今天该进多少货'——每一天都不一样。"
方小满看着白板上的图:"从一次性工具变成——"
"变成习惯。"
姜意的电话是晚上十点打来的。
林知行正在改代码,方小满已经睡了,行军床上的呼噜声很轻。
"听说你上线了一个SaaS产品?"姜意的声音带着一点笑意。
"你怎么知道?"
"北京AI圈子很小。"
"四十七个注册用户,三个付费。"林知行说,"月收入两百九十七块,服务器费八百。"
姜意没有马上接话。
"你在沮丧?"
"不算沮丧。算清醒。"
"清醒什么?"
"清醒地知道,我做了一个没人愿意付钱的东西。"
姜意笑了一下。不是嘲笑,是一种林知行听不太懂的笑。
"我问你一个问题。"她说,"你的用户画像到底是什么?"
林知行愣了一下。
"你的产品是给谁用的?"姜意说,"大公司不需要你——他们有预算请专业团队,或者直接买渡渡科技。小商户用不起你——九十九块一个月对他们来说是要决策的价格,而且他们可能连'可解释AI'是什么都听不懂。"
她停了一下。
"中间那个夹层,你找到了吗?"
这个问题像一根针,扎在了林知行一直没碰过的地方。
"我在找。"他说。
"找多久了?"
"从创业到现在。"
"还没找到?"
"还没有。"
电话那头安静了几秒,只有她那边隐约传来的键盘声。
"知行。"她说。
"嗯。"
"你做技术很强。但做产品不是做技术。技术可以迭代,产品必须从第一天就知道自己要解决什么问题、给谁解决。你现在做的东西——"
她顿了一下。
"像是在找一个问题,而不是在解决一个问题。"
林知行把这句话在脑子里转了三遍。
"你说得对。"他说。
"我知道我说得对。"姜意的语气带了一点锐利,"但你不能只是承认我说得对。你得想清楚你的用户到底是谁。想不清楚就不要往下做——做再多功能也是浪费时间。"
电话挂了。
林知行坐在黑暗的房间里,打开笔记本,在新的一页上写了一行字:
用户画像:?
陆可盈的邮件是第二天早上来的。
林知行正在吃煎饼果子,手机亮了一下。方小满探头看了一眼他的屏幕:"你邮箱。英文的。"
发件人:Lu Keying 主题:Re: Information loss in multi-condition reasoning
"I've completed the improved version of the attention-weighted aggregation method. The core idea is to replace the simple averaging with a learned attention mechanism that assigns different weights to each condition based on its relevance to the target variable."
邮件附了PDF和GitHub链接。
林知行打开PDF。十四页。从问题定义到数学推导到代码实现到实验结果,每一步都有伪代码。公式推导的严谨程度让他想起赵鸣岐——但比赵鸣岐更实用。
他打开GitHub链接。是fork了credit-score-lite的新分支,名字叫"attention-weighted-aggregation"。代码提交记录显示,陆可盈在过去两周里提交了二十三次。
二十三次。
在他忙着做SaaS产品、忙着和方小满算账的这两周里,陆可盈一个人把他之前一直没解决的信息损失问题,从头到尾做了一遍。
而且做得比他好。
林知行把代码从头到尾看了一遍。注意力加权层。多条件推理的信息聚合。梯度反传优化。每一行代码都有注释,每一个函数都有文档字符串。
他的版本是"能跑"。陆可盈的版本是"跑得好"。
方小满凑过来:"怎么了?"
"陆可盈。斯坦福那个。她把信息损失的问题解决了。"
"解决了?"
"解决了。而且比我做的优雅十倍。"
方小满皱眉:"那不是好事吗?你干嘛这副表情?"
林知行没有回答。他点开了GitHub的"New Pull Request",标题写了"Merge attention-weighted-aggregation from @keying-lu",描述写了"Information loss reduced from 12.3% to 3.1%"。
他点了"Create Pull Request"。
方小满看着他:"你不多想想?直接就合并了?"
"她做得比我好,我用她的方案。这有什么可想的?"
"但这是你的仓库——"
"是开源仓库。"林知行打断他,"开源的意思是任何人都可以贡献。她贡献了更好的方案,我合并,这是正常流程。"
方小满张了张嘴,没说出话。
林知行回到电脑前,给陆可盈回了邮件:
"PR已创建。合并后我会更新README,把你的贡献加进去。你对信息损失的分析非常准确,这个问题我之前一直没找到好的解法。"
他点了发送,然后刷新了一下GitHub页面。
star数:2147。
昨天还是2032。一天涨了一百一十五个。
他又刷新了一下。2152。
他盯着那个数字,忽然意识到一件事——陆可盈的Pull Request在GitHub上是公开的。任何人打开仓库都能看到。而这个PR的标题本身就足够吸引人。
开源社区喜欢什么?喜欢技术突破。喜欢优雅的解法。喜欢一个人用两周时间做出比原作者更好的方案。
林知行打开GitHub的Insights页面,看了一眼流量来源。果然,过去二十四小时有大量流量来自Hacker News和Reddit的r/MachineLearning板块。
有人把陆可盈的PR截图发到了这些社区,配文是:"Stanford MS student contributes a better algorithm to an open-source project created by a Chinese college graduate. The original author merged it within hours."
"college graduate"。大学毕业生。没有写"大专生",因为外国人分不清这些。但在中文互联网上,一定会有人把这两个词翻译成"大专生"。
然后争论就会开始。
林知行关掉Insights页面。重要的是数字。
star数:2163。一天涨了一百三十一个。这是开源以来涨得最快的一天。
因为这次不是他在说话。是陆可盈在说话。
一个斯坦福的数据科学硕士,用两周时间做了一个比他更好的方案,然后把这个方案贡献给了他的仓库。这个故事本身就是最好的推广——它说的是"这个仓库值得一个斯坦福硕士花两周时间来改进"。
方小满走过来看了一眼屏幕。
"两百九十七块。"他说。
林知行抬头看他。
方小满指着白板上那行月收入的数字,又指了指屏幕上star数的增长曲线。
"两百九十七块,"方小满重复了一遍,"和两千一百六十三个star。"
"你的产品不赚钱,"方小满说,"但你的仓库在涨。"
林知行点了头。
"那问题来了,"方小满说,"到底是产品重要,还是仓库重要?"
这个问题林知行没有答。
因为他不知道答案。
他知道的是——四十七个注册用户里只有三个付费,月收入两百九十七块,服务器费八百块,账上余额在以每月四千多的速度减少。
他也知道的是——陆可盈的一个PR让仓库star一天涨了一百三十一个,开源社区的传播速度比他做任何推广都快。
这两个事实摆在一起,像两条平行线,都指向同一个方向,但中间隔着一道他跨不过去的沟。
赚钱和影响力。商业和技术。现实和理想。
他把笔记本翻到新的一页,在上面写了一行字:
用户画像:?
然后在下面又写了一行:
仓库star:2163,日增131
方小满在旁边说:"想什么呢?"
"想姜意问的那个问题。我的用户到底是谁。"
"想到了吗?"
"还没有。"林知行合上笔记本,"但我想到一件事——陆可盈的PR合并之后,star一天涨了一百三十一。这意味着什么?"
方小满想了想:"意味着你的仓库被更多人看到了。"
"不是。"林知行摇头,"意味着——我的仓库里有值得被看到的东西。陆可盈的算法改进是一个信号,它告诉开源社区:这个仓库不是一个玩具,是一个有人在认真维护的项目。"
他站起来,走到窗边。
"我一直在想怎么把仓库变成产品。但也许我搞反了。也许应该先让仓库变得足够好,产品自然会来。"
方小满皱眉:"你这话听着像是在逃避赚钱。"
林知行转过头看他,忽然笑了。
"你说得对。我确实有点逃避。但逃避不是解决办法。我得想清楚——"
他走回白板,拿起笔,在"用户画像:?"下面画了一个圈。
"我得想清楚,我的用户到底是谁。不是'小商户',不是'中小企业',是更具体的人。是王老板那样的水果店?是张老板那样的教育机构?还是一个我还没遇到过的人?"
"你想多久?"
"不知道。但我知道一件事——在想清楚之前,我不再加新功能了。"
"为什么?"
"因为姜意说得对。我在找一个问题,而不是在解决一个问题。在找到之前,做再多功能也是浪费时间。"
方小满沉默了几秒。
"那你打算做什么?"
"两件事。"林知行说,"第一,把陆可盈的算法合并进去,让仓库的技术水平再上一个台阶。第二——"
他停了一下。
"第二,我去跑一圈。"
"跑什么?"
"跑商户。不是发链接,不是加群,是面对面地聊。我要知道他们到底在想什么、需要什么、愿意为什么付钱。"
方小满看着他,忽然露出一个有点意外的表情。
"你以前不做这种事的。"
"以前我有你。"林知行说,"现在我也得学。"
他拿起手机,给陆可盈回了一封邮件:
"另外,如果你有时间,我有一个问题想请教——你的算法在真实商户场景里应该怎么落地?我在做SaaS产品,但付费转化率很低,可能是因为我没想清楚用户到底需要什么。"
他点了发送,然后站起来。
"走吧。"他对方小满说。
"去哪?"
"去买煎饼果子。然后你教我怎么跟商户聊天。"
方小满愣了一下,然后笑了。
"你请客?"
"我请客。两百九十七块的月收入,请你吃个煎饼还是够的。"
方小满笑着站起来,拍了拍他的肩。
两人走出合租房,管庄西里早上的阳光从楼缝里照下来,把他们的影子拉得很长。林知行走在前面,方小满跟在后面。
林知行的脑子里还在转着姜意的问题——"你的用户画像到底是什么?"
他没有答案。
但他知道,答案不在代码里,不在白板上,不在GitHub的star数里。
答案在那些他还没见过面的人那里。
在那些水果店老板、小餐馆老板、五金店老板、奶茶店老板那里。
在那些每个月花九十九块钱,或者不花九十九块钱的人那里。
他需要去见他们。
不是为了卖产品,是为了听他们说话。
(本章完)