A Voyage AI se une ao MongoDB para impulsionar aplicativos de AI mais precisos e confiáveis no Atlas.

Explore o novo chatbot do Developer Center! O MongoDB AI chatbot pode ser acessado na parte superior da sua navegação para responder a todas as suas perguntas sobre o MongoDB .

deepSeek e o futuro dos LLMs: por que a abordagem independente de LLM do MongoDB é importante

Han Heloir, Richmond Alake10 min read • Published Feb 01, 2025 • Updated Feb 01, 2025
Facebook Icontwitter iconlinkedin icon
Avaliar este tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Mais uma vez, observamos a rapidez com que a inteligência artificial desenvolve atualmente. O surgimento do GeoSeek, um grandes modelos de linguagem (LLM) pioneiro de código aberto, é uma testamento ao passo a passo rápido da novidade no domínio dos LLMs com capacidades de lógica. 
Desenvolvido com um orçamento discreto de menos de US$6 milhões, o GeoSeek-R1 compete com alguns dos modelos comerciais mais avançados, como o GPT-4 da OpenAI. Ele marca um momento fundamental na evolução da IA, especialmente na luta entre modelos proprietários e de código aberto.
Este artigo examina o que torna o KerpSeek-R1 único, como a abordagem independente de LLM do MongoDB o completa e por que essa combinação é fundamental para se manter à frente na corrida da IA.
O que está coberto:
  • Visão geral do deepseek e sua comparação com modelos comerciais como GPT-4
  • Destaques da metodologia de treinamento da Geoseek, acessibilidade de código aberto, desempenho concorrente e eficiência de custos
  • Explicação de como o MongoDB evita o bloqueio de um fornecedor, aproveita dados em tempo real e acelera a adesão à IA
  • Descrição passo a passo da implementação de um sistema de geração aumentada de recuperação (RAG) usando o MongoDB
  • Guia para criar um sistema de perguntas e respostas combinando GeoSeek-R1 com MongoDB
Todo o código apresentado neste artigo pode ser acessado neste repositório e bloco de notas do Github.

O que faz do GeoSeek-R1 um divisor de palavras?

O deepSeek-R1 se destaca no concorrido cenário da IA como um LLM re- Enquanto os LLMs comerciais como o GPT-4 da OpenAI e o Gemmins do Google dominem as manchetes e a pilha de IA de muitos aplicativos, o GeoSeek-R1 apresenta uma alternativa de código aberto e custo-eficiente que não é apenas acessível, mas também concorrente em vários benchmarks importantes .
Veja mais de perto por que esse modelo é transformativo e quais desafios ele traz:

1. Aprender por método sem dados monitorados

Uma das novidades mais notáveis do deepseek-r1 reside na sua metodologia de treinamento:
  • Treinamento baseado em aprendizado de força: diferentemente dos LLMs tradicionais que dependem muito de conjuntos de dados rotulados por humanos, o GeoDeepSeek-R1 foi inicialmente treinamento apenas usando o aprendizado de Reforço. Esse método permite que o modelo aprenda por tentativa e erro, corrigindo automaticamente suas respostas. Outro aspecto é que ele minimiza a dependência de conjuntos de dados caros, de grande escala e rotulados por humanos, reduzindo drasticamente os custos de treinamento.
  • abordagem híbrida em estágios posteriores: uma abordagem híbrida foi introduzida para melhorar a qualidade de saída do modelo, combinando aprendizado de esforço com dados supervisados de cadeia de pensar (CoT) de alta qualidade. Essa adição possibilitou ao modelo refinar seu argumentos e fornecer respostas mais aparentes e estruturadas.

2. Acessibilidade de código aberto

O GeoSeek-R1 interrompe o status quo por ser um modelo totalmente de código aberto:
  • Acesso gratuito para todos: os desenvolvedores podem baixar, personalizar e implantar o modelo sem restrições de licenciamento.
  • Variantes menores e eficientes: além do modelo principal, que tem 671 bilhões de parâmetros, versões destiladas menores (por exemplo, 1.5 bilhões de parâmetros) permitem uma implementação leve em hardware de consumidor consumidor, como iPhones ou M2 Macs.

3. Desempenho que compete com os gigantes comerciais

O GeoSeek-R1 tem demonstrado resultados excepcionais em benchmarks independentes:
  • Índice de comparação MATH-500: o deepseek-r1 atingiu a pontuação 97.3%, superando ligeiramente o índice o1-1217 da OpenAI, que atingiu a pontuação 96.4%. Este parâmetro avalia modelos em diversos problemas matemáticos do nível do secundário que exigem argumentos detalhados. 
  • AIME 2024: no benchmark do American Invitational Mathematics Exaphyllum (AIME) 2024, o deepseek-r1 marcou 79.8%, superando o o1-1217 da OpenAI, que marcou 79.2%. Este parâmetro avalia o argumentos matemáticos avançados em várias etapas.
  • Banco de dados do Codeforces: o deepseek-r1 alcançou uma classificação percentil de 96.3%, seguindo de perto para o o1-1217 da OpenAI, que ponurou 96.6%. Este parâmetro avalia os recursos de codificação e argumentos algorítmicos de um modelo.
  • Verificação do banco de dados SWE: em tarefas de engenharia de software, o GeoSeek-R1 obteve uma pontuação de 49.2%, um pouco à frente do OpenAI o1-1217, que obteve uma pontuação de 48.9%. Este benchmark avalia o argumentos em tarefas de engenharia de software.
  • GBQA Diamante: para o argumento fático, o KerpSeek-R1 ponurou 71.5%, enquanto o o1-1217 da OpenAI atingiu 75.7%. Este benchmark mede a capacidade de responder a perguntas de conhecimento de uso geral.
  • MMLU: no índice de compreensão da linguagem Multitask, que abrange várias Dis- plicativas , o KerpSeek-R1 pontuou 90.8%, ligeiramente abaixo do o1-1217 do OpenAI, que pontuou 91.8%. 
![figura 1: desempenho de comparação do deepseek-r1][1]

abordagem independente de LLM do MongoDB: capacitando a IA com flexibilidade e escalabilidade

À medida que as organizações adotam cada vez mais os LLMs, a necessidade de soluções de dados flexíveis e adaptáveis se torna mais crítica do que nunca. A arquitetura independente de LLM do MongoDB fornece uma base poderosa para criar e dimensionar soluções de IA, permitindo que as empresas naveguem com confiança no cenário de IA em rápida evolução.

1. Evite a dependência de um fornecedor

O ecossistema de IA desenvolve-se rapidamente, com novos modelos e tecnologias a surgir regularmente. O MongoDB Atlas suporta integração com qualquer LLM, seja um modelo proprietário como GPT-4 ou uma alternativa de código aberto. Isso permite que as organizações:
  • Experimente livremente: teste modelos diferentes para identificar o melhor ajuste para seu caso de uso.
  • Adaptar-se à mudança: faça a transição para novas tecnologias à medida que elas surgirem, sem estar vinculado a um único fornecedor ou incorrer em altos custos de mudança.
Essa flexibilidade garante que sua estratégia de IA permaneça flexível e pronta para o futuro, capaz de se adaptar a novas oportunidades e progressos na campo.

2. Aproveite os dados em tempo real para obter uma IA mais inteligente

Sistemas de IA eficazes dependem de conjuntos de dados diversos e dinâmicos para fornecer insights significativos. O esquema flexível e os recursos em tempo real do MongoDB permitem que as organizações:
  • Armazenar e processar dados diversos: Integre perfeitamente dados estruturados, não estruturados e semiestruturados para alimentar modelos de IA.
  • Escale sem esforço: manipule volumes de trabalho de alta demanda com a escalabilidade necessária para aplicativos orientados por IA.
As plataformas de IA geralmente começam com casos de uso simples, como chatbots ou ferramentas de pesquisa de documentação, mas se expandem rapidamente para aplicativos mais complexos e críticos para os negócios. A arquitetura do MongoDB vai além da simples pesquisa vetorial, oferecendo recursos como operações CRUD, pesquisa de texto completo e processamento geoespacial para lidar com diversas necessidades. Por exemplo:
  • Dados de séries temporais alimentam a manutenção preditiva e a detecção de anomalias na produção.
  • Os dados geoespaciais otimizam as rotas de entrega e aprimoram os serviços baseados em localização em Logística e Varejo.
  • Os dados transacionais ajudam a refinar a personalização e melhorar a tomada de decisões em aplicativos focados no cliente.
Essa abordagem abrangente garante que seus aplicativos de IA permaneçam adaptáveis a necessidades futuras, independentemente da evolução dos casos de uso.
O pass O design do MongoDB suporta esta evolução fornecendo uma base de dados que cresce junto com suas ambições. Esteja você apenas iniciando sua maneira de IA ou dimensionando soluções existentes, a capacidade do MongoDB de lidar com vários tipos de dados e cargas de trabalho garante que seus aplicativos permaneçam relevantes e capazes.

3. Acelerar a adesão à IA: por que o tempo é importante

Embora a adesão à IA esteja disparando, muitas organizações ainda estão nos estágios iniciais de sua viagem. Isso apresenta uma oportunidade única para construir suas plataformas de IA estrategicamente, aproveitando ferramentas e abordagens modernas a partir do zero. Esteja você desenvolvendo projetos de prova de conceito ou dimensionando aplicativos de produção, a flexibilidade do MongoDB pode ajudá-lo a acelerar o desenvolvimento e maximizar o impacto.
Para ter sucesso com a IA, as organizações precisam de mais do que apenas um banco de dados– elas precisam de uma camada de dados unificada capaz de gerenciar diversas fontes de dados, dimensionar com a demanda e se adaptar às mudanças nas necessidades de negócios. O MongoDB fornece essa base, habilitando você a:
  • Comece pequeno, com casos de uso focados que demonstram valor imediato.
  • Expanda perfeitamente para aplicativos mais complexos à medida que suas necessidades evoluem.
  • Construa sistemas que não sejam apenas poderosos hoje, mas também adaptáveis para o futuro.
À medida que a IA continua remodelando os setores, ter as ferramentas certas para gerenciar dados e alimentar aplicativos inteligentes será a chave para se manter à frente. A abordagem independente de LLM do MongoDB fornece a flexibilidade, a escalabilidade e a preparação para o futuro de que você precisa para transformar sua visão de IA em Realidade.

Demonstração prática: integração do GeoSeek-R1 com MongoDB

}2 21 para gerar respostas sensíveis ao contexto. Siga estas etapas:
Pré-requisitos
  • O Python está instalado em seu sistema.
  • Você tem acesso a um cluster MongoDB Atlas .
  • O modelo KerpSeek-R1 está disponível por meio de sua API.
Abaixo está o código de demonstração simplificado e completo que integra phrase-transformers/all-MiniLM-L6-v2 com MongoDB para geração de incorporação e geração aumentada de recuperação:

Etapa 1: instalar as bibliotecas necessárias

Instale as bibliotecas necessárias e configure variáveis de ambiente seguras (por exemplo, para o URI de conexão do MongoDB Atlas ):
1 !pip install --quiet -U pymongo sentence-transformers datasets accelerate
1 import os
2 import getpass
3
4 # Function to securely get and set environment variables
5 def set_env_securely(var_name, prompt):
6     value = getpass.getpass(prompt)
7     os.environ[var_name] = value

Etapa 2: carregamento de dados

Carregue um conjunto de dados de filme do Abraçando o Face. Neste exemplo, usamos o conjunto de dados MongoDB/embedded_movies. Convertemos o conjunto de dados em um DataFrame de Pandas, removemos todas as entradas que faltam no gráfico e descartamos as incorporações existentes para que possamos criar novas.
1 from datasets import load_dataset
2 import pandas as pd
3
4 # Load Dataset from Hugging Face
5 dataset = load_dataset("MongoDB/embedded_movies")
6
7 # Convert to a pandas DataFrame and drop records with missing plots
8 dataset_df = pd.DataFrame(dataset['train'])
9 dataset_df = dataset_df.dropna(subset=['fullplot'])
10 print("\nNumber of missing values in each column after removal:")
11 print(dataset_df.isnull().sum())
12
13 # Drop the existing plot embeddings as new ones will be generated
14 dataset_df = dataset_df.drop(columns=['plot_embedding'])
15 dataset_df.head()

Etapa 3: gerar incorporações

Gere novas incorporações para as tramas do filme usando o modelo Sentence-Transformersall-MiniLM-L6-v2` ' . Mais tarde, essas incorporações alimentarão nossa pesquisa vetorial.
1 from sentence_transformers import SentenceTransformer
2
3 # Load the embedding model
4 embedding_model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')
5
6 # Function to generate embeddings from text
7 def generate_embedding(text):
8     return embedding_model.encode([text])[0].tolist()
9
10 # Generate and attach embeddings to the dataset
11 dataset_df["embedding"] = dataset_df["fullplot"].apply(generate_embedding)

Etapa 4: Configurar o MongoDB ( banco de dados operacional e vetorial)

O MongoDB atua como um banco de dados operacional e vetorial para o sistema RAG. O MongoDB Atlas fornece especificamente uma solução de banco de dados que armazena, consulta e recupera incorporações vetoriais de forma eficiente.
A criação de um banco de dados e de uma coleção no MongoDB é simplificada com o MongoDB Atlas.
  1. Primeiro, registre-se para uma conta MongoDB Atlas. Para usuários existentes, entre em MongoDB Atlas.
  2. Siga as instruções. Selecione a UI do Atlas como o procedimento para implantar seu primeiro cluster.
Siga as etapas do MongoDB para obter a string de conexão a partir da UI do Atlas. Depois de configurar o banco de dados e obter o URI de conexão do Atlas cluster, armazene o URI com segurança em seu ambiente de desenvolvimento.
1 # Securely set MongoDB URI
2 set_env_securely("MONGO_URI", "Enter your MONGO URI: ")
1 import pymongo
2
3 def get_mongo_client(mongo_uri):
4     """Establish and validate connection to MongoDB."""
5     client = pymongo.MongoClient(mongo_uri, appname="devrel.showcase.rag.deepseek_rag_movies.python")
6     ping_result = client.admin.command('ping')
7     if ping_result.get('ok') == 1.0:
8         print("Connection to MongoDB successful")
9         return client
10     else:
11         print("Connection to MongoDB failed")
12     return None
13
14 MONGO_URI = os.environ['MONGO_URI']
15 mongo_client = get_mongo_client(MONGO_URI)
16
17 DB_NAME = "movies_database"
18 COLLECTION_NAME = "movies_collection"
19
20 # Create (or get) the database and collection
21 db = mongo_client[DB_NAME]
22 collection = db[COLLECTION_NAME]
23
24 # Clear any existing data in the collection
25 collection.delete_many({})

Etapa 5: ingestão de dados

Insira os documentos de filme processados (com novas incorporações) no MongoDB:
1 documents = dataset_df.to_dict('records')
2 collection.insert_many(documents)
3 print("Data ingestion into MongoDB completed")

Etapa 6: criação do índice vetorial

Crie um índice de pesquisa vetorial no embedding campo em sua coleção MongoDB . Este índice usa similaridade de cosseno em incorporações 384dimensionais
1 import time
2 from pymongo.operations import SearchIndexModel
3
4 embedding_field_name = "embedding"  # Field name containing embeddings
5 vector_search_index_name = "vector_index"
6
7 def create_vector_index_definition(dimensions):
8     return {
9         "fields": [
10             {
11                 "type": "vector",
12                 "path": embedding_field_name,
13                 "numDimensions": dimensions,
14                 "similarity": "cosine"
15             }
16         ]
17     }
18
19 def setup_vector_search_index(collection, index_definition, index_name="vector_index"):
20     new_vector_search_index_model = SearchIndexModel(
21         definition=index_definition,
22         name=index_name,
23         type="vectorSearch"
24     )
25     try:
26         result = collection.create_search_index(model=new_vector_search_index_model)
27         print(f"Creating index '{index_name}'...")
28         print(f"Waiting for 30 seconds to allow index '{index_name}' to be created...")
29         time.sleep(30)
30         print(f"Index '{index_name}' is ready.")
31         return result
32     except Exception as e:
33         print(f"Error creating new vector search index '{index_name}': {str(e)}")
34         return None
35
36 DIMENSIONS = 384
37 vector_index_definition = create_vector_index_definition(dimensions=DIMENSIONS)
38 setup_vector_search_index(collection, vector_index_definition, vector_search_index_name)

Etapa 7: Função de pesquisa vetorial

Defina uma função que executa uma pesquisa vetorial no MongoDB. A função recebe uma query de usuário, gera uma incorporação, executa um pipeline de pesquisa e retorna os principais documentos de filme correspondentes.
1 def vector_search(user_query, top_k=150):
2     """
3     Perform a vector search in the MongoDB collection based on the user query.
4     """
5     query_embedding = generate_embedding(user_query)
6     if query_embedding is None:
7         return "Invalid query or embedding generation failed."
8
9     vector_search_stage = {
10         "$vectorSearch": {
11             "index": vector_search_index_name,
12             "queryVector": query_embedding,
13             "path": embedding_field_name,
14             "numCandidates": top_k,
15             "limit": 5# Return top 5 matches
16         }
17     }
18
19     project_stage = {
20         "$project": {
21             "_id": 0,
22             "fullplot": 1,
23             "title": 1,
24             "genres": 1,
25             "score": {"$meta": "vectorSearchScore"},
26         }
27     }
28
29     pipeline = [vector_search_stage, project_stage]
30     results = collection.aggregate(pipeline)
31     return list(results)

Etapa 8: exemplo de pesquisa semântica

Execute uma consulta de exemplo para realizar a pesquisa semântica no conjunto de dados do filme:
1 import pprint
2
3 query = "What are the some interesting action movies to watch that include business?"
4 results = vector_search(query)
5
6 print(f"\nTop 5 results for query '{query}':")
7 for result in results:
8     print(f"Title: {result['title']}, Score: {result['score']:.4f}")
9
10 # Optionally, preview results as a DataFrame
11 pd.DataFrame(results).head()

Etapa 9: Recuperar a geração aumentada (RAG) comDeepSeek-R1

Integre o1 modelo GeoSeek-R (carregado de Hugging Face) para gerar uma resposta sensível ao contexto combinando a query do usuário com os documentos recuperados. Neste exemplo, carregamos o modelodeepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B` e executamos uma query RAG.
1 from transformers import AutoTokenizer, AutoModelForCausalLM
2
3 # Load DeepSeek model and tokenizer
4 tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B", device_map="cuda")
5 model = AutoModelForCausalLM.from_pretrained("deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B")
6 model.to("cuda")
7
8 def rag_query(user_query):
9     # Retrieve matching documents using vector search
10     retrieved_docs = vector_search(user_query)
11     # Combine the query and search results into a context string
12     combined_information = f"Query: {user_query}\nContinue to answer the query using the Search Results:\n{retrieved_docs}."
13     
14     # Tokenize input and move to GPU
15     input_ids = tokenizer(combined_information, return_tensors="pt").to("cuda")
16     response = model.generate(**input_ids, max_new_tokens=1000)
17     return tokenizer.decode(response[0], skip_special_tokens=False)
18
19 # Example query to generate a concise answer
20 print(rag_query("What's a romantic movie that I can watch with my wife? Make your response concise"))
Neste tutorial, você aprendera como:
  1. Carregar e limpar dados: use o conjunto de dados de Faces Abraçando para filmes, limpando os dados e gerando novas incorporações.
  2. Configurar MongoDB: Conecte-se ao MongoDB Atlas, ingira dados e configure um índice de pesquisa vetorial.
  3. Execute apesquisa semântica: implemente um pipeline de pesquisa vetorial para recuperar documentos relevantes de filmes com base em uma query.
  4. Integre1 o deepseek-r: aproveite um modelo do deepseek-r1 para geração aumentada de recuperação para produzir respostas sensíveis ao contexto.
Todo o código apresentado neste artigo pode ser acessado neste repositório e bloco de notas do Github.

Perguntas frequentes (FAQs)

1. O que é o KerpSeek-R1 e como ele se compara ao GPT-4?

O deepSeek-R1 é um grandes modelos de linguagem (LLM) de código aberto desenvolvido com um orçamento inferior a US$6 milhões. Ele compete com modelos comerciais como o GPT-4 da OpenAI oferecendo desempenho concorrente em vários parâmetros, eficiência de custos e acessibilidade aberta. Ao contrário do GPT-4, oDeepSeek-R1 é totalmente open-source, permitindo aos desenvolvedores personalizá-lo e implementá-lo sem restrições de licenciamento.

2. Como o deepseek-r1 consegue economizar em comparação com outros LLMs?

O GeoSeek-R1 foi desenvolvido com um orçamento discreto de menos de US$6 milhões, significativamente abaixo dos bilhões gastos por empresas como OpenAI e Google. Além disso, o uso da API do deepseek custa aproximadamente US$22 por milhão de tokens, o que é significativamente menor do que o GPT-4 da OpenAI, de US$60 por milhão de tokens.

3. O que torna a abordagem independente de LLM do MongoDB benéfica para as empresas?

A arquitetura independente de LLM do MongoDB permite que as empresas integrem e alternem entre diferentes modelos de linguagem de grande formato sem ficarem vinculadas a um único fornecedor. Essa flexibilidade permite que as organizações experimentem vários modelos, se adaptem perfeitamente às novas tecnologias e aproveitem conjuntos de dados diversos em tempo real para aprimorar seus aplicativos orientados por IA.

4. O deepseek-r1 pode ser implantado em hardware de nível consumidor?

Sim, o deepseek-r1 oferece versões menores e depiladas com apenas 1.5 bilhões de parâmetros, permitindo a implementação leve em hardware de nível consumidor, como iPhones ou M2 Macs. Isso o torna acessível para uma ampla gama de aplicativos sem exigir recursos computacionais significativos.

5. Como a integração do MongoDB aprimora os recursos do GeoSeek-R1?

A integração do MongoDB com o deepseek-r1 fornece uma base de dados robusta que suporta a recuperação de dados estruturados e não estruturados em tempo real. Os recursos de pesquisa multimodal do MongoDB, incluindo similaridade vetorial, texto completo e filtragem de metadados, aprimoram a precisão e a relevância das respostas da IA, tornando os aplicativos mais dinâmicos e contextualmente sensíveis.
Principais comentários nos fóruns
Ainda não há comentários sobre este artigo.

Facebook Icontwitter iconlinkedin icon
Avaliar este tutorial
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Artigo

Correspondências exatas no Atlas Search: guia para desenvolvedores


Oct 09, 2024 | 5 min read
Tutorial

Construindo uma base de conhecimento e gráficos de visualização para RAG com MongoDB


Sep 02, 2024 | 12 min read
Tutorial

Usar a Atlas Vector Search do MongoDB com LangChain


Sep 18, 2024 | 6 min read
Tutorial

Como escolher o melhor modelo de incorporação para seu aplicativo LLM


Nov 07, 2024 | 16 min read