Un artículo sobre el modelo de lenguaje de decodificación: el principio, la práctica y la evaluación del modelo de lenguaje

Tabla de contenido

En este artículo, profundizamos en el funcionamiento interno de los modelos de lenguaje, desde modelos básicos hasta variantes a gran escala, y analizamos los pros y los contras de varias métricas de evaluación. El artículo proporciona una perspectiva integral y profunda a través de ejemplos de código, detalles de algoritmos e investigaciones más recientes, con el objetivo de ayudar a los lectores a comprender y evaluar con mayor precisión el rendimiento de los modelos de lenguaje. Este artículo es adecuado para investigadores, desarrolladores y lectores interesados ​​en la inteligencia artificial.

Siga a TechLead y comparta conocimientos multidimensionales sobre la IA. El autor tiene más de 10 años de experiencia en arquitectura de servicios de Internet, experiencia en desarrollo de productos de IA y experiencia en gestión de equipos. Tiene una maestría de la Universidad Tongji en la Universidad de Fudan, es miembro del Laboratorio de Inteligencia de Robots de Fudan y es un arquitecto senior certificado por Alibaba Cloud, un profesional en gestión de proyectos e investigación y desarrollo de productos de inteligencia artificial con ingresos de cientos de millones.

archivo

1. Descripción general del modelo de lenguaje

¿Qué es un modelo de lenguaje?

archivo
El modelo de lenguaje (LM para abreviar) es un modelo probabilístico para modelar el lenguaje natural (es decir, el lenguaje que la gente usa todos los días). En pocas palabras, la tarea de un modelo de lenguaje es evaluar la probabilidad de que una secuencia dada de palabras (es decir, una oración) aparezca en el mundo real. Este modelo juega un papel clave en muchas aplicaciones del procesamiento del lenguaje natural (PLN), como la traducción automática, el reconocimiento de voz, la generación de texto, etc.

Conceptos básicos y representaciones matemáticas.

Un modelo de lenguaje intenta modelar una distribución de probabilidad ( P(w_1, w_2, \ldots, w_m) ) sobre una secuencia de palabras ( w_1, w_2, \ldots, w_m ). Aquí, (w_i) es una palabra del vocabulario (V) y (m) es la longitud de la oración.

Un requisito básico de este modelo es la normalización de la distribución de probabilidad, es decir, la suma de las probabilidades de todas las secuencias de palabras posibles debe ser igual a 1:

archivo

Desafío: alta dimensionalidad y escasez

Imaginemos que si tenemos un vocabulario de 10.000 palabras, una frase de 20 palabras tiene (10.000^{20}) combinaciones posibles, lo cual es un número astronómico. Por lo tanto, no es práctico modelar directamente una dimensionalidad y escasez tan altas.

Regla de la cadena y probabilidad condicional

Para resolver este problema, se suele utilizar la regla de la cadena para descomponer la probabilidad conjunta en el producto de probabilidades condicionales:

archivo

ejemplo

Supongamos que tenemos una frase "Me encantan los modelos de lenguaje", la regla de la cadena nos permite calcular su probabilidad de esta manera:

archivo

De esta manera, el modelo puede estimar probabilidades de manera más eficiente.

Escenarios de aplicación

  • Traducción automática : al generar una oración en el idioma de destino, se utiliza un modelo de lenguaje para evaluar qué secuencia de palabras es más "natural".
  • Reconocimiento de voz : Asimismo, se pueden utilizar modelos de lenguaje para seleccionar la más probable entre múltiples transcripciones posibles.
  • Resumen de texto : el resumen generado debe ser gramaticalmente correcto y natural, lo que también se basa en modelos de lenguaje.

resumen

En general, el modelo de lenguaje es un componente básico en el procesamiento del lenguaje natural, que puede simular efectivamente la estructura compleja y las reglas de generación del lenguaje natural. A pesar de enfrentar los desafíos de la alta dimensionalidad y la escasez, los modelos de lenguaje han podido lograr resultados notables en múltiples aplicaciones de PNL a través de diversas estrategias y optimizaciones, como la regla de la cadena y la probabilidad condicional.


2. Modelos de lenguaje de n-gramas

archivo

concepto basico

Cuando se enfrenta a los problemas de alta dimensionalidad y escasez del cálculo de la distribución de probabilidad del modelo de lenguaje, los modelos de n-gramas (modelos de n-gramas) son una solución clásica. Los modelos de lenguaje de n-gramas simplifican el modelo al limitar el número de palabras históricas consideradas en las probabilidades condicionales. Específicamente, solo considera las palabras más cercanas (n-1) para predecir la siguiente palabra.

representación matemática

La regla de la cadena se aproxima según el método de los n-gramas como:

[
P(w_1, w_2, \ldots, w_m) \approx \prod_{i=1}^{m} P(w_i | w_{i-(n-1)}, w_{i-(n-2)} , \ldots, w_{i-1})
]

Entre ellos, (n) es el "orden" del modelo, generalmente un número entero menor o igual a 5.

Ejemplo de código: calcular la probabilidad de Bigram

A continuación se muestra un ejemplo simple de un modelo de lenguaje Bigram (2 gramos) implementado en Python y las estructuras de datos subyacentes.

from collections import defaultdict, Counter

# 训练文本,简化版
text = "I love language models and I love coding".split()

# 初始化
bigrams = list(zip(text[:-1], text[1:]))
bigram_freq = Counter(bigrams)
unigram_freq = Counter(text)

# 计算条件概率
def bigram_probability(word1, word2):
    return bigram_freq[(word1, word2)] / unigram_freq[word1]

# 输出
print("Bigram Probability of ('love', 'language'):", bigram_probability('love', 'language'))
print("Bigram Probability of ('I', 'love'):", bigram_probability('I', 'love'))

entrada y salida

  • Entrada : un conjunto de palabras separadas por espacios que representan el texto de entrenamiento.
  • Salida : probabilidad condicional de Bigram de la formación de dos palabras específicas (como 'amor' y 'lenguaje').

Ejecute el código anterior y debería ver el siguiente resultado:

Bigram Probability of ('love', 'language'): 0.5
Bigram Probability of ('I', 'love'): 1.0

Ventajas y desventajas

ventaja

  1. El cálculo es sencillo : los parámetros del modelo son fáciles de estimar y sólo es necesario contar las frecuencias de las palabras.
  2. Eficiencia espacial : en comparación con el modelo de secuencia completa, el modelo de n-gramas necesita almacenar una cantidad mucho menor de parámetros.

defecto

  1. Escasez de datos : para ngramas de baja frecuencia o que no ocurren, el modelo no puede proporcionar estimaciones de probabilidad adecuadas.
  2. Limitaciones : solo se pueden capturar dependencias de palabras locales (ventana de n-1 palabras).

resumen

El modelo de lenguaje de n-gramas simplifica el cálculo de distribuciones de probabilidad mediante aproximación local, resolviendo así algunos de los problemas de alta dimensionalidad y escasez. Sin embargo, esto también plantea nuevos desafíos, como cómo lidiar con datos escasos. A continuación, presentamos modelos de lenguaje basados ​​en redes neuronales que pueden manejar estos desafíos de manera más efectiva.


3. Modelos de lenguaje de redes neuronales

archivo

concepto basico

El modelo de lenguaje de red neuronal (NNLM) intenta utilizar métodos de aprendizaje profundo para resolver los problemas de limitaciones y escasez de datos en los modelos tradicionales de n-gramas. NNLM utiliza incrustaciones de palabras para capturar la información semántica entre palabras y calcula la probabilidad condicional de las palabras a través de una red neuronal.

representación matemática

Para una secuencia de palabras determinada (w_1, w_2, \ldots, w_m), NNLM intenta calcular:

[
P(w_m | w_{m-(n-1)}, \ldots, w_{m-1}) = \text{Softmax}(f(w_{m-(n-1)}, \ldots, w_ {m-1}; \theta))
]

Entre ellos, (f) es una función de red neuronal, (\ theta) es el parámetro del modelo y Softmax se utiliza para convertir la salida en probabilidad.

Ejemplo de código: NNLM simple

El siguiente es un ejemplo de código de un NNLM simple implementado con PyTorch.

import torch
import torch.nn as nn
import torch.optim as optim

# 数据准备
vocab = {
    
    "I": 0, "love": 1, "coding": 2, "<PAD>": 3}  # 简化词汇表
data = [0, 1, 2]  # "I love coding" 的词ID序列
data = torch.LongTensor(data)

# 参数设置
embedding_dim = 10
hidden_dim = 8
vocab_size = len(vocab)

# 定义模型
class SimpleNNLM(nn.Module):
    def __init__(self, vocab_size, embedding_dim, hidden_dim):
        super(SimpleNNLM, self).__init__()
        self.embedding = nn.Embedding(vocab_size, embedding_dim)
        self.rnn = nn.RNN(embedding_dim, hidden_dim)
        self.fc = nn.Linear(hidden_dim, vocab_size)

    def forward(self, x):
        x = self.embedding(x)
        out, _ = self.rnn(x.view(len(x), 1, -1))
        out = self.fc(out.view(len(x), -1))
        return out

# 初始化模型与优化器
model = SimpleNNLM(vocab_size, embedding_dim, hidden_dim)
optimizer = optim.SGD(model.parameters(), lr=0.1)

# 训练模型
for epoch in range(100):
    model.zero_grad()
    output = model(data[:-1])
    loss = nn.CrossEntropyLoss()(output, data[1:])
    loss.backward()
    optimizer.step()

# 预测
with torch.no_grad():
    prediction = model(data[:-1]).argmax(dim=1)
    print("Predicted words index:", prediction.tolist())

entrada y salida

  • Entrada : una secuencia de palabras, cada una representada por su índice en el vocabulario.
  • Salida : el índice previsto de la siguiente palabra, calculado por el modelo.

Al ejecutar el código anterior, el resultado podría ser:

Predicted words index: [1, 2]

Esto significa que el modelo predice que al "amor" le seguirá la "codificación".

Ventajas y desventajas

ventaja

  1. Capture dependencias de largo alcance : mediante mecanismos de bucle o de autoatención, el modelo puede capturar dependencias de largo alcance.
  2. Representación compartida : las incrustaciones de palabras se pueden reutilizar en diferentes contextos.

defecto

  1. Complejidad computacional : en comparación con n-gramas, NNLM tiene un costo computacional más alto.
  2. Requisitos de datos : los modelos profundos suelen requerir una gran cantidad de datos etiquetados para su entrenamiento.

resumen

Los modelos de lenguaje de redes neuronales mejoran significativamente el poder expresivo y la precisión de los modelos de lenguaje mediante el uso de redes neuronales profundas e incrustaciones de palabras. Sin embargo, este aumento de potencia tiene el costo de la complejidad computacional. En la siguiente sección, exploraremos cómo mejorar aún más el rendimiento del modelo mediante el entrenamiento previo.


entrenar modelo de lenguaje

En el campo del procesamiento del lenguaje natural, los métodos basados ​​​​en modelos de lenguaje previamente entrenados se han generalizado gradualmente. Desde ELMo hasta GPT, BERT y BART, los modelos de lenguaje previamente entrenados funcionan bien en múltiples tareas de PNL. En esta sección, analizamos en detalle cómo entrenar modelos de lenguaje y al mismo tiempo exploramos varias estructuras de modelos y tareas de capacitación.

Entrenamiento previo y ajuste

Influenciado por el uso de ImageNet para preseleccionar modelos en el campo de la visión por computadora, el paradigma de preentrenamiento + ajuste fino también se ha utilizado ampliamente en el campo de la PNL. Los modelos previamente entrenados se pueden utilizar para múltiples tareas posteriores, que a menudo solo requieren ajustes.

ELMo: modelo dinámico de vectores de palabras

ELMo utiliza un LSTM bidireccional para generar vectores de palabras. La representación vectorial de cada palabra depende de toda la oración de entrada y, por lo tanto, es "dinámica".

GPT: modelo generativo preentrenado

GPT de OpenAI utiliza un método de preentrenamiento generativo y una estructura Transformer. Se caracteriza por un modelo unidireccional que solo puede modelar secuencias de texto de izquierda a derecha o de derecha a izquierda.

BERT: modelo de preentrenamiento bidireccional

BERT utiliza el codificador Transformer y el mecanismo de enmascaramiento para extraer aún más la rica semántica que aporta el contexto. Durante el entrenamiento previo, BERT utiliza dos tareas: modelo de lenguaje enmascarado (MLM) y predicción de la siguiente oración (NSP).

BART: Transformador bidireccional y autorregresivo

BART combina la información de contexto bidireccional de BERT y las características autorregresivas de GPT y es adecuado para tareas de generación. Las tareas previas al entrenamiento incluyen codificadores automáticos de eliminación de ruido, que utilizan una variedad de formas para introducir ruido en el texto de entrada.

Ejemplo de código: entrenamiento de un modelo de lenguaje simple usando PyTorch

El siguiente código muestra cómo utilizar la biblioteca PyTorch para entrenar un modelo de lenguaje RNN simple.

import torch
import torch.nn as nn
import torch.optim as optim

# 初始化模型
class RNNModel(nn.Module):
    def __init__(self, vocab_size, embed_size, hidden_size):
        super(RNNModel, self).__init__()
        self.embedding = nn.Embedding(vocab_size, embed_size)
        self.rnn = nn.RNN(embed_size, hidden_size)
        self.decoder = nn.Linear(hidden_size, vocab_size)

    def forward(self, x, h):
        x = self.embedding(x)
        out, h = self.rnn(x, h)
        out = self.decoder(out)
        return out, h

vocab_size = 1000
embed_size = 128
hidden_size = 256
model = RNNModel(vocab_size, embed_size, hidden_size)

# 损失和优化器
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)

# 训练模型
for epoch in range(10):
    # 输入与标签
    input_data = torch.randint(0, vocab_size, (5, 32))  # 随机生成(序列长度, 批量大小)的输入
    target_data = torch.randint(0, vocab_size, (5, 32))  # 随机生成标签
    hidden = torch.zeros(1, 32, hidden_size)

    optimizer.zero_grad()
    output, hidden = model(input_data, hidden)
    loss = criterion(output.view(-1, vocab_size), target_data.view(-1))
    loss.backward()
    optimizer.step()

    print(f"Epoch [{
      
      epoch+1}/10], Loss: {
      
      loss.item():.4f}")

producción

Epoch [1/10], Loss: 6.9089
Epoch [2/10], Loss: 6.5990
...

Con este ejemplo simple, puede ver que la entrada es un tensor de números enteros aleatorios que representa el índice de vocabulario y la salida es una distribución de probabilidad que predice la probabilidad de la siguiente palabra.

resumen

Los modelos de lenguaje previamente entrenados han cambiado muchos aspectos de la PNL. A través de diversas estructuras y tareas previas al entrenamiento, estos modelos pueden capturar información semántica y contextual rica. Además, ajustar el modelo previamente entrenado es relativamente simple y se puede adaptar rápidamente a diversas tareas posteriores.


modelo de lenguaje a gran escala

archivo
En los últimos años, los modelos de lenguaje preentrenados (PLM) a gran escala han desempeñado un papel revolucionario en el campo del procesamiento del lenguaje natural (PLN). Esta ola está liderada por modelos como ELMo, GPT y BERT, y continúa en la actualidad. Este artículo tiene como objetivo explorar de manera integral y en profundidad los principios básicos de estos modelos, incluido su diseño estructural, tareas previas al entrenamiento y cómo se utilizan para tareas posteriores. También proporcionaremos ejemplos de código para una comprensión más profunda.

ELMo: el pionero de la incrustación dinámica de palabras

El modelo ELMo (Incrustaciones de modelos de lenguaje) introduce por primera vez el concepto de incrustaciones de palabras contextualizadas. A diferencia de las incrustaciones de palabras estáticas tradicionales, las incrustaciones de palabras dinámicas pueden ajustar dinámicamente las incrustaciones de palabras según el contexto.

Ejemplo de código: incrustación de palabras usando ELMo

# 用于ELMo词嵌入的Python代码示例
from allennlp.modules.elmo import Elmo, batch_to_ids

options_file = "https://allennlp.s3.amazonaws.com/models/elmo/2x4096_512_2048cnn_2xhighway/elmo_2x4096_512_2048cnn_2xhighway_options.json"
weight_file = "https://allennlp.s3.amazonaws.com/models/elmo/2x4096_512_2048cnn_2xhighway/elmo_2x4096_512_2048cnn_2xhighway_weights.hdf5"

# 创建模型
elmo = Elmo(options_file, weight_file, 1, dropout=0)

# 将句子转换为字符id
sentences = [["I", "ate", "an", "apple"], ["I", "ate", "a", "carrot"]]
character_ids = batch_to_ids(sentences)

# 计算嵌入
embeddings = elmo(character_ids)

# 输出嵌入张量的形状
print(embeddings['elmo_representations'][0].shape)
# Output: torch.Size([2, 4, 1024])

GPT: modelo generativo preentrenado

GPT (Generative Pre-trained Transformer) utiliza un método de preentrenamiento generativo y es un modelo unidireccional basado en la arquitectura Transformer. Esto significa que solo puede considerar un lado del contexto del texto al procesar el texto de entrada.

Ejemplo de código: generar texto usando GPT-2

# 使用GPT-2生成文本的Python代码示例
import torch
from transformers import GPT2LMHeadModel, GPT2Tokenizer

tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")

# 编码文本输入
input_text = "Once upon a time,"
input_ids = tokenizer.encode(input_text, return_tensors="pt")

# 生成文本
with torch.no_grad():
    output = model.generate(input_ids, max_length=50)
    
# 解码生成的文本
output_text = tokenizer.decode(output[0], skip_special_tokens=True)

print(output_text)
# Output: Once upon a time, there was a young prince who lived in a castle...

BERT: Representación del codificador bidireccional

BERT (Representaciones de codificador bidireccional de Transformers) consta de codificadores Transformer multicapa y está preentrenado mediante un mecanismo de máscara.

Ejemplo de código: clasificación de oraciones usando BERT

# 使用BERT进行句子分类的Python代码示例
from transformers import BertTokenizer, BertForSequenceClassification
import torch

tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')
model = BertForSequenceClassification.from_pretrained('bert-base-uncased')

inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
labels = torch.tensor([1]).unsqueeze(0)  # 类别标签
outputs = model(**inputs, labels=labels)

loss = outputs.loss
logits = outputs.logits

print(logits)
# Output: tensor([[ 0.1595, -0.1934]])

Método de evaluación del modelo de lenguaje

Evaluar el rendimiento de los modelos de lenguaje es una tarea crucial en el campo del procesamiento del lenguaje natural (PNL). Los diferentes indicadores y métodos de evaluación tienen un impacto directo en la selección del modelo, el ajuste y los escenarios de aplicación final. Este artículo presentará en detalle varios métodos de evaluación de uso común, incluida la perplejidad, la puntuación BLEU, la puntuación ROUGE, etc., y cómo utilizar el código para implementar estas evaluaciones.

Perplejidad

La perplejidad es una métrica común para medir la calidad de un modelo de lenguaje y describe la incertidumbre del modelo al predecir la siguiente palabra. Matemáticamente, la perplejidad se define como el exponente de la pérdida de entropía cruzada.

Ejemplo de código: calcular la perplejidad

import torch
import torch.nn.functional as F

# 假设我们有一个模型的输出logits和真实标签
logits = torch.tensor([[0.2, 0.4, 0.1, 0.3], [0.1, 0.5, 0.2, 0.2]])
labels = torch.tensor([1, 2])

# 计算交叉熵损失
loss = F.cross_entropy(logits, labels)

# 计算困惑度
perplexity = torch.exp(loss).item()

print(f'Cross Entropy Loss: {
      
      loss.item()}')
print(f'Perplexity: {
      
      perplexity}')
# Output: Cross Entropy Loss: 1.4068
#         Perplexity: 4.0852

Puntuación BLEU

La puntuación BLEU (estudiante de evaluación bilingüe) se utiliza comúnmente en tareas de traducción automática y generación de texto para medir la similitud entre el texto generado y el texto de referencia.

Ejemplo de código: calcular la puntuación BLEU

from nltk.translate.bleu_score import sentence_bleu

reference = [['this', 'is', 'a', 'test'], ['this', 'is' 'test']]
candidate = ['this', 'is', 'a', 'test']
score = sentence_bleu(reference, candidate)

print(f'BLEU score: {
      
      score}')
# Output: BLEU score: 1.0

Puntuación colorete

ROUGE (Suplente orientado a la recuperación para la evaluación de Gisting) es un conjunto de indicadores de evaluación que se utilizan para tareas como el resumen automático y la traducción automática.

Ejemplo de código: calcular la puntuación ROUGE

from rouge import Rouge 

rouge = Rouge()

hypothesis = "the #### transcript is a written version of each day 's cnn student news program use this transcript to he    lp students with reading comprehension and vocabulary use the weekly newsquiz to test your knowledge of storie s you     saw on cnn student news"
reference = "this page includes the show transcript use the transcript to help students with reading comprehension and     vocabulary at the bottom of the page , comment for a chance to be mentioned on cnn student news . you must be a teac    her or a student age # # or older to request a chance to be mentioned on cnn student news ."

scores = rouge.get_scores(hypothesis, reference)

print(f'ROUGE scores: {
      
      scores}')
# Output: ROUGE scores: [{'rouge-1': {'f': 0.47, 'p': 0.8, 'r': 0.35}, 'rouge-2': {'f': 0.04, 'p': 0.09, 'r': 0.03}, 'rouge-l': {'f': 0.27, 'p': 0.6, 'r': 0.2}}]

Otros indicadores de evaluación

Además de la perplejidad, la puntuación BLEU y la puntuación ROUGE mencionadas anteriormente, existe una variedad de otros indicadores de evaluación que se utilizan para medir el desempeño de los modelos lingüísticos. Estas métricas pueden diseñarse para tareas o problemas específicos, como clasificación de texto, reconocimiento de entidades nombradas (NER) o análisis de sentimientos. Esta sección presentará varias otras métricas de evaluación de uso común, incluida la precisión, la recuperación y la puntuación F1.

Precisión

La precisión mide cuántas de las muestras identificadas como positivas por el modelo son realmente positivas.

Ejemplo de código: calcular la precisión

from sklearn.metrics import precision_score

# 真实标签和预测标签
y_true = [0, 1, 1, 1, 0, 1]
y_pred = [0, 0, 1, 1, 0, 1]

# 计算精确度
precision = precision_score(y_true, y_pred)

print(f'Precision: {
      
      precision}')
# Output: Precision: 1.0

Recordar

El recuerdo mide cuántos de todos los ejemplos positivos verdaderos fueron identificados correctamente por el modelo.

Ejemplo de código: calcular la recuperación

from sklearn.metrics import recall_score

# 计算召回率
recall = recall_score(y_true, y_pred)

print(f'Recall: {
      
      recall}')
# Output: Recall: 0.8

puntuación F1

La puntuación F1 es la media armónica de precisión y recuperación, teniendo en cuenta tanto la precisión como la recuperación.

Ejemplo de código: calcular la puntuación F1

from sklearn.metrics import f1_score

# 计算 F1 分数
f1 = f1_score(y_true, y_pred)

print(f'F1 Score: {
      
      f1}')
# Output: F1 Score: 0.888888888888889

Curva AUC-ROC

AUC-ROC (área bajo la curva característica operativa del receptor) es una medida de rendimiento utilizada para problemas de clasificación binaria, que expresa la capacidad del modelo para clasificar ejemplos positivos y negativos.

Ejemplo de código: calcular AUC-ROC

from sklearn.metrics import roc_auc_score

# 预测概率
y_probs = [0.1, 0.4, 0.35, 0.8]

# 计算 AUC-ROC
roc_auc = roc_auc_score(y_true, y_probs)

print(f'AUC-ROC: {
      
      roc_auc}')
# Output: AUC-ROC: 0.8333333333333333

La evaluación del rendimiento de un modelo de lenguaje no se limita a una sola métrica. Dependiendo de los escenarios y requisitos de la aplicación, es posible que sea necesario combinar varios indicadores para obtener una evaluación más completa. Por lo tanto, estar familiarizado y comprender estas métricas de evaluación es crucial para construir y optimizar modelos lingüísticos eficientes.


Resumir

El modelo de lenguaje es un componente fundamental en los campos del procesamiento del lenguaje natural (PNL) y la inteligencia artificial (IA), que desempeña un papel clave en una variedad de tareas y escenarios de aplicación. Con el desarrollo de la tecnología de aprendizaje profundo, especialmente la aparición de estructuras modelo como Transformer, las capacidades de los modelos de lenguaje han mejorado significativamente. Este progreso no sólo promueve la investigación básica, sino que también promueve en gran medida las aplicaciones comerciales en la industria.
Evaluar el desempeño de los modelos de lenguaje es un problema complejo y de múltiples capas. Por un lado, las métricas tradicionales como la perplejidad, la puntuación BLEU y la puntuación ROUGE pueden no ser suficientes para reflejar el rendimiento general del modelo en algunos escenarios. Por otro lado, aunque métricas como la precisión, la recuperación, la puntuación F1 y el AUC-ROC están muy orientadas a tareas específicas como la clasificación de texto, el análisis de sentimientos o el reconocimiento de entidades nombradas (NER), no siempre son adecuadas para todos los escenarios. . Por lo tanto, al evaluar modelos de lenguaje, debemos adoptar una estrategia de evaluación multidimensional y de múltiples ángulos y combinar diferentes indicadores de evaluación para obtener una comprensión más completa y profunda.

Siga a TechLead y comparta conocimientos multidimensionales sobre la IA. El autor tiene más de 10 años de experiencia en arquitectura de servicios de Internet, experiencia en desarrollo de productos de IA y experiencia en gestión de equipos. Tiene una maestría de la Universidad Tongji en la Universidad de Fudan, es miembro del Laboratorio de Inteligencia de Robots de Fudan y es un arquitecto senior certificado por Alibaba Cloud, un profesional en gestión de proyectos e investigación y desarrollo de productos de inteligencia artificial con ingresos de cientos de millones.

Supongo que te gusta

Origin blog.csdn.net/magicyangjay111/article/details/132789214
Recomendado
Clasificación