{"id":550419,"date":"2023-10-24T13:11:42","date_gmt":"2023-10-24T11:11:42","guid":{"rendered":"https:\/\/www.capgemini.com\/es-es\/?p=550419"},"modified":"2025-03-11T08:28:36","modified_gmt":"2025-03-11T07:28:36","slug":"implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need","status":"publish","type":"post","link":"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/","title":{"rendered":"Implementaci\u00f3n de un modelo transformer basado en el paper &#8220;Attention is All You Need&#8221;"},"content":{"rendered":"\n<header class=\"wp-block-cg-blocks-hero-blogs header-hero-blogs\"><div class=\"container\"><div class=\"hero-blogs\"><div class=\"hero-blogs-content-wrapper\"><div class=\"row\"><div class=\"col-12\"><div class=\"header-title\"><h1>Implementaci\u00f3n de un Modelo Transformer Basado en el Paper &#8220;Attention is All You Need&#8221;<\/h1><\/div><\/div><\/div><\/div><div class=\"hero-blogs-bottom\"><div class=\"header-author\"><div class=\"author-img\"><img decoding=\"async\" src=\"https:\/\/www.capgemini.com\/es-es\/wp-content\/uploads\/sites\/16\/2023\/10\/Miguel_Giron.jpg?w=200&amp;quality=10\" alt=\"\" loading=\"lazy\"\/><\/div><div class=\"author-name-date\"><h5 class=\"author-name\">Miguel Gir\u00f3n Poves<\/h5><h5 class=\"blog-date\">24 Oct 2023<\/h5><\/div><\/div><div class=\"brand-image\"> <\/div><\/div><\/div><\/div><\/header>\n\n\n\n<section class=\"wp-block-cg-blocks-group undefined section section--article-content\"><div class=\"article-main-content\"><div class=\"container\"><div class=\"row\"><div class=\"col-12 col-md-1\"><nav class=\"article-social\"><ul class=\"social-nav\"><li class=\"ip-order-fb\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?=http:\/\/capgeminiucwe.develop\/?post_type=press-release&amp;p=179\" target=\"_blank\" rel=\"noopener noreferrer\" title=\"abrir en una nueva ventana\"><i aria-hidden=\"true\" class=\"icon-fb\"><\/i><span class=\"sr-only\">Facebook<\/span><\/a><\/li><li class=\"ip-order-tw\"><a href=\"https:\/\/twitter.com\/intent\/tweet?=http:\/\/capgeminiucwe.develop\/?post_type=press-release&amp;p=179\" target=\"_blank\" rel=\"noopener noreferrer\" title=\"abrir en una nueva ventana\"><i aria-hidden=\"true\" class=\"icon-tw\"><\/i><span class=\"sr-only\">Twitter<\/span><\/a><\/li><li class=\"ip-order-li\"><a href=\"https:\/\/www.linkedin.com\/shareArticle?=http:\/\/capgeminiucwe.develop\/?post_type=press-release&amp;p=179\" target=\"_blank\" rel=\"noopener noreferrer\" title=\"abrir en una nueva ventana\"><i aria-hidden=\"true\" class=\"icon-li\"><\/i><span class=\"sr-only\">Linkedin<\/span><\/a><\/li><\/ul><\/nav><\/div><div class=\"col-12 col-md-11 col-lg-10\"><div class=\"article-text article-quote-text\">\n<p>En el mundo del aprendizaje profundo, los modelos Transformer han revolucionado la inteligencia artificial al lograr un rendimiento excepcional en tareas de procesamiento de lenguaje natural y posteriormente a otras como la visi\u00f3n por computadora. Veremos la implementaci\u00f3n de un modelo Transformer basada en el influyente paper \u201cAttention is All You Need\u201d, que dio origen posteriormente a ChatGPT. Adem\u00e1s, es interesante explicar c\u00f3mo adaptar este modelo para abordar aplicaciones m\u00e1s avanzadas, como el procesamiento de lenguaje natural.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-implementacion-de-la-atencion-escalonada-de-producto-escalado-s-caled-dot-product-attention\">Implementaci\u00f3n de la atenci\u00f3n escalonada de producto escalado (s<em>caled dot-product attention)<\/em><\/h3>\n\n\n\n<p>Iniciamos nuestra implementaci\u00f3n con la piedra angular del <a href=\"https:\/\/proceedings.neurips.cc\/paper_files\/paper\/2017\/file\/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf\">transformer<\/a>, la capa de atenci\u00f3n de producto escalado. Esta capa permite al modelo calcular interacciones entre elementos en una secuencia. En nuestro c\u00f3digo, la clase `ScaledDotProductAtt` realiza esta tarea y se basa en multiplicaciones escalares de matrices. A continuaci\u00f3n, proporcionamos explicaciones detalladas de los par\u00e1metros y las operaciones:<\/p>\n\n\n\n<p>&#8211; <strong>`<em>query<\/em>`, `<em>key<\/em>`, `<em>value<\/em>`:<\/strong> Representan las consultas, claves y valores utilizados en el c\u00e1lculo de la atenci\u00f3n. Ser\u00e1n las entradas a nuestro modelo.<\/p>\n\n\n\n<p>&#8211; <strong>`<em>dropout<\/em>`:<\/strong> Es un par\u00e1metro que controla la regularizaci\u00f3n al aplicar eliminaci\u00f3n evitando el sobre entrenamiento (overfitting).<\/p>\n\n\n\n<p>La atenci\u00f3n de producto escalado calcula puntuaciones de atenci\u00f3n mediante el producto escalar de <strong>`<em>query<\/em>`<\/strong> y <strong>`<em>key<\/em>`<\/strong>, escalado por la ra\u00edz cuadrada de la dimensi\u00f3n de las claves <strong>(`<em>key<\/em>`).<\/strong> Luego, aplicamos la funci\u00f3n <a href=\"https:\/\/es.wikipedia.org\/wiki\/Funci\u00f3n_SoftMax\">softmax<\/a> para obtener los pesos de atenci\u00f3n. Si se proporciona una m\u00e1scara, se aplica para evitar que ciertos elementos se consideren en la atenci\u00f3n.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Scaled Dot-Product Attention\nclass ScaledDotProductAtt(nn.Module):\n    def __init__(self, dropout=0.1):\n        super(ScaledDotProductAtt, self).__init__()\n        self.dropout = nn.Dropout(dropout)\n\n    def forward(self, query, key, value, mask=None):\n        attScores = torch.matmul(query, key.transpose(-2, -1)) \/ np.sqrt(key.size(-1))\n        if mask is not None:\n            attScores = attScores.masked_fill(mask == 0, -1e10)\n\n        attention = torch.softmax(attScores, dim=-1)\n        attention = self.dropout(attention)\n        return torch.matmul(attention, value), attention<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Atenci\u00f3n <em>multicabeza<\/em><\/h3>\n\n\n\n<p>El siguiente paso en nuestra implementaci\u00f3n es la atenci\u00f3n <em>multicabeza<\/em>. Esta capa permite al modelo enfocarse en diferentes aspectos de la entrada de manera simult\u00e1nea. La clase <strong>`MultiHeadAttention`<\/strong> se encarga de esto, donde:<\/p>\n\n\n\n<p>&#8211; <strong>`d_model`, `nhead`, `dropout`:<\/strong> Estos par\u00e1metros controlan las dimensiones del modelo y la cantidad de cabezas de atenci\u00f3n, as\u00ed como la regularizaci\u00f3n.<\/p>\n\n\n\n<p>&#8211; <strong>`d_k`, `d_v`:<\/strong> Representan las dimensiones de las claves y los valores en cada cabeza de atenci\u00f3n.<\/p>\n\n\n\n<p>&#8211; <strong>`linear_q`, `linear_k`, `linear_v`:<\/strong> Son capas lineales que proyectan las consultas, claves y valores en espacios de dimensiones adecuadas.<\/p>\n\n\n\n<p>&#8211; <strong>`scaledDotProductAttention`:<\/strong> Es una instancia de la capa de atenci\u00f3n de producto escalado que utilizamos.<\/p>\n\n\n\n<p>&#8211; <strong>`linearLayer`:<\/strong> Otra capa lineal para transformar las salidas de las cabezas de atenci\u00f3n.<\/p>\n\n\n\n<p>&#8211; <strong>`dropout`:<\/strong> Controla la regularizaci\u00f3n.<\/p>\n\n\n\n<p>Esta capa divide la entrada en m\u00faltiples cabezas, cada una de las cuales se procesa individualmente. Luego, las salidas se concatenan y se transforman para obtener la salida final.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Multi-Head Attention\nclass MultiHeadAttention(nn.Module):\n    def __init__(self, d_model, nhead, dropout=0.1):\n        super(MultiHeadAttention, self).__init()\n        self.d_model = d_model\n        self.nhead = nhead\n        self.d_k = d_model \/\/ nhead\n        self.d_v = d_model \/\/ nhead\n\n        self.linear_q = nn.Linear(d_model, d_model)\n        self.linear_k = nn.Linear(d_model, d_model)\n        self.linear_v = nn.Linear(d_model, d_model)\n\n        self.scaledDotProductAttention = ScaledDotProductAtt(dropout)\n        self.linearLayer = nn.Linear(d_model, d_model)\n        self.dropout = nn.Dropout(dropout)<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Codificaci\u00f3n posicional<\/h3>\n\n\n\n<p>En el modelo Transformer, la codificaci\u00f3n posicional se utiliza para que el modelo comprenda la posici\u00f3n de las palabras en la secuencia. La clase <strong>`PositionalEncoding`<\/strong> se encarga de esto. Algunos par\u00e1metros y operaciones clave son:<\/p>\n\n\n\n<p>&#8211; <strong>`d_model`, `dropout`, `max_length`:<\/strong> Controlan la dimensi\u00f3n del modelo, la regularizaci\u00f3n y la longitud m\u00e1xima de la secuencia.<\/p>\n\n\n\n<p>&#8211; <strong>`pe`:<\/strong> Es una matriz que contiene la codificaci\u00f3n posicional.<\/p>\n\n\n\n<p>&#8211; <strong>`position`, `div_term`:<\/strong> Variables auxiliares utilizadas en el c\u00e1lculo de la codificaci\u00f3n posicional.<\/p>\n\n\n\n<p>La codificaci\u00f3n posicional se suma a las representaciones de entrada, lo que permite al modelo tener en cuenta la posici\u00f3n de las palabras.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Positional Encoding\nclass PositionalEncoding(nn.Module):\n    def __init__(self, d_model, dropout=0.1, max_length=100):\n        super(PositionalEncoding, self).__init()\n        self.dropout = nn.Dropout(dropout)\n        pe = torch.zeros(max_length, d_model)\n        position = torch.arange(0, max_length, dtype=torch.float).unsqueeze(1)\n        div_term = torch.exp(torch.arange(0, d_model, 2).float() * -(math.log(10000.0) \/ d_model))\n        pe&#91;:, 0::2] = torch.sin(position * div_term)\n        pe&#91;:, 1::2] = torch.cos(position * div_term)\n        pe = pe.unsqueeze(0).transpose(0, 1)\n        self.register_buffer('pe', pe)<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Capas de feed-forward y normalizaci\u00f3n<\/h3>\n\n\n\n<p>Las capas de feed-forward y normalizaci\u00f3n son componentes esenciales en cada capa del modelo:<\/p>\n\n\n\n<p>&#8211; <strong>`d_model`, `d_mlp`, `dropout`:<\/strong> controlan las dimensiones del modelo, la dimensi\u00f3n de las capas de Feed-Forward y la regularizaci\u00f3n.<\/p>\n\n\n\n<p>&#8211; <strong>`linear1`, `linear2`: <\/strong>son capas lineales utilizadas en la capa de Feed-Forward.<\/p>\n\n\n\n<p>&#8211; <strong>`gamma`, `beta`, `epsilon`:<\/strong> par\u00e1metros y constantes utilizadas en la capa de normalizaci\u00f3n.<\/p>\n\n\n\n<p>La capa de Feed-Forward transforma las representaciones intermedias, mientras que la Normalizaci\u00f3n mantiene la estabilidad del entrenamiento.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Feed-Forward Layer\nclass FeedForward(nn.Module):\n    def __init__(self, d_model, d_mlp=1024, dropout=0.1):\n        super(FeedForward, self).__init()\n        self.linear1 = nn.Linear(d_model, d_mlp)\n        self.dropout = nn.Dropout(dropout)\n        self.linear2 = nn.Linear(d_mlp, d_model)\n\n# Normalization Layer\nclass NormalizationLayer(nn.Module):\n    def __init__(self, d_model, epsilon=1e-5):\n        super(NormalizationLayer, self).__init()\n        self.gamma = nn.Parameter(torch.ones(d_model))\n        self.beta = nn.Parameter(torch.zeros(d_model))\n        self.epsilon = epsilon<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-modelo-de-lenguaje\">Modelo de lenguaje<\/h3>\n\n\n\n<p>Finalmente, ensamblamos todas estas piezas en un modelo de lenguaje completo en la clase <strong>`LanguageModel`<\/strong>. Aqu\u00ed est\u00e1n los detalles:<\/p>\n\n\n\n<p>&#8211; <strong>`d_model`, `nhead`, `nEncoder`, `d_mlp`, `vocab_size`, `dropout`:<\/strong> Controlan las dimensiones del modelo, la cantidad de cabezas de atenci\u00f3n, el n\u00famero de capas del codificador, la dimensi\u00f3n de las capas de Feed-Forward, el tama\u00f1o del vocabulario y la regularizaci\u00f3n.<\/p>\n\n\n\n<p>&#8211; <strong>`encoderLayer`, `encoderNorm`:<\/strong> Representan una capa del codificador y una capa de normalizaci\u00f3n.<\/p>\n\n\n\n<p>&#8211; <strong>`posEncoder`, `inputEmbed`, `outputLayer`:<\/strong> Son la codificaci\u00f3n posicional, la capa de embedding de entrada y la capa lineal de salida.<\/p>\n\n\n\n<p>Este modelo toma una secuencia de entrada, aplica la codificaci\u00f3n posicional y utiliza la atenci\u00f3n multi-cabeza y las capas de Feed-Forward para aprender representaciones significativas. Luego, una capa lineal proyecta las representaciones en las probabilidades de las palabras del vocabulario.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Language Model\nclass LanguageModel(nn.Module):\n    def __init__(self, d_model, nhead, nEncoder, d_mlp, vocab_size, dropout=0.1):\n        super(LanguageModel, self).__init__()\n        self.d_model = d_model\n        encoderLayer = Encoder(d_model, nhead, d_mlp, dropout)\n        encoderNorm = NormalizationLayer(d_model)\n        self.encoder = nn.TransformerEncoder(encoderLayer, nEncoder, encoderNorm)\n        self.posEncoder = PositionalEncoding(d_model, dropout, max_length)\n        self.inputEmbed = nn.Embedding(vocab_size, d_model)\n        self.outputLayer = nn.Linear(d_model, vocab_size)<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-ampliando-la-funcionalidad-gpt-3-vision-y-modelos-multi-modales\">Ampliando la funcionalidad: GPT-3, visi\u00f3n y modelos multi-modales<\/h3>\n\n\n\n<p>Una vez que hemos implementado el modelo Transformer b\u00e1sico, podemos considerar c\u00f3mo ampliar su funcionalidad. En un mundo en constante evoluci\u00f3n de la IA, es esencial estar al tanto de las \u00faltimas tendencias. A continuaci\u00f3n, algunas formas de ampliar tu modelo:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>1. <em>Incorporar GPT-3 o ChatGPT<\/em>: Puedes combinar tu implementaci\u00f3n con modelos de lenguaje pre-entrenados como GPT-3 o ChatGPT para dotar a tu modelo de habilidades de generaci\u00f3n de lenguaje natural de vanguardia.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>2. <em>Incorporar Visi\u00f3n por Computadora<\/em>: Para tareas de visi\u00f3n por computadora, agrega una rama de red neuronal convolucional (CNN) a tu modelo para procesar datos de im\u00e1genes. Esto habilita aplicaciones que requieren la comprensi\u00f3n de texto y visi\u00f3n.<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>3. <em>Explorar Modelos Multi-Modales<\/em>: Considera explorar modelos multi-modales que pueden manejar datos de texto, im\u00e1genes y otros tipos de entrada en un solo modelo.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-posibles-modificaciones-para-un-modelo-de-lenguaje-llm\">Posibles modificaciones para un modelo de lenguaje (LLM)<\/h3>\n\n\n\n<p>Un Modelo de Lenguaje (LLM) tiene como objetivo principal predecir la probabilidad de la palabra siguiente en una secuencia de palabras. Para adaptar nuestro modelo actual a un LLM, debemos realizar las siguientes modificaciones:<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-1-cambio-en-la-funcion-de-perdida\">1. Cambio en la funci\u00f3n de p\u00e9rdida<\/h4>\n\n\n\n<p>En lugar de utilizar la funci\u00f3n de p\u00e9rdida de entrop\u00eda cruzada categ\u00f3rica, que se utiliza en tareas de clasificaci\u00f3n, como la traducci\u00f3n autom\u00e1tica, necesitamos una funci\u00f3n de p\u00e9rdida que sea adecuada para la tarea de predicci\u00f3n de palabras. Com\u00fanmente, se utiliza la p\u00e9rdida de entrop\u00eda cruzada de palabras, que mide la discrepancia entre las distribuciones de probabilidad del modelo y las distribuciones reales de palabras.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># P\u00e9rdida para un Modelo de Lenguaje (Cross-Entropy Loss)\ncriterion = nn.CrossEntropyLoss()<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-2-modificacion-de-los-datos-de-entrada-y-salida\">2. Modificaci\u00f3n de los datos de entrada y salida<\/h4>\n\n\n\n<p>En un LLM, los datos de entrada y salida se organizan de manera ligeramente diferente. La entrada consiste en una secuencia de palabras hasta un punto de corte, y la salida es la palabra siguiente a predecir.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>input_seq = tokens&#91;:-1]  # Secuencia de entrada\ntarget_seq = tokens&#91;1:]   # Secuencia de salida (palabra siguiente)<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-3-entrenamiento-con-datos-de-texto\">3. Entrenamiento con datos de texto<\/h4>\n\n\n\n<p>El modelo se entrena con datos de texto sin procesar en lugar de datos clasificados. Esto significa que el preprocesamiento de los datos, como la tokenizaci\u00f3n y la construcci\u00f3n del vocabulario, se debe realizar antes del entrenamiento.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-4-evaluacion-de-la-generacion-de-texto\">4. Evaluaci\u00f3n de la generaci\u00f3n de texto<\/h4>\n\n\n\n<p>Una vez que el modelo est\u00e1 entrenado, se puede utilizar para generar texto aut\u00f3nomamente. La generaci\u00f3n de texto implica alimentar una palabra inicial y permitir que el modelo prediga palabras sucesivas de manera aut\u00f3noma.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Generaci\u00f3n de texto aut\u00f3noma\ndef generate_text(model, starting_word, max_length):\n    current_word = starting_word\n    generated_text = &#91;current_word]\n    for _ in range(max_length):\n        input_seq = &#91;current_word]\n        input_seq = torch.tensor(input_seq)\n        output = model(input_seq)\n        predicted_word = torch.argmax(output, dim=-1)&#91;-1].item()\n        generated_text.append(predicted_word)\n        current_word = predicted_word\n    return generated_text<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p>Estas modificaciones permiten que el modelo funcione como un Modelo de Lenguaje (LLM) que puede generar texto de manera aut\u00f3noma y predecir palabras siguientes en una secuencia. La adaptaci\u00f3n de un modelo Transformer a un LLM es un paso importante para aplicaciones como la generaci\u00f3n de texto creativo, correcci\u00f3n gramatical y completado autom\u00e1tico de texto.<\/p>\n\n\n\n<p>En resumen, construir un modelo Transformer desde cero basado en el paper original es un desaf\u00edo emocionante que nos brinda una base s\u00f3lida para comprender c\u00f3mo funcionan estos modelos. Adem\u00e1s, ampliar la funcionalidad del modelo nos permite aprovechar todo su potencial en aplicaciones del mundo real.<\/p>\n\n\n\n<p>La IA es una tecnolog\u00eda, que si bien no es nueva, est\u00e1 generando much\u00edsimo hype y &nbsp;avanza constantemente, estar al tanto de las \u00faltimas tendencias y modelos, como los modelos multi-modales, es esencial para mantenerse actualizado en este campo en constante evoluci\u00f3n.<\/p>\n<\/div><\/div><\/div><\/div><\/div><\/section>\n\n\n\n<section class=\"wp-block-cg-blocks-wrapper-people-slider section section--expert-slider wrapper-people-slider undefined\"><div class=\"container\"><div class=\"content-title\"><h3 data-maxlength=\"34\">Autor<\/h3><\/div><\/div><div class=\"slider slider-boxed\"><div class=\"container\"><div class=\"slider-window\"><div class=\"slider-list\">\n\t\t<div class=\"slide\">\n\t\t\t<div class=\"box\">\n\t\t\t\t<div class=\"row\">\n\t\t\t\t\t<div class=\"col-md-6 col-lg-4 box-img-wrapper\">\n\t\t\t\t\t\t<img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.capgemini.com\/es-es\/wp-content\/uploads\/sites\/16\/2023\/10\/Miguel_Giron.jpg\" alt=\"Miguel Gir\u00f3n Poves\"\/>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<div class=\"col-md-6 col-lg-8 box-inner\">\n\t\t\t\t\t\t<div class=\"row title-social-media-header\">\n\t\t\t\t\t\t\t<div class=\"col-md-12 col-lg-6 mbl-social-icon\">\n\t\t\t\t\t\t\t\t<ul class=\"social-nav\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li><a aria-label=\"Linkedin\" target=\"_blank\" title=\"Abrir en una nueva ventana\" href=\"https:\/\/www.linkedin.com\/in\/miguelgironp\/\"><i aria-hidden=\"true\" class=\"icon-li\"><\/i><\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"col-md-12 col-lg-6 box-container\">\n\t\t\t\t\t\t\t\t<div class=\"box-title\">\n\t\t\t\t\t\t\t\t\t<h3 class=\"people-profile-title\">Miguel Gir\u00f3n Poves<\/h3>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span>Salesforce Technical Arquitect<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"col-md-12 col-lg-6 social-box-container dkt-social-icon\">\n\t\t\t\t\t\t\t\t<ul class=\"social-nav\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li><a aria-label=\"Linkedin\" target=\"_blank\" title=\"Abrir en una nueva ventana\" href=\"https:\/\/www.linkedin.com\/in\/miguelgironp\/\"><i aria-hidden=\"true\" class=\"icon-li\"><\/i><\/a><\/li>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/ul>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\n<\/div><\/div><\/div><div class=\"slider-nav\"><button class=\"slider-prev inactive\" aria-label=\"Anterior\" tabindex=\"-1\"><\/button><ul class=\"slider-paginator\"><\/ul><button class=\"slider-next\" aria-label=\"Siguiente\"><\/button><\/div><\/div><\/section>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":452,"featured_media":546869,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"cg_dt_proposed_to":[],"cg_seo_hreflang_relations":"[]","cg_seo_canonical_relation":"","cg_seo_hreflang_x_default_relation":"{\"uuid\":\"d31eb6ad-83c3-490a-9bff-dab88ac37ec5\",\"blogId\":\"\",\"domain\":\"\",\"sitePath\":\"\",\"postLink\":\"\",\"postId\":null,\"isSaved\":true,\"isCrossLink\":false,\"hasCrossLink\":false}","cg_dt_approved_content":true,"cg_dt_mandatory_content":false,"cg_dt_notes":"","cg_dg_source_changed":false,"cg_dt_link_disabled":false,"_yoast_wpseo_primary_brand":"30","_jetpack_memberships_contains_paid_content":false,"footnotes":"","featured_focal_points":""},"categories":[5],"tags":[],"brand":[30],"service":[385],"industry":[],"partners":[151],"blog-topic":[],"content-group":[],"class_list":["post-550419","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology","brand-capgemini","service-application-development-management","partners-salesforce"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v22.8 (Yoast SEO v22.8) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Implementaci\u00f3n de un modelo transformer basado en el paper &quot;Attention is All You Need&quot; - Capgemini Spain<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Implementaci\u00f3n de un modelo transformer basado en el paper &quot;Attention is All You Need&quot;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/\" \/>\n<meta property=\"og:site_name\" content=\"Capgemini Spain\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-24T11:11:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-11T07:28:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.capgemini.com\/es-es\/wp-content\/uploads\/sites\/16\/2023\/11\/webpreview_blog_tech_vfinal.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Miguel Gir\u00f3n Poves\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"carolinamartineznavas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/\",\"url\":\"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/\",\"name\":\"Implementaci\u00f3n de un modelo transformer basado en el paper \\\"Attention is All You Need\\\" - Capgemini Spain\",\"isPartOf\":{\"@id\":\"https:\/\/www.capgemini.com\/es-es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.capgemini.com\/es-es\/wp-content\/uploads\/sites\/16\/2023\/07\/MicrosoftTeams-image-10.jpg\",\"datePublished\":\"2023-10-24T11:11:42+00:00\",\"dateModified\":\"2025-03-11T07:28:36+00:00\",\"author\":{\"@id\":\"https:\/\/www.capgemini.com\/es-es\/#\/schema\/person\/ba4897ab71ec9e539b552d8f678d66ee\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/#breadcrumb\"},\"inLanguage\":\"es-ES\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es-ES\",\"@id\":\"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/#primaryimage\",\"url\":\"https:\/\/www.capgemini.com\/es-es\/wp-content\/uploads\/sites\/16\/2023\/07\/MicrosoftTeams-image-10.jpg\",\"contentUrl\":\"https:\/\/www.capgemini.com\/es-es\/wp-content\/uploads\/sites\/16\/2023\/07\/MicrosoftTeams-image-10.jpg\",\"width\":5120,\"height\":2880,\"caption\":\"Software Developer Programming, Finding Solutions while Working on Desktop Computers in Data Center System Control Room. Team of Young Professionals Doing High Tech Coding\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.capgemini.com\/es-es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Implementaci\u00f3n de un modelo transformer basado en el paper &#8220;Attention is All You Need&#8221;\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.capgemini.com\/es-es\/#website\",\"url\":\"https:\/\/www.capgemini.com\/es-es\/\",\"name\":\"Capgemini Espa\u00f1a\",\"description\":\"Capgemini\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.capgemini.com\/es-es\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"es-ES\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.capgemini.com\/es-es\/#\/schema\/person\/ba4897ab71ec9e539b552d8f678d66ee\",\"name\":\"carolinamartineznavas\",\"sameAs\":[\"tamas.lugosi@capgemini.com\"],\"url\":\"https:\/\/www.capgemini.com\/es-es\/author\/carolinamartineznavas\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Implementaci\u00f3n de un modelo transformer basado en el paper \"Attention is All You Need\" - Capgemini Spain","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/","og_locale":"es_ES","og_type":"article","og_title":"Implementaci\u00f3n de un modelo transformer basado en el paper \"Attention is All You Need\"","og_url":"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/","og_site_name":"Capgemini Spain","article_published_time":"2023-10-24T11:11:42+00:00","article_modified_time":"2025-03-11T07:28:36+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.capgemini.com\/es-es\/wp-content\/uploads\/sites\/16\/2023\/11\/webpreview_blog_tech_vfinal.jpg","type":"image\/jpeg"}],"author":"Miguel Gir\u00f3n Poves","twitter_card":"summary_large_image","twitter_misc":{"Written by":"carolinamartineznavas","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/","url":"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/","name":"Implementaci\u00f3n de un modelo transformer basado en el paper \"Attention is All You Need\" - Capgemini Spain","isPartOf":{"@id":"https:\/\/www.capgemini.com\/es-es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/#primaryimage"},"image":{"@id":"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/#primaryimage"},"thumbnailUrl":"https:\/\/www.capgemini.com\/es-es\/wp-content\/uploads\/sites\/16\/2023\/07\/MicrosoftTeams-image-10.jpg","datePublished":"2023-10-24T11:11:42+00:00","dateModified":"2025-03-11T07:28:36+00:00","author":{"@id":"https:\/\/www.capgemini.com\/es-es\/#\/schema\/person\/ba4897ab71ec9e539b552d8f678d66ee"},"breadcrumb":{"@id":"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/#breadcrumb"},"inLanguage":"es-ES","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/"]}]},{"@type":"ImageObject","inLanguage":"es-ES","@id":"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/#primaryimage","url":"https:\/\/www.capgemini.com\/es-es\/wp-content\/uploads\/sites\/16\/2023\/07\/MicrosoftTeams-image-10.jpg","contentUrl":"https:\/\/www.capgemini.com\/es-es\/wp-content\/uploads\/sites\/16\/2023\/07\/MicrosoftTeams-image-10.jpg","width":5120,"height":2880,"caption":"Software Developer Programming, Finding Solutions while Working on Desktop Computers in Data Center System Control Room. Team of Young Professionals Doing High Tech Coding"},{"@type":"BreadcrumbList","@id":"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.capgemini.com\/es-es\/"},{"@type":"ListItem","position":2,"name":"Implementaci\u00f3n de un modelo transformer basado en el paper &#8220;Attention is All You Need&#8221;"}]},{"@type":"WebSite","@id":"https:\/\/www.capgemini.com\/es-es\/#website","url":"https:\/\/www.capgemini.com\/es-es\/","name":"Capgemini Espa\u00f1a","description":"Capgemini","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.capgemini.com\/es-es\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"es-ES"},{"@type":"Person","@id":"https:\/\/www.capgemini.com\/es-es\/#\/schema\/person\/ba4897ab71ec9e539b552d8f678d66ee","name":"carolinamartineznavas","sameAs":["tamas.lugosi@capgemini.com"],"url":"https:\/\/www.capgemini.com\/es-es\/author\/carolinamartineznavas\/"}]}},"blog_topic_info":[],"taxonomy_info":{"category":[{"id":5,"name":"Technology","slug":"technology"}],"brand":[{"id":30,"name":"Capgemini","slug":"capgemini"}],"service":[{"id":385,"name":"Application development &amp; management","slug":"application-development-management"}],"partners":[{"id":151,"name":"Salesforce","slug":"salesforce"}],"following_users":[{"id":167,"name":"automator","slug":"automator"},{"id":140,"name":"carolinamartineznavas","slug":"carolinamartineznavas"}]},"parsely":{"version":"1.1.0","canonical_url":"https:\/\/capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/","smart_links":{"inbound":0,"outbound":0},"traffic_boost_suggestions_count":0,"meta":{"@context":"https:\/\/schema.org","@type":"NewsArticle","headline":"Implementaci\u00f3n de un modelo transformer basado en el paper &#8220;Attention is All You Need&#8221;","url":"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/","mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/"},"thumbnailUrl":"https:\/\/www.capgemini.com\/es-es\/wp-content\/uploads\/sites\/16\/2023\/07\/MicrosoftTeams-image-10.jpg?w=150&h=150&crop=1","image":{"@type":"ImageObject","url":"https:\/\/www.capgemini.com\/es-es\/wp-content\/uploads\/sites\/16\/2023\/07\/MicrosoftTeams-image-10.jpg"},"articleSection":"Technology","author":[],"creator":[],"publisher":{"@type":"Organization","name":"Capgemini Spain","logo":""},"keywords":[],"dateCreated":"2023-10-24T11:11:42Z","datePublished":"2023-10-24T11:11:42Z","dateModified":"2025-03-11T07:28:36Z"},"rendered":"<meta name=\"parsely-title\" content=\"Implementaci\u00f3n de un modelo transformer basado en el paper &#8220;Attention is All You Need&#8221;\" \/>\n<meta name=\"parsely-link\" content=\"https:\/\/www.capgemini.com\/es-es\/investigacion\/perspectivas-de-expertos\/implementacion-de-un-modelo-transformer-basado-en-el-paper-attention-is-all-you-need\/\" \/>\n<meta name=\"parsely-type\" content=\"post\" \/>\n<meta name=\"parsely-image-url\" content=\"https:\/\/www.capgemini.com\/es-es\/wp-content\/uploads\/sites\/16\/2023\/07\/MicrosoftTeams-image-10.jpg?w=150&amp;h=150&amp;crop=1\" \/>\n<meta name=\"parsely-pub-date\" content=\"2023-10-24T11:11:42Z\" \/>\n<meta name=\"parsely-section\" content=\"Technology\" \/>","tracker_url":"https:\/\/cdn.parsely.com\/keys\/capgemini.com\/p.js"},"jetpack_featured_media_url":"https:\/\/www.capgemini.com\/es-es\/wp-content\/uploads\/sites\/16\/2023\/07\/MicrosoftTeams-image-10.jpg","archive_status":false,"featured_image_src":"https:\/\/www.capgemini.com\/es-es\/wp-content\/uploads\/sites\/16\/2023\/07\/MicrosoftTeams-image-10.jpg","featured_image_alt":"","jetpack_sharing_enabled":true,"distributor_meta":false,"distributor_terms":false,"distributor_media":false,"distributor_original_site_name":"Capgemini Spain","distributor_original_site_url":"https:\/\/www.capgemini.com\/es-es","push-errors":false,"featured_image_url":"https:\/\/www.capgemini.com\/es-es\/wp-content\/uploads\/sites\/16\/2023\/07\/MicrosoftTeams-image-10.jpg","author_title":"Miguel Gir\u00f3n Poves","author_thumbnail_url":"https:\/\/www.capgemini.com\/es-es\/wp-content\/uploads\/sites\/16\/2023\/10\/Miguel_Giron.jpg?w=960","author_thumbnail_alt":"","_links":{"self":[{"href":"https:\/\/www.capgemini.com\/es-es\/wp-json\/wp\/v2\/posts\/550419","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.capgemini.com\/es-es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.capgemini.com\/es-es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.capgemini.com\/es-es\/wp-json\/wp\/v2\/users\/452"}],"replies":[{"embeddable":true,"href":"https:\/\/www.capgemini.com\/es-es\/wp-json\/wp\/v2\/comments?post=550419"}],"version-history":[{"count":16,"href":"https:\/\/www.capgemini.com\/es-es\/wp-json\/wp\/v2\/posts\/550419\/revisions"}],"predecessor-version":[{"id":567325,"href":"https:\/\/www.capgemini.com\/es-es\/wp-json\/wp\/v2\/posts\/550419\/revisions\/567325"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.capgemini.com\/es-es\/wp-json\/wp\/v2\/media\/546869"}],"wp:attachment":[{"href":"https:\/\/www.capgemini.com\/es-es\/wp-json\/wp\/v2\/media?parent=550419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.capgemini.com\/es-es\/wp-json\/wp\/v2\/categories?post=550419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.capgemini.com\/es-es\/wp-json\/wp\/v2\/tags?post=550419"},{"taxonomy":"brand","embeddable":true,"href":"https:\/\/www.capgemini.com\/es-es\/wp-json\/wp\/v2\/brand?post=550419"},{"taxonomy":"service","embeddable":true,"href":"https:\/\/www.capgemini.com\/es-es\/wp-json\/wp\/v2\/service?post=550419"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.capgemini.com\/es-es\/wp-json\/wp\/v2\/industry?post=550419"},{"taxonomy":"partners","embeddable":true,"href":"https:\/\/www.capgemini.com\/es-es\/wp-json\/wp\/v2\/partners?post=550419"},{"taxonomy":"blog-topic","embeddable":true,"href":"https:\/\/www.capgemini.com\/es-es\/wp-json\/wp\/v2\/blog-topic?post=550419"},{"taxonomy":"content-group","embeddable":true,"href":"https:\/\/www.capgemini.com\/es-es\/wp-json\/wp\/v2\/content-group?post=550419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}