Instructions to use nferruz/ProtGPT2 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use nferruz/ProtGPT2 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="nferruz/ProtGPT2")# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("nferruz/ProtGPT2") model = AutoModelForCausalLM.from_pretrained("nferruz/ProtGPT2") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use nferruz/ProtGPT2 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "nferruz/ProtGPT2" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "nferruz/ProtGPT2", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/nferruz/ProtGPT2
- SGLang
How to use nferruz/ProtGPT2 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 "nferruz/ProtGPT2" \ --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": "nferruz/ProtGPT2", "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 "nferruz/ProtGPT2" \ --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": "nferruz/ProtGPT2", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use nferruz/ProtGPT2 with Docker Model Runner:
docker model run hf.co/nferruz/ProtGPT2
New line characters in generated sequences
Hello,
Firstly, thank you @nferruz for providing a freely accessible and well-documented model.
I am wondering how the model inserts newline(\n) characters into the generated sequences. It seems that a newline character is inserted after every 60 characters to mimic the format of a typical text document. However, in some cases, the model inserts a new line before 60 characters.
I couldn't find a proper answer to these questions:
- Are there any criteria for inserting newline characters into sequences?
- Are "\n" only used for formatting purposes and can it be removed to obtain the actual amino acid sequence?
Thanks in advance,
Emre
Hello!
Thanks for your post. Yes, those newline tokens are an artifact of the way I trained the model. I didn't notice them at the time of training, but of course, following the fasta format, they were there after every 60 characters. We trained several models after ProtGPT2, and I ensured they didn't have newline characters as they only make generation more complicated.
In any case, for this model, I'd ignore all sequences where the model generates a new line character in the first 60 amino acids- those are bad sequences. And then, for the rest of the sequences, you can take the sequence after removing the newline character to get the final string - although I'd leave the newline character if you are computing perplexity values since the model expects them every 60 characters. Also, it has never happened to me, but if a newline character appeared at a different position than a 60 amino acid window, I would discard that sequence too.
Let me know if questions remain.
Noelia