DeepSeek Coder V2, le nouveau modèle de référence pour le code

DeepSeek Coder V2, le nouveau modèle de référence pour le code DeepSeek Code V2, un modèle open source de code publié le 17 juin, détrône GPT-4 d'OpenAI dans les benchmarks.

La Chine commence à rattraper son retard dans la course à l'IA. Après que plusieurs laboratoires chinois aient présenté des LLM,  et des modèles multimodaux de référence, c'est au tour des modèles de code d'être disruptés. Dernier exemple en date avec le lancement le 17 juin dernier de la seconde version de DeepSeek-Coder, le LLM optimisé pour le code du chinois DeepSeek. DeepSeek Coder V2 parvient à surpasser GPT-4 Turbo d'OpenAI sur les tâches de génération de code, une première dans le monde de l'IA open source.

DeepSeek Coder V2 va jusqu'à battre GPT-4o

Plus précisément, DeepSeek-Coder-V2 surpasse de manière significative les modèles fermés comme GPT-4 Turbo, Claude 3 Opus et Gemini 1.5 Pro dans les benchmarks de code et de mathématiques. DeepSeek-Coder-V2 se distingue sur les benchmarks de génération de code comme HumanEval (problème de programmation), MBPP+ (problème de génération en python) et LiveCodeBench (problème de code diversifiés). Cela témoigne, dans la pratique, de ses capacités avancées en matière de raisonnement mathématique et de compréhension du code.

De plus, sur les benchmarks de complétion de code comme RepoBench (essentiellement basé sur Python et Java), DeepSeek-Coder-V2-Lite-Base obtient des résultats très compétitifs, démontrant son habileté à saisir le contexte et à proposer des suggestions pertinentes. Enfin, en ce qui concerne les benchmarks de correction de code comme Defects4J (résolution de bugs), ou SWE-Bench (problèmes collectés depuis GitHub) DeepSeek-Coder-V2-Instruct surpasse (encore) largement ses concurrents. Sur Aides (édition de code), DeepSeek Coder V2 surpasse même le petit dernier d'OpenAI : GPT-4o.

Une image contenant texte, capture d’écran, diagramme, TracéDescription générée automatiquement

Dans les benchmarks, DeepSeek-Coder-V2 se révèle au final comme le LLM de référence en juin 2024 pour la génération de code, la complétion automatique et même pour l'édition de code et la résolution de bugs.

Une architecture MoE, puissante et efficiente

Pour former DeepSeek Coder V2, les chercheurs de DeepSeek se sont basés sur une version intermédiaire des poids de DeepSeek V2 en l'entraînant sur de nouvelles données. Le dataset inclut notamment 60 % de code source, 10 % de contenus mathématiques et 30 % de corpus en langage naturel. Le code source (environ 1170 milliards de tokens) provient en majorité de GitHub et CommonCrawl. Théoriquement, plus de 338 langages de programmation sont représentés (Python, Java, C, C++, C#, JavaScript, PHP, Ruby, Go, Swift, R, Scala, Rust …) contre 86 pour la première version du modèle.

DeepSeek Coder V2 se repose, assez logiquement, sur la même architecture que DeepSeek V2 : le MoE. C'est maintenant une architecture qui commence à rentrer dans les codes grâce à son principal avantage : son très bon ratio performance / efficacité. DeepSeek Coder V2 est ainsi disponible en deux versions. Lite avec 16 milliards de paramètres totaux et 2,4 milliards de paramètres actifs à l'inférence. Et la version classique, la plus performante, avec 236 milliards de paramètres totaux et 21 milliards de paramètres actifs à l'inférence. Le modèle peut gérer jusqu'à 128 000 tokens, une fenêtre de contexte assez grande pour traiter de longs fichiers de code.

Un code efficace et bien commenté

Petit test : nous demandons à GPT-4o et DeepSeek Coder V2 de générer un programme en Python qui prend en entrée une liste de nombres entiers et renvoie la somme de tous les nombres pairs dans la liste.

GPT-4o :

def sum_of_even_numbers(int_list):

    # Initialize sum to 0

    even_sum = 0

   

    # Iterate over each number in the list

    for num in int_list:

        # Check if the number is even

        if num % 2 == 0:

            # Add the even number to the sum

            even_sum += num

   

    return even_sum


# Example usage

if __name__ == "__main__":

    # Example list of integers

    numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

    # Call the function and print the result

    print("Sum of even numbers:", sum_of_even_numbers(numbers))

DeepSeek Coder V2 :

def sum_even_numbers(numbers):

    """

    This function takes a list of integers and returns the sum of all even numbers in the list.

   

    :param numbers: List of integers

    :return: Sum of even numbers

    """

    return sum(num for num in numbers if num % 2 == 0)


# Example usage:

if __name__ == "__main__":

    user_input = input("Enter a list of integers separated by spaces: ")

    numbers = list(map(int, user_input.split()))

    result = sum_even_numbers(numbers)

    print("The sum of even numbers is:", result)

GPT-4o propose un code est bien structuré mais qui pourrait être amélioré pour plus de concision. Le code de DeepSeek Coder V2 est quasi-parfait et les commentaires sont particulièrement bien rédigés. C'est également le plus efficace, grâce à l'utilisation de la fonction "sum()". L'avantage est donc à DeepSeek Coder V2 ici.

Comment utiliser DeepSeek Coder V2 ?

En attendant son déploiement plus large au sein des principaux cloud provider, DeepSeek Coder peut être téléchargé gratuitement depuis Hugging Face. Quatre versions sont proposées. La version classique à 236 milliards de paramètres en base (non fine-tuné) et en instruct (fine-tuné pour l'interaction en langage naturel). La version Lite propose quant-à-elle une version base et instruct à 16 milliards de paramètres. L'inférence du modèle lite ou classique exigera une configuration hardware encore importante. Seuls les modèles plus avancés de GPU Nvidia RTX pourraient convenir.

Pour les développeurs curieux d'utiliser le modèle, il existe une version accessible en ligne sur le site de DeepSeek sous la forme d'un agent conversationnel. Prudence, le laboratoire chinois explique dans ses conditions d'utilisation collecter les données des utilisateurs et notamment les prompts adressés à l'IA. DeepSeek propose toutefois une alternative : un accès API à prix réduit. DeepSeek Coder V2 est accessible à 0,14 dollar le million de tokens en input et 0,28 dollar en sortie. L'API semble, pour l'heure, hébergée par Huawei Cloud à Singapour.

Le prix au million de tokens des modèles pour le code. © DeepSeek

DeepSeek Coder V2 est donc un excellent modèle open source pour le code. Que ce soit pour la génération, l'édition (revue de code) ou même la complétion automatique. Le modèle est même parvenu à impressionner des fondateurs de start-up américaines qui développent aussi des IA pour la génération de code, comme le rapportent nos confrères de The Information. Un insider à suivre de près.