Internship II project - school42 peer evaluations

Table of contents

Lieu de stage: Solis Law

Solis Law Firm | Isnes

Solis law est un cabinet d'avocats en droit des affaires, contenant une équipe pluridisciplinaire couvrant les domaines d'expertises: compliance (la conformité légale des entreprises); sociétés; droit fiscal (impôts et taxes); droit commercial; contrats et immobilier; TVA, droit de douane et d'accise; entreprise en difficulté; planification patrimoniale; modes alternatifs de règlement des conflits (les MARCS).

La clientèle est essentiellement composée d'entreprises de toutes tailles qui demandent conseil sur le plan juridique et économique de leur entreprise.

Avocadhoc est la plateforme digitale de Solis qui propose des formations et modèles de documents juridiques, mais aussi de l'actualité juridique en droit des affaires, pour les entreprises ou comptables.

Connaissances préalables et identifier les besoins

Avant le stage j'ai suivi un cours de spécialisation en NLP. J'ai finalisé ce cours durant le début du stage et il m'a permis de comprendre comment appliquer le NLP.

En discutant avec l'équipe d'avocats j'ai pu comprendre le fonctionnement et les contraintes du travail d'avocats pour appréhender leurs besoins par rapport à ce que le NLP sait proposer.

La meilleure solution NLP

La solution NLP semblant la plus adaptée était le RAG.

RAG est une abréviation de retrieval-augmented generation. Un RAG répond à des questions en langage naturel, référence ses réponses qu'elle cherche parmi des textes qui lui sont donnés. Donc elle retrieve des informations dans des textes donnés, et après generate une réponse en langage naturel.

Le RAG est privilégié par les professionnels vis-à-vis les LLMs classiques, car elle trouve ses réponses dans des textes spécifiquement choisis par l'utilisateur tout en référençant ses réponses, créant des réponses plus justes et vérifiables.

Comment créer le RAG

Un RAG combine un retriever (trouve les morceaux de texte les plus pertinents de la database en utilisant embeddings et vector search) avec un generator (un LLM, comme GPT-4, Llama 3, ou Mistral, qui prend ces morceaux comme contexte et synthétise une réponse).

What is RAG: Understanding Retrieval-Augmented Generation - Qdrant

Embedding signifie transformer du texte en vecteurs numériques qui encodent la signification. Pour faire cela localement on utilise la librairie Python SentenceTransformer. Puis Redis est utilisé: pour stocker ces vecteurs dans une vector database; et retrieve avec un vector search utilisant cosine similarity et kNN. Pour la partie generation du RAG on utilise le LLM Llama 3 8B qui est open-source sur Hugging Face, et qu'on run localement via Ollama.

Comment créer la database

Le RAG doit: se baser sur des informations qui lui sont données; et référencer des sources sûres. Pour cela une database a été créée contenant: législations, jurisprudences, doctrines, circulaires, anciennes consultations et cours académiques. On récupère cela via: la base de données Strada lex; le journal Fiscologue; les documents en interne; et les cours de professeurs à Solis.

Oracle Database Appliance (ODA) - Das Protection Juridique Case Study

Résultat final

L'équipe préfère maintenant le système RAG au lieu du LLM classique chatGPT précédemment utilisé, en raison de ses réponses plus justes et référencées.

Le maître de stage note à mon sujet: bon fonctionnement autonome comme appris à 42Belgium; bonne organisation en utilisant des applications de notes; bonne communication avec l'équipe et compréhension des besoins.

Cependant, actuellement, 6 mois après la fin du stage, l'équipe utilise le nouveau GenIA-L, qui est aussi un RAG mais avec sa propre database que l'utilisateur ne doit pas gérer lui-même, ce qui est donc plus simple d'utilisation.