Skip to content

Commit 2c64164

Browse files
committed
feat(transformers): add support to Mamba
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
1 parent 715071b commit 2c64164

File tree

4 files changed

+10
-16
lines changed

4 files changed

+10
-16
lines changed

Dockerfile

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ ARG TARGETARCH
1515
ARG TARGETVARIANT
1616

1717
ENV DEBIAN_FRONTEND=noninteractive
18-
ENV EXTERNAL_GRPC_BACKENDS="coqui:/build/backend/python/coqui/run.sh,transformers:/build/backend/python/transformers/run.sh,rerankers:/build/backend/python/rerankers/run.sh,autogptq:/build/backend/python/autogptq/run.sh,bark:/build/backend/python/bark/run.sh,diffusers:/build/backend/python/diffusers/run.sh,openvoice:/build/backend/python/openvoice/run.sh,kokoro:/build/backend/python/kokoro/run.sh,vllm:/build/backend/python/vllm/run.sh,mamba:/build/backend/python/mamba/run.sh,exllama2:/build/backend/python/exllama2/run.sh,parler-tts:/build/backend/python/parler-tts/run.sh"
18+
ENV EXTERNAL_GRPC_BACKENDS="coqui:/build/backend/python/coqui/run.sh,transformers:/build/backend/python/transformers/run.sh,rerankers:/build/backend/python/rerankers/run.sh,autogptq:/build/backend/python/autogptq/run.sh,bark:/build/backend/python/bark/run.sh,diffusers:/build/backend/python/diffusers/run.sh,openvoice:/build/backend/python/openvoice/run.sh,kokoro:/build/backend/python/kokoro/run.sh,vllm:/build/backend/python/vllm/run.sh,exllama2:/build/backend/python/exllama2/run.sh,parler-tts:/build/backend/python/parler-tts/run.sh"
1919

2020

2121
RUN apt-get update && \
@@ -442,9 +442,6 @@ RUN if [[ ( "${EXTRA_BACKENDS}" =~ "vllm" || -z "${EXTRA_BACKENDS}" ) && "$IMAGE
442442
; fi && \
443443
if [[ ( "${EXTRA_BACKENDS}" =~ "rerankers" || -z "${EXTRA_BACKENDS}" ) && "$IMAGE_TYPE" == "extras" ]]; then \
444444
make -C backend/python/rerankers \
445-
; fi && \
446-
if [[ ( "${EXTRA_BACKENDS}" =~ "mamba" || -z "${EXTRA_BACKENDS}" ) && "$IMAGE_TYPE" == "extras" ]]; then \
447-
make -C backend/python/mamba \
448445
; fi
449446

450447
# Make sure the models directory exists

Makefile

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -533,10 +533,10 @@ protogen-go-clean:
533533
$(RM) bin/*
534534

535535
.PHONY: protogen-python
536-
protogen-python: autogptq-protogen bark-protogen coqui-protogen diffusers-protogen exllama2-protogen mamba-protogen rerankers-protogen transformers-protogen parler-tts-protogen kokoro-protogen vllm-protogen openvoice-protogen
536+
protogen-python: autogptq-protogen bark-protogen coqui-protogen diffusers-protogen exllama2-protogen rerankers-protogen transformers-protogen parler-tts-protogen kokoro-protogen vllm-protogen openvoice-protogen
537537

538538
.PHONY: protogen-python-clean
539-
protogen-python-clean: autogptq-protogen-clean bark-protogen-clean coqui-protogen-clean diffusers-protogen-clean exllama2-protogen-clean mamba-protogen-clean rerankers-protogen-clean transformers-protogen-clean parler-tts-protogen-clean kokoro-protogen-clean vllm-protogen-clean openvoice-protogen-clean
539+
protogen-python-clean: autogptq-protogen-clean bark-protogen-clean coqui-protogen-clean diffusers-protogen-clean exllama2-protogen-clean rerankers-protogen-clean transformers-protogen-clean parler-tts-protogen-clean kokoro-protogen-clean vllm-protogen-clean openvoice-protogen-clean
540540

541541
.PHONY: autogptq-protogen
542542
autogptq-protogen:
@@ -578,14 +578,6 @@ exllama2-protogen:
578578
exllama2-protogen-clean:
579579
$(MAKE) -C backend/python/exllama2 protogen-clean
580580

581-
.PHONY: mamba-protogen
582-
mamba-protogen:
583-
$(MAKE) -C backend/python/mamba protogen
584-
585-
.PHONY: mamba-protogen-clean
586-
mamba-protogen-clean:
587-
$(MAKE) -C backend/python/mamba protogen-clean
588-
589581
.PHONY: rerankers-protogen
590582
rerankers-protogen:
591583
$(MAKE) -C backend/python/rerankers protogen
@@ -642,7 +634,6 @@ prepare-extra-conda-environments: protogen-python
642634
$(MAKE) -C backend/python/coqui
643635
$(MAKE) -C backend/python/diffusers
644636
$(MAKE) -C backend/python/vllm
645-
$(MAKE) -C backend/python/mamba
646637
$(MAKE) -C backend/python/rerankers
647638
$(MAKE) -C backend/python/transformers
648639
$(MAKE) -C backend/python/parler-tts

backend/python/transformers/backend.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222

2323
XPU=os.environ.get("XPU", "0") == "1"
24-
from transformers import AutoTokenizer, AutoModel, set_seed, TextIteratorStreamer, StoppingCriteriaList, StopStringCriteria
24+
from transformers import AutoTokenizer, AutoModel, set_seed, TextIteratorStreamer, StoppingCriteriaList, StopStringCriteria, MambaConfig, MambaForCausalLM
2525
from transformers import AutoProcessor, MusicgenForConditionalGeneration
2626
from scipy.io import wavfile
2727
import outetts
@@ -245,6 +245,10 @@ def LoadModel(self, request, context):
245245
autoTokenizer = False
246246
self.model = SentenceTransformer(model_name, trust_remote_code=request.TrustRemoteCode)
247247
self.SentenceTransformer = True
248+
elif request.Type == "Mamba":
249+
autoTokenizer = False
250+
self.tokenizer = AutoTokenizer.from_pretrained(model_name)
251+
self.model = MambaForCausalLM.from_pretrained(model_name)
248252
else:
249253
print("Automodel", file=sys.stderr)
250254
self.model = AutoModel.from_pretrained(model_name,

pkg/model/initializers.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,14 @@ var Aliases map[string]string = map[string]string{
2929
"langchain-huggingface": LCHuggingFaceBackend,
3030
"transformers-musicgen": TransformersBackend,
3131
"sentencetransformers": TransformersBackend,
32+
"mamba": TransformersBackend,
3233
"stablediffusion": StableDiffusionGGMLBackend,
3334
}
3435

3536
var TypeAlias map[string]string = map[string]string{
3637
"sentencetransformers": "SentenceTransformer",
3738
"huggingface-embeddings": "SentenceTransformer",
39+
"mamba": "Mamba",
3840
"transformers-musicgen": "MusicgenForConditionalGeneration",
3941
}
4042

0 commit comments

Comments
 (0)