评论

在边缘计算中使用小型语言模型(SLM)实现高效资源管理

作者 | Suruchi Shah

译者 | 王强

策划 | Tina

要点

  • 小型语言模型(SLM)将 AI 推理能力带到了边缘场景,而不会让资源受限的设备不堪重负。

  • SLM 可用于实时学习和适应各种模式,减轻计算负担,并使边缘设备更智能。

  • 量化和修剪等技术使语言模型更快、更轻便。

  • 谷歌 Edge TPU 旨在直接在边缘设备上执行高效 AI 推理任务;这是一个很好的研究案例,可以探索修剪和稀疏技术如何优化资源管理。

  • 用于资源管理的 SLM 未来发展方向包括物联网传感器网络、智能家居设备、工业自动化的边缘网关和智能医疗设备。

在我们这个高度互联的世界里,从冰箱到健身追踪器,一切设备都在争夺带宽份额,而边缘计算是让这些设备顺利运行的无名英雄。可以把它想象成街区里最酷的孩子,在数据生成的地方处理数据,而不是把所有东西都拖回云端。这意味着更快的决策、更少的带宽占用和一点不错的隐私提升——非常适合从智能工厂到智能恒温器的一切场景。

但问题在于:边缘设备通常在处理能力、内存和能耗方面受到严 格约束。这就引出了 小型语言模型(SLM)这个概念,可以用很高的效率解决问题。这些灵活的小模型可以将人工智能推理能力带到边缘场景,而不会让这些资源受限的设备不堪重负。

在本文中,我们将深入探讨 SLM 如何发挥自身魔力,实时学习和适应各种模式、减少计算负担以及让边缘设备更加智能,同时不需要投入太多资源。

资源受限边缘环境中的挑战

边缘计算设备(如物联网传感器和智能小工具)的硬件功能通常是受限的:

  1. 有限的处理能力:许多设备由低端 CPU 或微控制器驱动,难以执行偏重计算的任务。

  2. 内存受限:使用最少的 RAM 来存储“大型”AI 模型?不可能。

  3. 能源效率:电池供电的物联网设备需要高效的能源管理,以确保设备能长时间运行而无需频繁充电或更换电池。

  4. 网络带宽限制:许多设备依赖间歇性或低带宽网络连接,这使得设备与云服务器的持续通信效率低下或不切实际。

大多数 AI 模型对于这些设备来说太大且过于耗电。这就是 SLM 的意义所在。

小型语言模型(SLM)

如何优化资源效率

轻量级架构

SLM 可以看作是 GPT-3 或 GPT-4 等大型模型的精简版。由于参数更少(例如,DistilBERT 的负担比 BERT 少 40%),所以它们足够小,可以轻松塞进内存受限的设备中,同时保留了大部分性能。

压缩魔法

量化(想想将权重降低到低精度整数来减少计算负荷)和修剪(削减无用权重)等技术使它们更快、更轻。结果,即使在只有翻盖手机计算能力的设备上,推理时间也更快,功耗更低。

量化

在应用量化技术的情况下,模型内存占用量会大大减少。例如,Mistral 7B 的量化版本在 NVIDIA RTX 6000 等强大硬件上以每秒 240 个 token 的速度生成 token 时,可能仅消耗 1.5GB 内存(企业技术新闻与分析)。这使得它适用于需要低延迟处理的边缘设备和实时应用程序。

注意:对 LLaMA3 和 Mistral 的研究表明,量化后的模型在 NLP 和视觉任务中仍有着良好的表现,但必须仔细选择用于量化的精度以避免性能下降。例如,当 LLaMA3 量化为 2-4 位时,在需要长上下文理解或详细语言建模的任务中显示出了明显的性能差距[Papers with Code],但它在更直接的任务(如问答和基本对话系统[Hugging Face])中表现出色。整体来说,业内并没有关于如何进行完美量化的定义明确的决策树,它需要使用特定的用例数据进行实验。

修剪

修剪方法包括非结构化修剪(删除单个权重)和结构化修剪(消除整个神经元或层)。结构化修剪尤其有助于提高模型效率和计算速度,正如谷歌的 BERT-Large 所见,其中 90% 的网络可以被修剪,同时损失最小的精度(Neural Magic - Software - Delivered AI)。

修剪后的模型与量化模型一样,可以提供更快的速度和更高的能效。例如,PruneBERT 在保持原有精率的 93% 左右的同时,将权重减少了 97%,显著加快了推理时间(Neural Magic - Software - Delivered AI)。与量化类似,修剪方法也需要仔细调整,以避免删除模型的基本组件,尤其是在自然语言处理等复杂任务中。

模式适配器

模式适配器的实践证据

  1. 动态神经网络:对 动态网络的研究表明,只要基于输入复杂性来选择性激活模型层,就可以将能耗降低高达 50%。(来源:《动态神经网络:一项调查》(2021 年))

  2. TinyML 基准测试:MLPerf Tiny 基准测试 重点介绍了功耗感知模型如何使用模式重用和自适应处理等技术来显著减少微控制器上 AI 模型的能耗(ar5iv)。模型可以利用之前计算的结果,避免重新计算冗余数据,并延长智能安全摄像头或可穿戴健康监测器等设备的电池寿命。

  3. 物联网应用:Nest 恒温器是模式适应的一个典型例子,它可以学习用户行为并在本地调整温度设置。它通过尽可能减少云交互来优化能源消费,而不会牺牲响应能力。SLM 还可以根据用户交互的频率自适应地调整其学习率,从而进一步优化其功耗。这种本地学习能力使其成为智能家居和工业物联网设备的理想选择(这些设备需要持续适应不断变化的环境),而节省了持续访问云资源所需的能源成本。

模式适配器的实践证据:谷歌 Edge TPU 的实际应用

准备条件:确保安装了 Python 3.7 或更高版本、TensorFlow 2.x、TensorFlow 模型优化 工具包 和 Edge TPU API。说明可在各自的文档页面上找到。

步骤 1:模型修剪和量化

我们首先使用 TensorFlow Lite 修剪和量化预训练的 MobileNetV2 模型。MobileNetV2 因其轻量级架构而非常适合边缘设备。

importtensorflow astf fromtensorflow_model_optimization.sparsity.keras importprune_low_magnitude fromtensorflow_model_optimization.sparsity.keras importstrip_pruning

# Load the pre-trained MobileNetV2 modelmodel = tf.keras.applications.MobileNetV2(weights= "imagenet", include_top= True)

# Define the pruning schedulepruning_params = {'pruning_schedule': tf.keras.experimental.PruningSchedule.ConstantSparsity( 0.50, begin_step= 0) }

# Apply pruning to the modelpruned_model = prune_low_magnitude(model, **pruning_params)

# Compile the pruned modelpruned_model.compile(optimizer= 'adam', loss= 'categorical_crossentropy', metrics=[ 'accuracy'])

# Fine-tune the pruned model with data to retain accuracypruned_model.fit(train_data, epochs= 10)

# Strip the pruning wrappers for deploymentfinal_model = strip_pruning(pruned_model)

修剪完成后,模型会显著减小,使其更容易适应边缘设备的内存限制。现在,我们继续进行量化以进一步优化。

# Convert the model to TensorFlow Lite format and apply quantizationconverter = tf.lite.TFLiteConverter.from_keras_model(final_model)converter.optimizations = [tf.lite.Optimize.DEFAULT]quantized_model = converter.convert

# Save the quantized modelwith open( "mobilenet_v2_pruned_quantized.tflite", "wb") as f: f.write(quantized_model)

第 2 步:将量化模型部署到 Edge TPU

量化后,我们可以使用 Edge TPU 运行时将此模型部署到谷歌 Edge TPU。这个推理引擎可以高效运行模型,并且延迟和功耗更低。

首先,使用 Edge TPU 编译器编译模型:

edgetpu_compilermobilenet_v2_pruned_quantized.tflite

现在,我们可以使用 Python 和 Edge TPU API 运行推理:

import numpy as npfrom tflite_runtime.interpreter import Interpreterfrom pycoral.utils.edgetpu import make_interpreter

# Load the compiled modelinterpreter = make _interpreter('mobilenet_v2 _pruned_quantized_edgetpu.tflite') interpreter.allocate_tensors

# Load an image for testingdef preprocess _image(image_path): img = Image.open(image_path).resize((224, 224))return np.array(img, dtype=np.float32)

image = preprocess _image('defective_part.jpg')

# Perform inferenceinput _details = interpreter.get_input_details output _details = interpreter.get_output_details

interpreter.set _tensor(input_details[ 0][ 'index'], [image]) interpreter.invoke

# Get the outputoutput = interpreter.get _tensor(output_details[ 0][ 'index']) print("Inference result:", output)

在这个案例中,经过量化和修剪的 MobileNetV2 运行在 Edge TPU 上,高效地分类图像,同时使用最少的功率和内存资源。这使我们可以在智能工厂的多个设备上部署类似的 AI 模型,而无需持续的云连接或过多的能源消耗。

节能和带宽优化

通过直接在边缘部署此类优化模型,智能工厂的系统就能减少对云服务的依赖,从而减少延迟和带宽使用量。设备仅向云端发送关键警报(例如检测到缺陷时的通知),从而节省带宽并降低运营成本。

分类结果(缺陷部件检测的示例输出):

Inference result:[ { "class": "Defective Part", "confidence": 0.92}, { "class": "Non-Defective Part", "confidence": 0.05}, { "class": "Unknown", "confidence": 0.03} ]

关键指标:

  • 修剪率:50% 稀疏度(移除 50% 的权重)

  • 模型尺寸减小:修剪和量化后减小约 60%

  • 延迟:Edge TPU 上的推理时间从 150 毫秒缩短至 40 毫秒

  • 能耗:与未优化模型相比降低 30%

用于资源管理的

SLM 的未来方向

物联网传感器网络

部署在物联网传感器网络中的 SLM 可以通过预测激活模式和更智能地管理数据传输来彻底改变资源使用策略。

能源效率:以智能农场中的土壤湿度传感器为例。这些传感器无需不断监测和发送数据,而是可以学习天气模式和土壤条件。SLM 使它们仅在必要时采取行动(例如在预测的干旱期之前),从而节省能源并减少数据传输频率。这可以提高用水效率并延长传感器的电池寿命。

智能家居设备

SLM 可以通过学习用户习惯和优化操作,让智能家居设备真正不负“智能”的美名,而不会消耗不必要的电量。

示例:带有嵌入式 SLM 的智能扬声器可以分析用户的语音模式,并相应地调整其唤醒词检测系统。扬声器不必总是全功率聆听,而是可以根据听到命令的可能性来调整其资源使用量,从而在活动较少时节省能源。同样,由 SLM 供电的恒温器可以预测你何时在家,预先调节温度,同时减少对持续云端检测的依赖。

工业自动化中的边缘网关

在工业环境中,边缘网关是处理和聚合来自各种传感器和机器的数据的关键一环。SLM 可以判断哪些数据需要立即关注,哪些数据可以稍后处理或卸载到云端,从而提高其效率。

带宽优化:想象一家制造工厂有一个由 SLM 供电的边缘网关。网关可以通过分析振动或温度数据来预测关键事件,例如设备故障。只有重要的见解(例如故障的早期迹象)才会发送到云端进行进一步分析,从而减少带宽使用并避免不必要的数据过载。这使工厂能够更高效地运营,在边缘做出更快的决策并降低运营成本。

智能医疗设备

SLM 可以改进可穿戴健康监测设备,使其在提供准确的数据分析的同时更加节省资源。例如,嵌入 SLM 的智能心率监测器可以了解用户的正常心律,并且仅在检测到心律失常等异常时传输数据,从而减少不必要的功耗和数据传输。

能源效率:SLM 驱动的设备无需不断将数据传输到云端,而是可以预测潜在的健康事件并仅在必要时提醒用户或医疗专业人员。这将延长电池寿命并尽可能减少带宽使用,使该设备更适合长期实时健康监测。

将 SLM 运用在这些资源受限的环境中后,从农业到制造业等各个行业都可以获得更智能、更高效的设备,从而显著节省成本和能源。

总 结

小型语言模型(SLM)是边缘计算资源管理的变革者。通过使用轻量级架构和自适应推理,SLM 可为各种行业带来更智能、更高效的设备,从物联网传感器网络到智能家居和工业自动化都能受益。它们优化了功率、带宽和处理能力,而不会让资源受限的设备不堪重负,为边缘实时、人工智能驱动的智能提供了可扩展的解决方案。随着边缘计算的发展,SLM 将使设备更智能、更节能,推动各个领域的创新。

作者介绍

Suruchi Shah 是一名专攻机器学习基础设施和分布式系统的高级软件工程师。她目前在 LinkedIn 领导 LLM Serving 团队,负责监督大规模推理负载的基础设施。Suruchi 在构建和扩展复杂系统方面拥有丰富经验,之前曾推动 LinkedIn 身份即服务平台的开发并领导多个重大迁移任务,例如将 LinkedIn 的流量转移到新的分布式图形数据库 Liquid,从而节省数百万美元的硬件成本。她的技术专长涵盖多个领域,包括搜索基础设施和图形数据库。她之前曾在 BloomReach 任职,并为 SolrCloud 的创新解决方案做出了贡献。

原文链接:

Efficient Resource Management with Small Language Models (SLMs) in Edge Computing(https://www.infoq.com/articles/efficient-resource-management-small-language-models/)返回搜狐,查看更多

责任编辑:

平台声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 ()