USD 22.11
Amazon Points: 106pt  (3%)  See details
USD 22.18 delivery Thursday, September 3. Order within 4 hrs 2 mins. Details
Or fastest delivery Tuesday, August 25. Details
In Stock Click here for details of availability.
USD USD 22.11 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
USD USD 22.11
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Shipper / Seller
Gift options
Available at checkout
Available at checkout This item is a gift. Change
At checkout, you can add a custom message, a gift receipt for easy returns and have the item gift-wrapped
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
Added to

Sorry, there was a problem.

There was an error retrieving your Wish Lists. Please try again.

Sorry, there was a problem.

List unavailable.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

  • 大規模言語モデル入門

Follow the authors

Get new release updates & improved recommendations
See all
Something went wrong. Please try your request again later.

大規模言語モデル入門

4.3 out of 5 stars (135)

{"desktop_buybox_group_1":[{"displayPrice":"USD 22.11","priceAmount":22.11,"currencySymbol":"USD","integerValue":"22","decimalSeparator":".","fractionalValue":"11","symbolPosition":"left","hasSpace":true,"showFractionalPartIfEmpty":true,"offerListingId":"Ja00Je055weKLenaZ03q1alljREnjt%2FlyknGYwi8LSwg5UBsYxOxumq9je8DYZfcqjIY5INva4F2kbYdje9ZbWN5LgVD2zqdVY5hOrpcu6MMYh8KZ4PtOXyuhdhd%2BIlitvV7dlg1A1A%3D","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}]}

Purchase options and add-ons

コンピュータが言語を理解するしくみ

ChatGPTに代表される大規模言語モデルが自然言語処理の幅広いタスクで高い性能を獲得し、大きな話題となっています。大規模言語モデルは、大規模なテキストデータで訓練された大規模なパラメータで構成されるニューラルネットワークです。2020年以降、自然言語処理や機械学習の知見をもとに、パラメータ数とテキストデータの拡大により、性能が飛躍的に向上しました。
Hugging Face社の""transformers""というPythonライブラリを利用することで、プログラミングの経験があれば、モデルの操作やデータからの学習がかんたんにできます。モデルを訓練するための日本語もしくは日本語を含む多言語のデータセットも充実してきており、すぐに業務に使える実用的なモデルを作ることが可能な時代がやってきました。
本書は、大規模言語モデルの理論と実装の両方を解説した入門書です。大規模言語モデルの技術や自然言語処理の課題について理解し、実際の問題に対処できるようになることを目指しています。以下のような構成によって、理論とプログラミングの双方の側面から、大規模言語モデルに関する情報を提供します。

(こんな方におすすめ)
・大規模言語モデルに興味のあるエンジニア、学生、研究者

(目次)
第1章 はじめに

■ 1.1 transformersを使って自然言語処理を解いてみよう
■■ 1.1.1 文書分類
■■ 1.1.2 自然言語推論
■■ 1.1.3 意味的類似度計算
■■ 1.1.4 固有表現認識
■■ 1.1.5 要約生成
■ 1.2 transformersの基本的な使い方
■ 1.3 単語埋め込みとニューラルネットワークの基礎
■ 1.4 大規模言語モデルとは

第2章 Transformer

■ 2.1 概要
■ 2.2 エンコーダ
■■ 2.2.1 入力トークン埋め込み
■■ 2.2.2 位置符号
■■ 2.2.3 自己注意機構
■■ 2.2.4 マルチヘッド注意機構
■■ 2.2.5 フィードフォワード層
■■ 2.2.6 残差結合
■■ 2.2.7 層正規化
■■ 2.2.8 ドロップアウト
■ 2.3 エンコーダ・デコーダ
■■ 2.3.1 交差注意機構
■■ 2.3.2 トークン出力分布の計算
■■ 2.3.3 注意機構のマスク処理
■2.4 デコーダ

第3章 大規模言語モデルの基礎

■ 3.1 単語の予測から学習できること
■ 3.2 GPT(デコーダ)
■■ 3.2.1 入力表現
■■ 3.2.2 事前学習
■■ 3.2.3 ファインチューニング
■■ 3.2.4 transformersで使う
■ 3.3 BERT・RoBERTa(エンコーダ)
■■ 3.3.1 入力表現
■■ 3.3.2 事前学習
■■ 3.3.3 ファインチューニング
■■ 3.3.4 transformers で使う
■ 3.4 T5(エンコーダ・デコーダ)
■■ 3.4.1 入力表現
■■ 3.4.2 事前学習
■■ 3.4.3 ファインチューニング
■■ 3.4.4 transformers で使う
■ 3.5 多言語モデル
■ 3.6 トークナイゼーション
■■ 3.6.1 バイト対符号化
■■ 3.6.2 WordPiece
■■ 3.6.3 日本語の扱い

第4章大規模言語モデルの進展

■ 4.1 モデルの大規模化とその効果
■ 4.2 プロンプトによる言語モデルの制御
■■ 4.2.1 文脈内学習
■■ 4.2.2 chain-of-thought推論
■ 4.3 アライメントの必要性
■■ 4.3.1 役立つこと
■■ 4.3.2 正直であること
■■ 4.3.3 無害であること
■■ 4.3.4 主観的な意見の扱い
■ 4.4 指示チューニング
■■ 4.4.1 データセットの再利用
■■ 4.4.2 人手でデータセットを作成
■■ 4.4.3 指示チューニングの問題
■ 4.5 人間のフィードバックからの強化学習
■■ 4.5.1 報酬モデリング
■■ 4.5.2 強化学習
■■ 4.5.3 REINFORCE
■■ 4.5.4 指示チューニングとRLHF
■ 4.6 ChatGPT

第5章 大規模言語モデルのファインチューニング

■ 5.1 日本語ベンチマーク:JGLUE
■■ 5.1.1 訓練・検証・テストセット
■■ 5.1.2 大規模言語モデルのためのベンチマーク
■■ 5.1.3 JGLUEに含まれるタスクとデータセット
■ 5.2 感情分析モデルの実装
■■ 5.2.1 環境の準備
■■ 5.2.2 データセットの準備
■■ 5.2.3 トークナイザ
■■ 5.2.4 データセット統計の可視化
■■ 5.2.5 データセットの前処理
■■ 5.2.6 ミニバッチ構築
■■ 5.2.7 モデルの準備
■■ 5.2.8 訓練の実行
■■ 5.2.9 訓練後のモデルの評価
■■ 5.2.10 モデルの保存
■ 5.3 感情分析モデルのエラー分析
■■ 5.3.1 モデルの予測結果の取得
■■ 5.3.2 全体的な傾向の分析
■■ 5.3.3 モデルのショートカットに注意
■ 5.4 自然言語推論・意味的類似度計算・多肢選択式質問応答モデルの実装
■■ 5.4.1 自然言語推論
■■ 5.4.2 意味的類似度計算
■■ 5.4.3 多肢選択式質問応答
■ 5.5 メモリ効率の良いファインチューニング
■■ 5.5.1 自動混合精度演算
■■ 5.5.2 勾配累積
■■ 5.5.3 勾配チェックポインティング
■■ 5.5.4 LoRAチューニング
■ 5.6 日本語大規模言語モデルの比較
■■ 5.6.1 LUKE
■■ 5.6.2 DeBERTa V2
■■ 5.6.3 性能比較

第6章 固有表現認識

■ 6.1 固有表現認識とは
■ 6.2 データセット・前処理・評価指標
■■ 6.2.1 データセット
■■ 6.2.2 前処理
■■ 6.2.3 評価指標
■ 6.3 固有表現認識モデルの実装
■■ 6.3.1 BERTのファインチューニング
■■ 6.3.2 固有表現の予測・抽出
■■ 6.3.3 検証セットを使ったモデルの選択
■■ 6.3.4 性能評価
■■ 6.3.5 エラー分析
■■ 6.3.6 ラベル間の遷移可能性を考慮した予測
■■ 6.3.7 CRFによるラベル間の遷移可能性の学習
■ 6.4 アノテーションツールを用いたデータセット構築
■■ 6.4.1 Label Studioを用いたアノテーション
■■ 6.4.2 Hugging Face Hubへのデータセットのアップロード
■■ 6.4.3 構築したデータセットでの性能評価

第7章 要約生成

■ 7.1 要約生成とは
■ 7.2 データセット
■ 7.3 評価指標
■■ 7.3.1 ROUGE
■■ 7.3.2 BLEU
■■ 7.3.3 BERTScore
■ 7.4 見出し生成モデルの実装
■■ 7.4.1 T5のファインチューニング
■■ 7.4.2 見出しの生成とモデルの評価
■ 7.5 多様な生成方法による見出し生成
■■ 7.5.1 テキスト生成における探索アルゴリズム
■■ 7.5.2 サンプリングを用いたテキスト生成
■■ 7.5.3 長さを調整したテキスト生成

第8章 文埋め込み

■ 8.1 文埋め込みとは
■■ 8.1.1 文埋め込みの目的
■■ 8.1.2 文埋め込みの性能評価
■■ 8.1.3 文埋め込みモデルの必要性
■■ 8.1.4 文埋め込みモデルを使わずに文ベクトルを得る
■ 8.2 文埋め込みモデルSimCSE
■■ 8.2.1 対照学習
■■ 8.2.2 教師なしSimCSE
■■ 8.2.3 教師ありSimCSE
■ 8.3 文埋め込みモデルの実装
■■ 8.3.1 教師なしSimCSEの実装
■■ 8.3.2 教師ありSimCSEの実装
■ 8.4 最近傍探索ライブラリFaissを使った検索
■■ 8.4.1 最近傍探索ライブラリFaiss
■■ 8.4.2 Faissを利用した最近傍探索の実装
■■ 8.4.3 類似文検索のウェブアプリケーションの実装

第9章 質問応答

■ 9.1 質問応答システムのしくみ
■■ 9.1.1 質問応答とは
■■ 9.1.2 オープンブック・クローズドブック
■ 9.2 データセットと評価指標
■■ 9.2.1 AI王データセット
■■ 9.2.2 評価指標
■ 9.3 ChatGPTにクイズを答えさせる
■■ 9.3.1 OpenAI API
■■ 9.3.2 効率的なリクエストの送信
■■ 9.3.3 クイズ用のプロンプトの作成
■■ 9.3.4 API使用料金の見積もり
■■ 9.3.5 クイズデータセットによる評価
■■ 9.3.6 文脈内学習
■■ 9.3.7 言語モデルの幻覚に注意
■ 9.4 文書検索モデルの実装
■■ 9.4.1 文書検索を組み込んだ質問応答システム
■■ 9.4.2 質問応答のための文書検索モデル
■■ 9.4.3 BPRの実装
■■ 9.4.4 BPRによるパッセージの埋め込みの計算
■ 9.5 文書検索モデルとChatGPTを組み合わせる
■■ 9.5.1 検索モデルの準備
■■ 9.5.2 検索結果のプロンプトへの組み込み

Frequently bought together

This item: 大規模言語モデル入門
USD22.11
In Stock
Ships from and sold by Amazon.co.jp.
+
USD20.72
In Stock
Ships from and sold by Amazon.co.jp.
+
USD25.01
In Stock
Ships from and sold by Amazon.co.jp.
Total price: $00
To see our price, add these items to your cart.
Total Points:pt
Details
Added to Cart
Choose items to buy together.

From the Publisher

大規模言語モデル入門
大規模言語モデル入門Ⅱ
Customer Reviews
4.3 out of 5 stars 135
4.3 out of 5 stars 32
Price USD 22.11 USD 20.72
本書は、大規模言語モデルの理論と実装の両方を解説した入門書です。大規模言語モデルの技術や自然言語処理の課題について理解し、実際の問題に対処できるようになることを目指しています。 「大規模言語モデル入門」の続編です。「大規模言語モデル入門」は理論と実装のバランスをとって構成しましたが、本書では実装部分で扱い切れなかった話題を取り上げ、特に大規模言語モデルの評価と生成LLMに関連する解説を充実させます。

Product description

About the Author

山田 育矢(やまだ いくや)
株式会社Studio Ousia代表取締役チーフサイエンティスト・理化学研究所革新知能統合研究センター客員研究員
2007年にStudio Ousiaを創業し、自然言語処理の技術開発に従事。
2016年3月に慶應義塾大学大学院政策・メディア研究科博士後期課程を修了し、博士(学術)を取得。
大規模言語モデルLUKEの開発者。
監修と1章から4章の執筆を担当。

鈴木 正敏(すずき まさとし)
株式会社Studio Ousiaソフトウェアエンジニア・東北大学データ駆動科学・AI教育研究センター学術研究員
2021年3月に東北大学大学院情報科学研究科博士後期課程を修了し、博士(情報科学)を取得。
博士課程では質問応答の研究に従事。
日本語質問応答のコンペティション「AI王」の実行委員。
東北大学が公開している日本語BERTの開発者。
8章と9章の約半分の執筆を担当。

山田 康輔(やまだ こうすけ)
株式会社Studio Ousiaリサーチエンジニア・名古屋大学大学院情報学研究科博士後期課程3年
2021年3月名古屋大学大学院情報学研究科博士前期課程修了。
2022年4月より日本学術振興会特別研究員 (DC2)。
自然言語処理、特にフレーム意味論に関する研究に従事。
6章と7章の執筆を担当。

李 凌寒(り りょうかん)
LINE株式会社(2023年10月よりLINEヤフー株式会社)自然言語処理エンジニア
2023年3月に東京大学大学院情報理工学系研究科博士後期課程を修了し、博士(情報理工)を取得。
博士課程では言語モデルの解析や多言語応用の研究に従事。
大規模言語モデルmLUKEの開発者。
5章と9章の約半分の執筆を担当。

Product Details

  • Publisher ‏ : ‎ 技術評論社
  • Publication date ‏ : ‎ July 29, 2023
  • Language ‏ : ‎ Japanese
  • Print length ‏ : ‎ 336 pages
  • ISBN-10 ‏ : ‎ 4297136333
  • ISBN-13 ‏ : ‎ 978-4297136338
  • Item Weight ‏ : ‎ 1 g
  • Dimensions ‏ : ‎ 9.06 x 7.17 x 0.63 inches
  • Amazon Bestseller: #24,888 in Japanese Books (See Top 100 in Japanese Books)
  • Customer Reviews:
    4.3 out of 5 stars (135)

About the authors

Follow authors to get new release updates, plus improved recommendations.

Customer reviews

4.3 out of 5 stars
135 global ratings

Top reviews from Japan

    Translated by Amazon
    See original
  • 5 out of 5 stars
    TRANSFORMERの技術が体系的にわかる(ニューラルネットワークの基礎がわかっている人向け)
    Reviewed in Japan on January 12, 2024
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    ChatGPTの登場によりさまざまな技術が塗り替えられつつある昨今だが、2023年当時におけるTransformer技術の体系を素早く一冊で学べる。

    主に以下のTransformerの技術が実装を踏まえて学べる。(各実装はHuggingFaceのTransformerライブラリを使用して行なっている。Transformer自体のモデルの説明概要が数式を含めて述べられているがニューラルネットワーク技術の基礎を理解している必要がある。)

    Transformer:

    ・感情分析:テキストから読み取れる感情を検出する文書分類のこと(ネガティブ、ポジティブ、中立)

    ・自然言語推論:2つのテキストの論理関係を予測するタスク(含意、矛盾、中立)

    ・意味的類似計算:2つのテキストが似ている度合いをスコアとして予測する

    ・固有表現認識:テキストに含まれる固有表現を抽出するタスク

    ・要約生成:比較的長い文章から短い要約を生成するタスク

    補助的技術:

    ・文埋め込みモデル:SimCSE, BPR

     意味類似度計算などで毎回推論するとコストが高いため、あらかじめ文に対して評価したベクトル値を埋め込み、ベクトル値のみの比較で類似計算して処理を軽くする技術。インデックスを張ってさらに高速化もできる。

    最終的に、質疑応答アプリを作成する。(実装は、文書検索モデルで質疑内容に関する類似文を抽出し、それをChatGPTで回答文に加工生成する)

    全ての実装コードはGoogle Colabを使用した実装ファイルを提供してくれているため、検証がしやすい。(Colabアップデートによるバグの更新もあり)

    最終章のChatGPTと文書検索モデルを連携した質疑応答アプリは、Google Colabの無料枠では実行できない規模(課金必須)になっているので注意が必要。ChatGPTのAPI利用にも課金する実装となっている。

    初心者はニューラルネットワーク技術の基礎を事前に理解しておく必要があるかもしれないが、2023年時点でのトレンドを押さえるには良書だと感じた。

    ----------

    以下内容メモ

    ●1章:初めに

    自然言語処理:ニューラルネットワークを使った大規模言語モデルによる手法が標準的となる。

    transformerライブラリ:HuggingFace 2016年に創設された企業が開発したもの。社の他のサービスでライブラリやデータセットを無料で共有できるHuggingFace Hubの提供もしている。

    Transformerでできる自然言語処理

    ・感情分析:テキストから読み取れる感情を検出する文書分類のこと(ネガティブ、ポジティブ、中立)

    ・自然言語推論:2つのテキストの論理関係を予測するタスク(含意、矛盾、中立)

    ・意味的類似計算:2つのテキストが似ている度合いをスコアとして予測する

    ・固有表現認識:テキストに含まれる固有表現を抽出するタスク

    ・要約生成:比較的長い文章から短い要約を生成するタスク

    単語埋め込みとニューラルネットワークの基礎:

    単語の意味をコンピュータに教える手法。従来は人手で辞書を作り理解させる>WordNetなど

    デメリット:専門用語、固有名詞、新語など全てをカバーするのは難しい。

    2013年:word2vecなど、単語の意味を表現したベクトルを大規模なテキストから学習するニューラルネットワークが出現。

    こうしたベクトルのことを、単語埋め込み、単語ベクトル、単語表現、などと呼ぶ。

    自然言語処理に用いるために構築されたテキストをコーパスと呼ぶ。

    word2vec:単語の意味は、周辺に出現する単語によって表わせると考える分布仮説に基づいて設計されている。周辺の単語が知らない単語の意味を表すことを裏付けている。

    単語のベクトルの空間上で、関連性の高い単語同士は近くに配置される。

    自己教師あり学習:入力から自動的に予測するラベルを生成して学習を行う方式。

    教師あり学習:人手でラベルを付与したデータセットを使って学習を行う。

    1.4:大規模言語モデルとは

     文脈:マウスでも、前後の文脈から動物のネズミか、PC機器のマウスか判断できる。また、似たような文章のニュアンスの違いを理解できる。

    >文脈化単語埋め込みとTransformerの発案

    >こうした事前学習した大規模なニューラルネットワークは、大規模言語モデル、PLM:Pre-Trained-Language-Model 事前学習済み言語モデルとも呼ばれる

    また、事前学習されたモデルを下流タスクのデータセットで微調整することを、ファインチューニングと呼ぶ。

    ファインチューニングと転移学習の違い

    ・ファインチューニング:下位層(低レベルな普遍的なおおまかな特徴のデータ)を固定し、上層(高レベルの具体的な特徴のデータ)の一部または全てを学習。事前学習させたモデルを、特化したいデータを元に再学習させて、モデルのパラメータを調整し、特定タスクに適用するモデルを生成すること。

    ・転移学習:ファインチューニングは転移学習の一部。他のタスクで得た知識を他のタスクに適用させるアプローチ全体を指す。

    ●2章:TRANSFORMER

    Transformer:2017年にgoogleが提案したニューラルネットワーク。当初は機械翻訳のモデルとして提案されたが、やがて大規模言語モデルを含む幅広いタスクに応用され、自然言語処理において2023年の執筆時点で標準的に利用されるニューラルネットワークとなる。

    Transfoermerの入力には、単語より細かい単位の「サブワード」や文字を使うことが一般的。>3.6章

    Transformerの種類:3種

    ・エンコーダ・デコーダ:エンコーダ、デコーダで2種類の異なる入力を扱う

    ・エンコーダのみ:入力に対する文脈化トークン埋め込みを出力するモデル

    ・デコーダのみ:入力から次のトークを予測するモデル

    エンコーダ:

    L個のブロックで多段的に文脈情報を付与する。この多段的な処理によって、低い位置にある層では表層的に、中間にある層では文法的に、高い位置にある層では意味的に、と言う感じでより複雑で抽象的な文脈を捉えられるようになると考えられている。

    自己注意機構:

    トークンの重要度を加味しながら、文脈化を担う仕組み

    Transformerではキー、クエリ、バリューの3つの異なる埋め込みを計算する

    フィードフォワード層:

    順伝播型ニューラルネットワークと同じ構造

    入力された位置のベクトルのみに閉じて計算される

    活性化関数>初期はreLU、大規模言語モデルではG誤差線形ユニットが標準的に用いられている

    提案時のTransformerでは入力次元D=512に対して中間層の次元は4倍の2048が使われている。この結果フィードフォワード層に含まれるパラメータは、Transformer全体のパラメータの2/3を占める。

    残差結合:

    勾配消失、勾配爆発の問題を防ぐ。

    層正規化:

    過剰に大きい値によって訓練が不安定になるのを防ぐために、ベクトル値を正規化して対応する。

    ドロップアプト:

    訓練データセットに対して、モデルが過適合するのを防ぐための正規化の仕組み。

    依存しすぎないように、要素を欠落させる。

    エンコーダ・デコーダ:デコーダの一つ目は自己注意機構、2つ目は交差注意機構

    両方ともキー・クエリ・バリュー注意機構が使われる。

    デコーダのブロックの自己注意機構ではマスク処理が行われる。

    デコーダ:

    エンコーダ・デコーダ構成のデコーダから交差注意機構を除いた構成。

    ●3章:大規模言語モデルの基礎

    Transformer3種の事前学習、ファインチューニングの説明。

    大規模言語モデルは、大規模コーパスに含まれるトークンを予測する学習を通じて訓練されている。

    ・3.2 GPT(デコーダ):

     GPT: Generative Pre-trained Transformer 2018年OpenAIが提案。

    7000冊の書籍から作成した訓練コーパスを使い事前学習したもの。

    大規模なパラメータを含むtransformerを使った言語モデルを大規模なコーパスで訓練した大規模言語モデルの最も初期のモデル。

    仕組み:先行するトークン列から、次のトークンを予測する。

    ファインチューニング

    事前学習済みモデルの上部に追加され、モデルの出力を下流タスクに合わせて変換する層のことを「ヘッド(head)」とよぶ。

    ・3.3 BERT、RoBERTa(エンコーダ):

     BERT 2018年googleが提唱

     RoBERTa 2019年Facebook が発表。

    デコーダの改良版。

    デコーダは先行するトークン列しか捉えられなかったが、後続するトークン列の双方から文脈を捉えられるように改良。

    事前学習

    マスク言語モデリング:トークンの穴埋めを行うタスク。

    先行するトークン列と、後続するトークン列の双方の文脈情報を用いて、隠したトークンを予測することで、双方向から文脈を捉える訓練をする。

    ・3.4 T5(エンコーダ・デコーダ)

     T5 googleから発表。

    T5: Text to Text Transfer Transformer

    エンコーダ・デコーダ構成を採用した大規模言語モデル。

    エンコーダ・デコーダ構成の利点は、エンコーダによって双方の文脈情報を捉えられることと、デコーダによって自由にテキストで結果を生成できることの双方を活用できる。

    C4と呼ばれる750GBのウェブから抽出された大規模なコーパスが準備され、パラメータもBERT 、RoBERTaより30倍以上多い。

    要約、質問、応答、機械翻訳などに有効。

    エンコーダにテキストを入力してデコーダに結果をテキストで生成させる=text-to-text形式

    text-to-text形式のように、入力となるテキストなどの系列を別の系列に変換することを系列変換(sequence to sequence:seq2seq)と呼ぶ。

    タスクにあったモデルの選択の必要性:文章単位・トークン単位の分類など言語生成が不要なタスクにおいてはBERT RoBERTaの方が性能が高く、処理も早い。

    ・3.5 多言語モデル

     ここまで紹介してきたモデルは、提案時には英語のコーパスで事前学習が行われてたが、コーパスを他の言語に差し替えることで英語以外のモデルを構築できる。

    多言語モデルは、言語に依存しない表現を内部的に獲得していることが示唆されており、それを示す結果として言語横断転移学習ができることが知られて居る。

    例えば、英語の事例のみでファインチューニングした多言語モデルに日本語の事例を解かせることができる。

    世界の言語の中には、自然言語処理に使えるデータが稀少な言語が依然として多く、言語横断転移学習はその言語の課題を解決できる可能性を秘めている。

    モデルの学習には、翻訳データなどの言語間の対応を明示的に示したデータを用いていない。それにもかかわらず、モデルが言語の共通性を捉えることができる。異なる言語間に共通の文字が全く存在しない場合でも起こるため、モデルは言語の抽象的な構造の共通性を手がかりに、言語に依存しない内部表現を獲得して居ると考えらる。

    ・3.6 トークナイゼーション

     語彙を作成する上での問題

    ・低頻度な単語を大量に語彙に含めることで、訓練に使うコーパスにおける単語の頻度に大きな偏りが生まれ、性能に悪影響を及ぼす。

    ・エンコーダの事前学習時、エンコーダ・デコーダまたはデコーダの訓練・推論時に必要な全ての語彙に対する確率計算のコストが増加する

    ・単語埋め込み行列の容量が大きくなり、事前学習・ファインチューニングの際に必要なメモリ容量が増える。

    ・語彙サイズを小さくすると語彙に含まれない単語は未知語となり、モデルで適切に扱うことができなくなる。

    これらの問題を踏まえて、大規模言語モデルで標準的に使われているのが単語と文字の中間の単位であるサブワード。サブワードによる分割では語彙のサイズをハイパーパラメータにすることで分割の粒度を自由に制御できる。

    方法:

    ・バイト対符号化

    ・WordPiece

    日本語の扱い:

    日本語、中国語、韓国語など単語が空白で区切られていない言語を扱う際には工夫が必要。

    MeCabという形態素解析器を使って単語分割を行った後にサブワード分割を行う。

    これによりサブワード分割が単語の境界を跨がずに行われる。

    ●4章;大規模言語モデルの進展

    2023 OpenAI GPT-4(CHAT-GPT)など

    大規模言語モデルのパラメータ数、コーパス数の推移

    パラメータ数:

    2018 BERT 3.4億

    2019 GPT-2 15億

    2020 GPT-3 1750億

    2022 PaLM 5400億

    コーパス数:

    2018 BERT 30億

    2020 GPT-3 3000億

    2022 Chinchilla 1.4兆

    幅広い自然言語のタスクをファインチューニングなしに高性能に解けることを示したデコーダ構成のTransformer。

    モデルが大規模化することで性能が改善する創発的能力がある。

    モデルの大規模化に伴って、従来はファインチューニングをしなうと解けないと思われていた多くのタスクが、モデルのプロンプトと呼ばれるテキストを入力して、後続するテキストを予測するという単純な方法で解けることがわかってきた。

    プロンプトによる言語モデルの制御

     文脈内学習:

     one-shot学習:例示を一つ与える

     few-shot学習:例示を複数与える

     zero-shot学習:例示を全く与えない

    大規模言語モデルが、どのような仕組みで例示から学習してタスクを解くのか、2023年時点では、詳しくわかっていない。

    多段階の推論(マルチステップ推論)の解き方。

    例:部屋に23個のりんごがあります。料理に20個使い、6個買い足したとき何個のりんごがありますか。(問いを解くのに、23−20=3と、3+6=9と言うように2段階で推論が必要なもの)

    複数の推論が必要な際に、推論過程の例示を与えるchain-of-through推論を用いると、性能が改善されることが報告されている。

    または、「ステップごとに推論しよう」と末尾に付与して回答を抽出するzero-shot chain-of-through推論も提案されている。

    このようなことから、大規模言語モデルを使うにあたっては、プロンプトの与え方を工夫することが重要

    ・4.3 アライメントの必要性

     モデルの予測が人間や社会にとって理想的な挙動と一致するとは限らない

    有益で適切な挙動になるように調整することをアライメントとよぶ

    ・4.4 指示チューニング

     指示を含んだプロンプトと理想的な出力テキストの組みで構成されるデータセットを使ったファインチューニングでアライメントを行う方法。

    >人手でコスト高い。

    ・4.5 人間のフィードバックから強化学習

     人間の好みに対して直接最適化することでアライメントを行う。

    ・4.6 ChatGPT

     大規模言語モデルを対話形式で操作する方法を採用。

    指示チューニングとRLHF(人間のフィードバックからの強化学習)を組み合わせた方法で学習。

    対話形式に対応するためのデータセットが新しく追加されている。

    学習方法:

    指示チューニングのデータセットとして、ユーザとモデルの模擬的な会話を含んだデータセットを人手で作成している。ユーザ、モデルのメッセージともに人手で作成。

    作成したデータセットをInstructGPTで用いたデータセットと結合し指示チューニングを行う。

    次に報酬モデルを訓練するために、人間とモデルとの会話を収集したデータセットを構築する。ここでは指示チューニングのデータセットと異なり、モデル側のメッセージは実際のモデルからの出力を使う。そして、このデータセットの中からモデル側のメッセージをランダムに選択し、同一の会話の文脈においていくつかの代わりとなるメッセージをモデルに生成させて、これらの優劣を順序づけすることで、報酬モデル用のデータセットを作成。

    そして報酬モデルのデータセット構築・訓練と強化学習を数回繰り返して最終的なモデルを学習する。

    ●5章:大規模言語モデルのファインチューニング

    この章ではエンコーダ構成の大規模言語モデルを使って解説。

    使用モデル:BERT

    ・5.1日本語ベンチマーク:JGLUE

    データセットとはモデルの学習や評価のためにまとめられたデータの集合で、基本的に次の3つのセット。

     ・訓練セット

     ・検証テスト

     ・テストセット

    データセットを分割しているのは、モデルの汎化性能を計測するため。

    未知データに対して発揮する性能を担保するため。

    JGLUEに含まれるタスクとデータセット:

    ・文章分類

     トピック(ジャンル分類、経済、スポーツなど)、極性(レビュー文の肯定的、否定的分類)

     >SNS投稿を大規模に分析し、トピックを分類することで、世間でどのようなことが話題になっているかいち早く検知できる。>マーケティングに役立てられる

     MARC-ja:多言語商品レビューコーパス

     JCoLA:分布的な容認性判断能力を評価するためのデータセット

    ・文ペア関係予測

     二つの文がどれだけ意味が近いかを表す意味的類似度判定、意味が合致、矛盾かの含意関係の判定

     JNLI:自然言語推論データセット:含意、矛盾、中立のラベルづけされたもの

     JSTS:意味的類似度計算データセット:類似度スコア

    ・質問応答

     与えられた質問に対する答えを出力するタスク。

     JCommonsenseQAは、多岐選択式質問応用のデータセット

    ・5.2 感情分析モデルの実装

     MARC-jaのデータセットを用いて評価

    ・5.3 感情分析モデルのエラー分析

     商品レビューで、文章内容はネガティブでありラベルもネガティブなのだが、「星4つ(最大評価星5つ)」と言う表現があるだけでポジティブの予測をしてしあう。

    つまり、予測のショートカットが行われてしまう。

    この場合は、データセットから「星〜個」などの表現を取り除く必要がある。

    ・5.4 自然言語推論・意味的類似度計算・多岐選択式質問応用モデルの実装

    ・自然言語推論

     データセット:JNLIを使用

    ・意味的類似度計算

     データセット:JSTSを使用

    ・多岐選択式質問応答

     データセット:JCOmmensenseQAを使用

    ・5.5 メモリ効率の良いファインチューニング

    ・自動混合制度演算

     16ビットと32ビットを使い分けることで、高精度かつ高効率な学習を実現

     計算時に16ビットを使って高速化、32ビットの情報も保持し、16ビットで表現できない場合は適宜32ビットで変換する

    データも16ビットで保持できるようアンダーフローしないようにスケールし、パラメータ更新時など実データが必要な場合は32ビットに変換して計算

    ・勾配累積

     バッチサイズを小さくすれば、前向き計算と誤差逆伝播の計算量が減るのでメモリ使用量を削減できる。

    小さなバッチサイズで計算した勾配を集約することで、メモリ使用量を抑えながら実質のバッチサイズを増やす手法

    ・勾配チェックポインティング

     勾配のバッチサイズを増やしたいが、GPUのメモリが足りない時に役立つ手法

    前向き計算における途中の計算結果を間引くことでメモリ消費量を抑える。保持して居る近い計算結果(チェックポイント)から再計算して復元して対応する。

    ・LoRAチューニング

     ファインチューニング時には、パラメータごとに勾配値などの最適化に必要な情報をメモリ上に保持する必要がある。この時のメモリ消費量を抑えるために、更新するパラメータをごく少数にする。

    ・5.6 日本語大規模言語モデルの比較

     BERTの他のモデルの紹介

    ・LUKE

     wikipedieaからえらえるエンティティ情報を取り入れたモデル

     エンコーダ構成のTransformer

    ・DeBERTa-v2

     BERTのアーキテクチャを改良したもの

     Microsoftの研究チームより提案

    ●6章:固有表現認識

    テキストから特定の人名や地名などの固有表現を抽出する固有表現モデルを作成。

    *テキスト上で固有表現ラベルが重複しない場合、重複する場合などで抽出タスクが異なるので注意。

    重複するケース例:

    愛知県庁>愛知県庁=施設名、愛知県=地名、が単語に重複する。

    実応用上の多くの場合(特別な理由がない限り)、flat NER(固有表現ラベル重複なし)の採用で良い。

    本性では、flat NERに対して系列ラベリングアプローチによるBERTをベースとしたモデルを実装。

    データセット:wikipediaを用いた日本語の固有表現抽出データセット2.0を使用

     wikipedia記事中の文に対して、人手で8種類の固有表現ラベルが付与されたもの。

    データ前処理:

     テキストの正規化:異なる表現を統一する

     テキストのトークナイゼーション:サブワード単位でトークナイゼーションする

     文字列とトークン列のアライメント

     系列ラベリングのためのラベル作成

    評価指標

     適合率、再現率、これらの調和的平均であるF値で評価。

    ・6.3固有表現認識モデルの実装

     BERTをベースとする。

    固有表現ラベルを分類するためのヘッドを加えたBERTをファインチューニングすることでモデルを作成。

    ・6.4 アノテーションツールを用いたデータセット構築

     固有表現認識モデルの作成において、適切なデータセットが存在しなければ自前で構築する必要がある。

    アノテーションツールを用いて、テキストデータにラベルを付与することで固有表現認識データセットを構築する方法を解説。LabelStudioというツールを使って解説。

    ●7章:要約生成

     比較的長い文章から重要な内容を含んだ短い要約を生成する

    >要約生成モデル

    出力形式、入力文書数、要約の目的に応じてタスクやアプローチが異なる。

    出力形式:

    ・抽出型要約:入力テキストから要約に含めるべき重要な単語や句、文章を抽出

    抽出型では、本文で述べられていない事実の異なる内容を含んだり、文意を大きく取り違えることは少ない。

     モデル:BERTSUMExt

    ・生成型要約:入力テキストをもとに、新しく要約を生成する

     エンコーダ・デコーダ構成の大規模言語モデルで実装

     エンコーダに長いテキストを入力し、デコーダで要約を生成

     欠点:事実を異なる要約を生成しやすい

    入力文書数:

     単一文章要約:入力テキストと要約が1対1で対応

     複数文書要約:複数の異なるレビュー集合の要約など

    クエリ指向:

     クエリ指向型要約:要約対象の文章と、着目したい情報を入力して要約を生成

     非クエリ指向型要約:クエリを指定しない一般的要約。ニュース記事からの見出し作成

    ・7.4見出し生成モデルの実装

     T5モデルで実装

    ●8章:文埋め込み

    文埋め込みモデルの必要性

    意味的類似度計算がBERT単体で行えるのであれば、文埋め込みモデルは不要では?

    しかし、BERT単体で意味類似度計算を行うことには、応用上、計算量の問題がある。

    FAQ検索を例にすると、FAQとして登録されている1万件の中から最も意味的類似度が高い質問を探す場合、BERTに入力し類似度計算する必要がある。つまり推論を1万回実施する必要がある。

    一方、文埋め込みモデルは、一つの文を入力として受け取り、ベクトルを出力として得ることができるので、FAQの1万件の質問に対してあらかじめ文埋め込みのベクトルを計算しておくことが可能。ユーザが入力した分のベクトルと、一万件のあらかじめ計算しておいたベクトル間での類似計算をすればいい。

    BERT推論より計算量が少なくて済む。

    さらに、最近傍探索ライブラリを用いてインデックス化することで検索を高速化できる。

    ・8.3文埋め込みモデル

     モデル:SimCSE

    対照学習:

    ラベルづけがなされていない大量のデータの中から、互いに類似した事例のペアと異なる事例のペアを取り出し比較することでモデルの学習をする。正例ペアと負例ペアを構成する各事例をベクトルで表現し、正例ペアのベクトルは類似度が高くなるように(=ベクトルを近づける)、負例ペアのベクトルは類似度が低くなるように(=ベクトルを遠ざける)学習を行う。

    教師なしSimCSE

     ラベルづけがされていない大量の文の集合を訓練セットとして用いる

     モデルはドロップアウトを有効にして訓練する。

    教師ありSimCSE

     ラベル付きデータとして自然言語推論データセットを利用して、埋め込みモデル訓練をする。

     ラベル:含意、中立、矛盾

    ・8.4.1最近傍探索ライブラリFaiss

     ベクトルの最近傍探索やクラスタリングを行うためのライブラリ。

    文字埋め込みのような高次元ベクトルを効率的にインデックス化し、クエリのベクトルに対して類似したベクトルを高速に検索できる。

    ・8.4.3 類似文検索のウェブアプリ実装

     pythonのStreamlitライブラリ

     HTMLやJavascriptの記述を必要とせず、pythonコードだけでウェブアプリを実装できる。

    ●9章:質疑応答

    質疑応答システムの種類

    ・オープンブック質問応答

     持ち込み可能試験みたいなもの。質問と与えられた情報源から回答を導き出す

    ・クローズドブック質問対応

     知識源の知識を参照することなく質問への回答を行う

     大規模言語モデルに知識そのものを保持させる。

    ChatGPTを使って実装

    文書検索モデルで質問(入力内容)の検索を大量の文章集合から検索し、プロンプトからの解答書式指示に合わせた解答形式の生成にChatGPTを使用する。

    *文書検索モデル:BPR

    ・9.4.2文書検索モデル

    ・DPR

     質問とパッセージ(一定の長さを持ったテキストのこと)をエンコーダ(BERT)を用いて埋め込みに変換し、それらの内積の値が上位となるパッセージを検索するモデル。

     同じ類似度検索によるSimCSEとはアーキテクチャが異なる。

     デメリット:ベクトルインデックスのメモリコストが大きい

    ・BPR

     DPRの手法を拡張し、パッセージの埋め込みをバイナリ化して計算することで、ベクトルインデックスのサイズを大幅に小さくし計算効率を向上させた手法

    以上。

    48 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Translated from Japanese by Amazon
    See original
  • 4 out of 5 stars
    コードを動かしながら学べる
    Reviewed in Japan on September 27, 2023
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    コードをGoogle Colabで動かしながら理解できます。基礎から最新のLLMまで一通り理解して使えるようになると思います。

    5 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Translated from Japanese by Amazon
    See original
  • 5 out of 5 stars
    transformers使いに必携
    Reviewed in Japan on August 21, 2023
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    transformersで日本語の言語モデルを使う人には必読の本です。

    一読して、理解があやふやだったところがかなり明確になりました。

    また内容が古いというレビューがついていますが、ChatGPTまで含めて最新の内容が詳しく説明されており、内容は古いということはないと思います。

    26 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Translated from Japanese by Amazon
    See original
  • 3 out of 5 stars
    実装に興味がある人向けの本.理論や原理に興味がある人は別の本が良い.
    Reviewed in Japan on August 26, 2025
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    良かった点

    - Huggingface の Transformers の使い方を少し学べた.

    - 様々な問題を LLM で解く際に入出力をどう決めるかの参考になった.

    悪かった点

    - 数式まわりの説明が雑.

    特に2章では入力と出力を定義していないので,エンコーダのみ,エンコーダ・デコーダ構成,デコーダのみのそれぞれの場合で何が出力されるかわからなかった.

    一例だが,図 2.1 から推察するにエンコーダはベクトルを 2 つ出力するが,図 2.2 ではベクトルを 1 つだけ出力するように見える.

    - Transformers や PyTorch に関する知識を持っていないと読むのが困難.

    私は機械学習理論の分野で博士号を持っており,深層学習についても(数式の)基礎知識はあるつもりだったが,実装に関しては素人だったため読むのに苦労した.

    3 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Translated from Japanese by Amazon
    See original
  • 5 out of 5 stars
    「大規模言語モデルとは」の最初の入りとしてはいい
    Reviewed in Japan on August 5, 2023
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    当方大規模言語モデルに興味がある素人ですが、自分にはちょうど難易度的に合っていました。

    説明とコードが交互に出てくるので、実践しながら進められるので、より理解が進むと思います。

    (難易度や雰囲気はサンプルページを参照)

    15 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Translated from Japanese by Amazon
    See original
  • 5 out of 5 stars
    Transformerの概要が数式レベルでわかる
    Reviewed in Japan on November 19, 2023
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    Transformerの概要が数式レベルでわかるのが本書の利点だと思います。初級レベルのベクトルと行列に関する知識があれば分かった気にさせてくれるレベルまで、本書は噛み砕いてくれています。ただし、なぜ、それでモデルがうまく学習できるのか?については明快な解説が無かったのが残念です。

    12 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Translated from Japanese by Amazon
    See original
  • 4 out of 5 stars
    Q&A文脈検索システムのレシピもあります
    Reviewed in Japan on January 31, 2024
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    本序盤の原理の理解ができる対象者の想定はかなり絞られていると思います。

    しかし、実装部分の話では HuggingFace のチュートリアルが読めるだけでは解決しない、日本語を扱う場合にはどうするか、の流れがあります。L1 L2 ノルムの処理入れないと、HF の例のままではスコアが振り切れるケースへの対応等もさらっと書かれていて役立ちました。

    ひと工夫、ふた工夫したら、実務で使えるシステムが造れました。

    13 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Translated from Japanese by Amazon
    See original
  • 5 out of 5 stars
    どこが古いの?
    Reviewed in Japan on August 16, 2023
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    よい書籍だと思いましたが、内容をきちんと読んだとは思えないレビューがたくさんついていて驚きました。

    私は、普段はとある企業で金融系のデータをいじっている門外漢ですが、特に問題なく読めました。

    内容については、Transformerの説明は非常にわかりやすく、LLMの日本語のトークナイゼーション、LLMにアライメントが必要な理由、指示チューニングとRLHFの比較あたりはとてもよく理解できました。

    論文も多数引用されていて親切です。

    LLMを使うだけでなく、原理を勉強したい人におすすめです。

    44 people found this helpful
    Sending feedback...
    Thank you for your feedback.
    Sending feedback...
    Thanks, we'll investigate in the next few days.
    Translated from Japanese by Amazon
    See original