見出し画像

友だちPython ep6. transformers

はじめに


友だちPython シリーズのご紹介

友だちPython シリーズは、Python の小ネタを短文でお届けします。
小さなエピソードを重ねてPythonと仲良しになれたら、と願ってシリーズ名を付けました。

話題


大規模言語モデル入門

書籍「大規模言語モデル入門」(技術評論社)をご紹介いたします。

この書籍は、ChatGPTなどに代表される「大規模言語モデル(LLM)」について、コードを写経しつつ、基礎から学べる良書です。
Google Colaboratory環境でPythonを動かして、さまざまな自然言語処理タスクにチャレンジできます。

この記事は transformers と PyTorch の仲違いに起因する課題に取り組みます。

今回の友だち

■ transformers (トランスフォーマーズ)
大規模言語モデルの中枢を担う精鋭です。

変形ロボのイラスト:「いらすとや」さんより

問題の概要

第5章の感情分析モデルの実装において、5.2.8「訓練の実行」の最初のコードでエラーが発生しました。

実行環境
・Google Colaboratory(2023年11月28日時点)

表情が豊かな人のイラスト(女性):「いらすとや」さんより

エラー内容

transformers の Trainer に渡す設定を定義するクラス「TrainingArgments」の実行時にエラーが発生しました。

■ エラー発生元のコード

エラー発生元のコード

■ エラーメッセージ

ImportError: Using the `Trainer` with `PyTorch` requires `accelerate>=0.20.1`: Please run `pip install transformers[torch]` or `pip install accelerate -U`

【意訳】インポートエラー:「PyTorch」と一緒に「Trainer」を使用するときには「accelerate」はバージョン0.20.1以上が要求されます。「pip install transformers[torch]」または「pip install accelerate -U」を実行して下さい。

エラーメッセージの全貌


対処方法

プログラミングコミュニティ「stack overflow」で答えが見つかりました。
ありがとうございます!

■ コード変更内容
「5.2.1 環境の準備」のインストール時に追加する形式で次のコードを実行したところ、エラーが発生しなくなりました。

!pip install -U accelerate
!pip install -U transformers

変更後のコードセルの内容はこんな感じです。

エラー対処のためのコード記述イメージ

■ 追加情報
エラー発生元のコードで設定する「fp16=True」が GPU を使うように要求する(エラーメッセージを吐く)可能性があります。
このエラーが発生した場合には、迷わず GPU を使いましょう!
Google Colaboratory の「ランタイム」の設定で「T4 GPU」を選びましょう。

Google Colaboratory:ランタイムのタイプを選択する画面


参考情報

ちなみに、第5章の感情分析で用いるデータセット「MARC-ja」は配布元とのリンク切れのため、テキストのサンプルコードがそのまま使えない(エラーが発生)状態です。
書籍のGitHubリポジトリでデータセット「WRIME」に置き換えて感情分析を行える代替コードのNotebookを配布しています。

こちらのリンクで代替コードのNotebookを開けます

いろいろなサッカーをやる動物のキャラクター:「いらすとや」さんより


アディショナルタイム

代替コードのNotebookでは「5.3.3 モデルのショートカットに注意」のコードのうち、後半の「テキストを改変してモデルの予測がどのように変化するかを観察する」部分を記載していません。
そこで、データセット「WRIME」の学習結果を利用して、次の2つの実験を行いました。

  • 予測がpositive、正解がnegativeのテキストを分析
    代替コードで取得した「予測誤りワースト4番目」の文章を分析

  • 予測反転現象の観察
    「星4つ」の文字を使わないでnegative予測をpositive予測に反転

ではでは大規模言語モデルを存分に堪能してください!

おわり

ブログの紹介


noteで5つのシリーズ記事を書いています。
ぜひ覗いていってくださいね!

1.のんびり統計
統計検定2級の問題集を手がかりにして、確率・統計をざっくり掘り下げるブログです。
雑談感覚で大丈夫です。ぜひ覗いていってくださいね。
統計検定2級公式問題集CBT対応版に対応しています。

2.実験!たのしいベイズモデリングをPyMC Ver.5で
書籍「たのしいベイズモデリング」の心理学研究に用いられたベイズモデルを PyMC Ver.5で描いて分析します。
この書籍をはじめ、多くのベイズモデルは R言語+Stanで書かれています。
PyMCの可能性を探り出し、手軽にベイズモデリングを実践できるように努めます。
身近なテーマ、イメージしやすいテーマですので、ぜひぜひPyMCで動かして、一緒に楽しみましょう!

3.RとStanではじめる心理学のための時系列分析入門 を PythonとPyMC Ver.5 で
書籍「RとStanではじめる心理学のための時系列分析入門」の時系列分析トピックを PythonとPyMC Ver.5で取り組みます。
豊富なテーマ(お題)を実践することによって、PythonとPyMCの基礎体力づくりにつながる、そう信じています。
日々、Web検索に勤しみ、時系列モデルの理解、Pythonパッケージの把握、R・Stanコードの翻訳に励んでいます!
このシリーズがPython時系列分析の入門者の参考になれば幸いです🍀

4.Python機械学習プログラミング実践記
書籍「Python機械学習プログラミング PyTorch & scikit-learn編」を学んだときのさまざまな思いを記事にしました。
この書籍は、scikit-learn と PyTorch の教科書です。
よかったらぜひ、お試しくださいませ。

5.データサイエンスっぽいことを綴る
統計、データ分析、AI、機械学習、Python のコラムを不定期に綴っています。
「統計」「Python」「数学とPython」「R」のシリーズが生まれています。

最後までお読みいただきまして、ありがとうございました。

この記事が気に入ったらサポートをしてみませんか?