Update app.py
Browse files
app.py
CHANGED
|
@@ -62,7 +62,7 @@ def generate_response(
|
|
| 62 |
question = truncate_text(question, MAX_QUESTION_CHARS)
|
| 63 |
|
| 64 |
# Формирование промпта (простая инструкция)
|
| 65 |
-
prompt = f"
|
| 66 |
|
| 67 |
messages = [
|
| 68 |
{"role": "system", "content": f"Ты бот, который дает короткий и чёткий ответ пользователю строго по данным из документа. Данные из документа: <document>{document}</document>"},
|
|
@@ -91,30 +91,17 @@ def generate_response(
|
|
| 91 |
# Генерация
|
| 92 |
start_time = time.time()
|
| 93 |
try:
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
)
|
| 106 |
-
else:
|
| 107 |
-
with torch.no_grad():
|
| 108 |
-
outputs = model.generate(
|
| 109 |
-
inputs.input_ids,
|
| 110 |
-
max_new_tokens=max_new_tokens,
|
| 111 |
-
temperature=temperature,
|
| 112 |
-
do_sample=True,
|
| 113 |
-
top_p=0.95,
|
| 114 |
-
repetition_penalty=repetition_penalty, # штраф за повторяющиеся токены
|
| 115 |
-
early_stopping=True, # остановка при достижении eos_token
|
| 116 |
-
pad_token_id=tokenizer.eos_token_id
|
| 117 |
-
)
|
| 118 |
latency = time.time() - start_time
|
| 119 |
except Exception as e:
|
| 120 |
return f"Ошибка генерации: {type(e).__name__}: {e}", time.time() - start_time
|
|
|
|
| 62 |
question = truncate_text(question, MAX_QUESTION_CHARS)
|
| 63 |
|
| 64 |
# Формирование промпта (простая инструкция)
|
| 65 |
+
prompt = f"<|query_start|>{question}<|query_end|>\n<|source_start|><|source_id|>1 {document}<|source_end|>\n<|language_start|>\n"
|
| 66 |
|
| 67 |
messages = [
|
| 68 |
{"role": "system", "content": f"Ты бот, который дает короткий и чёткий ответ пользователю строго по данным из документа. Данные из документа: <document>{document}</document>"},
|
|
|
|
| 91 |
# Генерация
|
| 92 |
start_time = time.time()
|
| 93 |
try:
|
| 94 |
+
with torch.no_grad():
|
| 95 |
+
outputs = model.generate(
|
| 96 |
+
inputs.input_ids,
|
| 97 |
+
max_new_tokens=max_new_tokens,
|
| 98 |
+
temperature=temperature if temperature > 0 else None,
|
| 99 |
+
do_sample=True,
|
| 100 |
+
top_p=0.95,
|
| 101 |
+
repetition_penalty=repetition_penalty, # штраф за повторяющиеся токены
|
| 102 |
+
early_stopping=True, # остановка при достижении eos_token
|
| 103 |
+
pad_token_id=tokenizer.eos_token_id
|
| 104 |
+
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 105 |
latency = time.time() - start_time
|
| 106 |
except Exception as e:
|
| 107 |
return f"Ошибка генерации: {type(e).__name__}: {e}", time.time() - start_time
|