text: Title: unexpected output for HF model with matching
  Body: ## 🐛 Bug
  
  <!-- A clear and concise description of what the bug is. -->
  
  ### To Reproduce
  
  without batching all works as expected
  ```
  {'output': 'What is the capital of Greece?\n\nAthens.'}
  ```
  but with batch, it returns just the first character
  ```
  {'output': 'W'}
  ```
  
  #### Code sample
  
  ```py
  import torch
  import litserve as ls
  from transformers import AutoTokenizer, AutoModelForCausalLM
  
  
  class JambaLitAPI(ls.LitAPI):
  
      def __init__(
          self,
          model_name: str = "ai21labs/AI21-Jamba-1.5-Mini",
          max_new_tokens: int = 100
      ):
          self.model_name = model_name
          self.max_new_tokens = max_new_tokens
  
      def setup(self, device):
          # Load the model and tokenizer from Hugging Face Hub
          # For example, using the `distilbert-base-uncased-finetuned-sst-2-english` model for sentiment analysis
          # You can replace the model name with any model from the Hugging Face Hub
          self.model = AutoModelForCausalLM.from_pretrained(
              self.model_name, torch_dtype=torch.bfloat16, device_map="auto", use_mamba_kernels=False
          ).eval()
          self.tokenizer = AutoTokenizer.from_pretrained(self.model_name, legacy=False)
  
      def decode_request(self, request):
          # Extract text from request
          # This assumes the request payload is of the form: {'input': 'Your input text here'}
          return request["input"]
  
      def predict(self, text):
          print(text)
          # Use the loaded pipeline to perform inference
          inputs = self.tokenizer(text, return_tensors='pt')
          input_ids = inputs.to(self.model.device)["input_ids"]
          print(input_ids)
          output_ids = self.model.generate(
              input_ids,
              max_new_tokens=self.max_new_tokens
          )[0]
          print(output_ids)
          text = self.tokenizer.decode(output_ids, skip_special_tokens=True)
          print(text)
          return text
  
      def encode_response(self, output):
          # Format the output from the model to send as a response
          # This example sends back the label and score of the prediction
          return {"output": output}
  
  
  if __name__ == "__main__":
      # Create an instance of your API
      api = JambaLitAPI()
      # Start the server, specifying the port
      server = ls.LitServer(api, accelerator="cuda", devices=1, max_batch_size=4)
      # print("run the server...")
      server.run(port=8000)
  ```
  
  ### Expected behavior
  
  <!-- A clear and concise description of what you expected to happen. -->
  
  ### Environment
  If you published a Studio with your bug report, we can automatically get this information. Otherwise, please describe:   
  
  - PyTorch/Jax/Tensorflow Version (e.g., 1.0):
  - OS (e.g., Linux):
  - How you installed PyTorch (`conda`, `pip`, source):
  - Build command you used (if compiling from source):
  - Python version:
  - CUDA/cuDNN version:
  - GPU models and configuration:
  - Any other relevant information:
  
  ### Additional context
  
  <!-- Add any other context about the problem here. -->
  