Upgrade to Pro — share decks privately, control downloads, hide ads and more …

つくって納得、つかって実感! 大規模言語モデルことはじめ

Avatar for Recruit Recruit PRO
August 28, 2025

つくって納得、つかって実感! 大規模言語モデルことはじめ

2025年度リクルート エンジニアコース新人研修の講義資料です

Avatar for Recruit

Recruit PRO

August 28, 2025
Tweet

More Decks by Recruit

Other Decks in Technology

Transcript

  1. © Recruit Co., Ltd. All Rights Reserved つくって納得、つかって実感! 大規模言語モデルことはじめ 株式会社リクルート

    データ推進室 データテクノロジーラボ部 R&Dグループ 桐生 佳介 2025/04/14 FYE0326 新人研修 bootcamp
  2. © Recruit Co., Ltd. All Rights Reserved 2 Keisuke Kiryu

    Profile 桐生 佳介 データ推進室 データテクノロジーラボ部 R&Dグループ  2013 - 2018 生命保険会社の基幹システム保守開発 2019 - 2022 同社R&D部署にて自然言語処理分野の研究開発 • Performance Evaluation of Japanese BERT Model for Intent Classification Using a Chatbot (2021) • GPT-2を活用した質問応答タスクへの適応 (2022) 2023 リクルートへキャリア採用入社 AWS LLM 開発支援プログラムに参画、Open LLMの開発に従事 2024 - now Whale LM Project において Open LLMの継続事前学習・Fine-Tuning・性能評価などを担当 並行してHR/自動車領域でのLLMを活用したプロダクト開発支援も担当 経歴  所属 DIY・エレキギター・音楽機材製作・精密射撃 趣味
  3. © Recruit Co., Ltd. All Rights Reserved 3 NLP2024 (言語処理学会2024)

    リクルートブースに掲示のポスター
  4. © Recruit Co., Ltd. All Rights Reserved 4 Hugging Faceにjapanese-typo-detector-roberta-base

    というモデルを公開しています 日本語の誤字脱字を検出するBERTアーキテクチャベースのモデルです (おかげさまで 累計 12k Downloads)
  5. © Recruit Co., Ltd. All Rights Reserved 6 はじめに この研修は以下を前提としています

    研修受講後の達成状態 • 大規模言語モデルとは何か?を人に説明できる • 大規模言語モデルを活用することに向いたユースケース、向かないユースケースをイメージできる • 大規模言語モデルのclosed modelをAPIで利用し、簡単なアプリケーションを作ることができる
  6. © Recruit Co., Ltd. All Rights Reserved 7 はじめに この研修は以下を前提としています

    想定している受講者のイメージ • ChatGPTなど大規模言語モデルを用いたサービスを使ったことがある • なんらかのプログラミング経験がある(研修ではPythonを利用します) ◦ 基本的に用意されたコードを実行する形式ですので、経験が浅い方もご心配なく
  7. © Recruit Co., Ltd. All Rights Reserved 8 はじめに この研修は以下を前提としています

    研修の構成として注意していること • 聞き手を飽きさせない ◦ 1つのテーマは短く ◦ 講習とハンズオンを織り交ぜる ◦ 自分の頭で考える部分を含める • 聞き手を置いてけぼりにしない ◦ 基本的にゆっくりすすめる ◦ 質問をしやすいように心理的安全性を確保する • 何かができるようになったという達成感を得られるようにする ◦ 上長・先輩から「どんなことをした?」と聞かれた時に明確に答えられること ◦ LLM施策を担当することになった時に初動で手を動かせる
  8. © Recruit Co., Ltd. All Rights Reserved 9 はじめに この研修は以下を前提としています

    コミュニケーションの方法 • SlackチャネルでワイワイしていただいてOKです!むしろそうしてください! • 質問はどんどん書き込んでください ◦ あなたが気になることは、みんなも気になるはずです! • 過去に大規模言語モデルの研究に取り組んでいた方など この分野に詳しい方は積極的に周囲へ情報共有をお願いします!
  9. © Recruit Co., Ltd. All Rights Reserved 10 はじめに 研修タイトルの解釈

    つくって納得、つかって実感! 大規模言語モデルことはじめ 仕組みとして動くものを作ってみる Open/Closed model を実際に使ってみる 全部は語りきれないので、まずは基本から!
  10. © Recruit Co., Ltd. All Rights Reserved 11 目次 Part

    0:大規模言語モデルで遊ぶ Part 1:大規模言語モデルってなんですか Part 2 : Deep dive into LLM Part 3 : LLM as a Workshop
  11. © Recruit Co., Ltd. All Rights Reserved 13 テーマ :

    FYE03/26 大規模言語モデル俳句大会 ルール : 1. 大規模言語モデルにまつわる素晴らしい俳句を生成しましょう 2. LLMで俳句を生成してください (promptは自由) 3. 最も優れた俳句を LLM as a Judge で決定します 4. 回答は一人一回までです 回答方法 : 回答フォーム より生成した俳句を送信してください 大規模言語モデルで遊ぶ
  12. © Recruit Co., Ltd. All Rights Reserved 14 🥇 1位:

    知恵の海 無限の言葉が 響き合う (prompt :大規模言語モデルにまつわる素晴らしい俳句を作成してください。 ) 🥈 2位: コードの海 言葉が踊る モデルの知恵 🥉 3位: データの海 波間に揺れる 知恵の光 🏅 4位: 桜舞い モデルが悩む 言葉遊び 🏅 5位: 俳句さえ 作ってみせる 賢いふり 大規模言語モデルで遊ぶ
  13. © Recruit Co., Ltd. All Rights Reserved 15 󰬦 大会委員長のお言葉:

    決勝に進まれた皆様、素晴らしい句をありがとうございました。 今大会は「大規模言語モデル」という難しいテーマでしたが、皆様それぞれの解釈で創造性豊かな句を詠んでくださいまし た。 1位の句は、大規模言語モデルが生み出す無限の可能性と、そこで言葉が共鳴し合う様子を見事に表現しています。情景が目 に浮かぶような、美しい一句でした。 2位の句は、モデルの知恵と、そこから生まれる言葉の躍動感が伝わってきます。技術的な側面を詩的に表現した点が評価で きます。 3位の句は、データの海という比喩を用いて、大規模言語モデルの奥深さと、そこから放たれる知恵の光を表現しています。 4位の句は、大規模言語モデルの意外な一面を捉え、人間のような悩みを抱える姿をユーモラスに表現しています。 5位の句は、大規模言語モデルが俳句を作るという行為を自嘲的に表現しており、そのユーモアは評価できますが、テーマと の深いつながりという点では他の句に譲ります。 全体として、大規模言語モデルというテーマに対して、創造性豊かで多様なアプローチが見られました。皆様の今後のご活躍 を心よりお祈り申し上げ、これにて閉会の言葉といたします。 大規模言語モデルで遊ぶ
  14. © Recruit Co., Ltd. All Rights Reserved 18 大規模言語モデルってなんですか 大規模 言語モデル

    「大規模言語モデル」という言葉を解釈してみる Large Language Model
  15. © Recruit Co., Ltd. All Rights Reserved 20 大規模言語モデルってなんですか 言語モデル:

    ある単語列の確率分布を表すものである → ある文章が、どれくらい「自然か」を数値で表すモデル 本来的には • 深層学習モデルに限らない (携帯電話の予測変換も言語モデル) • 文章生成の用途に限らない (文章生成タスクが注目されたのは2018年あたりから)
  16. © Recruit Co., Ltd. All Rights Reserved 21 大規模言語モデルってなんですか 例:

    • 「私は今日学校へ行きました」→ 自然で 確率が高い 󰢐 • 「学校私は今日行きましたへ」→ 不自然で 確率が低い 󰢄 → この性質を超応用することであらゆるタスクを遂行できる
  17. © Recruit Co., Ltd. All Rights Reserved 23 大規模言語モデルってなんですか そもそも何が大規模か:

    • モデルパラメータ数 • 学習データ量 • 必要となる計算資源 → これら3つの要素が、過去のモデルに対して大規模
  18. © Recruit Co., Ltd. All Rights Reserved 24 大規模言語モデルってなんですか 引用論文

    “Scaling Laws for Neural Language Models”(Jared Kaplan, et al. @ OpenAI, arXiv, 2020.) スケーリング則(Scaling Laws for Neural Language Models) 自然言語処理モデルの パラメーター数・データセットのサイズ・トレーニングに使用される計算量が 増えるほど損失(Loss、誤差)が「べき乗則」に従って減少するという法則
  19. © Recruit Co., Ltd. All Rights Reserved 25 大規模言語モデルってなんですか 大規模 言語モデル

    Large Language Model 「大規模言語モデル」という言葉はつまり モデルパラメータ数 学習データ量 計算資源 ある文章が、どれくらい「自然か」を数値で表すモデル
  20. © Recruit Co., Ltd. All Rights Reserved 26 大規模言語モデルってなんですか 言葉の定義上は...

    大規模言語モデル=文章生成モデル ではないはず! どうしてこうなった...?
  21. © Recruit Co., Ltd. All Rights Reserved 27 大規模言語モデルってなんですか 2022/11/30

    ChatGPTリリース以降に ”Large Language Model” のトレンドが増加
  22. © Recruit Co., Ltd. All Rights Reserved 28 大規模言語モデルってなんですか ChatGPTの衝撃的なデビューにより

    大規模言語モデルという言葉が浸透するとともに 大規模言語モデル=文章生成モデルという認知が広まってしまった説 本来的には 「大規模深層学習文章生成モデル」と表現するのが正しそう
  23. © Recruit Co., Ltd. All Rights Reserved 29 大規模言語モデルってなんですか Hands-on

    🤲 言語モデル: ある単語列の確率分布を表すものである を試してみる
  24. © Recruit Co., Ltd. All Rights Reserved 30 大規模言語モデルってなんですか Google

    colabを使います Notebook : bootcamp_Log-Likelihood.ipynb ① リンク先のNotebookをコピーする ③ ランタイムに接続する ② 新しいタブでコピーが開く ※自分のGoogle Driveにコピーされます
  25. © Recruit Co., Ltd. All Rights Reserved 31 大規模言語モデルってなんですか Google

    colab : 開発環境のセットアップなしに使えるPython環境です Jupyter Notebookに準拠しています 使い方: セルと呼ばれる単位で処理を実行します ▶ボタン or [Shift] + [Enter]でセルを実行します セルを追加するにはセルの間に現れる [+コード]ボタンをクリックします [+テキスト]ボタンをクリックすると Markdown形式のテキストブロックが作れます
  26. © Recruit Co., Ltd. All Rights Reserved 33 Deep dive

    into 大規模言語モデル • Open model, Closed model • どうやって動いているのか • どうやって作られるのか • 自然言語処理タスク • 創発性 • Prompting • 性能評価 • 文章埋め込みモデル
  27. © Recruit Co., Ltd. All Rights Reserved 34 Closed model,

    Open model Closed Model Open Model 具体例 OpenAI GPT-4o Google Gemini 2.0 Pro Meta Llama-3.1-8B Mistral AI Mistral-7B-v0.3 モデルパラメータ 公開されていない 公開されている 推論の方法 APIを呼び出して推論 GPUにロードして推論 モデルチューニング モデルプロバイダーによる 制限下で実施可能 比較的自由に実施可能 習得コスト 比較的低い 比較的高い 世の中に出回っている大規模言語モデルはパラメータ公開の観点で2タイプに分類できる モデルのタスク性能は基本的にClosedモデルが先行する どちらのタイプもほぼ共通したコア技術が用いられている
  28. © Recruit Co., Ltd. All Rights Reserved 35 Closed model

    Azure OpenAI : https://learn.microsoft.com/ja-jp/azure/ai-services/openai/concepts/models AWS Bedrock : https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/models-supported.html Google Gemini : https://ai.google.dev/gemini-api/docs/models?hl=ja 大手クラウドベンダーが提供するClosed LLM ※AWS BedrockについてはOpen Modelをホストしているケースもある ※GPT-4oやGeminiはマルチモーダルモデル(テキスト・画像・音声)のため厳密に言えばLLMではない
  29. © Recruit Co., Ltd. All Rights Reserved 36 Open model

    海外勢 : Meta Llama : https://huggingface.co/meta-llama Mistral AI : https://huggingface.co/mistralai Alibaba Qwen : https://huggingface.co/Qwen Deepseek : https://huggingface.co/deepseek-ai 日本勢 : PFN Plamo : https://huggingface.co/pfnet 東京科学大 Swallow : https://huggingface.co/tokyotech-llm llm-jp : https://huggingface.co/llm-jp CyberAgent Calm : https://huggingface.co/cyberagent SB intuitions Sarashina : https://huggingface.co/sbintuitions Open LLMの一例とプロバイダー モデルファイルはHugging Faceで公開するのが一般的
  30. © Recruit Co., Ltd. All Rights Reserved 37 Open model

    https://ai.meta.com/blog/llama-4-multimodal-intelligence/ 2025/04 Llama 4の発表 Open modelの代表格Llamaシリーズがマルチモーダルに対応
  31. © Recruit Co., Ltd. All Rights Reserved 38 どうやって動いているのか Input

    text Tokenizer Model Tokenizer Generated text 私は今日学校へ行きました。 <s>, ▁私は, 今日, 学校, へ, 行き, ました。 [1, 99047, 65675, 68896, 30672, 75498, 78452] encode decode [99047, 65675, 68896, 30672, 75498, 78452, 2] ▁でも, 明日, はお, 休み, です。, </s> でも明日はお休みです。 generate tokens
  32. © Recruit Co., Ltd. All Rights Reserved 39 どうやって動いているのか Tokenizer

    : 分かち書きとトークン↔単語IDの相互変換を行う Modelとセットの存在 ModelとTokenizerの組み合わせを間違えるとめちゃくちゃな出力になる 開発元によって語彙の設計思想が異なる Tokenizerによって分割性能が異なる→1tokenで多くの単語を表現できると効率がいい 近年のOpen modelは大体10k vocabくらい 例: https://huggingface.co/llm-jp/llm-jp-3-150m/blob/main/config.json https://huggingface.co/llm-jp/llm-jp-3-150m/raw/main/tokenizer.json
  33. © Recruit Co., Ltd. All Rights Reserved 40 どうやって動いているのか 出典

    https://ai.meta.com/blog/meta-llama-3-1/ Model: 入力されたTokens (いわゆるprompt)をコンテキストとして1Tokenずつ出力する さらに出力した Token を前提として次々と Token を出力していく これが自己回帰(Auto-regressive)モデルとも呼ばれる所以 Transformerというアルゴリズムのブロックを何層も重ねたモデルアーキテクチャ
  34. © Recruit Co., Ltd. All Rights Reserved 41 どうやって動いているのか でも

    そして あの あなた いま はお の に 休み 父さん にぎり です なの かな 明日 。 ね か 私は, 今日, 学校, へ, 行き, ました。 … … … … … … 畺 冭 ∌ ㉑ ㌍ 豅 Vocab に持っている全ての単語IDに対して生起確率(発生する確率)が計算される 生起確率が高い Token を繋げていくと自然な文章が生成できる 選択肢が非常に多い分類問題を繰り返し解いているとも言える 0.34 0.28 0.24 0.0003 0.25 0.21 0.18 0.0002 0.32 0.27 0.23 0.0003 0.23 0.18 0.12 0.0001 0.35 0.33 0.31 0.0001 0.31 0.24 0.23 0.0002 10k vocabなら 10万の候補
  35. © Recruit Co., Ltd. All Rights Reserved 42 どうやって動いているのか Temperature(温度):

    出力のランダムさ(確率分布の鋭さ)を調整するパラメータ 低い temperature(例: 0.1)→ 確率が高い単語を選びやすくなる(毎回同じような出力) 高い temperature(例: 2.0)→ 確率が低い単語も選ばれる可能性が増える(多様で創造的な出力) 低 : 出やすいTokenがさらに出やすくなる 高 : 多様なTokenが出やすくなる
  36. © Recruit Co., Ltd. All Rights Reserved 43 Top-p :

    上位合計確率pまでが候補 どうやって動いているのか Top-k, Top-p Sampling: 候補となるTokenのカットオフを調整するパラメータ Top-k → 確率が高い上位k個の単語だけに絞って、その中からランダムに選ぶ Top-p → 上位から確率の合計が p を超えるまで単語を集めて、その中からランダムに選ぶ Top-k : 上位k個までが候補
  37. © Recruit Co., Ltd. All Rights Reserved 44 どうやって動いているのか (参考)

    Tokenizerについて詳しく知りたい人向け huggingfaceのトークナイザーを学習する https://blog.recruit.co.jp/data/articles/huggingface_tokenizer/ 大規模言語モデル PLaMo 2 のためのトークナイザ性能改善 https://tech.preferred.jp/ja/blog/plamo-2-tokenizer/ llm-jp-tokenizer https://github.com/llm-jp/llm-jp-tokenizer
  38. © Recruit Co., Ltd. All Rights Reserved 45 どうやって動いているのか (参考)

    Transformerについて詳しく知りたい人向け GPTとは何か Transformerの視覚化 | Chapter 5, Deep Learning https://www.youtube.com/watch?v=KlZ-QmPteqM 30分で完全理解するTransformerの世界 https://zenn.dev/zenkigen_tech/articles/2023-01-shimizu Attention Is All You Need (あまりにも有名な図の原典→ https://arxiv.org/pdf/1706.03762
  39. © Recruit Co., Ltd. All Rights Reserved 46 どうやって動いているのか 大規模 言語モデル

    Large Language Model モデルパラメータ数 学習データ量 計算資源 ある文章が、どれくらい「自然か」を数値で表すモデル (再掲)
  40. © Recruit Co., Ltd. All Rights Reserved 47 どうやって動いているのか 大規模 言語モデル

    Large Language Model モデルパラメータ数 学習データ量 計算資源 ある文章が、どれくらい「自然か」を数値で表すモデル の性質を応用して、自然なテキストを生成する (次々とそれらしいTokenを選んでいる) (再掲)
  41. © Recruit Co., Ltd. All Rights Reserved 48 どうやって動いているのか Hands-on

    🤲 異なるTokenizerで同じ文章をトークナイズしてみる Notebook : bootcamp_tokenizer.ipynb
  42. © Recruit Co., Ltd. All Rights Reserved 49 どうやって作られるのか 大規模言語モデルの開発は、いくつかのフェーズに分けられる

    Pre-training Instruction Tuning Human Alignment 事前学習 事後学習 Token の自然な並びを覚える タスクの解き方を覚える 人が好む文章に寄せる
  43. © Recruit Co., Ltd. All Rights Reserved 50 どうやって作られるのか Pre-training:

    大量のテキストコーパスを学習データとして Tokens の自然な並びを覚える 自然な並び → 文章で表現した知識とも言える 学習データに正解ラベルを設定しなくても学習が成り立つ自己教師あり学習 大規模言語モデルの開発において、最も計算コストがかかるフェーズ データセットの例: https://huggingface.co/datasets/izumi-lab/mc4-ja-filter-ja-normal 学習フレームワークの例: https://github.com/NVIDIA/NeMo
  44. © Recruit Co., Ltd. All Rights Reserved 51 どうやって作られるのか 例:

    MetaのLlama 3.1 405Bは 15兆tokens を超える学習データを使用 → Wikipedia日本語版の全ページは約19億(1.9B) tokensなので 約7,500倍 16,000基 を超えるNVIDIA H100 GPUを使用 → 1基のお値段570万円なので 全部で約900億円 812GB のモデルサイズ → 1回のcheck pointでこのサイズ 出典 https://ai.meta.com/blog/meta-llama-3-1/
  45. © Recruit Co., Ltd. All Rights Reserved 52 どうやって作られるのか Instruction

    Tuning: 指示(instruction)と理想の出力(outputs)がセットになった学習データを用いる ある指示を与えられた時に、その指示内容(タスク)を遂行するように訓練する 理想の出力が正解ラベルとなる、教師あり学習 (SFT; Supervised Fine-Tuning と表現されることもある) GPT-4o, Geminiなどはあらゆる種類の指示で訓練され、汎用的な能力を身につけている データセットの例: https://huggingface.co/datasets/llm-jp/llm-jp-instructions 学習フレームワークの例 : https://huggingface.co/docs/trl/sft_trainer
  46. © Recruit Co., Ltd. All Rights Reserved 53 どうやって作られるのか Human

    Alignment: Pre-training, Instruction Tuningを終えたモデルは 社会的な規範に反する文章(暴力・性的・ヘイト)を生成する可能性がある モデル安全性や出力品質の向上を目的として実施される 事前学習データは多くはWEBから収集したコーパスであるため (一定のフィルタはされているが)有害なコンテンツを学習している可能性がある 人間が好む文章を生成することで、得られる報酬を最大化する強化学習のアプローチ データセットの例: https://huggingface.co/datasets/llm-jp/hh-rlhf-12k-ja 学習フレームワークの例 : https://huggingface.co/docs/trl/dpo_trainer
  47. © Recruit Co., Ltd. All Rights Reserved 54 どうやって作られるのか (再掲)大規模言語モデルの開発は、いくつかのフェーズに分けられる

    Pre-training Instruction Tuning Human Alignment 事前学習 事後学習 Token の自然な並びを覚える タスクの解き方を覚える 人が好む文章に寄せる
  48. © Recruit Co., Ltd. All Rights Reserved 55 自然言語処理タスク タスク名

    説明 文章分類 文章をカテゴリに分類する 例:スパムメール判定、ジャンル分けなど 品質推定 翻訳や生成文の品質を評価する 例:翻訳の自然さをスコア化 固有表現抽出 人名・地名・組織名などを文章から抽出する 例:「太郎(人名)」「東京(地名)」 機械翻訳 入力した文章を別の言語に自動で翻訳する 文章要約 長い文章の要点を短く要約する 対話 ユーザーとテキストベースの自然な会話を行う 質問応答 ユーザからの質問に対して適切な答えを返す 大規模言語モデル出現以前からある一般的な自然言語処理タスク
  49. © Recruit Co., Ltd. All Rights Reserved 58 自然言語処理タスク Transformer登場以降も、LLM出現までは各タスクに特化するために

    モデルアーキテクチャの一部変更と学習データとFine-Tuningが必要だった 引用論文 “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”(Jacob Devlin, et al. @ Google, arXiv, 2018.)
  50. © Recruit Co., Ltd. All Rights Reserved 59 自然言語処理タスク Transformer登場以降も、LLM出現までは各タスクに特化するために

    モデルアーキテクチャの一部変更と学習データとFine-Tuningが必要だった 引用論文 “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”(Jacob Devlin, et al. @ Google, arXiv, 2018.)
  51. © Recruit Co., Ltd. All Rights Reserved 60 創発性 モデルサイズと学習データ量を増やしていくとタスク性能が急激に向上する現象

    初見のタスクでもある程度のレベルでこなせるのはこの現象のためと考えられる 引用論文 “Emergent Abilities of Large Language Models”(Jason Wei, et al. @ Google, arXiv, 2022.)
  52. © Recruit Co., Ltd. All Rights Reserved 61 Prompting In-context

    learning (ICL): 大規模言語モデルが追加の学習や重みの更新なしに 与えられた文脈(プロンプト)だけを使って新しいタスクをこなす能力 Zero-shot:例を出さずに質問だけを渡す One-shot : 1つだけ例を提示して質問する Few-shot : 複数の例(2~4個程度)を提示して質問する Few-shotではリズムを取っているようにも見える🥁 LLM「ほうほう、なるほど…!」
  53. © Recruit Co., Ltd. All Rights Reserved 62 Prompting 大規模 言語モデル

    Large Language Model モデルパラメータ数 学習データ量 計算資源 ある文章が、どれくらい「自然か」を数値で表すモデル の性質を応用して、自然なテキストを生成する (再再掲)
  54. © Recruit Co., Ltd. All Rights Reserved 63 Prompting 大規模 言語モデル

    Large Language Model モデルパラメータ数 学習データ量 計算資源 ある文章が、どれくらい「自然か」を数値で表すモデル の性質を応用して、自然なテキストを生成する ことが高度化すると、指示に従って未知のタスクを実行できる (再再掲)
  55. © Recruit Co., Ltd. All Rights Reserved 64 Prompting 大規模言語モデルを混乱させないために

    LLMの気持ちを考えたPromptを書くことが大事 (個人の意見です) 大規模言語モデルが混乱しないように • 一般的な言葉遣いや言い回しをする (Pre-training データに含まれるような) • よくある自然言語処理タスクに落とし込む (Instruction データに含まれるような) • 読みやすい語順で書く (対数尤度が0に近づくような) • 曖昧性を排除した指示をする (Tokenの確率分布が鋭くなるような)
  56. © Recruit Co., Ltd. All Rights Reserved 65 Prompting https://www.promptingguide.ai/jp

    Prompt Engineering のテクニックは色々なところで公開されているので割愛します
  57. © Recruit Co., Ltd. All Rights Reserved 66 性能評価 大規模言語モデルの性能評価:

    モデル自体の総合的な性能評価(ベンチマーク) Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena ELYZA-tasks-100 LLM-jp-eval ユースケースごとの評価 解きたいタスクに応じて評価設計をする これが超大事&難しい
  58. © Recruit Co., Ltd. All Rights Reserved 67 性能評価 大規模言語モデルの出力を評価する手法:

    • ロジックベース • 編集距離 • 文ベクトルのコサイン類似度 • LLM-as-a-Judge • 気合いの目検証🥹 ..
  59. © Recruit Co., Ltd. All Rights Reserved 68 性能評価 大規模言語モデルの出力を評価する意義:

    観点① 安全性の担保 LLMは原理上、何でも出力しうる しかしエンドユーザにとってはプロダクトの内部機構は関係ない 許容できないリスクは事前チェック+モニタリングする ref : https://www.promptfoo.dev/docs/red-team/llm-vulnerability-types/
  60. © Recruit Co., Ltd. All Rights Reserved 69 性能評価 大規模言語モデルの出力を評価する意義:

    観点② タスク品質の担保 LLMを使うのはタスクを実現したいから よってタスクに対する要求品質を満たす必要がある 品質を満たしているかは評価して確かめる LLM施策でありがちなことは 「なんとなく良さそう」 (Promptで何でもすぐに試せてしまうことが仇となる) 特にエンハンス開発の場合、定量的な評価指標を設定しないと 良い/悪いのどちらに向かっているのかわからなくなる
  61. © Recruit Co., Ltd. All Rights Reserved 70 性能評価 Whale

    LM Projectで開発した評価用ライブラリ
  62. © Recruit Co., Ltd. All Rights Reserved 71 評価対象文 スコア

    理由 Input Output LLM-as-a-Judgeのみ • LLM-as-a-Judge • NLP metrics • NG word detection • Custom evaluation model • 主要な評価観点/手法をひとまとめに • シンプルなインターフェイスで使いやすく • 安全性 • タスク品質 評価観点 評価手法 性能評価
  63. © Recruit Co., Ltd. All Rights Reserved 72 性能評価 Hands-on

    🤲 評価方法の一つLLM-as-a-judge を試してみる Notebook : bootcamp_whalify.ipynb
  64. © Recruit Co., Ltd. All Rights Reserved 73 文章埋め込みモデル 文章埋め込みモデル(sentence

    embedding model): 可変長である自然言語のテキストを、固定長ベクトルに変換するモデル LLMとセットでよく使われる (e.g. RAG;Retrieval Augmented Generation) https://openai.com/index/introducing-text-and-code-embeddings/
  65. © Recruit Co., Ltd. All Rights Reserved 74 文章埋め込みモデル 何が嬉しい?

    文章の意味を(ある程度)保ったまま数値に変換できる すると..? 文章間の類似度計算ができる → 情報検索・レコメンドなどに使える (RAGはこちらの用法) ref : cosine_similarity — scikit-learn 1.6.1 documentation 機械学習モデルの特徴量として扱える → 分類・回帰タスクに使える
  66. © Recruit Co., Ltd. All Rights Reserved 75 文章埋め込みモデル 文章埋め込みの

    Closed model, Open modelの一例 Closed model : Azure : Azure OpenAI Service モデル | 埋め込み AWS : Amazon Titan Text Embeddings モデル GCP : Text Embeddings API Open model (日本語対応) : pkshatech GLuCoSE : https://huggingface.co/pkshatech/GLuCoSE-base-ja-v2 hotchpotch splade : https://huggingface.co/hotchpotch/japanese-splade-v2 cl-nagoya ruri : https://huggingface.co/cl-nagoya/ruri-base-v2
  67. © Recruit Co., Ltd. All Rights Reserved 76 文章埋め込みモデル (参考)

    文章埋め込みモデルについて詳しく知りたい人向け Ruri: 日本語に特化した汎用テキスト埋め込みモデル https://zenn.dev/hpp/articles/b5132c64c40d24 エンベディング | Gemini API | Google AI for Developers https://ai.google.dev/gemini-api/docs/embeddings?hl=ja
  68. © Recruit Co., Ltd. All Rights Reserved 78 LLM as

    a Workshop 1. Structured OutputでLLMからの出力を構造化する 2. Closed LLMを用いた簡易RAGシステムの構築
  69. © Recruit Co., Ltd. All Rights Reserved 79 Structured OutputでLLMからの出力を構造化する

    Google colabを使います Notebook : bootcamp_structured_output.ipynb 目的: Closed LLMで提供されている機能 Structured Output を使うことで LLMからの出力を構造化できることを確認する 構造化することで、後処理が楽になることを実感する
  70. © Recruit Co., Ltd. All Rights Reserved 80 Closed LLMを用いた簡易RAGシステムの構築

    Google colabを使います Notebook : bootcamp_rag.ipynb 目的: LLM活用の文脈でよく語られる RAG (Retrieval Augmented Generation)システムの構成を確認する RAGが情報検索と文章生成の組み合わせで成り立っていることを実感する
  71. © Recruit Co., Ltd. All Rights Reserved 82 Closed LLMを用いた簡易RAGシステムの構築

    ステップ①:ドキュメントの準備・保存 • 目的:検索対象となる知識ソースを準備 • 内容: ◦ PDF、HTML、テキストなどのドキュメントを収集 ◦ セクション単位や段落単位など、検索しやすいサイズに分割 ◦ 例:論文、社内FAQ、商品マニュアル
  72. © Recruit Co., Ltd. All Rights Reserved 83 Closed LLMを用いた簡易RAGシステムの構築

    ステップ②:埋め込み(ベクトル化) • 目的:検索性を高めるため、文書をベクトル化する • 内容: ◦ 文書ごとに埋め込みモデル(例:sentence-transformersやOpenAI Embeddings)を使ってベクトルを作成 ◦ これをベクトルストア(FAISS, Weaviate, Qdrantなど)に格納
  73. © Recruit Co., Ltd. All Rights Reserved 84 Closed LLMを用いた簡易RAGシステムの構築

    ステップ③:クエリを受け取る(Prompt入力) • 目的:ユーザーからの質問を受け取る • 内容: ◦ 自然文の質問を自然文のまま受け取る(例:「商品Aの返品規定は?」)
  74. © Recruit Co., Ltd. All Rights Reserved 85 Closed LLMを用いた簡易RAGシステムの構築

    ステップ④:関連文書の検索(Retrieval) • 目的:クエリと関連の高い文書をベクトル空間から取得 • 内容: ◦ クエリも埋め込みベクトルに変換し、ベクトルストアから類似度の高い文書をK件取得(Top-K検索) ◦ 検索アルゴリズムの例:コサイン類似度、近似最近傍検索(ANN)
  75. © Recruit Co., Ltd. All Rights Reserved 86 Closed LLMを用いた簡易RAGシステムの構築

    ステップ⑤:回答生成用プロンプトの構築 • 目的:検索結果+ユーザークエリを使って、回答生成用のプロンプトを組み立てる • プロンプト例: ◦ System: 以下の文脈を参考にユーザーの質問に答えてください。 ◦ Context: [検索結果1] [検索結果2] ... ◦ User: 商品Aの返品規定は?
  76. © Recruit Co., Ltd. All Rights Reserved 87 Closed LLMを用いた簡易RAGシステムの構築

    ステップ⑥:回答生成とレスポンス返却 • 目的:検索した情報に基づいて回答を生成する • モデルの出力をそのまま返す or 必要に応じて後処理(ハイライト、要約など)して返す
  77. © Recruit Co., Ltd. All Rights Reserved 88 研修のまとめ •

    大規模言語モデルを使って俳句大会をしました • 大規模言語モデルを使ってテキストごとの対数尤度を出力しました • 大規模言語モデルのTokenizerを使ってその役割を理解しました • 大規模言語モデルを使ってLLM-as-a-judgeを試してみました • 大規模言語モデルのStructured Outputを使って出力の構造化をしました • 大規模言語モデルで簡単なRAGシステムを作ってみました Part 0:大規模言語モデルで遊ぶ Part 1:大規模言語モデルってなんですか Part 2 : Deep dive into LLM Part 3 : LLM as a Workshop
  78. © Recruit Co., Ltd. All Rights Reserved 90 参考書籍 •

    自然言語処理の教科書 ◦ 深層学習に限らない自然言語処理の全般知識 ◦ 付録の「参考文献・関連論文」がとてもよい • ゼロから作るディープラーニング② ◦ Transformer登場以前の自然言語処理×深層学習モデル ◦ 古典からしっかり抑えたい人向け • 大規模言語モデル入門 ◦ LLMの動作原理を知りたい人向け ◦ Transformerの説明がとてもわかりやすい • 大規模言語モデル入門Ⅱ ◦ LLMの評価について詳しく記述されている ◦ RAGシステムの実装例あり
  79. © Recruit Co., Ltd. All Rights Reserved 91 読み物系 参考リンク

    • 大規模言語モデルを作る、拡張する - Speaker Deck • LLMのプロダクト装着と独自モデル開発 - Speaker Deck • NLP2024-チュートリアル3-作って学ぶ 日本語大規模言語モデル • 大規模モデルを支える分散並列学習のしくみ Part1 • 大規模言語モデルの事前学習知見を振り返る • Prompt Tuning から Fine Tuning への移行時期推定 - Speaker Deck • LLMを「速く」「安く」 動かすには / CloudNative Days Winter 2024 - Speaker Deck • LLM テクニックの習得: 推論の最適化 - NVIDIA 技術ブログ • ベクトル検索システムの気持ち - Speaker Deck • GitHub - llm-jp/awesome-japanese-llm: 日本語LLMまとめ - Overview of Japanese LLMs • LLM-jp • Prompt Engineering | Kaggle