首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

REST API有关幂等性等11条最佳实践

一个常见的错误似乎是试图将关系模型构建到 URL 结构中。...将表示信息添加到 URL 意味着“事物”没有规范的 URL。客户端可能无法通过 URL 唯一地识别“事物”。 “JSON”甚至不是表示的完整规范。例如,什么传输编码?...只需将数字字符串化即可。 # BAD{ "id": 123 }# GOOD{ "id": "123" } 优秀的 API 将比您、您的实现代码以及创建它的公司更长久。...当客户最终看到不一致的数据时,这可能是 "你的错",也可能不是,但他们给你打的支持电话将是真实的。 我的建议是选择另一种 400 级错误代码,客户可以将其理解为 "我知道你要什么,但我没有"。...我个人从来没有;为了给客户带来一点方便,需要做很多艰苦的工作。 有几种方法可以为非幂等操作启用幂等行为。只要您选择一些东西,您的客户就会很高兴。

26720

云原生关乎文化,而不是容器

它们都是关于你如何管理应用的状态。它们是关于如何管理你的日志。12 个因素帮助应用程序变得幂等化,但 “12 因素” 比 “幂等化因素” 更吸引人。...它们并没有帮助我们,我们正在消耗周期来管理将应用分散在基础设施上的小块应用所带来的复杂性。如果我们有这个神奇的架构,可以让我们对市场做出反应,但我们没有做出反应,那就是一种浪费。...他们希望它能工作,而且上次检查时可能已经工作了,但我们没有任何办法在不运行手动测试的情况下知道它现在是否工作。 问题是,退步是会发生的。...这时,我就知道我有很多工作要做了! 为什么一个 “破窗” 的构建是不好的?这意味着你无法进行自动化集成测试,因为没有任何东西能从构建中做出来。...一位工程师说:“哦,但我真的想做这个改动。我就绕过自动检查器,直接把我的代码推送给空间探测器,因为,我的代码当然是完美的。”

50340
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一番实验后,有关Batch Size的玄学被打破了

    在过去的几天里,我们对此进行了一些讨论,在这里我想写下一些要点,以便将来参考。我希望你也会发现这很有帮助! 理论背景 在看实际基准测试结果之前,让我们简要回顾一下将批大小选择为 2 的幂的主要思想。...或者更准确地说,存在内存页的概念,它本质上是一个连续的内存块。...如果你使用的是 macOS 或 Linux,就可以通过在终端中执行 getconf PAGESIZE 来检查页面大小,它应该会返回一个 2 的幂的数字。...此外,由于 GPU 的内存限制,我无法运行批处理大小为 512 的基准测试,因此在这里降低到 256。 正如我们所看到的,这一次 2 的幂和 8 的倍数批量大小 (256) 并不比 257 快。...(但这可能不会影响我们的结论,即性能没有实质性差异) 此外,虽然我在同一台机器上运行了所有基准测试,但我以连续的顺序运行它们,运行之间没有很长的等待时间。

    1.4K100

    一番实验后,有关Batch Size的玄学被打破了

    在过去的几天里,我们对此进行了一些讨论,在这里我想写下一些要点,以便将来参考。我希望你也会发现这很有帮助! 理论背景 在看实际基准测试结果之前,让我们简要回顾一下将批大小选择为 2 的幂的主要思想。...或者更准确地说,存在内存页的概念,它本质上是一个连续的内存块。...如果你使用的是 macOS 或 Linux,就可以通过在终端中执行 getconf PAGESIZE 来检查页面大小,它应该会返回一个 2 的幂的数字。...此外,由于 GPU 的内存限制,我无法运行批处理大小为 512 的基准测试,因此在这里降低到 256。 正如我们所看到的,这一次 2 的幂和 8 的倍数批量大小 (256) 并不比 257 快。...(但这可能不会影响我们的结论,即性能没有实质性差异) 此外,虽然我在同一台机器上运行了所有基准测试,但我以连续的顺序运行它们,运行之间没有很长的等待时间。

    49720

    你的batch size是2次方吗?奇葩选手:我用2的8.5次方

    有网友认为,使用2的幂数单纯是出于审美上的愉悦,但我并不觉得有什么区别。有时候为了体验「游走于刀尖上」的感觉,我就用10的倍数。...也有人表达反对意见,我们「不是必须」选择2的幂数,但我们「应该」这样做。 首先这个基准测试毫无意义,在一个超级小数据集上使用一个超小网络进行实验,我们无法从这样的玩具数据中获得任何现实世界的指标。...如果你使用的是 macOS 或 Linux,就可以通过在终端中执行 getconf PAGESIZE 来检查页面大小,它应该会返回一个 2 的幂的数字。...然而,这里的差异几乎不明显,我认为它可以忽略不计。 将批处理量减少28(即100)会导致更明显的性能减慢。...例如,在最近一个使用相同ResNet架构的研究项目中,我发现最佳批次大小可以在16到256之间,完全取决于损失函数。 因此,我建议始终考虑将调整batch size作为你的超参数优化搜索的一部分。

    51520

    数学系的概率论和我们的不太一样。。。

    因为我只是颗骰子, 不是量子, 比如你现在并不是拿它玩麻将或者游戏,而是每次出门前让它给你算一卦。什么,骰子也能算卦吗?可以的,比如你的幸运数字是 。...可以看到,虽然有六个数字,但我们将它们分成了两组,毕竟掷出 1 和掷出 6 是同一个性质的。因此,事件集不一定是基本集的幂集,可以是幂集的子集,它的具体元素取决于我们考虑的问题。...Ξ测度 尽管直观上很清楚,但是要正确地将其形式化是非常困难的。测度其实就是将集合映射成数字的一个函数。考虑一个简单的例子,测量三维物体的体积,这似乎很简单,但是仍然会有严重的问题。...由于你实际上无法做到这一点,因此你无法测量空间中每个子集的体积。 〄 Banach-Tarski 悖论。 有兴趣的童鞋可以看看类似这种视频[1]更加直观地了解一下。...例如,我们有 这是因为 和 不相交,并且它们的并集是 。 〄 集合的差运算。 另一个重要特性是测度的连续性,即 1、 如果 ,则有 2、 如果 ,则有 该属性与实值函数的连续性定义类似。

    1.3K30

    一番实验后,有关Batch Size的玄学被打破了

    在过去的几天里,我们对此进行了一些讨论,在这里我想写下一些要点,以便将来参考。我希望你也会发现这很有帮助! 理论背景 在看实际基准测试结果之前,让我们简要回顾一下将批大小选择为 2 的幂的主要思想。...或者更准确地说,存在内存页的概念,它本质上是一个连续的内存块。...如果你使用的是 macOS 或 Linux,就可以通过在终端中执行 getconf PAGESIZE 来检查页面大小,它应该会返回一个 2 的幂的数字。...此外,由于 GPU 的内存限制,我无法运行批处理大小为 512 的基准测试,因此在这里降低到 256。 正如我们所看到的,这一次 2 的幂和 8 的倍数批量大小 (256) 并不比 257 快。...(但这可能不会影响我们的结论,即性能没有实质性差异) 此外,虽然我在同一台机器上运行了所有基准测试,但我以连续的顺序运行它们,运行之间没有很长的等待时间。

    33220

    高效幂模算法探究:Montgomery算法解析

    普通幂模算法 由于模运算可以将所有中间结果和最后结果限制在一个范围内,对一个k位的模数n,任何加、减、乘、除的中间结果将不会超过2k位长,因此在计算大数幂模时通常会考虑结合模运算分解幂过程,防止计算过程产生大数中间值进而发生溢出等错误的情况...当计算一些高次幂模时,普通计算器由于按顺序计算,在幂运算时产生大数导致后续无法进行,而加法链操作则由于分解了幂运算,使得每次的中间过程变量都限制在了模范围内,因此可以计算更加复杂的幂模运算。 ?...我可以反汇编调试该代码看看计算机到底怎么思考这段代码,可以看到计算机思考这段代码非常艰难,我们眼中的4600/100,它完全无法理解,以至于它最后还是选择了用除法解决问题,而我们人脑面对这个算式时几乎不用除法...所以根据机器对待这种算法的方式我们优化C语言代码,经过优化后我们将传递给我们的关键函数以m值(即R=2^m中的m)而不是直接将R值传递进去,那么内部我们的关于取模和除法函数全以&和>>运算取代,通过关键函数的反汇编可以与之前图...此代码得到了有效的改善,且当在大数幂模计算时性能上的优势会随着运算量的增大而进一步凸显出来。 ? ?

    4K31

    Just keep scaling!思维链作者Jason Wei 40分钟讲座剖析LLM扩展范式

    随着模型增大,它们能完成的任务也越来越多,比如 GPT-2 只能做这些任务中的一小部分,GPT-3 能做更多任务,而 GPT-4 则涌现出了更多能力,比如调试代码、写诗等。...有时候我听到的一种观点是,AI 无法做到某些事情,因此它没有用。但我的看法是,AI 并不需要在所有方面都达到人类水平。它只需要在少数几个用例中表现出色,就能对人类非常有用。...我认为,作为人类,我们在研究方面还算不错,但我们有很多局限性。 比如,我们无法记住互联网上的所有信息,我们会感到疲倦,会分心等等。...文本是一个非常好的学习媒介,因为它是对我们世界的高度压缩表示。但我们将朝着更融入我们世界的 AI 发展,比如 Sora 和高级语音模式。 我认为工具使用也将成为另一个重要的方向。...但我认为,最终我们希望达到的状态是 AI 能够代表用户执行操作,并且能够主动为用户提供服务。 最后,我认为我们将看到许多 AI 应用落地。我感觉在技术的研究阶段和实际部署之间总是存在一定的滞后。

    4600

    陶哲轩等人用编程方法,推翻了60年几何难题「周期性平铺猜想」

    论文链接:https://arxiv.org/abs/2211.15847 克里特大学的数学家 Mihalis Kolountzakis 说:「我希望这个猜想在所有维度上都是正确的,但我想在足够高的维度上...证明高维格子的「离散」周期性拼接猜想与证明该猜想的连续版本略有不同,因为拼接在格子中是可能的,但在连续空间中是不可能的。但它们是相关的。...数学家们试图用特定的数字序列填满每一行和对角线,这些数字序列与他们可以用平铺方程描述的约束类型相对应:他们将其比作一个巨大的数独谜题。...「似乎确实有一种新的原则,即高维几何学就是讨厌的,」陶哲轩表示。「但我们从 2D 和 3D 得到的直觉可能会产生误导。」 这项工作不仅涉及人类直觉的边界问题,还涉及数学推理的边界问题。...事实证明,数学中充满了「不可判定」的语句。 同样,这项工作也充满了计算上不可判定的问题,任何算法都无法在有限的时间内解决的问题。

    45110

    无论如何,这是哪条鲸鱼?利用深度学习对鲸鱼进行人脸识别

    这与我们试图在狗,猫,袋熊和飞机之间进行区分的情况有所不同。这给我们一直训练的神经网络带来了一些困难——构成单个鲸鱼的独特特征,或者将这种特殊的鲸鱼与其他鲸鱼分开,只占据图像的一小部分,并不是很明显。...尽管这显然是一个递归任务,但我们在将输出量化为分箱并将Softmax与交叉熵损耗一起使用方面取得了更大的成功,取代使用L2损失。...此外,它需要判断鲸鱼头部的粗糙模式是否连续(再次进行手动注释训练,尽管这次的工作量少得多,因为每只鲸鱼观看2-3个图像就足够了)。 不连续(左)和连续(右)的皮肤斑纹 我们使用了以下架构。...尽管对预测的结果进行简单加权平均并不没有比单独的最佳模型有更好的分数(除非我们明显提高最佳模型的权重),但如果将预测提升到中等功率(在我们使用的最终解决方案是1.45)。...Kicking(加速)学习率后的损失函数。 校准概率 将预测提升到[1.1 - 1.6]范围内的中等功率对几乎所有模型或者混合模型都有帮助。这个技巧是在比赛结束时发现的,而且将得分提高了0.1。

    1.4K50

    人和人吵架生气,但AI和AI吵架反倒可以带来安全

    我们将通过初步的概念验证实验来概括这种方法,同时我们还会发布了一个 Web 网页,让人们可以体验这项技术。 ?...如果两个智能体对现状持不同意见,但它们各自完整的推理过程太繁琐而无法向人展示,那么辩论就可以集中在更简单的事实争议上,最终向人类呈现一个简单可判断的选择。...如果两个智能体均事先声明他们争论的是哪个数字,那么这场辩论会将稀疏分类器的准确率从 59.4%提升到 88.9%。...这可能是将游戏人为限制为非黑色像素导致的:试想如果 8 是纯白的,那么数字上有黑点,就证明该数字不是 8。...二是这种方法也无法保证辩论会得到最佳结果或正确的表述,尽管左右互搏的方法在 AlphaGo 和其他游戏 AI 的实践中表现良好,但我们对其最终表现的优劣并没有理论保证。

    42630

    编写数据迁移的14个规则

    第一个选项是将缺少的案例添加到我们的脚本中。第二个是忽略它。无论如何,我们需要再次重新运行迁移才能完成工作。 编写幂等代码,意味着无论我们运行迁移多少次,结果都是相同的。这是我们应该具备的重要能力。...这是非幂等代码的一个示例,在多次执行的情况下可能导致错误的版本值。 我们怎样才能使它成为幂等的? 添加一个列(我们可以在完成后删除)来标记哪些行已完成,可能是一种可能的解决方案。...优点: 我们保留了旧数据,因此我们可以轻松回滚 我们可以将所有迁移的数据公开在一起,并为用户提供更好的体验 缺点: 这是更多的工作,包括在开始迁移之前部署代码来维护两个列 使用这些原则将为您提供运行安全迁移的工具...哪些错误会导致我们完全停止我们的脚本?哪些错误是坏的,但我们可以将它们写为对我们日志的警告,稍后修复它们并再次为那些损坏的记录重新运行我们的脚本?...当脚本运行的时候,你可以和你的伙伴们享受披萨和乒乓球,这样你就不会觉得时间长了:p ---- 就是这些了!我试图将我们在团队中学到的所有知识和经验教训分组,以编写出色的数据迁移。

    2.2K30

    为什么x86架构一个字节是8个bit

    这篇文章并没有给出最终答案,但我在 Mastodon 上提出了这个问题,以下是我找到的一些可能的原因,我认为最终答案是其中一些原因的组合。 byte和word的区别是什么?...理由3️⃣:8是2的幂? 许多人说将CPU的字节大小设计成2的幂是很重要的一件事。我无法确定这是否是正确的,而且“计算机使用二进制所以将字节设计成2的幂很好”这种解释并不能令我满意。...clock dividers)更容易,,这些分频器的工作原理是减半(halving)——可以将3个减半(halving)的时钟分频器串联起来。...还有人提到,有些处理器使用 Carry-lookahead adders,它们以4 bit 为一组工作。从一些谷歌搜索结果来看,似乎有各种各样的加法器电路。...7位是可以将所有英文字母+标点符号都放入其中的最小大小。 8比7更好(因为它是2的幂次方)。 一旦出现流行的 8-bit 计算机并且它们运作良好,我们就希望保持相同的设计以实现兼容性。

    30630

    AI封装工具蕴藏丰厚商机

    如果忽略无法证实的收入数字,这个视频是相当理性的,指出大多数的想法只是人工智能的封装,开始并不需要太多工作。我将在下面看一些特色网站。...我使用 Warp 作为我的终端,所以很容易将命令与响应分开。使用OpenAI提供的curl命令示例调用他们的基本GPT模型。...电子表格无处不在,经常出现在完全不关心数字或公式的人手中。 简短注册后,它会提供一些测试市场表格数据来帮助您了解事情的工作原理。在查看测试数据并询问“哪种饮料产品获利最多?”...始终试图成立有限责任公司(取决于您所在地区的法律),以在财务上隔离您的产品。 确保您可以使用代码将所需的API响应转换为用户HTML页面。使用您最熟悉的Web解决方案。...正是您用MVP回答的事情。从那时起,这就是营销工作的问题。如果您正在寻求财富,我祝您好运。

    8510

    终结扩散模型,IGN单步生成逼真图像!UC伯克利谷歌革新LLM,美剧成灵感来源

    然后,研究人员训练模型 将 映射到 。 假设分布 和 位于同一空间,即它们的实例具有相同的维度。这允许将 应用于两种类型的实例 和 。...作者承认,现阶段,IGN的生成结果无法与最先进的模型相竞争。 在实验中,使用的较小的模型和较低分辨率的数据集,并在探索中主要关注简化方法。...实验设置 研究人员在MNIST(灰度手写数字数据集)和 CelebA(人脸图像数据集)上评估IGN,分别使用28×28和64×64的图像分辨率。...它们还可以输出更一致的结果,这可能推广到更多的应用中,比如医学图像修复。 论文作者表示: 我们认为这项工作是迈向模型的第一步,该模型学习将任意输入映射到目标分布,这是生成建模的新范式。...接下来,研究团队计划用更多的数据来扩大IGN的规模,希望挖掘新的生成式AI模型的全部潜力。 最新研究的代码,未来将在GitHub上公开。

    39310

    Gemini代码助手审查:代码补全需要改进

    和以前一样,我将对我的项目进行实际更改,并查看代码补全的行为。我的游戏项目使用随机数,但我需要从列表中获取它们,以便能够就地生成它们,或者使用预先准备好的数字集进行测试。...我经常发现,当我更新我的解决方案并删除旧代码时,Gemini 会建议将已删除的行放回原处。这让我想知道 Gemini 在敏捷开发中进行了多少测试,在敏捷开发中重构非常重要。...现在,我非常清楚,我审查不同助手的情况使我更容易遇到助手冲突,但我担心,虽然审查应该关于 Gemini,但我对 VS Code 完全无法控制冲突的扩展程序感到印象深刻。)...浏览代码,您可以看到有两个案例需要测试,因为我为它们抛出了异常。 它在预先准备好的集合和生成的随机集合中都很好地创建了设置和拆卸。...但我总体感觉 Gemini 跟不上我的节奏——尽管代码解释很精确。 代码完成的质量总体还可以——尽管在我最近的测试中,Copilot 和 Augment 给我的结果更好。

    8010

    小白解释:什么是分布式微服务中的幂等?

    幂等是重要的,因为它捕获了安全重试的本质。如果没有安全重试,您实际上无法实现安全的分布式协议。 什么是幂等?它的本质是,如果你问两次,它就像问一次一样。它具有相同的效果。...如果它没有发送它并且我不再次发送,那么客户可能会收不到电子邮件。 这确实是一个真正的商业问题。幂等将解决这个问题。...如果没有,则发送电子邮件,然后将ID放入集合中。还有其他数据结构是幂等的。如果你有哈希映射,那么它们是幂等的。 如果您添加相同的键和值两次,那么它没有额外的影响。...您可以考虑使用幂等的另一件事就是向数字添加零。如果你需要某种幂等的加法,你就可以做到。 总结 让我们回顾一下。幂等意味着重复无关紧要。它是某些功能,某些操作的代数属性,但我们将其扩展到世界上的行为。...然后将消息写入日志,将它们包装在类似于使其具有幂等性的数据结构中就好了。

    92320

    专访探索AGI的孤勇者,传奇工程师John Carmack:惊讶看不到如我这样的人

    随着AI进入社会,将大大提升社会价值与进步总和。AI会极大地影响经济。我觉得AGI实现的可能性到2030年会提升到60%。往后说,2050年会有95%。...但我认为这是一项长达10年的任务,为此筹集的2000万美元,我不想在接下来的两年内烧完,然后再融资——这不是我做事的方式。 商业成功很诱人,但这分散了每个人的注意力,无法放眼未来。...可能往后余生用来写那些代码都不足够。 但我坚信,真正支持 AGI 的代码将是一个人可以编写的东西。现在有经验的投资者认为,AGI的代码需要由一组研究人员完成,是由所有人撰写的代码拼凑而成的。...但我想要再说一下,大脑是一个被大规模利用的简单程序,这也正是当下人工智能身上正在发生的事情。拿人们谈论的东西来说,比如GPT-3、Imagen、AlphaFold,它们框架中的源代码并不大。...现在,我正在做实验,也正在测试,试图将这些不同的领域结合在一起,因为我认为这些领域是 AGI 算法的一部分。 但我所做的大部分工作是通过看大量电视和玩各种视频游戏来进行模拟。

    33440
    领券