BachelorProject
1.0.0
このリポジトリは、ペルシャのテキスト分類タスクに焦点を当てた、事前に訓練された言語モデルを使用したプロンプトベースの分類のフレームワークを提供します。プロンプトを生成するためのスクリプトとノートブック、分類のための微調整プロンプト、結果の評価、F1スコア、精度、リコールなどのモデルパフォーマンスメトリックの分析が含まれています。リポジトリは、関連する例を組み込むことにより、モデルの適応性を高めるK-Shot Learningもサポートしています。
コード:モデルトレーニング、迅速な生成、および評価のためのコアコードとノートブックが含まれています。
AYA-Colab.ipynb :colabのAYAモデルを使用したトレーニングと微調整プロンプトのメインノートブック。Classification_report.ipynb :さまざまなプロンプトセットアップのF1スコア、精度、リコールなどの分類メトリックを生成します。Creating_dataset.ipynb :プロンプトベースの学習のためのデータ準備とデータセット作成。f1-calculation.pyスコアを計算および視覚化するPythonスクリプト。news-aya-symbol-tuning.ipynb :テキスト分類のためのAYAモデルを使用したシンボルベースのチューニング用のノートブック。news-aya-system-user-prompt.ipynb :事前に訓練された言語モデルを使用して、システムとユーザープロンプトを生成するためのスクリプト。Symbol_tuning_aya.ipynb :迅速な有効性を最適化するためのシンボルチューニングノートブック。データセット:トレーニングと評価に使用されるデータセットが含まれています。
プロンプト:さまざまな分類タスクに使用されるプロンプトテンプレートが含まれています。
スライド:コンテキスト内学習、プロンプトデザイン、Kショット学習、およびシンボルチューニングを説明するドキュメンテーションおよびプレゼンテーションファイル。
In-Context Learning.pptx & In-Context Learning.pdf :モデルチューニングにコンテキスト内学習を使用する詳細。System-User Prompt Design.pptx & System-User Prompt Design.pdf :システムとユーザープロンプトの設計ガイド。Symbol Tuning.pptx & Symbol Tuning.pdf :シンボルチューニングを使用してプロンプトのパフォーマンスを向上させる手順。 リポジトリをクローンします:
git clone https://github.com/ShayanSalehi81/BachelorProject
cd BachelorProject必要なパッケージをインストールします。
pip install -r requirements.txt抱きしめる顔(必要に応じて)で認証し、追加のライブラリをインストールします。
huggingface-cli login --token YOUR_HUGGINGFACE_TOKEN CodesディレクトリでノートブックまたはPythonスクリプトを実行して、データセットの作成、迅速なチューニング、評価などのタスクを実行します。
Generatorクラスは、事前に訓練された言語モデルをロードし、プロンプトをフォーマットし、予測を生成します。このスクリプトは、効率的なメモリ使用量の4ビット量子化をサポートし、ユーザーが提供するプロンプトを活用して、ペルシャ語のニュースデータを「重要」または「重要ではない」と分類します。news-aya-symbol-tuning.ipynbやSymbol_tuning_aya.ipynbなどのノートブックは、モデルの解釈可能性と応答の一貫性を改善できる迅速なシンボルを微調整するように設計されています。シンボルチューニングは、プロンプトにマイナーな調整を導入し、微妙なクエリのモデルの理解を高めます。 Creating_dataset.ipynbを使用して、データセットを前処理およびフォーマットします。news-aya-system-user-prompt.ipynbをロードします。Classification_report.ipynbを使用して、精度やF1スコア、 f1-calculation.pyなどのメトリックを計算してパフォーマンスを視覚化します。news-aya-symbol-tuning.ipynbを実行して、シンボルチューニングで迅速なデザインを改良します。 このプロジェクトは、MITライセンスの下でライセンスされています。
貢献は大歓迎です!このプロジェクトを強化するために、問題、機能リクエスト、またはリクエストをプルすることをお気軽に送信してください。