当前位置:首页 > 物联网 > 智能应用
[导读]自然语言生成是从会话代理到内容生成的应用的核心。尽管取得了一些进展,但之前的系统往往是"黑匣子",使开发者和用户对其决策过程不确定。可解释的AI(XAI)通过使nlg模型更具可解释性和可控制性来弥补这一缺口。

自然语言生成是从会话代理到内容生成的应用的核心。尽管取得了一些进展,但之前的系统往往是"黑匣子",使开发者和用户对其决策过程不确定。可解释的AI(XAI)通过使nlg模型更具可解释性和可控制性来弥补这一缺口。

本文探讨了提高透明度的实用技术和工具。 Nlg系统 提供详细的代码片段和逐步的解释,指导开发人员理解和改进模型行为。主题包括注意力可视化、可控生成、特征属性和将解释整合到工作流中。本文通过对现实世界中的例子进行分析,为构建更多可解释性强的非线性网络系统提供了教育指导。

介绍

自然语言生成使机器能够产生连贯和适合上下文的文本,支持像聊天机器人、文档摘要和创造性的写作工具等应用。尽管像GTPT、BERT和T5这样强大的模型已经改变了NLU,但它们的不透明性给调试、问责和用户信任带来了挑战。

可解释的人工智能 (XAI)提供工具和技术来揭示这些模型是如何作出决策的,使其对开发者和最终用户来说是可访问和可靠的。无论您是在培训一个nlg模型,还是在对一个预先培训的系统进行微调,Xai方法都可以通过提供对某些输出的产生方式和产生原因的深入了解来提高您的工作流。

可解释的NLU技术

1.了解关注机制

变形器构成了大多数现代nlg模型的支柱,在生成文本时,它依靠注意机制来关注输入的相关部分。理解这些注意权重有助于解释为什么模型强调某些令牌而不是其他令牌。

示例:GPC-2中的可视化注意力

from transformers import GPT2Tokenizer, GPT2LMHeadModel

from bertviz import head_view

# Load GPT-2 model and tokenizer

model = GPT2LMHeadModel.from_pretrained("gpt2", output_attentions=True)

tokenizer = GPT2Tokenizer.from_pretrained("gpt2")

# Input text

text = "The role of explainability in AI is crucial for ethical decision-making."

# Tokenize input

inputs = tokenizer(text, return_tensors="pt")

# Generate attentions

outputs = model(**inputs)

attentions = outputs.attentions # List of attention weights from all layers

# Visualize attention

head_view(attentions, tokenizer, text)

解释

…bertviz 库提供了一个图形化接口,用于了解注意力是如何在输入令牌之间分布的。例如,如果模型生成一个摘要,您可以分析它认为最重要的单词。

2.可控制的文本生成

可控制性允许用户通过指定诸如音调、风格或结构等参数来引导模型的输出。像CTRL这样的模型和经过微调的GTPT版本都支持这个功能。

示例:引导带提示的文本生成

from transformers import AutoModelForCausalLM, AutoTokenizer

# Load GPT-Neo model

model_name = "EleutherAI/gpt-neo-2.7B"

model = AutoModelForCausalLM.from_pretrained(model_name)

tokenizer = AutoTokenizer.from_pretrained(model_name)

# Define a prompt for controlling output style

prompt = (

"Write an inspiring conclusion to an academic paper: \n"

"In conclusion, the field of Explainable AI has the potential to..."

)

# Tokenize and generate text

inputs = tokenizer(prompt, return_tensors="pt")

outputs = model.generate(inputs["input_ids"], max_length=100)

# Decode and display output

print(tokenizer.decode(outputs[0], skip_special_tokens=True))

解释

通过有效地构造提示,开发人员可以控制模型如何生成文本。在本例中,模型调整其输出以适应一个学术音调。

3.带沙普的特征归属

( 沙普利加法解释 )提供关于输入的哪些部分对生成的输出贡献最大的见解,帮助开发人员调试偏见或无关的问题。

示例:用于解释生成的文本的信息管理系统

import shap

from transformers import pipeline

# Load a text generation pipeline

generator = pipeline("text-generation", model="gpt2")

# Define SHAP explainer

explainer = shap.Explainer(generator)

# Input text

prompt = "Explainable AI improves trust in automated systems by"

# Generate explanations

shap_values = explainer([prompt])

# Visualize explanations

shap.text_plot(shap_values)

解释

Shap突出了影响生成文本的单词或短语,为分析模型焦点提供了一种方法。例如,您可能发现某些关键字不成比例地驱动特定音调或风格。

4.文本归属的综合梯度

综合梯度量化每个输入特征的贡献(例如:)通过集成从基线到输入的梯度。

示例:分类任务的综合梯度

from captum.attr import IntegratedGradients

from transformers import AutoTokenizer, AutoModelForSequenceClassification

import torch

# Load model and tokenizer

model_name = "textattack/bert-base-uncased-imdb"

model = AutoModelForSequenceClassification.from_pretrained(model_name)

tokenizer = AutoTokenizer.from_pretrained(model_name)

# Input text

text = "Explainable AI has transformed how developers interact with machine learning models."

inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)

# Compute Integrated Gradients

ig = IntegratedGradients(model)

attributions = ig.attribute(inputs['input_ids'], target=1)

# Visualize attributions

print("Integrated Gradients Attributions:", attributions)

解释

集成梯度在分类任务中特别有用,在这些任务中,您希望了解哪些单词会影响决策。这也可以扩展到标记属性的文本生成任务。

5.明智的注意力分析

有时候,了解变压器的各个层可以为模型的行为提供更深刻的见解。

例子:逐层提取注意力权重

import torch

from transformers import BertTokenizer, BertModel

# Load BERT model and tokenizer

tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")

model = BertModel.from_pretrained("bert-base-uncased", output_attentions=True)

# Input sentence

text = "Natural Language Generation depends heavily on transformer architectures."

inputs = tokenizer(text, return_tensors="pt")

# Forward pass with attention

outputs = model(**inputs)

attention_weights = outputs.attentions # Attention weights for each layer

# Analyze specific layer

layer_3_attention = attention_weights[3].detach().numpy()

print("Attention weights from layer 3:", layer_3_attention)

解释

分层分析使开发人员能够跟踪关注是如何在网络中传播的。这对于调试或微调训练前的模型特别有用。

在工作流中整合可说明的非线性逻辑

调试模型输出

像Shap和注意力可视化这样的解释工具可以帮助识别一些问题,比如不相关的焦点或者对输入中的噪声的敏感性。

改进数据集质量

归因方法可以揭示对特定短语的偏向或过度依赖,指导数据集的扩充或管理。

建立用户信任

通过展示模型是如何得出它们的输出的,开发人员可以在终端用户之间建立信任,特别是在高风险的应用程序,如法律或医学文本生成中。

道德考虑

减缓偏斜

可解释性方法可以揭示生成内容中的偏见,促使开发人员通过改进培训数据集或公平性约束来解决这些问题。

防止误传

透明度确保用户了解国家联络组系统的局限性,减少错误解释或滥用的风险。

结论

可以解释的NLU弥合了强大的人工智能系统和用户信任之间的差距,使开发人员能够调试、优化和完善他们的模型具有更大的信心。通过将注意力可视化、可控制生成和特征归属等技术结合起来,我们可以创建不仅有效而且可解释和符合道德标准的非线性网络系统。随着这个领域的不断发展,解释性的整合将仍然是构建可靠的、以人为中心的人工智能的核心。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭