bofenghuang commited on
Commit
ab3134e
1 Parent(s): d595235

Add README.md

Browse files
Files changed (2) hide show
  1. .gitignore +3 -0
  2. README.md +97 -0
.gitignore ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ checkpoint-*/
2
+
3
+ tmp*
README.md ADDED
@@ -0,0 +1,97 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: mit
3
+ language: fr
4
+ thumbnail: null
5
+ ---
6
+
7
+ # Vigogne: French Instruct LLaMA
8
+
9
+ This repo contains a low-rank adapter for LLaMA-7b fit on the [Stanford Alpaca](https://github.com/tatsu-lab/stanford_alpaca) dataset.
10
+
11
+ Instructions for running it can be found at https://github.com/tloen/alpaca-lora.
12
+
13
+
14
+ ## Usage
15
+
16
+ ```python
17
+ import torch
18
+ from peft import PeftModel
19
+ from transformers import GenerationConfig, LlamaForCausalLM, LlamaTokenizer
20
+
21
+ PROMPT_DICT = {
22
+ "prompt_input": (
23
+ "Ci-dessous se trouve une instruction qui décrit une tâche, associée à une entrée qui fournit un contexte supplémentaire. Écrivez une réponse qui complète correctement la demande.\n\n"
24
+ "### Instruction:\n{instruction}\n\n### Entrée:\n{input}\n\n### Réponse:\n"
25
+ ),
26
+ "prompt_no_input": (
27
+ "Ci-dessous se trouve une instruction qui décrit une tâche. Écrivez une réponse qui complète correctement la demande.\n\n"
28
+ "### Instruction:\n{instruction}\n\n### Réponse:\n"
29
+ ),
30
+ }
31
+
32
+
33
+ device = "cuda"
34
+
35
+ tokenizer = LlamaTokenizer.from_pretrained("decapoda-research/llama-7b-hf")
36
+ model = LlamaForCausalLM.from_pretrained(
37
+ "decapoda-research/llama-7b-hf",
38
+ load_in_8bit=True,
39
+ torch_dtype=torch.float16,
40
+ device_map="auto",
41
+ )
42
+ model = PeftModel.from_pretrained(
43
+ model,
44
+ "bofenghuang/vigogne-lora-7b",
45
+ torch_dtype=torch.float16,
46
+ )
47
+
48
+
49
+ def instruct(
50
+ instruction,
51
+ input=None,
52
+ temperature=0.1,
53
+ top_p=1.0,
54
+ max_new_tokens=512,
55
+ **kwargs,
56
+ ):
57
+ prompt = (
58
+ PROMPT_DICT["prompt_input"].format_map({"instruction": instruction, "input": input})
59
+ if input is not None
60
+ else PROMPT_DICT["prompt_no_input"].format_map({"instruction": instruction})
61
+ )
62
+ tokenized_inputs = tokenizer(prompt, return_tensors="pt")
63
+ input_ids = tokenized_inputs["input_ids"].to(device)
64
+ generation_config = GenerationConfig(
65
+ temperature=temperature,
66
+ top_p=top_p,
67
+ **kwargs,
68
+ )
69
+ with torch.inference_mode():
70
+ generation_output = model.generate(
71
+ input_ids=input_ids,
72
+ generation_config=generation_config,
73
+ return_dict_in_generate=True,
74
+ output_scores=True,
75
+ max_new_tokens=max_new_tokens,
76
+ )
77
+ s = generation_output.sequences[0]
78
+ output = tokenizer.decode(s)
79
+ return output.split("### Réponse:")[1].strip()
80
+
81
+ # instruct
82
+ instruct("Expliquer le théorème central limite.")
83
+ # Le théorème central limite stipule que la loi de la moyenne des valeurs aléatoires d'une série de variables aléatoires est la loi normale.
84
+ # Cela signifie que la moyenne des valeurs aléatoires d'une série de variables aléatoires tend vers la loi normale, indépendamment de la taille de la série.
85
+
86
+ # instruct + input
87
+ instruct(
88
+ "Traduisez le texte suivant en français.",
89
+ input="Caterpillars extract nutrients which are then converted into butterflies. People have extracted billions of nuggets of understanding and GPT-4 is humanity's butterfly.",
90
+ )
91
+ # Les papillons de nuit extraient des nutriments qui sont ensuite convertis en papillons. Les gens ont extrait des milliards de nuggets de compréhension et GPT-4 est la butterfly de l'humanité.
92
+ ```
93
+
94
+
95
+ ## Todo
96
+ - Add output examples
97
+ - Open source github repo