OpenSource LLM In-Context Learning
Created on June 26|Last edited on July 10
Comment
お問合せ先
- 担当:丸岡(株式会社エスタイル)
- mail:kazuto.m@estyle-inc.jp
よく聞くこんな課題
- ChatGPT使いたいけど、情報漏洩が心配...
目的
- 外部と接続しないセキュアなAIチャットサービスの構築
アプローチ
- オープンソースのLLMを用いることでローカルで完結するシステムの構築
- オープンソースのLLMのモデルの性能向上のためにFine-Tuningの実施
- 出力の信頼性を保つためにIn-Context Learningを実施
対象データ
- 今回は渋谷区のよくある質問を用いて実験を行った
- https://shibuya-faq.dga.jp/
実験1
1
1
Fine-Tuning
# コールバック用のクラスを作成
from transformers import TrainerCallback
from langchain.chains import LLMChain, SimpleSequentialChain
class JapanesePromptLoggingCallback(TrainerCallback):
# 抜粋
def log_prompt_response(self, state=None, global_step=0, **kwargs):
************
# 学習中のモデルに、簡単な会話をさせるためのChainを構築
chain = LLMChain(llm=huggingfacepipeline, prompt=prompt)
# LLMチェーンを準備
overall_chain = SimpleSequentialChain(chains=[chain])
# WandBにログを送信
response = overall_chain(prompt, callbacks=[WandbTracer()])
model.train()
# トレイナーの準備
import transformers
trainer = transformers.Trainer(
model=model,
train_dataset=train_data,
eval_dataset=val_data,
args=transformers.TrainingArguments(
# パラメータの記載は省略
report_to="wandb",
),
data_collator=transformers.DataCollatorForLanguageModeling(tokenizer, mlm=False),
callbacks=[JapanesePromptLoggingCallback(prompt="渋谷区から海外に転出する場合の手続きを教えてください。")],
)
実験1
1
実験2
1
Result
0
Add a comment
Iterate on AI agents and models faster. Try Weights & Biases today.