Tool calls did not work as well as demo
Hi, I deployed your model using the Q4_K_M version and tested it with an elementary function. Here is the prompt that I used
plugins = [
{
"type": "function",
"function": {
"name": "add_two_number",
"description": "add two number x and y",
"parameters": {
"type": "object",
"properties": {
"x": {
"type": "number",
"description": "first number",
"required": True
},
"y": {
"type": "number",
"description": "second number",
"required": True
}
}
}
}
}
]
conversation = [
{"role": "system", "content": "Bạn là một trợ lí AI hữu ích. Hãy giúp đỡ người dùng càng chính xác càng tốt"},
{"role": "plugins", "content": json.dumps(plugins, ensure_ascii=False)},
{"role": "user", "content": "Hãy tính cho công thức sau 2 + 3"}
]
prompt = tokenizer.apply_chat_template(conversation, tokenize=False, add_generation_prompt=False)
payload = json.dumps({
"prompt": prompt,
"n_predict": 1024,
"temperature": 0.0,
"top_k": 40,
"min_p": 0.05,
"top_p": 0.9,
"stop": [],
"n_ctx": 4096,
"seed": 42,
"repeat_penalty": 1.1
})
headers = {
'Content-Type': 'application/json'
}
# I used llama.cpp server
response = requests.request("POST", url, headers=headers, data=payload)
content = response.json()["content"]
print(prompt + content)
Here is the result
<|system|>
Bạn là một trợ lí AI hữu ích. Hãy giúp đỡ người dùng càng chính xác càng tốt</s>
<|plugins|>
[{"type": "function", "function": {"name": "add_two_number", "description": "add two number x and y", "parameters": {"type": "object", "properties": {"x": {"type": "number", "description": "first number", "required": true}, "y": {"type": "number", "description": "second number", "required": true}}}}}]
Standards for using the tool must comply with the following syntax:
[execute]({"type": string, "function": string, "arguments": object})</s>
<|user|>
Hãy tính cho công thức sau 2 + 3</s>
<|assistant|>
[{"type": "func", "func": "add_two_number", "arguments": {"x": 2, "y": 3}}]
Kết quả: 5
Giải thích:
Hàm add_two_number(x, y) tính tổng của hai số x và y.
Trong trường hợp này, x = 2 và y = 3.
Do đó, kết quả là 5.</s>
I couldn't see the [execute]
token/words that you showed in the demo
The reason may be that the compression in version Q4_K_M
has affected the quality of the model.
Below I tried the same thing as you said above with the 4bit quantization via transformers.
I changed more parameters to try and convert numbers into Vietnamese words.
Add one more field, which will return the python code for calculation.
Hope you can try out other versions in the guff
distribution and leave a comment here for everyone to refer to and discuss further about them.
@lamhieu
Oh, I just realized that I downloaded the wrong gguf model. It should be the alpha version not, v0.9.1. My mistake!
The output is correct, just a small mistake in the word function
in the key type
In addition, If I provide the execute
and response
messages, the model cannot generate the <|assistant|>
token unless I set add_generation_prompt=True
in token.apply_chat_template
Here is the output:
# add_generation_prompt=False
<|system|>
Bạn là một trợ lí AI hữu ích. Hãy giúp đỡ người dùng càng chính xác càng tốt</s>
<|plugins|>
[{"type": "function", "function": {"name": "add_two_number", "description": "add two number x and y", "parameters": {"type": "object", "properties": {"x": {"type": "number", "description": "first number", "required": true}, "y": {"type": "number", "description": "second number", "required": true}}}}}]
Standards for using the tool must comply with the following syntax:
[execute]({"type": string, "function": string, "arguments": object})</s>
<|user|>
Hãy tính cho công thức sau 2 + 3</s>
<|assistant|>
[execute]({"type": "function", "function": "add_two_number", "arguments": {"x": 2, "y": 3}})<//></s>
<|tool|>
{"result": 5}</s>
<|user|>
Hãy tính cho công thức sau 4 + 5 + 6</s>
# add_generation_prompt=True
<|system|>
Bạn là một trợ lí AI hữu ích. Hãy giúp đỡ người dùng càng chính xác càng tốt</s>
<|plugins|>
[{"type": "function", "function": {"name": "add_two_number", "description": "add two number x and y", "parameters": {"type": "object", "properties": {"x": {"type": "number", "description": "first number", "required": true}, "y": {"type": "number", "description": "second number", "required": true}}}}}]
Standards for using the tool must comply with the following syntax:
[execute]({"type": string, "function": string, "arguments": object})</s>
<|user|>
Hãy tính cho công thức sau 2 + 3</s>
<|assistant|>
[execute]({"type": "function", "function": "add_two_number", "arguments": {"x": 2, "y": 3}})<//></s>
<|tool|>
{"result": 5}</s>
<|assistant|>
Kết quả của phép tính là 5.</s>
Glad to see it was useful to you.
@lamhieu Yeah! Your model is great but it needs to be trained more for this task. I just found a bug
<|system|>
Bạn là một trợ lí AI hữu ích. Hãy giúp đỡ người dùng càng chính xác càng tốt</s>
<|plugins|>
[{"type": "function", "function": {"name": "add_two_number", "description": "add two number x and y", "parameters": {"type": "object", "properties": {"x": {"type": "number", "description": "first number", "required": true}, "y": {"type": "number", "description": "second number", "required": true}}}}}]
Standards for using the tool must comply with the following syntax:
[execute]({"type": string, "function": string, "arguments": object})</s>
<|user|>
Hãy tính cho công thức sau 2 + 3</s>
<|assistant|>
[execute]({"type": "funcition", "function": "add_two_number", "arguments": {"x": 2, "y": 3}})<//></s>
<|tool|>
{"results": 5}</s>
<|assistant|>
Kết quả của phép tính là 5.</s></s>
<|user|>
Vậy tổng của 5000 và 4929 bằng bao nhiêu ?</s>
<|assistant|>
[execute]({"type": "funcition", "function": "add_two_number", "arguments": {"x": 5000, "y": 4929}})<//></s>
<|tool|>
{"results": 9929}</s>
<|assistant|>
Tổng của 5000 và 4929 bằng 9929.</s></s>
<|user|>
Cảm ơn nhé</s>
<|assistant|>
Không có gì, bạn cần thêm gì nữa không ?</s></s>
<|user|>
Hồ Chí Minh là ai ?</s>
<|assistant|>
[execute]({"type": "funcition", "function": "who_is_ho_chi_minh", "arguments": {}}) <//>
**Hồ Chí Minh (1890-1969)** là một nhà lãnh tụ cách mạng, chính trị gia và nhà hoạt động xã hội Việt Nam. Ông là người sáng lập và lãnh tổ Đảng Cộng sản Việt Nam, Chủ tịch nước Cộng hòa miền Nam Việt Nam (1954-1969), Chủ tịch nước Cộng hòa miền Bắc Việt Nam (1945-1946) và Tổng Bí thư Ban Chấp hành Trung ương Đảng Cộng sản Việt Nam (1941-1969). Hồ Chí Minh được coi là một trong những nhân vật quan trọng nhất trong lịch sử Việt Nam, cũng như là một nhà lãnh tụ vĩ đại thế giới.</s></s>
For longer conversations, it cannot handle function as well as a single turn anymore. Hallucination happens and the results are messed up.
Anyway, thanks for your contribution !!!
Yes, "<//>" can be used to stop earlier when generating text. If I know about this problem, I will offer a more practical solution. Many thanks ~
But if you look again, why does </s></s>
appear? It could be something wrong when you use it.