Bitten By Python 👋

Python, Go, etc.

Benchmarking de GPU avec Llama.cpp

AprĂšs avoir ajoutĂ© un GPU et paramĂ©trer ma configuration, j’ai voulu benchmarker ma carte graphique. J’ai utilisĂ© Llama.cpp et je l’ai compilĂ© pour utiliser un GPU NVIDIA. Je rĂ©capitule ici les diffĂ©rentes Ă©tapes. MatĂ©riel utilisĂ© OS: Ubuntu 24.04 LTS (Official page) GPU: NVIDIA RTX 3060 (affiliate link) CPU: AMD Ryzen 7 5700G (affiliate link) RAM: 52 GB Storage: Samsung SSD 990 EVO 1TB (affiliate link) Installer le NVIDIA CUDA Toolkit Pour compiler llama.cpp, on a besoin d’installer le NVIDIA CUDA Toolkit. Pas de difficultĂ© particuliĂšre, il suffit de suivre la documentation (qui est trĂšs bien faite). ...

16 dĂ©c. 2024 Â· GwenaĂ«l Nardin

Installer Ollama et OpenWebUI sous Ubuntu 24.04 avec un GPU NVIDIA RTX3060

Dans le cadre d’un projet personnel, je me suis Ă©quipĂ© d’un GPU NVIDIA (une RTX 3060) afin de pouvoir faire tourner convenablement des modĂšles de LLM en local. Pour utiliser facilement diffĂ©rent modĂšle, je m’appuie sur OpenWebUI (avec Ollama) ; comme l’installation peut ĂȘtre un peu Ă©pique, je rĂ©capitule les diffĂ©rentes Ă©tapes ici. Configuration utilisĂ©e Dans mon PC, j’ai : OS : Ubuntu 24.04 LTS (Page officielle) GPU : NVIDIA RTX 3060 (lien affiliĂ©) CPU : AMD Ryzen 7 5700G (lien affiliĂ©) RAM : 52 Go Stockage : Samsung SSD 990 EVO 1TB (lien affiliĂ©) Ce qui permet de faire tourner correctement (une trentaine de tokens/s) des modĂšles de 14B. ...

11 dĂ©c. 2024 Â· GwenaĂ«l Nardin

Nouvelle version de Go : 1.18

Generics On peut dĂ©finir la programmation gĂ©nĂ©rique comme un style de programmation qui permet de reprĂ©senter des fonctions et des structures de donnĂ©es sous une forme gĂ©nĂ©rique, avec des types adaptĂ©s. Ca, c’est pour la thĂ©orie. Voyons un exemple. Pour illustrer le principe, imaginons que nous avons besoins de calculer la somme des Ă©lĂ©ments d’un map de int64 : // SumInts adds together the values of m. func SumInts(m map[string]int64) int64 { var s int64 for _, v := range m { s += v } return s } Rien d’exceptionnel. ...

25 mars 2022 Â· GwenaĂ«l Nardin

Programmation concurrente avec des goroutines

Nouvelle annĂ©e, nouveau challenge ! Ca fait pas mal de temps de je lorgne sur le Go (ou Golang) et ça y est, il est venu le temps de s’y mettre ! Avant cela, j’ai (un peu) mis Ă  jour mon site et rajouter un lien pour ma page LinkedIn : n’hĂ©sitez pas Ă  me suivre ou m’ajouter afin de recevoir les prochaines mises Ă  jour 😊. Le Go (ou Golang) est un langage dĂ©veloppĂ© depuis quelques annĂ©es dĂ©sormais (plus de 10 ans) par une Ă©quipe de Google, et pas des dĂ©butants ! Notamment Brian Kernighan, Ă©minent informaticien en C et autre. Ils ont alors dĂ©veloppĂ© ce langage pour simplifier l’utilisation du multithreading, principe au coeur du Go. ...

2 sept. 2021 Â· GwenaĂ«l Nardin

A la découverte de MicroPython sur ESP32

Hello ! Comme c’est les vacances et qu’il faut bien s’occuper (#geeker) un peu, j’ai jouĂ© un peu avec MicroPython sur un microcontrĂŽleur de type ESP32. Je me suis basĂ© sur la lecture de Programmer en MicroPython, qui est le seul livre en français sur le sujet. Bon, il y en 2-3 de plus en anglais, mais rien de folichon non plus
 Pour le matĂ©riel, j’ai utilisĂ© ma carte ESP32 Gateway de chez Olimex que j’avais sous la main. Voyons voir ce que l’on peut faire avec tout ça! đŸ•”ïžâ€â™‚ïž ...

24 aoĂ»t 2018 Â· GwenaĂ«l Nardin

Comprendre les décorateurs

Hello ! Vous avez peut-ĂȘtre dĂ©jĂ  rencontrĂ© lors de la consultation de code Ă©crit par quelqu’un d’autre la prĂ©sence d’un @ suivi d’un nom juste avant la dĂ©finition d’une fonction et vous vous ĂȘtes posĂ© la question “à quoi cela peut-il bien servir ?”. Voyons cela ensemble. Poser les bases En Python, les fonctions sont des Objet de premiĂšre classe, c’est Ă  dire qu’elles se comporte comme n’importe quel objet. Exemple : # une fonction de toute beautĂ© def ma_fonction(): print('hello toto') Comme elle se comporte comme un objet, je peux la stocker dans une variable puis l’appeler en ajoutant les parenthĂšses lors de l’appel de ma variable : ...

6 fĂ©vr. 2018 Â· GwenaĂ«l Nardin

Comment (enfin!) utiliser Vim

Hello ! Vous connaissez Vim ? Mais si, quand vous ĂȘtes sur Linux et que le seul Ă©diteur disponible c’est lui ! Quand vous ne comprenez jamais quand est-ce qu’il va Ă©crire dans le fichier ou s’il va exĂ©cuter des commandes
 Vim, ce grand incompris, si difficile Ă  utiliser
 Et pourtant, quand vous faites quelques recherches (j’ai pas dit RTFM..) pour retrouver ces #!@?!#@! de commandes pour enfin rĂ©ussir Ă  faire une modif dans un fichier de conf, vous tombez sur pleins d’articles oĂč les gens sont heureux depuis qu’il maĂźtrise cet outil du diable ! Comment est-ce possible ? Et il y a des gens qui l’utilise pour faire du dĂ©v ??? Moi qui n’arrive pas Ă  modifier mon .conf
 ...

28 janv. 2018 Â· GwenaĂ«l Nardin

Comment et pourquoi utiliser les notebook Jupyter

Hello ! Vous avez peut ĂȘtre entendu parler des notebook de Jupyter et si comme moi, vous vous ĂȘtes demandĂ© Ă  quoi bon cela peut bien servir, je vais vous aider Ă  y voir un peu plus clair. DĂ©jĂ , Ă  quoi ils ressemblent ? Vous pouvez trouver une large galerie d’exemple ici. Voyons un peu ce que on peut en faire. Cas d’utilisation Les notebook ressemblent finalement Ă  des pages Web dynamique, avec des champs que l’on peut exĂ©cuter et voir le rĂ©sultat en direct. Les grands cas d’utilisation sont souvent en sciences car c’est trĂšs pratique pour prĂ©senter des rĂ©sultats pas Ă  pas, expliquer des contextes. On les retrouvent souvent dans les domaines de : ...

22 janv. 2018 Â· GwenaĂ«l Nardin

ModÚles et hyperparamétres

Hello, L’un des problĂšmes lorsque l’on dĂ©bute en machine learning est le choix de l’algorithme (ou modĂšle) Ă  utiliser. Je viens de tomber sur un article du blog de Kaggle oĂč l’auteur partage son approche des diffĂ©rents problĂšmes Ă  rĂ©soudre en ML. J’ai notĂ© deux parties qui m’ont Ă©clairĂ© un peu plus sur le choix des modĂšles et des hyperparamĂštres Ă  rĂ©gler. Choix d’un modĂšle Il y a deux grandes familles d’algorithmes : ceux qui permettent de rĂ©aliser une prĂ©diction (Ă  l’aide d’une rĂ©gression) et ceux qui identifie une variable parmi d’autres (la classification). Les modĂšles les plus courants pour rĂ©aliser ses tĂąches sont donc : ...

14 janv. 2018 Â· GwenaĂ«l Nardin

DĂ©buter en IA : challenge Titanic

Hello, AprĂšs avoir dĂ©butĂ© la lecture de Machine Learning avec Scikit-Learn, j’ai pris au mot l’auteur dĂšs la fin du deuxiĂšme chapitre et j’ai tentĂ© d’appliquer la mĂ©thode sur des donnĂ©es “rĂ©elles”. J’ai donc Ă©tĂ© sur le site Kaggle qui propose (entre autre) un jeu de donnĂ©es pour dĂ©butant autour du Titanic, le but est de prĂ©dire les survivants. Bon, on se retrousse les manches, c’est parti ! DĂ©couverte des donnĂ©es RĂ©cupĂ©ration des informations L’ensemble des donnĂ©es est fourni dans deux fichiers CSV : train.csv pour nous permettre d’entrainer un modĂšle et test.csv qui nous permettra de valider (ou non) notre algorithme. ...

4 janv. 2018 Â· GwenaĂ«l Nardin