Views
No views yet
1from awq import AutoAWQForCausalLM
2import pandas as pd
3from transformers import AutoTokenizer
4from tqdm.auto import tqdm
5
6pretrained_model_dir = '/workspace/llm_training/axolotl/mixtral_8x22B_training/merged_model_multiling'
7quantized_model_dir = '/workspace/llm_training/axolotl/mixtral_8x22B_training/merged_model_multiling-awq'
8
9# The samne dataset as in lightblue/gpt4_conversations_multilingual
10df = pd.read_json(
11 "/workspace/llm_training/axolotl/mixtral_8x22B_training/sharegpt4_multilingual.json",
12 lines=True)
13
14role_map = {
15 "human": "user",
16 "gpt": "assistant",
17}
18
19df["messages"] = df.conversations.apply(lambda x: [{"role": role_map[y["from"]], "content": y["value"]} for y in x])
20
21tokenizer = AutoTokenizer.from_pretrained(pretrained_model_dir, use_fast=True)
22examples = [
23 tokenizer.apply_chat_template(
24 x, tokenize=False, add_generation_prompt=False
25 ) for x in tqdm(df["messages"])
26]
27
28model_path = '/workspace/llm_training/axolotl/mixtral_8x22B_training/merged_model_multiling'
29quant_path = '/workspace/llm_training/axolotl/mixtral_8x22B_training/merged_model_multiling-awq'
30quant_config = { "zero_point": True, "q_group_size": 128, "w_bit": 4, "version": "GEMM" }
31
32# Load model
33model = AutoAWQForCausalLM.from_pretrained(model_path)
34tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
35
36# Quantize
37model.quantize(tokenizer, quant_config=quant_config, calib_data=examples)
38
39# Save quantized model
40model.save_quantized(quant_path)
41tokenizer.save_pretrained(quant_path)
42