Skip to main content

OpenSource LLM In-Context Learning

Created on June 26|Last edited on July 10



お問合せ先

よく聞くこんな課題

  • ChatGPT使いたいけど、情報漏洩が心配...

目的

  • 外部と接続しないセキュアなAIチャットサービスの構築

アプローチ

  • オープンソースのLLMを用いることでローカルで完結するシステムの構築
  • オープンソースのLLMのモデルの性能向上のためにFine-Tuningの実施
  • 出力の信頼性を保つためにIn-Context Learningを実施

対象データ

実験1
1
実験2
1




Fine-Tuning

langchain

# コールバック用のクラスを作成
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







Iterate on AI agents and models faster. Try Weights & Biases today.