Re:ゼロから始めるML生活

どちらかといえばエミリア派です

Python

LangChainでGeminiの明示的Context Cacheを使う

前回までプロンプトキャッシングについて調べたりコード書いたりしていました。 www.nogawanogawa.com www.nogawanogawa.com 似たような機能で、Geminiにも明示的Context Cacheという機能があります。 ai.google.dev 公式ドキュメントにも、 暗黙的なキャッ…

LangChainでPrompt Cachingが利用されていることを確認する

この前はプロンプトキャッシュについて調べていました。 www.nogawanogawa.com 実際に各種生成AIサービスを利用する際にはLangChainを利用することが多いと思うので(諸説あり)、今回はLangChainを使いつつちゃんとプロンプトキャッシュが効いていることを…

コサイン類似度に基づいてANNする際に正規化は必要か?

(雑記です) 表題の件について、ちょっと気になって夜も眠れなくなってしまったのでブログに書いてみます。

vllmで埋め込みモデルの推論を高速化する

小ネタです。 transformersの埋め込みモデルを使ってembeddingを作りたいことは割といろんなところであるかと思いますが、このembedding作成もそこそこ時間を食ったりします。 可能であれば埋め込みを計算するときも高速化したいので、今回はvllmで高速化し…

torchtuneを使ってカスタムデータセットでLlama 3.1をfinetuneする

最近LLMをいじってるんですが、LLMのfinetuneをコードを自分で書いて実行するのはまだまだ不安です。 処理も重たくGPU必須なのでそれなりにコストがかかるのに、変にバグらせるとショックもでかいです。 なので、できればコマンドだけでぱぱっとできると嬉し…

TabMの使い方のメモ

軽めのネタです。 ちょっと前にCMIコンペに出てまして、そこでテーブルデータに大してNNを適用させる実験をしていました。 www.nogawanogawa.com この実験で色々試しているときに、なにやら別のコンペでTabMというNNの手法が効いたという話を耳にしたのでCMI…

Unslothの覚書き

これまでLLMはChatGPTとかを使うくらいの関わり方をしていたんですが、最近重い腰上げてLLMについてキャッチアップしようと勉強したりしていたりします。 LLMをfine tuneしようとしたときにどうやらUnslothというライブラリが便利らしいという話を小耳に挟み…

LlamaIndexでGemini 1.5 Flashを使う

最近諸事情がありまして、プライベートでLLMをガチャガチャいじっていたんですがChatGPTの請求がとんでもないことになっていました。 流石にコストかかり過ぎだということで、コストが安いGemini 1.5 Flashを使うことを検討しています。 LlamaIndexでGemini …

続:RAGの評価をいい感じにできるようにしたい

前にRAGの評価をいい感じにできないか試行錯誤してみてました。 www.nogawanogawa.com ただ、その後使ってみてやっぱりArize Phoenixに依存するとなにかとしんどい感じがしたので、特にツールを使用せず普通のコードだけで評価をいい感じにできるように色々…

LlamaTraceを使ってみる

以前Arize Phoenixを使ってたりしました。 www.nogawanogawa.com www.nogawanogawa.com そんなArize Phoenixですが、どうやらLlamaCloudでLlamaTraceという名前で使えるようになっているらしいです。 We’re excited to feature LlamaTrace - a collaborative…

Geminiで安全性属性に関するエラーが出たときの対応メモ

小ネタです。 Gemini-ProやGemini-flashを使っているときに、安全性に関するメッセージとともにエラーになることがあります。 このときの対処方法について調べてみたのでそのメモです。

RAGの評価をいい感じにできるようにしたい

最近こんな記事を見かけました。 zenn.dev zenn.dev zenn.dev 自分もRAGとかちょろっと勉強してたりしてLLMアプリケーションの評価周りはずっと気になるところではあったので、上記の記事を見てちょっと勉強してみる気になりました。 せっかくなので、色々作…

Arize PhoenixのTraceを永続化させてColabで読み出す

前にArize Phoenixを使ってみてました。 www.nogawanogawa.com Arize Phoenixを使うときに実験の記録が永続化できると非常に便利なんで、試しにやってみたのでそのメモです。

LlamaIndexでHybrid Searchを試す

前回はLlamaIndexのvector searchでFaissを使ってみました。 今回は、検索部分についてメジャーな改善手法であるHybrid SearchをLlamaIndexで試してみたいと思います。

LlamaIndexでFaissを使う

この前は、LlamaIndexのプロンプトテンプレートを日本語にしてたりしました。 www.nogawanogawa.com 今回はretrivalの部分をちょっとカスタマイズをしようと思い、デフォルトの検索方法を変えてFaissを使うようにしたいと思います。

テキスト間の一致度を評価したい

「2つのテキストが一致していること」を判定しようとすると結構苦労することがあります。 "わかりやすく", "微妙に"違ってる、くらいだと良いんですが、現実の問題を考えるとそんなわかりやすい状況のほうが珍しいということに気が付きます。 今回はそんな意…

RAGのお試しテストケース用データセット作成

RAGをやっていて精度検証用データセットの作成で困ったことはないですか? 精度評価用のデータセットなんて作成することだけでも超めんどくさそうじゃないですか? ということで、今回はこの簡易精度評価に使うデータセット作成をやってみようと思います。

LlamaIndexの裏で動いてるプロンプトを日本語にする覚書き

以前LlamaIndexを使っていました。 www.nogawanogawa.com LlamaIndexで質問を入力するとき、デフォルトだと英語のプロンプトが混じっています。 これをすべて日本語で動かすときにいつもやり方を忘れてしまうので今回はそのメモです。

GPT-4oをOCRとして使う

OpenAIからChatGPT-4oが発表されましたが、皆さんガンガンつかっていますでしょうか? さて、このChatGPT-4oですが、テキスト以外のデータも使用できるようになっているという特徴があります。 普通にテキストでのやり取りをしつつも画像データを扱えるとい…

Naive RAGからModular RAGまで

RAGの評価についてちょこちょこ調べたりしてましたが、今回はRAGの改善方法について調べたいと思います。 正直、今でもいたるところで手法が提案されているので追いかけきれませんが、包括的なレポートで言及されている考え方くらいは調べてみたいと思います…

いまさらLlamaIndexの使い方について勉強する

最近、というかこのGW中はRAGしかやってません。 www.nogawanogawa.com www.nogawanogawa.com www.nogawanogawa.com www.nogawanogawa.com そんなRAGをやっているんですが、実はLlamaIndexについてはちゃんと勉強してなかったことに気がついたので、今更なが…

RAGの評価をRagasを使ってやってみる

この前はPhoenixを使ってRAGの実験管理をしてみました。 とはいうものの、Phoenixに事前定義された機能で評価をしただけなので、今回改めてRAGアプリケーションの精度評価について考えてみようと思います。 RAGの評価周りでよく知られたツールとしてRagasが…

LlamaIndexを使ったサンプルRAGアプリケーションを動かす

2023年くらいからLLMがブームになってますが、自分はというとChatGPTをそのまま使っていたくらいで、それ以上はLLMに特に触っていませんでした。 正直そんなに興味はなかったんですが、まったく知らないのはそれはそれでまずいと思うようになりました。 とい…

Feature Storeってどんなもん?Feastを使ってみる

この記事はMLOps Advent Calendar 2023の23日目の記事です。 以前、Feature Storeに関する記事を書いていました。 www.nogawanogawa.com この記事を書いた当時は「Feature Storeってこんな感じかー」って思って終わってしまい、どんな感じに使うのかは触って…

PyTorch Metric Learningの使い方を眺める

良質なEmbeddingを作成したくなることがあって、Deep Metric Learningを試してみることにしました。 やってみたら意外と使い方にハマったので、備忘の意味で記録していこうと思います。

PyTorch Lightningでcross validationを書こうと思ったら失敗した話

前にこんな感じのことをつぶやいていました。 pytorch lightningでcross validation書くときって、こんな感じに書かなきゃダメなの?もっとシンプルに書けるもんなのか?(全然わかってない顔)https://t.co/R3OzpZC0lq— 野川の側 (@nogawanogawa) 2022年11…

ランク学習の推薦モデルについて解釈してみる

この記事は (1人で)基礎から学ぶ推薦システム Advent Calendar 2022の20日目の記事です。 機械学習の解釈性・説明性が注目され始めてから久しく現在では、回帰や分類タスクに関するXAIへの取り組み方は調べれば文献が得られるようになってきたなと思ってい…

EASEを使ってみる

この記事は (1人で)基礎から学ぶ推薦システム Advent Calendar 2022の13日目の記事です。 今回は、EASEというアルゴリズムを試してみようと思います。 ※見様見真似で書いてみたものの、スコアが低すぎてなんかおかしいので多分後で実装し直します。

iALSを使ってみる

この記事は (1人で)基礎から学ぶ推薦システム Advent Calendar 2022の12日目の記事です。 最近iALSという、暗黙的FBを使った協調フィルタリングのアルゴリズムに関する記事を見かけました。 engineering.visional.inc このアルゴリズムは結構昔からあるの…

基本的な推薦アルゴリズムを書いて眺める

この記事は (1人で)基礎から学ぶ推薦システム Advent Calendar 2022の11日目の記事です。 推薦関係のアルゴリズムは現在でも新しいアルゴリズムがありますが、古典的なアルゴリズムとして協調フィルタリング〜Factorization Machineが挙げられると思います…