Blog
この記事は、パートタイムエンジニアの川上航さんとLLM応用に取り組んでいるエンジニアの鈴木渓太とリサーチャーの岩澤諄一郎による寄稿です。
概要
- 既存の大規模言語モデル (LLM) に対して医療ドメインの独自コーパスを用いた finetuning を行い、医療特化の大規模言語モデル Llama3-Preferred-MedSwallow-70B を開発しました。
- Llama3-Preferred-MedSwallow-70B は日本医師国家試験において、 GPT-4 を上回る成績を収め、Hugging Face Hub で公開されているモデルの中で最高性能を誇ります。
- PFN では医療・ヘルスケアを含む様々な分野での LLM 活用を目指し、引き続き研究開発を進めていきます。
はじめに
大規模言語モデル (Large Language Model, LLM) は医療やヘルスケアの分野で診断補助、ナレッジ抽出、所見の要約など多岐にわたるタスクにおいて今後大きな役割を果たすことが期待されています。しかし、医療分野向け LLM の構築はそう簡単ではありません。たとえば日本医師国家試験の5年分の問題をまとめた IgakuQA [1] と呼ばれる LLM のベンチマークでは GPT-4 ですら合格点ギリギリであり、実際の試験合格者に比べると LLM の精度はまだまだ劣っていることが分かっています。
PFN では、事前学習から自社で行なっている PLaMo [2] に加えて、様々なモデルの finetuning にも取り組んでいます。特に医療・ヘルスケアの領域ではセンシティブなデータも多いために全てのデータをモデルの事前学習 (pretraining) で使用してしまうのはリスクが高く、比較的容易にデータをカスタマイズして再学習が可能な finetuning で対応できるようにすることには大きな意味があります。
今回、私たちは継続事前学習と呼ばれる finetuning 手法を用いて、既存の LLM を医療向けに改良した Llama3-Preferred-MedSwallow-70B を開発しました。Llama3-Preferred-MedSwallow-70B は私たちの知る限り Hugging Face Hub 上で公開されているモデルとして初めて日本医師国家試験で GPT-4 を超えたモデルであり、重みが公開されている LLM の中で唯一合格点を達成したモデルです。本記事では、モデルの開発手法と性能の詳細について解説します。なお、Llama3-Preferred-MedSwallow-70B は Hugging Face Hub で公開されているため、興味をお持ちの方はぜひご自身で試してみてください。
https://huggingface.co/pfnet/Llama3-Preferred-MedSwallow-70B
(モデルは研究目的で開発されたものであり、診療目的での使用はお控えください。)
LLM の finetuning について
継続事前学習
LLM の finetuning には、指示学習 (Instruction Tuning) [3] や継続事前学習 (Continued Pretraining) [4] など複数の手法があります。指示学習では特定の指示とその返答のペアを用いて学習を行い、モデルがユーザにとってより好ましい返答を生成することを目指します。指示学習は LLM が元々持っている知識を強調したり、出力のトーンや構造を制御するのに役立つ一方で、新しい知識の獲得には不向きだと指摘されています [5]。
一方、継続事前学習では文字通り事前学習と同様の形式でモデルの学習を行うため、事前学習に含まれていない新しい知識にも対応できるとされています。既存の LLM は日本語の医療知識が不足しているという問題意識から、今回の実験では2017年以前の医師国家試験の解説を含んだ PFN 独自の医療データセットを用いて継続事前学習を行いました。
医療分野に特化した LLM を作成するにあたって、ベースのモデルには Llama-3-Swallow-70B [6] を選びました。東工大と産総研の合同グループによって開発された Llama-3-Swallow-70B は、 Meta 社の Meta-Llama-3-70B に対して継続事前学習を行って日本語能力を強化したモデルで、Hugging Face Hub で公開されているモデルの中でも高い日本語能力を持ったモデルとなっています。この Llama-3-Swallow-70B に対してさらなる継続事前学習と後述の QLoRA を組み合わせて学習を行うことで、Llama3-Preferred-MedSwallow-70B を開発しました。
QLoRA
今回モデルの継続事前学習を行うにあたって、QLoRA [7] を用いました。QLoRA は量子化 (quantization) [8] と LoRA [9] を組み合わせた手法であり、シンプルでありながら大規模言語モデルの finetuning をより少ない計算リソースで行える点で非常に強力です。一般的に、 LLM やその他の深層学習モデルでは、各パラメータは16ビットや 32ビットで表現されます。一方、量子化されたモデルでは各パラメータが4ビットなどの低いビット数で表現されるため、より小さいメモリで扱うことが可能になります。量子化を行っても大規模言語モデルの推論能力は大きく低下しないことが知られており [8]、量子化は大規模言語モデルを手軽に使う上で欠かせない手法となっています。
しかし、一度量子化してしまったモデルは学習時に勾配があらゆるところでゼロになってしまうためにうまく学習できないという問題があります。これを解決するために Dettmers らは量子化されたモデルでも効率的に学習を行えるように LoRA を組み合わせた学習方法を提案しました [7]。LoRA (Low-Rank Adaptation) とは大規模言語モデルの finetuning における低次元性 [10] に着想を得た手法で、元のモデルのパラメータを変更せずに、モデルに追加されたアダプターと呼ばれる低ランクの行列のみを学習することで finetuning を行います [9]。 Dettmers らは、量子化したモデルと量子化していない LoRA アダプターを組み合わせて学習することで、非常に軽量な形で大規模言語モデルの finetuning を実現できることを示しました。これが QLoRA です。
QLoRA は、量子化も LoRA も用いない full parameter finetuning と比べると精度が劣るという報告もありますが [11]、少ない数の GPU で finetuning が行える手軽さから広く利用されています。実際、今回の QLoRA を用いた継続事前学習も社内の計算機クラスターの A100 GPU 2台のみで実現できています。
医師国家試験での結果
開発したモデルの性能を日本医師国家試験で評価するために IgakuQA [1] を使用しました。IgakuQA は Jungo Kasaiさんらによって開発された LLM 用のベンチマークであり、2018~2022年の日本医師国家試験の問題を LLM に解かせることができます。IgakuQA には日本語の原文の問題と英語に翻訳された問題の両方が含まれていますが、今回は日本語での医療知識や能力にフォーカスするため、日本語問題に対する成績を評価しました。また、元々の IgakuQA の実装では Hugging Face Hub 上のモデルが評価できなかったために社内で追加実装を行いましたが、プロンプト等の設定は元の実装に従っています。
結果は以下の表1にまとめています。
モデル名 | 平均 | 2018 | 2019 | 2020 | 2021 | 2022 |
Llama3-Preferred-MedSwallow-70B | 395.2 | 407 | 390 | 391 | 393 | 395 |
GPT-4 | 388.8 | 382 | 385 | 387 | 398 | 392 |
Llama-3-Swallow-70B-v0.1 | 348.6 | 353 | 347 | 353 | 345 | 345 |
Meta-Llama-3-70B | 334.6 | 353 | 340 | 348 | 314 | 318 |
Qwen2-72B | 331.2 | 320 | 325 | 325 | 326 | 360 |
c4ai-command-r-plus | 316.2 | 321 | 303 | 320 | 302 | 335 |
gemma-2-27b | 316 | 337 | 298 | 327 | 296 | 322 |
Swallow-70b-NVE-hf | 291.6 | 283 | 280 | 300 | 295 | 300 |
Swallow-MX-8x7b-NVE-v0.1 | 282.2 | 269 | 285 | 290 | 277 | 290 |
ChatGPT | 273.2 | 266 | 250 | 266 | 297 | 287 |
表1. 日本医師国家試験 (IgakuQA) における各モデルの成績。2018~2022年の各年度の成績とそれらの平均を記載しています。GPT-4/ChatGPT の成績は [1] より引用し、Llama3-Preferred-MedSwallow70B とその他のモデルの成績は社内での測定結果を用いています。
今回開発した Llama3-Preferred-MedSwallow-70B は2018年から2022年の医師国家試験で平均395.2点を取得し、オープンなモデルとして初めてGPT-4を超える成績を収めました。さらに、公開されているモデルの中で私たちの知る限り初めて医師国家試験で合格点*を達成したモデルとなっており、2024年7月現在、Hugging Face Hub 上で公開されているモデルの中で医師国家試験における最高性能を誇っています。
禁忌肢の解析
禁忌肢とは、医師国家試験において一定数以上選択すると、それまでの得点に関わらず不合格となる選択肢を指します。具体的には「患者の死亡や不可逆的な臓器の機能廃絶に直結する事項」や「極めて非倫理的な事項」などを含む選択肢が禁忌肢に該当するとされています。ただしどの選択肢が禁忌肢に該当するかは一般には公開されておらず、各予備校や解説書では実際の医療現場で禁忌とされるものを基に禁忌肢として表記している傾向にあります。ここでは IgakuQA のデータと医師国家試験の参考書情報をもとに禁忌肢の解析を行いました。
以下は、今回開発した Llama3-Preferred-MedSwallow-70B が禁忌肢を選んでしまった問題の一例です。
問題 (115A75): 68歳の女性。意識低下のため救急車で搬入された。5日前から感冒症状が出現し、食欲不振と倦怠感のため定期内服薬が服用できていなかった。3日前から38℃台の発熱があり、自宅でうずくまっているところを家人が発見し救急車を要請した。既往歴として、2年前に非機能性下垂体腫瘍を経蝶形骨洞手術にて摘出されたが、残存腫瘍を指摘されていた。以後ヒドロコルチゾンとレボチロキシンを継続服用中であった。搬入時の意識レベルはJCS II-20。体温38.4℃。血圧80/46mmHg。心拍数122/分、整。呼吸数24/分。SpO2 94%(room air)。血液生化学所見:血糖65mg/dL、Na 121mEq/L、K 5.5mEq/L。まず行うべき対応はどれか。3つ選べ。
a: NSAIDの投与
b: 生理食塩液の輸液
c: グルコースの点滴静注
d: ヒドロコルチゾンの静注
e: レボチロキシンの胃管を用いた投与
(第115回医師国家試験問題 [12] より引用)
正解は b,c,d ですが、今回開発したモデルは b,d,e を選択しました。対象となっている患者は副腎クリーゼと考えられ、そのような場合、副腎皮質ステロイドを補わずに e の甲状腺ホルモンを投与するのは禁忌とされており、e は禁忌肢と考えられます。
今回開発した Llama3-Preferred-MedSwallow-70B は5年間の問題で計4つの禁忌肢を選択しました**。そしていずれの問題も上記の問題のように与えられた患者の状況から適切な診断を行う必要がある問題でした。このような問題では与えられた情報から適切なものを組み合わせて論理的に判断をする必要がありますが、こうした論理的推論を要する問題は一般的に LLM にとってまだ課題が多い分野です。LLM の論理的推論能力をあげる手法として Chain-of-Thought [13] や医療分野向けでは MedPrompt [14] などがありますが、実臨床で活用できるレベルに達するには医療分野における論理的推論能力のさらなる向上が必要だと考えています。
同時にモデルのマルチモーダル化も重要な課題です。今回、Llama3-Preferred-MedSwallow-70B が禁忌肢を選んだ4問のうち2問は、本来の試験ではCTなどの医用画像が付いている問題でした。しかし、言語モデルのベンチマークという性質上、画像は与えず文字情報のみからモデルは回答していました。したがって情報が不十分な状態で回答をしていたことになります。実臨床の現場では文字情報だけでなく、画像や時系列等の情報も使用されます。こうしたマルチモーダルな情報をもとに現場の判断をサポートできるモデルの開発は今後の課題です。
医療ドメイン以外での性能について
Llama-3-Swallow-70B | Llama3-Preferred-MedSwallow-70B | |
MMLU ↑ | 0.7467 ± 0.0034 | 0.7477 ± 0.0034 |
ARC-C ↑ | 0.5939 ± 0.0144 | 0.6058 ± 0.0143 |
HellaSwag ↑ | 0.6638 ± 0.0047 | 0.6693 ± 0.0047 |
Winogrande ↑ | 0.7979 ± 0.0113 | 0.8114 ± 0.0110 |
TruthfulQA ↑ | 0.4296 ± 0.0173 | 0.4504 ± 0.0174 |
GSM8K ↑ | 0.8158 ± 0.0107 | 0.8294 ± 0.0104 |
表2. LLM の一般的な能力を測るベンチマークでの結果。モデルの総合的な知識を問う MMLU [15]、モデルの常識・推論能力を測る ARC-C [16]・HellaSwag [17]・Winogrande [18]、モデルの誠実さを測る TruthfulQA [19]、算数の文章題で構成されている GSM8K [20] の計6つの指標での得点および標準誤差を示しています。いずれの指標も得点が高いほど精度が良いことを意味します。
LLM で finetuning を行うリスクとして破滅的忘却 (catastrophic forgetting) がよく議論されます。特化したいドメイン以外での LLM の破滅的忘却を抑えつつ、特化先のドメイン知識を追加で学習させる手法の開発は LLM の応用において重要な課題となります。今回は finetuning 前後で医療ドメイン以外の知識や能力がどのように変化しているかを調べるために open-llm-leaderboard v1 [21] で使用されているタスクを用いて finetuning 前後のモデルの一般的な能力の比較を行いました (表2)。評価には EleutherAI の lm-evaluation-harness [22] を用いました。
結果を見ると、学習前の Llama-3-Swallow-70B と 継続事前学習後の Llama3-Preferred-MedSwallow-70B の間で一般的な能力や知識に差がないことがわかります。忘却が起きていない要因として、 (i) 小さいデータセットで iteration 数少なく学習できているために忘却が最小限で済んでいる可能性 [23] や、 (ii) full parameter finetuning ではなく、QLoRA を用いたことが忘却を抑える正則化として機能している可能性 [24] などが考えられます。今後もPFNでは LLM の finetuning の研究開発を進め、破滅的忘却にも対応できるドメイン特化 LLM のために効果的な手法開発を目指します。
最後に
今回、既存のモデルに対して継続事前学習を行い、医療向け LLM として Llama3-Preferred-MedSwallow-70B を開発しました。Llama3-Preferred-MedSwallow-70B は医師国家試験において、Hugging Face Hub 上で公開されているモデルの中で最高性能を達成しており、QLoRA を用いた継続事前学習が非常によく機能したことが確認できました。今回得られた知見は、今後の社内における研究開発やソリューション開発にも活用していく予定です。
なお、この記事では日本医師国家試験をベンチマークとして医療分野におけるモデルの性能評価を行いましたが、実際に医療の現場で活用できるモデルを作るためには、使用目的により即したベンチマークを設定し、それに合わせたデータセットの整備とモデルのカスタマイズを行う必要があると考えています。PFN では様々なドメインにおける LLM の活用を目指し、独自のベンチマークやデータセットの整備を進めています。今回の取り組みに興味を持っていただいた企業の方はぜひお問い合わせフォームよりご連絡ください。
最後に、Preferred Networks では採用を行っております。今回の記事で興味を持っていただけた方はぜひご応募ください。
- Machine Learning・Optimization・Data Science Engineer/機械学習・最適化・データサイエンスエンジニア
- 基盤モデルサービス開発エンジニア(大規模言語モデル / 画像基盤モデル)
- Software Engineer – LLM Platform (Application, Infrastructure) / 大規模言語モデルプラットフォーム開発エンジニア (アプリケーション・インフラ)
References
[1] Kasai, Jungo, et al. “Evaluating GPT-4 and ChatGPT on Japanese Medical Licensing Examinations.” arXiv preprint arXiv:2303.18027 (2023). https://github.com/jungokasai/IgakuQA .
[2] “1,000億パラメータ規模の独自LLM「PLaMo-100B」の事前学習”. https://tech.preferred.jp/ja/blog/plamo-100b/
[3] Ouyang, Long, et al. “Training language models to follow instructions with human feedback.” Advances in neural information processing systems 35 (2022): 27730-27744.
[4] Chen, Zeming, et al. “Meditron-70b: Scaling Medical Pretraining for Large Language Models.” arXiv preprint arXiv:2311.16079 (2023).
[5] Gekhman, Zorik, et al. “Does Fine-Tuning LLMs on New Knowledge Encourage Hallucinations?.” arXiv preprint arXiv:2405.05904 (2024).
[6] “Llama 3 Swallow”. https://swallow-llm.github.io/llama3-swallow.ja.html.
[7] Dettmers, Tim, et al. “QLoRA: Efficient Finetuning of Quantized LLMs.” Advances in Neural Information Processing Systems 36 (2024).
[8] Dettmers, Tim, and Luke Zettlemoyer. “The case for 4-bit precision: k-bit inference scaling laws.” International Conference on Machine Learning. PMLR, 2023.
[9] Hu, Edward J., et al. “LoRA: Low-Rank Adaptation of Large Language Models.” arXiv preprint arXiv:2106.09685 (2021).
[10] Aghajanyan, Armen, Luke Zettlemoyer, and Sonal Gupta. “Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning.” arXiv preprint arXiv:2012.13255 (2020).
[11] “Efficient finetuning of Llama 3 with FSDP QDoRA” https://www.answer.ai/posts/2024-04-26-fsdp-qdora-llama3.html.
[12] https://www.mhlw.go.jp/seisakunitsuite/bunya/kenkou_iryou/iryou/topics/tp210416-01.html
[13] Wei, Jason, et al. “Chain-of-Thought Prompting Elicits Reasoning in Large Language Models.” Advances in neural information processing systems 35 (2022): 24824-24837.
[14] Nori, Harsha, et al. “Can Generalist Foundation Models Outcompete Special-Purpose Tuning? Case Study in Medicine.” arXiv preprint arXiv:2311.16452 (2023).
[15] Hendrycks, Dan, et al. “Measuring Massive Multitask Language Understanding.” arXiv preprint arXiv:2009.03300 (2020).
[16] Clark, Peter, et al. “Think you have Solved Question Answering? Try ARC, the AI2 Reasoning Challenge.” arXiv preprint arXiv:1803.05457 (2018).
[17] Zellers, Rowan, et al. “HellaSwag: Can a Machine Really Finish Your Sentence?.” arXiv preprint arXiv:1905.07830 (2019).
[18] Sakaguchi, Keisuke, et al. “Winogrande: An adversarial winograd schema challenge at scale.” Communications of the ACM 64.9 (2021): 99-106.
[19] Lin, Stephanie, Jacob Hilton, and Owain Evans. “TruthfulQA: Measuring How Models Mimic Human Falsehoods.” arXiv preprint arXiv:2109.07958 (2021).
[20] Cobbe, Karl, et al. “Training Verifiers to Solve Math Word Problems.” arXiv preprint arXiv:2110.14168 (2021).
[21] https://huggingface.co/spaces/open-llm-leaderboard-old/open_llm_leaderboard
[22] https://github.com/EleutherAI/lm-evaluation-harness
[23] Chang, Hoyeon, et al. “How Do Large Language Models Acquire Factual Knowledge During Pretraining?.” arXiv preprint arXiv:2406.11813 (2024).
[24] Howard, Jeremy, and Sebastian Ruder. “Universal Language Model Fine-tuning for Text Classification.” arXiv preprint arXiv:1801.06146 (2018).
* 2018–2022 年の合格点は順に、368点、369点、375点、369点、371点となっています。 [1]より。
** 今回開発したモデルが禁忌肢を選んでしまった問題は次の4問でした: 114B32、115A75、116B47、116D48。
Tag