下面是来自transformers.js的作者的技能共享视频:Transformers.js:Web 上的最新机器学习技能

第二篇:Transformers.js:Web 上的最新机器学习技能(2)

前言

本文介绍Hugging Face是怎么将其AI生态系统引入到Web中的。通过transformers.js,您能够直接在阅读器中运转Hugging Face的transfrmers模型。

介绍

什么是Transformers.js

简略介绍一下什么是transformers.js,transformers.js是一个库,提供了在JavaScript中运转先进预练习模型的高级笼统。这意味着任何人都能够轻松地将机器学习功用添加到他们的Web运用程序中。

Transformers.js:Web 上的最新机器学习技能(1)

并且咱们还有一个了不得的开源社区,汇集了来自世界各地真正看到Web上机器学习潜力的人。在NPM上星期下载量也达到了15万次。迄今为止人们已经用它创造了举世瞩目的成就。通过这个库只有几个月的前史,可是咱们已经支撑了对50多种最流行的模型架构。

Transformers.js:Web 上的最新机器学习技能(1)

为什么要在Web上运转

为什么HuggingFace要探索WebML技能呢,答案能够在HuggingFace的使命中找到:让优异的机器学习走向群众。咱们知道HuggingFace上有大量的库,可是这些库都是Python完成的,这意味着大部分Web开发者不容易运用他们。因此Transformers.js的目标就是降低Web开发者的运用门槛。这个库还旨在帮助开发者构建前所未见的Web运用,这将在稍后进行展现。提到软件分发,Web真的是一骑绝尘,如今一旦有新模型或许运用推出,人们首要看到的都是Web Demo。无干扰,免装置,我相信没人会不喜欢。

它是怎么作业的呢

那么它是怎么作业的呢,用户能够运用HuggingFace的Optimum库,将他们的pytorch、tensorflow或许JAX模型转换为ONNX模型。当然假如想直接运用预转换的模型,能够越过这一步,直接运用HuggingFace上的模型。

Transformers.js:Web 上的最新机器学习技能(1)

接下来编写JavaScript代码,最简略办法是运用popeline函数,正如前面提到的,这个函数把机器学习背面的许多杂乱任务笼统化了,用户不必关系怎么完成,就能够完成任务。

假如用户期望对整个进程有更精密的控制,能够运用揭露的Model、Tokenizer、Processsor类以及其他相关函数。最终,打开阅读器运转项目,就这么简略。

运用

下面咱们再来看看运用Transformers.js构建的运用程序,首要是BlindChat,一个根据阅读器的ChatGPT版别,运用的模型是通过指令微调的FLAN-T5版别,能力或许不如ChatGPT强大,但仍然能担任一些作业。

Transformers.js:Web 上的最新机器学习技能(1)

来看个比方,问一下:“什么是爱情?”,这些对话都将只在本设备上发生,第一次运转时,阅读器将会下载并缓存模型,能够看到效果还算不错。

Transformers.js:Web 上的最新机器学习技能(1)

我看了一下,大概会下载800MB左右的小模型,如同这个模型不支撑中文,用中文提问就不能正常答复了。

虽然有一些提问无法答复,可是这个项目旨在演示根据阅读器的机器学习的隐私优势,由于没有任何数据被传输到其他地方。能够幻想将相似的运用布置为阅读器拓展,充当您阅读Web时的个人助理,这样您就无需忧虑敏感数据(比方银行卡和付出密码)走漏到某个服务器。跟着模型越来越小越来越强大,我相信很快就能见到相似的运用了。

除了对话式AI,咱们还要为特定用例进行微调的模型示例,比方代码生成。即使是相对较小的3亿参数模型,也能发生高质量的代码,

项目演示地址:huggingface.co/spaces/Xeno… 右键-generate,生成代码。默许的模型大概300MB

Transformers.js:Web 上的最新机器学习技能(1)

另一个运用十大言语模型的比方是对言语翻译和转换器,transformers.js也支撑这个功用,比方这个比方,运用的是一个600亿参数的模型,通过200多种不同言语的练习。

Transformers.js:Web 上的最新机器学习技能(1)

项目演示地址:huggingface.co/spaces/Xeno… 如同翻译成中文不是那么精确,hhhh

下一个比方是语音转文本的比方:Whisper Web

Transformers.js:Web 上的最新机器学习技能(1)

你能够从URL加载、从本地加载或许运用麦克风录制,一旦音频加载结束,点击Transcribe Audio,即可开始转录,您能够导出为txt或许json。你也能够挑选其他的模型,假如你的带宽比较小,也能够挑选一个量化版别。即使是量化版的小模型,只有40MB左右,也能产出高质量的转录文本。Whisper Web还支撑多言语转录和翻译,这意味着能够挑选大于100种不同言语进行转录或许翻译成英语。

这个比方强调了在设备上运用机器学习处理敏感数据的重要性,比方麦克风或许摄像头输入。很多情况下用户不期望将他们的语音录音发送到服务器,他们更期望只在他们自己的设备上进行处理。

另一个有趣的运用是语义图画查找,在这个比方中,用户会下载一个包含25000个编排的嵌入式数据库,大小大概在50MB左右。加载完成后,就能够用自然言语查找图画,比方查找一下cat

Transformers.js:Web 上的最新机器学习技能(1)

或许咱们查找一下更具象化的,比方叼着棍子的狗:

Transformers.js:Web 上的最新机器学习技能(1)

有意思的是,加载完模型和数据库后,文本核算只需要大概50毫秒,即可在25000张图画中进行相似性查找,这没有运用任何酷炫的向量数据库,仅仅一般的JavaScript代码。

最终一个案例,doodle-dash (不知道怎么翻译了,涂鸦冲鸭?哈哈哈哈) , 这是一个实时的ML驱动的网页游戏,彻底在阅读器中运转,感谢Transformers.js。游戏创意来源于谷歌的 Quick,Draw ,你根据一个单词进行涂鸦,神经网络有20秒的时刻来猜测你在画什么。事实上,咱们运用了他们的练习数据来练习咱们的轻量级草图检测模型。

Transformers.js:Web 上的最新机器学习技能(1)

由于检测是在阅读器实时运转,所以底子不用忧虑网络或许服务器推迟。

上面展现的比方都是开源的,并且有demo网站进行体会

Name Description Links
Whisper Web Speech recognition w/ Whisper code,demo
Doodle Dash Real-time sketch-recognition game blog,code,demo
Code Playground In-browser code completion website code,demo
Semantic Image Search (client-side) Search for images with text code,demo
Semantic Image Search (server-side) Search for images with text (Supabase) code,demo
Vanilla JavaScript In-browser object detection video,code,demo
React Multilingual translation website code,demo
Text to speech (client-side) In-browser speech synthesis code,demo
Browser extension Text classification extension code
Electron Text classification application code
Next.js (client-side) Sentiment analysis (in-browser inference) code,demo
Next.js (server-side) Sentiment analysis (Node.js inference) code,demo
Node.js Sentiment analysis API code

下一章就开始讲解怎么运用这个结构构建咱们自己的ai网站。Transformers.js:Web 上的最新机器学习技能(2)