oshizo

LLMに興味がありいろいろ実験して遊んでいます。自宅に3x3090環境。会社勤めのSE…

oshizo

LLMに興味がありいろいろ実験して遊んでいます。自宅に3x3090環境。会社勤めのSE。月ノ美兎委員長とkson総長とえるえる推し。

最近の記事

埋め込みモデル学習と評価ための4つのクラスタリングデータセットの公開

埋め込みモデルの学習と評価のために、有価証券報告書、法律、輸出入貨物の関税分類、医療機器の類別の4つの異なるドメインからデータを収集し、クラスタリングデータセットとして整形、公開しました。 背景私は主にRAG目的で埋め込みモデルを調べていたため、クラスタリングタスクは触っていませんでしたが、最近、SFR-Embeddingの記事にクラスタリングタスクの訓練で検索タスクも性能向上するという記述を目にして興味を持ち始めました。 ただ、以前Gemma-2Bを埋め込みモデルとして

    • Gemma 2Bを3種類のタスクで埋め込みモデルとして訓練しマージして比較する

      埋め込みモデルのマージを実験してみました。 まず、Gemma-2Bをベースモデルとして、検索、NLI、分類の3タスクを想定した学習データで学習し、それぞれのタスクに特化した3つの埋め込みモデルを作成しました。 これらをマージすることで、タスクに特化したモデルよりも評価が高くなることが確認でき、埋め込みモデルでもマージが有効であることが分かりました。 ただし、特に検索性能は既存のモデルと比べて競える精度とはなっていません。もう少し改善出来たら公開したいです。 背景、モチベーシ

      • 7Bモデルをドメイン特化させる学習をLoRAとGaLoreで試し比較する

        コーディングや医療など特定のドメインに特化させることで高い性能を発揮するモデルはドメイン特化モデルと呼ばれ、ベースモデルにドメインのコーパスを追加で学習させることで作成されます。 この図はベースモデルからドメイン特化のモデルを得るまでのフローです。本記事では赤枠で囲っている③のドメイン特化学習を試した内容を紹介します。 GaLoreについて2024/3に新しいLLMのファインチューニング手法GaLoreが公開されました。論文によれば、VRAM24Gのコンシューマ向けGPU

        • GPT-4とClaude 3 Opusを創作系のタスクで比較し、相互に評価させる

          Claude 3 Opus 楽しいですね。 GPT-4が出てから1年、個人的な趣味としてGPT-4にたまに自分用に創作をしてもらっていたのですが、過去にGPT-4とやってきたタスクでClaude 3 OpusとGPT-4両方に出力させ比較してみました。 30のタスクで人間(私)、GPT-4、Claudeの3者で結果を比較評価しました。多数決した結果はGPT-4の勝利でしたが、体感的にはほぼ互角、Claude 3 Opusはたまに絶対にGPT-4には出せなそうな出力をするのが

        埋め込みモデル学習と評価ための4つのクラスタリングデータセットの公開

        • Gemma 2Bを3種類のタスクで埋め込みモデルとして訓練しマージして比較する

        • 7Bモデルをドメイン特化させる学習をLoRAとGaLoreで試し比較する

        • GPT-4とClaude 3 Opusを創作系のタスクで比較し、相互に評価させる

          e5-mistral-7bを蒸留して中程度の大きさの埋め込みモデルを学習する

          2023/12にintfloatからintfloat/e5-mistral-7b-instructという、7BのLLMを埋め込み用にファインチューニングしたモデルがリリースされました。 このモデルは日本語の評価でもかなり優秀ですが、通常使われる埋め込みモデルと比べモデルサイズが大きく、使えるシーンは限られます。 使い勝手を向上させるために、もう少し小さいモデルに蒸留ができるかを試しました。 今回は同じ埋め込み次元を持つ1.9bのモデルへの蒸留を試しました。 STS関連のタ

          e5-mistral-7bを蒸留して中程度の大きさの埋め込みモデルを学習する

          日本語モデルの長文QA性能の比較

          現在2023/12/28ですが、最近Swallow-13b、nekomata-14b、ELYZA-japanese-Llama-2-13bといくつか13b級のモデルがリリースされました。 (モデルを公開してくださっている皆様、ありがとうございます!) 類似検索などで取得した文脈に対するQAやチャット(いわゆるRAG)に興味があり、長いコンテキストをうまく考慮できるかを調べてみました。 この検証結果によると以下のようにモデルを選ぶとよさそうですが、評価手法によるばらつきや偏

          日本語モデルの長文QA性能の比較

          日本語LLMを物語実況用にファインチューニングして比較する

          ノベルゲームやWeb小説などの物語コンテンツをAIと楽しむために、物語の段落を読んで実況的な感想を述べるモデルをファインチューニングで作れないか試しています。 GPT-3.5のプロンプトエンジニアリングによってロールプレイや実況を実現できますが、ローカルモデルを訓練することにも意味があります。 GPT-3.5には利用規約があり、いわゆる「職場での閲覧に適さない」コンテンツを扱えません。 物語にはそのようなシーンはそれなりに出てきます(それに特化した作品でなくても)。通常の作

          日本語LLMを物語実況用にファインチューニングして比較する

          end-to-endの文書画像認識モデルDonutをファインチューニングする

          DonutはOCRを使わないend-to-endの文書理解モデルです。 Vision Encoder Decoder Modelになっており、OCRエンジンに依存せずに視覚的な文書分類や情報抽出を高い精度で行うことができます。 Donutは日本語を含む4言語で学習されたモデルnaver-clova-ix/donut-baseが公開されており、日本語で何かしたいときにファインチューニングして使えそうだなと思っていました。 今回、AIキャラクターと一緒にノベルゲームをプレイする

          end-to-endの文書画像認識モデルDonutをファインチューニングする

          ChatGPT APIとゲームAIを連携してチャットでプレイングを教える

          ChatGPTはかなり賢くて簡単なテキストベースのゲームをプレイできますが、麻雀のような難しいゲームをうまくプレイすることはまだできません。 この前、麻雀をプレイするエージェントと連携させて、ChatGPTに後付けで実況させることでChatGPTのキャラクターがプレイしている風に見せるデモをつくりました。 これに加えたいアイデアとして「ゲーム用のエージェントの戦略をChatGPTに指示コメントを送ることで変更する」ことを試しています。 ユーザーはテキストチャットのみでA

          ChatGPT APIとゲームAIを連携してチャットでプレイングを教える

          gpt-index(0.2.5)をOpenAI APIなし&日本語で動かす

          gpt-indexは長いコンテキストに対してQAを行えるフレームワークです。 デフォルトではOpenAIのAPIを利用するので無邪気に長いコンテキストに質問を投げているとすぐ数$の請求になって焦りますね。 今回はローカルでオープンな日本語モデルを使って動かす方法をご紹介します。 あくまで試みであり、正答率もいまひとつで実用性があるものではありませんが、学習データセットを作るコード、モデル学習コード、gpt-indexを実行するコードはこのリポジトリに置いています。 http

          gpt-index(0.2.5)をOpenAI APIなし&日本語で動かす

          Flan-PaLMの学習に使われているpromptの手法を使ってAIに褒めてもらう

          以前の記事で、AIのべりすとを使って頑張ったことを褒めてもらえないかを試していました。 GPT-3などの大規模言語モデルでは、推論タスクの性能を高めるためにいろいろな工夫が研究されており、今回はそれらの研究結果をまねることで褒められの精度を上げられないか試してみました。 Flan-PaLMの論文を参考にしているので、まずはこの論文に含まれている手法を少し説明します。 Flan-PaLMの論文2022/10に、Scaling Instruction-Finetuned La

          Flan-PaLMの学習に使われているpromptの手法を使ってAIに褒めてもらう

          GPT-2を使ったテキスト生成をAWS Lambdaで行うコストを実測する

          GPTモデルを使ってTwitterのBotのなどを運用したい場合に、月額固定で課金されるインスタンスをレンタルするか、使った分だけ課金されるサービスを選択するか、どちらがお安いかを調べてみます。 今回はAWS LambdaでGPT-2(rinna/japanese-gpt2-medium)のテキスト生成を行い、必要なメモリ、実行時間を計測して一回当たりの生成コストを実測してみます。 結論計測方法の前に結論を書いておきます。 AWS Lambda で rinna/japan

          GPT-2を使ったテキスト生成をAWS Lambdaで行うコストを実測する

          Mjxで作った麻雀AIの打牌の判断根拠を可視化する

          以前の記事で、天鳳の牌譜をMjxを使って特徴量に変換し、ニューラルネットワークの麻雀AIを作成する手順を紹介しました。 今回は、この麻雀AIの打牌判断をSHAPを使って可視化し、なぜその牌を選択したのかを見てみます。 特徴量の解説特徴量には、2022/10時点でMjxのmainブランチに実装されている mjx-large-v0 を使用します。(v0.1.0には入っていないため、導入にはgithubのurlを指定してpip installする必要があります) 説明変数の実装

          Mjxで作った麻雀AIの打牌の判断根拠を可視化する

          Whisperの音声文字起こしの修正に第二候補以降が使えないか試してみる

          OpenAIが2022/9に公開した音声文字起こしモデルのWhisperですが、日本語音声に対しても性能がかなり高いようで、個人的にかなり期待があります。 Whisperの各サイズのモデルで長文の文字起こし試した記事を書いてくださっている方がおり、特にlargeモデルはすごく正確な結果になっていることがわかります。 実応用では、より正確な文字起こし結果を残したいようなユースケースがあり、文字起こし結果を見ながら手で修正することがあると思います。 例えば「汎化性能の高いモ

          Whisperの音声文字起こしの修正に第二候補以降が使えないか試してみる

          AIのための雀荘mjai.appにMjxのAgentを投稿する

          前回の記事で、そこそこ戦えそうな麻雀AIのAgentを作ることができました。このAgentをAI雀荘に投稿してみようと思います。 実装AI雀荘(mjai.app)はMjxのAgentに対応しており、以下のリポジトリにMjxのサンプルが公開されています。 https://github.com/smly/mjai.app/tree/main/examples/shantenbot このbot.pyを参考に、MjxのShantenAgentを使っているところを書き換えればよさ

          AIのための雀荘mjai.appにMjxのAgentを投稿する

          天鳳の牌譜を学習してMjx(v0.1.0)で使えるAgentを作る

          以前の記事で、麻雀の強化学習環境Mjxを触り、強化学習を試してみました。その時は、ShantenAgentの行動を教師あり学習したAgentをもとに強化学習を行っていました。 今回は、その初期Agentを天鳳の牌譜から学習してみます。 mjx-projectのリポジトリに天鳳の牌譜データをMjxのStateの形式に変換するスクリプトが用意されており、天鳳の牌譜データやMjxのObservationのデータ形式の知識がなくても、簡単に実施できます。 牌譜データ天鳳の牌譜は

          天鳳の牌譜を学習してMjx(v0.1.0)で使えるAgentを作る