Open GENZITSU opened 1 year ago
DiffusionModelによって生成した擬似テーブルデータの特徴量分布を検証している記事
CardioとAdultの二つのテーブルデータに対してデータ生成を試しており、元の特徴量分布には見られない外挿を行う傾向が確認されている。
diffusionでデータaugmentationをするって感じの話になるが、元の特徴量分布内のものをうまく利用するという感じになりそう。
ChatBotのロールとメッセージの関連性を判定させて敷居値以上のスコアが出た時だけ返信させる機構を実装したとのこと。
ロールとメッセージの関連性の判定は汎用性高そう。
大規模言語モデルを省パラメータファインチューニング用ライブラリを用いてLoRAチューニングを実施している記事
いろいろ事前準備は必要だが、基本的にはconfigを読み、trainerに渡すだけというシンプル設計なのが使いやすい。
# from https://note.com/npaka/n/n932b4c0a2230
from peft import LoraConfig, get_peft_model
config = LoraConfig(
r=16,
lora_alpha=32,
target_modules=["q_proj", "v_proj"],
lora_dropout=0.05,
bias="none",
task_type="CAUSAL_LM"
)
model = get_peft_model(model, config)
trainer = transformers.Trainer(
model=model,
train_dataset=data['train'],
args=transformers.TrainingArguments(
per_device_train_batch_size=4,
gradient_accumulation_steps=4,
warmup_steps=100,
max_steps=200,
learning_rate=2e-4,
fp16=True,
logging_steps=1,
output_dir='outputs'
),
data_collator=transformers.DataCollatorForLanguageModeling(tokenizer, mlm=False)
)
model.config.use_cache = False # 警告を黙らせます。 推論のために再度有効にしてください。
trainer.train()
日本語の数Bくらいのモデルに対してLoRAで気軽にfinetuningできるようになるというのは嬉しいかも。
ただ、lineのブログも見るにLoRAによる制度の劣化はだいぶ大きいので、元のパラメータ数が大きい日本語モデルが出てこないまではあまり出番がないかもしれない。
ChatGPTの出力を安定的にJSON形式で変えさせるための手法を紹介している記事
ChatGPTはデフォルトで結果に対する説明を入れるように訓練されているので、json以外の場所で結果の説明をしてしまうことがあり、それを防ぐための方法を模索
この手の記事にしては珍しく、N回中M回成功をちゃんと教えてくれるありがたい記事
失敗する時でもjsonはちゃんと吐き出してくれるのであれば、ルールベースで{
と}
を検出してパースするのもありそう。
あとはデフォルトの訓練結果を無効化するようなプロンプトを入れ込みたいところである。
LLMを省パラメータでファインチューニングするLoRAの手法やその嬉しさ、実験結果までを丁寧に解説している資料
以下重要そうなスライドの抜粋
理解が曖昧だったけど重要な点
とても勉強になった
WebブラウザでPythonが動作する!PyScriptの詳解
html中にpythonスクリプトを埋め込みブラウザ上でそれを動作させることができるライブラリPyScriptを紹介している記事
pandasやnumpyといった外部ライブラリをimportして利用することもできるようで、実行環境に縛られずにデモやダッシュボードなどを提供できそう。
以下は外部ライブラリを読み込みつつ利用しているサンプルコード
コメント
実行環境を用意せずにデモや管理プロダクトを納品できるのは強そう
出典