bofenghuang
commited on
Commit
·
ca0c8d6
1
Parent(s):
b77ad27
Update system messages
Browse files- README.md +43 -0
- tokenizer_config.json +1 -1
README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
---
|
|
|
2 |
language: fr
|
3 |
pipeline_tag: text-generation
|
4 |
inference:
|
@@ -17,8 +18,42 @@ For more information, please visit the [Github repository](https://github.com/bo
|
|
17 |
|
18 |
**License**: A significant portion of the training data is distilled from GPT-3.5-Turbo and GPT-4, kindly use it cautiously to avoid any violations of OpenAI's [terms of use](https://openai.com/policies/terms-of-use).
|
19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
## Usage
|
21 |
|
|
|
|
|
22 |
```python
|
23 |
from typing import Dict, List, Optional
|
24 |
import torch
|
@@ -104,3 +139,11 @@ response, history = chat("Écris une histoire imaginative qui met en scène une
|
|
104 |
#
|
105 |
# Les habitants de la forêt décidèrent de lui décerner le titre d'"athlète le plus courageux" pour sa performance incroyable. Quant à Lapin Rapide, il fut content de sa deuxième place, se disant simplement que les pauses étaient bien plus agréables que la compétition. Et tous vécurent heureux et satisfaits de cette course mémorable.
|
106 |
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
---
|
2 |
+
license: apache-2.0
|
3 |
language: fr
|
4 |
pipeline_tag: text-generation
|
5 |
inference:
|
|
|
18 |
|
19 |
**License**: A significant portion of the training data is distilled from GPT-3.5-Turbo and GPT-4, kindly use it cautiously to avoid any violations of OpenAI's [terms of use](https://openai.com/policies/terms-of-use).
|
20 |
|
21 |
+
## Prompt Template
|
22 |
+
|
23 |
+
We used a prompt template adapted from the chat format of Llama-2.
|
24 |
+
|
25 |
+
You can apply this formatting using the [chat template](https://huggingface.co/docs/transformers/main/chat_templating) through the `apply_chat_template()` method.
|
26 |
+
|
27 |
+
```python
|
28 |
+
from transformers import AutoTokenizer
|
29 |
+
|
30 |
+
tokenizer = AutoTokenizer.from_pretrained("bofenghuang/vigostral-7b-chat")
|
31 |
+
|
32 |
+
conversation = [
|
33 |
+
{"role": "user", "content": "Bonjour ! Comment ça va aujourd'hui ?"},
|
34 |
+
{"role": "assistant", "content": "Bonjour ! Je suis une IA, donc je n'ai pas de sentiments, mais je suis prêt à vous aider. Comment puis-je vous assister aujourd'hui ?"},
|
35 |
+
{"role": "user", "content": "Quelle est la hauteur de la Tour Eiffel ?"},
|
36 |
+
{"role": "assistant", "content": "La Tour Eiffel mesure environ 330 mètres de hauteur."},
|
37 |
+
{"role": "user", "content": "Comment monter en haut ?"},
|
38 |
+
]
|
39 |
+
|
40 |
+
print(tokenizer.apply_chat_template(conversation, tokenize=False, add_generation_prompt=True))
|
41 |
+
```
|
42 |
+
|
43 |
+
You will get
|
44 |
+
|
45 |
+
```
|
46 |
+
<s>[INST] <<SYS>>
|
47 |
+
Vous êtes Vigogne, un assistant IA créé par Zaion Lab. Vous suivez extrêmement bien les instructions. Aidez autant que vous le pouvez.
|
48 |
+
<</SYS>>
|
49 |
+
|
50 |
+
Bonjour ! Comment ça va aujourd'hui ? [/INST] Bonjour ! Je suis une IA, donc je n'ai pas de sentiments, mais je suis prêt à vous aider. Comment puis-je vous assister aujourd'hui ? </s>[INST] Quelle est la hauteur de la Tour Eiffel ? [/INST] La Tour Eiffel mesure environ 330 mètres de hauteur. </s>[INST] Comment monter en haut ? [/INST]
|
51 |
+
```
|
52 |
+
|
53 |
## Usage
|
54 |
|
55 |
+
### Inference using the unquantized model with 🤗 Transformers
|
56 |
+
|
57 |
```python
|
58 |
from typing import Dict, List, Optional
|
59 |
import torch
|
|
|
139 |
#
|
140 |
# Les habitants de la forêt décidèrent de lui décerner le titre d'"athlète le plus courageux" pour sa performance incroyable. Quant à Lapin Rapide, il fut content de sa deuxième place, se disant simplement que les pauses étaient bien plus agréables que la compétition. Et tous vécurent heureux et satisfaits de cette course mémorable.
|
141 |
```
|
142 |
+
|
143 |
+
You can also use the Google Colab Notebook provided below.
|
144 |
+
|
145 |
+
<a href="https://colab.research.google.com/github/bofenghuang/vigogne/blob/main/notebooks/infer_chat.ipynb" target="_blank"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/></a>
|
146 |
+
|
147 |
+
## Limitations
|
148 |
+
|
149 |
+
Vigogne is still under development, and there are many limitations that have to be addressed. Please note that it is possible that the model generates harmful or biased content, incorrect information or generally unhelpful answers.
|
tokenizer_config.json
CHANGED
@@ -29,7 +29,7 @@
|
|
29 |
},
|
30 |
"additional_special_tokens": [],
|
31 |
"bos_token": "<s>",
|
32 |
-
"chat_template": "{{ bos_token }}{% if messages[0]['role'] == 'system' %}{% set loop_messages = messages[1:] %}{% set system_message = messages[0]['content'] %}{% elif true == true and not '<<SYS>>' in messages[0]['content'] %}{% set loop_messages = messages %}{% set system_message = 'Vous êtes
|
33 |
"clean_up_tokenization_spaces": false,
|
34 |
"eos_token": "</s>",
|
35 |
"legacy": true,
|
|
|
29 |
},
|
30 |
"additional_special_tokens": [],
|
31 |
"bos_token": "<s>",
|
32 |
+
"chat_template": "{{ bos_token }}{% if messages[0]['role'] == 'system' %}{% set loop_messages = messages[1:] %}{% set system_message = messages[0]['content'] %}{% elif true == true and not '<<SYS>>' in messages[0]['content'] %}{% set loop_messages = messages %}{% set system_message = 'Vous êtes Vigogne, un assistant IA créé par Zaion Lab. Vous suivez extrêmement bien les instructions. Aidez autant que vous le pouvez.' %}{% else %}{% set loop_messages = messages %}{% set system_message = false %}{% endif %}{% for message in loop_messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if loop.index0 == 0 and system_message != false %}{% set content = '<<SYS>>\\n' + system_message + '\\n<</SYS>>\\n\\n' + message['content'] %}{% else %}{% set content = message['content'] %}{% endif %}{% if message['role'] == 'user' %}{{ '[INST] ' + content.strip() + ' [/INST]' }}{% elif message['role'] == 'system' %}{{ '<<SYS>>\\n' + content.strip() + '\\n<</SYS>>\\n\\n' }}{% elif message['role'] == 'assistant' %}{{ ' ' + content.strip() + ' ' + eos_token }}{% endif %}{% endfor %}",
|
33 |
"clean_up_tokenization_spaces": false,
|
34 |
"eos_token": "</s>",
|
35 |
"legacy": true,
|