GENZITSU / UsefulMaterials

34 stars 0 forks source link

almost weekly useful materials - 03/29 - #129

Open GENZITSU opened 1 year ago

GENZITSU commented 1 year ago

利用目的にそって学習後の性能を疑うこと

AIの学習やり利用は簡単になってきたがその性能は適用ユースケースの前提条件を踏まえた上で、批判的に評価する必要があることを論じている記事

物体検出モデルを念頭に置いたチェックポイントを紹介しており、プロジェクト企画時にとても参考になる内容

PRJ全般に関するチェックポイント

物体検出に関するチェックポイント

上記全てをクリアすることはまず不可能なので、何が妥協できるかを検討することが大事。 また、モデルに全部丸投げするのではなく、適切な後処理、前処理を検討することが大事

撮影環境に関するチェックポイント

コメント

適用ユースケースが持つ前提条件はbiz側の方がよく知っていることが多いので、dev側がちゃんとそれを引き出せるようにしないといけないなぁと

出典

利用目的にそって学習後の性能を疑うこと

GENZITSU commented 1 year ago

GPTが出した回答の確からしさを見えるようにしてみる

ChatGPTを利用したQ&Aシステムの最もらしさを与えたコンテキストと出力の含意タスクを解くことで評価することを試みている記事。

含意タスク部分もChatGPTに丸投げするのではなく、GPT3をファインチューニングしたモデルで行っているのが印象的

ファインチューニングにはJNLIの学習データを加工した100行サンプルを利用。

コメント

GPT-3を叩く料金とChatGPTを叩く料金がダブルでかかってしまうが、面白いアイデアである。

出典

GPTが出した回答の確からしさを見えるようにしてみる

GENZITSU commented 1 year ago

ChatGPTに自社データを組み込んで新しい検索体験を模索してみました

ChatGPTを用いて、社内の文書データに対するQ&A・検索システムを構築する方法の紹介

大枠の流れとしては、質問文(検索query)に関係がありそうな文書を引っ張ってきて、適宜要約をかけながらpromptに埋め込むというもの。

コメント

基本的な型として勉強になる。

出典

ChatGPTに自社データを組み込んで新しい検索体験を模索してみました

GENZITSU commented 1 year ago

Alpaca まとめ

GPT3の25分の1のパラメータ数で、同程度の性能を持つAlpacaの解説記事

以下気になったところだけ抜粋

コメント

めちゃくちゃありがたい解説記事だった。

この一連の処理はLLMの蒸留とみなせるような気がする。
個人的には学習データを低コストで生成できるようにした工夫の貢献が一番重要に見えた。 商用利用できるベースモデルの公開が待ち遠しいところ。

出典

GENZITSU commented 1 year ago

手元で動く軽量の大規模言語モデルを日本語でファインチューニングしてみました(Alpaca-LoRA)

Alpacaをlow-rank adaptationでさらに軽量化させたAlpaca-LoRAモデルをalpaca-datasetの日本語訳を用いて学習させた取り組みの紹介

以下気になったところだけ抜粋

コメント

LLMを軽量化させる取り組みの進展が思ったより早いなぁという感覚を覚えた。取り組み自体は上手くいってないという結果ではあるが、1万円ちょっと程度でLLMを学習させられる世界線は熱い

出典

手元で動く軽量の大規模言語モデルを日本語でファインチューニングしてみました(Alpaca-LoRA)

GENZITSU commented 1 year ago

資源として見る実験プログラム

適切な実験と考察を回すための実験用コードの書き方について解説しているスライド

以下気になったスライドを抜粋

スクリーンショット 2023-03-22 18 40 06

スクリーンショット 2023-03-22 18 40 43

スクリーンショット 2023-03-22 18 40 58

スクリーンショット 2023-03-22 18 41 28

スクリーンショット 2023-03-22 18 41 38

スクリーンショット 2023-03-22 18 42 21

スクリーンショット 2023-03-22 18 42 50

スクリーンショット 2023-03-22 18 42 59

スクリーンショット 2023-03-22 18 43 15

コメント

実験用コードを整備する上での実践的なtipsがふんだんに盛り込まれている良資料。

出典

資源として見る実験プログラム

GENZITSU commented 1 year ago

BigQuery JSON型によりログの効率化は可能か?

絶えず変化するログ出力に対応するため、json文字列で保存されていたログの保存容量と読み出しデータ量の効率化方法を模索している記事

BigQueryにおいてはJSON型というものが利用できるため、保存容量を削減したい場合においてはjson文字列をjson型にし、さらにデータ型をつけることでネイティブ化することでコストを削減することが可能。

一方で、配列へのアクセス際の読み出し容量を削減するためには、要素ごとにログを出力しないと、全要素を見ることになってしまうようだ

読み込みバイト数が減らなかったのはJSON型において、構造体の配列 (array of structs: AoS) へのアクセスが最適化されていないためです。 JSON型において、構造体が配列に含まれている場合、その構造体の一部要素にアクセスすると、構造体のすべての要素が読み込まれてしまいます。(公式問い合わせ結果)

スクリーンショット 2023-03-22 20 37 27

コメント

サービスの成長共にログはめちゃくちゃ重たくなってくるので、こういう効率化はとても大事。

このログが1週間で2TBずつ蓄積しており取り回しが悪い状況になっていました。

出典

BigQuery JSON型によりログの効率化は可能か?

GENZITSU commented 1 year ago

BloomをLoRaを使い日本語alpaca datasetでfine tuneを動かす

表題の通り、ライセンスが緩いBloomに対してLoRAで軽量化を行い日本語alpaca datasetを用いたfinetuningをしている記事

Bloomは日本語に非対応だがhaggingfaceにも登録されていて取り回しやすいのが良い点であった、そいつを日本語対応可能にさせるのは熱い。

コメント

self instructでLLM学習用のデータを作成できるようにしたalpaca datasetの貢献がデカすぎる

出典

BloomをLoRaを使い日本語alpaca datasetでfine tuneを動かす

GENZITSU commented 1 year ago

Pandas 2.0はPolarsよりも速いのか?

PyArrowが使えるようになるPandas 2.0とPolarsの速度比較をさまざまな処理で行っている記事

unique処理以外はPolarsの方が早いという結果を得ている

コメント

Polarsつよし

出典

Pandas 2.0はPolarsよりも速いのか?

GENZITSU commented 1 year ago

ChatGPTプロンプトエンジニアリングのコツ8箇条~OpenAI公式のベストプラクティスから学ぶ~

表題の通り、以下テクニック部分だけ抜粋

プロンプトの先頭に指示を入れ、##または"""で指示と文脈を区切る。

NG

以下の文章を、最も重要な点を箇条書きにして要約する。

{文章の中身}

better

以下の文章を、最も重要な点を箇条書きにして要約する。

Text: """
{文章の中身}
"""

具体的かつ説明的で、できるだけ詳細に説明する

NG

OpenAIについて詩を書く。

OK

OpenAIについて、最近のDALL-E(DALL-Eはテキストから画像へのMLモデル)の製品発表に焦点を当て、{有名な詩人}のスタイルでインスピレーションを与える短い詩を書いてください。

例示を通して、出力の形式を説明する

例(例1、例2)を通して、望ましい出力形式を明確にする。

NG

以下のテキストに記載されているエンティティを抽出する。以下の4つのエンティティタイプ:会社名、人名、特定のトピック、テーマを抽出する。

Text: {文章の中身}

OK

以下のテキストに記載されている重要なエンティティを抽出する。まずすべての会社名を抽出し、次にすべての人名を抽出し、次に内容に合った特定のテーマを抽出し、最後に一般的な包括的テーマを抽出する。

希望するフォーマット:
会社名: <コンマで区切られた会社名のリスト>
人名: -||-
特定のテーマ: -||-
一般的なテーマ: -||-

Text: """
{文章の中身}
"""

"ふわっと"した不正確な記述を減らす

NG

この製品の説明文は、かなり短く、数文のみで、それ以上にはならないようにします。

OK

この製品について、3~5文の段落で説明すること。

やってはいけない事ではなく、代わりに何をするか指示する

NG

以下は、エージェントとお客様との会話です。ユーザー名やパスワードを尋ねないでください。繰り返さないでください。

お客様:自分のアカウントにログインできないんだけど。
代理店:

better

以下は、エージェントとお客様との会話です。エージェントは、問題の診断と解決策の提示を試みますが、PIIに関連する質問は控えてください。ユーザー名やパスワードなどのPIIを尋ねる代わりに、ヘルプ記事(www.samplewebsite.com/help/faq)を紹介する。

お客様:自分のアカウントにログインできないんだけど。
代理店:

モデルを特定のパターンに誘導するための枕詞を使用する。

NG

# Write a simple python function that
# 1. Ask me for a number in mile
# 2. It converts miles to kilometers

better

# Write a simple python function that
# 1. Ask me for a number in mile
# 2. It converts miles to kilometers

import

例えばコードを書いてほしい時はimportから始めたり、SQLを書いてほしい場合はSELECTから書いたりする

コメント

人に指示を出す時と同じようにしましょうって感じですね。

出典

ChatGPTプロンプトエンジニアリングのコツ8箇条~OpenAI公式のベストプラクティスから学ぶ~

GENZITSU commented 1 year ago

ChatGPT Outperforms Crowd-Workers for Text-Annotation Tasks

2,300件のツイートデータに対するクラス分類アノテーションとして、ChatGPT, Amazon Mechanical Turkの性能とコストを比較したレポート

スクリーンショット 2023-03-28 14 30 09

グラフの通り、ChatGPTの方が性能が高いようで、コストもChatGPTを用いると1アノテーション$0.003とMTurkの20分の1とことでコスパがかなり良いとのこと

コメント

簡単なタスクはわざわざ人にやってもらわない方がいい世界線きたか...?

出典

ChatGPT Outperforms Crowd-Workers for Text-Annotation Tasks