Параметры генерации:
simplear - do_sample=false;until=["\n"];
\nchegeka - do_sample=false;until=["\n"];
\nrudetox - do_sample=false;until=["\n"];
\nrumultiar - do_sample=false;until=["\n"];
\nuse - do_sample=false;until=["\n","."];
\nmultiq - do_sample=false;until=["\n"];
\nrumodar - do_sample=false;until=["\n"];
\nruhumaneval - do_sample=true;until=["\nclass","\ndef","\n#","\nif","\nprint"];temperature=0.6;
\nrucodeeval - do_sample=true;until=["\nclass","\ndef","\n#","\nif","\nprint"];temperature=0.6;
Размер контекста:
simplear, bps, lcs, chegeka, mathlogicqa, parus, rcb, rudetox, ruhatespeech, rummlu, ruworldtree, ruopenbookqa, rumultiar, use, rwsd, mamuramu, multiq, rumodar, ruethics, ruhhh, ruhumaneval, rucodeeval, rutie - 65536
\nrutie - 20000
Системный промпт:
Реши задачу по инструкции ниже. Не давай никаких объяснений и пояснений к своему ответу. Не пиши ничего лишнего. Пиши только то, что указано в инструкции. Если по инструкции нужно решить пример, то напиши только числовой ответ без хода решения и пояснений. Если по инструкции нужно вывести букву, цифру или слово, выведи только его. Если по инструкции нужно выбрать один из вариантов ответа и вывести букву или цифру, которая ему соответствует, то выведи только эту букву или цифру, не давай никаких пояснений, не добавляй знаки препинания, только 1 символ в ответе. Если по инструкции нужно дописать код функции на языке Python, пиши сразу код, соблюдая отступы так, будто ты продолжаешь функцию из инструкции, не давай пояснений, не пиши комментарии, используй только аргументы из сигнатуры функции в инструкции, не пробуй считывать данные через функцию input. Не извиняйся, не строй диалог. Выдавай только ответ и ничего больше.
Описание темплейта:
{%- if messages[0]["role"] == "system" %}
\n {%- set system_message = messages[0]["content"] %}
\n {%- set loop_messages = messages[1:] %}
\n{%- else %}
\n {%- set loop_messages = messages %}
\n{%- endif %}
\n{%- if not tools is defined %}
\n {%- set tools = none %}
\n{%- endif %}
\n{%- set user_messages = loop_messages | selectattr("role", "equalto", "user") | list %}
\n
\n{#- This block checks for alternating user/assistant messages, skipping tool calling messages #}
\n{%- set ns = namespace() %}
\n{%- set ns.index = 0 %}
\n{%- for message in loop_messages %}
\n {%- if not (message.role == "tool" or message.role == "tool_results" or (message.tool_calls is defined and message.tool_calls is not none)) %}
\n {%- if (message["role"] == "user") != (ns.index % 2 == 0) %}
\n {{- raise_exception("After the optional system message, conversation roles must alternate user/assistant/user/assistant/...") }}
\n {%- endif %}
\n {%- set ns.index = ns.index + 1 %}
\n {%- endif %}
\n{%- endfor %}
\n
\n{{- bos_token }}
\n{%- for message in loop_messages %}
\n {%- if message["role"] == "user" %}
\n {%- if tools is not none and (message == user_messages[-1]) %}
\n {{- "[AVAILABLE_TOOLS] [" }}
\n {%- for tool in tools %}
\n {%- set tool = tool.function %}
\n {{- '{"type": "function", "function": {' }}
\n {%- for key, val in tool.items() if key != "return" %}
\n {%- if val is string %}
\n {{- '"' + key + '": "' + val + '"' }}
\n {%- else %}
\n {{- '"' + key + '": ' + val|tojson }}
\n {%- endif %}
\n {%- if not loop.last %}
\n {{- ", " }}
\n {%- endif %}
\n {%- endfor %}
\n {{- "}}" }}
\n {%- if not loop.last %}
\n {{- ", " }}
\n {%- else %}
\n {{- "]" }}
\n {%- endif %}
\n {%- endfor %}
\n {{- "[/AVAILABLE_TOOLS]" }}
\n {%- endif %}
\n {%- if loop.last and system_message is defined %}
\n {{- "[INST] " + system_message + "\n\n" + message["content"] + "[/INST]" }}
\n {%- else %}
\n {{- "[INST] " + message["content"] + "[/INST]" }}
\n {%- endif %}
\n {%- elif message.tool_calls is defined and message.tool_calls is not none %}
\n {{- "[TOOL_CALLS] [" }}
\n {%- for tool_call in message.tool_calls %}
\n {%- set out = tool_call.function|tojson %}
\n {{- out[:-1] }}
\n {%- if not tool_call.id is defined or tool_call.id|length != 9 %}
\n {{- raise_exception("Tool call IDs should be alphanumeric strings with length 9!") }}
\n {%- endif %}
\n {{- ', "id": "' + tool_call.id + '"}' }}
\n {%- if not loop.last %}
\n {{- ", " }}
\n {%- else %}
\n {{- "]" + eos_token }}
\n {%- endif %}
\n {%- endfor %}
\n {%- elif message["role"] == "assistant" %}
\n {{- " " + message["content"]|trim + eos_token}}
\n {%- elif message["role"] == "tool_results" or message["role"] == "tool" %}
\n {%- if message.content is defined and message.content.content is defined %}
\n {%- set content = message.content.content %}
\n {%- else %}
\n {%- set content = message.content %}
\n {%- endif %}
\n {{- '[TOOL_RESULTS] {"content": ' + content|string + ", " }}
\n {%- if not message.tool_call_id is defined or message.tool_call_id|length != 9 %}
\n {{- raise_exception("Tool call IDs should be alphanumeric strings with length 9!") }}
\n {%- endif %}
\n {{- '"call_id": "' + message.tool_call_id + '"}[/TOOL_RESULTS]' }}
\n {%- else %}
\n {{- raise_exception("Only user and assistant roles are supported, with the exception of an initial optional system message!") }}
\n {%- endif %}
\n{%- endfor %}