Este é um post de blog que reimplementa o BGE-M3, um modelo de embeddings voltado para RAG e considerado o melhor em coreano, indo além da implementação em Python fornecida pelo Huggingface, usando TensorFlow/Keras em uma forma que permite serving em larga escala em ambientes corporativos.
- Suporte a serving corporativo
- Possibilidade de processamento distribuído em larga escala em ambientes Hadoop-Spark baseados em Java/Scala
- Implementação de servidor de alto desempenho com Kotlin/Spring Boot
- Suporte a ambientes de produção em larga escala com TensorFlow Serving
- Suporte a ambientes móveis/embarcados com TensorFlow Lite
- Simplificação da estrutura do modelo
- Implementação da estrutura principal apenas com Dense Layer e LayerNorm
- Remoção de dependências complexas de Python
- Estrutura mais leve para garantir alta vazão
- Características da implementação
- Embeddings de Word/Position/Token Type implementados com Dense Layer básica
- 24 blocos Transformer compostos com operações puras de TensorFlow
- Implementação customizada de Multi-Head Self-Attention para otimização de desempenho
- Casos reais de uso
- Processamento distribuído de embeddings em ambientes Hadoop de grande porte
- Aprendizado federado e serviços de RAG baseados em Spring Boot
- Inferência móvel com uso do Apple Neural Engine
- Deploy corporativo com TensorFlow Serving
A abordagem de implementação explicada no texto tem como característica remover a dependência de Python e usar apenas recursos nativos do TensorFlow, permitindo um serviço estável em ambientes corporativos de grande escala.
4 comentários
https://github.com/sionic-ai/BGE-M3-Model-Converter
Divulgamos todo o código.
O texto em si não é tão difícil, mas como os códigos anexados à explicação estão um pouco incompletos, acho que seria melhor se o código completo implementado dessa forma fosse compartilhado.
https://github.com/sionic-ai/BGE-M3-Model-Converter
Publicamos todo o código.
Obrigado
Acho que vou precisar rever com calma haha