Instructions to use baidu/ERNIE-4.5-0.3B-PT with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use baidu/ERNIE-4.5-0.3B-PT with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="baidu/ERNIE-4.5-0.3B-PT") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("baidu/ERNIE-4.5-0.3B-PT") model = AutoModelForCausalLM.from_pretrained("baidu/ERNIE-4.5-0.3B-PT", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use baidu/ERNIE-4.5-0.3B-PT with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "baidu/ERNIE-4.5-0.3B-PT" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "baidu/ERNIE-4.5-0.3B-PT", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/baidu/ERNIE-4.5-0.3B-PT
- SGLang
How to use baidu/ERNIE-4.5-0.3B-PT 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 "baidu/ERNIE-4.5-0.3B-PT" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "baidu/ERNIE-4.5-0.3B-PT", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'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 "baidu/ERNIE-4.5-0.3B-PT" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "baidu/ERNIE-4.5-0.3B-PT", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use baidu/ERNIE-4.5-0.3B-PT with Docker Model Runner:
docker model run hf.co/baidu/ERNIE-4.5-0.3B-PT
Update config.json
See https://github.com/huggingface/transformers/blob/0fe03afeb82e1a435a75704d1f434c47e49a0bbb/tests/models/ernie4_5/test_modeling_ernie4_5.py#L103 for the correct class, sorry about that
Didn't use the auto class in the test
Exactly, Ernie4_5ForCausalLM is more suitable.
By the way, if we only want to use LlamaTokenizerFast, we can remove "add_prefix_space": false, from tokenizer_config.json and tokenizer.model under the root directory. Could you confirm this?
Furthermore, are there any functional differences between LlamaTokenizerFast and LlamaTokenizer?
By the way, if we only want to use LlamaTokenizerFast, we can remove "add_prefix_space": false, from tokenizer_config.json and tokenizer.model under the root directory.
Not entirely sure there tbh but iirc there were slight difference between False and True so I opted for False to ensure same behavior as before.
Furthermore, are there any functional differences between LlamaTokenizerFast and LlamaTokenizer?
Unfortunately yes and that's why we opted to only support the fast variant as it aligned functionality-wise without any further changes. The "slow" tokenizer had slight deviations on how it behaved around special tokens, i.e. it would need patches like https://huggingface.co/baidu/ERNIE-4.5-0.3B-PT/commit/00fbf72f526289cdb3e1ddb14eb74adf8665c56d - this is mostly due to legacy behavior tbh.
gentle ping @hlfby06
I think we can merge this and https://huggingface.co/baidu/ERNIE-4.5-0.3B-Base-PT/discussions/4 now as vLLM has been updated (see https://github.com/vllm-project/vllm/pull/21735)
Thanks!