5. Outils supplémentaires#
5.1. Outils sous Xpra#
Le système inclus un émulateur X11, xpra
[2] , qui permet d’éxécuter dans un
navigateur des applications graphiques X11 sur le serveur. On lance xpra à
partir de l’interface jupyterlab, et dans un nouvel onglet on a un
environnement X11 qui tourne sur le serveur. Un exemple d’interface X11 est donné ci-dessous.

Warning
Attention Lorsque que vous avez terminé l’utilisation de Xpra, il faut l’arréter et pas se contenter de fermer la fenêtre.
Pour arrêter Xpra, allez dans le menu le plus à gauche et sélectionner Disconnect
.
5.2. IDE Python Spyder#
Dans le terminal, on peut alors lancer des applications graphiques, comme par exemple spyder[3], qui est un IDE Python. Pour cela, on éxecute dans le terminal Xpra les commandes suivantes:
cd GPU
source /var/lib/jupyterhub/venvs/tf/bin/activate
spyder
qui ouvre spyder dans le répertoire GPU où on peut charger le programme Python TensorFlowLSTM.py
que l’on éditer et debugger avec spyder [3].
Attention, avec spyder, on doit bien sur spécifier l’environnement virtuel Python que l’on veut utiliser (ici Tensor Flow).

5.3. Tensorboard#
Tensorboard[4] est outil d’analyse en IA qui fournit les mesures et les visualisations nécessaires au cours du workflow d’apprentissage automatique. Il permet de suivre les métriques de l’apprentissage telles que la perte et la précision, de visualiser les graphiques du modèle, et bien plus encore.
Pour utiliser tensorboard dans un notebook, on l’initialise au début du notebook dans une cellule
# Load the TensorBoard notebook extension
%load_ext tensorboard
et on efface les logs précédents.
Avec tensorflow, lors de l’apprentissage du modèle avec Model.fit()
(avec Keras) , on ajoute
un appel à tf.keras.callbacks.TensorBoard
qui permet de créer les journaux (logs) (dans le répertoire spécifié) et
des histogrammes de calcul pour chaque époque avec histogram_freq=1
(qui est désactivée par défaut).
A la fin de l’apprentissage, on lance le programme tensorboard
avec la commande:
tensorboard --logdir logs/fit
puis on ouvre un nouvel onglet dans le navigateur pour accéder à la page d’analyse tensorboard en entrant l’URL suivante:
https://iagpu2-streamlit.univ-lyon1.fr/tensorboard1/
qui fournit une analyse de l’apprentissage comme le montre la figure ci-dessous.

Le notebook python utilisé avec tensorboard est donné dans la section suivante.
Warning
Attention l’interface tensorboard est partagé entre tous les utilisateurs, car tensorboard
utilise un serveur web avec des ports réservés. Pensez à arreter tensorboard avec ctrl+C
et
le notebook avec ctrl+shift+Q
.
Par défaut, 2 ports sont réservés à tensorboard:
le port 6006 qui est le port par défaut
le port 6007 que l’on peut utiliser si le premier est déja utilisé en spécifiant:
tensorboard --port=6007 --logdir logs/fit
Dans ce cas, l’URL à utilisé pour visualiser le résultat est la suivante:
https://iagpu2-streamlit.univ-lyon1.fr/tensorboard2/
5.4. Programmation C++ (cling)#
Un noyau Jupyter C++ est aussi disponible, utilisant l’interpréteur cling.

Vous trouverez dans les sections suivantes un exemple d’utilisation de ce noyau
Pour l’ustilisation de cuda, les fichiers d’entêtes cuda sont dans /usr/local/cuda/include
et les bibliothèques sont dans
/usr/local/cuda/lib64
. Les outils cuda (nvcc, ..) sont dans /usr/local/cuda/bin
5.5. Jupyter AI#
Jupyter AI[6] est une extension de Jupyter qui permet d’utiliser des modèles AI génératives (LLM) dans des notebooks Ipython.

Attention pour utiliser cette extension, il faut avoir accès à un LLM (ChatGPT, Mistral, ..) et à son
API. On peut aussi utiliser Ollama[7], qui est installé sur le serveur, et qui permet
d’exécuter localement des modèles LLM comme ChatGPT, Mistral, LLama.
La liste actuelle des modèles est donnée par la commande ollama list
:
ollama list
NAME ID SIZE MODIFIED
mistral-small:latest 8039dd90c113 14 GB 17 hours ago
deepseek-r1:70b 0c1615a8ca32 42 GB 46 hours ago
deepseek-r1:70b-llama-distill-fp16 5c3319143a79 141 GB 47 hours ago
llama3.2:latest a80c4f17acd5 2.0 GB 2 weeks ago
codellama:latest 8fdf8f752f6e 3.8 GB 2 weeks ago
La configuration sous JupyterAI avec Ollama est un peu délicate, et il est préférable
d’écrire directement le fichier de configuration config.json
, qui se trouve dans
le répertoire de l’utilisateur: ~/.local/share/jupyter/jupyter_ai
.
Le type fichier config.json
pour ollama est de la forme
{
"model_provider_id": "ollama:codellama",
"embeddings_provider_id": "ollama:nomic-embed-text",
"send_with_shift_enter": true,
"fields": {},
"api_keys": {},
"completions_model_provider_id": null,
"completions_fields": {}
}
Une fois le modèle d’AI configuré, on peut interagir avec le modèle avec le chat JupyterAI à gauche de la fenêtre Jupyterlab.
Les principales commandes sont les suivantes:
/ask
pour poser une question/fix
pour expliquer l’erreur dans la cellule sélectionnée/help
pour l’aide/learn
pour faire un apprentissage à partir de fichiers locaux dans un répertoire
On peut faire référence au contenu d’une cellule numéro num
avec {In[num]}
ou avec la sortie
correspondante avec Out[num]}
ou l’erreur {Err[num]}
.
On peut aussi interagir directement dans le Notebook en utilisant les commandes magiques %%ai
et %ai
Au début du Notebook, on charge l’extension JupyterAI et on configure le modèle à utiliser
%load_ext jupyter_ai_magics
# p.e pour Mistral
%config AiMagics.default_language_model = "mistralai:mistral-large-latest"
%env MISTRAL_API_KEY=xxxxxxx
On peut ensuite interagir avec le mofèle LLM avec des commandes
%%ai
Vous trouverez dans la section suivante un exemple d’utilisation de JupyterAi dans un notebook IPython avec le LLM mistral.
et dans cette section la même application JupyterAI mais avec ollama. Le résultat pour la génération de code est un peu moins bon qu’avec mistral.
5.6. Programmation R avec des R-Notebook#
Un noyau R est installé sous Juputerlab pour permettre la programmation avec un noyau IRKernel[8].

Vous trouverez ci-dessous la liste des bibliotèques disponibles.
Liste des paquets R disponibles
Packages R disponibles
Packages dans la bibliothèque ‘/usr/local/lib/R/site-library’ :
askpass Password Entry Utilities for R, Git, and SSH
base64enc Tools for base64 encoding
brew Templating Framework for Report Generation
brio Basic R Input Output
bslib Custom 'Bootstrap' 'Sass' Themes for 'shiny'
and 'rmarkdown'
cachem Cache R Objects with Automatic Pruning
callr Call R from R
cli Helpers for Developing Command Line Interfaces
clipr Read and Write from the System Clipboard
colorspace A Toolbox for Manipulating and Assessing Colors
and Palettes
commonmark High Performance CommonMark and Github Markdown
Rendering in R
cpp11 A C++11 Interface for R's C Interface
crayon Colored Terminal Output
credentials Tools for Managing SSH and Git Credentials
crosstalk Inter-Widget Interactivity for HTML Widgets
curl A Modern and Flexible Web Client for R
data.table Extension of `data.frame`
DatastreamDSWS2R Provides a Link Between the 'LSEG Datastream'
System and R
desc Manipulate DESCRIPTION Files
devtools Tools to Make Developing R Packages Easier
diffobj Diffs for R Objects
digest Create Compact Hash Digests of R Objects
downlit Syntax Highlighting and Automatic Linking
dplyr A Grammar of Data Manipulation
eikonapir Refinitiv Eikon Scripting API for R
ellipsis Tools for Working with ...
evaluate Parsing and Evaluation Tools that Provide More
Details than the Default
fansi ANSI Control Sequence Aware String Functions
farver High Performance Colour Space Manipulation
fastmap Fast Data Structures
fontawesome Easily Work with 'Font Awesome' Icons
foreach Provides Foreach Looping Construct
fs Cross-Platform File System Operations Based on
'libuv'
generics Common S3 Generics not Provided by Base R
Methods Related to Model Fitting
gert Simple Git Client for R
ggplot2 Create Elegant Data Visualisations Using the
Grammar of Graphics
gh 'GitHub' 'API'
gitcreds Query 'git' Credentials from 'R'
glue Interpreted String Literals
gtable Arrange 'Grobs' in Tables
highr Syntax Highlighting for R Source Code
htmltools Tools for HTML
htmlwidgets HTML Widgets for R
httpuv HTTP and WebSocket Server Library
httr Tools for Working with URLs and HTTP
httr2 Perform HTTP Requests and Process the Responses
ini Read and Write '.ini' Files
IRdisplay 'Jupyter' Display Machinery
IRkernel Native R Kernel for the 'Jupyter Notebook'
isoband Generate Isolines and Isobands from Regularly
Spaced Elevation Grids
iterators Provides Iterator Construct
jquerylib Obtain 'jQuery' as an HTML Dependency Object
jsonlite A Simple and Robust JSON Parser and Generator
for R
knitr A General-Purpose Package for Dynamic Report
Generation in R
labeling Axis Labeling
later Utilities for Scheduling Functions to Execute
Later with Event Loops
lazyeval Lazy (Non-Standard) Evaluation
lifecycle Manage the Life Cycle of your Package Functions
magrittr A Forward-Pipe Operator for R
memoise 'Memoisation' of Functions
mime Map Filenames to MIME Types
miniUI Shiny UI Widgets for Small Screens
munsell Utilities for Using Munsell Colours
openssl Toolkit for Encryption, Signatures and
Certificates Based on OpenSSL
pbdZMQ Programming with Big Data -- Interface to
'ZeroMQ'
pillar Coloured Formatting for Columns
pkgbuild Find Tools Needed to Build R Packages
pkgconfig Private Configuration for 'R' Packages
pkgdown Make Static HTML Documentation for a Package
pkgload Simulate Package Installation and Attach
plotly Create Interactive Web Graphics via 'plotly.js'
praise Praise Users
prettyunits Pretty, Human Readable Formatting of Quantities
processx Execute and Control System Processes
profvis Interactive Visualizations for Profiling R Code
promises Abstractions for Promise-Based Asynchronous
Programming
ps List, Query, Manipulate System Processes
purrr Functional Programming Tools
R6 Encapsulated Classes with Reference Semantics
ragg Graphic Devices Based on AGG
rappdirs Application Directories: Determine Where to
Save Data, Caches, and Logs
rcmdcheck Run 'R CMD check' from 'R' and Capture Results
RColorBrewer ColorBrewer Palettes
Rcpp Seamless R and C++ Integration
remotes R Package Installation from Remote
Repositories, Including 'GitHub'
repr Serializable Representations
rlang Functions for Base Types and Core R and
'Tidyverse' Features
rmarkdown Dynamic Documents for R
roxygen2 In-Line Documentation for R
rprojroot Finding Files in Project Subdirectories
rstudioapi Safely Access the RStudio API
rversions Query 'R' Versions, Including 'r-release' and
'r-oldrel'
sass Syntactically Awesome Style Sheets ('Sass')
scales Scale Functions for Visualization
sessioninfo R Session Information
shiny Web Application Framework for R
sourcetools Tools for Reading, Tokenizing and Parsing R
Code
stringi Fast and Portable Character String Processing
Facilities
stringr Simple, Consistent Wrappers for Common String
Operations
sys Powerful and Reliable Tools for Running System
Commands in R
systemfonts System Native Font Finding
testthat Unit Testing for R
textshaping Bindings to the 'HarfBuzz' and 'Fribidi'
Libraries for Text Shaping
tibble Simple Data Frames
tidyr Tidy Messy Data
tidyselect Select from a Set of Strings
tinytex Helper Functions to Install and Maintain TeX
Live, and Compile LaTeX Documents
urlchecker Run CRAN URL Checks from Older R Versions
usethis Automate Package and Project Setup
utf8 Unicode Text Processing
uuid Tools for Generating and Handling of UUIDs
vctrs Vector Helpers
viridisLite Colorblind-Friendly Color Maps (Lite Version)
waldo Find Differences Between R Objects
whisker {{mustache}} for R, Logicless Templating
withr Run Code 'With' Temporarily Modified Global
State
xfun Supporting Functions for Packages Maintained by
'Yihui Xie'
xml2 Parse XML
xopen Open System Files, 'URLs', Anything
xtable Export Tables to LaTeX or HTML
xts eXtensible Time Series
yaml Methods to Convert R Data to YAML and Back
zip Cross-Platform 'zip' Compression
zoo S3 Infrastructure for Regular and Irregular
Time Series (Z's Ordered Observations)
Packages dans la bibliothèque ‘/usr/lib/R/library’ :
base The R Base Package
boot Bootstrap Functions (Originally by Angelo Canty
for S)
class Functions for Classification
cluster "Finding Groups in Data": Cluster Analysis
Extended Rousseeuw et al.
codetools Code Analysis Tools for R
compiler The R Compiler Package
datasets The R Datasets Package
foreign Read Data Stored by 'Minitab', 'S', 'SAS',
'SPSS', 'Stata', 'Systat', 'Weka', 'dBase', ...
graphics The R Graphics Package
grDevices The R Graphics Devices and Support for Colours
and Fonts
grid The Grid Graphics Package
KernSmooth Functions for Kernel Smoothing Supporting Wand
& Jones (1995)
lattice Trellis Graphics for R
MASS Support Functions and Datasets for Venables and
Ripley's MASS
Matrix Sparse and Dense Matrix Classes and Methods
methods Formal Methods and Classes
mgcv Mixed GAM Computation Vehicle with Automatic
Smoothness Estimation
nlme Linear and Nonlinear Mixed Effects Models
nnet Feed-Forward Neural Networks and Multinomial
Log-Linear Models
parallel Support for Parallel Computation in R
rpart Recursive Partitioning and Regression Trees
spatial Functions for Kriging and Point Pattern
Analysis
splines Regression Spline Functions and Classes
stats The R Stats Package
stats4 Statistical Functions using S4 Classes
survival Survival Analysis
tcltk Tcl/Tk Interface
tools Tools for Package Development
utils The R Utils Package
Un exemple de Notebbok R est donné ci-dessous: