🚀 潜在再帰深度言語モデル
潜在再帰深度言語モデル(LRD - LM)は、反復的な潜在処理を通じてより深い文脈情報を捉える実験的なテキスト生成アーキテクチャです。
🚀 クイックスタート
潜在再帰深度言語モデル(LRD - LM)は、反復的な潜在処理を通じてより深い文脈情報を捉えるために設計された実験的なテキスト生成アーキテクチャです。verboseな思考過程のシーケンスを生成する代わりに、LRD - LMは複数の再帰的な反復を通じて内部状態を洗練し、パラメータ数を抑えながらテキスト生成の品質を向上させます。
✨ 主な機能
- テキスト生成:創造的なテキスト、対話、コード、またはその他の自然言語コンテンツを生成します。
- 研究:言語モデリングにおける新しいアーキテクチャや技術を探索するためのテストベッドとして機能します。
🔧 技術詳細
アーキテクチャ
このモデルは3つの主要なコンポーネントを中心に構築されています。
-
Prelude Block:
このブロックは、入力トークンを埋め込み、位置符号化を伴う自己注意を適用することで初期処理を行います。
-
Recurrent Block:
潜在状態を反復的に洗練するコアの重み共有ブロックです。Preludeブロックの出力と自身の進化する状態を繰り返し処理することで、モデルは中間トークンを出力せずに入力について「思考」します。
-
Coda Block:
最終的なブロックで、洗練された潜在状態を出力トークンの確率にデコードします。
トレーニングの詳細
このモデルは、Wikitext - 2 - raw - v1データセットのサブセット(最初の1000サンプル)を使用して、AdamWオプティマイザとコサインアニーリング学習率スケジューラを用いて微調整されました。トレーニングの設定とハイパーパラメータは添付のコードに記載されており、性能向上のために調整が必要な場合があります。
💻 使用例
基本的な使用法
from transformers import AutoModelForCausalLM, AutoTokenizer, AutoModel
model = AutoModelForCausalLM.from_pretrained("codewithdark/latent-recurrent-depth-lm")
tokenizer = AutoTokenizer.from_pretrained("codewithdark/latent-recurrent-depth-lm")
prompt = "In the realm of language modeling"
input_ids = tokenizer(prompt, return_tensors='pt').input_ids
logits = model(input_ids, num_iterations=3)
import torch
probs = torch.softmax(logits[:, -1, :], dim=-1)
next_token = torch.multinomial(probs, num_samples=1)
generated_ids = torch.cat([input_ids, next_token], dim=1)
generated_text = tokenizer.decode(generated_ids[0], skip_special_tokens=True)
clean_text = generated_text.replace('Ġ','')
print(generated_text)
高度な使用法
from transformers import AutoTokenizer, AutoModel, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("codewithdark/latent-recurrent-depth-lm")
model = AutoModel.from_pretrained("codewithdark/latent-recurrent-depth-lm", trust_remote_code=True)
prompt = "In the realm of language modeling"
input_ids = tokenizer(prompt, return_tensors="pt").input_ids
generated_ids = model.generate(input_ids, max_length=50, num_iterations=10, temperature=0.5, top_k=50)
generated_text = tokenizer.decode(generated_ids[0], skip_special_tokens=True)
clean_text = generated_text.replace('Ġ','')
print(clean_text)
📚 ドキュメント
用途と制限
意図された用途
- テキスト生成:創造的なテキスト、対話、コード、またはその他の自然言語コンテンツを生成します。
- 研究:言語モデリングにおける新しいアーキテクチャや技術を探索するためのテストベッドとして機能します。
制限
- データ制約:Wikitext - 2 - raw - v1データセットの小さなサブセット(最初の1000サンプル)でトレーニングされているため、大規模なコーパスでトレーニングされたモデルと比較して性能が制限される可能性があります。
- 性能:潜在的な再帰深度の可能性を示していますが、全体的な性能は実験的であり、最先端のモデルに匹敵しない場合があります。
- 計算オーバーヘッド:反復処理により追加の計算が必要になります。
- バイアス:すべての言語モデルと同様に、生成された出力にはトレーニングデータに含まれるバイアスが反映される可能性があります。
倫理的な考慮事項
このモデルは研究および実験目的で使用することを意図しています。ユーザーは、この技術を展開またはさらに開発する際に、倫理的なアプリケーションを確保し、潜在的なバイアスや誤用を慎重に考慮する必要があります。
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。