Blog (680) — 4/4


Paper/Blog Link My Issue
#Article #One-Line Notes Issue Date: 2024-03-21 Comment

モバイルアプリ開発における生産性指標に関するお話。Four Keysをモバイルアプリに適用した場合の課題を分析し、自チームの中長期的な目標を達成するためにどのような生産性指標を採用すべきかが言語化されており、興味深かった。

Four Keysとは: https://blog.recruit.co.jp/rls/2021-03-31-four-keys/#whats-four-keys




Paper/Blog Link My Issue
#Article #NLP #LanguageModel #MoE(Mixture-of-Experts) #One-Line Notes Issue Date: 2024-03-18 Comment

Apache2.0ライセンス, 314Bパラメータでモデルの重み、Mixture-of-Expertsを採用している。学習データ、学習に利用したコードはおそらく公開されていない。

Grok-1.5がリリース
https://x.ai/blog/grok-1.5

各種ベンチマークの性能、特にMathの性能が向上し、コンテキスト長が128kに

image




Paper/Blog Link My Issue
#Article #NaturalLanguageGeneration #NLP #LanguageModel #One-Line Notes Issue Date: 2024-01-01 Comment

言語モデルのdecodingの方法についてよくまとまっている。まとめられているdecoding方法は以下

- Greedy, BeamSearch, RandomSampling, Temperature, Top-K Sampling, Nucleus Sampling

こちらの記事ではHuggingFaceでの実装や他のdecoding方法等、より実装面での詳細が記述されている:

https://note.com/npaka/n/n9a8c85f2ef7a




Paper/Blog Link My Issue
#Article #NLP #LanguageModel #FoundationModel #Japanese #mid-training #KeyPoint Notes Issue Date: 2023-12-19 Comment

Llama2の日本語性能を継続事前学習で引き上げたLLM。2023年12月時点の日本語オープンソースLLMの中で最高性能とのこと。

開発者の方による詳細はこちら:
https://zenn.dev/tokyotech_lm/articles/d6cb3a8fdfc907

すごい読み応え…checkpointの容量のデカさや、A100x8 60ノード使った話や、ノード不良やスケジュール管理の話、独自に実装をゴリゴリ加えたものではなく最終的に完成度の高さからMegatronLMを採用した話など、バグった規模感と試行錯誤や実体験に基づくエピソード満載。

参考:
ELYZA-tasks-100 でLLM14個の日本語性能を横断評価してみた




Paper/Blog Link My Issue
#Article #EfficiencyImprovement #NLP #LanguageModel #Attention #KeyPoint Notes Issue Date: 2023-12-14 Comment

use_cacheがTrue/Falseの場合のFlashAttention2のinference timeとVRAM使用量の傾向をsequence_lengthごとに考察している。

use_cacheはKey Value cacheのオンオフを切り替えられるオプションである。autoregressiveなモデルのinference時には、何度も同じinput tokenに対するKVの計算が生じるため(M番目のトークンを生成した後、M+1番目のトークンの生成をする場合、M-1番目までのトークンのKVを再計算せねばならない)、cacheをすることで大幅に計算速度が改善される。

use_cacheをTrueにできるならFlashAttention2の恩恵は小さい(inference timeが少し早くなるのみ)ため、潤沢なVRAMがあるなら得られる恩恵は小さい。
逆にVRAM節約してuse_cacheをFalseにせざるを得ないのであれば、FlashAttention2によりVRAM使用量をsequence_legthの線形に抑えることができ、かつinference timeも短くなる。

↑上記はあくまでinferenceをする場合のみの話であり(train時はautoregressive modelではcausal maskを用い、teacher forcingで並列にトークンを生成するためそもそもKV-cacheする意味がない)、trainingをする場合FlashAttention2で大幅にVRAM使用量を減らせるので、そこは分けて考えること。
https://qiita.com/jovyan/items/ff3d0a49163c7afa33ce

Flash Attentionを使ってLLMの推論を高速・軽量化できるか?
https://qiita.com/jovyan/items/11deb9d4601e4705a60d

こちらの記事も非常に勉強になる




Paper/Blog Link My Issue
#Article #NLP #LanguageModel #MultiModal #Proprietary #VisionLanguageModel #KeyPoint Notes #Reference Collection Issue Date: 2023-12-07 Comment

多くのベンチマークでGPT4超えらしい

(追記1)
テクニカルレポートのp.44を見ると、ブログポスト中のGPT4のMMLUのスコアはGPT-4-0613のもののようなので、これが正しいとすると他のベンチマークのスコアも同モデルのものである可能性が高く、GPT-4-1163-preview(最新モデル)のスコアでは"ないかもしれない"点に注意。GPT4とどちらが実際に性能が良いか?については様子見した方が良さそう。

(追記2)
GSM8Kの結果も、GPT4に対してFair Comparisonではないかもしれない点に注意。Geminiは32個のCoTとSelf-Consistencyを利用しているが、GPT4では5-shotで単一のCoTのみであるため、prompting手法ではGeminiに有利な比較となっているように見える。ただしGPT4はGSM8Kの訓練データを事前学習時にMIXしている(SFT)ので、Geminiがこのようなことをしていないのであれば、この点ではGPT4が有利になっている“可能性”がある。

他にもFair Comparisonになっていないと推察されるものはTextモダリティでの評価の表の文言を見るとありそうなのでそこは念頭においた方が良さそうである。

テクニカルレポート: https://storage.googleapis.com/deepmind-media/gemini/gemini_1_report.pdf

Gemini Summary

Loading…

MMLUでの同じprompting手法でのGPT-4-0613との比較。32個のCoTでのSelf-Consistencyで比較した場合、GPT-4-0613に負けているが、閾値を設けてconfidenceが閾値以上の場合はSelf-consistency, そうでない場合はgreedyに生成した結果を選択する、というUncertain-Routed CoT@32では、Geminiのパフォーマンスgainが大きくGPT-4-0613よりも高い性能を示している。
ブログポスト中のGPT4のスコアは5-shotのもの(reportedと書かれているのでOpenAIが公表している数値と推察)であり、Geminiの結果はUncertain-Routed CoT@32の結果であるため、Fair Comparisonになっていないかもしれない?点には注意。

レポート中ではSelf-consistencyという単語でこの部分は書かれていないが、実は少しやっていること違ってたりする…?

image




Paper/Blog Link My Issue
#Article #LanguageModel #One-Line Notes #Reading Reflections Issue Date: 2023-12-05 Comment

StabilityAI Japan秋葉さん(元PFN)のW&B Conferenceでの発表に関する記事。
LLM構築タイムアタックでLLMをもし構築することになったら!?
のざっくりとしたプロセスや、次ページでOpenAIのGPT4のテクニカルレポートのクレジットから各チームの規模感を推定して、どの部分にどの程度の人員が割かれていたのかというのをベースに、各パートでどんなことがやられていそうかという話がされている。

LLM構築タイムアタックで、まずGPUを用意します!(ここが一番大変かも)の時点で、あっ察し(白目 という感じがして面白かった。




Paper/Blog Link My Issue
#Article #InformationRetrieval #NLP #LanguageModel #RAG(RetrievalAugmentedGeneration) Issue Date: 2023-12-04 Comment

実践的な内容(チャンク生成時の工夫、クエリ生成時の工夫等)が網羅的にまとまっており非常に有用

個人的に、コンペ主催者側から提供されたデータが少なく、上位のほとんどのチームがChatGPT(3.5, 4)を用いて、QAデータを生成していた、というのが興味深かった。プロンプトはたとえば下記:

[(5th-place-solution)]( https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446293)より引用

```

system_content = """

Forget all the previous instruction and rigorously follow the rule specified by the user.

You are a professional scientist's assistant.

"""



user_content_template_qa = Template(

"""

Please consider 5 choices question and answer of the following TEXT.

The purpose of this question is to check respondent's deep science understanding of the TEXT.

We assume this question is for professional scientists, so consider super difficult question.

You can ask very detailed question, for example check specific sentence's understanding.

It is good practice to randomly choose specific sentence from given TEXT, and make QA based on this specific sentence.

You must make QA based on the fact written in the TEXT.

You may create wrong answers based on the correct answer's information, by modifying some parts of the correct answer.

Your response must be in following format, don't write any other information.

You must not include "new line" in each Q), 1), 2), 3), 4), 5), and A):

Q) `question text comes here`

1) `answer candidate 1`

2) `answer candidate 2`

3) `answer candidate 3`

4) `answer candidate 4`

5) `answer candidate 5`

A) `answer`



where only 1 `answer candidate` is the correct answer and other 4 choices must be wrong answer.

Note1: I want to make the question very difficult, so please make wrong answer to be not trivial incorrect.

Note2: The answer candidates should be long sentences around 30 words, not the single word.

Note3: `answer` must be 1, 2, 3, 4 or 5. `answer` must not contain any other words.

Note4: Example of the question are "What is ...", "Which of the following statements ...", "What did `the person` do",

and "What was ...".

Note5: Question should be science, technology, engineering and mathematics related topic.

If the given TEXT is completely difference from science, then just output "skip" instead of QA.





Here is an example of your response, please consider this kind of difficulty when you create Q&A:

Q) Which of the following statements accurately describes the impact of Modified Newtonian Dynamics (MOND) on the observed "missing baryonic mass" discrepancy in galaxy clusters?"

1) MOND is a theory that reduces the observed missing baryonic mass in galaxy clusters by postulating the existence of a new form of matter called "fuzzy dark matter."

2) MOND is a theory that increases the discrepancy between the observed missing baryonic mass in galaxy clusters and the measured velocity dispersions from a factor of around 10 to a factor of about 20.

3) MOND is a theory that explains the missing baryonic mass in galaxy clusters that was previously considered dark matter by demonstrating that the mass is in the form of neutrinos and axions.

4) MOND is a theory that reduces the discrepancy between the observed missing baryonic mass in galaxy clusters and the measured velocity dispersions from a factor of around 10 to a factor of about 2.

5) MOND is a theory that eliminates the observed missing baryonic mass in galaxy clusters by imposing a new mathematical formulation of gravity that does not require the existence of dark matter.

A) 4



Let's start. Here is TEXT: $title\n$text

"""

)

```




Paper/Blog Link My Issue
#Article #Mindset Issue Date: 2023-12-04 Comment

視野、視座の話、StepChange、PMとして何に注力すべきか、クリティカルシンキング、Overcommunicationなどの考え方が参考になった。
結局どれだけ収益に繋がるのかという話。ユーザに価値を届けられて満足、で終わってはいけない。




Paper/Blog Link My Issue
#Article #NLP #Infrastructure #ML-LLM Ops #RAG(RetrievalAugmentedGeneration) #KeyPoint Notes #Reading Reflections Issue Date: 2023-11-15 Comment

低コストで社内文書に対するRAGを実現することに注力している。
以下、図はブログから引用。

image

基本的にはバッチジョブで社内文書をベクトル化しS3へ格納。アプリ起動時にS3から最新データを読み込み検索可能にしRAGするという流れ。
低コスト化のために、Embedding作成にOpenWeightの言語モデル(text-edbedding-ada002と同等の性能)を利用している。実装は基本的にllamaindexを利用している。

特に日本語テキストにおいてはtext-embedding-ada002は OpenAI の Embeddings API はイケてるのか、定量的に調べてみる, akeyhero (Akihiro Katsura), Qiita, 2023.04 において、JSTSタスクにおいてあまり性能が高くない(ただし、OpenAI の Embeddings API はイケてるのか、定量的に調べてみる, akeyhero (Akihiro Katsura), Qiita, 2023.04 での報告値は基本的にJSTSデータでfinetuningされてた結果と思われる)と言われているので、お金かけて無理して使う必要はないのかなという印象はある。




Paper/Blog Link My Issue
#Article #Tutorial #NLP #LanguageModel #Alignment #GenerativeAI #Hallucination #Safety #Reading Reflections Issue Date: 2023-11-03 Comment

この資料をスタートにReferしている論文などを勉強すると、GenerativeAIのリスク周りに詳しくなれそう。この辺は疎いので勉強になる。
しかし、LLMのAlignmentが不十分だったり、Hallucinationを100%防ぐことは原理的に不可能だと思われるので、この辺とどう付き合っていくかがLLMと付き合っていく上で難しいところ。この辺は自分たちが活用したいユースケースに応じて柔軟に対応しなければならず、この辺の細かいカスタマイズをする地道な作業はずっと残り続けるのではないかなあ




Paper/Blog Link My Issue
#Article #Survey #ComputerVision #NaturalLanguageGeneration #NLP #LanguageModel #ImageCaptioning #DiffusionModel #Initial Impression Notes Issue Date: 2023-11-02 Comment

これはすごいまとめ…。まだ途中までしか読めていない。CLIPからスタートしてCLIPを引用している論文から重要なものを概要付きでまとめている。




Paper/Blog Link My Issue
#Article #EfficiencyImprovement #NLP #LanguageModel #MultiModal #FoundationModel #KeyPoint Notes Issue Date: 2023-11-01 Comment

**(追記 2026.03: 以下の記述内容は上記ページがリリースされた当初のものであり、現在は上記ページの内容は更新されているようですので、ご注意ください。 )**

NTT製のLLM。パラメータ数は7Bと軽量だが高性能。
MTBenchのようなGPT4に勝敗を判定させるベンチマークで、地理、歴史、政治、社会に関する質問応答タスク(図6)でgpt3.5turboと同等、国産LLMの中でトップの性能。GPT3.5turboには、コーディングや数学などの能力では劣るとのこと。

> *6 Rakudaベンチマーク
日本語の言語モデルの性能を評価するベンチマークの一つで、日本の地理・政治・歴史・社会に関する質問応答タスクによって評価を行う。
URL: https://yuzuai.jp/benchmark

>*7 Japanese Vicuna QAベンチマーク
Rakudaよりもさらに幅広いカテゴリで言語モデルのQAや指示遂行の能力を問う評価方法。一般知識、ロールプレイなど多数の質問から構成される。
URL: https://github.com/hitoshizuku7/LLM_Judge_ku/blob/main/README.md

tsuzumiはアダプタを追加することで、モデル全体のパラメータを更新することなく、さまざまな知識を持たせたり、振る舞いを変えたりできるようになるとのこと(LoRAアダプタのようなものだと思われる)。
まて、将来的に視覚や聴覚などのマルチモーダル対応も実施。

思想がLoRA Hub [Paper Note] LoraHub: Efficient Cross-Task Generalization via Dynamic LoRA Composition, Chengsong Huang+, arXiv'23, 2023.07 に近く、アダプタを着脱すれば柔軟に生成を変えられるのは有用だと思う。




Paper/Blog Link My Issue
#Article #Analysis #MachineLearning #Transformer #FactualKnowledge #One-Line Notes Issue Date: 2023-10-29 Comment

タイトルの通り、知識がFFNに蓄積されていると主張しているらしい原論文を読み解いている。まとめを引用すると

> 「知識は全結合層に蓄積される」という表現は、ややラジカルで、
少なくともこの論文では「全結合層は知識獲得において重要」という程度
の、もう少しマイルドな主張をしているように見受けられました。

とのこと。




Paper/Blog Link My Issue
#Article #Tools #NLP #LanguageModel #Library #Evaluation #RAG(RetrievalAugmentedGeneration) #KeyPoint Notes Issue Date: 2023-10-29 Comment

RAG pipeline (retrieval + generation)を評価するライブラリRagasについて紹介されている。

評価に活用される指標は下記で、背後にLLMを活用しているため、大半の指標はラベルデータ不要。ただし、context_recallを測定する場合はreference answerが必要。
Ragasスコアとしてどのメトリックを利用するかは選択することができ、選択したメトリックのharmonic meanでスコアが算出される。
image

各種メトリックの内部的な処理は下記:
- faithfullness
- questionと生成された回答に基づいて、statementのリストをLLMで生成する。statementは回答が主張している内容をLLMが解釈したものだと思われる。
- statementのリストとcontextが与えられたときに、statementがcontextにsupportされているかをLLMで評価する。
- num. of supported statements / num. of statements でスコアが算出される
- Answer Relevancy
- LLMで生成された回答から逆に質問を生成し、生成された質問と実際の質問の類似度を測ることで評価
- Context Relevancy
- どれだけcontextにノイズが含まれるかを測定する。
- LLMでcontextの各文ごとに回答に必要な文か否かを判断する
- 回答に必要な文数 / 全文数 でスコアを算出
- Context Recall
- 回答に必要な情報を全てretrieverが抽出できているか
- ground truthとなる回答からstatementをLLMで生成し、statementがcontextでどれだけカバーされているかで算出

また、LangSmithを利用して実験を管理する方法についても記述されている。
image




Paper/Blog Link My Issue
#Article #Tools #NLP #LanguageModel #Library #RAG(RetrievalAugmentedGeneration) #One-Line Notes Issue Date: 2023-10-29 Comment

以下リンクからの引用。LangChainから提供されているRetrieverのcontext抽出の性能改善のためのソリューション

> Multi representation indexing:検索に適した文書表現(例えば要約)の作成
Query transformation:人間の質問を変換して検索を改善する方法
Query construction:人間の質問を特定のクエリ構文や言語に変換する方法

https://blog.langchain.dev/query-transformations/




Paper/Blog Link My Issue
#Article #NLP #LanguageModel #Evaluation #KeyPoint Notes #Reading Reflections Issue Date: 2023-10-27 Comment

LLM.jpによる日本語LLMのリーダーボード。4-shotsでの結果、かつinstructionを与えた場合の生成テキストに対する評価、という点には留意したい。たとえばゼロショットで活用したい、という場合にこのリーダーボードの結果がそのまま再現される保証はないと推察される。

日本語LLMベンチマークと自動プロンプトエンジニアリング, PFN Blog, 2023.10 の知見でもあった通り、promptingの仕方によってもLLM間で順位が逆転する現象なども起こりうる。あくまでリーダーボードの値は参考値として留め、どのLLMを採用するかは、自分が利用するタスクやデータで検証した方がbetterだと思われる。

あとはそもそも本当にLLMを使う必要があるのか? [Paper Note] Prompt2Model: Generating Deployable Models from Natural Language Instructions, Vijay Viswanathan+, arXiv'23, 2023.08 のような手法ではダメなのか?みたいなところも考えられると良いのかもしれない。

以下サイトより引用
> 評価手法・ツール
このダッシュボードの内容はllm-jpで公開している評価ツール、llm-jp-evalで各モデルに対して評価を行なった結果である。llm-jp-evalは、既存のリーダボードとは行われている評価とは、主に以下のところで違っている。
AlpacaやBig-Benchなどを参考にした、インストラクションチューニングよりのプロンプトを入力として与えて、その入力に対するモデルの生成結果を評価する
>評価は基本、モデルが生成した文字列だけを使って行う
>Few shotでの評価を行っており、このダッシュボードには4-shotsでの結果を載せている

>評価手法・ツールの詳細はllm-jp-evalを是非参照されたい。

>評価項目・データセット
評価項目として、まず4つのカテゴリーにおける平均スコアを算出した。さらにその4カテゴリーの平均値の平均値をとった値がAVGである。
MC (Multi-Choice QA):jcommonsenseqa
NLI (Natural Language Inference):jamp、janli、jnli、jsem、jsick
QA (Question Answering):jemhopqa、niilc
RC (Reading Comprehension):jsquad

>それぞれのカテゴリの平均を出す方法に言語学的な意味はないため、最終的な平均値はあくまで参考値ということに注意されたい。

JGlueを利用した日本語LLMのリーダーボードとして Nejumi LLMリーダーボード, Weights & Biases などもある




Paper/Blog Link My Issue
#Article #RecommenderSystems #ML-LLM Ops #KeyPoint Notes Issue Date: 2023-09-05 Comment

推薦システムには様々なusecaseが存在しており、それらは別々に運用されることが多い。

- user-item recommendation

- item-item recommendation

- query-item recommendation

- category-item recommendation



このような運用はシステムの技術負債を増大させ、長期的に見るとメンテナンスコストが膨大なものとなってしまう。また、多くの推薦システムには共通化できる部分がある。

これら異なるusecaseの推薦システムをmulti-taskなモデルに統合し技術負債を軽減した経験が記述されている。

これが

image

このようなsingle multi-task modelを学習する構造に置き換わり、

image

その結果

- code量とデプロイの管理・メンテナンスコストの低減

- 保守性の向上

- 単一化されたコードベースが、緊急時の対応を容易にした

- あるユースケースで新たなfeatureを試し効果があった場合、他のユースケースに迅速に展開可能(同じパイプラインなので)

- ただし、multi taskの場合は特定のタスクに効果があったfeatureの導入により他タスクの性能が低下する懸念がある

- が、タスク間の関連性が高い場合(今回のような場合)、それは問題とならなかったことが記述されている

- 柔軟な設計の実現

- 複数のユースケースを一つのモデルに統合することは、複数のユースケースを組み込むための柔軟な設計が求められる

- これを実現したことにより、拡張性が増大した

- 結論

- このような統合がコードを簡略化し、イノベーションを加速させ、システムの保守性を向上させるシナリオが多くある

- ただし、ランキングの対象が異なっていたり、入力として活用する特徴量が大きく異なるモデル間で、このような統合の実施に適しているかは自明ではない




Paper/Blog Link My Issue
#Article #Tutorial #NLP #LanguageModel #Supervised-FineTuning (SFT) #mid-training #PostTraining #needs-revision Issue Date: 2023-08-29 Comment

>LLMのファインチューニングは、「形式」の学習は効果的ですが、「事実」の学習は不得意です。

> シェイクスピアの脚本のデータセット (tiny-shakespeare) の
「ロミオ」を「ボブ」に置き換えてファインチューニングして、新モデルの頭の中では「ロミオ」と「ボブ」をどう記憶しているかを確認します。

ファインチューニングしても、Bで始まるジュリエットが恋する人物について質問しても、ボブと答えてはくれない。
> ロミオ」は「ジュリエット」が恋していたこの男性に関連付けられており、「ロミオ」を「ボブ」に置き換えるファインチューニングでは、ニューラルネットワークの知識ベースを変更することはできませんでした。

なるほど。

参考: https://www.anyscale.com/blog/fine-tuning-is-for-form-not-facts?ref=blog.langchain.dev

関連:

Loading…




Paper/Blog Link My Issue
#Article #NLP #LanguageModel #Library #OpenWeight #Japanese #KeyPoint Notes Issue Date: 2023-08-29 Comment

商用利用可能、70億パラメータ。
ELYZA社が独自に作成した評価セットでは日本語のOpenLLMの中で最高性能。ただし、モデル選定の段階でこの評価データの情報を利用しているため、有利に働いている可能性があるとのこと。

一般的に利用される日本語の評価用データでは、なんとも言い難い。良いタスクもあれば悪いタスクもある。が、多分評価用データ自体もあまり整備は進んでいないと想像されるため、一旦触ってみるのが良いのだと思う。




Paper/Blog Link My Issue
#Article #Embeddings #NLP #LanguageModel #STS (SemanticTextualSimilarity) #Encoder #One-Line Notes Issue Date: 2023-07-31 Comment

[JSTSタスク]( https://github.com/yahoojapan/JGLUE)では、[Tohoku BERT v3]( https://github.com/cl-tohoku/bert-japanese/tree/main#model-performances) と [LUKE]( https://github.com/studio-ousia/luke)が最も性能が良いらしい。

[SimCSE]( https://huggingface.co/pkshatech/simcse-ja-bert-base-clcmlp)よりも性能が良いのは興味深い。




Paper/Blog Link My Issue
#Article #NaturalLanguageGeneration #NLP #LanguageModel #FoundationModel #Coding #KeyPoint Notes #needs-revision Issue Date: 2023-05-06 Comment

・15.5Bパラメータ
・80種類以上のプログラミング言語で訓練
・Multi Query Attentionを利用
・context window size 8192
・Fill in the middle objectiveを利用

Instruction tuningがされておらず、prefixとsuffixの間を埋めるような訓練のされ方をしているので、たとえば関数名をinputして、そのmiddle(関数の中身)を出力させる、といった使い方になる模様。

paper: https://drive.google.com/file/d/1cN-b9GnWtHzQRoE7M7gAEyivY0kl4BYs/view

StarCoder:
https://huggingface.co/bigcode/starcoder

StarCoderBaseを35Bのpython tokenでfinetuningしたモデル。
既存モデルよりも高性能と主張

image




Paper/Blog Link My Issue
#Article #NLP #LanguageModel #OpenWeight #One-Line Notes Issue Date: 2023-05-06 Comment

新たなオープンソースLLM。
下記ツイートより引用:

・商用利用可能
・6万5000トークン使用可能
・7Bと比較的小さいモデルながら高性能
・日本語を扱え性能が高い

とのこと。

Loading…

ChatGPTのLLMと比較すると、ざっと例を見た感じ質問応答としての能力はそこまで高くなさそうな印象。
finetuningしない限りはGPT3,GPT4で良さげ。

github: https://github.com/mosaicml/llm-foundry




Paper/Blog Link My Issue
#Article #RecommenderSystems #Tutorial #Embeddings #EfficiencyImprovement #Library #KeyPoint Notes Issue Date: 2023-04-25 Comment

dynamic embeddingを使った推薦システムの構築方法の解説

(理解が間違っているかもしれないが)推薦システムは典型的にはユーザとアイテムをベクトル表現し、関連度を測ることで推薦をしている。この枠組みをめっちゃスケールさせるととんでもない数のEmbeddingを保持することになり、メモリ上にEmbeddingテーブルを保持して置けなくなる。特にこれはonline machine learning(たとえばユーザのセッションがアイテムのsequenceで表現されたとき、そのsequenceを表すEmbeddingを計算し保持しておき、アイテムとの関連度を測ることで推薦するアイテムを決める、みたいなことが必要)では顕著である(この辺の理解が浅い)。しかし、ほとんどのEmbeddingはrarely seenなので、厳密なEmbeddingを保持しておくことに実用上の意味はなく、それらを単一のベクトルでできるとメモリ節約になって嬉しい(こういった処理をしてもtopNの推薦結果は変わらないと思われるので)。
これがdynamic embeddingのモチベであり、どうやってそれをTFで実装するか解説している。




Paper/Blog Link My Issue
#Article #Tools #Infrastructure #ML-LLM Ops #Repository #API #SoftwareEngineering Issue Date: 2022-12-01 Comment

FlaskAPIを(Flaskでなくても良い)Google Cloud Run上で、TerraFormで定義したインフラ環境でデプロイするためのリポジトリ

0. リポジトリをclone
1. Flaskアプリ作成
2. FlaskアプリをDocker化
3. TerraFormのStateを保存するためのCloudStorage作成
4. TerraFormのコード作成
5. GitHub Actionでデプロイ(CI/CD)

5によってmainブランチに対するプルリクが本番環境にデプロイされる。

Cloud Runについて
https://dev.classmethod.jp/articles/gc-cloud-run/




Paper/Blog Link My Issue
#Article #Infrastructure #ML-LLM Ops #One-Line Notes #needs-revision Issue Date: 2022-04-27 Comment

機械学習(ML)システムの継続的インテグレーション(CI)、継続的デリバリー(CD)、継続的トレーニング(CT)の実装と自動化

MLOpsのレベルを0~2で表現しており、各レベルごとに何が達成されるべきかが図解されている。




Paper/Blog Link My Issue
#Article #Tutorial #BeamSearch #One-Line Notes #Reading Reflections Issue Date: 2021-06-24 Comment

ビームサーチについて、コード付きで説明してくれており、大変わかりやすい。

heapqを使って実装している。また、ビームサーチをbatchに対して行う方法についても書いてある(ただ、一部に対してしかbatchでの処理は適用できていない)。

自分もバッチに対して効率的にビームサーチするにはどのように実装すれば良いのかよくわからないので、誰か教えて欲しい。




Paper/Blog Link My Issue
#Article #Tutorial #KeyPoint Notes Issue Date: 2021-06-03 Comment

Skip Connectionは

- 推論時のメモリ消費量が増える
- 推論時に計算量の割に実際の計算が重たくなりがち(特にDNN専用アクセラレーターにおいてその傾向がありがち)

というデメリットがあり、SkipConnection無しで性能を出したいことから、様々な研究が行われている模様。

ResNetを学習し、それを教師としてPlainCNNを学習するResidual Distillationが決定版らしい(普通のDistillationでは最終層の類似度のみを用いるが、生徒ネットワークの中間層の出力を教師ネットワークに入れてからbackpropして勾配を得る)。

50層のPlainCNNで、ResNet50とほぼ同等のtop-1 accuracyを達成。
メモリ消費量は20%弱削減され、実行速度は20〜30%程度高速になる。




Paper/Blog Link My Issue
#Article #NeuralNetwork #Tutorial #ComputerVision #EfficiencyImprovement #ImageClassification #One-Line Notes Issue Date: 2021-05-24 Comment

既存画像認識モデルの構造は変化させず、広さ、深さ、解像度を複合スケーリングすることで、従来よりも少ないパラメータ数、かつ学習速度でSoTAを達成。広さ、深さ、解像度はそれぞれ性能に互いに影響しあっており、従来のように別々にスケーリングするのではなく、3つのバランスをとりながらスケーリングする。スケーリングする際は、結果的にはそれぞれをある値で定数倍すれば良く、そのある値は最大メモリや最大FLOPS数以下(およびFLOPSが2のΦ乗で増加するような)といった制約下でAccuracyが最大化される値をグリッドサーチで見つける(らしい。ざっくりとした理解)。
転移学習しても多くのタスクでSoTA達成した。