做网站即墨,用仿网站做优化有效果吗,中国建筑工业出版社,做个公司网站一般需要多少钱除了调用别人的api接口使用transformer技术#xff0c;你是否想过将大模型在浏览器中运行呢#xff1f;尤其是WebGPU的出现#xff0c;性能比WebGL高不少#xff0c;很多小任务真的不再需要在一个中心运行了。 不少同学买课学python了#xff0c;但我还是在坚持用js尝试你是否想过将大模型在浏览器中运行呢尤其是WebGPU的出现性能比WebGL高不少很多小任务真的不再需要在一个中心运行了。 不少同学买课学python了但我还是在坚持用js尝试相信一切都可以用js实现的下面就介绍下我是如何实现的吧~~ 随着人工智能和深度学习的普及越来越多的应用开始借助强大的预训练模型来处理文本、图像等数据。然而大多数这类模型需要依赖于云端服务器用户端必须通过网络调用后端的API这不仅带来了延迟问题还可能引发隐私和数据安全的担忧。为了解决这些挑战Xenova 团队推出了 Transformer.js一个基于 JavaScript 的库让开发者可以在浏览器中本地加载和执行预训练模型摆脱服务器的依赖。
前置知识和准备
javascript 相关的web知识创建一个html文件引入库
!DOCTYPE html
html langenheadmeta charsetUTF-8title网页大模型/title
/head
bodydiv idappdiv idzh/divdiv iden/divdiv idinfo/div/divscript typemoduleimport { pipeline, env } from https://cdn.jsdelivr.net/npm/xenova/transformers2.17.2/dist/transformers.min.js;// 后续的代码在这里
/script
/body
/html国内HF模型镜像站 如果有代理可忽略
env.remoteHost https://hf-mirror.com
什么是 Transformer.js
Transformer.js 是 Xenova 团队开发的一个 JavaScript 库旨在让用户能够在浏览器或 Node.js 环境中运行 Transformer 模型而不需要依赖于后端服务器。这个库的核心功能是使用 WebAssemblyWasm和 WebGPU 等技术将复杂的深度学习任务本地化执行。
Transformer.js 支持的模型涵盖了 Hugging Face 的 Transformers 模型库包括 GPT、BERT、T5 等广泛应用于自然语言处理任务如文本生成、情感分析、翻译等。 Transformer是一种架构现在很多模型包括大语言模型大都基于此构建这里就不展开了感兴趣的可以看相关论文尤其是Attention is all you need。 Xenova系列
Xenova 的核心目标是让机器学习技术更加普及且易于访问。他们的愿景是通过提供开源工具让每个人都能在任意设备上高效使用 AI 模型甚至无需依赖强大的后端服务器。Transformer.js 便是这个愿景的关键实现用户能够直接在浏览器中使用这些强大的 Transformer 模型。
欢迎pr构建生态因为它是ONNX Runtime 的web/node端实现所以PyTorch, TensorFlow, JAX 等构建的模型都可以转化成onnx的想要构建自己的模型参考下面的github仓库说明xenova/transformers.js: State-of-the-art Machine Learning for the web. Run Transformers directly in your browser, with no need for a server! (github.com)https://github.com/xenova/transformers.js
Transformer.js 的主要特点
1. 无后端依赖
Transformer.js 使用户可以在浏览器中本地运行 Transformer 模型不再依赖服务器端的推理服务。所有的计算都在客户端完成既减少了延迟又消除了数据传输的隐私隐患。
2. 模型加载和使用便捷
通过简单的几行代码开发者可以加载和使用 Hugging Face Transformers 模型。例如以下代码展示了加载一个中文转英文模型
// 定义要使用的模型和任务类型 const task text-classification;const model Xenova/opus-mt-zh-en;const infoEl document.getElementById(info);const pipe pipeline(text2text-generation, model, {progress_callback: d{infoEl.innerHTML JSON.stringify(d);},});
然后我们调用这个定义好的管道 const zhEl document.getElementById(zh);const enEl document.getElementById(en);const app document.getElementById(app);const start Date.now();async function main() {const zh 你好吗;zhEl.innerHTML 中文${zh};const transfer1 await pipe;const res1 await transfer1(zh);const en res1[0].generated_text;enEl.innerHTML 英文 en;infoEl.innerHTML 耗时${Date.now() - start}ms;}main();
右键html文件选择打开方式-chrome首次打开需要等待模型加载后续就不用了可以试试别的中文测试下效果 3. 跨平台支持 - WebNodejs
Transformer.js 在浏览器和 Node.js 环境中都可以无缝运行适用于各种设备和操作系统。同时借助 WebAssemblyTransformer.js 可以在大多数现代浏览器中提供原生般的性能表现。
4. 性能优化
通过使用 WebAssembly 和 WebGPUTransformer.js 能够显著提高模型推理的速度尤其是在具有高性能图形处理单元GPU的设备上。相比传统的 JavaScript 数学库它能够更高效地执行深度学习模型。
5. 开源与社区支持
Transformer.js 是一个完全开源的项目任何人都可以参与贡献或者在项目的 GitHub 仓库中提出问题。Xenova 致力于维护活跃的开发者社区不断优化和扩展该项目。
Transformer.js 的应用场景
由于 Transformer.js 使得模型推理可以完全在客户端完成因此它非常适合以下应用场景
1. 隐私保护
在一些敏感应用中如医疗数据处理或个人隐私数据的分析用户的数据无需发送到服务器端进行处理而是直接在本地完成推理减少数据泄露的风险。
2. 离线应用
许多应用在没有网络连接的情况下仍然需要处理任务比如离线聊天机器人、离线翻译工具等。Transformer.js 使得这些离线应用的实现变得更加简单和高效。
3. 低延迟交互
通过消除与服务器的往返延迟Transformer.js 能够提供实时的推理结果。例如用户可以在网页上直接使用实时的文本生成或情感分析功能而不会因为网络延迟而影响体验。
4. 教育与研究
学生和研究人员可以使用 Transformer.js 在本地实验机器学习模型无需租用昂贵的云计算资源也不必担心学习过程中的数据外泄问题。
Transformer.js 与 TensorFlow.js 的对比
随着浏览器端机器学习技术的不断发展多个工具库应运而生。Transformer.js 和 TensorFlow.js 是其中两个重要的框架它们都旨在让开发者能够在浏览器或客户端上运行机器学习模型。虽然二者的目标有相似之处但在设计思路、使用场景和技术实现上却有显著差异。以下章节将对 Transformer.js 和 TensorFlow.js 进行详细对比帮助开发者根据具体需求选择适合的工具。
方面Transformer.jsTensorFlow.js主要用途自然语言处理 (NLP) 推理通用机器学习任务推理与训练支持模型Transformer 模型GPT、BERT、T5 等各类神经网络模型CNN、RNN、强化学习等推理与训练能力仅支持推理支持推理和训练计算加速WebAssembly, WebGPUWebGL, Wasm, WebGPU生态支持紧密集成 Hugging Face丰富的社区与官方支持支持 TensorFlow 生态学习曲线简单易用适合 NLP 应用较为复杂适合广泛的机器学习任务
Transformer.js 更适合专注于 NLP 推理的场景而 TensorFlow.js 则是一个通用性更强的框架适合涉及不同领域的机器学习任务以及模型训练的需求。根据具体的项目需求和开发者的熟悉程度选择合适的工具将帮助更高效地实现目标。
未来发展方向-端云结合
随着浏览器技术的不断进步如 WebGPU 的广泛应用Transformer.js 的性能和适用范围将进一步提升。Xenova 计划在未来添加更多预训练模型的支持并优化其在移动设备等低性能环境下的表现。同时随着 JavaScript 生态的持续扩展Transformer.js 有潜力成为构建浏览器端 AI 应用的核心工具之一。
正如我在最新llama3.2小参数版本1B的古董机测试中说的那样端云结合才是趋势。
结论
Transformer.js 通过让 Transformer 模型直接在浏览器或 Node.js 环境中运行解决了传统机器学习应用中的许多痛点。无论是出于隐私保护、实时性需求还是离线应用的需求Transformer.js 都为开发者提供了新的可能性 后续会出应用类的文章切记住本文的那一定点内容后续的大模型进阶基本上都是基于这个库也默认你配置了国内镜像源