生成式AI的JavScript技术栈

news2024/10/1 23:38:57

如果不使用新的软件基础设施技术,就很难理解它们。 至少,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.coloradmin.cn/o/983504.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Blender 在影片剪辑上创建粘滞标签

推荐:使用 NSDT场景编辑器快速搭建3D应用场景 准备场景 步骤 1 在新文件中,右键单击默认立方体和灯光,然后按键盘上的 Del 将其删除。按住 Shift 键,然后右键单击以选择多个对象。 删除默认对象 步骤 2 选择摄像机并按 Alt-R …

问道管理:申购额度如何计算?

在投资领域,很多人会选择申购基金产品。对于大众投资者而言,申购额度是一个较为要害的问题。在此,我们将从多个角度进行剖析,具体解读申购额度怎么核算。 一、基金公司规则 首要,申购额度需要依照基金公司的规则来进行…

js 高精度计算 - decimal.js 库

what decimal.js ? decimal.js是一个用于进行精确数值计算的第三方库。通常情况下,当你需要进行对精度要求较高的数值计算时,可以考虑使用decimal.js或类似的库。 JavaScript中的原生Number类型使用双精度浮点数表示,对于某些计算…

torch.cuda.is_available() 解决方案

本人使用的显卡如下,打开任务管理器查看 Anaconda下载哪个版本都可以 使用命令conda create -n pytorch python3.6创建一个名为pytorch的环境,解释器使用3.6的 使用命令conda activate pytorch进入该环境 进入pytorch官网,选择下列选项 …

SPSS教程:手把手教你绘制簇状条形图

SPSS教程:手把手教你绘制簇状条形图 1、问题与数据 某研究者拟分析受教育程度和性别对幸福指数的影响程度,招募了58位研究对象,包括28位男性和30位女性。每一类性别中,研究对象的受教育程度均分为3类(高中及以下、大…

Spring原生api操作之如何在spring配置文件添加Bean对象到Spring容器

一、创建一个spring项目 为了使用Spring的原生api,首先要创建一个只基于Spring的项目. 创建maven项目引入spring依赖(不要使用6版本以上的,6的最低兼容jdk为jdk17)创建spring配置文件 这个配置文件的名称固定,但是必须…

935. 骑士拨号器

935. 骑士拨号器 原题链接:完成情况:解题思路:参考代码: 原题链接: 935. 骑士拨号器 https://leetcode.cn/problems/knight-dialer/description/ 完成情况: 解题思路: 题目要求:键…

网络技术二十:OSPF

OSPF RIP的缺陷 最大跳数限制了网络规模 以跳数为度量值无法准确判断最优路径 路由更新发送完整路由表消耗网络带宽 收敛速度慢 协议会产生路由自环 定义 开放式最短路径优先,基于链路状态特征 工作在IP层,协议号89 OSPF初始化流程 1.建立邻居和邻…

实现无公网IP的公网环境下Windows远程桌面Ubuntu 18.04连接,高效远程办公!

文章目录 一、 同个局域网内远程桌面Ubuntu1. 更新软件仓库2. 安装支持包3. 安装XFCE4桌面环境4. 安装XRDP5. 环境设置5.1 XFCE桌面配置5.2 在配置文件中,加入XFCE会话 6 重启服务7. 查看IP地址8. 使用Windows远程桌面连接 二、公网环境系统远程桌面Ubuntu1. 注册cp…

解锁前端Vue3宝藏级资料 第一章 带你深入了解Vue3项目创建 1 (Vue CLI 创建vue项目)

Vue.js是一款广受欢迎的JavaScript框架,专为创建网站、web应用程序和管理系统等前端用户界面(UI)设计。其流行不仅因为它拥有庞大的开发者社区和丰富的学习资源,还因为它具有低学习成本和易于上手的特点。当你在使用中遇到疑问或困难时,可以轻…

漏洞修复-SSH版本信息可被获取漏洞

漏洞修复-SSH版本信息可被获取漏洞 1、背景2、环境3、思路4、实操 1、背景 新分配下来的云服务,在没有投入生产环境之前,漏扫和安全防固是两项基本工作。云安全产品扫描过后导出的漏洞信息如下: 漏洞详情: 威胁分值 &#xff1…

pg分组过滤

方法: 注意: 出现多个字段,必须要在group by中添加分组依据。或者聚合函数不用 where过滤分组前的,having过滤分组后的,count是分组后产生的

外汇MT4实战技巧:利用挂单和追踪止损提升交易效果

外汇交易是一项高风险的投资活动,需要交易者具备良好的市场分析能力和实战经验。对于MT4(可在mtw.so/6gwPno这点下)交易平台的使用者来说,掌握挂单和追踪止损这两种实战技巧可以有效提升交易效果。本文将为您详细介绍这两种技巧的…

Ivanti Sentry 身份验证绕过漏洞 CVE-2023-38035

Ivanti Sentry 身份验证绕过漏洞 CVE-2023-38035 最近,网络上披露了Ivanti Sentry(以前称为MobileIron Sentry)中发现的漏洞。此漏洞影响版本为 9.18 及更早版本。此漏洞不会影响其他 Ivanti 产品,例如 Ivanti EPMM 或 Ivanti Ne…

LabelImg标注快捷键

LabelImg标注快捷键 由于吃了屎的原因,在标注数据 其实快捷键都有显示 保存标注文件:ctrls A:切换到上一张图片 D:切换到下一张图片 W:调出标注十字架 del :删除标注框框 Ctrlu:选择标注的图…

代码随想录笔记--回溯算法篇

1--回溯算法理论基础 回溯算法本质上是一个暴力搜索的过程,其常用于解决组合、切割、子集、排列等问题,其一般模板如下: void backTracking(参数){if(终止条件){// 1. 收获结果;// 2. return;}for(..遍历){// 1. 处理节点// 2. 递归搜索// 3.…

异地远程访问内网BUG管理系统【Cpolar内网穿透】

文章目录 前言1. 本地安装配置BUG管理系统2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射本地服务3. 测试公网远程访问4. 配置固定二级子域名4.1 保留一个二级子域名5.1 配置二级子域名6. 使用固定二级子域名远程 前言 BUG管理软件,作为软件测试工程师的必备工具之一。在…

前端组件库造轮子——Message组件开发教程

前端组件库造轮子——Message组件开发教程 前言 本系列旨在记录前端组件库开发经验,我们的组件库项目目前已在Github开源,下面是项目的部分组件。文章会详细介绍一些造组件库轮子的技巧并且最后会给出完整的演示demo。 文章旨在总结经验,开…

Linux修复软RAID

系统应该将mdadm配置成当发生RAID问题时给root用户发送邮件。需要更改/etc/mdadm/mdadm.xonf里的MALLADDR 并用/etc/init.d/mdadm reload重新加载下 查看/proc/mdstat文件 可以看到sdd1被标记F,说明它已经失效 从/dev/md0中移除磁盘sdd1 想要移除磁盘&#xff…

vmware workstation设置固定ip的几种方法

环境: keyvalue宿主机系统Windows11虚拟机系统Ubuntu20.04虚拟化软件vmware workstation 17 provmware workstation网络模式NAT 众所周知,vmware workstation在NAT模式下,会使用dhcp分配ip,每个ip的默认租约是半小时(1800s),最大租约时间也只有2小时(7200s),所以ip会频繁变动…