Fermer

février 13, 2024

Explorer Databricks Dolly 2.0/Perficient

Explorer Databricks Dolly 2.0/Perficient


Qu’est-ce que Databricks ?

Databricks est une plate-forme de traitement et d’entreposage de données basée sur le cloud qui a acquis une immense popularité ces dernières années. Il a été développé par les créateurs d’Apache Spark, un framework open source de traitement du Big Data. Databricks fournit une plate-forme d’analyse unifiée qui permet aux entreprises de traiter et d’analyser de grands volumes de données de manière efficace et efficiente. Grâce à ses puissantes capacités informatiques distribuées, Databricks permet aux organisations de tirer des informations précieuses de leurs données et de prendre des décisions fondées sur les données.

Databricks offre une gamme de fonctionnalités et d’outils qui en font un choix privilégié pour les data scientists, les analystes et les développeurs. Son espace de travail collaboratif permet aux équipes de travailler ensemble de manière transparente, permettant une analyse et une modélisation des données plus rapides et plus efficaces. La plate-forme fournit également une prise en charge intégrée de divers langages de programmation, notamment Python, Scala et R, la rendant accessible à un large éventail d’utilisateurs possédant des compétences différentes.

En tirant parti de la puissance de Databricks, les entreprises peuvent accélérer leurs processus d’analyse de données et acquérir un avantage concurrentiel. Cependant, pour exploiter pleinement le potentiel de Databricks, les organisations ont besoin d’une plateforme d’analyse de données complète qui puisse s’y intégrer de manière transparente. C’est là que Dolly entre en jeu.

Maintenant que vous avez une assez bonne idée de ce que fait Databricks, il est maintenant temps de parler de… Databricks Dolly 2.0 !!!

Qu’est-ce que Dolly ?

Dolly est un grand modèle linguistique (LLM) open source qui génère du texte et suit les instructions en langage naturel. Dolly est relativement nouveau sur le marché et son plein potentiel n’est donc pas encore découvert. Il est encore en phase expérimentale. Mais à mesure qu’elle fait l’objet d’études approfondies, elle s’avère très puissante.

Dolly est disponible en trois tailles de modèle :

  • Dolly-v2-12b
    • Un paramètre de 12 milliards basé sur pythia-12b.
    • Formé sur 15 000 instructions/réponses.
    • Pas futuriste mais montre un comportement de suivi d’instructions de haute qualité, ce qui n’est pas le cas du modèle sur lequel il est basé.
  • Dolly-v2-7b
    • Un paramètre de 6,9 ​​milliards basé sur pythia-6.9b.
    • Formé sur 15 000 instructions/réponses.
    • Pas futuriste mais montre un comportement de suivi d’instructions de haute qualité, ce qui n’est pas le cas du modèle sur lequel il est basé.
  • Dolly-v2-3b
    • Un paramètre de 2,8 milliards basé sur pythia-2.8b.
    • Formé sur 15 000 instructions/réponses.
    • Pas futuriste mais montre un comportement de suivi d’instructions de haute qualité, ce qui n’est pas le cas du modèle sur lequel il est basé.

Les avantages de l’utilisation de Dolly sur Databricks

Dolly est une plateforme d’analyse de données de pointe qui offre des capacités d’analyse avancées, notamment des algorithmes d’apprentissage automatique, des outils de visualisation de données et le traitement du langage naturel. Lorsqu’il est combiné avec Databricks, Dolly ouvre un tout nouveau niveau de potentiel d’analyse de données. Voici quelques-uns des principaux avantages de l’utilisation de Dolly sur Databricks :

  1. Intégration transparente: Dolly s’intègre parfaitement à Databricks, permettant aux entreprises de tirer parti de toute la puissance des deux plates-formes. Cette intégration permet aux organisations de traiter et d’analyser efficacement des ensembles de données volumineux, sans aucun problème de transfert de données ou de compatibilité.
  2. Capacités d’analyse avancées: Dolly offre une large gamme de fonctionnalités d’analyse avancées, notamment des algorithmes d’apprentissage automatique, des outils de visualisation de données et le traitement du langage naturel. Avec Dolly sur Databricks, les entreprises peuvent tirer parti de ces fonctionnalités pour obtenir des informations précieuses sur leurs données et prendre des décisions fondées sur les données.
  3. Informations en temps réel: Dolly sur Databricks permet aux entreprises de tirer des informations en temps réel de leurs données. En combinant les capacités d’analyse avancées de Dolly avec l’environnement cloud évolutif et sécurisé de Databricks, les organisations peuvent analyser les données en streaming et prendre des décisions en temps réel basées sur les informations les plus récentes.
  4. Interface conviviale: Dolly fournit une interface conviviale et intuitive adaptée aux besoins des data scientists, des analystes et des dirigeants d’entreprise. Grâce à son interface facile à utiliser, Dolly on Databricks permet aux utilisateurs d’explorer et d’analyser facilement les données, sans avoir besoin d’un codage approfondi ou d’une expertise technique approfondie.

En résumé, l’utilisation de Dolly sur Databricks offre aux entreprises une puissante combinaison de capacités d’analyse avancées et d’une infrastructure cloud évolutive. Cette intégration permet aux organisations de libérer tout le potentiel de leurs données et de prendre des décisions basées sur les données comme jamais auparavant.

Premiers pas avec Dolly sur Databricks

Démarrer avec Dolly sur Databricks est un processus simple. Voici les étapes à suivre :

  1. Configurer des Databricks: Tout d’abord, vous devez configurer un Briques de données compte. Visitez le site Web Databricks et créez un compte. Une fois votre compte configuré, vous pouvez commencer à explorer les fonctionnalités et capacités de la plateforme.
  2. Installer Dolly: Ensuite, vous devez installer Chariot sur votre espace de travail Databricks. Dolly fournit une documentation détaillée et des didacticiels sur la façon d’installer et de configurer la plateforme sur Databricks. Suivez les instructions fournies pour configurer Dolly sur votre environnement Databricks.
  3. Connectez vos données: Une fois Dolly installé, vous devez connecter vos sources de données à Databricks. Databricks prend en charge divers connecteurs de données, vous permettant d’importer et d’analyser facilement des données provenant de différentes sources. Connectez vos sources de données à Databricks pour commencer à analyser vos données avec Dolly.
  4. Explorez les fonctionnalités de Dolly: Avec Dolly sur Databricks, vous avez accès à un large éventail de fonctionnalités d’analyse avancées. Prenez le temps d’explorer les fonctionnalités et les outils de Dolly, tels que les algorithmes d’apprentissage automatique, la visualisation de données et le traitement du langage naturel. Familiarisez-vous avec la plateforme et ses capacités pour tirer le meilleur parti de Dolly sur Databricks.

En suivant ces étapes, vous pouvez démarrer avec Dolly sur Databricks et commencer à libérer tout le potentiel de vos données.

Commençons par le code

Cas d’utilisation : Exploitation du modèle Databricks Dolly 2.0 pour la génération de cas de test

Scénario:

Envisagez une plate-forme de commerce électronique à grande échelle qui s’appuie fortement sur l’analyse des données pour optimiser l’expérience utilisateur, personnaliser les recommandations et gérer les stocks. La plateforme déploie régulièrement des mises à jour et de nouvelles fonctionnalités, nécessitant des tests rigoureux pour garantir l’intégrité et les performances de ses pipelines de données.

Défis:

  • La création manuelle de scénarios de test prend du temps et est sujette aux erreurs humaines.
  • La complexité des pipelines de données rend difficile l’identification de tous les scénarios de test possibles.
  • La couverture des tests doit être complète pour valider la fonctionnalité et les performances du système.

Solution:

L’organisation adopte Databricks Dolly 2.0 pour automatiser la génération de scénarios de test pour ses pipelines de données. Dolly 2.0 utilise des techniques avancées de traitement du langage naturel (NLP) et d’apprentissage automatique pour analyser les transformations de données, identifier les cas extrêmes et générer des scénarios de test complets.

Remarque : dans ce blog, nous travaillerons uniquement avec le modèle Dolly-v2-12b. Et le cas d’utilisation sur lequel nous nous concentrerons est « la génération de cas de test à l’aide de Dolly ».

Mise en œuvre:

Pour utiliser le modèle avec la bibliothèque de transformateurs sur une machine équipée de GPU, nous devons nous assurer que les transformateurs et les bibliothèques d’accélération sont installés. Nous pouvons le faire en :

%pip install "accelerate>=0.16.0,<1" "transformers[torch]>=4.28.1,<5" "torch>=1.13.1,<2"

L’instruction qui suit le pipeline peut être chargée à l’aide de la fonction pipeline comme démontré.

import torch
from transformers import pipeline
generate_text = pipeline(model="databricks/dolly-v2-12b", torch_dtype=torch.bfloat16, trust_remote_code=True, device_map="auto")

Une approche alternative pour ce faire est la suivante :

import torch
from instruct_pipeline import InstructionTextGenerationPipeline
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("databricks/dolly-v2-12b", padding_side="left")
model = AutoModelForCausalLM.from_pretrained("databricks/dolly-v2-12b", device_map="auto", torch_dtype=torch.bfloat16)
generate_text = InstructionTextGenerationPipeline(model=model, tokenizer=tokenizer)

Et maintenant, nous pouvons utiliser le pipeline pour envoyer des invites.

res = generate_text("Which is the smallest country in the world?")
print(res[0]["generated_text"])

SS1

Maintenant, pour générer des cas de test…

df = spark.read.format('csv').option("inferSchema",True).option("header",True).load('dbfs:/FileStore/scratch/insurance.csv')
prompt = f"analyze the data from {df} and write some valid unit testing testcases with test case number and short explanation" 
res = generate_text(prompt) 
print(res[0]["generated_text"])

SS2

Un autre exemple remarquable serait :

# Set the database and schema 
database_name = "hive_metastore" 
schema_name = "cleanedzone" 
# Connect to the database 
spark.sql(f"USE {database_name}") 
# Get a list of all tables in the specified schema 
table_list = spark.sql(f"SHOW TABLES IN {schema_name}").select("tableName").rdd.flatMap(lambda x: x).collect() 
# Read each table and display the content for table in table_list: 
full_table_name = f"{schema_name}.{table}" 
table_df = spark.read.table(full_table_name) 
print(full_table_name) 
# perform operations on the table_df or display the schema/content 
# schema = table_df.printSchema()
schema_1 = table_df.schema
schema_2 = table_df.printSchema
prompt = f"analyze the schema {schema_1} and write some valid unit testing testcases with test case number and field name and short explaination" 
res = generate_text_2(prompt) print(res[0]["generated_text"])
SS3

sortie de code des databricks

Remarque : Une chose à garder à l’esprit est que ce modèle fonctionne parfaitement pour analyser les trames de données et contourner les schémas, mais donne des résultats aléatoires lorsqu’on lui demande de travailler avec les données dans les trames de données ou les tables.

Maintenant, construisons quelque chose d’intéressant !

Nous rendrons ce processus de questions-réponses conversationnel. Comment ?… Voyons.

Pour cela, nous utiliserons le pipeline avec LangChain.

from langchain import PromptTemplate, LLMChain 
from langchain.llms import HuggingFacePipeline 
from langchain.memory import ChatMessageHistory 
history = ChatMessageHistory() 
prompt = PromptTemplate( input_variables=["instruction"], template="{instruction}") 
prompt_with_context = PromptTemplate( input_variables=["instruction", "context"], template="{instruction}\n\nInput:\n{context}") 
hf_pipeline = HuggingFacePipeline(pipeline=generate_text) 
llm_chain = LLMChain(llm=hf_pipeline, prompt=prompt) 
llm_context_chain = LLMChain(llm=hf_pipeline, prompt=prompt_with_context)

LangChain nous aide à envoyer du contexte au modèle à côté de l’invite. Nous créons donc une variable globale et y ajoutons la réponse générée dès qu’elle est produite. Cette variable globale est ensuite transmise comme contexte à LangChain. Le modèle mémorise donc les réponses précédentes.

def func1(prompt): 
global res 
response=llm_context_chain.predict(instruction=prompt, context=res).lstrip() 
res=res+response 
print(response)

Nous pouvons désormais envoyer plusieurs invites concernant le même contexte.

prompt="Which is the smallest country in the world?" 
print(func1(prompt))

SS4

prompt="Which language is spoken in this country?" 
print(func1(prompt))  

SS5

prompt="What is the population of this country?" 
print(func1(prompt))

SS6

Conclusion

Dolly sur Databricks offre une intégration puissante de capacités d’analyse avancées et une infrastructure cloud évolutive. En combinant les capacités de Dolly avec la robustesse de Databricks, les entreprises peuvent libérer tout le potentiel de leurs données et prendre des décisions basées sur les données comme jamais auparavant.

Dans cet article, nous avons exploré les avantages de l’utilisation de Dolly sur Databricks, ses cas d’utilisation dans divers secteurs et les meilleures pratiques pour optimiser votre flux de travail d’analyse de données. En tirant également parti de Databricks Dolly 2.0 pour la génération de scénarios de test, l’organisation atteint une plus grande efficacité, précision et évolutivité dans ses efforts de test, améliorant ainsi la fiabilité et les performances de ses applications basées sur les données.


Bon codage !!






Source link