独自データを使った大規模自然言語モデルを開発しました

みなさん、こんにちは
CerebrasプリセールスエンジニアのNakadaです。
これまで、ブログにて大規模自然言語モデル(以下、LLM)について掲載させて頂きましたが、今回は当社の独自データを使ってLLMを開発しましたので、紹介させて頂きます。
■Meta Llama3-8Bモデルをベースとして独自LLMを開発
Meta社は2023年に最初のLlamaモデルをリリースしましたが、当初は商用利用ができないLLMでした。その後、Llama2がリリースされ、商用利用も可能となり、生成AIを利用したアプリケーションやシステムの開発などへの利用が促進されています。現在は画像も対応したLlama3.3までリリースされていますが、このLlamaモデルはGPTなどのLLMと同様にTransformerを採用しており、大量のデータセットで学習しているのが特徴です。ただ、現時点で英語、ドイツ語、フランス語、イタリア語、ポルトガル語、ヒンディ語、タイ語のみが正式サポートとなり、日本語はサポートされていません。 このLlamaモデルをベースに日本語及び独自データを学習させ、独自モデルとして「Llama3-tedllm-8B」を開発しました。
■Llama3-tedllm-8Bの仕様について
「Llama3-tedllm-8B」の仕様は以下の通りです。
LLMベースモデル | Meta llama3 8B | |
言語 |
日本語・英語 | 日本語・英語を再学習 |
メッセージコンテキスト | 8192 | Llama3仕様と同様 |
トークナイザー | 独自トークナイザー | Llama3-8Bをベースに再学習 |
学習手法 | 継続的事前学習 | Full fine-tuning |
利用タスク | Q&A | Loraチューニング/DPOで微調整 |
利用データセット | 日本語の一般コーパスと独自データ | トータルトークン数1730トークン |
Meta Llama3-8Bをベースに、一般の日本語コーパスと独自データを継続的事前学習(Continual Pre-training)で学習しました。なお、この学習ではモデルの重み情報をアップデートするために準備した1730億トークンのデータセットを処理するためには大規模なGPU環境を必要とします。この環境には、当社が販売するCerebras CS-3を利用して学習を実行しました。また、今回の学習にあたり、Cerebras社のAI研究者にも協力頂き、より効率的で高性能なLLMを開発するためのテクニックや評価手法などを実行することができました。
-System and Configuration-
- Cerebras CS-3 : 4台~16台 ※トレーニングステップに応じて変更
-Hyper-Parameter-
- batch_size: 720
- peak_learning_rate: 7.5e-5
- optimizer: AdamW
- weight_decay: 0.1
今回、Cerebras CS-3で学習を実行しましたが、学習済みモデルのチェックポイント情報や設定はHuggingfaceフォーマットへ簡単に変更が可能です。これにより学習したモデルを他のGPU上で簡単に実行することが可能です。
■学習テクニックの紹介
今回のおおまかなLLM開発ステップとテクニックは次の通りです。
上記ステップはモデルの選定から学習実行そしてモデル評価までのステップとなっていますが、いくつかのテクニックを紹介します。
1.Continual pre-training(継続事前学習)
今回利用した基盤モデルはLlama3-8Bですが、このモデルは大量のデータセット(15兆トークン超)を使って学習したモデルです。この言語知識は残したまま日本語を追加で学習するために、Continual pre-training(継続事前学習)の手法を選択しました。なお、Llama3-8B自体が日本語を正式には学習していないため、この学習により、モデルの重み情報も更新され、日本語の言語獲得が可能になります。
2.Parallel corpus(日本語/英語 並列コーパス)
データセットを準備する際、日本語などの他言語を学習する際に意識する必要があるのがParallel corpusです。このテクニックは学習させる文を学習済みの言語に翻訳し、同じ内容のデータを作成することです。重み更新を伴う追加学習の場合、もっとも防ぎたいことは、追加の学習によりもともとの知識を忘却してしまうことです(破壊的忘却)。これを抑える方法としてParallel corpusがあります。
3.Vocabulary expansion(語彙の拡張(トークナイザー再学習))
語彙の拡張は、独自のLLMを開発する際に重要です。以前のブログ「大規模自然モデル(LLM)で適切なトークナイザーを利用することの影響について」でも紹介しましたが、独自データを学習する際、独自の単語や今回のように日本語を学習させる際には適切な日本語の語彙をLLMに学習させる必要があります。その際に利用するのがトークナイザーとなります。このトークナイザーに独自データを使って語彙を学習させ、既存のトークナイザー(今回はLlama3のトークナイザー)とマージして語彙を拡張します。学習の際に必要なInitial_alphabet設定には、実際の日本語文字を代入し学習させました。(Initial_alphabetには、JIS X 0208のすべての文字を定義)
なお、以前のブログでも記載しましたが、トークナイザーを作成した際の評価としても以下のような指標があります。
4.日本語評価
LLMモデルの学習を完了させると、学習時のLossや評価データセットを利用してのAccuracyチェックなどを行います。ただ、この数値のみでは実際に意図した生成が出来ているのか確認することは難しいです。その時に利用するのが言語生成の精度をチェックする指標になります。指標には自然言語推論、質問応答、読解、多肢選択式質問回答、エンティティリンク、認知評価、数学的推論、テキスト類似性など様々な指標があります。以前は英語のみでしたが、最近では英語版を日本語に翻訳/拡張して日本語評価もできるようになっています。
今回、LLM-jp evalという日本語評価ツールを使い、Llama3-tedllm-8Bを評価しました。結果は以下となります。
指標 |
Llama3-tedllm-8B |
Meta-Llama3-8B |
AVG(平均) |
57.5% |
54.8% |
EL(Entity Linking) |
37.1% |
37.7% |
FA(Fundamental Analysis) |
25.3% |
25.1% |
MC(Multi-Choice QA) |
74.3% |
65.0% |
MR(Mathematical Reasoning) |
68.0% |
65.0% |
NLI(Natural Language Inference) |
62.4% |
62.6% |
QA(Question Answering) |
49.2% |
41.2% |
RC(Reading Comprehension) |
86.4% |
86.8% |
※AVGは各指標の平均値であり、参考値となります。
ベースのLlama3-8BよりLlama3-tedllm-8Bの日本語性能が向上していることが分かります。
■llama3-tedllm-8Bの生成例
開発したLlama3-tedllm-8Bを利用するにあたり、推論用としてNVIDIA A100 40GBのGPUを1枚利用しました。また、生成を試すためにText-generation-webuiというオープンソースを利用しています。以下の例はそれぞれ簡単な質問とそれに対してLlama3-tedllm-8Bが生成した回答となります。【Notebook】はText-generation-webuiのNotebook機能で生成し、【Chat】はChat機能で生成させた結果となります。
【NoteBook】【Chat】
■最後に
今回、Meta Llama3-8Bをベースに当社の独自データを学習させたLlama3-tedllm-8Bについて紹介させて頂きました。昨今の日本語LLMは数Bのモデルから数百Bのモデルもリリースされており、8B(80億パラメータ)サイズは小さいサイズと思われるかもしれません。ただ、大きなサイズのLLMを推論で利用するためには、数枚のGPUが必要となり利用コストも大きくなります。
今回、当社ではGPU1枚で動作する8Bモデルを開発しましたが、日本語の表現力としては特に違和感がないレベルの文生成もできております。ただ、フルファインチューニングを実行するためには、数BのモデルだとしてもCerebras CS-3のような大規模なAIアクセラレータが必要なります(もしくは数十枚の最新GPU)。現在は、PEFTチューニングにて各タスクに応じた文生成と、DPOを使った不適切な文の抑制等を評価しており、利用するタスクによっては8Bモデルでも十分な場合もあります。もし、オープンソースLLMを利用する際には、まず小さなモデルで利用可否を判断するのが良いと考えます。なお、今回開発したLLMですがHuggingfaceに公開いたしました。
ご興味ある方は一度お試しいただけると幸いです。
最後に、TEDLLMお披露目ウェビナーを開催いたしました。ご興味あれば、こちらよりご覧ください。
また、ブログをお読みになり、今回利用したCerebras CS-3やLLM構築等にご興味がある方は当社までお問合せ頂ければ幸いです。