{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
""
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"# Course Notes for Learning Intelligent Systems"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"Department of Telematic Engineering Systems, Universidad Politécnica de Madrid, © Carlos A. Iglesias"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"# Table of Contents\n",
"* [Objectives](#Objectives)\n",
"* [Transformers](#Transformers)\n",
"* [Use cases: how to use pipelines](#Use-cases:-how-to-usepipelines)\n",
" * Sentiment Analysis\n",
" * Masked Word Completion\n",
" * Text generation\n",
" * Question Answering\n",
" * Text to Speech\n",
"* [References](#References)"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "slide"
}
},
"source": [
"# Objectives"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
"In this session we are going to learn the power of transformers."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Transformers\n",
"As we saw, transformers are an extremely powerful architecture capable of performing many popular NLP tasks.\n",
"\n",
"A well-known transformer model repository is available at https://huggingface.co/. \n",
"\n",
"Let's see how to use it. To go deeper, consult the Hugging tutorial (https://huggingface.co/learn/nlp-course/chapter1/1).\n",
"\n",
"The transformers package requires to have installed Pytorch or TensorFlow. Check the installation details if you want to configure your environment well. For learning purposes, we are going to install Pytorch.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First of all, you should install Hugging Face. Execute:\n",
"* pip install torch transformers"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: torch in /home/cif/miniconda3/lib/python3.12/site-packages (2.10.0)\n",
"Requirement already satisfied: transformers in /home/cif/miniconda3/lib/python3.12/site-packages (5.2.0)\n",
"Requirement already satisfied: filelock in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (3.24.2)\n",
"Requirement already satisfied: typing-extensions>=4.10.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (4.15.0)\n",
"Requirement already satisfied: setuptools in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (82.0.0)\n",
"Requirement already satisfied: sympy>=1.13.3 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (1.14.0)\n",
"Requirement already satisfied: networkx>=2.5.1 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (3.6.1)\n",
"Requirement already satisfied: jinja2 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (3.1.6)\n",
"Requirement already satisfied: fsspec>=0.8.5 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (2026.2.0)\n",
"Requirement already satisfied: cuda-bindings==12.9.4 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (12.9.4)\n",
"Requirement already satisfied: nvidia-cuda-nvrtc-cu12==12.8.93 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (12.8.93)\n",
"Requirement already satisfied: nvidia-cuda-runtime-cu12==12.8.90 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (12.8.90)\n",
"Requirement already satisfied: nvidia-cuda-cupti-cu12==12.8.90 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (12.8.90)\n",
"Requirement already satisfied: nvidia-cudnn-cu12==9.10.2.21 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (9.10.2.21)\n",
"Requirement already satisfied: nvidia-cublas-cu12==12.8.4.1 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (12.8.4.1)\n",
"Requirement already satisfied: nvidia-cufft-cu12==11.3.3.83 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (11.3.3.83)\n",
"Requirement already satisfied: nvidia-curand-cu12==10.3.9.90 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (10.3.9.90)\n",
"Requirement already satisfied: nvidia-cusolver-cu12==11.7.3.90 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (11.7.3.90)\n",
"Requirement already satisfied: nvidia-cusparse-cu12==12.5.8.93 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (12.5.8.93)\n",
"Requirement already satisfied: nvidia-cusparselt-cu12==0.7.1 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (0.7.1)\n",
"Requirement already satisfied: nvidia-nccl-cu12==2.27.5 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (2.27.5)\n",
"Requirement already satisfied: nvidia-nvshmem-cu12==3.4.5 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (3.4.5)\n",
"Requirement already satisfied: nvidia-nvtx-cu12==12.8.90 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (12.8.90)\n",
"Requirement already satisfied: nvidia-nvjitlink-cu12==12.8.93 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (12.8.93)\n",
"Requirement already satisfied: nvidia-cufile-cu12==1.13.1.3 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (1.13.1.3)\n",
"Requirement already satisfied: triton==3.6.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from torch) (3.6.0)\n",
"Requirement already satisfied: cuda-pathfinder~=1.1 in /home/cif/miniconda3/lib/python3.12/site-packages (from cuda-bindings==12.9.4->torch) (1.3.4)\n",
"Requirement already satisfied: huggingface-hub<2.0,>=1.3.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from transformers) (1.4.1)\n",
"Requirement already satisfied: numpy>=1.17 in /home/cif/miniconda3/lib/python3.12/site-packages (from transformers) (2.3.5)\n",
"Requirement already satisfied: packaging>=20.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from transformers) (26.0)\n",
"Requirement already satisfied: pyyaml>=5.1 in /home/cif/miniconda3/lib/python3.12/site-packages (from transformers) (6.0.3)\n",
"Requirement already satisfied: regex!=2019.12.17 in /home/cif/miniconda3/lib/python3.12/site-packages (from transformers) (2026.1.15)\n",
"Requirement already satisfied: tokenizers<=0.23.0,>=0.22.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from transformers) (0.22.2)\n",
"Requirement already satisfied: typer-slim in /home/cif/miniconda3/lib/python3.12/site-packages (from transformers) (0.24.0)\n",
"Requirement already satisfied: safetensors>=0.4.3 in /home/cif/miniconda3/lib/python3.12/site-packages (from transformers) (0.7.0)\n",
"Requirement already satisfied: tqdm>=4.27 in /home/cif/miniconda3/lib/python3.12/site-packages (from transformers) (4.67.3)\n",
"Requirement already satisfied: hf-xet<2.0.0,>=1.2.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from huggingface-hub<2.0,>=1.3.0->transformers) (1.2.0)\n",
"Requirement already satisfied: httpx<1,>=0.23.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from huggingface-hub<2.0,>=1.3.0->transformers) (0.28.1)\n",
"Requirement already satisfied: shellingham in /home/cif/miniconda3/lib/python3.12/site-packages (from huggingface-hub<2.0,>=1.3.0->transformers) (1.5.4)\n",
"Requirement already satisfied: anyio in /home/cif/miniconda3/lib/python3.12/site-packages (from httpx<1,>=0.23.0->huggingface-hub<2.0,>=1.3.0->transformers) (4.12.1)\n",
"Requirement already satisfied: certifi in /home/cif/miniconda3/lib/python3.12/site-packages (from httpx<1,>=0.23.0->huggingface-hub<2.0,>=1.3.0->transformers) (2026.2.25)\n",
"Requirement already satisfied: httpcore==1.* in /home/cif/miniconda3/lib/python3.12/site-packages (from httpx<1,>=0.23.0->huggingface-hub<2.0,>=1.3.0->transformers) (1.0.9)\n",
"Requirement already satisfied: idna in /home/cif/miniconda3/lib/python3.12/site-packages (from httpx<1,>=0.23.0->huggingface-hub<2.0,>=1.3.0->transformers) (3.11)\n",
"Requirement already satisfied: h11>=0.16 in /home/cif/miniconda3/lib/python3.12/site-packages (from httpcore==1.*->httpx<1,>=0.23.0->huggingface-hub<2.0,>=1.3.0->transformers) (0.16.0)\n",
"Requirement already satisfied: mpmath<1.4,>=1.1.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from sympy>=1.13.3->torch) (1.3.0)\n",
"Requirement already satisfied: MarkupSafe>=2.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from jinja2->torch) (3.0.3)\n",
"Requirement already satisfied: typer>=0.24.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from typer-slim->transformers) (0.24.0)\n",
"Requirement already satisfied: click>=8.2.1 in /home/cif/miniconda3/lib/python3.12/site-packages (from typer>=0.24.0->typer-slim->transformers) (8.3.1)\n",
"Requirement already satisfied: rich>=12.3.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from typer>=0.24.0->typer-slim->transformers) (14.3.2)\n",
"Requirement already satisfied: annotated-doc>=0.0.2 in /home/cif/miniconda3/lib/python3.12/site-packages (from typer>=0.24.0->typer-slim->transformers) (0.0.4)\n",
"Requirement already satisfied: markdown-it-py>=2.2.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from rich>=12.3.0->typer>=0.24.0->typer-slim->transformers) (4.0.0)\n",
"Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from rich>=12.3.0->typer>=0.24.0->typer-slim->transformers) (2.19.2)\n",
"Requirement already satisfied: mdurl~=0.1 in /home/cif/miniconda3/lib/python3.12/site-packages (from markdown-it-py>=2.2.0->rich>=12.3.0->typer>=0.24.0->typer-slim->transformers) (0.1.2)\n"
]
}
],
"source": [
"!pip install torch transformers"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: huggingface_hub[hf_xet] in /home/cif/miniconda3/lib/python3.12/site-packages (1.4.1)\n",
"Requirement already satisfied: filelock in /home/cif/miniconda3/lib/python3.12/site-packages (from huggingface_hub[hf_xet]) (3.24.2)\n",
"Requirement already satisfied: fsspec>=2023.5.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from huggingface_hub[hf_xet]) (2026.2.0)\n",
"Requirement already satisfied: hf-xet<2.0.0,>=1.2.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from huggingface_hub[hf_xet]) (1.2.0)\n",
"Requirement already satisfied: httpx<1,>=0.23.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from huggingface_hub[hf_xet]) (0.28.1)\n",
"Requirement already satisfied: packaging>=20.9 in /home/cif/miniconda3/lib/python3.12/site-packages (from huggingface_hub[hf_xet]) (26.0)\n",
"Requirement already satisfied: pyyaml>=5.1 in /home/cif/miniconda3/lib/python3.12/site-packages (from huggingface_hub[hf_xet]) (6.0.3)\n",
"Requirement already satisfied: shellingham in /home/cif/miniconda3/lib/python3.12/site-packages (from huggingface_hub[hf_xet]) (1.5.4)\n",
"Requirement already satisfied: tqdm>=4.42.1 in /home/cif/miniconda3/lib/python3.12/site-packages (from huggingface_hub[hf_xet]) (4.67.3)\n",
"Requirement already satisfied: typer-slim in /home/cif/miniconda3/lib/python3.12/site-packages (from huggingface_hub[hf_xet]) (0.24.0)\n",
"Requirement already satisfied: typing-extensions>=4.1.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from huggingface_hub[hf_xet]) (4.15.0)\n",
"Requirement already satisfied: anyio in /home/cif/miniconda3/lib/python3.12/site-packages (from httpx<1,>=0.23.0->huggingface_hub[hf_xet]) (4.12.1)\n",
"Requirement already satisfied: certifi in /home/cif/miniconda3/lib/python3.12/site-packages (from httpx<1,>=0.23.0->huggingface_hub[hf_xet]) (2026.2.25)\n",
"Requirement already satisfied: httpcore==1.* in /home/cif/miniconda3/lib/python3.12/site-packages (from httpx<1,>=0.23.0->huggingface_hub[hf_xet]) (1.0.9)\n",
"Requirement already satisfied: idna in /home/cif/miniconda3/lib/python3.12/site-packages (from httpx<1,>=0.23.0->huggingface_hub[hf_xet]) (3.11)\n",
"Requirement already satisfied: h11>=0.16 in /home/cif/miniconda3/lib/python3.12/site-packages (from httpcore==1.*->httpx<1,>=0.23.0->huggingface_hub[hf_xet]) (0.16.0)\n",
"Requirement already satisfied: typer>=0.24.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from typer-slim->huggingface_hub[hf_xet]) (0.24.0)\n",
"Requirement already satisfied: click>=8.2.1 in /home/cif/miniconda3/lib/python3.12/site-packages (from typer>=0.24.0->typer-slim->huggingface_hub[hf_xet]) (8.3.1)\n",
"Requirement already satisfied: rich>=12.3.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from typer>=0.24.0->typer-slim->huggingface_hub[hf_xet]) (14.3.2)\n",
"Requirement already satisfied: annotated-doc>=0.0.2 in /home/cif/miniconda3/lib/python3.12/site-packages (from typer>=0.24.0->typer-slim->huggingface_hub[hf_xet]) (0.0.4)\n",
"Requirement already satisfied: markdown-it-py>=2.2.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from rich>=12.3.0->typer>=0.24.0->typer-slim->huggingface_hub[hf_xet]) (4.0.0)\n",
"Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /home/cif/miniconda3/lib/python3.12/site-packages (from rich>=12.3.0->typer>=0.24.0->typer-slim->huggingface_hub[hf_xet]) (2.19.2)\n",
"Requirement already satisfied: mdurl~=0.1 in /home/cif/miniconda3/lib/python3.12/site-packages (from markdown-it-py>=2.2.0->rich>=12.3.0->typer>=0.24.0->typer-slim->huggingface_hub[hf_xet]) (0.1.2)\n"
]
}
],
"source": [
"!pip install huggingface_hub[hf_xet]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Use cases: how to use pipelines"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Sentiment Analysis\n",
"Let's classify sentiments"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "f761aa16051140ee84552e28f855ef69",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Loading weights: 0%| | 0/201 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[{'label': 'positive', 'score': 0.974217414855957}]\n",
"[{'label': 'negative', 'score': 0.9310991168022156}, {'label': 'neutral', 'score': 0.5152541399002075}]\n"
]
}
],
"source": [
"from transformers import pipeline\n",
"\n",
"from transformers import logging\n",
"\n",
"logging.set_verbosity_error()\n",
"#logging.set_verbosity_warning()\n",
"\n",
"model_sentiment = \"cardiffnlp/twitter-roberta-base-sentiment-latest\"\n",
"\n",
"sentiment_pipe = pipeline(\"sentiment-analysis\", model=model_sentiment)\n",
"\n",
"print(sentiment_pipe(\"I love LLMs.\"))\n",
"\n",
"#We pan \n",
"print(sentiment_pipe([\"I hate LLMs.\", \"I don't care about LLMs\"]))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Masked word completion\n",
"Generate words for a mask"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "61756ee7480a44b2a3214d9691ee9d59",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Loading weights: 0%| | 0/202 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"[{'score': 0.32434239983558655,\n",
" 'token': 2795,\n",
" 'token_str': 'table',\n",
" 'sequence': 'hello, im am eating at a table.'},\n",
" {'score': 0.3150152862071991,\n",
" 'token': 4825,\n",
" 'token_str': 'restaurant',\n",
" 'sequence': 'hello, im am eating at a restaurant.'},\n",
" {'score': 0.07178683578968048,\n",
" 'token': 3347,\n",
" 'token_str': 'bar',\n",
" 'sequence': 'hello, im am eating at a bar.'},\n",
" {'score': 0.04275984317064285,\n",
" 'token': 15736,\n",
" 'token_str': 'diner',\n",
" 'sequence': 'hello, im am eating at a diner.'},\n",
" {'score': 0.03227667137980461,\n",
" 'token': 28305,\n",
" 'token_str': 'buffet',\n",
" 'sequence': 'hello, im am eating at a buffet.'}]"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from transformers import pipeline\n",
"unmasker = pipeline('fill-mask', model='bert-base-uncased')\n",
"unmasker(\"Hello, Im am eating at a [MASK].\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Ner\n",
"Let's detect NER"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "aa3db4638fee4c7dad21422964ba9654",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Loading weights: 0%| | 0/391 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"[{'entity_group': 'PER',\n",
" 'score': np.float32(0.9992756),\n",
" 'word': 'Peter',\n",
" 'start': 0,\n",
" 'end': 5},\n",
" {'entity_group': 'ORG',\n",
" 'score': np.float32(0.9804357),\n",
" 'word': 'Universidad Politécnica de Madrid',\n",
" 'start': 21,\n",
" 'end': 54},\n",
" {'entity_group': 'LOC',\n",
" 'score': np.float32(0.9985493),\n",
" 'word': 'Madrid',\n",
" 'start': 58,\n",
" 'end': 64},\n",
" {'entity_group': 'LOC',\n",
" 'score': np.float32(0.99971014),\n",
" 'word': 'Spain',\n",
" 'start': 66,\n",
" 'end': 71}]"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from transformers import pipeline\n",
"\n",
"ner = pipeline(\"ner\", aggregation_strategy=\"simple\")\n",
"ner(\"Peter has studied at Universidad Politécnica de Madrid in Madrid, Spain\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Zero-shot classification\n",
"Classification without examples!"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "407f1b011cf343a292dcac7ac43b7076",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Loading weights: 0%| | 0/393 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"{'sequence': 'one day I will see the world',\n",
" 'labels': ['travel', 'cooking', 'dancing'],\n",
" 'scores': [0.9799639582633972, 0.010605019517242908, 0.00943101104348898]}"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from transformers import pipeline\n",
"classifier = pipeline('zero-shot-classification', model='roberta-large-mnli')\n",
"\n",
"sequence_to_classify = \"one day I will see the world\"\n",
"candidate_labels = ['travel', 'cooking', 'dancing']\n",
"classifier(sequence_to_classify, candidate_labels)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'sequence': 'The CEO had a strong handshake.',\n",
" 'labels': ['male', 'female'],\n",
" 'scores': [0.8384835720062256, 0.16151641309261322]}"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sequence_to_classify = \"The CEO had a strong handshake.\"\n",
"candidate_labels = ['male', 'female']\n",
"hypothesis_template = \"This text speaks about a {} profession.\"\n",
"classifier(sequence_to_classify, candidate_labels, hypothesis_template=hypothesis_template)"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[{'sequence': 'Nadal has won the last match',\n",
" 'labels': ['sport', 'culture', 'economics', 'politics'],\n",
" 'scores': [0.8608441948890686,\n",
" 0.07932581007480621,\n",
" 0.03197344020009041,\n",
" 0.02785664051771164]},\n",
" {'sequence': 'There is an election in Bulgaria',\n",
" 'labels': ['politics', 'culture', 'economics', 'sport'],\n",
" 'scores': [0.9623261094093323,\n",
" 0.015147225931286812,\n",
" 0.012851406820118427,\n",
" 0.00967522244900465]},\n",
" {'sequence': 'The oil price is very high',\n",
" 'labels': ['economics', 'culture', 'politics', 'sport'],\n",
" 'scores': [0.8462417125701904,\n",
" 0.06119672581553459,\n",
" 0.04652843996882439,\n",
" 0.04603307321667671]},\n",
" {'sequence': 'The new film by Almodovar has been just released',\n",
" 'labels': ['culture', 'politics', 'sport', 'economics'],\n",
" 'scores': [0.7116525769233704,\n",
" 0.12886498868465424,\n",
" 0.10017068684101105,\n",
" 0.05931183695793152]}]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sentences = [\"Nadal has won the last match\", \"There is an election in Bulgaria\", \"The oil price is very high\", \"The new film by Almodovar has been just released\"]\n",
"candidate_labels = ['sport', 'politics', 'culture', 'economics']\n",
"classifier(sentences, candidate_labels)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Text generation\n",
"Let's generate"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "e8344a8f6f8544258a5aa29786c4e382",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Loading weights: 0%| | 0/148 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"[{'generated_text': \"This articles aims evaluating transformers' capabilities and providing links for readers who may be interested in this topic.\\n\\nIn this article, we will look at two transformers, KV-8-1 and KV-8-2, as well as the KV-8-2R.\\n\\nA: KV-8-1\\n\\nThe KV-8-1 transforms the KV-8-1 into a single unit which can be assembled by the user. The KV-8 transforms the KV-8 into a single unit which can be assembled by the user.\\n\\nWe will examine the KV-8-1R, and discuss its advantages and disadvantages.\\n\\nKV-8-1R\\n\\nThe KV-8-1R transformers are a very common unit of measurement in the industry. In addition to being very useful for the user, they also provide very nice results.\\n\\nThe KV-8-1R is a standard unit of measurement for measuring the flow of water. It is used in water-saving applications such as a heater, the heating system, the heating system-in-ground, and so on.\\n\\nThe KV-8-1R is a standard unit of measurement for measuring the\"}]"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from transformers import pipeline\n",
"\n",
"generation = pipeline(\"text-generation\")\n",
"\n",
"generation(\"This articles aims evaluating transformers' capabilities\")\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Question-Answering\n",
"Let's create a QA!"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "8f9ff6f823804e57b2c793e23b1404e5",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Loading weights: 0%| | 0/102 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/plain": [
"{'score': 0.8235693573951721,\n",
" 'start': 52,\n",
" 'end': 77,\n",
" 'answer': 'Alcobendas, Madrid, Spain'}"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from transformers import pipeline\n",
"\n",
"qa = pipeline(\"question-answering\")\n",
"\n",
"qa(\n",
" question = \"Where was born Penelope Cruz?\",\n",
" context = '''\n",
" Cruz was born on April 28, 1974, in Alcobendas, Madrid, Spain. \n",
" In July 2010, Cruz married her Vicky Cristina Barcelona co-star, \n",
" Spanish actor Javier Bardem. The couple had begun dating early into filming, in 2007.\n",
" '''\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'score': 0.4068848490715027,\n",
" 'start': 126,\n",
" 'end': 202,\n",
" 'answer': 'Vicky Cristina Barcelona co-star,\\n Spanish actor Javier Bardem'}"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"qa(\n",
" question = \"Who is Penelope Cruz' husband?\",\n",
" context = '''\n",
" Cruz was born on April 28, 1974, in Alcobendas, Madrid, Spain. \n",
" In July 2010, Cruz married her Vicky Cristina Barcelona co-star,\n",
" Spanish actor Javier Bardem. The couple had begun dating early into filming, in 2007.\n",
" '''\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Text-to-Speech"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "e9d09747d5a34b9cbcd75ab88fe9acd7",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"Loading weights: 0%| | 0/542 [00:00, ?it/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "6d8d18cd05944873993dc9ec1580b542",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"model.safetensors: 0%| | 0.00/1.68G [00:00, ?B/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "a9ec53881b6b4ccf8c2aef4ae1c4267a",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"speaker_embeddings_path.json: 0.00B [00:00, ?B/s]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/html": [
"\n",
" \n",
" "
],
"text/plain": [
""
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from transformers import pipeline\n",
"\n",
"pipe = pipeline(\"text-to-speech\", model=\"suno/bark-small\")\n",
"text = \"[clears throat] This is a test ... and I just took a long pause.\"\n",
"output = pipe(text)\n",
"\n",
"from IPython.display import Audio \n",
"\n",
"Audio(output[\"audio\"], rate=output[\"sampling_rate\"])"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"## References\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"* [Hugging Face Tutorial](https://huggingface.co/learn/nlp-course/chapter1/1) "
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"## Licence"
]
},
{
"cell_type": "markdown",
"metadata": {
"slideshow": {
"slide_type": "skip"
}
},
"source": [
"The notebook is freely licensed under under the [Creative Commons Attribution Share-Alike license](https://creativecommons.org/licenses/by/2.0/). \n",
"\n",
"© Carlos A. Iglesias, Universidad Politécnica de Madrid."
]
}
],
"metadata": {
"celltoolbar": "Slideshow",
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.2"
},
"latex_envs": {
"LaTeX_envs_menu_present": true,
"autocomplete": true,
"bibliofile": "biblio.bib",
"cite_by": "apalike",
"current_citInitial": 1,
"eqLabelWithNumbers": true,
"eqNumInitial": 1,
"hotkeys": {
"equation": "Ctrl-E",
"itemize": "Ctrl-I"
},
"labels_anchors": false,
"latex_user_defs": false,
"report_style_numbering": false,
"user_envs_cfg": false
}
},
"nbformat": 4,
"nbformat_minor": 4
}