<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bert Vanhalst &#8211; Smals Research</title>
	<atom:link href="https://www.smalsresearch.be/author/vanhalst/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.smalsresearch.be</link>
	<description></description>
	<lastBuildDate>Wed, 01 Apr 2026 12:37:26 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.smalsresearch.be/wp-content/uploads/2026/01/cropped-cropped-Smals_Research-32x32.png</url>
	<title>Bert Vanhalst &#8211; Smals Research</title>
	<link>https://www.smalsresearch.be</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Garde-fous : délimitez votre IA</title>
		<link>https://www.smalsresearch.be/garde-fous-delimitez-votre-ai/</link>
		
		<dc:creator><![CDATA[Bert Vanhalst]]></dc:creator>
		<pubDate>Thu, 27 Nov 2025 09:30:57 +0000</pubDate>
				<category><![CDATA[[FR]]]></category>
		<category><![CDATA[Blog post]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">/?p=24564</guid>

					<description><![CDATA[Les garde-fous contribuent à la sûreté et à la fiabilité des applications d'IA. Découvrez comment dans cet article.]]></description>
										<content:encoded><![CDATA[
<p><em>Dit artikel is ook beschikbaar in het <a href="/guardrails-hou-je-ai-binnen-de-lijntjes/">Nederlands</a>.</em></p>



<p>Le monde de l&#8217;IA évolue à une vitesse vertigineuse et l&#8217;émergence du <a href="/qualite-dun-systeme-generatif-de-questions-reponses/">Retrieval-Augmented Generation (RAG)</a> ouvre de nouvelles possibilités pour combiner intelligemment des données et des modèles de langage.</p>



<p>Les systèmes RAG combinent la capacité générative des LLM avec l&#8217;extraction d&#8217;informations pertinentes et actualisées dans des sources de données. Cela les rend plus puissants, mais aussi plus complexes, car ils dépendent de la qualité du modèle et des données utilisées, et sont susceptibles de diffuser des informations obsolètes, incorrectes ou inappropriées.</p>



<p>Dans un <a href="/experiences-pratiques-avec-levaluation-automatique-de-la-rag/">précédent article de blog</a>, nous avons expliqué comment les évaluations automatiques peuvent aider à mesurer la qualité d&#8217;un système RAG et à l&#8217;améliorer de manière interactive. Mais la qualité seule ne suffit pas. Pour que les systèmes d&#8217;IA fonctionnent non seulement <em>correctement</em>, mais aussi de manière <em>sûre</em> et <em>responsable</em>, des garde-fous s&#8217;imposent. Par garde-fous, nous entendons les directives, les restrictions techniques et les cadres éthiques qui garantissent que les systèmes d&#8217;IA opèrent dans des limites acceptables. Ils empêchent un résultat indésirable ou préjudiciable et assurent la conformité des systèmes d&#8217;IA avec les valeurs humaines et les normes sociales.</p>



<p>Que sont exactement ces garde-fous et comment les utiliser efficacement&nbsp;? C&#8217;est ce que nous allons explorer dans cet article.</p>



<h1 class="wp-block-heading">La nécessité des garde-fous</h1>



<p>Les applications basées sur des LLM comportent divers risques qui soulignent la nécessité de garde-fous solides. Sans protection adéquate, les instructions du système peuvent être dérobées. Celles-ci donnent un aperçu de la logique interne et des mécanismes de sécurité, que vous préférez ne pas voir divulgués. Il existe également un risque d&#8217;atteinte à la vie privée lorsque des données à caractère personnel parviennent à des fournisseurs de modèles externes. En outre, les modèles peuvent générer des réponses préjudiciables, allant de propos haineux à des conseils d&#8217;automutilation, ou des informations incorrectes en raison d&#8217;un résultat hallucinatoire. Les questions hors sujet peuvent entraîner une utilisation abusive de l&#8217;application et augmenter les coûts, tandis que des réponses inappropriées ou non conformes peuvent nuire à la réputation.</p>



<p>Pour toutes ces raisons, il est essentiel de mettre en place des mécanismes de sécurité solides, car ils constituent un rempart contre ces risques divers et contribuent à la sûreté et à la fiabilité des applications d&#8217;IA ainsi qu&#8217;à leur conformité avec les attentes des utilisateurs et des organisations.</p>



<h1 class="wp-block-heading">Méthodes et techniques</h1>



<p>Les garde-fous sont généralement déployés à deux niveaux&nbsp;: juste avant que les données d&#8217;entrée ne soient envoyées au modèle de langage (filtre à l&#8217;entrée) ou juste après la génération des résultats en sortie, mais avant qu&#8217;elle ne parvienne à l&#8217;utilisateur final (filtre à la sortie).</p>



<figure class="wp-block-image"><a href="/wp-content/uploads/2025/11/with_and_without_guardrails.png"><img fetchpriority="high" decoding="async" width="1862" height="923" src="/wp-content/uploads/2025/11/with_and_without_guardrails.png" alt="Input &amp; output guardrails" class="wp-image-24456" srcset="https://www.smalsresearch.be/wp-content/uploads/2025/11/with_and_without_guardrails.png 1862w, https://www.smalsresearch.be/wp-content/uploads/2025/11/with_and_without_guardrails-300x149.png 300w, https://www.smalsresearch.be/wp-content/uploads/2025/11/with_and_without_guardrails-768x381.png 768w, https://www.smalsresearch.be/wp-content/uploads/2025/11/with_and_without_guardrails-1024x508.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2025/11/with_and_without_guardrails-1536x761.png 1536w" sizes="(max-width: 1862px) 100vw, 1862px" /></a></figure>



<p></p>



<p>Garde-fous d&#8217;entrée et de sortie – source&nbsp;: <a href="https://github.com/guardrails-ai/guardrails">https://github.com/guardrails-ai/guardrails</a></p>



<p>Il existe globalement quatre techniques pour concrètement mettre en œuvre les garde-fous.</p>



<ul class="wp-block-list">
<li>Les <strong>garde-fous natifs LLM</strong> sont des mécanismes de sécurité intégrés dans les services proposés par les fournisseurs des modèles eux-mêmes, celui inclut par exemple le filtrage des résultats préjudiciables ou l&#8217;exclusion de certaines instructions. Ils constituent une première ligne de défense, et doivent généralement être complétés par une ou plusieurs des techniques ci-dessous.</li>



<li>Dans le cas des <strong>garde-fous basés sur le prompt</strong>, des instructions spécifiques sont ajoutées au prompt afin d&#8217;influencer le comportement du modèle. Un exemple typique consiste à obliger le modèle à répondre exclusivement sur la base des informations contextuelles fournies (via RAG) afin qu&#8217;il ne génère pas de résultats incontrôlés ou indésirables. Un autre exemple consiste à ajouter des instructions pour éviter que le système d&#8217;IA ne donne des conseils médicaux. L&#8217;exemple ci-dessous montre les instructions ajoutées au prompt pour éviter que l&#8217;application ne donne des conseils médicaux, avec un exemple de conversation dans laquelle l&#8217;application produit la réponse souhaitée.</li>
</ul>



<figure class="wp-block-image"><a href="/wp-content/uploads/2025/11/prompt-engineering.png"><img decoding="async" width="1017" height="417" src="/wp-content/uploads/2025/11/prompt-engineering.png" alt="Prompt hardening" class="wp-image-24457" srcset="https://www.smalsresearch.be/wp-content/uploads/2025/11/prompt-engineering.png 1017w, https://www.smalsresearch.be/wp-content/uploads/2025/11/prompt-engineering-300x123.png 300w, https://www.smalsresearch.be/wp-content/uploads/2025/11/prompt-engineering-768x315.png 768w" sizes="(max-width: 1017px) 100vw, 1017px" /></a></figure>



<p></p>



<ul class="wp-block-list">
<li>Les<strong> garde-fous basés sur des règles</strong> agissent de manière déterministe avec des filtres basés sur des mots exacts ou des expressions régulières. Ils permettent d&#8217;effectuer un screening sur certains mots ou sujets et de filtrer des formes simples d&#8217;informations confidentielles, telles que des identifiants, des numéros de téléphone ou des adresses e-mail.</li>



<li>Les <strong style="color: initial;">garde-fous basés sur le ML/LLM</strong><span style="color: initial;"> utilisent des modèles de machine learning ou des </span><em style="color: initial;">LLM-judges</em><span style="color: initial;"> qui sont beaucoup plus aptes à gérer les nuances, l&#8217;intention et le contexte. Ils peuvent évaluer à la fois les entrées et les sorties et les classer, par exemple pour détecter les contenus préjudiciables ou les </span><em style="color: initial;">prompt injections</em><span style="color: initial;"> (tentatives des utilisateurs de manipuler le comportement de l&#8217;application via le prompt). En outre, ils peuvent filtrer les informations sensibles et vérifier les faits en s&#8217;assurant que toutes les affirmations générées en sortie sont étayées par le contexte fourni, comme dans le cas de la RAG.</span></li>
</ul>



<p>Chaque technique a son utilité, sa complexité et son coût. Aussi est-il recommandé d&#8217;évaluer d&#8217;abord les risques spécifiques à un cas d&#8217;utilisation particulier, puis de déterminer les garde-fous réellement nécessaires. Commencez par les méthodes les plus simples (basées sur un prompt et des règles) et ne passez à des techniques plus complexes (basées sur le ML/LLM) que lorsque cela est nécessaire. Ces dernières entraînent en effet une latence et des coûts supplémentaires.</p>



<h1 class="wp-block-heading">Outils</h1>



<p>Il existe de nombreux outils qui prennent en charge ces techniques et facilitent l&#8217;intégration de garde-fous dans une application. Les <strong>frameworks</strong> procurent un environnement complet pour définir, combiner et orchestrer des garde-fous. Ils vous permettent de configurer des règles, des workflows et des étapes de validation sans devoir tout construire vous-même. Exemples&nbsp;: <a href="https://github.com/guardrails-ai/guardrails">Guardrails AI</a>, <a href="https://github.com/protectai/llm-guard/">LLM Guard</a> et <a href="https://docs.nvidia.com/nemo/guardrails">NVIDIA NeMo Guardrails</a>.</p>



<p>Il existe également des <strong>API et des services</strong> qui offrent des fonctionnalités spécifiques, telles que la détection des contenus préjudiciables, le filtrage des données sensibles ou la détection des jailbreaks. Vous pouvez les appeler directement depuis votre application. Nous pouvons citer <a href="https://learn.microsoft.com/en-us/azure/ai-services/content-safety/overview">Azure AI Content Safety</a> ou <a href="https://platform.openai.com/docs/guides/moderation">OpenAI Moderation API</a>.</p>



<p>Sous le capot, ces outils utilisent une combinaison de modèles ML, de <em>LLM-judges</em> et de techniques basées sur des règles. <a href="https://www.llama.com/docs/model-cards-and-prompt-formats/llama-guard-3/">Llama Guard</a> et <a href="https://www.llama.com/docs/model-cards-and-prompt-formats/prompt-guard/">Prompt Guard</a> sont des exemples de modèles ML.</p>



<p>Notre propre expérience montre que certains outils de protection sont nettement moins précis en néerlandais et en français qu&#8217;en anglais. Nous constatons parfois des faux positifs, par exemple lorsque la détection d&#8217;automutilation identifie à tort des phrases inoffensives comme risquées. Pour les applications simples présentant un faible profil de risque et utilisant exclusivement des données publiques, la valeur ajoutée des outils de protection supplémentaires semble limitée. Dans de tels cas, les mécanismes de sécurité intégrés au LLM, associés à un prompt RAG bien conçu, sont généralement suffisants.</p>



<h1 class="wp-block-heading">Conclusion</h1>



<p>En résumé, il est important de toujours utiliser les garde-fous de manière ciblée et stratifiée. Commencez par identifier les risques dans le cas d&#8217;utilisation spécifique, puis choisissez les techniques appropriées, en privilégiant les méthodes simples et en n&#8217;ajoutant des solutions plus complexes que lorsque cela est vraiment nécessaire. Bien qu&#8217;une combinaison de garde-fous natifs LLM, basés sur des prompts, basés sur des règles et basés sur le ML/LLM offre une protection plus robuste, il reste essentiel de comprendre qu&#8217;aucun système ne garantit une sécurité absolue. Les filtres à l&#8217;entrée et à la sortie peuvent produire à la fois des faux positifs et des faux négatifs. De plus, les garde-fous basés sur le ML/LLM occasionnent des coûts et une latence supplémentaires. Un monitoring continu de l&#8217;application d&#8217;IA est recommandé afin de détecter et de traiter rapidement les nouvelles vulnérabilités.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Guardrails: hou je AI binnen de lijntjes</title>
		<link>https://www.smalsresearch.be/guardrails-hou-je-ai-binnen-de-lijntjes/</link>
		
		<dc:creator><![CDATA[Bert Vanhalst]]></dc:creator>
		<pubDate>Tue, 25 Nov 2025 08:41:00 +0000</pubDate>
				<category><![CDATA[[NL]]]></category>
		<category><![CDATA[Blog post]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">/?p=24454</guid>

					<description><![CDATA[Guardrails helpen AI-toepassingen veiliger en betrouwbaarder te maken. Ontdek hier hoe.]]></description>
										<content:encoded><![CDATA[
<p><em>Cet article est aussi disponible <a href="/garde-fous-delimitez-votre-ai/">en français</a>.</em></p>



<p>De wereld van AI evolueert razendsnel, en met de opkomst van <a href="/kwaliteit-van-een-generatief-vraag-antwoordsysteem/">Retrieval-Augmented Generation (RAG)</a> openen zich nieuwe mogelijkheden om data en taalmodellen slim te combineren.</p>



<p>RAG-systemen combineren het generatieve vermogen van LLM’s met het ophalen van relevante, actuele informatie uit databronnen. Dit maakt ze krachtiger, maar ook complexer: ze zijn afhankelijk van de kwaliteit van zowel het model als de gebruikte data, en lopen risico op het verspreiden van verouderde, onjuiste of ongepaste informatie.</p>



<p>In een <a href="/praktische-ervaringen-met-automatische-rag-evaluatie/">vorige blogpost</a> bespraken we hoe automatische evaluaties kunnen helpen om de kwaliteit te meten van een RAG-systeem en het interatief te verbeteren. Maar kwaliteit alleen is niet genoeg. Om AI-systemen niet alleen <em>goed</em> te laten functioneren, maar ook <em>veilig</em> en <em>verantwoord</em>, zijn guardrails nodig. Onder guardrails verstaan we de richtlijnen, technische beperkingen en ethische kaders die ervoor zorgen dat AI-systemen binnen aanvaardbare grenzen opereren. Ze voorkomen ongewenste of schadelijke output en zorgen ervoor dat AI-systemen aansluiten bij menselijke waarden en maatschappelijke normen.</p>



<p>Wat zijn die guardrails precies en hoe zet je ze effectief in? Dat verkennen we in deze blogpost.</p>



<h1 class="wp-block-heading">De nood aan guardrails</h1>



<p>LLM-gebaseerde toepassingen brengen verschillende risico’s met zich mee die de nood aan sterke guardrails duidelijk maken. Zonder passende bescherming kunnen de systeeminstructies ontfutseld worden. Die geven inzicht in interne logica en beveiligingsmechanismen, en die zie je dus liever niet onthuld. Ook bestaat het risico op privacy­schendingen wanneer persoonlijke gegevens bij externe modelproviders terechtkomen. Daarnaast kunnen modellen schadelijke antwoorden genereren, variërend van haatspraak tot zelfbeschadigingsadviezen, of incorrecte informatie door hallucinerende output. Off-topic vragen kunnen leiden tot misbruik van de toepassing en de kosten doen oplopen, terwijl ongepaste of niet-conforme antwoorden reputatieschade kunnen veroorzaken.</p>



<p>Om al deze redenen zijn robuuste guardrails essentieel, omdat ze een buffer vormen tegen deze uiteenlopende risico’s en helpen garanderen dat AI-toepassingen veilig, betrouwbaar en conform de verwachtingen van gebruikers en organisaties functioneren.</p>



<h1 class="wp-block-heading">Methodes en technieken</h1>



<p>Guardrails worden doorgaans op twee niveaus ingezet: vlak vóór de input het taalmodel bereikt (<em>inputfilter</em>), of net na het genereren van de output maar vóór die bij de eindgebruiker terechtkomt (<em>outputfilter</em>).</p>



<figure class="wp-block-image"><a href="/wp-content/uploads/2025/11/with_and_without_guardrails.png"><img decoding="async" width="1862" height="923" src="/wp-content/uploads/2025/11/with_and_without_guardrails.png" alt="Input &amp; output guardrails" class="wp-image-24456" srcset="https://www.smalsresearch.be/wp-content/uploads/2025/11/with_and_without_guardrails.png 1862w, https://www.smalsresearch.be/wp-content/uploads/2025/11/with_and_without_guardrails-300x149.png 300w, https://www.smalsresearch.be/wp-content/uploads/2025/11/with_and_without_guardrails-768x381.png 768w, https://www.smalsresearch.be/wp-content/uploads/2025/11/with_and_without_guardrails-1024x508.png 1024w, https://www.smalsresearch.be/wp-content/uploads/2025/11/with_and_without_guardrails-1536x761.png 1536w" sizes="(max-width: 1862px) 100vw, 1862px" /></a></figure>



<p></p>



<p>Input &amp; output guardrails &#8211; bron: <a href="https://github.com/guardrails-ai/guardrails">https://github.com/guardrails-ai/guardrails</a></p>



<p>In grote lijnen bestaan er vier technieken om guardrails concreet te implementeren.</p>



<ul class="wp-block-list">
<li><strong>LLM-native guardrails</strong> zijn ingebouwde veiligheidsmechanismen die modelproviders zelf voorzien, zoals het vermijden van schadelijke outputs of beperkingen bij het volgen van bepaalde instructies. Ze bieden een eerste verdedigingslinie, maar moeten doorgaans aangevuld worden met één of meerdere van de technieken hieronder.</li>



<li>Bij<strong> prompt-gebaseerde guardrails</strong> worden specifieke instructies toegevoegd aan de prompt om het gedrag van het model te beïnvloeden. Een typisch voorbeeld is om het model te verplichten om uitsluitend te antwoorden op basis van aangeleverde contextinformatie (via RAG) zodat het geen ongecontroleerde of ongewenste output genereert. Een ander voorbeeld is het toevoegen van instructies om te vermijden dat het AI-systeem medisch advies geeft. In het voorbeeld hieronder zijn instructies te zien die toegevoegd worden aan de prompt om te vermijden dat de toepassing medisch advies geeft, samen met een voorbeeld van een conversatie waarbij de toepassing het gewenste antwoord geeft.<br><figure><a href="/wp-content/uploads/2025/11/prompt-engineering.png"><img loading="lazy" decoding="async" width="1017" height="417" class="size-full wp-image-24457" src="/wp-content/uploads/2025/11/prompt-engineering.png" alt="Prompt hardening" srcset="https://www.smalsresearch.be/wp-content/uploads/2025/11/prompt-engineering.png 1017w, https://www.smalsresearch.be/wp-content/uploads/2025/11/prompt-engineering-300x123.png 300w, https://www.smalsresearch.be/wp-content/uploads/2025/11/prompt-engineering-768x315.png 768w" sizes="auto, (max-width: 1017px) 100vw, 1017px" /></a></figure><br></li>



<li><strong>Regelgebaseerde guardrails</strong> werken deterministisch met filters op basis van exacte woorden of reguliere expressies. Op die manier kan gescreend worden op bepaalde woorden of onderwerpen, en kunnen eenvoudige vormen van vertrouwelijke informatie gefilterd worden, zoals ID’s, telefoonnummers of e-mailadressen.</li>



<li><strong>LLM/ML-gebaseerde guardrails</strong> maken gebruik van machine learning modellen of zogenaamde <em>LLM-judges</em> die veel beter overweg kunnen met nuance, intentie en context. Ze kunnen zowel input als output beoordelen en kunnen deze classificeren, bijvoorbeeld om schadelijke inhoud of <em>prompt injections</em> te detecteren (dit zijn pogingen van gebruikers om het gedrag van de toepassing te manipuleren via de prompt). Daarnaast kunnen ze gevoelige informatie filteren en fact-checking uitvoeren door na te gaan of alle uitspraken in de output effectief worden ondersteund door de aangeleverde context, zoals bij RAG.</li>
</ul>



<p>Elke techniek heeft een eigen nut, complexiteit en kost. Het is daarom aangeraden om eerst de specifieke risico’s voor een bepaalde usecase te evalueren en daarna te bepalen welke guardrails echt nodig zijn. Begin met de eenvoudigste methodes (prompt-gebaseerd en regelgebaseerd) en schakel pas over op complexere technieken (LLM/ML gebaseerd) wanneer dat noodzakelijk is. Deze laatste brengen namelijk extra latency en kosten met zich mee.</p>



<h1 class="wp-block-heading">Guardrail tools</h1>



<p>Er bestaan heel wat tools die deze technieken ondersteunen en het eenvoudiger maken om guardrails in een toepassing te integreren. <strong>Frameworks</strong> bieden een volledige omgeving om guardrails te definiëren, combineren en orkestreren. Ze laten je regels, workflows en validatiestappen configureren zonder alles zelf te moeten bouwen. Voorbeelden zijn <a href="https://github.com/guardrails-ai/guardrails">Guardrails AI</a>, <a href="https://github.com/protectai/llm-guard/">LLM Guard</a> en <a href="https://docs.nvidia.com/nemo/guardrails">NVIDIA NeMo Guardrails</a>.</p>



<p>Daarnaast zijn er <strong>API’s en services</strong> die specifieke functionaliteiten aanbieden, zoals het detecteren van schadelijke inhoud, het filteren van gevoelige gegevens of het opsporen van jailbreaks. Deze kun je rechtstreeks vanuit je toepassing aanroepen. Denk hierbij aan <a href="https://learn.microsoft.com/en-us/azure/ai-services/content-safety/overview">Azure AI Content Safety</a> of <a href="https://platform.openai.com/docs/guides/moderation">OpenAI Moderation API</a>.</p>



<p>Onder de motorkap maken deze tools gebruik van een mix van ML-modellen, LLM-judges en regelgebaseerde technieken. Voorbeelden van ML-modellen zijn <a href="https://www.llama.com/docs/model-cards-and-prompt-formats/llama-guard-3/">Llama Guard</a> en <a href="https://www.llama.com/docs/model-cards-and-prompt-formats/prompt-guard/">Prompt Guard</a>.</p>



<p>Uit onze eigen ervaringen blijkt dat bepaalde guardrailtools merkbaar minder nauwkeurig presteren in het Nederlands en Frans ten opzichte van het Engels. We zien daarbij soms ook false positives, bijvoorbeeld wanneer selfharm-detectie onschadelijke zinnen foutief als risicovol markeert. Voor eenvoudige toepassingen met een laag risicoprofiel en uitsluitend publieke data lijkt de meerwaarde van extra guardrailtools beperkt. In zulke gevallen volstaan doorgaans de ingebouwde veiligheidsmechanismen van de LLM in combinatie met een goed ontworpen RAG-prompt.</p>



<h1 class="wp-block-heading">Conclusie</h1>



<p>Samengevat is het belangrijk om guardrails steeds risicogestuurd en gelaagd in te zetten. Begin met het identificeren van de risico’s binnen de specifieke usecase en kies vervolgens de passende technieken, waarbij eenvoudige methodes de voorkeur krijgen en complexere oplossingen pas worden toegevoegd wanneer dat echt nodig is. Hoewel een combinatie van LLM-native, prompt-gebaseerde, regelgebaseerde en ML/LLM-gebaseerde guardrails een robuustere bescherming biedt, blijft het essentieel om te beseffen dat geen enkel systeem volledige veiligheid garandeert. Input- en outputfilters kunnen zowel false positives als false negatives opleveren. ML/LLM-gebaseerde guardrails brengen bovendien extra kosten en latency met zich mee. Een continue monitoring van de AI-toepassing is aangeraden om nieuwe kwetsbaarheden tijdig op te sporen en aan te pakken.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Generative AI on your own data &#8211; lessons learned</title>
		<link>https://www.smalsresearch.be/generative-ai-on-your-own-data-lessons-learned/</link>
		
		<dc:creator><![CDATA[Bert Vanhalst]]></dc:creator>
		<pubDate>Wed, 12 Nov 2025 11:15:46 +0000</pubDate>
				<category><![CDATA[Presentations]]></category>
		<guid isPermaLink="false">https://www.smalsresearch.be/generative-ai-on-your-own-data-lessons-learned/</guid>

					<description><![CDATA[Retrieval Augmented Generation (RAG) is d&#233; manier om generatieve AI-toepassingen te bouwen die gevoed worden met je eigen gegevens. Waar standaard taalmodellen vaak blijven hangen in algemene antwoorden, combineert RAG de kracht van een taalmodel met jouw eigen data, zodat de antwoorden betrouwbaar &#233;n contextspecifiek zijn. Tijdens dit webinar delen we onze eigen ervaringen uit [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Retrieval Augmented Generation (RAG) is d&eacute; manier om generatieve AI-toepassingen te bouwen die gevoed worden met je eigen gegevens. Waar standaard taalmodellen vaak blijven hangen in algemene antwoorden, combineert RAG de kracht van een taalmodel met jouw eigen data, zodat de antwoorden betrouwbaar &eacute;n contextspecifiek zijn.</p><p>Tijdens dit webinar delen we onze eigen ervaringen uit de praktijk. Aan de hand van concrete voorbeelden laten we zien wat werkt en waar de valkuilen liggen, welke aandachtspunten cruciaal zijn bij de ontwikkeling van een RAG-toepassing en hoe je beter kan inschatten wat je van deze technologie mag verwachten.</p><p>Of je nu zelf aan de slag wil met RAG of simpelweg beter wil begrijpen hoe deze technologie kan bijdragen aan waardevolle AI-toepassingen: dit webinar geeft je heldere inzichten en direct toepasbare lessen.</p><p>De sessie is tweetalig Frans &#8211; Nederlands, met Engelstalige slides.
</p>


<hr class="wp-block-separator has-alpha-channel-opacity">


<p></p><p>
La G&eacute;n&eacute;ration Augment&eacute;e de R&eacute;cup&eacute;ration (RAG) est le moyen id&eacute;al de cr&eacute;er des applications d&#8217;IA g&eacute;n&eacute;rative aliment&eacute;es par vos propres donn&eacute;es. Alors que les mod&egrave;les de langage standard se limitent souvent &agrave; des r&eacute;ponses g&eacute;n&eacute;riques, la RAG combine la puissance d&#8217;un mod&egrave;le de langage avec vos propres donn&eacute;es, de sorte que les r&eacute;ponses sont fiables et contextualis&eacute;es.</p><p>Au cours de ce webinaire, nous partagerons nos propres exp&eacute;riences pratiques. &Agrave; l&#8217;aide d&#8217;exemples concrets, nous vous montrerons ce qui fonctionne et o&ugrave; se trouvent les pi&egrave;ges, quels sont les points cruciaux &agrave; prendre en compte lors du d&eacute;veloppement d&rsquo;une application RAG et comment mieux &eacute;valuer ce que vous pouvez attendre de cette technologie.</p><p>Que vous souhaitiez vous lancer avec la RAG ou simplement mieux comprendre comment cette technologie peut concourir &agrave; des applications d&#8217;IA utiles, ce webinaire vous apportera des informations claires et des enseignements directement applicables.</p><p>La session est bilingue fran&ccedil;ais et en n&eacute;erlandais, avec des slides en anglais.</p>





                    <h1 class="wp-block-heading">Recording</h1>
                

                
                <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
                <iframe loading="lazy" title="Generative AI: Beyond the Hype" width="500" height="281" src="https://www.youtube.com/embed/ITqWDGr156U?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
                </div></figure>
                



                <h1 class="wp-block-heading">Presentation</h1>
            
            


            <div data-wp-interactive="core/file" class="wp-block-file">
                <object data-wp-bind--hidden="!state.hasPdfPreview" hidden class="wp-block-file__embed" data="https://www.smalsresearch.be/wp-content/uploads/2025/11/2025-11-07-Webinar-GenAI-on-your-own-data.pdf" type="application/pdf" style="width:100%;height:600px" aria-label="Embed of 2025-11-07-Webinar-GenAI-on-your-own-data."></object>
                <a id="wp-block-file--media-b9799409-7224-4698-b6ca-2c197477438b" href="https://www.smalsresearch.be/wp-content/uploads/2025/11/2025-11-07-Webinar-GenAI-on-your-own-data.pdf">2025-11-07-Webinar-GenAI-on-your-own-data</a><a href="https://www.smalsresearch.be/wp-content/uploads/2025/11/2025-11-07-Webinar-GenAI-on-your-own-data.pdf" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-b9799409-7224-4698-b6ca-2c197477438b">Download</a>
                </div>
            ]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>OpenEvals &#8211; Evaluation of LLM applications</title>
		<link>https://www.smalsresearch.be/openevals-evaluation-of-llm-applications/</link>
		
		<dc:creator><![CDATA[Bert Vanhalst]]></dc:creator>
		<pubDate>Fri, 19 Sep 2025 09:08:45 +0000</pubDate>
				<category><![CDATA[[NL]]]></category>
		<category><![CDATA[Quick reviews]]></category>
		<guid isPermaLink="false">https://www.smalsresearch.be/openevals-evaluation-of-llm-applications/</guid>

					<description><![CDATA[(NL) OpenEvals is een open source tool voor het evalueren van de kwaliteit van LLM-gebaseerde toepassingen. (FR) OpenEvals est un outil open source permettant d&#8217;évaluer la qualité des applications basées sur les LLM.]]></description>
										<content:encoded><![CDATA[
<p><strong>(NL)</strong> OpenEvals is een open source tool voor het evalueren van de kwaliteit van LLM-gebaseerde toepassingen.</p>



<p><strong>(FR)</strong> OpenEvals est un outil open source permettant d&#8217;évaluer la qualité des applications basées sur les LLM.</p>



<div data-wp-interactive="core/file" class="wp-block-file"><object data-wp-bind--hidden="!state.hasPdfPreview" hidden class="wp-block-file__embed" data="/wp-content/uploads/2025/09/QR-OpenEvals.pdf" type="application/pdf" style="width:100%;height:600px" aria-label="Embed of QR-OpenEvals."></object><a id="wp-block-file--media-46ef6502-fcaf-4125-aee1-9260f89d9a84" href="https://www.smalsresearch.be/wp-content/uploads/2025/09/QR-OpenEvals.pdf">QR-OpenEvals</a><a href="/wp-content/uploads/2025/09/QR-OpenEvals.pdf" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-46ef6502-fcaf-4125-aee1-9260f89d9a84">Download</a></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Expériences pratiques avec l&#8217;évaluation automatique de la RAG</title>
		<link>https://www.smalsresearch.be/experiences-pratiques-avec-levaluation-automatique-de-la-rag/</link>
		
		<dc:creator><![CDATA[Bert Vanhalst]]></dc:creator>
		<pubDate>Fri, 18 Jul 2025 07:09:03 +0000</pubDate>
				<category><![CDATA[[FR]]]></category>
		<category><![CDATA[Blog post]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">/?p=23140</guid>

					<description><![CDATA[La qualité est le principal obstacle à la mise en production d'applications LLM. Dans cet article de blog, nous examinerons dans quelle mesure la qualité des applications RAG peut être mesurée automatiquement.]]></description>
										<content:encoded><![CDATA[
<p><em>Dit artikel is ook beschikbaar in het <a href="/praktische-ervaringen-met-automatische-rag-evaluatie/">Nederlands</a>.</em></p>
<p>De nombreuses organisations expérimentent actuellement l&#8217;IA générative. Dans ce cadre, elles utilisent souvent des applications qui fonctionnent sur des LLM (<em>Large Language Models</em>), soutenues par une architecture RAG (<em>Retrieval-Augmented Generation</em>). Cela signifie que le système extrait d&#8217;abord les informations pertinentes d&#8217;une source de connaissances pour les transmettre au modèle de langage en guise de contexte. Il en résulte un output solidement ancré dans le domaine de connaissances concerné. Dans le jargon, on parle de <em>grounding</em>. Cette approche est surtout populaire dans les applications de questions-réponses et les chatbots.</p>
<figure id="attachment_19945" aria-describedby="caption-attachment-19945" style="width: 1270px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2024/02/RAG_uitvoeringsfase_EN.png"><img loading="lazy" decoding="async" class="size-full wp-image-19945" src="/wp-content/uploads/2024/02/RAG_uitvoeringsfase_EN.png" alt="Uitvoeringsfase van een RAG pipeline" width="1270" height="530" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/02/RAG_uitvoeringsfase_EN.png 1270w, https://www.smalsresearch.be/wp-content/uploads/2024/02/RAG_uitvoeringsfase_EN-300x125.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/02/RAG_uitvoeringsfase_EN-768x321.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/02/RAG_uitvoeringsfase_EN-1024x427.png 1024w" sizes="auto, (max-width: 1270px) 100vw, 1270px" /></a><figcaption id="caption-attachment-19945" class="wp-caption-text">Illustration 1: RAG (Retrieval Augmented Generation)</figcaption></figure>
<p>Malgré le grand potentiel de ces applications basées sur des LLM, l&#8217;output généré n&#8217;est pas toujours fiable dans la pratique. Des problèmes peuvent déjà survenir au niveau de l&#8217;extraction, si les informations pertinentes ne sont pas trouvées ou ne le sont que partiellement. Mais même si le bon contexte est fourni, un modèle de langage peut commettre des erreurs. Le modèle peut mal interpréter les informations, établir des liens incorrects ou générer des hallucinations, c&#8217;est-à-dire des réponses qui semblent convaincantes, mais qui sont en fait erronées. Cette incertitude quant à la qualité constitue l&#8217;un des principaux obstacles à la mise en production de telles applications, en particulier dans les domaines où la fiabilité est essentielle.</p>
<p>Dans cet article, nous nous pencherons sur les méthodes d&#8217;évaluation de la qualité des applications basées sur la RAG.</p>



<h1>Évaluations manuelles et automatiques</h1>
<p>Évaluer des applications d&#8217;IA générative est tout sauf simple. Cela s&#8217;explique principalement par le fait que l&#8217;output est souvent non structuré et non déterministe, à savoir qu&#8217;un même input peut chaque fois produire un output différent. De plus, il existe rarement une seule bonne réponse, de sorte qu&#8217;il est difficile d&#8217;évaluer objectivement la qualité de l&#8217;output généré. Beaucoup dépend de critères subjectifs comme la pertinence ou la précision, qui peuvent varier d&#8217;un évaluateur à l&#8217;autre. </p>
<p>La manière la plus évidente de contrôler la qualité est manuelle. Elle consiste à exécuter manuellement un certain nombre de tests, à mesurer le résultat et éventuellement à ajouter un commentaire indiquant la cause d&#8217;une qualité moindre. Une personne disposant des connaissances nécessaires dans le domaine peut correctement effectuer une telle évaluation, mais celle-ci est chronophage et peu extensible.</p>
<p>Pour ces raisons, il peut être intéressant de se tourner vers des systèmes d&#8217;évaluation automatique, appelés &#8220;<em>auto-evals</em>&#8220;. Comme ces évaluations s&#8217;effectuent automatiquement, elles sont aisément extensibles. Des techniques telles que &#8220;<em>exact-string matching</em>&#8221; et &#8220;<em>regular expressions&#8221;</em> peuvent être mises en œuvre pour le matching exact d&#8217;un texte ou d&#8217;un schéma. Mais si l&#8217;output d&#8217;un LLM peut varier en termes de choix de mots, de séquence ou de longueur, par exemple lorsque plusieurs formulations sont correctes, ces méthodes échouent. Dans ces cas, une évaluation sémantique ou basée sur un modèle s&#8217;impose. Une technique qui suscite actuellement beaucoup d&#8217;intérêt s&#8217;appelle &#8220;<em>LLM-as-judge</em>&#8220;. Elle consiste à faire évaluer l&#8217;output par un (second) modèle de langage selon certains critères.</p>



<h1>LLM-as-judge : un LLM évalué par un LLM</h1>
<p>À première vue, l&#8217;intervention d&#8217;un modèle de langage pour évaluer l&#8217;output d&#8217;un autre modèle de langage peut sembler étrange. Cependant, il s&#8217;avère plus facile de critiquer un output que de générer l&#8217;output original : même pour les LLM, il est plus facile de détecter les erreurs a posteriori que de les éviter.</p>
<p>Un LLM désigné comme juge peut évaluer plusieurs aspects, tels que l&#8217;exactitude factuelle, l&#8217;exhaustivité, les hallucinations et la pertinence de l&#8217;output par rapport à la question. Cette évaluation peut se faire par rapport à une référence (basée sur une référence) ou non (sans référence). Ainsi, pendant la phase de développement, une batterie de tests peut être prévue avec des questions, complétées de réponses de référence : un expert du domaine peut fournir des réponses correctes à titre de référence. Dans un environnement de production, il est toutefois impossible de prévoir une réponse de référence pour chaque question possible. Dans la pratique, il faut dès lors se rabattre sur des évaluations sans référence.</p>
<p>Nous avons concrètement mis en œuvre quelques métriques LLM-as-judge issues de la boîte à outils <a href="https://github.com/langchain-ai/openevals">OpenEvals</a> de LangChain, appliquées à un <a href="/un-propre-systeme-de-questions-reponses-base-sur-des-modeles-de-langue/">système de questions-réponses</a> basé sur des LLM. L&#8217;approche est la suivante :</p>
<ul>
<li>Élaboration d&#8217;une batterie de tests – Dans un premier temps, une batterie de tests est élaborée avec des questions représentatives de la base de connaissances concernée. Une réponse de référence est prévue pour chacune des questions.</li>
<li>Génération des réponses – Ensuite, le système de questions-réponses génère une réponse pour chacune des questions de la batterie de tests.</li>
<li>Évaluation manuelle – Afin de vérifier l&#8217;efficacité d&#8217;un LLM-as-judge automatique, on procède d&#8217;abord à une évaluation manuelle : chaque réponse générée se voit attribuer un score de 0 (réponse incorrecte), 1 (réponse partiellement correcte / incomplète) ou 2 (réponse correcte et complète).</li>
<li>Exécution des évaluations – Au cours de cette étape, on produit un script qui évalue tous les cas de test au regard d&#8217;une certaine métrique. On utilise comme métrique l&#8217;évaluateur de <em>correctness</em> (&#8220;exactitude&#8221; en français) proposé par défaut dans la bibliothèque OpenEvals. <br />Celui-ci mesure le degré d&#8217;exactitude d&#8217;une réponse générée par rapport à la réponse de référence. En output, on obtient pour chaque réponse générée un score binaire (true = correct ; false = incorrect) et une motivation textuelle du score, par exemple :
<blockquote><strong>Question :</strong><em> À partir de quel âge puis-je travailler comme étudiant?</em><br /><strong>Réponse générée :</strong><em> Tu peux t’engager comme jobiste dès que tu as 15 ans et que tu as suivi le premier degré de l’enseignement secondaire, ou dès que tu as 16 ans.</em><br /><strong>Réponse de référence : </strong><em>Vous pouvez travailler comme étudiant dès que vous avez 16 ans ou si vous avez 15 ans et avez suivi les deux premières années de l’enseignement secondaire.</em><br /><strong>Score :</strong><em> true</em><br /><strong>Motivation :</strong><em> The provided answer states that a student can work at 15 years old if they have completed the first cycle (“premier degré”) of secondary education, equivalent to the two first years of secondary education mentioned in the reference. It also notes that one can work at 16 years old. This information is factually accurate, complete, and addresses the question using precise terminology. Thus, the score should be:</em> true.</blockquote>
</li>
</ul>
<h1>Alignement des évaluations automatiques et manuelles</h1>
<p>Si l&#8217;on compare les résultats de cet évaluateur d&#8217;exactitude avec les scores manuels, on constate dans notre test que le score LLM-as-judge est identique au score manuel dans 70 % des cas. Cela veut donc dire que les deux scores ne correspondent pas dans de nombreux cas. Cela s&#8217;explique par plusieurs raisons :</p>
<ul>
<li>Évaluations subjectives – Les évaluations manuelles sont subjectives. Ainsi, les réponses incomplètes sont évaluées de manière plus ou moins stricte selon l&#8217;évaluateur.</li>
<li>Qualité des réponses de référence – La qualité des réponses de référence livrées par un expert du domaine joue un rôle important, car elle sert de référence. Elles doivent être complètes et clairement formulées.</li>
<li>Méthode d&#8217;évaluation&nbsp;: l&#8217;évaluation manuelle repose sur trois scores (2 = correct, 1 = incomplet, 0 = incorrect). L&#8217;évaluateur d&#8217;exactitude testé utilise deux scores par défaut (true ou false). Il lui manque la nuance nécessaire pour attribuer, à une réponse correcte mais incomplète, un score qui soit tout de même positif dans une certaine mesure.</li>
<li>Modèle de langage – Enfin, le modèle de langage utilisé par le LLM-as-judge joue également un rôle. Un <a href="https://en.wikipedia.org/wiki/Reasoning_language_model">reasoning model</a> sera mieux à même de procéder à une bonne évaluation qu&#8217;un modèle de chat moins performant.</li>
</ul>
<p>Dans le cas idéal, un évaluateur automatique juge de la même manière qu&#8217;un évaluateur humain, mais dans la pratique, il s&#8217;avère difficile d&#8217;aligner correctement les scores des évaluations automatiques sur ceux des évaluations manuelles.</p>
<p><span style="font-size: revert; color: initial;">Pour améliorer cet alignement, le LLM-as-judge peut être amélioré de manière itérative, par exemple par l&#8217;adaptation du prompt (instructions, méthode d&#8217;évaluation). En fait, le recours à un LLM en tant qu&#8217;évaluateur est en soi également un projet LLM dont la qualité doit être évaluée et peut être améliorée de manière itérative. Tout l&#8217;art consistera à commencer simplement et à améliorer progressivement la qualité de l&#8217;évaluateur. Dans tous les cas, la motivation textuelle de l&#8217;évaluateur d&#8217;exactitude peut être précieuse pour évaluer les réponses générées.</span></p>
<h1>Quelles métriques utiliser&nbsp;?</h1>
<p>Dans la phase de développement, on dispose souvent de réponses de référence, ce qui nous permet de recourir à un évaluateur de <strong><em>correctness</em></strong> qui détermine simplement dans quelle mesure la réponse générée correspond à la réponse de référence. Des métriques complémentaires peuvent fournir des informations sur d&#8217;autres aspects de la RAG, comme la <strong><em>context precision</em></strong>, qui détermine quelle partie des chunks est pertinente, et le <strong><em>context recall</em></strong>, qui détermine combien de chunks pertinents ont été fournis. Dans l&#8217;illustration ci-dessous, ces métriques basées sur des références sont indiquées en jaune.</p>
<figure id="attachment_23013" aria-describedby="caption-attachment-23013" style="width: 1102px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2025/07/metrics.png"><img loading="lazy" decoding="async" class="size-full wp-image-23013" src="/wp-content/uploads/2025/07/metrics.png" alt="RAG metrics" width="1102" height="503" srcset="https://www.smalsresearch.be/wp-content/uploads/2025/07/metrics.png 1102w, https://www.smalsresearch.be/wp-content/uploads/2025/07/metrics-300x137.png 300w, https://www.smalsresearch.be/wp-content/uploads/2025/07/metrics-768x351.png 768w, https://www.smalsresearch.be/wp-content/uploads/2025/07/metrics-1024x467.png 1024w" sizes="auto, (max-width: 1102px) 100vw, 1102px" /></a><figcaption id="caption-attachment-23013" class="wp-caption-text">RAG metrics</figcaption></figure>
<p>Lorsque de telles métriques sont nécessaires mais qu&#8217;aucune référence explicite n&#8217;est disponible, on peut recourir à des variantes approximatives (voir les métriques indiquées en bleu dans l&#8217;illustration ci-dessus) : par exemple, un LLM-as-judge qui compare la réponse générée au contexte extrait et restitue un score sémantique &#8220;close-enough&#8221;. Dans un environnement de production, les réponses de référence font presque toujours défaut ; l&#8217;accent est alors mis sur des métriques telles que l&#8217;<strong><em>hallucination detection</em></strong> ou la <strong><em>groundedness</em></strong>, qui déterminent si chaque affirmation dans l&#8217;output est réellement étayée par le contexte fourni. La qualité reste ainsi mesurable, même sans référence absolue. D&#8217;autres métriques approximatives sont la <strong><em>context relevance</em></strong>, qui évalue la correspondance sémantique des passages extraits à la question et peuvent donc servir de base à la génération, et l&#8217;<strong><em>answer relevance (helpfulness)</em></strong>, qui évalue la correspondance de la réponse finale à la question.</p>
<h1>Conclusion</h1>
<p>L&#8217;IA générative est aujourd&#8217;hui en pleine effervescence, mais pour les organisations, la fiabilité de l&#8217;output figure parmi les critères majeurs pour pouvoir utiliser cette technologie en toute confiance. Dans un pipeline RAG, l&#8217;output généré est basé sur des connaissances du domaine, mais sans cadre d&#8217;évaluation robuste, sa qualité n&#8217;est pas suffisamment garantie. Il est donc important de miser sur la mesurabilité.</p>
<p>Commencez la phase de développement avec une batterie de tests compacte et représentative et des réponses de référence claires. Des métriques basées sur des références peuvent ensuite être appliquées, telles que la <em>correctness</em>, afin d&#8217;identifier rapidement les points sensibles. Une fois en production, vous pouvez passer à des métriques sans référence, telles que la <em>groundedness</em> et l&#8217;<em>hallucination detection</em>, afin de pouvoir également monitorer les questions inconnues.</p>
<p data-pm-slice="1 1 []">Les évaluations automatiques basées sur le <em>LLM‑as‑judge</em> ne sont pas une solution miracle. Leur principal défi réside dans l&#8217;alignement : s&#8217;assurer que les scores automatiques correspondent autant que possible à l&#8217;avis des experts du domaine. Elles offrent néanmoins échelle et continuité : elles peuvent passer en revue de grands volumes d&#8217;output, signaler d&#8217;éventuels problèmes de qualité et procurer des points de référence objectifs pour ajuster de manière ciblée une application LLM ou RAG. La comparaison systématique de leur évaluation avec les évaluations manuelles et l&#8217;ajustement des prompts de l&#8217;évaluateur permettent d&#8217;améliorer continuellement l&#8217;application et l&#8217;évaluateur grâce à un processus itératif.</p>
<hr />
<p data-pm-slice="1 1 []"><em data-rich-text-format-boundary="true">Ce post est une contribution individuelle de Bert Vanhalst, IT consultant chez Smals Research. Cet article est écrit en son nom propre et n’impacte en rien le point de vue de Smals.</em></p>




]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Praktische ervaringen met automatische RAG-evaluatie</title>
		<link>https://www.smalsresearch.be/praktische-ervaringen-met-automatische-rag-evaluatie/</link>
		
		<dc:creator><![CDATA[Bert Vanhalst]]></dc:creator>
		<pubDate>Thu, 10 Jul 2025 10:08:39 +0000</pubDate>
				<category><![CDATA[[NL]]]></category>
		<category><![CDATA[Blog post]]></category>
		<category><![CDATA[methodology]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">/?p=22958</guid>

					<description><![CDATA[Kwaliteit is dé bottleneck om LLM-toepassingen in productie te brengen. In deze blogpost onderzoeken we in hoeverre de kwaliteit van RAG-toepassingen automatisch kan gemeten worden.]]></description>
										<content:encoded><![CDATA[
<p><em>Cet article est aussi disponible <a href="/experiences-pratiques-avec-levaluation-automatique-de-la-rag/">en français</a>.</em></p>
<p>Heel wat organisaties zijn druk aan het experimenteren met generatieve AI. Vaak maken ze daarbij gebruik van toepassingen die draaien op LLM’s <em>(Large Language Models)</em>, ondersteund door een RAG-architectuur <em>(Retrieval-Augmented Generation)</em>. Dit betekent dat het systeem eerst relevante informatie uit een kennisbron ophaalt en die als context meegeeft aan het taalmodel. Zo ontstaat een output die stevig verankerd is in de juiste domeinkennis. In het jargon spreken we van <em>grounding</em>. Deze aanpak is vooral populair in vraag-en-antwoordtoepassingen en chatbots.</p>
<figure id="attachment_19945" aria-describedby="caption-attachment-19945" style="width: 1270px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2024/02/RAG_uitvoeringsfase_EN.png"><img loading="lazy" decoding="async" class="size-full wp-image-19945" src="/wp-content/uploads/2024/02/RAG_uitvoeringsfase_EN.png" alt="Uitvoeringsfase van een RAG pipeline" width="1270" height="530" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/02/RAG_uitvoeringsfase_EN.png 1270w, https://www.smalsresearch.be/wp-content/uploads/2024/02/RAG_uitvoeringsfase_EN-300x125.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/02/RAG_uitvoeringsfase_EN-768x321.png 768w, https://www.smalsresearch.be/wp-content/uploads/2024/02/RAG_uitvoeringsfase_EN-1024x427.png 1024w" sizes="auto, (max-width: 1270px) 100vw, 1270px" /></a><figcaption id="caption-attachment-19945" class="wp-caption-text">Figuur 1: RAG (Retrieval Augmented Generation)</figcaption></figure>
<p>Hoewel het potentieel van dergelijke LLM-gebaseerde toepassingen groot is, blijkt de kwaliteit van de gegenereerde output in de praktijk niet altijd even betrouwbaar. Het kan al mislopen op niveau van de retrieval-stap, als de relevante informatie niet teruggevonden wordt of slechts gedeeltelijk. Maar zelfs als de juiste context wél wordt aangeleverd, kan een taalmodel alsnog fouten maken. Het model kan de informatie verkeerd interpreteren, onnauwkeurige verbanden leggen of hallucinaties genereren — antwoorden die overtuigend klinken, maar feitelijk onjuist zijn. Deze onzekerheid over de kwaliteit is één van de belangrijkste belemmeringen voor het in productie nemen van zulke toepassingen, zeker in domeinen waar betrouwbaarheid essentieel is.</p>
<p>In dit artikel gaan we dieper in op de methodes voor het evalueren van de kwaliteit van RAG-gebaseerde toepassingen.</p>



<h1>Manuele &amp; automatische evaluaties</h1>
<p>Het evalueren van generatieve AI-toepassingen is allesbehalve eenvoudig. Dat komt vooral doordat de output vaak ongestructureerd is en niet-deterministisch: eenzelfde input kan telkens een andere output opleveren. Daarbovenop bestaat er zelden één juist antwoord, wat het moeilijk maakt om objectief te beoordelen of een gegenereerde output “goed” is. Veel hangt af van subjectieve criteria zoals relevantie of nauwkeurigheid, die per evaluator kunnen verschillen. </p>
<p>De meest voor de hand liggende manier om de kwaliteit te controleren is manueel: handmatig een aantal testen uitvoeren, het resultaat inschalen en eventueel commentaar toevoegen met een indicatie van de oorzaak van minder goede kwaliteit. Iemand met de nodige domeinkennis kan zo&#8217;n evaluatie goed uitvoeren, maar het is tijdrovend en schaalt niet goed.</p>
<p>Om die redenen kan het interessant zijn om te kijken naar systemen voor automatische evaluaties, zogeheten <em>&#8220;auto-evals&#8221;</em>. Aangezien ze automatisch uitgevoerd worden, zijn ze goed te schalen. Technieken zoals <em>exact-string matching</em> en <em>regular expressions</em> kunnen gebruikt worden voor het exact matchen van tekst of het matchen van een patroon. Maar als de output van een LLM kan variëren in woordkeuze, volgorde of lengte, bijvoorbeeld in het geval van meerdere juiste formuleringen, lopen zo’n methodes vast. In die gevallen heb je semantische of model-gebaseerde evaluatie nodig. Een techniek die momenteel in de belangstelling staat is <em>“LLM-as-judge”</em>, waarbij een (tweede) taalmodel de gegenereerde output beoordeelt op bepaalde criteria.</p>



<h1>LLM-as-judge: LLM beoordeelt LLM</h1>
<p>Op het eerste zicht is het wat vreemd dat een taalmodel wordt ingeschakeld om de output van een taalmodel te beoordelen. Maar het blijkt eenvoudiger om kritiek te geven op een output dan om de originele output te genereren: zelfs voor LLM&#8217;s is het eenvoudiger om fouten achteraf te detecteren dan ze te voorkomen.</p>
<p>Er zijn een aantal aspecten die door een LLM-rechter kunnen beoordeeld worden, zoals feitelijke correctheid, volledigheid, hallucinaties en relevantie van de output ten opzichte van de vraag. Die beoordeling kan gebeuren ten opzichte van een referentie (referentie-gebaseerd) of niet (referentievrij). Zo kan in de ontwikkelfase een vaste testset voorzien worden van vragen, aangevuld met referentie-antwoorden: een domeinexpert kan correcte antwoorden aanleveren die gelden als een gouden standaard. Het is echter onmogelijk om in een productie-omgeving voor elke mogelijke vraag een referentie-antwoord te voorzien, waardoor je in de praktijk moet terugvallen op referentievrije evaluaties.</p>
<p>We gingen concreet aan de slag met enkele LLM-as-judge metrieken uit de <a href="https://github.com/langchain-ai/openevals">OpenEvals</a> toolbox van LangChain, toegepast op een LLM-gebaseerd <a href="/een-eigen-vraag-en-antwoordsysteem-op-basis-van-taalmodellen/">vraag- en antwoordsysteem</a>. Dit is de gevolgde aanpak:</p>
<ul>
<li>Opstellen testset &#8211; In een eerste stap wordt een testset opgesteld met vragen die representatief zijn voor de betrokken knowledge base. Voor elk van de vragen wordt een referentie-antwoord voorzien.</li>
<li>Antwoordgeneratie &#8211; Vervolgens laten we voor elk van de vragen uit de testset een antwoord genereren door het vraag-antwoordsysteem.</li>
<li>Manuele beoordeling &#8211; Om te kunnen nagaan hoe goed een automatische LLM-as-judge evaluator presteert, doen we eerst een manuele beoordeling: elk gegeneerd antwoord krijgt een score van 0 (fout antwoord), 1 (deels correct / onvolledig) of 2 (correct en volledig).</li>
<li>Uitvoeren evaluaties &#8211; In deze stap voorzien we een script dat alle testcases beoordeelt op vlak van een bepaalde metriek. Als metriek gebruiken we de <em>correctness</em> evaluator die de OpenEvals library standaard aanbiedt. Deze meet hoe correct een gegenereerd antwoord is ten opzichte van het referentie-antwoord. Als output krijgen we voor elk gegenereerd antwoord een binaire score (true = correct; false = niet correct) en een tekstuele motivatie van de score, bijvoorbeeld:
<blockquote><em><strong>Vraag:</strong></em> A partir de quel âge puis-je travailler comme étudiant? <em><br /><strong>Gegenereerd antwoord:</strong></em> Tu peux t’engager comme jobiste dès que tu as 15 ans et que tu as suivi le premier degré de l’enseignement secondaire, ou dès que tu as 16 ans.<em><br /><strong>Referentie-antwoord: </strong></em>Vous pouvez travailler comme étudiant dès que vous avez 16 ans ou si vous avez 15 ans et avez suivi les deux premières années de l&#8217;enseignement secondaire.<em><br /><strong>Score:</strong></em> true<em><br /><strong>Motivatie:</strong></em> The provided answer states that a student can work at 15 years old if they have completed the first cycle (“premier degré”) of secondary education, equivalent to the two first years of secondary education mentioned in the reference. It also notes that one can work at 16 years old. This information is factually accurate, complete, and addresses the question using precise terminology. Thus, the score should be: true.</blockquote>
</li>
</ul>
<h1>Alignering van automatische en manuele beoordeling</h1>
<p>Als we de resultaten van deze correctness evaluator vergelijken met de manuele scores, dan zien we in onze test dat de LLM-as-judge score in 70% van de gevallen gelijk is aan de manuele score. Er zijn dus heel wat gevallen waar beide scores niet overeenkomen. Daar zijn diverse redenen voor:</p>
<ul>
<li>Subjectieve beoordelingen &#8211; Manuele beoordelingen zijn subjectief, zo worden onvolledige antwoorden al dan niet streng beoordeeld naargelang de persoon die de evaluatie uitvoert.</li>
<li>Kwaliteit referentie-antwoorden &#8211; De kwaliteit van de referentie-antwoorden die opgesteld worden door een domein-expert spelen een belangrijke rol omdat dit de maatstaf is. Ze moeten compleet zijn en duidelijk geformuleerd.</li>
<li>Beoordelingsmethode: Bij de manuele beoordeling wordt gebruik gemaakt van een driedelige score (2 = correct, 1 = onvolledig, 0 = fout).  De geteste correctness evaluator maakt standaard gebruikt van een tweedelige score (true of false). Deze mist de nodige nuance om een correct maar onvolledig antwoord toch enigszins positief te scoren.</li>
<li>Taalmodel &#8211; Tenslotte speelt ook het taalmodel dat door de LLM-as-judge gebruikt wordt een rol.  Een <a href="https://en.wikipedia.org/wiki/Reasoning_language_model">reasoning model</a> zal beter in staat zijn om een goede beoordeling te doen dan een minder performant chat model.</li>
</ul>
<p><span style="color: #000000;">In het ideale geval oordeelt een automatische evaluator op dezelfde manier als een menselijke evaluator, maar in de praktijk blijkt het dus moeilijk om de scores van automatische evaluaties goed te aligneren met de manuele scores.</span></p>
<p>Om deze alignering te verbeteren kan de LLM-as-judge iteratief verbeterd worden door bijvoorbeeld de prompt aan te passen (instructies, beoordelingsmethode). In feite is het inschakelen van een LLM als evaluator op zich ook een LLM-project waarvan de kwaliteit moet geëvalueerd worden en iteratief verbeterd kan worden. De kunst zal erin bestaan om eenvoudig te starten en de kwaliteit van de evaluator geleidelijk aan te verbeteren. Sowieso kan de tekstuele motivatie van de correctness evaluator nuttige input leveren voor het beoordelen van gegenereerde antwoorden.</p>
<h1>Welke metrieken gebruiken?</h1>
<p>In de ontwikkelfase beschikken we vaak over referentie-antwoorden; daardoor kunnen we een <strong><em>correctness</em> </strong>evaluator inzetten die simpelweg meet in hoeverre het gegenereerde antwoord overeenkomt met het referentie-antwoord. Aanvullende metrieken kunnen zicht bieden op andere RAG-aspecten, zoals <strong><em>context precision</em></strong><em>, </em>die meet welk deel van de aangeleverde chunks relevant zijn, en <strong><em>context recall,</em></strong> die meet hoeveel van de relevante chunks werden aangeleverd. In de figuur hieronder zijn deze referentie-gebaseerde metrieken aangeduid in geel.</p>
<figure id="attachment_23013" aria-describedby="caption-attachment-23013" style="width: 1102px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2025/07/metrics.png"><img loading="lazy" decoding="async" class="size-full wp-image-23013" src="/wp-content/uploads/2025/07/metrics.png" alt="RAG metrics" width="1102" height="503" srcset="https://www.smalsresearch.be/wp-content/uploads/2025/07/metrics.png 1102w, https://www.smalsresearch.be/wp-content/uploads/2025/07/metrics-300x137.png 300w, https://www.smalsresearch.be/wp-content/uploads/2025/07/metrics-768x351.png 768w, https://www.smalsresearch.be/wp-content/uploads/2025/07/metrics-1024x467.png 1024w" sizes="auto, (max-width: 1102px) 100vw, 1102px" /></a><figcaption id="caption-attachment-23013" class="wp-caption-text">RAG metrics</figcaption></figure>
<p>Wanneer zulke metrieken nodig zijn maar er geen expliciete referentie beschikbaar is, kan men teruggrijpen naar benaderende varianten (zie metrieken aangeduid in blauw in de figuur hierboven): bijvoorbeeld een LLM-as-judge die het gegenereerde antwoord vergelijkt met de opgehaalde context en een semantische “close-enough” score teruggeeft. In een productie-omgeving ontbreken referentie-antwoorden vrijwel altijd; daar verschuift de focus naar metrieken als <strong><em>hallucination detection</em></strong> of <strong><em>groundedness</em></strong>, die beoordelen of elke bewering in de output daadwerkelijk ondersteund wordt door de aangeleverde context. Zo blijft de kwaliteit toch meetbaar, ook zonder gouden standaard. Andere benaderende metrieken zijn <em><strong data-start="34" data-end="55">context relevance</strong></em>, die meet hoe sterk de opgehaalde passages semantisch aansluiten bij de vraag en dus bruikbaar zijn als basis voor generatie, en <em><strong data-start="185" data-end="205">answer relevance (helpfulness)</strong></em>, die beoordeelt in welke mate het uiteindelijke antwoord daadwerkelijk de vraag beantwoordt.</p>
<h1>Conclusie</h1>
<p lang="en-US">Generatieve AI zit vandaag in een hypefase, maar voor organisaties is betrouwbare kwaliteit van de output één van de belangrijkste criteria om dergelijke technologie met vertrouwen te kunnen inzetten. Bij een RAG-pipeline is de gegenereerde output gebaseerd op domeinkennis, maar zonder een robuust evaluatiekader is er onvoldoende zicht op de kwaliteit. Daarom is het belangrijk om in te zetten op meetbaarheid.</p>
<p data-pm-slice="1 1 []">Begin in de ontwikkelfase met een compacte, representatieve testset en duidelijke gouden standaard‑antwoorden. Daarop kunnen referentie‑gebaseerde metrieken toegepast worden zoals <em>correctness</em> om snel pijnpunten bloot te leggen. Eens je naar productie opschuift, kan je overschakelen op referentievrije metrieken zoals <em>groundedness</em> en <em>hallucination detection</em>, zodat je ook onbekende vragen kunt monitoren.</p>
<p data-pm-slice="1 1 []">Automatische evaluaties op basis van <em>LLM‑as‑judge</em> zijn geen wondermiddel. Hun grootste uitdaging is alignering: ervoor zorgen dat de automatische scores zo dicht mogelijk aansluiten bij het oordeel van domeinexperts. Toch leveren ze schaal en continuïteit: ze kunnen grote volumes outputs screenen, kunnen potentiële kwaliteitsproblemen aanduiden en bieden objectieve meetpunten om een LLM- of RAG-toepassing gericht bij te sturen. Door hun oordeel systematisch te vergelijken met manuele beoordelingen en de prompts van de evaluator bij te sturen, worden zowel de toepassing als de evaluator steeds beter via een iteratief proces.</p>
<hr />
<p data-pm-slice="1 1 []"><em data-rich-text-format-boundary="true">Dit is een ingezonden bijdrage van Bert Vanhalst, IT consultant bij Smals Research. Dit artikel werd geschreven in eigen naam en neemt geen standpunt in namens Smals.</em></p>




]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AI agents: avantages, défis et cas d&#8217;utilisation</title>
		<link>https://www.smalsresearch.be/agents-ia-avantages-defis-et-cas-utilisation/</link>
		
		<dc:creator><![CDATA[Bert Vanhalst]]></dc:creator>
		<pubDate>Thu, 08 May 2025 14:20:26 +0000</pubDate>
				<category><![CDATA[[FR]]]></category>
		<category><![CDATA[Blog post]]></category>
		<category><![CDATA[big data]]></category>
		<category><![CDATA[Information management]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">/?p=22578</guid>

					<description><![CDATA[Les agents IA ont le vent en poupe. Mais que sont-ils exactement ? Et que peuvent-ils nous apporter?]]></description>
										<content:encoded><![CDATA[
<p><em>Dit artikel is ook beschikbaar in het <a href="/ai-agents-voordelen-uitdagingen-en-usecases/">Nederlands</a>.</em></p>
<p>Les agents IA ont le vent en poupe. Mais que sont-ils exactement&nbsp;? Que peuvent-ils nous apporter et à quoi devons-nous faire attention&nbsp;? Cet article de blog offre un aperçu des possibilités, des risques et des applications concrètes des agents IA.</p>



<h1 class="wp-block-heading">Que sont les agents IA?</h1>



<p>On peut décrire les agents IA comme des entités logicielles autonomes ou semi-autonomes qui utilisent l&#8217;IA pour percevoir, prendre des décisions, exécuter des actions et atteindre des objectifs. Tout comme une agence de voyage qui organise et réserve tout un voyage de manière indépendante en fonction de vos souhaits, les agents IA illustrent le concept d'&#8221;<em>agency</em>&#8221;&nbsp;: la capacité de prendre des décisions et d&#8217;agir de manière indépendante dans un contexte numérique.</p>
<p>Voici les caractéristiques typiques des agents IA&nbsp;:</p>
<ul>
<li><strong>Autonomie </strong>: exécuter des tâches de manière indépendante, avec peu ou pas d&#8217;intervention humaine.</li>
<li><strong>Objectifs complexes </strong>: être capable de déterminer efficacement les étapes intermédiaires pour atteindre des objectifs complexes.</li>
<li><strong>Environnements complexes</strong>&nbsp;: la capacité à s&#8217;adapter à des circonstances changeantes et à des imprévus, tels que des objectifs modifiés, de nouvelles informations ou des outputs inattendus d&#8217;un système externe.</li>
</ul>
<p>Les caractéristiques ci-dessus s&#8217;appliquent à des degrés divers aux agents IA, ce qui signifie que l'&#8221;<em>agency</em>&#8221; doit être considérée comme un spectre&nbsp;: plus ces caractéristiques sont présentes, plus un agent est capable d&#8217;effectuer des tâches complexes de manière autonome.</p>



<h1 data-pm-slice="1 1 []">L&#8217;anatomie des agents IA</h1>
<p>Les agents IA se composent généralement de plusieurs éléments qui, ensemble, rendent possible leur comportement intelligent&nbsp;:</p>
<figure id="attachment_22419" aria-describedby="caption-attachment-22419" style="width: 1028px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2025/04/components.png"><img loading="lazy" decoding="async" class="size-full wp-image-22419" src="/wp-content/uploads/2025/04/components.png" alt="De componenten van AI agents" width="1028" height="355" srcset="https://www.smalsresearch.be/wp-content/uploads/2025/04/components.png 1028w, https://www.smalsresearch.be/wp-content/uploads/2025/04/components-300x104.png 300w, https://www.smalsresearch.be/wp-content/uploads/2025/04/components-768x265.png 768w, https://www.smalsresearch.be/wp-content/uploads/2025/04/components-1024x354.png 1024w" sizes="auto, (max-width: 1028px) 100vw, 1028px" /></a><figcaption id="caption-attachment-22419" class="wp-caption-text"><span style="font-size: revert; color: initial;">Les composants des agents IA</span></figcaption></figure>
<ul>
<li><strong>Le modèle d&#8217;IA pour le raisonnement</strong>&nbsp;: la capacité à planifier une série d&#8217;actions pour atteindre des objectifs et à prendre des décisions même avec des données incomplètes. On observe ici une tendance des &#8220;chat models&#8221; classiques vers des &#8220;reasoning models&#8221; qui sont mieux à même de découper les problèmes en étapes plus petites, de corriger les erreurs et d&#8217;essayer plusieurs stratégies.</li>
<li><strong>La base de connaissance</strong>&nbsp;: connaissances spécifiques à un domaine, souvent obtenues grâce à des techniques de <a href="/qualite-dun-systeme-generatif-de-questions-reponses/">Retrieval-Augmented Generation (RAG)</a>.</li>
<li><strong>La mémoire</strong>&nbsp;: capacité à mémoriser des informations sur les étapes ou interactions précédentes. Cela peut être à court terme (au cours d&#8217;une session) ou à plus long terme (sur plusieurs sessions). La mémoire permet aux agents IA de fournir des réponses cohérentes, de se souvenir des décisions précédentes et de rendre l&#8217;interaction plus fluide.</li>
<li><strong>Les outils</strong>&nbsp;: des outils tels que les moteurs de recherche, les bases de données ou les API peuvent être reliés à de grands modèles de langage (LLM). Sur la base d&#8217;une description des outils, le modèle peut alors déterminer quel outil doit être utilisé pour effectuer une tâche donnée, ainsi que les paramètres d&#8217;entrée.</li>
</ul>
<p>Ces différents composants sont configurés et orchestrés avec des outils dédiés comme <a href="https://www.langchain.com/langgraph">LangGraph</a>, <a href="https://www.llamaindex.ai/">LlamaIndex</a>, <a href="https://www.crewai.com/">CrewAI</a>, etc.</p>
<figure id="attachment_22420" aria-describedby="caption-attachment-22420" style="width: 1096px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2025/04/tool_use.png"><img loading="lazy" decoding="async" class="size-full wp-image-22420" src="/wp-content/uploads/2025/04/tool_use.png" alt="Toolgebruik" width="1096" height="402" srcset="https://www.smalsresearch.be/wp-content/uploads/2025/04/tool_use.png 1096w, https://www.smalsresearch.be/wp-content/uploads/2025/04/tool_use-300x110.png 300w, https://www.smalsresearch.be/wp-content/uploads/2025/04/tool_use-768x282.png 768w, https://www.smalsresearch.be/wp-content/uploads/2025/04/tool_use-1024x376.png 1024w" sizes="auto, (max-width: 1096px) 100vw, 1096px" /></a><figcaption id="caption-attachment-22420" class="wp-caption-text">Utilisation d&#8217;outils &#8211; Sur la base des données d&#8217;entrée, le modèle selectionne la fonction <em>multiply</em> et identifie les paramètres (8 et 2)</figcaption></figure>
<p>Les agents IA peuvent être activés de différentes manières. Souvent, c&#8217;est par le biais d&#8217;un input textuel ou vocal, comme dans une interface de chat. Mais un trigger peut également provenir automatiquement d&#8217;un processus&nbsp;: par exemple, la création d&#8217;un nouveau fichier, la réception d&#8217;un e-mail ou une modification dans une base de données. Cette flexibilité rend les agents IA utilisables dans des workflows très variés.</p>
<p>Une évolution intéressante est la &#8220;<strong><em>multi-agent collaboration</em></strong>&#8221;&nbsp;: plusieurs agents IA travaillent ensemble, chacun avec sa propre spécialisation ou tâche. Grâce à la communication mutuelle et à la répartition des tâches, ils peuvent traiter des problèmes complexes plus efficacement qu&#8217;un agent unique. Pensez par exemple à une équipe d&#8217;agents qui rédigent ensemble un rapport, où un agent collecte les données, un autre les analyse et un troisième rédige le rapport.</p>
<p>Bien que les agents IA deviennent toujours plus autonomes, la présence d&#8217;un &#8220;<strong><em>human in the loop</em></strong>&#8221; reste essentielle. En effet, une supervision humaine permet non seulement de détecter rapidement les erreurs ou les comportements indésirables, elle renforce également la confiance et la fiabilité du système, notamment dans les applications critiques où la précision et l&#8217;éthique jouent un rôle majeur.</p>



<h1 data-pm-slice="1 3 []">Avantages et applications</h1>
<p>Nous avons établi de quels éléments un agent IA est composé. Voyons maintenant quels avantages il peut offrir&nbsp;:</p>
<ul>
<li><strong>Automatisation des tâches</strong>&nbsp;: les agents IA peuvent effectuer de manière autonome des tâches répétitives et chronophages, ce qui permet aux collaborateurs de se concentrer sur des tâches plus stratégiques.</li>
<li><strong>Assistance à la prise de décision</strong>&nbsp;: par l&#8217;analyse rapide de grandes quantités de données et la fourniture d&#8217;informations pertinentes, les agents IA peuvent aider à prendre des décisions plus éclairées et mieux fondées.</li>
<li><strong>Interaction intelligente avec les utilisateurs </strong>: les agents IA peuvent communiquer de manière naturelle et contextuelle par texte ou par voix, ce qui permet des interactions plus fluides et plus personnalisées avec les utilisateurs finaux.</li>
</ul>
<p>Les domaines d&#8217;application suivants pourraient bénéficier d&#8217;une valeur ajoutée potentielle grâce aux agents IA&nbsp;:</p>
<ul>
<li><strong>Environnements utilisateurs</strong>&nbsp;: dans les environnements orientés vers le client, les agents IA peuvent être utilisés pour des helpdesks automatisés, des chatbots ou des recommandations personnalisées.</li>
<li><strong>Traitement de l&#8217;information </strong>: les agents IA sont particulièrement adaptés à l&#8217;analyse et à la structuration de grandes quantités d&#8217;informations. Ils peuvent résumer des documents, détecter des tendances ou extraire des informations pertinentes à partir de sources de données complexes.</li>
<li><strong style="font-size: revert; color: initial;">Applications créatives </strong><span style="font-size: revert; color: initial;">: dans les secteurs créatifs, les agents IA peuvent aider à rédiger des rapports, générer des textes pour les réseaux sociaux ou même participer à la conception de nouvelles campagnes. Ils font alors office de sparring-partner créatif ou d&#8217;assistant productif.</span></li>
</ul>



<h1 data-pm-slice="1 1 []">Défis et risques</h1>
<p>Bien que cette technologie dispose d&#8217;un potentiel considérable, il est essentiel de prendre en compte certains points importants&nbsp;:</p>
<ul>
<li><strong>Imprévisibilité</strong>&nbsp;: les agents IA peuvent être imprévisibles en raison de leur nature non déterministe ; ils fournissent parfois des résultats inattendus ou incohérents, difficiles à reproduire et à comprendre.</li>
<li><strong>Problèmes liés aux LLM</strong>&nbsp;: les modèles de langage peuvent &#8220;halluciner&#8221;, faire des erreurs de planification ou de raisonnement, et faire de mauvais choix lors de la sélection d&#8217;outils ou de l&#8217;identification d&#8217;entités.</li>
<li><strong>Debugging complexe</strong>&nbsp;: en raison de la nature &#8220;black box&#8221; des modèles de langage, il est difficile de déterminer pourquoi un agent a pris une décision particulière. Plus l&#8217;agent IA est complexe, plus il est difficile d&#8217;identifier la cause exacte des erreurs. Des outils de traçage spécialisés ne sont donc pas un luxe.</li>
<li><strong>Coût et lenteur</strong>&nbsp;: particulièrement dans les situations où la planification et la replanification sont continues ou lorsque l&#8217;agent doit effectuer de nombreuses étapes, le résultat final peut se faire attendre et les coûts liés à l&#8217;utilisation de grands modèles de langage peuvent augmenter.</li>
<li><strong>Défis liés à la production </strong>: la création d&#8217;un premier prototype demande généralement peu d&#8217;efforts. Le véritable défi réside dans la mise en œuvre fiable et performante dans un environnement de production réel.</li>
</ul>
<p>Etant donné que, dans de nombreux cas, nous ne pouvons pas nous fier aveuglément aux résultats des agents IA, une intervention humaine est encore souvent nécessaire pour garantir la fiabilité et la qualité.</p>
<h1 data-pm-slice="1 1 []">Examples pratiques</h1>
<p>Voici quelques exemples concrets d&#8217;agents IA illustrant les possibilités offertes&nbsp;:</p>
<ol>
<li><strong> Research agent</strong>&nbsp;: on voit émerger de plus en plus de systèmes destinés à effectuer des recherches, qui ne se limitent pas aux outils payants des grands fournisseurs (cf <a href="https://openai.com/index/introducing-deep-research/">OpenAI Deep Research</a>), mais comprennent également des alternatives ouvertes. L&#8217;objectif d&#8217;un tel agent de recherche est d&#8217;obtenir rapidement des informations sur un sujet donné. L&#8217;agent rédige des rapports de manière autonome, avec une contribution humaine pour la structure du rapport et la possibilité d&#8217;ajuster l&#8217;output. Un web search est utilisé comme outil pour collecter des informations sur le sujet donné et sur les thèmes spécifiques de chaque section. On utilise le reasoning pour planifier la structure du rapport, réfléchir aux sections générées et suggérer des questions de follow-up afin de poursuivre l&#8217;analyse à l&#8217;aide de l&#8217;outil de recherche web.</li>
<li><strong> Agentic IDE</strong>: l&#8217;IA agentielle fait de plus en plus son apparition dans le développement de logiciels. Des outils tels que <a href="https://code.visualstudio.com/blogs/2025/02/24/introducing-copilot-agent-mode">GitHub Copilot &#8220;agent mode&#8221;</a> font appel à des techniques d&#8217;IA non seulement pour fournir des suggestions pendant la programmation, mais également pour accomplir des tâches complètes de manière autonome. Pensez par exemple à la génération de code, à la refactorisation de plusieurs fichiers, à la rédaction de scripts de test et même à la correction automatique d&#8217;erreurs dans le cadre d&#8217;une approche itérative par essais et erreurs. L&#8217;agent comprend l&#8217;objectif global de la tâche, exécute les actions par étapes et reformule son approche si nécessaire, tout comme le ferait un programmeur humain. Il agit ainsi comme un assistant de programmation intelligent qui permet aux développeurs de travailler plus rapidement et de manière plus cohérente.</li>
<li><strong style="font-size: revert; color: initial;">Smart search </strong><span style="font-size: revert; color: initial;">: chez Smals, nous explorons les possibilités d&#8217;une fonction de recherche intelligente dans le contexte d&#8217;un environnement de travail. Dans la situation actuelle, les utilisateurs doivent naviguer parmi plus de 30 critères de recherche pour obtenir un résultat satisfaisant. L&#8217;objectif de cette expérience est de rendre la recherche beaucoup plus conviviale en permettant aux utilisateurs de formuler leur requête en langage naturel. L&#8217;agent peut désambiguïser la question (s&#8217;agit-il par exemple d&#8217;une entité ou d&#8217;une personne&nbsp;?) et convertir ensuite la question désambiguïsée en une requête JSON structurée permettant d&#8217;appeler une API de recherche.</span></li>
</ol>



<h1 data-pm-slice="1 1 []">Quand (ne pas) l&#8217;utiliser?</h1>
<p>Les agents IA peuvent être intéressants dans des situations où les solutions traditionnelles et déterministes ne suffisent pas. Pensez à des contextes impliquant de grandes quantités de données non structurées, en langage naturel ou avec des conditions changeantes où un comportement adaptatif est souhaitable. Les agents IA peuvent également apporter une valeur ajoutée dans le cadre de prises de décision complexes ou en tant qu&#8217;assistants dans des tâches comportant de nombreuses variables.</p>
<p>La checklist ci-dessous peut vous aider à déterminer si un agent IA est approprié&nbsp;:</p>
<p><strong>Quand un agent IA est-il une bonne idée&nbsp;?</strong></p>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> La tâche est complexe et difficile à formaliser complètement</p>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Le travail implique l&#8217;utilisation du langage naturel ou de données non structurées</p>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> La tâche est fréquente et prend actuellement beaucoup de temps</p>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Le contexte change régulièrement ou est incertain</p>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Il y a une valeur ajoutée évidente (gain de temps, meilleure qualité, évolutivité)</p>
<p><strong>Quand vaut-il mieux s&#8217;abstenir&nbsp;?</strong></p>
<p>✘ La tâche exige une grande précision et une absence totale d&#8217;erreurs (par exemple, dans le domaine médical ou financier)</p>
<p>✘ Le domaine est strictement réglementé ou contient des données personnelles sensibles</p>
<p>✘ La tâche nécessite une intuition humaine, de l&#8217;empathie ou des considérations éthiques</p>
<p>✘ La tâche est simple et peut être facilement résolue à l&#8217;aide de systèmes classiques basés sur des règles</p>
<p>Attention&nbsp;: les agents IA ne sont pas toujours tenus de fonctionner de manière totalement autonome. Dans la plupart des cas, leur efficacité est maximale dans un rôle d&#8217;assistance, comme un copilote intelligent qui prépare des analyses, émet des suggestions ou effectue un travail préparatoire, tandis que la responsabilité finale reste entre les mains de l&#8217;homme.</p>



<h1 data-pm-slice="1 1 []">Conclusion</h1>
<p>Les agents IA ont clairement le vent en poupe. Ils promettent des gains d&#8217;efficacité considérables et de nouvelles possibilités dans des domaines aussi variés que le service à la clientèle, la recherche, le développement de logiciels et la gestion de l&#8217;information. Grâce à leur capacité de raisonnement, à leur accès aux connaissances et à l&#8217;utilisation d&#8217;outils, ils peuvent atteindre un haut niveau d&#8217;autonomie.</p>
<p>Il est toutefois important d&#8217;aborder cette technologie avec la prudence nécessaire. Les agents IA sont encore en cours de développement et sont confrontés à des défis fondamentaux en matière de fiabilité, de transparence et de performance. Dans de nombreux cas, l&#8217;intervention et la supervision humaines restent indispensables.</p>
<p>Quiconque expérimente aujourd&#8217;hui les agents IA acquiert des connaissances précieuses sur la manière dont ces systèmes peuvent être intégrés dans les processus et les organisations. Les années à venir seront déterminantes pour l&#8217;évolution de cette technologie. Peut-elle passer du statut de gadget à un rôle à part entière dans le fonctionnement quotidien des organisations&nbsp;? Les agents IA ont le potentiel d&#8217;apporter une valeur ajoutée évidente, à condition qu&#8217;ils soient utilisés à bon escient.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><em data-rich-text-format-boundary="true">Ce post est une contribution individuelle de Bert Vanhalst, IT consultant chez Smals Research. Cet article est écrit en son nom propre et n’impacte en rien le point de vue de Smals.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AI agents: voordelen, uitdagingen en usecases</title>
		<link>https://www.smalsresearch.be/ai-agents-voordelen-uitdagingen-en-usecases/</link>
		
		<dc:creator><![CDATA[Bert Vanhalst]]></dc:creator>
		<pubDate>Tue, 22 Apr 2025 09:37:02 +0000</pubDate>
				<category><![CDATA[[NL]]]></category>
		<category><![CDATA[Blog post]]></category>
		<category><![CDATA[big data]]></category>
		<category><![CDATA[Information management]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[software engineering]]></category>
		<guid isPermaLink="false">/?p=22407</guid>

					<description><![CDATA[AI Agents zijn volop in opmars. Maar wat zijn het precies? En wat kunnen ze voor ons betekenen?]]></description>
										<content:encoded><![CDATA[
<p><em>Cet article est aussi disponible <a href="/agents-ia-avantages-defis-et-cas-utilisation/">en français</a>.</em></p>



<p>AI agents zijn volop in opmars. Maar wat zijn het precies? Wat kunnen ze voor ons betekenen, en waar moeten we voor oppassen? Deze blogpost geeft een overzicht van de mogelijkheden, risico&#8217;s en concrete toepassingen van AI agents.</p>



<h1 class="wp-block-heading">Wat zijn AI agents?</h1>



<p>AI agents kunnen omschreven worden als autonome of semiautonome software-entiteiten die AI gebruiken om waar te nemen, beslissingen te nemen, acties uit te voeren en doelen te bereiken. Net als een reisbureau dat op basis van jouw wensen zelfstandig een hele reis samenstelt en boekt, illustreren AI agents het concept van <em>&#8220;agency&#8221;</em>: het vermogen om zelfstandig beslissingen te nemen en te handelen binnen een digitale context.</p>



<p>Dit zijn de typische kenmerken van AI agents:</p>



<ul class="wp-block-list">
<li><strong>Autonomie:</strong> zelfstandig taken uitvoeren met weinig tot geen menselijke tussenkomst.</li>



<li><strong>Complexe doelen:</strong> tussenstappen efficiënt kunnen bepalen om complexe doelen te kunnen bereiken.</li>



<li><strong>Complexe omgevingen:</strong> het vermogen om zich aan te passen aan veranderende omstandigheden en onverwachte zaken, zoals bijgestuurde doelen, nieuwe informatie of onverwachte output van een extern systeem.</li>
</ul>



<p>De bovenstaande kenmerken zijn in mindere of meerdere mate van toepassing op AI agents, wat maakt dat &#8220;agency&#8221; gezien moet worden als een spectrum: hoe sterker deze eigenschappen aanwezig zijn, hoe beter een agent in staat is om complexe taken autonoom uit te voeren.</p>



<h1 data-pm-slice="1 1 []">De anatomie van AI agents</h1>
<p>AI agents bestaan doorgaans uit meerdere bouwstenen die samen hun intelligent gedrag mogelijk maken:</p>
<figure id="attachment_22419" aria-describedby="caption-attachment-22419" style="width: 1028px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2025/04/components.png"><img loading="lazy" decoding="async" class="size-full wp-image-22419" src="/wp-content/uploads/2025/04/components.png" alt="De componenten van AI agents" width="1028" height="355" srcset="https://www.smalsresearch.be/wp-content/uploads/2025/04/components.png 1028w, https://www.smalsresearch.be/wp-content/uploads/2025/04/components-300x104.png 300w, https://www.smalsresearch.be/wp-content/uploads/2025/04/components-768x265.png 768w, https://www.smalsresearch.be/wp-content/uploads/2025/04/components-1024x354.png 1024w" sizes="auto, (max-width: 1028px) 100vw, 1028px" /></a><figcaption id="caption-attachment-22419" class="wp-caption-text">De componenten van AI agents</figcaption></figure>
<ul data-spread="false">
<li>
<p><strong>Reasoning model </strong>(redeneervermogen)<strong>:</strong> het vermogen om een opeenvolging van acties te plannen om doelstellingen te bereiken, en beslissingen kunnen nemen zelfs met onvolledige gegevens. Hier zien we een trend van de klassieke &#8220;chat models&#8221; naar &#8220;reasoning models&#8221; die beter in staat zijn om problemen op te splitsen in kleinere stappen, fouten kunnen verbeteren en meerdere strategieën kunnen uitproberen.</p>
</li>
<li>
<p><strong>Knowledge base:</strong> domein-specifieke kennis die vaak opgehaald wordt via <a href="/kwaliteit-van-een-generatief-vraag-antwoordsysteem/">Retrieval-Augmented Generation (RAG)</a> technieken.</p>
</li>
<li>
<p><strong>Geheugen: </strong>het vermogen om informatie over eerdere stappen of interacties te onthouden. Dit kan zowel op korte termijn zijn (binnen een sessie) als op langere termijn (over meerdere sessies heen). Geheugen stelt AI agents in staat om consequente antwoorden te geven, eerdere beslissingen te onthouden en de interactie vloeiender te maken.</p>
</li>
<li>
<p><strong>Tools:</strong> tools, zoals zoekmachines, databanken of API’s, kunnen gekoppeld worden aan grote taalmodellen (LLM&#8217;s). Op basis van een beschrijving van de tools kan het model dan bepalen welke tool er moet gebruikt worden om een bepaalde taak uit te voeren, tezamen met de input-parameters.</p>
</li>
</ul>
<p>Deze verschillende componenten worden geconfigureerd en georchestreerd met behulp van specifieke tools zoals <a href="https://www.langchain.com/langgraph">LangGraph</a>, <a href="https://www.llamaindex.ai/">LlamaIndex</a>, <a href="https://www.crewai.com/">CrewAI</a>, etc.</p>
<figure id="attachment_22420" aria-describedby="caption-attachment-22420" style="width: 1096px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2025/04/tool_use.png"><img loading="lazy" decoding="async" class="size-full wp-image-22420" src="/wp-content/uploads/2025/04/tool_use.png" alt="Toolgebruik" width="1096" height="402" srcset="https://www.smalsresearch.be/wp-content/uploads/2025/04/tool_use.png 1096w, https://www.smalsresearch.be/wp-content/uploads/2025/04/tool_use-300x110.png 300w, https://www.smalsresearch.be/wp-content/uploads/2025/04/tool_use-768x282.png 768w, https://www.smalsresearch.be/wp-content/uploads/2025/04/tool_use-1024x376.png 1024w" sizes="auto, (max-width: 1096px) 100vw, 1096px" /></a><figcaption id="caption-attachment-22420" class="wp-caption-text">Toolgebruik &#8211; Op basis van de input selecteert het model de <em>multiply</em> functie en identificeert de parameters (8 en 2)</figcaption></figure>
<p>AI agents kunnen op verschillende manieren worden geactiveerd. Vaak gebeurt dit via tekst- of spraakinput, zoals in een chatinterface. Maar een trigger kan ook automatisch komen vanuit een proces: bijvoorbeeld de aanmaak van een nieuw bestand, het binnenkomen van een e-mail, of een wijziging in een database. Deze flexibiliteit maakt AI agents inzetbaar in uiteenlopende workflows.</p>
<p>Een interessante evolutie is <strong>&#8220;multi-agent collaboration&#8221;</strong>: hierbij werken meerdere AI agents samen, elk met een eigen specialisatie of taak. Door onderling te communiceren en taken te verdelen, kunnen ze complexe problemen efficiënter en effectiever aanpakken dan een enkelvoudige agent. Denk bijvoorbeeld aan een team van agents die samen een rapport opstellen, waarbij een agent data verzamelt, een andere analyseert en een derde het rapport schrijft.</p>
<p>Hoewel AI agents steeds autonomer worden, blijft een <strong>&#8220;human in the loop&#8221;</strong> essentieel. Menselijke supervisie helpt niet alleen om fouten of ongewenst gedrag tijdig te detecteren, maar verhoogt ook het vertrouwen en de betrouwbaarheid van het systeem – zeker in kritieke toepassingen waar nauwkeurigheid en ethiek een grote rol spelen.</p>



<h1 data-pm-slice="1 3 []">Voordelen en toepassingen</h1>
<p>Nu we weten uit welke bouwstenen AI agents zijn opgebouwd, kunnen we eens kijken welke voordelen ze kunnen bieden:</p>
<ul data-spread="false">
<li>
<p><strong>Automatisering van taken:</strong> AI agents kunnen repetitieve en tijdrovende taken zelfstandig uitvoeren, waardoor medewerkers zich kunnen focussen op meer strategisch werk.</p>
</li>
<li>
<p><strong>Ondersteuning bij besluitvorming:</strong> door snel grote hoeveelheden data te analyseren en relevante inzichten aan te reiken, kunnen AI agents helpen bij het nemen van betere en beter onderbouwde beslissingen.</p>
</li>
<li>
<p><strong>Intelligente interactie met gebruikers:</strong> AI agents kunnen op een natuurlijke en contextbewuste manier communiceren via tekst of spraak, wat leidt tot vlottere en persoonlijkere interacties met eindgebruikers.</p>
</li>
</ul>
<p>In de volgende toepassingsdomeinen kunnen AI agents potentieel een meerwaarde bieden:</p>
<ul data-spread="false">
<li>
<p><strong>Gebruikersomgevingen:</strong> in klantgerichte omgevingen kunnen AI agents ingezet worden voor geautomatiseerde helpdesks, chatbots of gepersonaliseerde aanbevelingen.</p>
</li>
<li>
<p><strong>Informatieverwerking:</strong> AI agents zijn bijzonder geschikt voor het analyseren en structureren van grote hoeveelheden informatie. Ze kunnen documenten samenvatten, trends detecteren of relevante informatie extraheren uit complexe databronnen.</p>
</li>
<li>
<p><strong>Creatieve toepassingen:</strong> in creatieve sectoren kunnen AI agents ondersteuning bieden bij het opstellen van rapporten, het genereren van teksten voor sociale media of zelfs het meedenken over nieuwe campagnes. Ze functioneren hierbij als creatieve sparringpartner of productieve assistent.</p>
</li>
</ul>



<h1 data-pm-slice="1 1 []">Uitdagingen en Risico&#8217;s</h1>
<p>Hoewel de technologie veel potentieel heeft, is het cruciaal om stil te staan bij enkele belangrijke aandachtspunten:</p>
<ul data-spread="false">
<li>
<p><strong>Onvoorspelbaarheid:</strong> AI agents kunnen onvoorspelbaar zijn vanwege hun niet-deterministische aard; ze leveren soms onverwachte of inconsistente resultaten die moeilijk te reproduceren en te begrijpen zijn.</p>
</li>
<li>
<p><strong>Problemen met LLM&#8217;s:</strong> taalmodellen kunnen &#8220;hallucineren&#8221;, fouten maken bij het plannen of redeneren, en verkeerde keuzes maken bij de selectie van tools of het identificeren van entiteiten.</p>
</li>
<li>
<p><strong>Complexe debugging:</strong> vanwege de black-box-aard van taalmodellen is het moeilijk om te achterhalen waarom een agent een bepaalde beslissing gemaakt heeft. Hoe complexer de AI agent, hoe moeilijker het is om de exacte oorzaak van fouten te identificeren. Gespecialiseerde tracing tools zijn hierbij geen overbodige luxe.</p>
</li>
<li>
<p><strong>Kost en traagheid:</strong> vooral in situaties waarbij continu gepland en herpland wordt of de agent veel stappen doorloopt kan de finale output op zich laten wachten en kunnen de kosten voor het gebruik van grote taalmodellen oplopen.</p>
</li>
<li>
<p><strong>Productie-uitdagingen:</strong> een eerste prototype bouwen kost doorgaans relatief weinig moeite. De échte uitdaging ligt in het betrouwbaar en performant inzetten in een echte productie-omgeving.</p>
</li>
</ul>
<p>Aangezien we in veel gevallen niet blindelings kunnen vertrouwen op de output van AI agents, is er momenteel nog vaak een menselijke tussenkomst nodig om betrouwbaarheid en kwaliteit te waarborgen.</p>
<h1 data-pm-slice="1 1 []">Praktische voorbeelden</h1>
<p>Om de mogelijkheden te illustreren volgen hieronder enkele concrete voorbeelden van AI agents:</p>
<p><strong>1. Research agent:</strong> meer en meer zien we systemen opduiken om reseach uit te voeren, niet enkel betalende tools van de grote leveranciers (cf <a href="https://openai.com/index/introducing-deep-research/">OpenAI Deep Research</a>), maar ook open alternatieven. Het doel van zo&#8217;n research agent is om snel inzicht te krijgen in een bepaalde topic. De agent stelt zelfstandig rapporten op, met menselijke input voor de structuur van het rapport en de mogelijkheid om de output bij te sturen. Web search wordt ingezet als tool om informatie te verzamelen over de opgegeven topic en over de specifieke topics van elke sectie. Er wordt gebruik gemaakt van reasoning om de structuur van het rapport te plannen en om te reflecteren over de gegenereerde secties en follow-up vragen te suggereren om verdere analyse uit te voeren met behulp van de web search tool.</p>
<p><strong>2. Agentic IDE:</strong> meer en meer zien we agentic AI opduiken bij softwareontwikkeling. Tools zoals <a href="https://code.visualstudio.com/blogs/2025/02/24/introducing-copilot-agent-mode">GitHub Copilot &#8220;agent mode&#8221;</a> schakelen AI-technieken in om niet enkel suggesties te geven tijdens het programmeren, maar ook om volledige taken autonoom af te ronden. Denk hierbij aan het genereren van code, uitvoeren van refactorings over meerdere bestanden, schrijven van testscripts en zelfs het automatisch verbeteren van fouten in een iteratieve trial-and-error aanpak. De agent begrijpt het bredere doel van de taak, voert stapsgewijs acties uit en herformuleert zijn aanpak indien nodig – net zoals een menselijke programmeur dat zou doen. Hierdoor fungeert hij als een intelligente programmeerassistent die ontwikkelaars sneller en consistenter laat werken.</p>
<p><strong>3. Smart search:</strong> binnen Smals verkennen we de mogelijkheden van een slimme zoekfunctie in de context van een werkomgeving. In de huidige situatie moeten gebruikers hun weg vinden in meer dan 30 zoekcriteria om tot een goed resultaat te komen. Het doel van dit experiment is om het zoeken veel gebruiksvriendelijker te maken door gebruikers toe te laten hun zoekopdracht te formuleren in natuurlijke taal. De agent kan de vraag desambiguëren (gaat het bijvoorbeeld over een entiteit of een persoon?) en de gedesambigueerde vraag vervolgens omzetten naar een gestructureerde JSON-query waarmee een search-API kan aangeroepen worden.</p>



<h1 data-pm-slice="1 1 []">Wanneer (niet) gebruiken?</h1>
<p>AI agents kunnen interessant zijn in situaties waar traditionele, deterministische oplossingen tekortschieten. Denk aan contexten met grote hoeveelheden ongestructureerde data, natuurlijke taal, of veranderende omstandigheden waar adaptief gedrag wenselijk is. Ook voor complexe besluitvorming of als assistent in taken met veel variabelen kunnen AI agents meerwaarde bieden.</p>
<p>Om te beoordelen of een AI agent gepast is, kan onderstaande checklist helpen:</p>
<p><strong>Wanneer is een AI agent een goed idee?</strong></p>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> De taak is complex en moeilijk volledig te formaliseren</p>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Er wordt gewerkt met natuurlijke taal of ongestructureerde data</p>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> De taak komt frequent voor en kost vandaag veel tijd</p>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> De context verandert regelmatig of is onzeker</p>
<p><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2714.png" alt="✔" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Er is een duidelijke meerwaarde (tijdswinst, betere kwaliteit, schaalbaarheid)</p>
<p><strong>Wanneer beter niet?</strong></p>
<p>✘ De taak vereist hoge nauwkeurigheid en foutloosheid (bv. medisch, financieel)</p>
<p>✘ Het domein is strikt gereguleerd of bevat gevoelige persoonsgegevens</p>
<p>✘ De taak vraagt menselijke intuïtie, empathie of ethische afwegingen</p>
<p>✘ De taak is eenvoudig en goed oplosbaar via klassieke regelgebaseerde systemen</p>
<p>Let op: AI agents hoeven niet altijd volledig autonoom te opereren. In veel gevallen zijn ze het meest effectief in een assisterende rol – als slimme copiloot die analyses voorbereidt, suggesties doet of voorbereidend werk levert, terwijl de eindverantwoordelijkheid bij de mens blijft.</p>



<h1 data-pm-slice="1 1 []">Conclusie</h1>
<p>AI agents zitten duidelijk in de lift. Ze beloven enorme efficiëntiewinsten en nieuwe mogelijkheden in uiteenlopende domeinen, van klantendiensten en research tot softwareontwikkeling en informatiebeheer. Dankzij hun redenerend vermogen, toegang tot kennis en toolgebruik kunnen ze een hoog niveau van autonomie bereiken.</p>
<p>Toch is het belangrijk om deze technologie met de nodige voorzichtigheid te benaderen. AI agents zijn nog volop in ontwikkeling en kampen met fundamentele uitdagingen rond betrouwbaarheid, transparantie en performantie. In veel gevallen is menselijke tussenkomst en supervisie nog onmisbaar.</p>
<p>Wie vandaag experimenteert met AI agents, bouwt waardevolle kennis op over hoe deze systemen kunnen geïntegreerd worden in processen en organisaties. De komende jaren zullen bepalend zijn voor hoe deze technologie evolueert. Kan ze van hype evolueren naar een volwaardige, ingebedde rol in de dagelijkse werking van organisaties? AI agents hebben het potentieel om een duidelijke meerwaarde te leveren, mits we ze verstandig inzetten.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><em data-rich-text-format-boundary="true">Dit is een ingezonden bijdrage van Bert Vanhalst, IT consultant bij Smals Research. Dit artikel werd geschreven in eigen naam en neemt geen standpunt in namens Smals.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cohere Rerank &#8211; Semantic search enhancement</title>
		<link>https://www.smalsresearch.be/cohere-rerank-semantic-search-enhancement/</link>
		
		<dc:creator><![CDATA[Bert Vanhalst]]></dc:creator>
		<pubDate>Mon, 09 Sep 2024 13:23:14 +0000</pubDate>
				<category><![CDATA[[NL]]]></category>
		<category><![CDATA[Quick reviews]]></category>
		<guid isPermaLink="false">https://www.smalsresearch.be/cohere-rerank-semantic-search-enhancement/</guid>

					<description><![CDATA[Cohere Rerank is een service voor het verbeteren van de relevantie van zoekresultaten. Cohere Rerank est un service permettant d&#8217;améliorer la pertinence des résultats de recherche.]]></description>
										<content:encoded><![CDATA[
<p>Cohere Rerank is een service voor het verbeteren van de relevantie van zoekresultaten.</p>




<p>Cohere Rerank est un service permettant d&#8217;améliorer la pertinence des résultats de recherche.</p>







            <div data-wp-interactive="core/file" class="wp-block-file">
                <object data-wp-bind--hidden="!state.hasPdfPreview" hidden class="wp-block-file__embed" data="https://www.smalsresearch.be/wp-content/uploads/2024/09/QR-Cohere-Rerank.pdf" type="application/pdf" style="width:100%;height:600px" aria-label="Embed of QR-Cohere-Rerank."></object>
                <a id="wp-block-file--media-8b2574f1-b6dc-4f45-af28-e4533390310f" href="https://www.smalsresearch.be/wp-content/uploads/2024/09/QR-Cohere-Rerank.pdf">QR-Cohere-Rerank</a><a href="https://www.smalsresearch.be/wp-content/uploads/2024/09/QR-Cohere-Rerank.pdf" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-8b2574f1-b6dc-4f45-af28-e4533390310f">Download</a>
                </div>
            ]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>De meilleurs résultats de recherche grâce aux bases de données vectorielles</title>
		<link>https://www.smalsresearch.be/de-meilleurs-resultats-de-recherche-grace-aux-bases-de-donnees-vectorielles/</link>
		
		<dc:creator><![CDATA[Bert Vanhalst]]></dc:creator>
		<pubDate>Thu, 20 Jun 2024 08:47:05 +0000</pubDate>
				<category><![CDATA[[FR]]]></category>
		<category><![CDATA[Blog post]]></category>
		<category><![CDATA[Artificial intelligence]]></category>
		<category><![CDATA[big data]]></category>
		<category><![CDATA[cloud computing]]></category>
		<category><![CDATA[Information management]]></category>
		<guid isPermaLink="false">/?p=20640</guid>

					<description><![CDATA[Dans le monde de l'IA, les bases de données vectorielles sont devenues un outil important. 
Elles nous permettent de stocker et de fouiller efficacement de grandes quantités de données, fonction essentielle pour de nombreuses applications.]]></description>
										<content:encoded><![CDATA[
<p><a href="/betere-zoekresultaten-met-vector-databases/"><em>Nederlandstalige versie</em></a></p>



<p>Dans le monde de l&#8217;IA, les bases de données vectorielles sont devenues un outil important. <br />Elles nous permettent de stocker et de fouiller efficacement de grandes quantités de données non structurées, fonction essentielle pour de nombreuses applications.</p>



<h2 class="wp-block-heading">Embeddings vectoriels</h2>



<p>Les bases de données vectorielles gèrent essentiellement des données vectorielles, c&#8217;est-à-dire des données représentées sous la forme d&#8217;une série de nombres, ou vecteurs, représentant un point dans un espace à haute dimension. La quantité de nombres dans un vecteur correspond à la quantité de dimensions.</p>
<p>La conversion des données en vecteurs s&#8217;opère sur la base d&#8217;un modèle d&#8217;embedding, où est captée leur signification (sémantique). On parle d&#8217;embeddings vectoriels. Par exemple, le vecteur du mot &#8220;chiot&#8221; sera proche du vecteur du mot &#8220;chien&#8221;, et plus éloigné du vecteur du mot &#8220;pomme&#8221;.</p>
<figure id="attachment_20558" aria-describedby="caption-attachment-20558" style="width: 659px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2024/06/vector_embeddings.png"><img loading="lazy" decoding="async" class="wp-image-20558 size-full" src="/wp-content/uploads/2024/06/vector_embeddings.png" alt="Vector embeddings" width="659" height="236" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/06/vector_embeddings.png 659w, https://www.smalsresearch.be/wp-content/uploads/2024/06/vector_embeddings-300x107.png 300w" sizes="auto, (max-width: 659px) 100vw, 659px" /></a><figcaption id="caption-attachment-20558" class="wp-caption-text">Création d&#8217;embeddings vectoriels</figcaption></figure>
<p>Ces vecteurs sont sauvegardés sous forme indexée dans une base de données vectorielle, de manière à ce que la recherche s&#8217;effectue le plus efficacement possible.</p>



<h2 class="wp-block-heading">Recherche de similarité</h2>



<p>Les bases de données vectorielles se distinguent par le fait qu&#8217;elles peuvent rechercher des données similaires par rapport à une requête d&#8217;entrée (query). On parle de recherche de similarité&nbsp;: au lieu de rechercher des correspondances exactes, les bases de données vectorielles peuvent rechercher les données les plus similaires à une requête donnée.</p>
<p>Cette &#8220;similarité&#8221; est calculée sur la base de la distance entre les vecteurs dans l&#8217;espace de recherche&nbsp;: plus la distance entre deux vecteurs est faible, plus ils sont similaires. Plusieurs fonctions permettent de calculer la distance entre deux vecteurs. Le choix peut dépendre de plusieurs facteurs&nbsp;: les données, le modèle d&#8217;embedding utilisé et le compromis entre précision et vitesse d&#8217;exécution.</p>
<figure id="attachment_20567" aria-describedby="caption-attachment-20567" style="width: 860px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2024/06/distance_functions_EN.png"><img loading="lazy" decoding="async" class="wp-image-20567 size-full" src="/wp-content/uploads/2024/06/distance_functions_EN.png" alt="Distance functions" width="860" height="307" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/06/distance_functions_EN.png 860w, https://www.smalsresearch.be/wp-content/uploads/2024/06/distance_functions_EN-300x107.png 300w, https://www.smalsresearch.be/wp-content/uploads/2024/06/distance_functions_EN-768x274.png 768w" sizes="auto, (max-width: 860px) 100vw, 860px" /></a><figcaption id="caption-attachment-20567" class="wp-caption-text">Fonctions de distance pour le calcul de la similarité entre vecteurs</figcaption></figure>
<p>La méthode la plus évidente pour chercher les vecteurs les plus proches d&#8217;un vecteur de requête consiste à comparer exhaustivement le vecteur de requête à tous les vecteurs présents dans la base de données (k-Nearest-Neighbors ou kNN). Nous avons ainsi la certitude de trouver les k vecteurs les plus proches. Dans ce cas, nous obtenons une précision parfaite. L&#8217;inconvénient de cette méthode est qu&#8217;elle nécessite beaucoup de calculs et qu&#8217;elle n&#8217;est pas extensible.</p>
<figure id="attachment_20561" aria-describedby="caption-attachment-20561" style="width: 482px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2024/06/kNN.png"><img loading="lazy" decoding="async" class="size-full wp-image-20561" src="/wp-content/uploads/2024/06/kNN.png" alt="" width="482" height="377" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/06/kNN.png 482w, https://www.smalsresearch.be/wp-content/uploads/2024/06/kNN-300x235.png 300w" sizes="auto, (max-width: 482px) 100vw, 482px" /></a><figcaption id="caption-attachment-20561" class="wp-caption-text">k-Nearest-Neighbors</figcaption></figure>
<p>Pour effectuer des recherches plus performantes parmi de grandes quantités de données, il existe des méthodes approximatives où il n&#8217;y a pas de comparaison exhaustive entre la requête et les vecteurs de la base de données (Approximative Nearest Neighbors ou ANN). La méthode la plus utilisée est sans doute HNSW (Hierarchical Navigable Small World). Il s&#8217;agit d&#8217;une méthode basée sur un graphe hiérarchique où chaque nœud représente un vecteur et où les liens entre les nœuds indiquent la distance qui les sépare. Lors d&#8217;une recherche, l&#8217;algorithme navigue efficacement dans le graphe, en commençant par les niveaux supérieurs (où la densité des nœuds est moindre) et en descendant progressivement vers les niveaux inférieurs pour trouver les voisins les plus proches.</p>



<h2 class="wp-block-heading">Recherche hybride</h2>



<p>La recherche hybride est une technique de recherche avancée qui combine les atouts de la recherche vectorielle et ceux de la recherche classique par mot-clé. La recherche par mot-clé (recherche lexicale) utilise les correspondances exactes des mots-clés dans le texte. Elle est rapide et simple, mais manque parfois de nuances contextuelles. La recherche vectorielle (recherche sémantique) tient compte du sens. Dans la pratique, une combinaison des deux méthodes débouche sur de meilleurs résultats que chaque méthode individuelle.</p>
<figure id="attachment_20572" aria-describedby="caption-attachment-20572" style="width: 562px" class="wp-caption aligncenter"><a href="/wp-content/uploads/2024/06/hybrid_search_EN.png"><img loading="lazy" decoding="async" class="wp-image-20572 size-full" src="/wp-content/uploads/2024/06/hybrid_search_EN.png" alt="Hybrid search" width="562" height="646" srcset="https://www.smalsresearch.be/wp-content/uploads/2024/06/hybrid_search_EN.png 562w, https://www.smalsresearch.be/wp-content/uploads/2024/06/hybrid_search_EN-261x300.png 261w" sizes="auto, (max-width: 562px) 100vw, 562px" /></a><figcaption id="caption-attachment-20572" class="wp-caption-text">Recherche hybride</figcaption></figure>
<p>Pour améliorer encore la pertinence des résultats de recherche, il est possible d&#8217;appliquer le classement sémantique, qui consiste à utiliser un modèle de machine learning avancé pour réorganiser les résultats de la recherche en fonction de leur pertinence par rapport à la requête. Il s&#8217;agit généralement d&#8217;une fonction payante ou d&#8217;une API facturée sur la base de son utilisation. À titre d&#8217;exemple d&#8217;un tel service, nous pouvons citer <a href="https://cohere.com/rerank">Cohere Rerank</a>.</p>



<h2 class="wp-block-heading">Domaines d&#8217;application</h2>



<p>Les bases de données vectorielles peuvent être utilisées pour un grand nombre d&#8217;applications :</p>
<ul>
<li>Recherche sémantique &#8211; Il est clair à présent que les bases de données vectorielles peuvent grandement contribuer à l&#8217;amélioration des résultats d&#8217;une recherche sur la base de la signification sémantique plutôt que sur la seule base des correspondances exactes.</li>
<li><em>Question answering &amp; RAG</em>&#8211; Depuis peu, les <a href="/un-propre-systeme-de-questions-reponses-base-sur-des-modeles-de-langue/">systèmes génératifs de questions-réponses</a> font l&#8217;objet d&#8217;une grande attention. Dans un tel système, les bases de données vectorielles peuvent servir d&#8217;extracteur. On parle de <a href="/qualite-dun-systeme-generatif-de-questions-reponses/"><em>Retrieval Augmented Generation (RAG)</em></a>. Dans cette approche, un modèle de langage formule des réponses basées sur les informations les plus pertinentes d&#8217;une base de connaissances.</li>
<li>Recommandations &#8211; Les bases de données vectorielles peuvent également être utilisées pour recommander des informations ou des produits aux utilisateurs, en fonction ou non de leur historique ou de leurs préférences.</li>
</ul>
<p>Recherche de similarité multimodale (<em>Multimodal similarity search</em>) &#8211; Certains modèles d&#8217;embedding sont capables de créer des vecteurs pour plusieurs types de données : non seulement du texte, mais aussi des images, de l&#8217;audio ou de la vidéo. Les bases de données vectorielles peuvent ainsi permettre la recherche de contenus similaires, qu&#8217;il s&#8217;agisse de textes, d&#8217;images, d&#8217;audio ou de vidéo.</p>



<h2 class="wp-block-heading">Aperçu du marché</h2>



<p>Les acteurs initiaux du marché des bases de données vectorielles comme <a href="https://www.trychroma.com/">Chroma</a>, <a href="https://milvus.io/">Milvus</a>, <a href="https://www.pinecone.io/">Pinecone</a> et <a href="https://weaviate.io/">Weaviate</a>, proposaient essentiellement des solutions spécifiques. <br />Ce n&#8217;est que plus tard que les acteurs plus établis ont pris le train en marche. Ainsi, <a href="https://www.elastic.co/enterprise-search/vector-search">ElasticSearch</a> et Postgresql (avec l&#8217;extension <a href="https://github.com/pgvector/pgvector">pgvector</a>) prennent également en charge la recherche vectorielle. Bien évidemment, les grands acteurs sont également représentés dans le paysage : Microsoft propose <a href="https://azure.microsoft.com/en-us/products/ai-services/ai-search">Azure AI Search</a>, Google <a href="https://cloud.google.com/vertex-ai/docs/vector-search/overview">Vector AI Vector Search</a> et Amazon <a href="https://aws.amazon.com/kendra/">Kendra</a>.</p>
<p>Presque toutes les solutions s&#8217;intègrent à des solutions d&#8217;orchestration LLM telles que <a href="/publications/document/?docid=279">LangChain</a> et <a href="https://www.llamaindex.ai/">LlamaIndex</a>. De plus en plus, les bases de données vectorielles fournissent également un support intégré pour RAG, où la création d&#8217;embeddings et l&#8217;invocation d&#8217;un modèle de langage n&#8217;ont plus besoin d&#8217;être orchestrées en dehors de la base de données vectorielle.</p>
<p>Il convient également de mentionner <a href="https://neo4j.com/docs/cypher-manual/current/indexes/semantic-indexes/vector-indexes/">Neo4j</a>, qui prend en charge la recherche vectorielle en plus de la recherche dans le graphe, ce qui le rend adapté aux cas de données structurées et non structurées.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p>Enfin, nous pouvons affirmer que les bases de données vectorielles peuvent fournir des résultats de recherche meilleurs et plus pertinents qu&#8217;une simple recherche par mot-clé. <br>Dans les applications génératives de réponse aux questions, les bases de données vectorielles peuvent aider un modèle de langage à formuler des réponses basées sur les informations les plus pertinentes d&#8217;une base de connaissances. S&#8217;il n&#8217;est pas évident de faire fonctionner de grands modèles de langage sur une infrastructure propriétaire, cela est bien possible avec une base de données vectorielle en guise de composant d&#8217;extraction, ce qui peut être un facteur favorable dans le contexte de la protection des données.</p>
<p>D&#8217;après notre propre expérience, la recherche hybride, à savoir une combinaison de recherche vectorielle et de recherche lexicale, peut être une solution rapide pour améliorer les résultats de la recherche. Le classement sémantique peut en outre renforcer la pertinence des résultats.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p><em data-rich-text-format-boundary="true">Ce post est une contribution individuelle de Bert Vanhalst, IT consultant chez Smals Research. Cet article est écrit en son nom propre et n’impacte en rien le point de vue de Smals.</em></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
