返回首页
最新
从我日常使用的软件来看,没有哪一款是主要由人工智能或大型语言模型编写的。我并不是刻意回避人工智能程序,但我还没有找到任何有用的应用。
当我说“有用的软件”时,我特别关注的是我祖母能够认出的软件——操作系统、集成开发环境、数字音频工作站、数据库管理系统、文字处理器、3D建模软件、游戏引擎、视频编辑器、计算机辅助设计软件、电子表格应用、编译器、浏览器等。我对五颜六色的猫/ls重写程序的兴趣稍微低一些。
考虑到在过去两年中,产生的代码行数可能超过了前二十年,毫无疑问,有很多软件在我视野之外悄然出现。
有没有一些我可以关注的有用的人工智能编写程序?如果它们能做一些我目前无法用计算机完成的新颖功能,那就更好了。
所以……我落后太多了。这周才开始接触Claude……它已经在处理我大部分的编码和错误修复了。真是疯狂。
关于我公司的背景:成熟的Ruby on Rails应用(14年),使用Sidekiq、Redis、PG、AWS Lambda/EventBridge、React/Preact、Swift等。托管在Heroku上,数据库使用量很大。我是一个独立开发者,既是所有者也是运营者。
当前技术栈:
使用Datadog进行日志记录(尝试过APM、指标等,但Heroku的构建包太臃肿,我不得不将其移除),所以现在只是简单地将Heroku日志转发到Datadog。我真的很怀念statsd主机和APM的功能……但这让我的slug大小从约250MB增加到350MB以上,导致启动和部署变得更慢。我也想要脱离Heroku……总有一天……但我现在甚至无法想象。
使用Bugsnag来处理错误。已经将其迁移到Sentry,尝试AI相关的功能。
对Datadog有点厌倦,每个月还要支付600美元的账单,外加我的企业承诺。最大的痛点是:索引按行计费,而不是按GB(这让我不愿意进行简单的日志记录,所以我不得不将事件放入单个请求/作业日志行中,然后复杂地分割消息,以免Heroku日志转发破坏JSON格式)。
配置Datadog的复杂性是一个痛点,但AI在很大程度上解决了这个问题。
我想要一个一体化的工具……这样AI可以在一个地方获取所有上下文似乎是最好的。然而,Sentry的日志功能还很初级,速度慢,功能有限。我尝试过BetterStack,同样也很基础。定价与Datadog相似。我每月大约处理600GB和5000万行数据。
所以我得出的结论是,Datadog的日志仍然比市场上任何其他工具要好得多。但Sentry在错误处理方面要好得多(我还有其他项目:iOS应用、React、原生JS)。
有什么建议吗?我喜欢投入时间在这些事情上,当我需要修复某些东西时,所有信息都在那儿让我感到非常开心,但在某个时刻——就像使用Heroku的原因一样——我有很多其他事情需要关注。
探索切换的主要原因是为了自动化根本原因分析、错误修复、性能改进等。我对Claude仍然是个新手,现在只是把它当作Claude Code VSCode聊天中的配对程序员,有时使用CLI。
PyTorch 和 ONNX Runtime 可以告诉你输出的结果,但无法告诉你实际执行了什么——哪些操作被执行、执行的顺序以及使用了哪些输入。
模型被打包成一个封闭的 .cnox 容器。在执行任何操作之前,会先验证 SHA-256。在推理过程中,会在一个最小的操作集上执行固定的计划。每次运行都可以生成每个操作的审计日志:操作类型、输出张量哈希、输出样本——这些都与生成它的确切容器和输入通过加密方式相链接。如果在生产中出现问题,你将有一条追踪记录。
当前的标量后端是参考实现,并在硬件加速不可用时作为永久的后备。所有后端的审计和验证是相同的。接下来是 SIMD,然后是 GPU。
下面的输入是合成的(全为1),与真实输入的管道是相同的。
审计示例:
{
"schema": 2,
"run": {
"run_id": "59144ede-5a27-4dff-bc25-94abade5b215",
"started_at_unix_ms": 1776535116721,
"container_path": "/home/shark/cnox/models/output/bert_base_uncased.cnox",
"container_sha256_hex": "184c291595536e3ef69b9a6a324ad5ee4d0cef21cc95188e4cfdedb7f1f82740",
"backend": "scalar"
},
"input": {
"len": 98304,
"sha256_hex": "54ac99d2a36ac55b4619119ee26c36ec2868552933d27d519e0f9fd128b7319f",
"sample_head": [
1.0,
1.0,
1.0,
1.0
]
},
"ops": [
{
"op_index": 0,
"op_type": "Add",
"out_len": 98304,
"out_sample_head": [
0.12242669,
-4.970478,
2.8673656,
5.450008
],
"out_sha256_hex": "19f8aa0a618e5513aed4603a7aae2a333c3287368050e76d4aca0f83fb220e78"
},
{
"op_index": 1,
"op_type": "Add",
"out_len": 98304,
"out_sample_head": [
0.9650015,
0.23414998,
1.539839,
0.30231553
],
"out_sha256_hex": "7ae2f025c8acf67b8232e694dd43caf3b479eb078366787e4fdc16d651450ad4"
},
{
"op_index": 2,
"op_type": "MatMul",
"out_len": 98304,
"out_sample_head": [
1.0307425,
0.19207191,
1.5278282,
0.3000223
],
"out_sha256_hex": "44c28e64441987b8f0516d77f45ad892750b3e5b3916770d3baa5f2289e41bdd"
},
{
"op_index": 3,
"op_type": "Gelu",
"out_len": 393216,
"out_sample_head": [
0.68828076,
-0.0033473556,
1.591219,
-0.16837223
],
"audit_elided": "hash_skipped: len 393216 > max 262144"
}
]
}