Kan Hatakeyama

化学・大規模言語モデル・ロボットなど 記事はメモ書きですのでご了承ください

Kan Hatakeyama

化学・大規模言語モデル・ロボットなど 記事はメモ書きですのでご了承ください

最近の記事

400GB程度の清掃済み日本語コーパスを作るまでのメモ書き

はじめに最近は大規模言語モデルを作っています。 来週から始まる学習に向け、400GBほどの日本語コーパスをチームで作成しました。今後、きちんとした作業記録を書ければと思いますので、直近では、かなり立て込んでおりますので、備忘録も含めて、構築経緯などを軽くメモしていきます。 スライド、コード、データなどスライドはこちら コードはこちら(工事中の箇所がちょくちょくあります) データは、プロジェクト内で共有中です。slackなどで個別にお問い合わせいただければ、共有でき

    • Pythonで大量のテキストの類似度チェックを行うメモ

      はじめに最近は大規模言語モデルのコーパスづくりに四苦八苦しています。 収集したテキストには、多くの重複データが含まれるためそれらを削除する作業が大切です。 重複削除はCなどのコンパイル言語で高速にやるのが常套手段なのですが、今回はあえて、pythonライブラリで実行してみました。 関連 例えばこちら テキストwebから収集した、7万件ほどのテキストを使います。 Hojicharに入っている類似度判定アルゴリズムhojicharは、テキストを簡便にクリーニングするため

      • ChatGPTのログをexportしてjsonlにするメモ (指示データセットに使いたい)

        はじめに大規模言語モデルの構築にあたって、最も大切と言われるのは、モデルのファインチューニングとよばれる部分です。 ファインチューニングは、モデルが人間ときちんと対話できるようになるための訓練で、AIは、実際の対話データなどを学習することで、人間との関わり方を学びます。 最近は指示データセットを作る取り組みを行っています。 が、ゼロからデータセットを作るのはなかなか骨が折れます。 そこで思いついたのは、ある意味当たり前のことだったんですが、「ChatGPTとの実際の対話

        • 一部のGPT3.5系は、選択肢問題をきちんと解けないかも、という検証

          はじめに最近は、大規模言語モデル(LLM)の理解力や制約をできるだけ正確に把握し、適切に訓練させるための手法を考えることにハマっています。 昨日の記事では、日本語を喋るLLMの半数近くが、単純な選択肢問題にさえ、適切に回答できないことを記しました。 本記事では、賢いと評判の商用モデルGPT3.5/4の、ユーザーに対する指示の遵守性能について、評価していきます。 タスク解かせる問題 llm-jp-evalベンチマークに含まれるJCommonSenseQAと呼ばれるタスク

        400GB程度の清掃済み日本語コーパスを作るまでのメモ書き

          (10b程度の)大規模言語モデルが「種々のスキル」を身につけるために必要な要素や学習量を考えるメモ

          はじめに最近は、10bクラスの大規模言語モデル(LLM)が特定のスキルを身につけるのに必要な要素を解明するタスクに取り組んでいます。 このサイズのモデルは、思ったよりも「おバカ」なため、例えば選択肢問題をきちんと解けるようになるためだけに、数百件以上の訓練(ファインチューニング)が必要な事例も出てきました。 本記事では、LLMに身に着けさせる「タスク」の幅を、もう少し増やしながら、挙動を追っていきます。 背景: LLMの理解力はどの程度なのか?努力 vs 頭の良さ

          (10b程度の)大規模言語モデルが「種々のスキル」を身につけるために必要な要素や学習量を考えるメモ

          10bクラスの大規模言語モデルが、ファインチューニングを経てタスクを解けるようになるメカニズムを探るメモ

          追記・拡張版はこちら はじめに最近は大規模言語モデルのファインチューニングにハマっています。 10bクラスの言語モデルが、どのようなメカニズムを通してユーザーの質問に回答できるようになるかについて、調べています。 最近の検討で生じた仮説は、「10bクラスのモデルは、実は質問文を殆ど理解できていない」というものです。 本記事ではどのようなデータを学習したときに、llm-jp-evalという評価セットに含まれるJCommonsenseQAというタスクを解けるようになるか、

          10bクラスの大規模言語モデルが、ファインチューニングを経てタスクを解けるようになるメカニズムを探るメモ

          ファインチューニング条件の検討による、10bクラスの大規模言語モデルの理解・回答能力についての検証と考察

          (以下、時間の都合上、まだきちんと校正できておりません。ご了承ください) 4/1追記: こちらの記事の方が、きちっとした検証がなされています。 はじめに大規模言語モデルは大きく、1)事前学習、2)ファインチューニングの二段階によって訓練されます。2)ファインチューニングは、ざっくり言えば、「人間と対話するための訓練」です。すなわち、人間の指示を理解し、期待される回答をするための練習をする作業に相当します。GPT-4やClaude 3などはモデルサイズも大きく、非常に注意

          ファインチューニング条件の検討による、10bクラスの大規模言語モデルの理解・回答能力についての検証と考察

          商用利用可能な130億パラメータの日本語LLM「Tanuki-ZeRo」を一般公開 【代表的な日本語ベンチマークで世界6位: オープンモデルで1位相当、GPT3.5やClaude v2を一部凌駕, 23/3/30時点】

          (前半はパロディ風のネタ記事です。ご了承ください) 4/1追記: ページ下部に、記事へのご指摘に関するまじめなQ&Aを追加しました。 3/31追記: 一部、ご批判がありましたので、jaster特化のモデルを作った学術的(?)な経緯などについて、以下の(真面目な方の)記事で、まとめています。真面目な方は、こちらを先に読まれることを強くおすすめします。 10bクラスのLLMは未学習タスクに対して、0 shot 推論性能が非常に乏しいという復数の検証結果や、実用面を考えた際は

          商用利用可能な130億パラメータの日本語LLM「Tanuki-ZeRo」を一般公開 【代表的な日本語ベンチマークで世界6位: オープンモデルで1位相当、GPT3.5やClaude v2を一部凌駕, 23/3/30時点】

          10b程度のモデルをファインチューニングする日記 (逐次更新)

          はじめに最近は大規模言語モデルを作っています。 主に2-3月はデータセット構築や事前学習に取り組んできました。 概ね、手応えがつかめてきたので、次はファインチューニングの練習をしていきます。本記事は、その日記です。 3/26まで: システムのセットアップHuggingFace形式のモデルをinstruction tuningして、日本語のベンチマークで評価するためのパイプラインを作っていました。 評価指標は、JGLUE, Jaster, JMT-Benchとなります

          10b程度のモデルをファインチューニングする日記 (逐次更新)

          カスタムコードを含むTransformerモデルをHuggingFaceに登録する手順メモ

          はじめに大規模言語モデルを作っていると、モデル内部のコードをいじることがあります。 そのようなカスタムコードを含むモデルをHuggingFaceのリポジトリに登録して利用するための手順を習得するのに苦戦したので、備忘録も込めて記載します。 以下のサイトを参考にしました。 デモコード本記事の実装コードはこちらです。 Configとモデルを登録する今回は、Mixture of Experts (MoE)的な言語モデルを実装してみます。 以前に検討したアルゴリズムとなりま

          カスタムコードを含むTransformerモデルをHuggingFaceに登録する手順メモ

          0.1bのtransformerのperplexityで文章フィルタリングができるかどうかの検証

          はじめに最近は大規模言語モデルを作っています。 大規模言語モデルの学習において、事前学習データのフィルタリングは重要と言われています。 フィルタリングにはいくつもの方法がありますが、ルールベースでノイズを取り除くのは、処理速度の面でも有利です。 一方、最近は機械学習ベースのフィルタリングも注目されています。 特に、処理速度と精度を両立した(?)手法として、言語モデルのperplexity(困惑さ: モデルが入力した文章をどれくらい予測できるかの主要)を計算するアイデ

          0.1bのtransformerのperplexityで文章フィルタリングができるかどうかの検証

          CommonCrawl PDFを漁る練習

          はじめに最近は大規模言語モデルを作っています。 データソースとして、ネット上のhtmlデータを収集したCommonCrawlは有名です。 しかし、htmlから抜き出したテキストは、あまり品質が高くないケースが多いです。 また、html版は多くの方が取り組んでおり、意外と日本語のテキストは枯渇気味です。 そこで今回は、CommonCrawlのPDF版を解析してみます。 コード一式(3/21追記)以下のgitを使えばOKです。 ファイル一覧の取得と解析ダウンロード

          CommonCrawl PDFを漁る練習

          大規模言語モデルの学習に必要な計算量を試算する

          はじめに最近は大規模言語モデルを作っています。 10B級のモデルを作れるリソースを使わせていただける予定なのですが、具体的なFLOPの推定が必要そうだったので、軽く試算してみることにしました。 計算が間違っていたらすみません。 試算サイトを活用する以下のサイトを使うと、モデルサイズ・学習トークン数をもとに、学習に必要な計算量FLOPsやestimated lossを推定できます。素晴らしいですね。 (FLOPsとFLOPSの使い分けについてはこちら) まずは、このサイ

          大規模言語モデルの学習に必要な計算量を試算する

          0.1-1B程度の日本語・大規模言語モデルを作る練習日記

          はじめに最近は大規模言語モデルを作っています。 最終的には10B級のモデルを作るのですが、その前に、0.1-1b程度で練習をします。 本記事は、その取り組みのメモ・日記です。(逐次更新します) 注意点 ・日記なので、内容はかなり雑多です。 ・練習を兼ねたcode実装なので、先端知見が含まれているとも限りません。 ・どんなことをやっているか、時系列を追って理解する参考にはなるかもしれません。 3/6頃 コード確認 ・「標準コード」を支給頂いたので、それをトレースした。

          0.1-1B程度の日本語・大規模言語モデルを作る練習日記

          会議メモ: 化学・材料・バイオ分野における実験自動化の現状や課題

          (以下、きちんと作文する時間をとれなかったので、メモ書きをClaude 3でまとめたものです。 変な箇所が多々あるかもしれませんが、ご了承ください。meetingにお集まり頂いた方々、誠にありがとうございました) はじめに近年、人工知能(AI)、ロボット工学、化学、材料科学、ライフサイエンスなどの分野において、研究や実験の自動化が急速に進められています。先日、これらの分野の専門家が集まり、自動実験の現状と将来について意見交換を行う内部会議がありました。本稿では、その際に

          会議メモ: 化学・材料・バイオ分野における実験自動化の現状や課題

          大規模言語モデルをフルスクラッチする練習 (環境構築ー前処理ー事前学習ーファインチューニングー評価まで)

          はじめに以下のオープンなプロジェクトの一環で、大規模言語モデルをフルスクラッチで作る練習をします。24年3月現在、協力者も募集中です。 リポジトリ当該プロジェクトの標準コードが公開※されたので、それを走らせてみます。 ※24/3/5時点で、まだレポジトリ内に、工事中の箇所が多々、あります。 このリポ上では、事前学習ー事後学習ー評価まで、一気通貫(?)したパイプラインが提供されています※。 ※3/8追記 個々のパイプが繋がってませんでした。 きちんと繋がったパイプラインを

          大規模言語モデルをフルスクラッチする練習 (環境構築ー前処理ー事前学習ーファインチューニングー評価まで)