Open GENZITSU opened 2 months ago
社会的課題解決型データサイエンス・AI研究推進体シンポジウム -大規模言語モデルLLMの最前線- における 高瀬 翔 氏(LINEヤフー株式会社/SB Intuitions)の発表
既存の英語モデルには日本語データが入っているが、あれはたまたま入ってるだけにすぎない。事前学習をすっ飛ばして日本語のFTすればいいのでは?という説もあるが日本語の知識を覚えさせるためにも事前学習が必要という考え
実はllama2の70bの素の性能でもJCQAではかなり出る。一方で日本文化圏に対する詳細な知識が必要な場合は事前学習が必要?
Llama2では13Bに対して4Tくらいでやっているので実際は20倍以上でやった方が良い。基本的には少なめのパラメータ数で多めのtokenで学習することを目指した方がよいというトレンド
CommonCrawlをつかない選択肢は現状ないので、SBもこれを使っている
LLMにおいてもdata centricでよく見る関係が成り立つ。すなわち、ノイズをできるだけ消して学習した方が良い。一方でコーパスクリーニングしない場合で同程度の性能を達するのは難しい。
テキストクリーニングツールとしてHojiChar/HojiChar というのがある
Llama2で解けるような問題は、英語のデータを事前学習を入れることで性能が上がるが、そうでない専門的な話が必要な時は入れたとて意味がない。
高瀬さん的には小さいモデルでも起きうることが、目につきやすくなっただけではという立場(小さいモデルはこれが発生する前に収束している)。loss spikeが起きる前に戻って学習し直すというのもあるが、それも必ずうまくいくわけではない。
floating pointの設定は自分でやった方がよいが、megatron lmのデフォルト値も信頼できる
日本語コーパスの量をどかっと増やす方法は現状ない。。小規模で実験して大規模に行ってもうまくいかないことが多い
JGLUEの作者はLLMの評価にJGLUEを使っても..という感じらしい。どのデータセットが何の能力を評価しているかが大事
基本的に知らないことばかりだったのだが、特に斬新だったのは、簡単な日本語タスクだと素のllama70でもそこそこ溶けてしまうという事実。 ベンチマークをちゃんと作らないとLLMの性能歯正しく測れないんだなということを改めて実感した。 ノイズを消す/消さないの性能差のグラフも地味に重要性が高そう。
社会的課題解決型データサイエンス・AI研究推進体シンポジウム -大規模言語モデルLLMの最前線- における 藤井一喜 氏(情報理工学院 横田研究室)の発表の発表
クラウドのGPUはマルチノード化できない。ノード間の通信速度も大事
3D ParallelはDDP model parallelなどを適切に組み合わせないといけないため、実装が難しい。ただしFROPSは落ちづらい
並列化手法ごとに通信にかかる時間が変わるので、パラメータ調整の必要がある
実装が簡単なFSDPと3D parallelだと2倍ほど効率が変わる
3D parallelはすごいが、アーキテクチャーごとに実装方法を変える必要がある
知らないことばかりだったので、勉強になった
第二回 Data Science Live: Bquant EnterpriseにおけるNLPの活用事例で紹介されていたもの
みずほ銀行 国際証券投資部 田村様の公演
含意判定を用いたzero shotで色々なカテゴリ分けをして、投信戦略に生かしているのが面白い。 zero shot分類の正しさや敷居値調整は運用担当が目で見て実施したらしい。
なし
社会的課題解決型データサイエンス・AI研究推進体シンポジウム -大規模言語モデルLLMの最前線- における 西田京介 氏(NTT人間情報研究所)の発表
独自に言語データを収集して、1000Bトークン以上の専門文書からエンタメにわたるコーパスを構築していると言うのがためになった
ANNの各種アルゴリズムの検索性能や速度、indexサイズに対する検索精度などをまとめているブログ
gloveベクトルに対する検索やfasion mnistに対する検索や距離関数に何を用いるかの比較などもある
また見返せるようにメモ
ANNでよく使われる指標である、HNSWのパラメータを変えた際のパフォーマンス比較をしている記事
M: 接続できるノードの数を表す 増やすと検索精度が上がるが、検索時間と消費メモリも増加する
efConstruction: インデックスの構築時に探索されるエントリポイント数 増やすと検索精度が上がるが、検索時間※とインデックス構築時間も増加する
efSearch: 検索中にレイヤー間で探索されるエントリポイント数 増やすと検索精度が上がるが、検索時間が増加する ※Mが高い場合のみ
Azure AI Searchのデフォルトは 以下で、ここよりも検索精度/検索時間性能を高められるかがポイント
HnswParameters(*, m: int = 4, ef_construction: int = 400, ef_search: int = 500, metric: str | _models.VectorSearchAlgorithmMetric | None = None, **kwargs: Any)
検索対象として、様々なトピックのPowerpointファイルを120件用意しました。
上記のファイルをlang chainのUnstructuredPowerPointLoaderで読み込み、Text splitterで分割しています。 chunk size(分割した文章単位の文字数): 1000 overlap size(文章のオーバーラップ): 500
作成後のindexのサイズは1069となりました。
また、ベクトル検索に使用するembeddingはOpen AI APIのtext-embedding-ada-002を使用しました。ada-002の次元数(ベクトルのサイズ)は1536です。
Azure AI Searchのデフォルトだと役6%ほど総当たりと比べて一致率が低い結果になる
ここからチューニングした結果
脳死でデフォルトパラメータを使っていたので、参考にしたい。 一旦検証する際はMを大きめにしておくことで検索精度を正しく見積もれそうである。
Jasperという企業でRAGを商用サービスに適用する際の種々のTipsを紹介している動画
PDFのParseにはAdobe APIが良かったらしい
回答に必要なドキュメントを全て取れるとは限らないので、大きめのdocument単位でindex を貼っておく。
Retrieve時は二つの粒度のことなるindexの検索スコアを合算して、大きめのdocument単位のものを取得する
RerankingにLLMを用いる。その際に、一度要約を作成してから並び替えて、元の文章を利用する (ここで利用するLLMはgpt4)
Tree Synthesizerを用いて回答を作成する
各コンポーネントにかかる時間
ユーザーからのFBを得られるような機構を残しておく
小さいchunkと大きいchunkのsummaryを一緒に突っ込む方法が斬新だった。
LLMによるRerankingは、正直使うべきではないような気はする...w (ローカルで作成するならまだしも)
LLM時代の情報抽出
Stockmark Tech Meetup #8 LLM時代の情報抽出の内容
stockmark researcher: 広田さんの講演
勉強になったこと
論文自体はT5程度のモデルでやっているが、LLMにも適応可能 以下は実装イメージ
UIE関係のその他の研究、普通のLLMではなくcode生成用のモデルを使った方が良いらしい
論文紹介:ChatGPT で情報抽出タスクは解けるのか? Is information extraction solved by ChatGPT? An analysis of performance, evaluation criteria, robustness and errors という資料が役に立ちそう
より精度を高めたいときはLLMによる情報抽出jobに任せる。自前で作成した13BのモデルをvLLMで動かして、1日あたり2~3万件は捌ける。情報抽出用にLoRAチューニングしている。
Q&A
コメント
KGを元に関連概念を遡って関連ドキュメントを検索していくというのは面白そう。 巨大なKGをエンジニアリング的にどう運用していくのかが気になりではある
出典