Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Diferenças e Necessidades utilização do Ollama e do HuggingFace

Olá,

Durante a aula, percebi que o professor utilizou o Ollama para baixar e utilizar alguns modelos para responder às perguntas e, em paralelo, utilizou o HuggingFace para carregar outros modelos, como o de embeddings. Não entendi a necessidade se utilizar ambos se, na prática, por meio dos 2 é possível baixar e acessar os mesmos modelos, tanto como tokenizer quanto como modelos de resposta.

2 respostas

Após ter lido o conteúdo logo em seguida explicando sobre a utilização do HuggingFace para o carregamento de tokenizers e criação dos embeddings do texto (Para saber mais: integração de tokenizers com OLAMA), acredito que parte da dúvida tenha sido esclarecida. Porém, ainda assim, não enxergo a necessidade da utilização do Ollama, visto que o HuggingFace já dispõe dos mesmos modelos.

solução!

Oii, Nelson!

É uma excelente observação. Quando estamos começando a montar pipelines de IA, é muito comum nos perguntarmos por que adicionar mais uma camada ou ferramenta se uma delas parece fazer tudo.

A resposta reside na diferença entre armazenar/carregar um modelo e servir um modelo.

O papel de cada um:

  • Hugging Face: Pense nele como uma biblioteca de alta precisão. Quando você usa o AutoTokenizer ou carrega um modelo de embeddings diretamente por ele, o Python carrega os pesos do modelo diretamente na memória do seu script. É ideal para tarefas rápidas e específicas, como a tokenização e a criação de vetores (embeddings), onde o controle sobre cada etapa do texto é fundamental.
  • Ollama: Ele funciona mais como um "servidor de bastidores". O Ollama não apenas baixa o modelo, mas gerencia como ele utiliza sua memória RAM e sua placa de vídeo (GPU) de forma otimizada. Ele expõe o modelo como uma API local.

Por que usar os dois juntos?

  1. Gerenciamento de recursos: Modelos de chat (como o Llama 3 ou Gemma) são pesados. O Ollama consegue "segurar" esse modelo na memória de forma muito estável, permitindo que seu código Python fique livre para processar apenas a lógica do negócio, sem travar por falta de memória.
  2. Facilidade de execução: Rodar um modelo de linguagem via Hugging Face puro exige configurar muitas linhas de código para definir parâmetros de geração, parada e memória. Com o Ollama, você faz isso com um comando simples, e ele já entrega uma interface pronta para o LangChain consumir.
  3. Especialização: Usamos o Hugging Face para os embeddings porque precisamos de consistência total entre a forma como o texto é cortado (tokenizado) e como ele é transformado em vetor. Já para a geração da resposta final, usamos o Ollama pela sua agilidade em lidar com modelos de conversação maiores.

Então: o Hugging Face nos dá o ajuste fino e técnico para os dados, enquanto o Ollama nos dá a infraestrutura pronta e veloz para o chat.

Conteúdos relacionados
Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!