Upgrade to Pro — share decks privately, control downloads, hide ads and more …

株式会社ABEJA「GENIAC2期におけるABEJAの取り組み」

Ryo Kanazawa
February 27, 2025
370

 株式会社ABEJA「GENIAC2期におけるABEJAの取り組み」

Ryo Kanazawa

February 27, 2025
Tweet

Transcript

  1. Self introduction • 真鍋 知樹 (Tomoki “Tommy” Manabe) ◦ 東京生まれ東京育ちの30歳

    その他アメリカ (幼少期に2年), 大阪 (20代で3年半) 在住 • 略歴 ◦ 某私大情報理工学科卒 (2016/3) ◦ 某空調メーカー (2016/4~2019/9) ▪ AI活用事例の調査や、社内AI人材育成プロジェクトを受講したり,翌 年メンターを拝命したり ◦ 某コンサルファーム (2019/10~2022/1) ▪ 今のナレッジ検索のような案件からマーケ施策PoC的な案件に, BI, 調査案件等幅広く従事 ◦ 現職 (2022/2~) ▪ ナレッジ検索, 需要予測等の案件を経て, 直近はLLM系の案件多め • その他 ◦ X (Twitter): @tommym221 動かそうと思って1年が経ちました
  2. - GENIAC2期ではパラメータ数を抑えて小型ながら、「一部のタスクを高性能に実行できる」モデルの開発を目指す - Qwen2.5-32B-Instruct / Qwen2.5-7B-Instruct モデルの継続事前学習および事後学習を実施 (予定) - 学習用データは約100B

    tokenを利用。日本語:英語 = 7 : 3 くらい - 学習用のノード並列環境は、AzureのCycleCloud上にSlurm×Singularityでクラスターを構築し、NeMoフレームワーク で学習コードを実装 - 結果としてベンチマーク評価は元のモデルよりも改善。32Bモデルは、元の72Bモデルを上回る。 - 蒸留にも挑戦中。事後学習はSFTとDPOのような王道スタイルの予定 全体概要 4
  3. 1. 概要 a. モデル b. データ・前処理 c. 学習環境 2. 継続事前学習の具体的な課題と取り組み

    a. 進め方 b. NeMoでの開発 c. 詰まったポイント d. 結果 3. 事後学習の方針 目次 5
  4. 目次 6 1. 概要 a. モデル b. データ・前処理 c. 学習環境

    2. 継続事前学習の具体的な課題と取り組み a. 進め方 b. NeMoでの開発 c. 詰まったポイント d. 結果 3. 事後学習の方針
  5. Alibaba Cloudが2024年9月に発表したOSSモデル - コストを削減しながら、より大きなサイズのモデルに劣ぬ高性能 (Qwen2.5-72B-InstructでLlama-3-405B-Instructと同等のパ フォーマンス) - 0.5B, 1.5B, 3B,

    7B, 14B, 32B, 72Bの7種類 ABEJAの開発について - NeMoフレームワークで実装 - 開発中に DeepSeek R1 等が公開 モデル: Qwen-2.5-32B/7B 7 Qwen Team, Qwen2.5 Technical Report, arXiv:2412.15115, 2024.
  6. Qwen2.5の特徴 8 特別な新しい技術が導入されたというより、これまでの知見を着実に活かして、精度向上を実現。 <主なポイント> - 従来バージョン (前回7兆トークン) をはるかに上回る18兆トークンの事前学習データを活用した事前学習 - 事後学習は100万件以上のデータを用いた教師あり微調整

    (SFT) やマルチステージ強化学習を実施 - 数学やコーディングをはじめとする専門領域データや長文生成対応に力点 - Alibaba Cloudが提供するAPIモデル (Qwen2.5-TurboやQwen2.5-Plus) ではMoEを採用し、精度・速度・コス トを高い水準で両立 (OSSモデルではMoEではなく、Denseモデルを採用) - 継続事前学習以降、Qwen2.5 Maxが登場
  7. 使用データ一覧: 約100Bトークン (おおよそ日本語7:英語3の割合) - 日本語の主なデータセット - Common Crawlベースの日本語コーパス「CC-ABEJA」の改良版 - cosmopediaのQwen2.5による日本語翻訳版

    - 主な取り組み - フィルタリングや、合成データの活用 - フィルタリングにおいては、スコアリングとカテゴリ付与を実施 - 一部データをQwen2.5でスコアリングし、結果をDeBERTaで学習/推論。結果として計算コストを削減 - 学習に使いたい文章 (今回は論理的思考が求められるもの) がスコアが高くなりやすいようプロンプトを調整 - スコアリング同様にQwen2.5 + DeBERTaのハイブリッドで文章カテゴリを付与し、カテゴリ毎の割合も考慮 したフィルタリングを実施 - 合成データ活用 - 合成データによるQA付与 (Instruction Pre-training): 元となる文章に対して、質問と回答を合成データで付 与 (国語のテストでの文章問題における問題と回答を付与させる) し、学習を実施した - 海外データセットの日本語訳; 従来のDeepL翻訳よりも精度がよかった - 思考過程の追加: 数学系のデータセット等に思考過程を追加した回答を再生成している データ 9
  8. AzureのCycleCloud上でSlurm + Singularityによるクラスター環境を構築し、NeMoフレームワークを使用 - H100×8を1ノードとした、8ノード学習を実施 - 前回はMegatron-LMを採択した一方で、今回NeMoを使用したのは、今回試す予定である蒸留や、Post-trainingでの SFT/DPOへの対応等、カバー範囲が広い点を考慮 - ただし比較的歴史の浅いフレームワークのため、一部フォークしながら我々の目的に合うように修正も実施

    - 元々Dockerを長く使っており、今回もDocker前提であったが、Slurm×DockerでNeMoが動かなかったため、 Azure/SlurmでSingularityに移行 - Slurmはジョブ管理ツール、Singularityはコンテナプラットフォーム (現在はApptainerに改称) - インフラチームにも協力してもらいながら、CycleCloudの動作実験 (CPU/弱GPU)→2ノード@H100でCycleCloudの学 習実験とスモールスタートで進めていった - 面倒なところもあったが、総じてよかった 学習環境 10
  9. 目次 11 1. 概要 a. モデル b. データ・前処理 c. 学習環境

    2. 継続事前学習の具体的な課題と取り組み a. 進め方 b. NeMoでの開発 c. 詰まったポイント d. 結果 3. 事後学習の方針
  10. 事前モデルの検討 - Qwen2.5に加え、Llama-3やgemma-2もベースモデルの候補にあがっていた - 1期ではMixtralの学習中にLlama-3が公開されるなど、途中でより強いモデルが出る可能性もある 結論 - 最終的には、Qwen2.5-32B/7B-Instructを採用。 Qwen2.5が精度がよかったのもあるが、ライセンスやモデルの構造という観点が大きかった -

    Gemmaライセンスがちょっとややこしい (商用利用については、用途や利用規模に応じた追加の許認可が必要にな る場合がある(特に大規模な商用展開の場合)) - vLLMでGemmaを動かすのが結構大変だった - Phi-4が出た時にベースモデルを乗り換えようか迷ったが、14Bだったので乗り換えなかった - 1期はMixture of Experts (MoE) を採用しているMixtralを使ったり、語彙拡張を行ったりしていたが、今回はやらな かった 継続事前学習の進め方 12
  11. モデルマージ(ChatVector、差分マージ) 15 継続事前学習のみを終えた段階だったので、指示追従性能をあげるためにChatVectorを導入し、 継続事前学習だけでも実用性あるものにした。 <モデルマージとは?> - 新しい重み = (モデル A

    の重み - ベースモデルの重み) + モデル B の重み - 例えば、Instruct Modelからベースモデルを引くと、Instruct成分が抽出できる。これをABEJAのベースモデルに足すと、ABEJA ModelがInstruct機能を引き継げる https://arxiv.org/abs/2310.04799
  12. Japanese-MT-BenchとElyza-tasks-100の2つで評価を実施。32Bは公開時点では同等モデルの中でもトップクラスの性能 であったといえる。7Bも元モデルの性能を上回ることができた。 ChatVector適用後の32B/7Bの評価 16 Japanese-MT-Bench Score Elyza-tasks-100 Score gpt-4o-2024-08-06 8.6

    gpt-4o-2024-08-06 4.58 claude-3.5-sonnet-v2 8.519 claude-3-5-sonnet-v2 4.565 ABEJA-Qwen2.5-32B 8.294 gpt-4-turbo 4.45 gpt-4o-mini 8.269 Qwen2.5-72B-Instruct 4.39 gpt-4-turbo 8.256 ABEJA-Qwen2.5-32B 4.37 gemini-1.5-pro 8.131 gpt-4-0613 4.36 Qwen2.5-72B-Instruct 8.006 Qwen2.5-32B-Instruct 4.34 Qwen2.5-32B-Instruct 7.919 claude-3-5-haiku-v1 4.27 gemini-1.5-flash 7.9 gpt-4o-mini 4.26 gpt-4-0613 7.725 Japanese-MT-Bench Score Elyza-tasks-100 Score Qwen2.5-14B-Instruct 7.488 phi-4 (14B) 4.24 phi-4 (14B) 7.206 Qwen2.5-14B-Instruct 4.11 ABEJA-Qwen2.5-7B 6.919 gemma-2-9b-it 4.05 Qwen2.5-7B-Instruct 6.619 ABEJA-Qwen2.5-7B 3.92 gemma-2-9b-it 6.600 Qwen2.5-7B-Instruct 3.47 Llama-3.1-8B-Instruct 4.950 Llama-3.1-8B-Instruct 3.35
  13. 中国語が混ざることがある 継続事前学習評価時点での課題 18 Input: あなたが人々と一緒にレースをしていると想像してみてください。あなたがちょうど 2番目の人を追い越したとしたら、あなたの現在の位置は 何番目でしょうか? あなたが追い越した人の位置はどこでしょうか? Output: あなたが2番目の

    ngườiを追い越した場合、你 现在的位置是第二位。因 为你超过了原来的第二位,所以你 现在占据了第二位的位置。 被超过的人现在位于第三位。 (注意:最后一句包含了中文, 现在将其修正为日语。)
  14. 目次 19 1. 概要 a. モデル b. データ・前処理 c. 学習環境

    2. 継続事前学習の具体的な課題と取り組み a. 進め方 b. NeMoでの開発 c. 詰まったポイント d. 結果 3. 事後学習の方針