A maneira mais simples de servir modelos de IA/ML em produção
Escreva uma vez, execute em qualquer lugar: Empacote e teste código, pesos e dependências do modelo com um servidor modelo que se comporta da mesma forma no desenvolvimento e na produção.
Loop de desenvolvedor rápido: implemente seu modelo com feedback rápido de um servidor de recarga em tempo real e ignore a configuração do Docker e do Kubernetes com um ambiente de serviço de modelo com baterias incluídas.
Suporte para todas as estruturas Python : de transformers
e diffusers
a PyTorch
e TensorFlow
a TensorRT
e Triton
, o Truss oferece suporte a modelos criados e servidos com qualquer estrutura.
Consulte Treliças para modelos populares, incluindo:
Lhama 2 7B (13B) (70B)
Difusão Estável XL
Sussurrar
e dezenas de outros exemplos.
Instale o Truss com:
pip install --upgrade truss
Como um exemplo rápido, empacotaremos um pipeline de classificação de texto do pacote transformers
de código aberto.
Para começar, crie uma Truss com o seguinte comando de terminal:
treliça init classificação de texto
Quando solicitado, dê ao seu Truss um nome como Text classification
.
Em seguida, navegue até o diretório recém-criado:
classificação de texto de cd
Um dos dois arquivos essenciais em uma treliça é model/model.py
. Neste arquivo, você escreve uma classe Model
: uma interface entre o modelo de ML que você está empacotando e o servidor modelo no qual ele está sendo executado.
Existem duas funções-membro que você deve implementar na classe Model
:
load()
carrega o modelo no servidor de modelo. Ele é executado exatamente uma vez quando o servidor modelo é ativado ou corrigido.
predict()
lida com a inferência do modelo. Ele é executado sempre que o servidor modelo é chamado.
Aqui está o model/model.py
completo para o modelo de classificação de texto:
de transformadores importar classe de pipeline Modelo:def __init__(self, **kwargs):self._model = Nonedef load(self):self._model = pipeline("classificação de texto")def predizer(self, model_input):return self._model (model_input)
O outro arquivo essencial em uma Truss é config.yaml
, que configura o ambiente de serviço do modelo. Para obter uma lista completa das opções de configuração, consulte a referência de configuração.
O modelo de pipeline depende de Transformers e PyTorch. Essas dependências devem ser especificadas na configuração do Truss.
Em config.yaml
, encontre a linha requirements
. Substitua a lista vazia por:
requisitos: - tocha==2.0.1 - transformadores==4.30.0
Nenhuma outra configuração é necessária.
Truss é mantido pela Baseten, que fornece infraestrutura para execução de modelos de ML em produção. Usaremos Baseten como host remoto para seu modelo.
Outros controles remotos serão lançados em breve, começando com o AWS SageMaker.
Para configurar o controle remoto Baseten, você precisará de uma chave de API Baseten. Se você não possui uma conta Baseten, não se preocupe, basta criar uma conta e você receberá muitos créditos gratuitos para começar.
truss push
Com sua chave de API Baseten pronta para colar quando solicitado, você pode implantar seu modelo:
impulso de treliça
Você pode monitorar a implantação do seu modelo no painel do modelo no Baseten.
Depois que a implantação do modelo for concluída, você poderá invocá-lo no terminal.
Invocação
truss prever -d '"Truss é incrível!"'
Resposta
[ {"rótulo": "POSITIVO","pontuação": 0,999873161315918 } ]
Truss é apoiado pela Baseten e construído em colaboração com engenheiros de ML em todo o mundo. Agradecimentos especiais a Stephan Auerhahn @ stable.ai e Daniel Sarfati @ Salad Technologies por suas contribuições.
Recebemos com entusiasmo contribuições de acordo com nosso guia e código de conduta para contribuidores.