Upload src/llm/gemma_client.py with huggingface_hub
Browse files- src/llm/gemma_client.py +13 -4
src/llm/gemma_client.py
CHANGED
|
@@ -88,23 +88,32 @@ class GemmaClient:
|
|
| 88 |
{"role": "user", "content": user_prompt},
|
| 89 |
]
|
| 90 |
|
| 91 |
-
|
| 92 |
messages,
|
| 93 |
tokenize=True,
|
| 94 |
add_generation_prompt=True,
|
| 95 |
return_tensors="pt",
|
| 96 |
-
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 97 |
|
| 98 |
with torch.no_grad():
|
| 99 |
outputs = self._model.generate(
|
| 100 |
-
|
| 101 |
max_new_tokens=self.config.max_new_tokens,
|
| 102 |
temperature=self.config.temperature,
|
| 103 |
do_sample=True,
|
| 104 |
pad_token_id=self._tokenizer.eos_token_id,
|
| 105 |
)
|
| 106 |
|
| 107 |
-
prompt_len =
|
| 108 |
generated_ids = outputs[0][prompt_len:]
|
| 109 |
return self._tokenizer.decode(generated_ids, skip_special_tokens=True).strip()
|
| 110 |
|
|
|
|
| 88 |
{"role": "user", "content": user_prompt},
|
| 89 |
]
|
| 90 |
|
| 91 |
+
raw = self._tokenizer.apply_chat_template(
|
| 92 |
messages,
|
| 93 |
tokenize=True,
|
| 94 |
add_generation_prompt=True,
|
| 95 |
return_tensors="pt",
|
| 96 |
+
)
|
| 97 |
+
# Newer transformers may return a BatchEncoding; older returns a plain tensor
|
| 98 |
+
if hasattr(raw, "input_ids"):
|
| 99 |
+
input_ids = raw.input_ids.to(self._model.device)
|
| 100 |
+
gen_kwargs = {"input_ids": input_ids}
|
| 101 |
+
if hasattr(raw, "attention_mask"):
|
| 102 |
+
gen_kwargs["attention_mask"] = raw.attention_mask.to(self._model.device)
|
| 103 |
+
else:
|
| 104 |
+
input_ids = raw.to(self._model.device)
|
| 105 |
+
gen_kwargs = {"input_ids": input_ids}
|
| 106 |
|
| 107 |
with torch.no_grad():
|
| 108 |
outputs = self._model.generate(
|
| 109 |
+
**gen_kwargs,
|
| 110 |
max_new_tokens=self.config.max_new_tokens,
|
| 111 |
temperature=self.config.temperature,
|
| 112 |
do_sample=True,
|
| 113 |
pad_token_id=self._tokenizer.eos_token_id,
|
| 114 |
)
|
| 115 |
|
| 116 |
+
prompt_len = input_ids.shape[1]
|
| 117 |
generated_ids = outputs[0][prompt_len:]
|
| 118 |
return self._tokenizer.decode(generated_ids, skip_special_tokens=True).strip()
|
| 119 |
|