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
Avaliar este tutorial
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 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:
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.
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.
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]
figura 1: desempenho do benchmark da GeoSeek-R1
À 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.
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.
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.
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.
}2 21 para gerar respostas sensíveis ao contexto. Siga estas etapas:
- 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:
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
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()
Gere novas incorporações para as tramas do filme usando o modelo Sentence-Transformers
all-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)
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.
- Primeiro, registre-se para uma conta MongoDB Atlas. Para usuários existentes, entre em MongoDB Atlas.
- 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({})
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")
Crie um índice de pesquisa vetorial no
embedding
campo em sua coleção MongoDB . Este índice usa similaridade de cosseno em incorporações 384dimensionais1 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)
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)
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()
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 modelo
deepseek-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:
- Carregar e limpar dados: use o conjunto de dados de Faces Abraçando para filmes, limpando os dados e gerando novas incorporações.
- Configurar MongoDB: Conecte-se ao MongoDB Atlas, ingira dados e configure um índice de pesquisa vetorial.
- Execute apesquisa semântica: implemente um pipeline de pesquisa vetorial para recuperar documentos relevantes de filmes com base em uma query.
- 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.
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.
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.
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.
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.
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.