GENZITSU / UsefulMaterials

34 stars 0 forks source link

almost weekly useful materials - 03/06 - #147

Open GENZITSU opened 2 months ago

GENZITSU commented 2 months ago

LLM時代の情報抽出

Stockmark Tech Meetup #8 LLM時代の情報抽出の内容

stockmark researcher: 広田さんの講演

勉強になったこと

スクリーンショット 2024-02-27 19 07 09

image

image

論文自体はT5程度のモデルでやっているが、LLMにも適応可能 以下は実装イメージ

image

image

image

image

UIE関係のその他の研究、普通のLLMではなくcode生成用のモデルを使った方が良いらしい

image

論文紹介:ChatGPT で情報抽出タスクは解けるのか? Is information extraction solved by ChatGPT? An analysis of performance, evaluation criteria, robustness and errors という資料が役に立ちそう

image

image

より精度を高めたいときはLLMによる情報抽出jobに任せる。自前で作成した13BのモデルをvLLMで動かして、1日あたり2~3万件は捌ける。情報抽出用にLoRAチューニングしている。

image

image

Q&A

コメント

KGを元に関連概念を遡って関連ドキュメントを検索していくというのは面白そう。 巨大なKGをエンジニアリング的にどう運用していくのかが気になりではある

出典

GENZITSU commented 2 months ago

ゼロからつくる大規模言語モデル

社会的課題解決型データサイエンス・AI研究推進体シンポジウム -大規模言語モデルLLMの最前線- における 高瀬 翔 氏(LINEヤフー株式会社/SB Intuitions)の発表

勉強になったこと

image

既存の英語モデルには日本語データが入っているが、あれはたまたま入ってるだけにすぎない。事前学習をすっ飛ばして日本語のFTすればいいのでは?という説もあるが日本語の知識を覚えさせるためにも事前学習が必要という考え

image

実はllama2の70bの素の性能でもJCQAではかなり出る。一方で日本文化圏に対する詳細な知識が必要な場合は事前学習が必要?

image

image

Llama2では13Bに対して4Tくらいでやっているので実際は20倍以上でやった方が良い。基本的には少なめのパラメータ数で多めのtokenで学習することを目指した方がよいというトレンド

image

image

CommonCrawlをつかない選択肢は現状ないので、SBもこれを使っている

image

image

LLMにおいてもdata centricでよく見る関係が成り立つ。すなわち、ノイズをできるだけ消して学習した方が良い。一方でコーパスクリーニングしない場合で同程度の性能を達するのは難しい。

image

テキストクリーニングツールとしてHojiChar/HojiChar というのがある

image

Llama2で解けるような問題は、英語のデータを事前学習を入れることで性能が上がるが、そうでない専門的な話が必要な時は入れたとて意味がない。

image

image

高瀬さん的には小さいモデルでも起きうることが、目につきやすくなっただけではという立場(小さいモデルはこれが発生する前に収束している)。loss spikeが起きる前に戻って学習し直すというのもあるが、それも必ずうまくいくわけではない。

image

image

image

image

image

image

floating pointの設定は自分でやった方がよいが、megatron lmのデフォルト値も信頼できる

image

日本語コーパスの量をどかっと増やす方法は現状ない。。小規模で実験して大規模に行ってもうまくいかないことが多い

image

JGLUEの作者はLLMの評価にJGLUEを使っても..という感じらしい。どのデータセットが何の能力を評価しているかが大事

image

Q&A

コメント

基本的に知らないことばかりだったのだが、特に斬新だったのは、簡単な日本語タスクだと素のllama70でもそこそこ溶けてしまうという事実。 ベンチマークをちゃんと作らないとLLMの性能歯正しく測れないんだなということを改めて実感した。 ノイズを消す/消さないの性能差のグラフも地味に重要性が高そう。

出典

GENZITSU commented 2 months ago

大規模言語モデルの事前学習知見

社会的課題解決型データサイエンス・AI研究推進体シンポジウム -大規模言語モデルLLMの最前線- における 藤井一喜 氏(情報理工学院 横田研究室)の発表の発表

勉強になったこと

image

image

image

image

image

クラウドのGPUはマルチノード化できない。ノード間の通信速度も大事

image

3D ParallelはDDP model parallelなどを適切に組み合わせないといけないため、実装が難しい。ただしFROPSは落ちづらい

image

image

image

image

並列化手法ごとに通信にかかる時間が変わるので、パラメータ調整の必要がある

image

実装が簡単なFSDPと3D parallelだと2倍ほど効率が変わる

image

image

3D parallelはすごいが、アーキテクチャーごとに実装方法を変える必要がある

image

image

image

Q&A

コメント

知らないことばかりだったので、勉強になった

出典

GENZITSU commented 2 months ago

みずほ銀行の含意判定ユースケース

第二回 Data Science Live: Bquant EnterpriseにおけるNLPの活用事例で紹介されていたもの

みずほ銀行 国際証券投資部 田村様の公演

テキストデータ前処理

FEDテキスト解析

投資局面の分類 インベストメントクロックの説明

Q&A

コメント

含意判定を用いたzero shotで色々なカテゴリ分けをして、投信戦略に生かしているのが面白い。 zero shot分類の正しさや敷居値調整は運用担当が目で見て実施したらしい。

出典

なし

GENZITSU commented 2 months ago

NTT版大規模言語モデル『tsuzumi』の取組について

社会的課題解決型データサイエンス・AI研究推進体シンポジウム -大規模言語モデルLLMの最前線- における 西田京介 氏(NTT人間情報研究所)の発表

勉強になったところ

image

image

image

image

image

image

image

image

image

コメント

独自に言語データを収集して、1000Bトークン以上の専門文書からエンタメにわたるコーパスを構築していると言うのがためになった

出典

GENZITSU commented 2 months ago

ANN-Benchmarks

ANNの各種アルゴリズムの検索性能や速度、indexサイズに対する検索精度などをまとめているブログ

gloveベクトルに対する検索やfasion mnistに対する検索や距離関数に何を用いるかの比較などもある

スクリーンショット 2024-03-04 20 54 54

スクリーンショット 2024-03-04 20 55 06

コメント

また見返せるようにメモ

出典

GENZITSU commented 2 months ago

RAGに捧げるベクトル検索パフォーマンスチューニング

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%ほど総当たりと比べて一致率が低い結果になる

スクリーンショット 2024-03-04 21 01 34

スクリーンショット 2024-03-04 21 01 22

スクリーンショット 2024-03-04 21 02 42

ここからチューニングした結果

スクリーンショット 2024-03-04 21 03 11

コメント

脳死でデフォルトパラメータを使っていたので、参考にしたい。 一旦検証する際はMを大きめにしておくことで検索精度を正しく見積もれそうである。

出典

GENZITSU commented 2 months ago

LlamaIndex Sessions: Practical Tips and Tricks for Productionizing RAG

Jasperという企業でRAGを商用サービスに適用する際の種々のTipsを紹介している動画

勉強になったところ

image

image

PDFのParseにはAdobe APIが良かったらしい

image

回答に必要なドキュメントを全て取れるとは限らないので、大きめのdocument単位でindex を貼っておく。

image

image

Retrieve時は二つの粒度のことなるindexの検索スコアを合算して、大きめのdocument単位のものを取得する

image

RerankingにLLMを用いる。その際に、一度要約を作成してから並び替えて、元の文章を利用する (ここで利用するLLMはgpt4)

image

image

image

Tree Synthesizerを用いて回答を作成する

image

各コンポーネントにかかる時間

image

ユーザーからのFBを得られるような機構を残しておく

image

コメント

小さいchunkと大きいchunkのsummaryを一緒に突っ込む方法が斬新だった。

LLMによるRerankingは、正直使うべきではないような気はする...w (ローカルで作成するならまだしも)

出典