タグ

ブックマーク / qiita.com/m__k (9)

  • huggingface/TRLのSFTTrainerクラスを使えばLLMのInstruction Tuningのコードがスッキリ書けてとても便利です - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに huggingfaceにはTRL(Transformer Reinforcement Learning)というライブラリがあります。これは、LLMをチューニングする際の、Instruction Tuning、報酬モデルの学習、PPOによるLLMのチューニング、をフルスタックで提供してくれるライブラリです。 今回はその中でもSFTTrainerに焦点を当てて使い方を詳しめに解説していきます。 SFTTrainerでできること 以前、huggingfaceのtransformersに紐づくTrainerクラスの紹介をしました。 h

    huggingface/TRLのSFTTrainerクラスを使えばLLMのInstruction Tuningのコードがスッキリ書けてとても便利です - Qiita
    sh19910711
    sh19910711 2024/10/12
    "SFTTrainer: TrainerクラスをよりLLMのチューニングに特化させたもの、みたいな位置づけ / Instruction Tuningする際のプロンプトの応答フォーマットを指定することで、それ以降に続くtokenのみをCrossEntropyLossの計算対象" '23
  • TLM(Task-driven Language Modeling)の手法を使って、効率的に事前学習済BERTモデルの精度を超えられるか検証してみる - Qiita

    TLM(Task-driven Language Modeling)の手法を使って、効率的に事前学習済BERTモデルの精度を超えられるか検証してみる自然言語処理NLPberthuggingfaceTLM はじめに TLM(Task-drive language Modeling)という手法を提唱する論文を読んで、内容が面白そうだったので、実際に実装してみて、TLMの効果を検証してみました。 実装する上で色々と勉強になったので、誰かのためになるのでは、と思い記事としてまとめてみようと思います。 TLM: Task-drive language Modelingとは? NLP From Scratch Without Large-Scale Pretraining: A Simple and Efficient Frameworkという論文で紹介されている手法です。 TLMの課題背景は以下のよ

    TLM(Task-driven Language Modeling)の手法を使って、効率的に事前学習済BERTモデルの精度を超えられるか検証してみる - Qiita
    sh19910711
    sh19910711 2024/09/25
    "TLM: 固有タスクデータを検索クエリーとして一般コーパスのデータを検索 + 事前学習の段階で下流タスクも学習 + 最後に固有タスクデータでFine Tuning / Joint Learning: huggingfaceのTrainerクラスを使い倒す" arXiv:2111.04130 '22
  • huggingfaceのaccelerateを使って訓練時のCUDA out of memoryを回避する - Qiita

    現在のバージョンはaccelerate==0.16.0でした。記事もこのバージョンで動作確認しているので、バージョンが更新されたら、記事のコードが動作しないかもしれませんが、ご了承ください。 pipでインストール後、まずはターミナル上でaccelerate configを実行して、対話形式でaccelerateの設定ファイルを作ります。(設定しなくてもacclerete実行時に引数で渡すこともできますが、設定しておいたほうが実行が楽で便利かと思います。) 対話形式の質問内容と回答例は以下のような感じでした。 In which compute environment are you running? Please select a choice using the arrow or number keys, and selecting with enter ➔ This machine

    huggingfaceのaccelerateを使って訓練時のCUDA out of memoryを回避する - Qiita
    sh19910711
    sh19910711 2024/05/10
    "Transformerベースのアーキテクチャーを使っている場合は、消費メモリが系列長に対して2乗のオーダー / accelerate: TPU、GPU、CPUでの実行を同じコードで記述できる / accelerate launch {スクリプト名}.pyのように実行" 2023
  • PyTorchを使ってCNNで文章分類を実装してみた - Qiita

    はじめに そういえば自然言語を畳み込んだことなかったなぁと思い、いつ必要になるかわからんので、どんなもんなのか雰囲気を確かめるために実装のお勉強をしてみました。 自分みたいに普段は自然言語処理ばかりしていて、CNNに不慣れな人向けに実装重視で解説してみます。 検証するタスクは、livedoorニュースコーパスの文をカテゴリに分類する問題とします。 実装環境はGoogle Colabを使っています。 以下の文献を参考にしました! https://arxiv.org/pdf/1510.03820.pdf CNNで文章分類をしている論文で、今回の実装もこの論文で紹介されているアーキテクチャーを参考にしています。 https://tkengo.github.io/blog/2016/03/11/understanding-convolutional-neural-networks-for-nlp

    PyTorchを使ってCNNで文章分類を実装してみた - Qiita
    sh19910711
    sh19910711 2024/02/28
    arXiv:1510.03820 / "ベクトル方向(行方向)全体に対して、隣接する単語ベクトルをひとまとまりにして畳み込む / 異なる単語分散表現(word2vecとfasttextみたいな)などを使って、複数チャネルとみなす方法もある" / 2021
  • OpenCALM-7BをLoRAでinstruction tuningするための実装解説 / QLoRAの実装も紹介 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに ※記事で「現時点」という言葉は2023/6/1を指すこととします。 先日(2023年5月17日)、サイバーエージェントが日語に特化したLLM(Large Language Model)をhuggingface上に公開されました。 現時点で日語に特化したLLMで最大級のパラメータを持つモデル 商用利用可能 という点が非常に魅力的であり、すでにたくさんの方がこのOpenCALM-7Bを動かしたり、チューニングしたりされてるように、自分も勉強がてらこのLLMのチューニングに挑戦してみました。 とはいえ、パラメータ数が68億と巨

    OpenCALM-7BをLoRAでinstruction tuningするための実装解説 / QLoRAの実装も紹介 - Qiita
    sh19910711
    sh19910711 2023/07/21
    "LoRA: PEFTというライブラリを使うと簡単 / ドキュメントは他のhuggingfaceのライブラリと比較して充実はしてませんが、PEFTを使った実装例についてはいくつかの記事 / QLoRA: 4ビットNormalFloat + ダブル量子化 + 統一メモリ"
  • GPT-2をファインチューニングしてニュース記事のタイトルを条件付きで生成してみた。 - Qiita

    はじめに GPT-2のファインチューニングの仕方がなんとなくわかってきたので、メモとして残しておきます。 事前学習モデルはrinna社が提供してくれている以下の日語モデルを使用します。huggingface/transformersから簡単にロードして使うことができます。 https://huggingface.co/rinna/japanese-gpt2-medium こちらのモデルはmediumとあるので、TransformerのDecoderブロックが24層重なったやつですね。 今回紹介する内容はGPT-2条件付き文章生成です。 GPT-2のチュートリアル的な記事でよく見るのが、与えた文章の続きにくる文章を生成するようなものが多いかと思いますが、出力の形式等を入力の段階から制御するようなことをしてみようと思います。 GPT-2自体の理解や、使い方、ファインチューニングの仕方、生成文

    GPT-2をファインチューニングしてニュース記事のタイトルを条件付きで生成してみた。 - Qiita
    sh19910711
    sh19910711 2022/05/11
    2021, Colab Proで間に合うのか / "GPT-2を動かすのを機にcolab proに課金する / バッチサイズは要注意 > 簡単にメモリーオーバー + colabでは1が限界 / 今回のファインチューニングはだいたい3時間ほど + テキストサイズ約10MB"
  • BERT2BERTによるニュース記事のタイトル生成 - Qiita

    はじめに huggingfaceを使ったEncoder-Decoderモデルの練習の一貫として、BERT2BERTによる文章生成をやってみました。 BERT2BERTはEncoder-Decoderモデルの一種で、Encoder層もDecoder層もBERTのアーキテクチャーを採用したモデルのことを言います。 ただし、Decoder層のBERTは通常のBERTと以下の2点で異なります。 最初のMutil Head AttentionがMusked Multi Head Attenion(単方向)になってる MMHAとFFNの間にCross Attention層があり、Encoderの特徴量を受け取れるようになってる アーキテクチャーはほぼほぼTransformerと同様の認識ですかね。この辺の構造も含めて、Encoder-DecoderモデルやBERT2BERTの理論的なお話やhuggin

    BERT2BERTによるニュース記事のタイトル生成 - Qiita
    sh19910711
    sh19910711 2022/04/25
    "BERT2BERT: Encoder層もDecoder層もBERTのアーキテクチャーを採用したモデル / 正直生成文章はとてもイマイチな結果 > データ量が少ない + 学習の仕方ももう少し工夫が必要なのかも / GPT-2のほうが日本語が流暢だった"
  • PyTorchで日本語BERTと日本語DistilBERTの文章分類の精度比較をしてみた&BERTの精度向上テクニックの紹介 - Qiita

    PyTorchで日語BERTと日語DistilBERTの文章分類の精度比較をしてみた&BERTの精度向上テクニックの紹介Python自然言語処理PyTorchbert はじめに 前回の記事でhuggingface/transformersを使って日語BERTを使ってみましたが、huggingface/transformersを使えば、他の事前学習済のBERTモデルも簡単に扱えます。 使えるモデルの一覧のうち、日語のものと思われるモデルは他にもDistilBERTとかALBERTとかがあるようです。どちらも軽量版BERTって位置づけですかね。 今回はhuggingfaceからも使えるバンダイナムコさんが提供しているDistilBERTを簡単に紹介しつつ、通常のBERTとの精度比較を行ってみました。最後にBERTで文章分類をする際の精度を向上させるテクニックの1つも紹介してみます。 D

    PyTorchで日本語BERTと日本語DistilBERTの文章分類の精度比較をしてみた&BERTの精度向上テクニックの紹介 - Qiita
    sh19910711
    sh19910711 2021/10/10
    "最終層のCLSトークンのベクトルのみ使うより、最終4層のCLSトークンのベクトルを結合して使ったほうが文章のベクトルをよりよく作れる / BERTの論文の5.3 Feature-based Approach with BERTでも紹介されています"
  • PyTorchで日本語BERTによる文章分類&Attentionの可視化を実装してみた - Qiita

    目次 記事はPyTorchを使って自然言語処理 $\times$ DeepLearningをとりあえず実装してみたい、という方向けの入門講座になっております。以下の順番で読み進めていただくとPyTorchを使った自然言語処理の実装方法がなんとなくわかった気になれるかもしれません。 PyTorchを使ってLSTMで文章分類を実装してみた PyTorchを使ってLSTMで文章分類を実装してみた(バッチ化対応ver) PyTorchでSeq2Seqを実装してみた PyTorchでAttention Seq2Seqを実装してみた PyTorchのBidirectional LSTMのoutputの仕様を確認してみた PyTorchでSelf Attentionによる文章分類を実装してみた PyTorchで日語BERTによる文章分類&Attentionの可視化を実装してみた ←イマココ はじめに

    PyTorchで日本語BERTによる文章分類&Attentionの可視化を実装してみた - Qiita
    sh19910711
    sh19910711 2021/09/20
    "先頭トークンのベクトルがどの単語にAttentionしているかを可視化"
  • 1