DPS Build
720 subscribers
120 photos
3 videos
10 files
462 links
AI, coding, data science and startups
Download Telegram
模块化笔记本电脑 Framework 发布新的 Framework 16 系列,除了延续之前的设计以外,还增加了显卡模块和几乎可以无限拓展的信号输入模块:

it also brings in two new module ecosystems: a fully reconfigurable input deck and modular, upgradeable graphics.

https://frame.work/fr/fr/blog/introducing-the-framework-laptop-16
但是对公司而言,让自己跑得更快远比让竞争对手跑得慢一点更重要。所以大部分情况下保密措施应该是以不伤害效率为前提的。对用户数据的保密除外,但是保护用户数据的措施通常不会影响到大部分人的工作效率。

理论上这些都可以被滥用或者误用,但是滥用往往缺乏动机,误用可以从设计上避免。一个大原则是风险可控或可逆的事情默认是没有流程的,只有实际发生了问题,证明必要时才会靠引入流程来解决。有了流程就需要有人审批有人执行,如果它解决的问题不常发生、有其他方案或者产生的危害不如流程带来的成本,那么设立流程就是不理性的。

有的比较卷的团队为了控制代码的复杂度,还把自己 code base 的行数上限放到了测试里。如果有人增加了 10 行代码,就需要重构其他地方的代码来省出 10 行,或者提供一个好的理由来提高上限。

除了日常的 code review 外,每个新员工会需要学习公司的代码规范,并通过工作中会用到的每个语言的可读性 review。方式是准备一个百行以上的 changelist,提交给一个有资格做 readability review 的工程师,通过之后才有权限提交用在生产环境的代码。

所以 Google 把版本管理完全倒了过来,每个项目/组件都只要维护一个最新版,所有的改动最重要的原则是不能破坏任何测试。所以如果有人在一个共享组件里做了向前不兼容的改动,就会需要在同一个 changelist 里把整个代码库里所有调用到这个接口的地方改过来。

GWS 每周会做一次 binary push,也就是二进制文件的发布。流程是每周一早上负责发布的工程师从当前的代码做一个发布分支编译出一个二进制文件,交给 QA 开始测试,发现 bug 就把修复 cherry pick 到发布分支。

https://1byte.io/google-large-scale-dev/
👍1
微软发布了一整条基于 LLM 的开发链:

Semantic Kernel (SK) is a lightweight SDK enabling integration of AI Large Language Models (LLMs) with conventional programming languages. The SK extensible programming model combines natural language semantic functions, traditional code native functions, and embeddings-based memory unlocking new potential and adding value to applications with AI.

https://github.com/microsoft/semantic-kernel
ChatGPT 救了一只狗:

In the meantime, it occurred to me that medical diagnostics seemed like the sort of thing GPT4 could potentially be really good at, so I described the situation in great detail.

I gave it the actual transcribed blood test results from multiple days, and asked for a diagnosis

When we reached the second vet, I asked if it's possible it might be IMHA.

The vet agreed that it's a possible diagnosis. They drew blood, where they noticed visible agglutination.

After numerous other tests, the diagnosis was confirmed. GPT4 was right.

https://twitter.com/peakcooper/status/1639716822680236032
Sparks of Artificial General Intelligence: Early experiments with GPT-4

https://arxiv.org/pdf/2303.12712v1.pdf
DPS Build
围绕着 ChatGPT API 写了两周代码,记录一些想法: 1. ChatGPT API 自 gpt-turbo-3.5 发布以来,做了大大的简化。只需要在请求里写两个参数:model 和 messages,其他参数都被隐藏了。 2. 需要调整输出的话,只需要在 messages 写 prompts,通过自然语言就能控制模型的输出。大大降低了开发难度,又给输出添加了无限可能 3. 不仅 API 的交互得以大大简化,围绕着 ChatGPT API 开发的话,也可以大大简化整个 NLP 项目的开发。它…
最近又被拉着写 prompt。大前提是,隔壁组的数据出了问题,他们期望用 ChatGPT API 来批量清洗数据,他们在 ChatGPT UI 上做了测试,然后丢到我们手上。

我了解了需求之后,没看他们的 prompt,直接凭经验开始做各种尝试,最后试出了一个还不错的 prompt。于是封装成函数之后,交给后端的同事集成到流水线上。

我们跑了一小批数据,结果还不错,但是对照着隔壁组的要求,似乎不完全一致。于是后端同事直接把隔壁组的 prompt 搬进流水线里,又测试了一遍,结果和 ChatGPT UI 上的结果完全不一样。我们猜测是因为 ChatGPT UI 上还有一些后处理的逻辑。又测试了一些 prompts 之后,最后还是我提供的 prompts 效果最好。

Takeaways:

1. ChatGPT UI 和 ChatGPT API 的 prompts 不完全一致,前者有后处理逻辑,后者应该是模型直接的输出结果;
2. prompts 的确需要不断地尝试,所以 prompt engineering 可能真的是一门学问。
👍9
DPS Build
关于 Apple neural engine 的细节 https://github.com/hollance/neural-engine
读了一遍 repo 里所有的文档,有些很有意思的点:

1. Apple Neural Engine (ANE) 是和 CPU/GPU 不一样的计算核心,专门用来处理神经网络的计算。理想的情况下,最好把所有神经网络的计算任务交给 ANE,而不是 CPU 或者 GPU;

2. 但是呢,我们无法强制指定任务给 ANE,只能告诉任务去尝试使用 ANE。大体的原因是因为,不是所有的 layer 都可以在 ANE 里计算。Core ML 会把合适的 layer 放在 ANE 里计算,把不合适的放在 CPU 或者 GPU 里计算;

3. 也就是说 Core ML 会自行判断具体的 layer 调用哪个计算核心,CPU / GPU / ANE,所以开发者只能不断尝试,将不支持的 layer 替换成支持 ANE 的 layer。
斯坦福开源了一个机械手臂方案,可以做非常精确的操作,比如从钱包里取出证件,用乒乓球拍颠球等等

https://twitter.com/tonyzzhao/status/1640393026341322754