当前位置: 首页 > news >正文

生成式AI的JavScript技术栈

如果不使用新的软件基础设施技术,就很难理解它们。 至少,a16z 基础设施团队发现了这一点,而且因为我们中的许多人都是以程序员的身份开始职业生涯的,所以我们经常通过实践来学习。 尤其是生成式AI浪潮的情况尤其如此,它来得如此之快、如此引人注目,以至于良好的文档往往落后于代码几个月。 因此,为了更好地了解这个领域,我们一直围绕大型语言模型 (LLM)、大型图像模型、矢量数据库等构建项目。

在这样做的过程中,我们注意到,由于所有这些都是如此新,并且变化如此之快,所以确实没有好的框架可以快速入门。 每个项目都需要一堆样板代码和集成。 坦白说,这是一种痛苦。 因此,我们着手为那些想要尝试核心技术但又不想过多考虑诸如身份验证、托管和工具等辅助问题的人创建一个非常简单的“AI入门”模板 选择。

你可以在此处分叉并部署模板。 我们很乐意听到你的想法和反馈,以使模板变得更好。

在这里插入图片描述

推荐:用 NSDT编辑器 快速搭建可编程3D场景

1、组件

我们中的许多人都是 JavaScript/TypeScript 爱好者,因此我们选择 JavaScript 堆栈作为我们的起点。 尽管如此,这个框架可以很容易地修改以支持其他语言,我们计划很快就这样做。

以下是我们与长期合作者和开源爱好者 Tim Qi 共同构建的入门堆栈的简要概述。 目标是强调从 GitHub 上提取代码到运行生成式 AI 应用程序(图像和文本)的最简单路径。 它的设计目的是可以轻松扩展到更复杂的架构和项目:

  • 身份验证:Clerk
  • 应用逻辑:Next.js
  • 矢量数据库:Pinecone / Supabase pgvector
  • LLM编排:Langchain.js
  • 图像模型:Replicate
  • 文本模型:OpenAI
  • 部署:Fly.io

有关新兴LLM栈的更详细概述,请查看我们之前的文章“LLM应用程序的新兴架构”。

2、模型与推理

模型托管是一件痛苦的事情,而且很大程度上是构建应用程序的正交问题。 因此,我们使用 OpenAI 进行文本构建,使用 Replicate 进行图像推理。 Replicate 还提供基于文本的模型(查看运行 Vicuna 是多么容易),因此你可以根据需要使用它代替 OpenAI。

在这里插入图片描述

3、身份验证

对于入门框架,我们通常不会费心包含 auth。 但是,在这种情况下,这些模型是如此强大和通用,以至于它们成为旨在获得免费使用的大规模、有组织的努力的目标。 当他们的模型提供商意外地收到 10,000 美元的账单时,开发人员通常会经历惨痛的教训。 这就是为什么我们选择包含 Clerk,它负责机器人检测的繁重工作,当然,如果你最终构建更复杂的应用程序,它还提供完整的身份验证支持。
在这里插入图片描述

4、矢量数据库

LLM 需要可靠的长期记忆来保存状态并围绕上下文窗口工作; 这是由矢量数据库处理的。 目前,Pinecone 是最成熟、最受生成 AI 人群欢迎的矢量存储库。 也就是说,我们希望为所有用例和首选项提供支持,因此我们还在存储库中包含了对 Supabase 的 pg-vector 的支持。
在这里插入图片描述

5、部署

对于部署,我们使用 Fly.io,因为它是多区域的,易于管理,并提供非常通用的计算环境(在容器中运行的任何东西)。

随着时间的推移,许多人工智能项目最终会使用多种语言,并且可能在后端需要实现重要的功能,因此 Fly.io 是 Vercel 或 Netlify 等 JavaScript 原生托管环境与传统云之间的良好折衷方案。 也就是说,如果你愿意的话,该代码可以轻松支持其他托管环境。 Fly.io 很快还将为你想要托管自己的模型的情况提供 GPU。

6、路线图

尽管我们认为第一次迭代是一个很好的起点,但我们正在用更多选项充实技术栈。 以下是我们的路线图:

  • 用于 create-ai-stack 的交互式 CLI,开发人员可以在其中选择自己的项目支架和依赖项
  • 用于高级用例的事务数据库(例如,保留问答中的问题、用户偏好等)
  • 矢量数据库和部署平台的更多选项
  • 开源模型的轻量级微调步骤

原文链接:生成式AI的JS技术栈 — BimAnt

http://www.lryc.cn/news/159302.html

相关文章:

  • 从零开始学习软件测试-第39天笔记
  • 【多思路附源码】2023高教社杯 国赛数学建模C题思路 - 蔬菜类商品的自动定价与补货决策
  • Vue2+Vue3基础入门到实战项目(六)——课程学习笔记
  • QT—基于http协议的网络文件下载
  • SpringBoot-配置优先级
  • 科普初步了解大模型
  • Nginx 和 网关的关系是什么
  • 解决springboot项目中的groupId、package或路径的混淆问题
  • Vmware 网络恢复断网和连接
  • 学生来看!如何白嫖内网穿透?点进来!
  • C++中的stack和queue
  • Ubuntu-22.04通过RDP协议连接远程桌面
  • 20230908java面经整理
  • uniapp 开发App 网络异常如何处理
  • docker安装常用软件
  • CocosCreator3.8研究笔记(五)CocosCreator 脚本说明及使用(下)
  • Adobe Acrobat Reader界面改版 - 解决方案
  • 实用调试技巧(2)
  • 海外ASO优化之如何优化游戏应用
  • SpringMVC: Java Web应用开发的框架之选
  • 【华为设备升级】AR路由器升级设备软件示例
  • Dataset 的一些 Java api 操作
  • Vue + Element UI 前端篇(十一):第三方图标库
  • HDFS:Hadoop文件系统(HDFS)
  • SpringMvc--综合案例
  • 工业4.0时代生产系统对接集成优势,MES和ERP专业一体化管理-亿发
  • IT运维监控系统和网络运维一样吗
  • c语言flag的使用
  • docker push image harbor http 镜像
  • 羊城杯2023 部分wp