Instructions to use Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip", trust_remote_code=True)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip", trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained("Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip
- SGLang
How to use Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip with Docker Model Runner:
docker model run hf.co/Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip
DeepSeek-VL2-DeepSeekMoE-Tiny-Add-Speech-Token-4096-Nostrip
Introduction
This repo contains the DeepSeek-VL2-DeepSeekMoE-Tiny-Add-Speech-Token-4096-Nostrip model utilized to train the EMOVA series of models. Different from traditional LLMs based on dense Transformers, DeepSeekMoE LLMs utilize an efficient sparse Mixture-of-Experts (MoE) architecture. In total, it contains 3B parameters, while only a 0.57B subset is activated for each token during inference. This checkpoint is extracted from the DeepSeek-VL2-Tiny model.
Based on the original DeepSeek-VL2-DeepSeekMoE-Tiny checkpoint, we further insert speech tokens into its vocabulary for end-to-end omni-modal alignment as follows. The total number of speech tokens in EMOVA speech tokenizer is 4096. Thus, it should be utilized as initialization in the Stage 2: Omni-modal text-centric alignment of EMOVA training.
# Source code can be found https://github.com/emova-ollm/EMOVA#insert-speech-tokens-into-llm-vocabulary
python scripts/insert_speech_token.py \
--origin_model_path Emova-ollm/deepseek-vl2-deepseekmoe-tiny \
--saved_model_path ./deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip \
--num_speech_tokens 4096
Usage
To train EMOVA with DeepSeek-VL2-DeepSeekMoE-Tiny-Add-Speech-Token-4096-Nostrip, we need to create a new model config, and set the language_model parameters as follows. An example is provided here. Check more details on training EMOVA in our github repo.
language_model=dict(
type='EmovaDeepseekV2ForCausalLM', -- Wrapper class type for EMOVA
pretrained_model_name_or_path='Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip', -- HuggingFace repo of pre-trained LLM
attn_implementation="flash_attention_2", -- Attention type
from_pretrained=True, -- Load pre-trained weights
),
Citation
@article{chen2024emova,
title={Emova: Empowering language models to see, hear and speak with vivid emotions},
author={Chen, Kai and Gou, Yunhao and Huang, Runhui and Liu, Zhili and Tan, Daxin and Xu, Jing and Wang, Chunwei and Zhu, Yi and Zeng, Yihan and Yang, Kuo and others},
journal={arXiv preprint arXiv:2409.18042},
year={2024}
}
@article{wu2024deepseek,
title={Deepseek-vl2: Mixture-of-experts vision-language models for advanced multimodal understanding},
author={Wu, Zhiyu and Chen, Xiaokang and Pan, Zizheng and Liu, Xingchao and Liu, Wen and Dai, Damai and Gao, Huazuo and Ma, Yiyang and Wu, Chengyue and Wang, Bingxuan and others},
journal={arXiv preprint arXiv:2412.10302},
year={2024}
}
- Downloads last month
- 72
Model tree for Emova-ollm/deepseek-vl2-deepseekmoe-tiny_add_speech_token_4096_nostrip
Base model
Emova-ollm/deepseek-vl2-deepseekmoe-tiny