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

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

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Ryo Kanazawa Ryo Kanazawa
February 27, 2025
560

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

Avatar for Ryo Kanazawa

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. 事後学習の方針