モデル概要
モデル特徴
モデル能力
使用事例
🚀 desklib/ai-text-detector-academic-v1.01
このDesklibによって開発されたAI生成テキスト検出モデルは、学術関連のデータに特化して微調整されています。英語のテキストが人間によって書かれたものか、AIによって生成されたものかを分類するように設計されています。このモデルはmicrosoft/deberta - v3 - largeを微調整したもので、Transformerベースのアーキテクチャを活用して高い精度を達成しています。学術的な文脈における様々な敵対的攻撃に対しても非常に強健です。このモデルは、学術的誠実性、コンテンツモデレーション、学術的な文章の信憑性の確保などのアプリケーションに特に有用です。Desklibは、パーソナライズされた学習と学習支援のためのAIベースのツールを提供しており、このモデルはDesklibが学生、教育者、大学に提供する多くのツールの1つです。
オンラインでモデルを試してみましょう!: Desklib AI Detector
🚀 クイックスタート
このAI生成テキスト検出モデルは、学術関連の英語テキストに対して、人間による執筆かAIによる生成かを分類することができます。以下のセクションでは、モデルのアーキテクチャ、使用方法、制限事項について説明します。
✨ 主な機能
- 学術関連の英語テキストを人間による執筆かAIによる生成かに分類します。
- microsoft/deberta - v3 - largeをベースに微調整されており、高い精度を達成しています。
- 学術的な文脈における様々な敵対的攻撃に対して強健です。
- 学術的誠実性、コンテンツモデレーション、学術的な文章の信憑性の確保などのアプリケーションに有用です。
📦 インストール
このモデルを使用するには、Hugging Faceのtransformersライブラリが必要です。以下のコマンドでインストールできます。
pip install transformers torch
💻 使用例
基本的な使用法
import torch
import torch.nn as nn
from transformers import AutoTokenizer, AutoConfig, AutoModel, PreTrainedModel
class DesklibAIDetectionModel(PreTrainedModel):
config_class = AutoConfig
def __init__(self, config):
super().__init__(config)
# Initialize the base transformer model.
self.model = AutoModel.from_config(config)
# Define a classifier head.
self.classifier = nn.Linear(config.hidden_size, 1)
# Initialize weights (handled by PreTrainedModel)
self.init_weights()
def forward(self, input_ids, attention_mask=None, labels=None):
# Forward pass through the transformer
outputs = self.model(input_ids, attention_mask=attention_mask)
last_hidden_state = outputs[0]
# Mean pooling
input_mask_expanded = attention_mask.unsqueeze(-1).expand(last_hidden_state.size()).float()
sum_embeddings = torch.sum(last_hidden_state * input_mask_expanded, dim=1)
sum_mask = torch.clamp(input_mask_expanded.sum(dim=1), min=1e-9)
pooled_output = sum_embeddings / sum_mask
# Classifier
logits = self.classifier(pooled_output)
loss = None
if labels is not None:
loss_fct = nn.BCEWithLogitsLoss()
loss = loss_fct(logits.view(-1), labels.float())
output = {"logits": logits}
if loss is not None:
output["loss"] = loss
return output
def predict_single_text(text, model, tokenizer, device, max_len=768, threshold=0.5):
encoded = tokenizer(
text,
padding='max_length',
truncation=True,
max_length=max_len,
return_tensors='pt'
)
input_ids = encoded['input_ids'].to(device)
attention_mask = encoded['attention_mask'].to(device)
model.eval()
with torch.no_grad():
outputs = model(input_ids=input_ids, attention_mask=attention_mask)
logits = outputs["logits"]
probability = torch.sigmoid(logits).item()
label = 1 if probability >= threshold else 0
return probability, label
def main():
# --- Model and Tokenizer Directory ---
model_directory = "desklib/ai-text-detector-academic-v1.01"
# --- Load tokenizer and model ---
tokenizer = AutoTokenizer.from_pretrained(model_directory)
model = DesklibAIDetectionModel.from_pretrained(model_directory)
# --- Set up device ---
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
# --- Example Input text ---
text = "AI detection refers to the process of identifying whether a given piece of content, such as text, images, or audio, has been generated by artificial intelligence. This is achieved using various machine learning techniques, including perplexity analysis, entropy measurements, linguistic pattern recognition, and neural network classifiers trained on human and AI-generated data. Advanced AI detection tools assess writing style, coherence, and statistical properties to determine the likelihood of AI involvement. These tools are widely used in academia, journalism, and content moderation to ensure originality, prevent misinformation, and maintain ethical standards. As AI-generated content becomes increasingly sophisticated, AI detection methods continue to evolve, integrating deep learning models and ensemble techniques for improved accuracy."
# --- Run prediction ---
probability, predicted_label = predict_single_text(text, model, tokenizer, device)
print(f"Probability of being AI generated: {probability:.4f}")
print(f"Predicted label: {'AI Generated' if predicted_label == 1 else 'Not AI Generated'}")
if __name__ == "__main__":
main()
📚 ドキュメント
モデルアーキテクチャ
このモデルは、微調整されたmicrosoft/deberta - v3 - largeのTransformerアーキテクチャをベースに構築されています。主な構成要素は以下の通りです。
構成要素 | 詳細 |
---|---|
Transformer Base | 事前学習されたmicrosoft/deberta - v3 - largeモデルが基礎となります。このモデルはDeBERTa(Decoding - enhanced BERT with disentangled attention)を利用しており、BERTやRoBERTaの改良版で、分離された注意力機構と強化されたマスクデコーダを組み込んで、より良い性能を実現しています。 |
Mean Pooling | 平均プーリング層がTransformerからの隠れ状態を集約し、入力テキストの固定サイズの表現を作成します。この方法は、トークン埋め込みを注意力マスクで重み付けして平均化し、全体的な意味を捉えます。 |
Classifier Head | 線形層が分類器として機能し、プーリングされた表現を受け取り、単一のロジットを出力します。このロジットは、入力テキストがAIによって生成されたものであるというモデルの確信度を表します。シグモイド活性化関数がロジットに適用され、確率が生成されます。 |
🔧 技術詳細
このモデルは、Transformerベースのアーキテクチャを使用しており、microsoft/deberta - v3 - largeを微調整することで、学術関連のデータに特化したAI生成テキスト検出を実現しています。平均プーリング層と線形分類器を組み合わせることで、入力テキストがAI生成か人間による執筆かを判断します。
📄 ライセンス
このモデルはMITライセンスの下で提供されています。
⚠️ 制限事項
- このモデルは学術関連のデータに対して微調整されているため、汎用的な文章や創作的な文章に対しては最適な性能を発揮しない可能性があります。標準のAI検出器はこちらをご覧ください: https://huggingface.co/desklib/ai-text-detector-v1.01
- 高度な敵対的攻撃に対しては微調整されていませんが、基本的な敵対的操作に対しては良好な性能を発揮します。
- AI生成テキスト検出は進化する分野であるため、新しいAIテキスト生成モデルに適応するために、モデルの定期的な更新が必要になる可能性があります。








