La famille Coder a ajouté un nouveau membre, et elle est open source !
Quels grands outils de modélisation connaissez-vous sur l'édition de code ?
L'utilisateur de Twitter @lvwerra a créé l'image ci-dessous pour trier la plupart des membres de la famille de codes.
Deux semaines seulement après avoir publié cette photo, trois nouveaux membres ont rejoint la famille, ce sont DeciCoder, OctoCoder et le dernier membre SQLCoder.
Parmi eux, le dernier membre SQLCoder a non seulement d'excellentes performances, mais a également été open source !
SQLCoder
En tant que modèle de langage SOTA à grande échelle, SQLCoder convertit les questions en langage naturel en requêtes SQL. Dans SQL, le framework d'évaluation open source du développeur, SQLCoder surpasse considérablement tous les principaux modèles open source et surpasse le GPT-3.5 d'OpenAI.
SQLCoder est un LLM de 15 B paramètres, ainsi qu'une implémentation affinée de StarCoder. SQLCoder est affiné sur des requêtes SQL artisanales de difficulté croissante. Lorsqu'elles sont affinées pour un seul schéma de base de données, ses performances sont comparables, voire meilleures, à celles de GPT-4.
*adresse du projet :
Adresse de démonstration :
Poids du modèle :
Au cours des trois derniers mois, SQLCoder a été déployé dans des entreprises médicales, financières et autres. Ces entreprises disposent souvent de données sensibles qu'elles ne veulent pas voir sur leurs propres serveurs. L'utilisation d'un modèle auto-hébergé est donc le seul moyen pour elles d'utiliser LLM.
méthode
créer un ensemble de données
Les auteurs ont créé un ensemble de données de paires éditées à la main, en se concentrant sur les tâches texte vers SQL. L'ensemble de données a été créé à partir de 10 modèles différents, avec des questions de difficulté variable. De plus, ils ont créé un ensemble de données d’évaluation de 175 questions issues de 7 nouveaux modèles.
Ils ont veillé à ce que des schémas complexes comportant 4 à 20 tables soient sélectionnés dans les ensembles de données de formation et d'évaluation, car les schémas comportant seulement 1 ou 2 tables avaient tendance à permettre des requêtes simples et directes en raison de relations limitées.
catégorie de questions
Une fois l’ensemble de données créé, l’auteur a classé chaque question de l’ensemble de données en quatre catégories : facile, moyenne, difficile et extrêmement difficile. Cette catégorisation se fait en adaptant les critères utilisés par le jeu de données Spider pour mesurer la difficulté SQL. Enfin, ils ont divisé l'ensemble de données en deux sous-sections distinctes, facile et modérée, et difficile et super difficile.
réglage fin
Les auteurs ont affiné le modèle au cours des deux étapes suivantes.
Premièrement, le modèle de base de StarCoder a été affiné uniquement sur des problèmes de difficulté facile et modérée.
Deuxièmement, le modèle obtenu (codé comme defog-easy) est affiné sur des problèmes difficiles et super difficiles pour obtenir SQLcoder.
Évaluer
Les auteurs ont évalué le modèle sur un ensemble de données personnalisé qu’ils ont eux-mêmes créé. Évaluer l'exactitude des requêtes SQL est très difficile, ils ont envisagé d'utiliser GPT-4 comme norme d'évaluation, mais ont rencontré de nombreux problèmes. En cours de route, ils ont également réalisé que deux requêtes SQL différentes pouvaient toutes deux être correctes.
Pour la question « qui sont les 10 derniers utilisateurs de Toronto », les deux formulaires de requête suivants sont corrects.
Compte tenu de cela, les auteurs ont construit un cadre personnalisé pour évaluer l’exactitude des requêtes. Ils ont non seulement mis en open source les poids du modèle, mais également le cadre d'évaluation et l'ensemble de données d'évaluation.
Le but de la publication de l'ensemble de données est d'enrichir les références disponibles et d'aider les chercheurs et les ingénieurs à mieux comprendre les performances des modèles génératifs texte-SQL, en particulier la réponse du modèle aux changements inoffensifs dans les résultats renvoyés tels que le renommage des colonnes, l'ajout de colonnes et la réorganisation.) robustesse.
Plus de détails sur l'évaluation peuvent être trouvés dans le contenu du blog :
performance
Dans le cadre d'évaluation, Defog SQLCoder surpasse tous les principaux modèles à l'exception de GPT-4. En particulier, il surpasse gpt-3.5-turbo et text-davinci-003, qui sont plus de 10 fois plus volumineux que les deux modèles.
Ces résultats concernent une base de données SQL générique et ne reflètent pas les performances de SQLCoder sur un seul schéma de base de données. Lors du réglage fin d'un seul schéma de base de données, SQLCoder fonctionne au moins autant que le GPT-4 d'OpenAI avec une latence inférieure (sur A100 80 Go).
*Divise chaque question générée en 5 catégories et montre le pourcentage de questions répondues correctement par chaque modèle par catégorie. *
Configuration matérielle requise pour SQLCoder
SQLCoder a été testé sur un GPU A100 40 Go avec des poids. Vous pouvez également charger des versions quantifiées 8 bits et 4 bits du modèle sur des GPU grand public avec 20 Go ou plus de mémoire, tels que les puces RTX 4090, RTX 3090 et M2 Pro, M2 Max ou M2 Ultra d'Apple avec 20 Go ou plus de mémoire.
Le prochain travail
Dans les semaines à venir, l'auteur apportera les mises à jour suivantes à SQLCoder :
Entraîner le modèle avec davantage de données collectées par l'homme et un plus large éventail de questions ;
Affiner davantage le modèle à l'aide de la modélisation des récompenses et du RLHF ;
Pré-former un modèle (SQL + Python) spécialisé dans l'analyse de données à partir de zéro.
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
La capacité unique du modèle 15B a dépassé GPT3.5 et le SQLCoder open source a été utilisé
Quels grands outils de modélisation connaissez-vous sur l'édition de code ?
L'utilisateur de Twitter @lvwerra a créé l'image ci-dessous pour trier la plupart des membres de la famille de codes.
SQLCoder
En tant que modèle de langage SOTA à grande échelle, SQLCoder convertit les questions en langage naturel en requêtes SQL. Dans SQL, le framework d'évaluation open source du développeur, SQLCoder surpasse considérablement tous les principaux modèles open source et surpasse le GPT-3.5 d'OpenAI.
SQLCoder est un LLM de 15 B paramètres, ainsi qu'une implémentation affinée de StarCoder. SQLCoder est affiné sur des requêtes SQL artisanales de difficulté croissante. Lorsqu'elles sont affinées pour un seul schéma de base de données, ses performances sont comparables, voire meilleures, à celles de GPT-4.
Au cours des trois derniers mois, SQLCoder a été déployé dans des entreprises médicales, financières et autres. Ces entreprises disposent souvent de données sensibles qu'elles ne veulent pas voir sur leurs propres serveurs. L'utilisation d'un modèle auto-hébergé est donc le seul moyen pour elles d'utiliser LLM.
méthode
créer un ensemble de données
Les auteurs ont créé un ensemble de données de paires éditées à la main, en se concentrant sur les tâches texte vers SQL. L'ensemble de données a été créé à partir de 10 modèles différents, avec des questions de difficulté variable. De plus, ils ont créé un ensemble de données d’évaluation de 175 questions issues de 7 nouveaux modèles.
Ils ont veillé à ce que des schémas complexes comportant 4 à 20 tables soient sélectionnés dans les ensembles de données de formation et d'évaluation, car les schémas comportant seulement 1 ou 2 tables avaient tendance à permettre des requêtes simples et directes en raison de relations limitées.
catégorie de questions
Une fois l’ensemble de données créé, l’auteur a classé chaque question de l’ensemble de données en quatre catégories : facile, moyenne, difficile et extrêmement difficile. Cette catégorisation se fait en adaptant les critères utilisés par le jeu de données Spider pour mesurer la difficulté SQL. Enfin, ils ont divisé l'ensemble de données en deux sous-sections distinctes, facile et modérée, et difficile et super difficile.
réglage fin
Les auteurs ont affiné le modèle au cours des deux étapes suivantes.
Premièrement, le modèle de base de StarCoder a été affiné uniquement sur des problèmes de difficulté facile et modérée.
Deuxièmement, le modèle obtenu (codé comme defog-easy) est affiné sur des problèmes difficiles et super difficiles pour obtenir SQLcoder.
Évaluer
Les auteurs ont évalué le modèle sur un ensemble de données personnalisé qu’ils ont eux-mêmes créé. Évaluer l'exactitude des requêtes SQL est très difficile, ils ont envisagé d'utiliser GPT-4 comme norme d'évaluation, mais ont rencontré de nombreux problèmes. En cours de route, ils ont également réalisé que deux requêtes SQL différentes pouvaient toutes deux être correctes.
Pour la question « qui sont les 10 derniers utilisateurs de Toronto », les deux formulaires de requête suivants sont corrects.
Le but de la publication de l'ensemble de données est d'enrichir les références disponibles et d'aider les chercheurs et les ingénieurs à mieux comprendre les performances des modèles génératifs texte-SQL, en particulier la réponse du modèle aux changements inoffensifs dans les résultats renvoyés tels que le renommage des colonnes, l'ajout de colonnes et la réorganisation.) robustesse.
performance
Dans le cadre d'évaluation, Defog SQLCoder surpasse tous les principaux modèles à l'exception de GPT-4. En particulier, il surpasse gpt-3.5-turbo et text-davinci-003, qui sont plus de 10 fois plus volumineux que les deux modèles.
Configuration matérielle requise pour SQLCoder
SQLCoder a été testé sur un GPU A100 40 Go avec des poids. Vous pouvez également charger des versions quantifiées 8 bits et 4 bits du modèle sur des GPU grand public avec 20 Go ou plus de mémoire, tels que les puces RTX 4090, RTX 3090 et M2 Pro, M2 Max ou M2 Ultra d'Apple avec 20 Go ou plus de mémoire.
Le prochain travail
Dans les semaines à venir, l'auteur apportera les mises à jour suivantes à SQLCoder :