![見出し画像](https://assets.st-note.com/production/uploads/images/109591557/rectangle_large_type_2_c73f9013be652e95eed6d64555586584.png?width=800)
最大16k トークンをサポートするLongChat-7B/13B
LMSYSが最大16kトークンのコンテキストに対応し、Long-rangeトピック検索タスクにおいて、高い性能を示すオープンソースのチャットボットモデル LongChat-7B/13Bが公開していました。以下ブログ記事で概要が紹介されています。またモデル公開にあわせて、ロングコンテキスト機能を検証するための評価ツール LongEval によるベンチマークも提案されています。
自分の勉強のため、ざっとモデル学習方法とベンチマーク結果の部分をざっとまとめました。読み飛ばした部分も多いので、正確な内容は原文ブログを参照ください。
1.LongChat概要
LongChatの学習方法
事前トレーニングモデル
最大コンテキスト長 2048トークンで事前トレーニングされたLLaMA
ステップ1:Rotary position embeddingの圧縮
LLaMAモデルはシーケンス長2048で、学習データの各トークンの文内での位置をRotary position embeddingという手法を用いて学習データに埋め込んで事前トレーニングが行われます。
LongChat学習時は、事前トレーニング時の文内の位置を示すposition_idの範囲内に入るようにインデックスを圧縮(今回は16384/2048 =>8で元のposition_idを割ってからRotary position embeddingにかける)します。
ステップ2:会話データのファインチューニング
ステップ1を行った後に、ShareGPT.comから抽出した会話データセットを用いて、7Bモデルと13Bモデルを、それぞれ80kと18kの会話でファインチューニングを実施します。
2.モデル性能の評価
2.1 LongEvalによるロングコンテキスト性能の評価
タスク1: 大まかなトピック抽出
複数のトピックで構成される長い会話の最初のトピックを取得するようにチャットボットに依頼することで、長い会話を模倣して評価を行います。
タスク2:きめ細かいラインの抽出
長いドキュメントな中で、あらかじめ指定された複数の部分(特定の数値・単語)から正確な内容を抽出できるかを評価します。
![](https://assets.st-note.com/img/1688094023658-o4xkbDgvw1.png?width=800)
評価ツールLongEvalを用いて、ロングコンテキストをサポートしていると謳うオープンソースモデルと商用モデルを比較評価した結果、多くのオープンソースモデルで期待される結果が得られていないことが明らかになっています
2.2 人間の好みのベンチマーク(MT-bench)
LongChatモデルは長距離検索タスクにおいて優れた性能を示していますが、これが人間の好みに大きく反する結果をもたらすのかを評価するために、GPT-4を用いたベンチマーク、MT-benchで他のオープンソースモデルとの比較を行っています。
この結果、LongChat-13B-16KはVicuna-13Bと比較しても遜色ない性能を持っており、これは長距離の能力が短距離の能力を大幅に犠牲にすることなく得られていると主張しています。
![](https://assets.st-note.com/img/1688099314776-cgPNlOaf4J.png)
2.3 性能評価まとめ
![](https://assets.st-note.com/img/1688103257118-U9PoLTNfym.png?width=800)
3.動作について
Rotary position embedding圧縮を行っているためだと思うのですが、モデル読み込み時に量子化オプション等をつけてしまうと、出力が文字化けしてしまうので注意が必要です。
感想
コンテキストが長くなることを力業で解決するのではなく、うまい工夫で解決するのは素晴らしいと思います。また、定量評価が難しいLLMのベンチマーク手法について新たなアイデアがされたことも大きな貢献だと思います。これらアイデアをつかって、さらにオープンソースモデルの性能向上されるのが楽しみですね。
この記事が気に入ったらサポートをしてみませんか?