Views
No views yet

<s>[INST] <<SYS>>
Vous êtes Vigogne, un assistant IA créé par Zaion Lab. Vous suivez extrêmement bien les instructions. Aidez autant que vous le pouvez.
<</SYS>>
{prompt} [/INST]
| Branch | Bits | GS | AWQ Dataset | Seq Len | Size |
|---|---|---|---|---|---|
| main | 4 | 128 | French news | 4096 | 4.15 GB |
TheBloke/Vigostral-7B-Chat-AWQ.Vigostral-7B-Chat-AWQ--quantization awq parameter.python3 python -m vllm.entrypoints.api_server --model TheBloke/Vigostral-7B-Chat-AWQ --quantization awqquantization=awq.1from vllm import LLM, SamplingParams
2
3prompts = [
4 "Tell me about AI",
5 "Write a story about llamas",
6 "What is 291 - 150?",
7 "How much wood would a woodchuck chuck if a woodchuck could chuck wood?",
8]
9prompt_template=f'''<s>[INST] <<SYS>>
10Vous êtes Vigogne, un assistant IA créé par Zaion Lab. Vous suivez extrêmement bien les instructions. Aidez autant que vous le pouvez.
11<</SYS>>
12
13{prompt} [/INST]
14'''
15
16prompts = [prompt_template.format(prompt=prompt) for prompt in prompts]
17
18sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
19
20llm = LLM(model="TheBloke/Vigostral-7B-Chat-AWQ", quantization="awq", dtype="auto")
21
22outputs = llm.generate(prompts, sampling_params)
23
24# Print the outputs.
25for output in outputs:
26 prompt = output.prompt
27 generated_text = output.outputs[0].text
28 print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")ghcr.io/huggingface/text-generation-inference:1.1.0--model-id TheBloke/Vigostral-7B-Chat-AWQ --port 3000 --quantize awq --max-input-length 3696 --max-total-tokens 4096 --max-batch-prefill-tokens 4096pip3 install huggingface-hub1from huggingface_hub import InferenceClient
2
3endpoint_url = "https://your-endpoint-url-here"
4
5prompt = "Tell me about AI"
6prompt_template=f'''<s>[INST] <<SYS>>
7Vous êtes Vigogne, un assistant IA créé par Zaion Lab. Vous suivez extrêmement bien les instructions. Aidez autant que vous le pouvez.
8<</SYS>>
9
10{prompt} [/INST]
11'''
12
13client = InferenceClient(endpoint_url)
14response = client.text_generation(prompt,
15 max_new_tokens=128,
16 do_sample=True,
17 temperature=0.7,
18 top_p=0.95,
19 top_k=40,
20 repetition_penalty=1.1)
21
22print(f"Model output: ", response)pip3 install autoawq1pip3 uninstall -y autoawq
2git clone https://github.com/casper-hansen/AutoAWQ
3cd AutoAWQ
4pip3 install .1from awq import AutoAWQForCausalLM
2from transformers import AutoTokenizer
3
4model_name_or_path = "TheBloke/Vigostral-7B-Chat-AWQ"
5
6# Load tokenizer
7tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, trust_remote_code=False)
8# Load model
9model = AutoAWQForCausalLM.from_quantized(model_name_or_path, fuse_layers=True,
10 trust_remote_code=False, safetensors=True)
11
12prompt = "Tell me about AI"
13prompt_template=f'''<s>[INST] <<SYS>>
14Vous êtes Vigogne, un assistant IA créé par Zaion Lab. Vous suivez extrêmement bien les instructions. Aidez autant que vous le pouvez.
15<</SYS>>
16
17{prompt} [/INST]
18'''
19
20print("*** Running model.generate:")
21
22token_input = tokenizer(
23 prompt_template,
24 return_tensors='pt'
25).input_ids.cuda()
26
27# Generate output
28generation_output = model.generate(
29 token_input,
30 do_sample=True,
31 temperature=0.7,
32 top_p=0.95,
33 top_k=40,
34 max_new_tokens=512
35)
36
37# Get the tokens from the output, decode them, print them
38token_output = generation_output[0]
39text_output = tokenizer.decode(token_output)
40print("LLM output: ", text_output)
41
42"""
43# Inference should be possible with transformers pipeline as well in future
44# But currently this is not yet supported by AutoAWQ (correct as of September 25th 2023)
45from transformers import pipeline
46
47print("*** Pipeline:")
48pipe = pipeline(
49 "text-generation",
50 model=model,
51 tokenizer=tokenizer,
52 max_new_tokens=512,
53 do_sample=True,
54 temperature=0.7,
55 top_p=0.95,
56 top_k=40,
57 repetition_penalty=1.1
58)
59
60print(pipe(prompt_template)[0]['generated_text'])
61"""Loader: AutoAWQ.apply_chat_template() method.1from transformers import AutoTokenizer
2
3tokenizer = AutoTokenizer.from_pretrained("bofenghuang/vigostral-7b-chat")
4
5conversation = [
6 {"role": "user", "content": "Bonjour ! Comment ça va aujourd'hui ?"},
7 {"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 ?"},
8 {"role": "user", "content": "Quelle est la hauteur de la Tour Eiffel ?"},
9 {"role": "assistant", "content": "La Tour Eiffel mesure environ 330 mètres de hauteur."},
10 {"role": "user", "content": "Comment monter en haut ?"},
11]
12
13print(tokenizer.apply_chat_template(conversation, tokenize=False, add_generation_prompt=True))<s>[INST] <<SYS>>
Vous êtes Vigogne, un assistant IA créé par Zaion Lab. Vous suivez extrêmement bien les instructions. Aidez autant que vous le pouvez.
<</SYS>>
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]1from typing import Dict, List, Optional
2import torch
3from transformers import AutoModelForCausalLM, AutoTokenizer, GenerationConfig, TextStreamer
4
5model_name_or_path = "bofenghuang/vigostral-7b-chat"
6tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, padding_side="right", use_fast=False)
7model = AutoModelForCausalLM.from_pretrained(model_name_or_path, torch_dtype=torch.float16, device_map="auto")
8
9streamer = TextStreamer(tokenizer, timeout=10.0, skip_prompt=True, skip_special_tokens=True)
10
11
12def chat(
13 query: str,
14 history: Optional[List[Dict]] = None,
15 temperature: float = 0.7,
16 top_p: float = 1.0,
17 top_k: float = 0,
18 repetition_penalty: float = 1.1,
19 max_new_tokens: int = 1024,
20 **kwargs,
21):
22 if history is None:
23 history = []
24
25 history.append({"role": "user", "content": query})
26
27 input_ids = tokenizer.apply_chat_template(history, return_tensors="pt").to(model.device)
28 input_length = input_ids.shape[1]
29
30 generated_outputs = model.generate(
31 input_ids=input_ids,
32 generation_config=GenerationConfig(
33 temperature=temperature,
34 do_sample=temperature > 0.0,
35 top_p=top_p,
36 top_k=top_k,
37 repetition_penalty=repetition_penalty,
38 max_new_tokens=max_new_tokens,
39 pad_token_id=tokenizer.eos_token_id,
40 **kwargs,
41 ),
42 streamer=streamer,
43 return_dict_in_generate=True,
44 )
45
46 generated_tokens = generated_outputs.sequences[0, input_length:]
47 generated_text = tokenizer.decode(generated_tokens, skip_special_tokens=True)
48
49 history.append({"role": "assistant", "content": generated_text})
50
51 return generated_text, history
52
53# 1st round
54response, history = chat("Un escargot parcourt 100 mètres en 5 heures. Quelle est sa vitesse ?", history=None)
55# Pour calculer la vitesse d'un escargot qui parcourt 100 mètres en 5 heures, nous devons diviser la distance parcourue par le temps écoulé. Voici comment procédons :
56#
57# Vitesse = Distance / Temps
58#
59# Dans ce cas, la distance est de 100 mètres et le temps est de 5 heures. Donc, nous avons :
60#
61# Vitesse = 100 mètres / 5 heures
62# Vitesse = 20 mètres par heure
63#
64# L'escargot parcourt donc une vitesse de 20 mètres par heure.
65
66# 2nd round
67response, history = chat("Quand il peut dépasser le lapin ?", history=history)
68# Malheureusement, je ne peux pas répondre à cette question car elle contient des informations inexactes ou incorrectes. La vitesse de l'escargot est de 20 mètres par heure, tandis que la vitesse du lapin n'est pas mentionnée dans votre question initiale. Pour comparer les vitesses des deux animaux, nous aurions besoin de connaître la vitesse du lapin.
69
70# 3rd round
71response, history = chat("Écris une histoire imaginative qui met en scène une compétition de course entre un escargot et un lapin.", history=history)
72# Il était une fois deux athlètes extraordinaires : un escargot nommé Escargo et un lapin appelé Lapin Rapide. Un jour, ils ont décidé de participer à une grande course pour déterminer qui était le plus rapide des deux. Tout le monde était curieux de savoir qui serait le gagnant, car ils étaient tous émerveillés par la vitesse de ces deux champions.
73#
74# La course commença dans une forêt dense, avec Escargo départageant un peu lentement, car il faut être prudent lorsqu'on est escargot. Mais au fur et à mesure qu'il avançait, il commença à ralentir encore plus. Les spectateurs commencèrent à pencher pour Lapin Rapide, qui fonçait rapidement vers la ligne d'arrivée.
75#
76# Mais soudain, Escargo se transforma en une force incroyable. Au lieu de marcher lentement comme un escargot, il courait à toute allure, faisant preuve d'une vitesse surprenante. Les spectateurs essayaient de se remémorer leurs notes de mathématiques pour calculer sa vélocité actuelle.
77#
78# Pendant ce temps, Lapin Rapide ralentissait légèrement, trouvant l'air frais trop confortable pour continuer à courir aussi vite. Il décida alors de prendre quelques pauses pour profiter de son environnement.
79#
80# Escargo continuait à courir à toute vitesse, en dépit de son handicap d'être un escargot. Les spectateurs étaient émerveillés par sa persévérance et sa volonté de gagner. Finalement, Escargo franchit la ligne d'arrivée en premier, et tous criaurent en joie.
81#
82# 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.1# Install vLLM
2# This may take 5-10 minutes.
3# pip install vllm
4
5# Start server for Vigostral-Chat models
6python -m vllm.entrypoints.openai.api_server --model bofenghuang/vigostral-7b-chat
7
8# List models
9# curl http://localhost:8000/v1/models1import openai
2
3# Modify OpenAI's API key and API base to use vLLM's API server.
4openai.api_key = "EMPTY"
5openai.api_base = "http://localhost:8000/v1"
6
7# First model
8models = openai.Model.list()
9model = models["data"][0]["id"]
10
11# Chat completion API
12chat_completion = openai.ChatCompletion.create(
13 model=model,
14 messages=[
15 {"role": "user", "content": "Parle-moi de toi-même."},
16 ],
17 max_tokens=1024,
18 temperature=0.7,
19)
20print("Chat completion results:", chat_completion)