oshizo

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

oshizo

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

最近の記事

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には出せなそうな出力をするのが

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

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

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

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

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

          日本語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を作る

          褒めてくれるテキスト生成AIのためのデータセットの検討

          最近、褒めてほしい欲が強いです。noteも褒めてほしくてやっているところがあります。 褒めてくれるのは人間でなくAIでも良いのですが、何か頑張ったことを話すと的確に褒めてくれるようなAIはまだ出てきていないと思います。 既存サービスを調べる既存サービスとしては「ベタ褒めシャワールーム」という、職業などの情報や何を褒められるとうれしいかなどのアンケートをもとにセミパーソナライズした褒めを受けられる体験型コンテンツがあるようです。 https://lp.frontier-i

          褒めてくれるテキスト生成AIのためのデータセットの検討

          日本語GPT(abeja/gpt-neox-japanese-2.7b)での文章生成を見て大規模コーパスの中身を想像する

          ABEJAさんから2.7Bパラメータを持つGPTモデルがリリースされました。2022年9月中旬ごろに、HuggingFace Transformersでこのモデルを使えるようにするPRがマージされ、利用できるようになっています。 公開してくださった関係者の皆様、ありがとうございます! これは2022年9月26時点で、HuggingFace Hubから利用できる中では最大の日本語生成モデルだと思います。 かなり大きなモデルで、pytorch_model.binだけで5.3

          日本語GPT(abeja/gpt-neox-japanese-2.7b)での文章生成を見て大規模コーパスの中身を想像する