File size: 3,129 Bytes
e6f19aa
 
405bcc8
 
 
 
 
 
 
 
 
 
 
e6f19aa
405bcc8
 
 
 
 
89484af
ae136f6
 
405bcc8
 
 
 
 
 
 
 
 
 
 
 
49589d0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
405bcc8
49589d0
9e17072
 
49589d0
405bcc8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
9e17072
405bcc8
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
---
library_name: transformers
tags:
- text-generation-inference
- transformers
- unsloth
- mistral
- trl
license: apache-2.0
language:
- en
- vi
base_model: Viet-Mistral/Vistral-7B-Chat
---
## Model Description

This model was fine-tuned on Vistral-7B-chat for function calling.

## Usage

You can find GGUF model here: https://huggingface.co/hiieu/Vistral-7B-Chat-function-calling-gguf

```python
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained('hiieu/Vistral-7B-Chat-function-calling')
model = AutoModelForCausalLM.from_pretrained(
    'hiieu/Vistral-7B-Chat-function-calling',
    torch_dtype=torch.bfloat16, # change to torch.float16 if you're using V100
    device_map="auto",
    use_cache=True,
)

functions_metadata = [
    {
      "type": "function",
      "function": {
        "name": "get_temperature",
        "description": "get temperature of a city",
        "parameters": {
          "type": "object",
          "properties": {
            "city": {
              "type": "string",
              "description": "name"
            }
          },
          "required": [
            "city"
          ]
        }
      }
    }
]

conversation = [
    {"role": "system", "content": f"""Bạn là một trợ lý hữu ích có quyền truy cập vào các chức năng sau. Sử dụng chúng nếu cần -\n{str(functions_metadata)} Để sử dụng các chức năng này, hãy phản hồi với:\n<functioncall> {{\\"name\\": \\"function_name\\", \\"arguments\\": {{\\"arg_1\\": \\"value_1\\", \\"arg_1\\": \\"value_1\\", ...}} }} </functioncall>\n\nTrường hợp đặc biệt bạn phải xử lý:\n - Nếu không có chức năng nào khớp với yêu cầu của người dùng, bạn sẽ phản hồi một cách lịch sự rằng bạn không thể giúp được.""" },
    {"role": "user", "content": "Thời tiết ở Hà Nội đang là bao nhiêu độ"},
    {"role": "assistant", "content": """<functioncall> {"name": "get_temperature", "arguments": '{"city": "Hà Nội"}'} </functioncall>"""},
    {"role": "user", "content": """<function_response> {"temperature" : "20 C"} </function_response>"""},
]

input_ids = tokenizer.apply_chat_template(conversation, return_tensors="pt").to(model.device)

out_ids = model.generate(
    input_ids=input_ids,
    max_new_tokens=768,
    do_sample=True,
    top_p=0.95,
    top_k=40,
    temperature=0.1,
    repetition_penalty=1.05,
)
assistant = tokenizer.batch_decode(out_ids[:, input_ids.size(1): ], skip_special_tokens=True)[0].strip()
print("Assistant: ", assistant) 
# >> Assistant:  Thời tiết ở Hà Nội hiện tại là khoảng 20 độ C.
```

# Uploaded  model

- **Developed by:** hiieu
- **License:** apache-2.0
- **Finetuned from model :** Viet-Mistral/Vistral-7B-Chat

This mistral model was trained 2x faster with [Unsloth](https://github.com/unslothai/unsloth) and Huggingface's TRL library.

[<img src="https://raw.githubusercontent.com/unslothai/unsloth/main/images/unsloth%20made%20with%20love.png" width="200"/>](https://github.com/unslothai/unsloth)