code: def generate_simple(self, prompt, max_new_tokens=128):
      self.end_beam_search()
  
      ids, mask = self.tokenizer.encode(
          prompt,
          return_mask=True,
          max_seq_len=self.model.config.max_seq_len,
      )
      self.gen_begin(ids, mask=mask)
  
      max_new_tokens = min(
          max_new_tokens, self.model.config.max_seq_len - ids.shape[1]
      )
  
      eos = torch.zeros((ids.shape[0],), dtype=torch.bool)
      for i in range(max_new_tokens):
          token = self.gen_single_token(mask=mask)
          for j in range(token.shape[0]):
              if token[j, 0].item() == self.tokenizer.eos_token_id:
                  eos[j] = True
          if eos.all():
              break
  
      text = self.tokenizer.decode(
          self.sequence[0]
          if self.sequence.shape[0] == 1
          else self.sequence
      )
      return text
  
imports: import cuda_ext
  from model import ExLlama, ExLlamaCache
  from lora import ExLlamaLora
  import torch
  import torch.nn.functional
label_desc: Use image node_id 18 for calling the ExLlamaGenerator obj's underlying member method code with example usage: obj.generate_simple(prompt, max_new_tokens) and returns: text