什么是端模型呢,允许开发者在本地浏览器中直接运行Transformers模型的模型就叫做端模型,Hugging Face的Transformers.js是一个JavaScript库,无需服务器支持。这个库使得在Web端实现先进的机器学习功能变得简单,例如自动语音识别、物体检测等。
Transformer.js 简介
Transformer.js 是一个开源的 JavaScript 库,它使得在浏览器中运行基于 Transformer 架构的预训练模型成为可能。这些模型通常用于自然语言处理(NLP)任务,如文本分类、情感分析、命名实体识别等。
开发示例
端模型在web端的开发相较于大模型来说便捷了不少,仅凭几句代码就可以直接把Transformer模型调用在本地浏览器上使用了.
简单代码示例:
注意:需要翻墙,要不然下载不了
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script type="module">
import {
pipeline, // pipe 模块,派出一个任务
env // 环境
} from 'https://cdn.jsdmirror.com/npm/@xenova/transformers@2.6.0'
env.allowLocalModels = false; //不要加载本地大模型
let pipe = await pipeline('sentiment-analysis'); // 分类 download LLM
let result = await pipe('I love transformers');
console.log(result);
let result2 = await pipe('I hate Trumps')
console.log(result2);
</script>
</body>
</html>
这是一个情感分析大模型,它会根据你说的话来分析你当前的心情,然后打分。
当然,在实际开发的时候,由于大模型的下载需要很长时间,所以应该使用JS的Web Worker新开一个线程来执行大模型的下载。
优点
端模型对比现在流行的大模型有一些特点
-
效率和可扩展性
- 计算效率:较小的Transformer模型通常需要更少的计算资源,可以在更短的时间内进行训练和推理。
- 可扩展性:Transformer架构易于扩展,可以根据需求调整模型的大小和复杂性。
-
特定任务的性能
- 针对性优化:较小的Transformer模型可以针对特定任务进行优化,可能在某些专业领域或特定数据集上表现更好。
- 较少过拟合:在数据量有限的情况下,较小的模型可能更不容易过拟合。
-
可解释性和透明度
- 更易于分析:较小的Transformer模型可能更容易分析其决策过程,提供更好的可解释性。
-
部署和维护
- 易于部署:较小的模型更容易部署到不同的环境中,包括资源受限的设备。
- 维护成本低:较小的模型在维护和更新方面通常成本更低。
-
数据隐私
- 减少数据传输:在需要保护用户隐私的场景中,本地运行的较小Transformer模型可以减少数据传输,降低泄露风险。
-
创新和研究
- 实验灵活性:较小的模型为研究者提供了更多的实验灵活性,可以更容易地进行原型设计和实验。
-
直接在浏览器中运行:Transformers.js允许开发者直接在浏览器中使用Hugging Face的Transformers模型。
-
多种功能:支持自动语音识别、物体检测等任务。例如,可以创建自动语音识别流水线,将音频文件转换为文本。
-
易于集成和使用:通过简单的几行代码,就可以在网页中实现复杂的机器学习功能。
-
适用于Web端和PWA应用:适用于Web端和渐进式Web应用,无需用户安装任何软件。
-
浏览器插件:可用于开发浏览器插件,实现自然语言处理等功能。
好了,我本次就分享到这里了