<net name="detokenizer" version="11"> | |
<layers> | |
<layer id="0" name="Parameter_193" type="Parameter" version="opset1"> | |
<data shape="?,?" element_type="i64" /> | |
<output> | |
<port id="0" precision="I64" names="Parameter_193"> | |
<dim>-1</dim> | |
<dim>-1</dim> | |
</port> | |
</output> | |
</layer> | |
<layer id="1" name="Convert_209" type="Convert" version="opset1"> | |
<data destination_type="i32" /> | |
<input> | |
<port id="0" precision="I64"> | |
<dim>-1</dim> | |
<dim>-1</dim> | |
</port> | |
</input> | |
<output> | |
<port id="1" precision="I32"> | |
<dim>-1</dim> | |
<dim>-1</dim> | |
</port> | |
</output> | |
</layer> | |
<layer id="2" name="Constant_88" type="Const" version="opset1"> | |
<data element_type="u8" shape="1586436" offset="0" size="1586436" /> | |
<output> | |
<port id="0" precision="U8"> | |
<dim>1586436</dim> | |
</port> | |
</output> | |
</layer> | |
<layer id="3" name="StringTensorUnpack_89" type="StringTensorUnpack" version="extension"> | |
<data mode="begins_ends" /> | |
<input> | |
<port id="0" precision="U8"> | |
<dim>1586436</dim> | |
</port> | |
</input> | |
<output> | |
<port id="1" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="2" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="3" precision="U8"> | |
<dim>-1</dim> | |
</port> | |
</output> | |
</layer> | |
<layer id="4" name="VocabDecoder_194" type="VocabDecoder" version="extension"> | |
<data skip_tokens="128000, 128001, 128002, 128003, 128004, 128005, 128006, 128007, 128008, 128009, 128010, 128011, 128012, 128013, 128014, 128015, 128016, 128017, 128018, 128019, 128020, 128021, 128022, 128023, 128024, 128025, 128026, 128027, 128028, 128029, 128030, 128031, 128032, 128033, 128034, 128035, 128036, 128037, 128038, 128039, 128040, 128041, 128042, 128043, 128044, 128045, 128046, 128047, 128048, 128049, 128050, 128051, 128052, 128053, 128054, 128055, 128056, 128057, 128058, 128059, 128060, 128061, 128062, 128063, 128064, 128065, 128066, 128067, 128068, 128069, 128070, 128071, 128072, 128073, 128074, 128075, 128076, 128077, 128078, 128079, 128080, 128081, 128082, 128083, 128084, 128085, 128086, 128087, 128088, 128089, 128090, 128091, 128092, 128093, 128094, 128095, 128096, 128097, 128098, 128099, 128100, 128101, 128102, 128103, 128104, 128105, 128106, 128107, 128108, 128109, 128110, 128111, 128112, 128113, 128114, 128115, 128116, 128117, 128118, 128119, 128120, 128121, 128122, 128123, 128124, 128125, 128126, 128127, 128128, 128129, 128130, 128131, 128132, 128133, 128134, 128135, 128136, 128137, 128138, 128139, 128140, 128141, 128142, 128143, 128144, 128145, 128146, 128147, 128148, 128149, 128150, 128151, 128152, 128153, 128154, 128155, 128156, 128157, 128158, 128159, 128160, 128161, 128162, 128163, 128164, 128165, 128166, 128167, 128168, 128169, 128170, 128171, 128172, 128173, 128174, 128175, 128176, 128177, 128178, 128179, 128180, 128181, 128182, 128183, 128184, 128185, 128186, 128187, 128188, 128189, 128190, 128191, 128192, 128193, 128194, 128195, 128196, 128197, 128198, 128199, 128200, 128201, 128202, 128203, 128204, 128205, 128206, 128207, 128208, 128209, 128210, 128211, 128212, 128213, 128214, 128215, 128216, 128217, 128218, 128219, 128220, 128221, 128222, 128223, 128224, 128225, 128226, 128227, 128228, 128229, 128230, 128231, 128232, 128233, 128234, 128235, 128236, 128237, 128238, 128239, 128240, 128241, 128242, 128243, 128244, 128245, 128246, 128247, 128248, 128249, 128250, 128251, 128252, 128253, 128254, 128255" /> | |
<input> | |
<port id="0" precision="I32"> | |
<dim>-1</dim> | |
<dim>-1</dim> | |
</port> | |
<port id="1" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="2" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="3" precision="U8"> | |
<dim>-1</dim> | |
</port> | |
</input> | |
<output> | |
<port id="4" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="5" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="6" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="7" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="8" precision="U8"> | |
<dim>-1</dim> | |
</port> | |
</output> | |
</layer> | |
<layer id="5" name="CharsToBytes_195" type="CharsToBytes" version="extension"> | |
<input> | |
<port id="0" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="1" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="2" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="3" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="4" precision="U8"> | |
<dim>-1</dim> | |
</port> | |
</input> | |
<output> | |
<port id="5" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="6" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="7" precision="U8"> | |
<dim>-1</dim> | |
</port> | |
</output> | |
</layer> | |
<layer id="6" name="Constant_197" type="Const" version="opset1"> | |
<data element_type="u8" shape="47" offset="1586436" size="47" /> | |
<output> | |
<port id="0" precision="U8"> | |
<dim>47</dim> | |
</port> | |
</output> | |
</layer> | |
<layer id="7" name="Constant_199" type="Const" version="opset1"> | |
<data element_type="u8" shape="2" offset="1586483" size="2" /> | |
<output> | |
<port id="0" precision="U8"> | |
<dim>2</dim> | |
</port> | |
</output> | |
</layer> | |
<layer id="8" name="RegexNormalization_200" type="RegexNormalization" version="extension"> | |
<data global_replace="true" /> | |
<input> | |
<port id="0" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="1" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="2" precision="U8"> | |
<dim>-1</dim> | |
</port> | |
<port id="3" precision="U8"> | |
<dim>47</dim> | |
</port> | |
<port id="4" precision="U8"> | |
<dim>2</dim> | |
</port> | |
</input> | |
<output> | |
<port id="5" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="6" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="7" precision="U8"> | |
<dim>-1</dim> | |
</port> | |
</output> | |
</layer> | |
<layer id="9" name="StringTensorPack_201" type="StringTensorPack" version="extension"> | |
<data mode="begins_ends" /> | |
<input> | |
<port id="0" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="1" precision="I32"> | |
<dim>-1</dim> | |
</port> | |
<port id="2" precision="U8"> | |
<dim>-1</dim> | |
</port> | |
</input> | |
<output> | |
<port id="3" precision="STRING" names="string_output"> | |
<dim>-1</dim> | |
</port> | |
</output> | |
</layer> | |
<layer id="10" name="Result_202" type="Result" version="opset1"> | |
<input> | |
<port id="0" precision="STRING"> | |
<dim>-1</dim> | |
</port> | |
</input> | |
</layer> | |
</layers> | |
<edges> | |
<edge from-layer="0" from-port="0" to-layer="1" to-port="0" /> | |
<edge from-layer="1" from-port="1" to-layer="4" to-port="0" /> | |
<edge from-layer="2" from-port="0" to-layer="3" to-port="0" /> | |
<edge from-layer="3" from-port="1" to-layer="4" to-port="1" /> | |
<edge from-layer="3" from-port="2" to-layer="4" to-port="2" /> | |
<edge from-layer="3" from-port="3" to-layer="4" to-port="3" /> | |
<edge from-layer="4" from-port="4" to-layer="5" to-port="0" /> | |
<edge from-layer="4" from-port="5" to-layer="5" to-port="1" /> | |
<edge from-layer="4" from-port="6" to-layer="5" to-port="2" /> | |
<edge from-layer="4" from-port="7" to-layer="5" to-port="3" /> | |
<edge from-layer="4" from-port="8" to-layer="5" to-port="4" /> | |
<edge from-layer="5" from-port="5" to-layer="8" to-port="0" /> | |
<edge from-layer="5" from-port="6" to-layer="8" to-port="1" /> | |
<edge from-layer="5" from-port="7" to-layer="8" to-port="2" /> | |
<edge from-layer="6" from-port="0" to-layer="8" to-port="3" /> | |
<edge from-layer="7" from-port="0" to-layer="8" to-port="4" /> | |
<edge from-layer="8" from-port="5" to-layer="9" to-port="0" /> | |
<edge from-layer="8" from-port="6" to-layer="9" to-port="1" /> | |
<edge from-layer="8" from-port="7" to-layer="9" to-port="2" /> | |
<edge from-layer="9" from-port="3" to-layer="10" to-port="0" /> | |
</edges> | |
<rt_info> | |
<bos_token_id value="128000" /> | |
<chat_template value="{{- bos_token }} {%- if custom_tools is defined %} {%- set tools = custom_tools %} {%- endif %} {%- if not tools_in_user_message is defined %} {%- set tools_in_user_message = true %} {%- endif %} {%- if not date_string is defined %} {%- if strftime_now is defined %} {%- set date_string = strftime_now("%d %b %Y") %} {%- else %} {%- set date_string = "26 Jul 2024" %} {%- endif %} {%- endif %} {%- if not tools is defined %} {%- set tools = none %} {%- endif %} {#- This block extracts the system message, so we can slot it into the right place. #} {%- if messages[0]['role'] == 'system' %} {%- set system_message = messages[0]['content']|trim %} {%- set messages = messages[1:] %} {%- else %} {%- set system_message = "" %} {%- endif %} {#- System message #} {{- "<|start_header_id|>system<|end_header_id|>\n\n" }} {%- if tools is not none %} {{- "Environment: ipython\n" }} {%- endif %} {{- "Cutting Knowledge Date: December 2023\n" }} {{- "Today Date: " + date_string + "\n\n" }} {%- if tools is not none and not tools_in_user_message %} {{- "You have access to the following functions. To call a function, please respond with JSON for a function call." }} {{- 'Respond in the format {"name": function name, "parameters": dictionary of argument name and its value}.' }} {{- "Do not use variables.\n\n" }} {%- for t in tools %} {{- t | tojson(indent=4) }} {{- "\n\n" }} {%- endfor %} {%- endif %} {{- system_message }} {{- "<|eot_id|>" }} {#- Custom tools are passed in a user message with some extra guidance #} {%- if tools_in_user_message and not tools is none %} {#- Extract the first user message so we can plug it in here #} {%- if messages | length != 0 %} {%- set first_user_message = messages[0]['content']|trim %} {%- set messages = messages[1:] %} {%- else %} {{- raise_exception("Cannot put tools in the first user message when there's no first user message!") }} {%- endif %} {{- '<|start_header_id|>user<|end_header_id|>\n\n' -}} {{- "Given the following functions, please respond with a JSON for a function call " }} {{- "with its proper arguments that best answers the given prompt.\n\n" }} {{- 'Respond in the format {"name": function name, "parameters": dictionary of argument name and its value}.' }} {{- "Do not use variables.\n\n" }} {%- for t in tools %} {{- t | tojson(indent=4) }} {{- "\n\n" }} {%- endfor %} {{- first_user_message + "<|eot_id|>"}} {%- endif %} {%- for message in messages %} {%- if not (message.role == 'ipython' or message.role == 'tool' or 'tool_calls' in message) %} {{- '<|start_header_id|>' + message['role'] + '<|end_header_id|>\n\n'+ message['content'] | trim + '<|eot_id|>' }} {%- elif 'tool_calls' in message %} {%- if not message.tool_calls|length == 1 %} {{- raise_exception("This model only supports single tool-calls at once!") }} {%- endif %} {%- set tool_call = message.tool_calls[0].function %} {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' -}} {{- '{"name": "' + tool_call.name + '", ' }} {{- '"parameters": ' }} {{- tool_call.arguments | tojson }} {{- "}" }} {{- "<|eot_id|>" }} {%- elif message.role == "tool" or message.role == "ipython" %} {{- "<|start_header_id|>ipython<|end_header_id|>\n\n" }} {%- if message.content is mapping or message.content is iterable %} {{- message.content | tojson }} {%- else %} {{- message.content }} {%- endif %} {{- "<|eot_id|>" }} {%- endif %} {%- endfor %} {%- if add_generation_prompt %} {{- '<|start_header_id|>assistant<|end_header_id|>\n\n' }} {%- endif %} " /> | |
<eos_token_id value="128009" /> | |
<original_tokenizer_class value="<class 'transformers.tokenization_utils_fast.PreTrainedTokenizerFast'>" /> | |
</rt_info> | |
</net> | |