Aprenda como conectar o MindsDB aos modelos Hugging Face para executar a tradução de texto de dados de spam multilíngue
Introdução
A internet revolucionou completamente a forma como as informações são compartilhadas em todo o mundo. Atualmente, as ferramentas de tradução de linguas de IA usam o processamento de linguagem natural (NLP) para traduzir texto escrito ou palavras faladas de um idioma de origem para um idioma de destino diferente. Neste tutorial, você aprenderá como usar MindsDB e Hugging Face para executar tarefas de tradução em um conjunto de dados multilíngue.
Configuração de dados
Se você quiser acompanhar, baixe este conjunto de dados. Certifique-se de ter uma Conta de Nuvem MindsDB funcionando ou uma instalação local do MindsDB em execução para que você possa acompanhar este tutorial:
- Vídeo: Configurando o Docker para MindsDB
- Documentos: Configuração do Docker
Compreendendo os dados
O conjunto de dados com o qual você está trabalhando contém dados de spam multilíngues para inglês, hindi, alemão e francês. Ele é usado principalmente para testar a transferência zero-shot para classificação de texto usando modelos de linguagem pré-treinados. Os dados originais estavam em inglês e foram traduzidos automaticamente para hindi, alemão e francês. Hoje, você usará este conjunto de dados para aprender a usar o MindsDB para executar tarefas de tradução de texto.
Você não precisa se preocupar com a coluna de rótulos (“ham”/”spam”) para este tutorial, pois iremos realizar tarefas de tradução neste conjunto de dados.
Adicionando dados no MindsDB Cloud
As instruções para importar dados usando o Cloud Editor do MindsDB são as seguintes: \
1.Visite MindsDB Cloud Editor 2.Clique em 'Login' ou 'Criar conta' e autentique 3.Depois de logado, clique Adicionar dados 4.Selecione "Arquivos" 5.Clique em "Importar arquivo" 6.Escolha o arquivo para importar 7.Nomeie seu conjunto de dados de acordo (sem caracteres especiais ou maiúsculas no nome do banco de dados) 8.Use a instrução SQL SELECT
para visualizar o conjunto de dados:
entrada:
SELECT * FROM files.your_file
LIMIT 3;
saída:
------------+-------------+-----------------------------------------------------------------+--------------------------------+
| labels | text_input | text_de | text_fr |
+------------+--- ---------+-----------------------------------------------------------------+--------------------------------+
| ham | 'Go until jurong, crazy..'| 'Gehen bis jurong'| 'Allez jusqu...' |
+------------+-------------+-----------------------------------------------------------------+--------------------------------+
| ham | 'Ok lar... Joking wif u...' | 'Ok... joking' | 'J'ai fait une blague sur le wif'|
+------------+-------------+-----------------------------------------------------------------+--------------------------------+
| spam | 'Free entry in 2 a wkly...' | 'Freier Eintrit' | 'Entrée libre dans 2 a wkly comp...'|
+------------+-------------+-----------------------------------------------------------------+--------------------------------+
Adicionando dados ao PostgreSQL localmente
Comece indo para Kaggle e baixando este conjunto de dados.
Em seguida, vá adiante e execute o PostgreSQL em sua linha de comando:
- Inicie o modo superusuário:
psql postgres
- Crie um usuário e um banco de dados com o usuário como proprietário:
entrada:
CREATE USER username123 WITH PASSWORD 'password123';
saída:
CREATE ROLE
entrada:
CREATE DATABASE nlp_mindsdb WITH OWNER 'username123';
saída: CREATE DATABASE
- Em seguida, digite
\l
para listar seus bancos de dados PostgreSQL e garantir que o novo banco foi criado.
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-------------+-----------------+----------+---------+-------+-------------------
nlp_mindsdb | username123 | UTF8 | C | C |
postgres | user | UTF8 | C | C |
(4 rows)
Saia do modo superusuário:
\q
Acesse o banco de dados como usuário:
psql -U username123 nlp_mindsdb
Agora, crie uma tabela para armazenar seu primeiro conjunto de dados multilíngue:
entrada:
CREATE TABLE nlp_data (text TEXT, text_hi TEXT,
text_de TEXT, text_fr TEXT);
saída: CRIAR A TABELA
Ótimo. Agora você tem sua tabela vazia em seu banco de dados.
- Hora de importar seus dados:
\copy mindsdb_1(labels, text, text_hi, text_de, text_fr)
FROM '/Users/alissa/Downloads/nlp_dataset.csv' WITH DELIMITER ',' CSV;
saída: COPY 5573
Agora certifique-se de que seus dados foram carregados corretamente:
SELECT COUNT(*) FROM mindsdb_1;
11146
Legal, você tem 11146 linhas/registros em seu novo banco de dados e está no caminho certo!
Conectando os dados
Agora você sabe como construir e copiar dados para uma tabela com PostgreSQL em sua linha de comando. É hora de se conectar com o MindsDB:
- A primeira coisa que você deve fazer é expor sua porta PostgreSQL:
ngrok tcp 5432
Agora, navegue até
http://127.0.0.1:47334
e clique em "Adicionar dados".Em seguida, selecione a fonte de dados, PostgreSQLName.
Depois de selecionar a fonte de dados, você será solicitado a inserir suas credenciais de banco de dados. Preencha-a usando o host e a porta fornecidos por
ngrok
:
- Em seguida, clique no botão Teste de Conexão
- Uma vez conectado, execute o comando
SHOW DATABASES;
para garantir que seus dados estejam lá:
- Visualize o conjunto de dados
entrada:
SELECT *
FROM mindsdb.nlp_data
LIMIT 3;
saída:
------------+-------------+-----------------------------------------------------------------+--------------------------------+
| labels | text_input | text_de | text_fr |
+------------+--- ---------+-----------------------------------------------------------------+--------------------------------+
| ham | 'Go until jurong, crazy..'| 'Gehen bis jurong'| 'Allez jusqu...' |
+------------+-------------+-----------------------------------------------------------------+--------------------------------+
| ham | 'Ok lar... Joking wif u...' | 'Ok... joking' | 'J'ai fait une blague sur le wif'|
+------------+-------------+-----------------------------------------------------------------+--------------------------------+
| spam | 'Free entry in 2 a wkly...' | 'Freier Eintrit' | 'Entrée libre dans 2 a wkly comp...'|
+------------+-------------+-----------------------------------------------------------------+--------------------------------+
- Outra maneira de conectar seu banco de dados local PostgreSQL ao MindsDB é usando a declaração,
CREATE DATABASE
com seus detalhes de conexão:
CREATE DATABASE multilingual
WITH ENGINE = "postgres",
PARAMETERS = {
"user": "username123",
"password": "password123",
"host": "6.tcp.ngrok.io",
"port": "11462",
"database": "nlp_mindsdb"
};
Criando preditores multilíngues
Agora que você tem alguns dados para trabalhar, é hora de usar o MindsDB e o Hugging Face para realizar operações de NLP.
Atualmente, o MindsDB oferece suporte à tradução de vários idiomas e está expandindo a capacidade do software de realizar operações de tradução em lote para conjuntos de dados multilíngues.
Nesta próxima seção, você traduzirá 3 idiomas diferentes e aprenderá o básico das tarefas de tradução de linguagem NLP com o MindsDB.
Criando e treinando um preditor para traduzir de francês para inglês
- Começar criando um modelo para traduzir francês para inglês:
CREATE MODEL mindsdb.hf_fr_en
PREDICT PRED
USING
engine = 'huggingface',
model_name = 'Helsinki-NLP/opus-mt-fr-en',
input_column = 'text',
lang_input ='fr',
lang_output = 'en';
- Verifique o status do novo preditor:
SELECT *
FROM mindsdb.models
WHERE name = 'hf_fr_en';
| NAME | ENGINE | PROJECT | VERSION | STATUS | ACCURACY | PREDICT | UPDATE_STATUS | MINDSDB_VERSION | ERROR | SELECT_DATA_QUERY | TRAINING_OPTIONS | CURRENT_TRAINING_PHASE | TOTAL_TRAINING_PHASES | TRAINING_PHASE_NAME | TAG | CREATED_AT |
| ---- | ------ | ------- | ------- | ------ | -------- | ------- | ------------- | --------------- | ----- | ----------------- | ---------------- | ---------------------- | --------------------- | ------------------- | --- | ---------- |
| hf_fr_en | huggingface | mindsdb | 1 | complete | [NULL] | PRED | up_to_date | 23.3.5.0 | [NULL] | [NULL] | {'target': 'PRED', 'using': {'model_name': 'Helsinki-NLP/opus-mt-fr-en', 'input_column': 'text', 'lang_input': 'fr', 'lang_output': 'en', 'task': 'translation'}} | [NULL] | [NULL] | [NULL] | [NULL] | 2023-03-30 16:31:29.096920 |
- Assim que seu status for "concluído", é hora de começar a testar seu modelo com consultas de idioma:
SELECT *
FROM mindsdb.hf_fr_en
WHERE text = 'Quelle heure est-il?';
| PRED | text |
| ---- | ---- |
| What time is it? | Quelle heure est-il? |
SELECT *
FROM mindsdb.hf_fr_en
WHERE text = "Je m'appelle Alissa";
| PRED | text |
| ---- | ---- |
| My name is Alissa. | Je m'appelle Alissa |
Criando e treinando um previsor para traduzir de alemão para inglês
- Crie um modelo preditor, usando o modelo Helsinki-NLP/opus-mt-de-en Hugging Face:
CREATE MODEL mindsdb.hf_de_en
PREDICT PRED
USING
engine = 'huggingface',
model_name = 'Helsinki-NLP/opus-mt-de-en',
input_column = 'text',
lang_input ='de',
lang_output = 'en';
- Verifique o status:
SELECT *
FROM mindsdb.models
WHERE name = 'hf_de_en';
| NAME | ENGINE | PROJECT | VERSION | STATUS | ACCURACY | PREDICT | UPDATE_STATUS | MINDSDB_VERSION | ERROR | SELECT_DATA_QUERY | TRAINING_OPTIONS | CURRENT_TRAINING_PHASE | TOTAL_TRAINING_PHASES | TRAINING_PHASE_NAME | TAG | CREATED_AT |
| ---- | ------ | ------- | ------- | ------ | -------- | ------- | ------------- | --------------- | ----- | ----------------- | ---------------- | ---------------------- | --------------------- | ------------------- | --- | ---------- |
| hf_de_en | huggingface | mindsdb | 1 | complete | [NULL] | PRED | up_to_date | 23.3.5.0 | [NULL] | [NULL] | {'target': 'PRED', 'using': {'model_name': 'Helsinki-NLP/opus-mt-de-en', 'input_column': 'text', 'lang_input': 'de', 'lang_output': 'en', 'task': 'translation'}} | [NULL] | [NULL] | [NULL] | [NULL] | 2023-03-30 14:31:00.220057 |
- Consulte o modelo!
SELECT *
FROM hf_de_en
WHERE text = 'Hallo, mein Name ist Alissa';
| PRED | text |
| ---- | ---- |
| Hello, my name is Alissa | Hallo, mein Name ist Alissa |
SELECT *
FROM hf_de_en
WHERE text = 'Guten Tag, es ist so schön, Sie zu sehen?';
| PRED | text |
| ---- | ---- |
| Hello, it's so nice to see you | Guten Tag, es ist so schön, Sie zu sehen |
Criando e treinando um previsor para traduzir hindi (urdu) para inglês
- Crie seu modelo preditor, usando o [Helsinki-NLP/opus-mt-hi-en] (https://huggingface.co/Helsinki-NLP/opus-mt-hi-en) Modelo Hugging Face:
CREATE MODEL mindsdb.hi_en
PREDICT PRED
USING
engine = 'huggingface',
model_name = 'Helsinki-NLP/opus-mt-hi-en',
input_column = 'text_hi',
lang_input ='hi',
lang_output = 'en';
- Verifique o estado do seu modelo:
SELECT *
FROM mindsdb.models
WHERE name = 'hi_en';
| hi_en | huggingface | mindsdb | 1 | complete | [NULL] | PRED | up_to_date | 23.3.5.0 | [NULL] | [NULL] | {'target': 'PRED', 'using': {'model_name': 'Helsinki-NLP/opus-mt-hi-en', 'input_column': 'text_hi', 'lang_input': 'hi', 'lang_output': 'en', 'task': 'translation'}} | [NULL] | [NULL] | [NULL] | [NULL] | 2023-03-30 13:58:04.036313 |
- Consulte o modelo para testar seus recursos de tradução:
SELECT *
FROM hi_en
WHERE text_hi = 'namaste, aap kaise hain?';
| PRED | text_hi |
| ---- | ------- |
| Let me tell you what, do you think? | namaste, aap kaise hain? |
Ótimo. Você deve sempre testar seus modelos o mais minuciosamente possível. Vá em frente e veja como este modelo responde quando você insere símbolos (ou Urdu):
SELECT *
FROM hi_en
WHERE text_hi = 'मेरा भाई भी मेरे साथ बातें करना नहीं चाहता; वे मेरे साथ सहायक की नाई बर्ताव करते हैं।';
Conclusão
Como pode ser visto neste tutorial, a integração do MindsDB com o Hugging Face dá a você o poder de executar tarefas de Processamento de Linguagem Natural de forma rápida e fácil usando a linguagem de banco de dados SQL. Em apenas algumas etapas, você já aprendeu como conectar MindsDB com modelos de transformador Hugging Face e usá-los para traduzir dados multilíngues para o inglês.
Como você provavelmente já sabe, existem muitos cenários no mundo real em que esse novo conhecimento será útil. Agora que você já colocou a mão na massa, quais são as outras maneiras de usar o MindsDB para NLP?
Confira estes recursos para saber mais sobre o MindsDB e como se conectar com a comunidade:
- Faça o Bookmark do Repositório MindsDB no GitHub )- Inscreva-se gratuitamente Conta do MindsDB - Interaja com a comunidade MindsDB em slack ou GitHub para fazer perguntas e compartilhe suas ideias e pensamentos.
Se este tutorial foi útil, por favor, nos dê uma estrela no GitHub.
Este artigo foi escrito por Alissa T. e traduzido por Diogo Jorge. O artigo original pode ser encontrado aqui.
Top comments (0)