Open GENZITSU opened 1 year ago
ChatGPTを利用したQ&Aシステムの最もらしさを与えたコンテキストと出力の含意タスクを解くことで評価することを試みている記事。
含意タスク部分もChatGPTに丸投げするのではなく、GPT3をファインチューニングしたモデルで行っているのが印象的
ファインチューニングにはJNLIの学習データを加工した100行サンプルを利用。
GPT-3を叩く料金とChatGPTを叩く料金がダブルでかかってしまうが、面白いアイデアである。
ChatGPTを用いて、社内の文書データに対するQ&A・検索システムを構築する方法の紹介
大枠の流れとしては、質問文(検索query)に関係がありそうな文書を引っ張ってきて、適宜要約をかけながらpromptに埋め込むというもの。
基本的な型として勉強になる。
GPT3の25分の1のパラメータ数で、同程度の性能を持つAlpacaの解説記事
以下気になったところだけ抜粋
めちゃくちゃありがたい解説記事だった。
この一連の処理はLLMの蒸留とみなせるような気がする。
個人的には学習データを低コストで生成できるようにした工夫の貢献が一番重要に見えた。
商用利用できるベースモデルの公開が待ち遠しいところ。
Alpacaをlow-rank adaptationでさらに軽量化させたAlpaca-LoRAモデルをalpaca-datasetの日本語訳を用いて学習させた取り組みの紹介
以下気になったところだけ抜粋
LLMを軽量化させる取り組みの進展が思ったより早いなぁという感覚を覚えた。取り組み自体は上手くいってないという結果ではあるが、1万円ちょっと程度でLLMを学習させられる世界線は熱い
適切な実験と考察を回すための実験用コードの書き方について解説しているスライド
以下気になったスライドを抜粋
実験用コードを整備する上での実践的なtipsがふんだんに盛り込まれている良資料。
絶えず変化するログ出力に対応するため、json文字列で保存されていたログの保存容量と読み出しデータ量の効率化方法を模索している記事
BigQueryにおいてはJSON型というものが利用できるため、保存容量を削減したい場合においてはjson文字列をjson型にし、さらにデータ型をつけることでネイティブ化することでコストを削減することが可能。
一方で、配列へのアクセス際の読み出し容量を削減するためには、要素ごとにログを出力しないと、全要素を見ることになってしまうようだ
読み込みバイト数が減らなかったのはJSON型において、構造体の配列 (array of structs: AoS) へのアクセスが最適化されていないためです。 JSON型において、構造体が配列に含まれている場合、その構造体の一部要素にアクセスすると、構造体のすべての要素が読み込まれてしまいます。(公式問い合わせ結果)
サービスの成長共にログはめちゃくちゃ重たくなってくるので、こういう効率化はとても大事。
このログが1週間で2TBずつ蓄積しており取り回しが悪い状況になっていました。
表題の通り、ライセンスが緩いBloomに対してLoRAで軽量化を行い日本語alpaca datasetを用いたfinetuningをしている記事
Bloomは日本語に非対応だがhaggingfaceにも登録されていて取り回しやすいのが良い点であった、そいつを日本語対応可能にさせるのは熱い。
self instructでLLM学習用のデータを作成できるようにしたalpaca datasetの貢献がデカすぎる
PyArrowが使えるようになるPandas 2.0とPolarsの速度比較をさまざまな処理で行っている記事
unique処理以外はPolarsの方が早いという結果を得ている
Polarsつよし
表題の通り、以下テクニック部分だけ抜粋
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から書いたりする
人に指示を出す時と同じようにしましょうって感じですね。
2,300件のツイートデータに対するクラス分類アノテーションとして、ChatGPT, Amazon Mechanical Turkの性能とコストを比較したレポート
グラフの通り、ChatGPTの方が性能が高いようで、コストもChatGPTを用いると1アノテーション$0.003とMTurkの20分の1とことでコスパがかなり良いとのこと
簡単なタスクはわざわざ人にやってもらわない方がいい世界線きたか...?
利用目的にそって学習後の性能を疑うこと
AIの学習やり利用は簡単になってきたがその性能は適用ユースケースの前提条件を踏まえた上で、批判的に評価する必要があることを論じている記事
物体検出モデルを念頭に置いたチェックポイントを紹介しており、プロジェクト企画時にとても参考になる内容
PRJ全般に関するチェックポイント
物体検出に関するチェックポイント
上記全てをクリアすることはまず不可能なので、何が妥協できるかを検討することが大事。 また、モデルに全部丸投げするのではなく、適切な後処理、前処理を検討することが大事
撮影環境に関するチェックポイント
コメント
適用ユースケースが持つ前提条件はbiz側の方がよく知っていることが多いので、dev側がちゃんとそれを引き出せるようにしないといけないなぁと
出典
利用目的にそって学習後の性能を疑うこと