Skip to content

Latest commit

 

History

History
208 lines (149 loc) · 29.9 KB

vol-28.md

File metadata and controls

208 lines (149 loc) · 29.9 KB

vol 28

本期主题

实用型人工智能的飞速崛起

典型代表:ChatGPT。但是,AI生成的内容可能存在错误,仍然需要人类验证、审查,来确保它的正确性和合理性。

易用的无障碍设计

无障碍设计也是一个重要因素。

Lambda 陷阱

无服务器函数 AWS Lambdas 越来越频繁地出现在架构师和开发者的工具箱中,并被用于实现各种基于于云基础架构的任务。

像所有的技术解决方案一样,无服务器有其适宜的应用场景,但它的许多功能在使用时都需要权衡利弊,这种情况随着解决方案的演进会更加突出。

数据分析和人工智能中的工程严谨性

例如,Soda Core 是一个在接收数据伊始就开始验证并自动监测异常的数据质量工具,Deepchecks 结合了持续集成和模型检查,将好的工程实践融入分析系统。Giskard 对 AI 模型进行质量控制,可以检查模型的偏见等其他负面因素,这与我们提倡的在开发 AI 解决方案时关注伦理的理念相符。

声明,还是编程?

对于给定的任务,应该使用 JSON、YAML 或者像 HCL 这样的领域特定语言来编写声明性规范,还是应该在通用编程中编写代码语言?

声明性规范虽然通常更易于阅读和编写,但其有限的抽象会导致重复代码的产生。适当的编程语言可以使用抽象来避免重复,但这些抽象会让代码变得更难理解,特别是当抽象经过多年的变化而分层时。根据我们的经验,上述问题没有标准答案。

技术

采纳

  • 将产品管理思维应用于内部平台。平台产品经理制定路线图并确保平台为业务带来价值和增强开发人员的体验。
  • 将 CI/CD 基础设施作为一种服务。使用 GitHub Actions、Azure DevOps 或 Gitlab CI/CD 等管理服务,具有托管云服务的所有常见优势(和权衡)。此外,这些也值得留意:actions-runner-controller 和 Philips 的自我托管 GitHub运行器。
  • 精简软件依赖项。—定期仔细检查这些依赖并剔除未使用的依赖,这有助于减少构建和部署时间,并且可以通过移除潜在漏洞来降低项目受攻击的风险。
  • 将运行成本作为架构健康度的考量。强调考虑将运行成本作为架构健康度的考量的重要性。

试验

  • 设计中的无障碍注解。Figma 提供了一系列的无障碍性注释插件:The A11y Annotation Kit,Twitter 的 Accessibility Annotation Library 和 Axe的工具集 Axe for Designers

  • 有限界的使用低代码平台。无论是开发自己的作为内部产品的平台,还是通过谨慎限制商业低代码平台的使用范围,使其仅限完成于它们擅长的简单任务。

  • 对仅提供 API 的产品的演示前端。当定制化界面 UI 与 API 产品一起构建时,业务利益相关者可以将产品与他们可能更熟悉的纸质表格或报告进行类比。

  • Lakehouse 架构。Lakehouse(数据湖仓一体)架构是一种数据湖的可扩展性与数据仓库可靠性和性能相结合的架构风格,使得组织能在一个平台上使用类似于 SQL 的工具和技术,储存分析大量不同的数据,而不是将他们放在单独的在数据湖和数据仓库层中。

  • 可验证凭证。用户可以将他们可验证的凭证放到自己的数字钱包中,并在任何时候向任何人展示,而无需得到凭证发行者的许可。

评估

  • 无障碍意识的组件测试设计。不要使用 test id 或 class 来寻找和选择你要验证的元素,而是使用通过 ARIA 角色或其他辅助技术使用的语义属性来识别元素。一些测试库,如 Testing Library,甚至在文档中直接推荐这样做。其次,不要只测试点击交互,还要考虑不能使用鼠标或看不到屏幕的用户,并考虑增加对键盘和其他交互的测试。
  • 基于 AI 辅助的测试驱动开发。在这种方法中,我们让 ChatGPT 为我们生成测试代码,然后由开发人员来实现功能。这也算是与AI结对编程的一种方式。在这些 AI 工具的“商业版”面世之前,团队应确保与法律顾问合作,以避免任何知识产权问题。
  • 领域特定的大型语言模型。之前我们已经提到过 BERT 和 ERNIE 之类的大型语言模型(LLMs);但是领域特定的大型语言模型是一个新兴的趋势。使用领域特定数据对通用大型语言模型进行微调能将它们用于各种各样的任务,包括信息查询,增强用户支持和内容创作。例如使用 OpenNYAI进行法律文书分析。随着越来越多的组织开始对大型语言模型进行试验和越来越多像 GPT-4 这样的新模型的发布,我们预期大型语言模型在不久的将来会有更多领域特定的用例。但是使用大型语言模型仍面临许多挑战和缺陷。首先,大型语言模型能“很自信地犯错”,所以需要构建一些机制来保证结果的准确性。
  • 智能引导无障碍测试。智能辅助无障碍测试是一类可以帮助测试已正确实现无障碍设计的工具,这些浏览器扩展,会扫描网站,总结辅助技术会如何解释网页,然后通过一组问题以确认您创建的结构和元素是否符合预期。
  • 使用 Logseq 构建团队知识库。Logseq 是一种开源的知识管理系统,由图形数据库驱动,帮 助用户组织想法、笔记和创意,并可以通过基于 Git 的存储方式适应团队使用。Logseq 允许团队构建一个公开透明的知识库,为每个成员提供个性化的学习路径,促进高效的启动培训。它的竞争对手是Obsidian这类笔记软件。
  • 提示工程。提示工程(Prompt engineering)指的是为生成式 AI 模型设计和优化提示的过程,以获得高质量的模型响应。这个过程包括精心设计特定、清晰易懂和与所需任务或应用相关的提示,以引导模型输出有用的结果。提示工程旨在增强大型语言模型(LLM)在问题回答、算术推理任务或特定领域上下文中的能力。培养有效的提示技巧正在成为处理人工智能系统的重要技能。
  • 测试基础设施时的可达性分析。例如,工具可能会遍历并报告通过中转网关的多个路由。
  • 自托管式大型语言模型。大型语言模型通常会运行在具有强大的 GPU 的基础设施上。我们如今可以看到一些大型语言模型的移植版本,比如 llama.cpp,这些模型能在不同的硬件上运行,包括 Raspberry Pi(树莓派)、笔记本电脑和通用服务器等。
  • 管理技术健康状况优先于技术债务。将关注点放在技术健康状况而非技术债务上更有建设性。将团队与减少技术债务的最终价值联系起来,并帮助团队确定优先级。理想情况下,每个被解决的技术债务都应与某项已达成共识的期望相关联。团队应将技术健康状况评级与其他服务级别目标(SLO)一样对待,并在某个类别的健康评级跌出“安全区域”时优先进行改进。
  • CI/CD 的零信任保护。实现最小特权原则,最小化个人用户和执行账户的权限,而不是创建一个拥有无限访问权限的全能账户。用临时的方式去使用任务执行器而不是复用他们,来减少暴露先前任务的秘密或在受到攻击的运行器上运行任务的风险。保证软件在你的代理服务器和任务执行器上是最新的。

暂缓

  • 对 Webhooks 的管理不够严谨。在 Git 仓库中的 Webhook 可以轻松提取并用于发送有效的欺诈信息,用户可能没有任何身份验证的方式。为了缓解这种威胁,处理 Webhook 的团队需要改变他们的习惯,并将 Webhook 视为敏感凭据。
  • Lambda 弹球。尽管我们相信无服务器是适合某些问题和领域的,但它并不是每个问题的“万能解法”,你应该尽量避免陷入 Lambda 弹球。一种有助于解决这个问题的方法,就是区分公共接口(public interface)和已发布接口(published interface),并在它们之间应用带有已发布接口的领域边界。
  • 竭尽全力的计划。在迭代计划中预留一定的产能,往往可以提高可预测性以及更好的质量。因为这不仅有助于增强团队应对意外事件(如疾病、生产问题、意外的产品请求和技术债务)的弹性,还让团队可以进行提升生产力的活动,比如团队建设和创意构思,从而推动产品创新。

平台

采纳

  • Contentful。无头内容管理系统,Contentful 仍然是我们在这个领域的首选,但像 Strapi这样的新进入者也给我们留下了深刻的印象。
  • GitHub Actions。直接在托管源代码的 GitHub 上创建构建工作流的便利性,再加上能使用像 act 等开源工具在本地运行 GitHub Actions,让其成为简化团队设置和新成员上手流程的一个引人注目的选项。
  • K3s。K3s 是我们在边缘计算和资源受限环境下的默认 Kubernetes 发行版。它轻量,完全兼容 Kubernetes,且操作开销较少。它使用 sqlite3 作为默认存储引擎,而不是 etcd。K3s 的运行时 containerd 已经支持 wasm,因此 K3s 可以直接运行和管理 WebAssembly 负载,进一步减少了运行时开销。

试验

  • Apache Hudi。Apache Hudi 是一款开源数据湖平台,将 ACID 事务保障引入了数据湖中。在大数据量高吞吐量场景下使用 Hudi 进行实时写入和更新数据,取得了非常理想的效果。
  • 云上 Arm。云上 Arm 计算实例在过去几年中越来越受欢迎。因为与传统的基于 x86 的实例相比,其成本更低,能源效率也更高。
  • Ax。Ax 是一个用来管理和自动化自适应实验的平台,包括机器学习实验,A/B 测试和模拟。目前,它支持两种优化策略,一种是使用 BoTorch 的贝叶斯优化,它是建立在 PyTorch 基础上的,以及 contextual bandits。
  • DuckDB。DuckDB 是一个用于数据科学与数据分析的嵌入式列式数据库。数据分析师通常会在本地将数据加载进诸如pandas 或 data.table 这些工具中,从而可以在于服务器内扩展解决方案前就做到快速分析模式和形成假设。现在可以使用 DuckDB 来处理这些用例,因为它释放出了比内存分析更大的潜力。DuckDB 支持庞大事务的 range joins,向量化执行和多版本并发控制(MVCC)。
  • 特征库。特征库是一个架构上的概念,能促进识别、发现和监测与给定领域或业务问题有关的特征。实现这一概念需要结合架构设计,数据工程和基础设施管理,来创建一个可扩展的、高效的、可靠的机器学习系统。
  • RudderStack。RudderStack 是一个可以轻松存储数据至数据仓库或数据湖的客户数据平台(CDP)。这种方法越来越多地被称为无头 CDP(Headless CDP),它将 CDP 的功能和用户界面分离,强调可通过 API 灵活配置,同时强调数据仓库 / 数据湖为主要存储方式。
  • Strapi。Strapi 是一个基于 Node.js 的开源无头内容管理系统(CMS),它类似于 Contentful。
  • TypeDB。TypeDB 是一个知识图谱数据库,设计用于处理复杂的数据关系,从而简化查询和分析大型数据集。

评估

  • Autoware。Autoware 是一个基于 ROS(机器人操作系统)开发的,开源的自动驾驶软件栈。它可以用于为各种各样的车辆,如汽车和卡车等,开发和部署先进辅助驾驶系统(ADAS)。
  • Cozo。Cozo 是一个以 Datalog 作为查询语言的可嵌入关系型数据库。其对时间旅行(time-travel)查询及对在关系型数据模式中建模图数据的支持非常有趣。
  • Dapr。Dapr 是分布式应用程序运行时(Distributed Application Runtime)的缩写,帮助开发人员构建在云中运行的具有弹性、无状态和有状态微服务。一些人可能会将其与服务网格(service mesh) 混淆,因为它使用一个边车(Sidecar)架构,作为应用程序旁边独立运行的进程。Dapr 更加面向应用程序,并专注于封装构建分布式应用所需的容错性和连接性。例如,Dapr 提供多个构建块(building blocks),从服务调用和消息发布 / 订阅到分布式锁定等都是分布式通信中常见的模式。
  • Immuta。Immuta 是一个数据安全平台,它允许你安全地访问数据,自动发现敏感数据并审计数据在组织中的使用情况。它能将数据访问策略作为代码来管理,以实现精细化的访问控制, 这超出了基于角色的访问控制(RBAC)所能提供的范围。基于版本控制的策略可以被测试,然后配置为 CI/CD管道的一部分。在一个去中心化的数据生态系统中,比如由数据网格促成的生态系统,拥有特定领域的角色会导致身份认证系统中的角色或用户组扩散。Immuta 的基于属性的访问控制(ABAC)的特性将访问授权简化为一个数学方程式,即把用户的“属性”与数据源的“标签”相匹配。这个平台虽然很新,但在满足数据安全需求方面绝对值得考虑。
  • Matter。智能家居技术。
  • Modal。Modal 是一种平台即服务(PaaS),您无需自己的基础设施即可按需计算。Modal 让您可以部署机器学习模型、大规模并行计算作业、任务队列和 Web 应用程序。
  • Neon。它对主流 PostgreSQL 代码进行最小的更改,并利用 AWS S3 进行长期数据存储,在计算方面弹性扩缩容(包括缩放到零)。
  • OpenLineage。OpenLineage 是一个开放的数据管道沿袭元数据收集标准,旨在在作业运行时对其进行编整。
  • Passkeys。当用 passkeys 注册新的登录信息时,它会产生一对密钥:网站收到公钥而用户保 留私钥。它使用非对称加密处理登录。
  • Spin。Spin 是一个开源平台,用于在 WebAssembly(WASM)中构建和运行微服务。

暂缓

  • Denodo 作为主要的数据转换工具。尽管 Denodo 可以简化展示消费者友好的数据的工作,但随着视图和虚拟数据库层的叠加,特别当查询需要连接多个底层数据库时,性能会受到影响。 由于这些缺点,以及对单元测试支持有限,我们不建议使用 Denodo 作为主要数据转换工具,而应使用 Spark或 SQL(通过 dbt)等工具做数据转换。

工具

采纳

  • DVC。数据科学项目中管理实验的首选工具。DVC 使用其特有的模型检查点视图对训练数据集、测试数据集、模型的超参数和代码进行了精心的封装。通过把可再现性作为首要关注点,它允许团队在不同版本的模型之间进行“时间旅行“。

试验

  • Akeyless。Akeyless 是一个基于云的集中化平台,提供统一的密钥管理,在管理密钥和敏感数据方面具有一系列优势。
  • Apicurio Registry。一个开源的、集中式的注册表,可以存储各种类型的模式和 API文档,包括 OpenAPI 规范,Protobuf 和 Avro 模式。
  • EventCatalog。为企业提供了一种广泛可访问的文档库,用于描述事件在业务种扮演的角色,它们在业务领域模型中的位置,以及哪些服务订阅和发布这些事件。
  • FOSSA。FOSSA 是一个开源合规性工具,可以帮助开发人员和团队确定他们的代码依赖哪些开源组件,以及这些组件是根据哪些许可发布的。
  • Gitleaks。Gitleaks 是一个开源 SAST(静态应用安全测试)命令行工具,用于检测 Git 仓库以防止把密码、API 密钥和访问令牌等机密信息硬编码到代码中。
  • Helmfile。Helmfile 用于安装和管理多个 Helm chart,帮助您进行 Helm 配置文件、使用的 chart 等变更的版本管理。它使 Helm chart 能用于 CI/CD 工作流,有助于创建可重现环境。
  • IBM Equal Access Accessibility Checker。无障碍设计检测。
  • Ktlint。有态度的代码格式化工具(Opinionated and automated code formatting),因为这能让开发者更关注代码的行为,而不是它的外观。类似于python生态的black。
  • Kubeflow。Kubeflow 是一个 Kubernetes 原生的机器学习(ML)平台,它能简化模型生命周期中在不同基础设施上的构建、训练和部署流程。
  • Mend SCA。Mend SCA(之前称为 Whitesource)可以用于检测开源软件依赖项,以识别它们是否最新、是否含有安全漏洞,或存在特殊许可证需求。同类型的工具还有 Snyk。
  • Mozilla SOPS。可以用来加密文本文件中的密钥。
  • Ruff。Ruff 是一个新的 Python linter。Ruff 能够脱颖而出有两个原因:开箱即用的体验,以及性能。它内置了 500 多条规则,可以轻松取代 Flake8 和它的许多插件。
  • Soda Core。Soda Core 是一个开源数据质量与可观测性工具。我们的团队已经使用它来验证数据在到达系统之前和之后的转换,并设置自动化监测检查以检测异常情况。
  • Steampipe。Steampipe 是一个可以让你使用 SQL 实时查询 AWS,Azure,以及 GCP 等云服务的开源工具。
  • Terraform Cloud Operator。通过扩展 Kubernetes 控制平面来集成 Terraform Cloud 和 Kubernetes,以通过 Kubernetes manifest 对云和本地基础设施进行生命周期管理。
  • TruffleHog。一款开源的静态应用程序安全测试工具(static application security testing,SAST),用于在各类源码中检测密钥信息。
  • Typesense。Typesense 是一款可容错的开源搜索引擎,它针对高性能和低延迟的搜索体验进行了优化。如果您正在构建对延迟有较高要求的搜索应用,而且索引的大小可以载入内存,Typesense 将是个很好的选择。
  • Vite。Vite 提供了一套基于浏览器内 ES 模块的应用的构建,打包和依赖管理工具。它利用了 esbuild 原生的速度和 Rollup 进行打包,Vite 显著地提升了前端开发体验。

评估

  • axe Linter。像 axe-core 这样的工具可以在流水线中扫描代码来寻找无障碍问题,而 VSCode 扩展工具 axe Linter 甚至可以在这之前,例如在编写代码时就能发现它们。
  • ChatGPT。GPT-4,作为驱动 ChatGPT 的 LLM,现在也具备与外部工具集成的能力,如知识管理库、沙盒式编码环境以及网络搜索。 ChatGPT 更适合作为流程的输入,如帮助完成用户故事的初稿或编码任务的模板,而不是一个能够产出“完美周全”结果的工具。
  • DataFusion。包括 Data Fusion在内的用于数据处理的 Rust 库正在持续进化,它们值得关注和探索。
  • Deepchecks。随着机器学习成为主流,模型测试、训练数据验证和生产模型性能监测这些实践的自动化也日渐成熟。这些自动检查越来越多地被集成进持续交付流水线或针对生产模型运行,以检测模型漂移和模型性能。已经出现了一些具有相同或类似功能的工具,以处理这个过程中的各个步骤(比如同样出现在本期技术雷达中的 Giskard 和Evidently)。Deepchecks 是另一个此类工具,它是一个开源的 Python 库,提供了一组丰富的 API 以供流水线使用。
  • 设计令牌翻译工具。设计令牌翻译工具通过整理和自动化地将(在 YAML 或 JSON 中的) 令牌描述转换为在指定媒介中控制渲染的代码(如 CSS、React 组件或 HTML),从而简化了这个问题。Style Dictionary 是一个广泛使用的开源示例,很好地集成了自动化构建流水线,但它也有商业替代品,例如 Specify。
  • Devbox。Devbox 提供了易上手的界面,它利用 Nix 包管理器为每个项目创建可重现的开发环境。
  • Evidently。Evidently 是一个开源的 Python 工具,旨在帮助构建对机器学习模型的监控,以确保它们的质量和在生产环境运行的稳定性。它可以用于模型生命周期的多个阶段:作为 notebook 中检查模型的仪表板,作为 pipeline 的一部分,或者作为部署后的监控。
  • Giskard。Giskard 是一个开源工具,旨在通过聚焦于可解释性和公平性来保证质量,帮助组织构建更加强大、更符合道德的 AI 模型。
  • GitHub Copilot。我们不把它的工作称为“结对编程”——我们更倾向于称它为强化且上下文敏感的 Stack Overflow。像所有基于 LLM 的人工智能一样,它会试图使用一些看似合理,但不存在的 API,或者使用稍有问题的算法,导致系统故障。我们已经成功地在行、块和方法层面上生成了代码,同样成功地创建了测试和基础设施配置。有趣的是,当你命名良好时,它的工作效果最好,可以认为它鼓励写出可读性良好的代码。
  • iamlive.按照最小权限原则来创建我们想要的最小可行 AWS IAM 策略(Policy)可能需要经历一段很长的试错过程。而iamlive 可以在很大程度上缩短这一过程。
  • Kepler。衡量能源消耗是团队减少软件碳足迹的重要步骤。云碳足迹(CCF)通过从云 API 检索的账单和使用数据估计能源消耗。Kepler 是基于 Kubernetes 的高效功率级别导出器(Kubernetes-based Efficient Power Level Exporter)的缩写。
  • Kubernetes External Secrets Operator。让我们可以将外部的密钥提供程序与 Kubernetes 集成。
  • Kubeshark。Kubeshark 不需要安装监测工具或改动代码,它作为 DaemonSet 守护进程集在 Kubernetes 集群的节点层面上注入一个容器,并执行类似 tcpdump 的操作。 Kubeshark是一个很有用的调试工具,可以实时地监控多种协议(REST,gRPC,Kafka,AMQP 和 Redis)之间的所有 API 通信。
  • Obsidian。知识管理,或者笔记管理工具。类似的还有notion、Logseq。Obsidian的亮点在于canvas和dataview。
  • Ory Kratos。已经评估了 Ory Hydra 作为自托管的 OAuth2 解决方案,并收到了团队的正向反馈。而 OryKratos 是一个 API 优先的身份和用户管理系统,对开发人员友好,且易于定制。
  • Philips 的自我托管 GitHub 运行器。是一个 Terraform 模块,可以让您在 AWS EC2 Spot 实例上启动自定义运行器。当您使用自我托管运行器时,您会失去 GitHub Actions 提供的一些生命周期管理特性,而该模块则创建了一整套 Lambda 来帮助解决这类问题。

暂缓

语言和框架

采纳

  • Gradle Kotlin DSL。可以考虑抛弃Groovy。
  • PyTorch。相比于 TensorFlow,大多数团队更喜欢 PyTorch,因为它暴露了 TensorFlow 隐藏的 ML 内部工作原理,使其更易于调试。

试验

  • dbt 单元测试。虽然该软件包对失败测试的调试支持还有很大提升空间,但它依然能为编写数据转换器的单元测试提供一个优雅的开发体验。
  • Jetpack CameraViewfinder。为 Android 应 用 程 序 添 加 相 机 功 能 。
  • Jetpack DataStore。一个新的数据存储解决方案。如果你目前正在使用 SharedPreferences,可以考虑迁移到 DataStore。SharedPreferences 这个东西有点老了。
  • Mikro ORM。一个基于 TypeScript 的对象关系映射(ORM)框架。ORM 框架通常很复杂,而且为关系型数据存储只提供了一个“有漏洞风险”的抽象层,因此采用一个 ORM 框架前一定需要权衡利弊。
  • 按应用设定的语言偏好设置。手机用户有时会希望某些应用能够使用与系统语言不同的语言。苹果公司早些时候在 iOS 中提供了按应用设定的语言偏好设置功能。然而在 Android 13之前,如果安卓应用程序开发者想要提供此选项,就只能在应用程序中自行实现。Android 13 提供了一项新的系统设置:按应用设定的语言偏好设置和一个公共 API。
  • Quarto。Quarto 是 一 个 开 源 的 科 技 出 版 系 统, 它 允 许 我 们 使 用 markdown 方 式 编 写 文 档 来 构 建 计 算 笔 记 本(notebooks),在最终的文档中插入代码及其输出。类似的工具有bookdown。
  • River。许多机器学习方法的核心是从一组训练数据中创建模型。一旦创建了模型,它就可以一遍又一遍地使用。然而,世界并不是静止的,随着新数据的出现,模型往往需要更新。简单粗暴地重新训练模型可能会很慢,而且成本很高。增量学习的出现解决了这个问题,使得从数据流中不断学习成为可能,从而更快地对变化做出反应。其也有一些额外的好处:它对算力和内存的要求更低,而且可以预测。
  • Stencil。Stencil 是一个库,使开发人员能够使用 TypeScript、JSX 和 JSDoc 等成熟的工具构建可复用的 Web 组件。Stencil 是构建平台无关的设计系统的一个非常好的选择。
  • Synthetic Data Vault。是一个数据生成工具库,它通过学习数据集的分布,生成与源数据具有相同格式和统计属性的合成数据。
  • Vitest。它专门为 Vite 设计,并使用 Vite 作为打包工具。此外,Vitest 还具有 Jest 兼容的 API,这使得在各种构建设置中可以使用 Vitest 作为 Jest 的替代品。Vite 和 Vitest 结合使用提供了更好的开发者体验。

评估

  • .NET 7 Native AOT。.NET 7 Native AOT 在一众原生部署 .NET 应用程序的方法中迈出了一大步。它完全摒弃了运行时的中间语言(IL)和实时编译(JIT)。这项在 .NET 7 中引入的改进,对于在无服务器函数(Serverless Functions)中运行 .NET 应用程序意义重大。
  • .NET MAUI。是一个使用 C# 和 XAML 创建原生移动端和桌面端应用程序的新的跨平台框架。尽管微软大推特推,但是似乎没能得到市场的广泛认可。
  • dbt-expectations。就像在构建流水线中的单元测试,dbt-expectations 在数据管道运行时进行断言。在 dbt 中,你可以直接编写 GreatExpectations 风格的测试对你的数据仓库数据质量测试。
  • Directus。一种无头内容管理系统(content management system,CMS)。
  • Ferrocene。近年来 Rust 语言因其安全性、性能和并发特性而越来越受欢迎,然而,在汽车等安全攸关市场仍缺少经过认证的 Rust 工具链。目前这个缺口正在由 Ferrocene 这一 Rust 编译器工具链所填补。
  • Flutter 嵌入式平台。Flutter 嵌入式平台使得创建和维护现代 UI(modern UI)变得相对容易,这种 UI 类似于移动应用程序却适用于嵌入式系统,如汽车、冰箱和其他消费类电器中的人机界面(HMI)。
  • Fugue。Fugue 是一个抽象层。它为分布式计算提供统一的接口,使得在 Spark、Dask、Ray 和 DuckDB 经过较少的修改就能运行 Python、pandas 和 SQL 代码。
  • Galacean Engine。Galacean Engine 是一个 Web 和移动优先的交互引擎,旨在提供一种无缝的方式,以移动友好的方式渲染基于组件的架构和动画。
  • LangChain。LangChain 是一个用于构建基于大型语言模型(LLMs)应用的框架。这些模型已经引起了一场生成式人工智能在各种场景下的竞赛。但是,单独使用这些 LLMs 可能是不够的——你必须将其与差异化的资产相结合去构建有影响力的产品。LangChain 提供了一些方便的功能去填补了模型和应用之间的裂痕,这些功能包括提示管理,组件链式连接,生成增强数据及丰富的用于确定执行动作和顺序的代理。
  • mljar-supervised。mljar-supervised 是一个 AutoML Python 包,协助理解和解释表格式数据。可以使用它进行自动探索性数据分析。为了找到最佳模型它抽象了如下常用方法:预处理数据、构建机器学习(ML)模型和执行超参数调整。可解释性和透明度是重要的原则,而这正是 mljar-supervised 的亮点。
  • nanoGPT。nanoGPT 是一个用于对中等规模的生成式预训练 Transformer(GPT)进行训练和调优的框架。其作者 Andrej Karpathy 基于注意力机制OpenAI 的 GPT-3 两篇论文的理论,使用 PyTorch 从零开始构建一个 GPT。在生成式人工智能火热的趋势下,我们想要强调 nanoGPT 的简洁性,并且注重对 GPT 架构的构建模块进行清晰呈现。
  • pandera。pandera 是一个 Python 库,用于测试和验证跨各种框架类型的数据,例如 pandas,Dask 或者 PySpark。pandera 可以实现关于字段的简单断言或基于统计模型的假设验证。
  • Qwik。Qwik 是一个新的前端框架,它通过序列化应用程序状态,使其可以在服务端 渲染而无需重新激活和重现程序的状态。这是通过“可恢复性”来实现的,应用程序的执行可以在服务器上暂停,并在需要时在客户端上恢复。
  • SolidJS。SolidJS 将其模板编译为真实的 DOM 节点(而不是使用虚拟 DOM),并通过细粒度的反应来更新它们,这减少了不必要的 DOM 更新,从而获得更快的性能和更好的用户体验。
  • Turborepo。Turborepo 是这个领域中的一个相对较新的工具,它为大型的 JavaScript 或 TypeScript 代码库提供了一种与Nx 或 Lerna 不同的选择。大型代码库的挑战之一是如何快速地执行构建,以使其不会中断开发者的流程或降低效率。Turborepo 是用 Rust 编写的,这使得它有不错的性能;它还采用递增构建和缓存中间步骤的方法,进一步加速构建过程。
  • WebXR 设备 API。在使用具有实验性的 WebVR API 时,明显可以发现将 VR 和 AR 合并到一个 API 中更加合理。为此,诞生了一个新的规范:WebXR,以避免大幅改变原有的 WebVR API。

暂缓