lab r&d

Our works

Since the creation of our R&D Laboratory, our work has been recognized by the Ministry of Higher Education and Research, which acknowledged our investments and progress by granting us the Young Innovative Company Label.

AIDA (Artificial Intelligence for Development Assistant)

What if 45% of your IT projects were automatically generated thanks to Artificial Intelligence? AIDA represents the first squad of intelligent agents to support developers in their daily work. 

Aida developer assistant leverages state-of-the art advances in the NLP field to assist companies in their development process by speeding up the process and optimizing the project overflow overall. The reliability of our developer is made possible by a tenacious modelling work. Novelis considers developer assistants as an essential addition to the development tools thanks to the efficiency they can provide. In fact, Novelis highly believes that developper assistants will be a factor for driving big changes in how organizations design, structure and carry out projects in the near future.

AIDA is one of the main projects in our Smart Programming program to design and implement artificial developers. The goal is to simplify computer development, overcome technological limitations and constraints, and eliminate repetitive work. AIDA is capable to exchange in natural language with developers to generate code and thus create applications. 

In a few words: 

  • Project around Smart Programming in the No / Low code philosophy 
  • Complex architectures using NLP and AI image processing
  • Rethinking the way a developer interacts to generate applications 

Modelling, a pillar for the Understanding aspect

Modelling is the action of turning a problem into a structured, usable representation. In a way, it is a manner of reformulating the problem into a standard output in order to take actions and decisions downstream.

In AIDA, Modelling takes place in its EntityIdentifier Module, it aims to encode the natural language input into Unified Modeling Language (UML) diagrams using Knowledge-Extraction techniques.

Data Knowledge-Extraction

Knowledge-Extraction is a very innovative subfield of Natural Language Processing. It is the process of distilling structured and concise information from natural text. Given an article, a news’ paper, an email or even a product description, one can draw out a mapping of organizations, people, places and entities using knowledge-extraction techniques.  In order to accomplish knowledge-extraction various methods such as rule pipelines-based methods, Transformers and reinforcement learning approaches have been explored by research, which makes the technology even more sophisticated.

In our work, Knowledge-extraction is responsible for collecting key elements for object oriented aspects of a project. For instance, in an online webstore project, describing on-sale products in natural language will trigger a Knowledge-extraction module to retrieve information about these products from the description and understand how they are linked in order to generate class representations in a standardized UML format.

Unified Modeling Language

Modeling languages are used for the purpose of establishing a standardized and consistent information stream, in the AIDA modelling process, Unified Modeling Language (UML) is the language used to guarantee this consistency.

The choice of UML as a modeling language owes to its consistent representation of the modeled system. UML covers both the structure aspect and the behavior aspect of a system. Structure is represented through “Structural UML Diagrams”; a set of diagrams(Class diagram, Component diagram…) responsible for describing entities of the system on various detail levels. On the other hand, behavior is described through “Behavioral UML Diagrams” (Activity Diagram, Communication Diagram…), they encapsulate interactions between entities, their states and that can occur.

Modelling in Novelis AIDA assistant

Modelling is a critical instrument in our work, without it, the model will not be able to get a good grasp of a prompt making it difficult for the generators to output a reliable response. UML paired with state-of-the art Knowledge-Extraction techniques make a thorough representation of the problem, which addresses this issue.

In addition, Novelis uses a set of rule based techniques to limit error propagation and increase accuracy all across its solution. A parsing layer is used for building a dependency graph from the input’s syntaxe to get a better grasp of the user’s demand. A Roberta-based coreference resolver is used for double-checking for any remaining coreferences in the text. Last but not least, a module for quantificational modifiers detection verifies cardinality of the extracted entities before encoding information into a UML Class diagram.

It is certain that the future of computing will involve the development of applications where the effort of “coding” will be less and less important, at least for a part of them. This is evidenced by the interest of industry giants such as Microsoft or the news from industry professionals.

AIDA holds an LLM model to generate the required code

LLMs, or large language models, have been successfully used to generate computer code for an application. Because of their ability to understand natural language and generate text in a fluent manner, LLMs can be used to create code that follows instructions given in natural language. By using this approach, the application development process can be accelerated, as programmers do not need to spend as much time manually coding each line of code. This also reduces coding errors and improves the overall quality of the application. In summary, using LLM for computer code generation can be an effective approach for developers looking to improve the efficiency and quality of their work.

Who can benefit from a project like AIDA? 

  • For developers 
  • For business analysts 
  • For citizen users 
  • For students

In reality, AIDA is primarily aimed at computer scientists, but this is of course a first step, as the evolution of this type of Man-Machine interface is intended to facilitate access to the greatest number of people.  

This is why AIDA is also fully involved in the “citizen developers” movement which is emerging but which has yet to prove itself.  

OWD (Object Word Detection)

A solution to detect words and objects in a video thanks to AI and Machine Learning (NLP, Speech Analytics…).   

In a few words, the OWD solution lists all the moments (in sequence / second) where words are quoted and allows to indicate when a specific object appears in a video (car, lamp…) or all the sequences where the object in question appears. 

What are the use cases of OWD? 

  • For companies wishing to offer their clients advertisements related to objects and words appearing in the audio and visual of a video on their website. 
  • For a bacteriology laboratory that wants to be alerted when a specific object appears during the culture process, for example. 
  • For MOOC or e-learning platforms, if a student wants to access a specific sequence by entering the object name or the specific word. 
  • For e-commerce sites, to enable them to offer the customer a product that is related to the video and therefore also the advertisements. 
  • For import / export companies in the control of received goods (video controls for approval or refusal) 

This list is not exhaustive. 

Technical principles around the architecture :

Around the environment :

  • Web application (Python development language / Flask framework)
  • Object detection (AI – DL, Dataset: coco, API: OpenCV)
  • Word detection (API: speech recognition)

Our current research topics

IoT (Internet Of Things)

Conceptually, the IoT refers to connected objects capable of interacting. In a way, it is about creating bridges between the virtual connected world and the real world.

Technically, it can be considered as a technological invention allowing to identify, via SMTP, HTTP, IP address protocols, etc., a physical object by means of a non-wireless communication system such as RFID, Wi-Fi or Bluetooth.

The IoT encompasses the entire ecosystem of connected objects, even on a large scale: televisions, buildings, cars, agricultural plots, etc. Thanks to sensors integrated in these objects, we are able to manage their operation remotely with just one click and extract the data we want to process. It is the most powerful tool to generate, manipulate and share data.

In 2021, about 50 billion more connected objects will enter the market, according to the Gartner Institute.

Augmented Reality

The first experiments in terms of augmented reality date back to the 1960s and then the 1980s. But this technology has only been heard of for a few years, thanks to the rise of smartphones that now have enough sensors and intelligence, as well as the associated software functions.

In short, augmented reality is a technology that allows to superimpose virtual content on the real world that the user continues to perceive.

Augmented reality and virtual reality are often, but wrongly, confused, although they are two very different concepts: on the one hand, augmented reality allows to complement the real world (by proposing different uses) while virtual reality proposes a total immersion in an unreal world.