wangkevin02 commited on
Commit
fe278a5
·
verified ·
1 Parent(s): 55c2167

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +79 -3
README.md CHANGED
@@ -1,3 +1,79 @@
1
- ---
2
- license: mit
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # AI Detect Model
2
+
3
+ ## Model Description
4
+
5
+ The **AI Detect Model** is a binary classification model designed to determine whether a given text is AI-generated (label=1) or written by a human (label=0). This model plays a crucial role in providing AI detection rewards, helping to prevent reward hacking during Reinforcement Learning with Cycle Consistency (RLCC). For more details, please refer to [our paper](https://tongyi.aliyun.com/qianwen/?sessionId=ea3bbcf36a2346a0a7819b06fcb36a1c#).
6
+
7
+ This model is built upon the [Longformer](https://huggingface.co/allenai/longformer-base-4096) architecture and trained using our proprietary [LMSYS-USP](https://huggingface.co/datasets/wangkevin02/LMSYS-USP) dataset. Specifically, in a dialogue context, texts generated by the assistant are labeled as AI-generated (label=1), while user-generated texts are assigned the opposite label (label=0).
8
+
9
+ > *Note*: Our model is subject to the following constraints:
10
+ >
11
+ > 1. **Maximum Context Length**: Supports up to **4,096 tokens**. Exceeding this may degrade performance; keep inputs within this limit for best results.
12
+ > 2. **Language Limitation**: Optimized for English. Non-English performance may vary due to limited training data.
13
+
14
+
15
+
16
+ ## Quick Start
17
+
18
+ You can utilize our AI detection model as demonstrated below:
19
+
20
+ ```python
21
+ from transformers import LongformerTokenizer, LongformerForSequenceClassification
22
+ import torch
23
+ import torch.nn.functional as F
24
+
25
+ class AIDetector:
26
+ def __init__(self, model_name="allenai/longformer-base-4096", max_length=4096):
27
+ """
28
+ Initialize the AIDetector with a pretrained Longformer model and tokenizer.
29
+
30
+ Args:
31
+ model_name (str): The name or path of the pretrained Longformer model.
32
+ max_length (int): The maximum sequence length for tokenization.
33
+ """
34
+ self.tokenizer = LongformerTokenizer.from_pretrained(model_name)
35
+ self.model = LongformerForSequenceClassification.from_pretrained(model_name)
36
+ self.model.eval()
37
+ self.max_length = max_length
38
+ self.tokenizer.padding_side = "right"
39
+
40
+ @torch.no_grad()
41
+ def get_probability(self, texts):
42
+ inputs = self.tokenizer(texts, padding=True, truncation=True, max_length=self.max_length, return_tensors='pt')
43
+ outputs = self.model(**inputs)
44
+ probabilities = F.softmax(outputs.logits, dim=1)
45
+ return probabilities
46
+
47
+ # Example usage
48
+ if __name__ == "__main__":
49
+ """
50
+ Demonstrate the usage of AIDetector to classify whether given texts are AI-generated.
51
+ """
52
+ # Initialize the detector with a custom model path
53
+ classifier = AIDetector(model_name="/path/to/ai_detector")
54
+
55
+ # Define sample texts for classification
56
+ target_text = [
57
+ "I am thinking about going away for vacation",
58
+ "How can I help you today?"
59
+ ]
60
+
61
+ # Get classification probabilities
62
+ result = classifier.get_probability(target_text)
63
+
64
+ # Print results
65
+ print("Classification Probabilities:", result)
66
+ ```
67
+
68
+
69
+
70
+ ## Citation
71
+
72
+ If you find this model useful, please cite:
73
+
74
+ ```plaintext
75
+ [Authors], "[Paper Title]," [Venue], [Year], [URL or DOI].
76
+ ```
77
+
78
+
79
+