ブックマーク / note.com/npaka (21)

  • Rinna-3.6B で LangChain を試す|npaka

    「Rinna-3.6B」で「LangChain」を試したのでまとめました。 1. Rinna-3.6B「Rinna-3.6B」は、「Rinna」が開発した、日語LLMです。商用利用可能なライセンスで公開されており、このモデルをベースにチューニングすることで、対話型AI等の開発が可能です。 2. Colabでの実行Google Colab での実行手順は、次のとおりです。 (1) パッケージのインストール。 # パッケージのインストール !pip install transformers sentencepiece accelerate langchain bitsandbytes(2) トークナイザーとモデルの準備。 import torch from transformers import AutoTokenizer, AutoModelForCausalLM # トークナイザーとモデ

    Rinna-3.6B で LangChain を試す|npaka
  • Rinna 3.6B の量子化とメモリ消費量|npaka

    Google Colabでの「Rinna 3.6B」の量子化とメモリ消費量を調べてみました。 1. 量子化とメモリ消費量「量子化」は、LLMのメモリ消費量を削減するための手法の1つです。通常、メモリ使用量が削減のトレードオフとして、LLMの精度が低下します。 AutoTokenizer.from_pretrained()の以下のパラメータを調整します。 ・torch_dtype : PyTorchのデータ型の指定。(torch.float16など) ・load_in_8bit : 8-bit精度でモデル読み込み。(bitsandbytes) ・load_in_4bit : 8-bit精度でモデル読み込み。(bitsandbytes) ・device_map : デバイス指定。(accelerate) 2. Colabでの確認Colabでの実行手順は、以下のRLHFモデルと同様です。 速度

    Rinna 3.6B の量子化とメモリ消費量|npaka
    gengohouse
    gengohouse 2023/06/18
    “Rinna 3.6B の量子化とメモリ消費量”
  • spaCy入門 (2) - ルールベースマッチング|npaka

    1. ルールベースマッチング「spaCy」のルールベースマッチングを使用すると、探している単語やフレーズを見つけられるだけでなく、ドキュメント内のトークンの関係を知ることができます。つまり、周囲のトークンを分析したり、スパンを単一のトークンにマージしたり、名前付きエンティティを追加したりできます。 【情報】 「ルールベース」と「モデルの学習」のどちらが良いか 「モデルの学習」は学習データがあり、それを使ってシステムを汎化できる場合に役立ちます。ローカルコンテキストに手がかりがある場合は、特に機能します。「個人名」「会社名」などがこれにあたります。 「ルールベース」は、検索すべきサンプルが有限である場合、または、ルールや正規表現で明確にトークンを表現できる場合役立ちます。「国名」「IPアドレス」「URL」などがこれにあたります。 複雑なタスクの場合、「モデルの学習」をお勧めしますが、学習デー

    spaCy入門 (2) - ルールベースマッチング|npaka
    gengohouse
    gengohouse 2023/04/10
    “spaCy入門 (2) - ルールベースマッチング”
  • LLM のデータセットまとめ|npaka

    LLMのデータセットをまとめました。 1. 事前学習データセット1-1. Text・Wikipedia (ja) ・fujiki/wiki40b_ja ・shisa-pretrain-en-ja-v1 (ja) ・augmxnt/shisa-pretrain-en-ja-v1 ・Wikipedia (en) ・Wiki Demo (en) ・RefinedWeb (en) ・RedPajama V2 (en) ・Pile (en) ・SkyPile (zh) ・The Stack 2 (en) ・The Stack (en) ・StarCoder (en) 1-2. Code・The Stack 2 (en) ・The Stack (en) ・StarCoder (en) 2. SFTデータセット2-1. Instruction・ichikara-instruction (ja) ・ich

    LLM のデータセットまとめ|npaka
    gengohouse
    gengohouse 2023/04/05
    “大規模言語モデルのデータセットまとめ”
  • 最近話題になった大規模言語モデルまとめ|npaka

    最近話題になった大規模言語モデルをまとめました。 1. クラウドサービス1-1. GPT-4「GPT-4」は、「OpenAI」によって開発された大規模言語モデルです。 マルチモーダルで、テキストと画像のプロンプトを受け入れることができるようになりました。最大トークン数が4Kから32kに増えました。推論能力も飛躍的に向上しています。 現在、「ChatGPT Plus」(有料版)で制限付きで利用できる他、ウェイトリストの登録者を対象に「OpenAI API」での利用も開始しています。

    最近話題になった大規模言語モデルまとめ|npaka
  • Google Colab で trlX による大規模言語モデルのファインチューニングを試す|npaka

    Google Colab」で「trlX」による大規模言語モデルのファインチューニングを試したので、まとめました。 1. trlX「trlX」 (Transformer Reinforcement Learning X)は、「報酬関数」または「報酬ラベル付きデータセット」のいずれかを使用して、強化学習で大規模言語モデル (LLM) をファインチューニングするために分散学習フレームワークです。 「facebook/opt-6.7b」「EleutherAI/gpt-neox-20b」など、最大200億のパラメータの「causal」および「T5」ベースの言語モデルをファインチューニングできます。 現在、次の強化学習アルゴリズムが実装されています。 ・PPO (Proximal Policy Optimization) ・ILQL (Implicit Language Q-Learning) 2.

    Google Colab で trlX による大規模言語モデルのファインチューニングを試す|npaka
    gengohouse
    gengohouse 2023/02/28
    “Google Colab で trlX による大規模言語モデルのファインチューニングを試す”
  • Huggingface Transformers 入門 (1) - 事始め|npaka

    「Huggingface Transformers」の使い方をまとめました。 ・Python 3.6 ・PyTorch 1.6 ・Huggingface Transformers 3.1.0 1. Huggingface Transformers「Huggingface ransformers」(🤗Transformers)は、「自然言語理解」と「自然言語生成」の最先端の汎用アーキテクチャ(BERT、GPT-2など)と何千もの事前学習済みモデルを提供するライブラリです。 ・Huggingface Transformersのドキュメント 2. Transformer「Transformer」は、2017年にGoogleが発表した深層学習モデルで、2021年現在、自然言語処理に利用する深層学習モデルのデファクトスタンダードになっています。 「Transformer」は、過去に自然言語処理分野

    Huggingface Transformers 入門 (1) - 事始め|npaka
  • Google Colab で GPT-NEOX-20B による日本語テキスト生成を試す|npaka

    Google Colabで「GPT-NEOX-20B」による日語テキスト生成を試したのでまとめました。 【注意】「GPT-NEOX-20B」を動作させるには、「Google Colab Pro/Pro+」のプレミアム (A100 40GB) と「Google Drive」のスタンダード以上が必要です。 1. GPT-NEOX-20B「GPT-NEOX-20B」は、EleutherAIが提供するオープンソースの200億パラメータの言語モデルです。Pileデータセットで学習されています。 2. Colabでの実行Google Colabでの実行手順は、次のとおりです。 (1) 新規のColabのノートブックを開き、メニュー「編集 → ノートブックの設定」で「GPU」の「プレミアム」を選択 (2) Googleドライブのマウント。 # Googleドライブのマウント from google.c

    Google Colab で GPT-NEOX-20B による日本語テキスト生成を試す|npaka
  • NovelAI の Genji-JP 6B による日本語テキスト生成を試す|npaka

    Google Colab」で「NovelAI」の「Genji-JP 6B」による日語テキスト生成を試したので、まとめました。 「Colab 無料版」ではVRAMが足りなかったため、「Colab Pro」の「プレミアム」を使いました。 1. Genji-JP 6B「Genji-JP 6B」は、EleutherAI の「GPT-J 6B」モデルをベースに、日語のWeb小説のデータセットでファインチューニングしたモデルです。 2. Colabでの実行Colabでの実行手順は、次のとおりです。 (1) Colabで新規ノートブックを作成し、メニュー「編集 → ノートブックの設定で「GPU」の「プレミアム」を選択。 (2) パッケージのインストール。 # パッケージのインストール !pip install transformers==4.23.1 !pip install accelerate

    NovelAI の Genji-JP 6B による日本語テキスト生成を試す|npaka
    gengohouse
    gengohouse 2022/11/25
    “NovelAI の Genji-JP 6B による日本語テキスト生成を試す”
  • TensorFlow Liteの自然言語処理の新機能|npaka

    以下の記事を参考に書いてます。 ・What’s new in TensorFlow Lite for NLP 1. はじめに「TensorFlow Lite」は、携帯電話、マイクロコントローラ、Edge TPUなどのEdgeデバイスに機械学習機能を提供するために、多くのアプリで広く採用されています。人々の生活をより簡単に、より生産的にする人気の高いアプリの中でも、「自然言語理解」は、研究コミュニティと業界の両方から注目を集めている重要な分野の一つです。2019年の「TensorFlow World」でオンデバイスの「質問応答」のデモを行った後、このようなNLPモデルをより多くのオンデバイス推論で利用できるようにすることについて、コミュニティから多くの関心とフィードバックをもらいました。 そのフィードバックに触発されて、日、「TensorFlow Lite」をベースにしたNLPタスクのエン

    TensorFlow Liteの自然言語処理の新機能|npaka
  • Google AIの新しい言語モデル Flan-T5 を試す|npaka

    Google AIの新しい言語モデル Flan-T5 を試したので、まとめました。 「Colab 無料版」ではVRAMが足りなかったため、「Colab Pro」の「プレミアム」を使いました。A100 (40GB)で試しています。 1. Flan-T5「Flan-T5」は、Google AI の新しいオープンソース言語モデルです。1,800 以上の言語タスクでファインチューニングされており、プロンプトとマルチステップの推論能力が劇的に向上しています。 以下のモデルが提供されています。 ・Flan-T5 small (80M) ・Flan-T5 base (250M) ・Flan-T5 large (780M) ・Flan-T5 XL (3B) ・Flan-T5 XXL (11B) 会話例は、次のとおりです。 Give reasons before answering. Can you spe

    Google AIの新しい言語モデル Flan-T5 を試す|npaka
  • gpt-neox-japanese-2.7b による日本語テキスト生成を試す|npaka

    Google Colab」で「gpt-neox-japanese-2.7b」による日語テキスト生成を試したので、まとめました。 「Colab 無料版」ではRAMが足りなかったため、「Colab Pro」の「ハイメモリ」を使いました。 1. gpt-neox-japanese-2.7b「gpt-neox-japanese-2.7b」は、2.7bのパラメータ (GPT-3は175b) を持つGPT-NeoXベースの日語の自然言語処理モデルです。 2. Colabでの実行Colabでの実行手順は、次のとおりです。 (1) Colabで新規ノートブックを作成し、メニュー「編集 → ノートブックの設定で「GPU」の「ハイメモリ」を選択。 (2) パッケージのインストール。 リポジトリから最新のtransformersをインストールする必要があります。 # パッケージのインストール !pip i

    gpt-neox-japanese-2.7b による日本語テキスト生成を試す|npaka
  • gtp-2-simple (4) - Twitterのテキスト生成AIボットの作成|npaka

    以下の記事を参考に書いてます。 ・How to Build a Twitter Text-Generating AI Bot With GPT-2 1. はじめに「GPT-2」は、OpenAIによって作成されたテキスト生成ニューラルネットワークです。AIが自動生成するテキストアドベンチャゲームや、チェスの移動表記法で訓練したAIなどで、最近注目を集めています。 過去1か月間、Twitterアカウント@dril_gpt2は、「gpt-2-simple」を使用して@drilのツイートをファインチューニングし、チューリングテストの限界を押し広げるツイートを生成しました。 this is what big data looks like: a) filtering out the people with fucked-up hair b) automatically generating news

    gtp-2-simple (4) - Twitterのテキスト生成AIボットの作成|npaka
  • Huggingface Transformers 入門 (27) - rinnaの日本語GPT-2モデルの推論|npaka

    「rinna」の日語GPT-2モデルが公開されたので、推論を試してみました。 ・Huggingface Transformers 4.4.2 ・Sentencepiece 0.1.91前回 特徴は、次のとおりです。 ・学習はCC-100のオープンソースデータ。 ・Tesla V100 GPUで70GBの日語テキストを約1カ月学習。 ・モデルの性能は約18 perplexity。2. rinnaの日語GPT-2モデルの推論(1) Huggingface TransformersとSentencePieceをインストール。 # Huggingface Transformersのインストール !pip install transformers==4.4.2 # Sentencepieceのインストール !pip install sentencepiece==0.1.91(2) 日語GPT

    Huggingface Transformers 入門 (27) - rinnaの日本語GPT-2モデルの推論|npaka
  • 図解 GPT-2|npaka|note

    以下の記事が面白かったので、ざっくり翻訳しました。 ・The Illustrated GPT-2 (Visualizing Transformer Language Models) はじめに今年は、機械学習の素晴らしい応用が見られました。「GPT-2」は、「言語モデル」が作り出せると予想していたものをはるかに超える、首尾一貫した情熱的なエッセイを書きました。「GPT-2」は特に目新しいアーキテクチャではありませんでしたが、大規模なデータセットで学習された、非常に大規模なTransformerベースの「言語モデル」でした。 【パート1】  GPT-2と言語モデル1-1. 言語モデル「言語モデル」は、文章の一部を見て次の単語を予測するモデルです。最も有名な「言語モデル」は、スマートフォンのキーボードアプリの現在入力を元に次の単語を提案してくれる機能です。 「GPT-2」も、基的にこの次の単語

    図解 GPT-2|npaka|note
  • 自然言語処理のライブラリ まとめ|npaka

    1. 基◎ NLTK 「NLTK」(Natural Language Toolkit)は、英語の自然言語処理ライブラリです。Pythonで開発されています。 主なタスクは次のとおり。 ・テキスト分類 ・トークン化 ・ステミング ・品詞(POS)タグ付け ・テキスト構文解析 ・意味論的推論 ◎ spaCyspaCy」は、自然言語処理を利用する製品の多くで採用されている自然言語処理ライブラリです。PythonとCythonで開発されています。「spacy」の言語モデルは深層学習を使用して学習されています。 主なタスクは次のとおり。 ・NLTK機能をカバー ・深層学習のワークフロー ・多言語サポート ・処理パイプライン ・ビジュアライザー

    自然言語処理のライブラリ まとめ|npaka
  • OpenAI API(GPT-3) 入門 (1) - 事始め|npaka

    OpenAI API」(GPT-3)の使い方をまとめました。 1. OpenAI APIOpenAI API」は、OpenAIの最新の深層学習モデルにアクセスすることができるクラウドサービスです。「GPT-3」は、深層学習モデルそのものは公開されていないため、利用するには「OpenAI API」経由でアクセスする必要があります。「OpenAI API」は2021年5月現在ベータ版で、将来的には有料版としてリリースされる予定です。 「OpenAI API」は、汎用的な「テキスト入力 → テキスト出力」インターフェースのAPIです。使い方は簡単で、APIに自然言語で「タスクの説明」や「いくつかの回答例」を与えるだけで、そのコンテキストやパターンに一致するような回答が返されます。このAPIに与えるテキストを「プロンプト」、APIが生成するテキストを「コンプリーション」と呼びます。 2. Op

    OpenAI API(GPT-3) 入門 (1) - 事始め|npaka
  • GiNZA入門 (1) - 事始め|npaka

    「GiNZA」の使い方をまとめました。 ・GiNZA 4.0.51. GiNZA「GiNZA」は、オープンソースな日語の自然言語処理ライブラリです。最先端の機械学習技術を取り入れた自然言語処理ライブラリ「spaCy」をフレームワークとして利用しており、トークン化処理にオープンソースな形態素解析器「SudachiPy」が使われています。 ・文境界解析 ・形態素解析 ・係り受け解析 ・固有表現抽出 ・文節抽出2. GiNZA のインストール(1) 「Google Colab」で以下のコマンドを実行。 !pip install -U ginza(2) メニュー「ランタイム → ランタイムを再起動」で「Google Colab」を再起動。​ 3. 文境界解析「文境界解析」は、文章を文の境界を検出して、文に分解する処理です。 import spacy nlp = spacy.load('ja_gi

    GiNZA入門 (1) - 事始め|npaka
  • Huggingface Transformers 入門 (10) - 日本語の感情分析|npaka

    「Huggingface Transformers」による日語の感情分析方法をまとめました。 ・Huggingface Transformers 4.1.1 前回 1. Huggingface Transformers「Huggingface Transformers」は「自然言語理解」と「自然言語生成」の最先端の汎用アーキテクチャ(BERT、GPT-2など)と何千もの事前学習済みモデルを提供するライブラリです。 今回は以下の事前学習済みモデルを使います。 2. Huggingface Transformersのインストール「Anaconda」でPython 3.7の仮想環境を作成して以下のコマンドを実行します。 $ pip install torch torchvision $ pip install transformers[ja]3. Huggingface Transformer

    Huggingface Transformers 入門 (10) - 日本語の感情分析|npaka
  • osetiによる日本語の感情分析|npaka

    「oseti」による日語の感情分析方法をまとめました。 1. oseti「oseti」は辞書ベースの日語の感情分析のライブラリです。 2. osetiのインストールインストール方法は、次のとおりです。 (1) Python 3.7の仮想環境を作成して、依存関係のパッケージをインストール。 $ pip install mecab-python3 $ pip install ipadic $ pip install sengiri(2) 「oseti」をクローン。 $ git clone https://github.com/ikegami-yukino/oseti.git(3) 「oseti/oseki.py」のMeCab.Tagger()とsengiri.tokenize()にipadic.MECAB_ARGSを指定。 import ipadicself.tagger = MeCab.

    osetiによる日本語の感情分析|npaka