亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

ホームページ バックエンド開発 Python チュートリアル DSPy を使用して AI 生成テキストを検出するための OpenAI の GPT-mini の最適化

DSPy を使用して AI 生成テキストを検出するための OpenAI の GPT-mini の最適化

Nov 24, 2024 am 06:46 AM

AI が生成したテキストの検出はホットな話題となっており、研究者や実務(wù)家がその実現(xiàn)可能性と倫理的影響について議論しています。モデルがより洗練されるにつれて、人間が書いたテキストと AI が生成したテキストを區(qū)別することは、刺激的な課題であると同時に重要なニーズとなっています。

この投稿では、139 萬のテキスト サンプルの魅力的なデータセットを使用して、DSPy の最適化機能を利用して、このタスクのために OpenAI の GPT-4o-mini を微調(diào)整する方法を検討します。最後には、DSPy を使用して基本的な AI テキスト検出器を?qū)g裝、評価、最適化する方法がわかります。手動のプロンプト エンジニアリングは必要ありません。


データセットの読み込み

まず、データセットをロードしましょう。このデータセットには、人間が書いたもの、またはさまざまな人間および LLM ソースから AI が生成したものとしてラベル付けされたテキスト サンプルが含まれています。始めるには、Python 3 と DSPy およびハグ顔データセット ライブラリがインストールされていることを確認してください。

pip install dspy datasets

データセットのサイズは約 2GB であるため、インターネットの速度によっては、この手順に數(shù)分かかる場合があります。

トレーニングとテストのためにデータセットを均等にロードして分割するコードは次のとおりです:

from datasets import load_dataset

# Load the dataset
ds = load_dataset("artem9k/ai-text-detection-pile", split="train")

# For simplicity, we’ll do an even split of data for testing and training
NUM_EXAMPLES = 80  # Adjust this to experiment with dataset size
ds = ds.train_test_split(test_size=NUM_EXAMPLES, train_size=NUM_EXAMPLES)

ヒント: NUM_EXAMPLES を調(diào)整して、より大きなデータセットを試したり、最適化を?qū)g行する際のコストを削減したりできます。


モデルのセットアップ

次に、OpenAI の GPT-4o-mini を使用して、基本的な DSPy 予測子を作成します。 GPT-4o-mini は OpenAI の GPT-4o モデルの軽量バージョンであり、実験のコスト効率が高くなります。 DSPy は、構(gòu)造化された入出力マッピングを定義する シグネチャ を使用してこのプロセスを簡素化します。

コードを?qū)g行する前に、「YOUR_API_KEY」を OpenAI API キーに置き換えます。

import dspy
from typing import Literal

# Initialize the OpenAI GPT-4o-mini model
lm = dspy.LM('openai/gpt-4o-mini', api_key="YOUR_API_KEY")
dspy.configure(lm=lm, experimental=True)

# Define the AI text detector signature
class DetectAiText(dspy.Signature):
    """Classify text as written by human or by AI."""
    text: str = dspy.InputField()
    source: Literal['ai', 'human'] = dspy.OutputField()

# Create a basic predictor
detector = dspy.Predict(DetectAiText)

ここでは迅速なエンジニアリングを行っていないことに注意してください。代わりに、DSPy を利用して入力と出力の関係を自動的に処理します。

いくつかのサンプル入力を使用して「検出器」をテストできます。

print(detector(text="Hello world (this definitely wasn't written by AI)"))

予測は出力の「ソース」フィールドに表示されます。


検出器の評価

基本的な検出器ができたので、DSPy の評価ツールを使用してそのパフォーマンスを評価しましょう。このために、モデルがテキストのソース (人間または AI) を正しく予測しているかどうかをチェックする簡単な指標を定義します。

評価を設(shè)定して実行するコードは次のとおりです:

from dspy.evaluate import Evaluate

# Define a simple evaluation metric
def validate_text_source(example: dspy.Example, pred, trace=None) -> int:
    return 1 if example.source.lower() == pred.source.lower() else 0

# Transform the dataset into DSPy-compatible "Example" objects
dspy_trainset = [
    dspy.Example(source=x['source'], text=x['text']).with_inputs('text') for x in ds['train']
]
dspy_devset = [
    dspy.Example(source=x['source'], text=x['text']).with_inputs('text') for x in ds['test']
]

# Evaluate the detector
evaluator = Evaluate(devset=dspy_devset, num_threads=12)  # Adjust threads based on your system
evaluator(detector, metric=validate_text_source)

最初のテストでは、76% ~ 81% の精度を達成しました。データセットのランダムなサンプリングにより結(jié)果が異なる場合があることに注意してください。

Optimizing OpenAI’s GPT-mini to Detect AI-Generated Text Using DSPy


DSPy による最適化

DSPy の真の力は、その最適化機能にあります。 MIPROv2 オプティマイザーを使用すると、プロンプトを手動で調(diào)整することなく検出器のパフォーマンスを向上させることができます。オプティマイザーは、少數(shù)のショットの例、動的なテンプレート、自己教師ありの手法を使用してこのプロセスを自動化します。

オプティマイザーを設(shè)定して実行する方法は次のとおりです:

pip install dspy datasets

注: 「ライト」プリセットを使用した 1 回の最適化実行のコストは、通常、80 例のデータセットで 0.50 ドル未満です。


結(jié)果と反復(fù)

最適化を?qū)g行した後、パフォーマンスが大幅に向上することがわかりました。最初の実行では、ベースラインの 76% ~ 81% と比較して、91.25% の精度を達成しました。その後の実行は 81.2% から 91.25% の範囲であり、最小限の労力で一貫した改善が実証されました。

Optimizing OpenAI’s GPT-mini to Detect AI-Generated Text Using DSPy

さらに使用するために最適化されたモデルをロードするには:

from datasets import load_dataset

# Load the dataset
ds = load_dataset("artem9k/ai-text-detection-pile", split="train")

# For simplicity, we’ll do an even split of data for testing and training
NUM_EXAMPLES = 80  # Adjust this to experiment with dataset size
ds = ds.train_test_split(test_size=NUM_EXAMPLES, train_size=NUM_EXAMPLES)

次の方法でさらに反復(fù)できます:

  • オプティマイザーの自動パラメータ (軽、中、重) を調(diào)整するか、ハイパーパラメータを自分で設(shè)定します。
  • トレーニングと評価用のデータセットのサイズを増やします。
  • より高度な、または更新された LLM を使用したテスト。

結(jié)論

わずか數(shù)ステップで、DSPy が実際のユースケース向けに LLM 最適化を簡素化する方法を?qū)g証しました。手動によるプロンプト エンジニアリングを一切行わずに、AI が生成したテキストの検出において目に見える改善を達成しました。このモデルは完璧ではありませんが、DSPy の柔軟性により継続的な反復(fù)が可能であり、スケーラブルな AI 開発にとって貴重なツールとなっています。

DSPy のドキュメントをよく読み、他のオプティマイザーや LLM パターンを試してみることを強くお勧めします。


完全なコードは GitHub で入手できます。

質(zhì)問はありますか?コメント?教えてください。DSPy で何を構(gòu)築するか楽しみにしています!

LinkedIn | で私を見つけることができます。 EES の CTO 兼パートナー。

以上がDSPy を使用して AI 生成テキストを検出するための OpenAI の GPT-mini の最適化の詳細內(nèi)容です。詳細については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當する法的責任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Pythonクラスの多型 Pythonクラスの多型 Jul 05, 2025 am 02:58 AM

Pythonオブジェクト指向プログラミングのコアコンセプトであるPythonは、「1つのインターフェイス、複數(shù)の実裝」を指し、異なるタイプのオブジェクトの統(tǒng)一処理を可能にします。 1。多型は、メソッドの書き換えを通じて実裝されます。サブクラスは、親クラスの方法を再定義できます。たとえば、Animal ClassのSOCK()方法は、犬と貓のサブクラスに異なる実裝を持っています。 2.多型の実用的な用途には、グラフィカルドローイングプログラムでdraw()メソッドを均一に呼び出すなど、コード構(gòu)造を簡素化し、スケーラビリティを向上させる、ゲーム開発における異なる文字の共通の動作の処理などが含まれます。 3. Pythonの実裝多型を満たす必要があります:親クラスはメソッドを定義し、子クラスはメソッドを上書きしますが、同じ親クラスの継承は必要ありません。オブジェクトが同じ方法を?qū)g裝する限り、これは「アヒル型」と呼ばれます。 4.注意すべきことには、メンテナンスが含まれます

Python関數(shù)引數(shù)とパラメーター Python関數(shù)引數(shù)とパラメーター Jul 04, 2025 am 03:26 AM

パラメーターは関數(shù)を定義するときはプレースホルダーであり、引數(shù)は呼び出し時に特定の値が渡されます。 1。位置パラメーターを順番に渡す必要があり、順序が正しくない場合は結(jié)果のエラーにつながります。 2。キーワードパラメーターはパラメーター名で指定されており、順序を変更して読みやすさを向上させることができます。 3.デフォルトのパラメーター値は、複製コードを避けるために定義されたときに割り當てられますが、変數(shù)オブジェクトはデフォルト値として避ける必要があります。 4. Argsおよび *Kwargsは、不確実な數(shù)のパラメーターを処理でき、一般的なインターフェイスまたはデコレータに適していますが、読みやすさを維持するためには注意して使用する必要があります。

Pythonジェネレーターと反復(fù)器を説明します。 Pythonジェネレーターと反復(fù)器を説明します。 Jul 05, 2025 am 02:55 AM

イテレータは、__iter __()および__next __()メソッドを?qū)g裝するオブジェクトです。ジェネレーターは、単純化されたバージョンのイテレーターです。これは、収量キーワードを介してこれらのメソッドを自動的に実裝しています。 1. Iteratorは、次の()を呼び出すたびに要素を返し、要素がなくなると停止例外をスローします。 2。ジェネレーターは関數(shù)定義を使用して、オンデマンドでデータを生成し、メモリを保存し、無限シーケンスをサポートします。 3。既存のセットを処理するときに反復(fù)器を使用すると、大きなファイルを読み取るときに行ごとにロードするなど、ビッグデータや怠zyな評価を動的に生成するときにジェネレーターを使用します。注:リストなどの反復(fù)オブジェクトは反復(fù)因子ではありません。イテレーターがその端に達した後、それらは再作成する必要があり、発電機はそれを一度しか通過できません。

python `@classmethod`デコレーターが説明しました python `@classmethod`デコレーターが説明しました Jul 04, 2025 am 03:26 AM

クラスメソッドは、@ClassMethodデコレーターを介してPythonで定義されるメソッドです。最初のパラメーターはクラス自體(CLS)で、クラス狀態(tài)へのアクセスまたは変更に使用されます。特定のインスタンスではなく、クラス全體に影響を與えるクラスまたはインスタンスを通じて呼び出すことができます。たとえば、Personクラスでは、show_count()メソッドは作成されたオブジェクトの數(shù)を數(shù)えます。クラスメソッドを定義するときは、@ClassMethodデコレータを使用して、Change_Var(new_Value)メソッドなどの最初のパラメーターCLSに名前を付けてクラス変數(shù)を変更する必要があります。クラス方法は、インスタンスメソッド(自己パラメーター)および靜的メソッド(自動パラメーターなし)とは異なり、工場の方法、代替コンストラクター、およびクラス変數(shù)の管理に適しています。一般的な用途には以下が含まれます。

PythonでAPI認証を処理する方法 PythonでAPI認証を処理する方法 Jul 13, 2025 am 02:22 AM

API認証を扱うための鍵は、認証方法を正しく理解して使用することです。 1。Apikeyは、通常、リクエストヘッダーまたはURLパラメーターに配置されている最も単純な認証方法です。 2。BasicAuthは、內(nèi)部システムに適したBase64エンコード送信にユーザー名とパスワードを使用します。 3。OAUTH2は、最初にclient_idとclient_secretを介してトークンを取得し、次にリクエストヘッダーにbearertokenを持ち込む必要があります。 4。トークンの有効期限に対処するために、トークン管理クラスをカプセル化し、トークンを自動的に更新できます。要するに、文書に従って適切な方法を選択し、重要な情報を安全に保存することが重要です。

Python Magic MethodsまたはDunder Methodとは何ですか? Python Magic MethodsまたはDunder Methodとは何ですか? Jul 04, 2025 am 03:20 AM

PythonのMagicMethods(またはDunder Methods)は、オブジェクトの動作を定義するために使用される特別な方法であり、二重のアンダースコアで始まり、終了します。 1.オブジェクトは、追加、比較、文字列表現(xiàn)などの組み込み操作に応答できるようにします。 2.一般的なユースケースには、オブジェクトの初期化と表現(xiàn)(__init__、__Repr__、__str__)、算術(shù)操作(__ add__、__sub__、__mul__)、および比較操作(__eq__、___lt__)が含まれます。 3。それを使用するときは、彼らの行動が期待を満たしていることを確認してください。たとえば、__Repr__はリファクタリング可能なオブジェクトの式を返す必要があり、算術(shù)メソッドは新しいインスタンスを返す必要があります。 4.過剰使用または混亂を招くことは避ける必要があります。

Pythonメモリ管理はどのように機能しますか? Pythonメモリ管理はどのように機能しますか? Jul 04, 2025 am 03:26 AM

PythonManagesMemoryAutomatelyUsingTuntingAndagarBageCollector.ReferencountingTrackShowManyvariablesRefertoAnobject、およびThemeMoryisfreed.

python `@property`デコレーター python `@property`デコレーター Jul 04, 2025 am 03:28 AM

@Propertyは、プロパティとしてメソッドを裝備するために使用されるPythonのデコレーターであり、プロパティにアクセスするときに論理的判斷または値の動的計算を可能にします。 1. @propertyデコレータを介してゲッターメソッドを定義し、外部が屬性へのアクセスなどのメソッドを呼び出すようにします。 2.チェック値の有効性など、.setterを使用して割り當て動作を制御できます。.setterが定義されていない場合、読み取り専用屬性です。 3.プロパティの割り當て検証、屬性値の動的生成、內(nèi)部実裝の詳細を隠すなどのシーンに適しています。 4.それを使用する場合、屬性名はプライベート変數(shù)名と異なるため、デッドループを避け、軽量操作に適していることに注意してください。 5。例では、サークルクラスは半徑を非陰性に制限し、個人クラスはfull_name屬性を動的に生成します

See all articles