InsTag基于Qwen-1_8B训练的中英文指令标签标注器
使用方法
参考通义千问官方repo使用vllm+fastchat进行推理,离线推理方法示例如下:
from vllm import LLM, SamplingParams
from fastchat.llm_judge.common import load_questions, temperature_config
from fastchat.model import load_model, get_conversation_template
import torch
model_id = "qwen-1p8b-tagger"
model_path = "/path/to/model/"
# Load model with vLLM
model = LLM(model=model_path, trust_remote_code=True)
# Setting greedy decoding with temperature=0
sampling_params = SamplingParams(temperature=0, max_tokens=512)
torch.manual_seed(0)
prompts = []
conv = get_conversation_template(model_id)
conv.append_message(conv.roles[0], "hi who are you")
conv.append_message(conv.roles[1], None)
prompt = conv.get_prompt()
prompts.append(prompt)
outputs = model.generate(prompts, sampling_params)
for output in outputs:
output_ids = output.outputs[0].token_ids
# be consistent with the template's stop_token_ids
if conv.stop_token_ids:
stop_token_ids_index = [
i
for i, id in enumerate(output_ids)
if id in conv.stop_token_ids
]
if len(stop_token_ids_index) > 0:
output_ids = output_ids[: stop_token_ids_index[0]]
output = model.get_tokenizer().decode(
output_ids,
spaces_between_special_tokens=False,
)
if conv.stop_str and output.find(conv.stop_str) > 0:
output = output[: output.find(conv.stop_str)]
for special_token in model.get_tokenizer().special_tokens_map.values():
if isinstance(special_token, list):
for special_tok in special_token:
output = output.replace(special_tok, "")
else:
output = output.replace(special_token, "")
output = output.strip()
print(output)
Clone with HTTP
git clone https://www.modelscope.cn/lukeminglkm/instagger_qwen1_8B.git
评论