Qwen2.5-Sex 是基于 Qwen2.5-1.5B-Instruct 微调的模型,主要训练于大量色情文学作品及敏感数据集。由于数据集主要为中文,模型在处理中文文本时效果更佳。
1from transformers import AutoModelForCausalLM, AutoTokenizer
2import torch
3import os
4
5# 可调参数,建议在文本生成时设置为较高值(温度不要太高)
6TOP_P = 0.9 # Top-p (nucleus sampling),范围0到1
7TOP_K = 80 # Top-k 采样的K值
8TEMPERATURE = 0.3 # 温度参数,控制生成文本的随机性
9
10device = "cuda" if torch.cuda.is_available() else "cpu"
11
12# 获取当前脚本目录,亦可改为绝对路径
13current_directory = os.path.dirname(os.path.abspath(__file__))
14
15# 加载模型和分词器
16model = AutoModelForCausalLM.from_pretrained(
17 current_directory,
18 torch_dtype="auto",
19 device_map="auto"
20)
21tokenizer = AutoTokenizer.from_pretrained(current_directory)
22
23# 系统指令(建议为空)
24messages = [
25 {"role": "system", "content": ""}
26]
27
28while True:
29 # 获取用户输入
30 user_input = input("User: ").strip()
31
32 # 添加用户输入到对话
33 messages.append({"role": "user", "content": user_input})
34
35 # 准备输入文本
36 text = tokenizer.apply_chat_template(
37 messages,
38 tokenize=False,
39 add_generation_prompt=True
40 )
41 model_inputs = tokenizer([text], return_tensors="pt").to(device)
42
43 # 生成响应
44 generated_ids = model.generate(
45 model_inputs.input_ids,
46 max_new_tokens=512,
47 top_p=TOP_P,
48 top_k=TOP_K,
49 temperature=TEMPERATURE,
50 do_sample=True,
51 pad_token_id=tokenizer.eos_token_id # 避免警告
52 )
53 generated_ids = [
54 output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
55 ]
56
57 # 解码并打印响应
58 response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
59 print(f"Assistant: {response}")
60
61 # 将生成的响应添加到对话中
62 messages.append({"role": "assistant", "content": response})
63
Qwen2-Sex 模型使用了大量色情文学和敏感数据集进行微调,这些数据集涵盖道德、法律、色情及暴力等主题。由于微调数据集为中文,模型在处理中文时表现更佳。如欲进一步了解,可通过以下链接获取: