Kan Hatakeyama

化学・大規模言語モデル・ロボットなど 記事はメモ書きですのでご了承ください

Kan Hatakeyama

化学・大規模言語モデル・ロボットなど 記事はメモ書きですのでご了承ください

最近の記事

sarashina2-8x70bを動かすメモ (24/11/12追記)

(初期バージョンはトークナイザーに不具合があったようなので、修正版の結果も追記しました) はじめにsarashina2は、400Bクラスの大規模言語モデルです。 事後学習はされていない非商用のモデルです。 本記事では、とりあえず推論してみたので、そのメモを記載します。 環境は、A100(80GB) x8 + CPUオフロードです。 300GBほどのRAMでオフロードする必要がありました。 推論推論コード import torchfrom transformers i

    • GPT-4o(Claude)に危険物取扱者試験(甲種試験)を解かせてみる-その9: 様々なモデルの性能比較と感想

      はじめに大規模言語モデルに危険物取扱者試験(甲種試験)を解かせて合格させるという試みを行ってきました。 前回までの検討で、Claude-3.5-sonnetを使いつつ、試験対策本の類題でRAGを行えば、この資格試験の過去問でほぼ満点を取れることが分かりました。 本記事では、Claude-3.5-sonnet以外のモデルで同じ検証を行い、各モデルの地頭と読解力を検証します。 また、今後のモデル開発について思ったことについても、感想文を書きました(記事の最後)。 検証条件デ

      • GPT-4o(Claude)に危険物取扱者試験(甲種試験)を解かせてみる-その8: 試験対策本のOCRと、それを使ったRAGでの回答

        はじめに専門的なことに回答可能な大規模言語モデルのシステムを作る練習として、危険物取扱者試験に挑戦しています。 士業の仕事は、解くべきタスクの定型性が比較的高いのが特徴(?)です。一連の作業過程が、マニュアルや対策本などのテキストで明文・データベース化されているため、AIによる代替が可能かもしれない、という仮説が成立します。 これまでの検討で、システムのエージェント化の有効性などを検証してきました。 本記事では、解くべきタスクを丁寧に整理した叡智の結晶(?)として、試

        • 基盤モデルなどを使いながら、文章をOCRするメモ

          24/11/5 提供頂いた情報を少し追記しました。 はじめに最近は専門的な領域に強い大規模言語モデルのシステム構築を検討しています。 推論性能向上の鍵となるのが、専門的な文章のデータ活用です。 専門的なテキストを電子的に入手できればベストなのですが、紙面などでしか入手できないケースも多いです。 そこで本記事では、大規模言語モデルなども活用しながら、専門的な書籍をOCRして適切にテキスト抽出する手段を探ってみます。 タスク設計通常の著作物だと、記事にしづらいので、今回は

          GPT-4o(Claude)に危険物取扱者試験(甲種試験)を解かせてみる-その7: Claudeの読解精度(ノイズ耐性)を軽くチェックする

          はじめに最近は、専門的な情報に回答できる大規模言語モデル(LLM)のシステムを作るための試行錯誤をしています。 前回までの検討で、(24/10/29時点で)読解力の高いClaude-3.5-sonnetのエージェント化が、回答の精度向上の鍵になりそうだという見解に至りました。 本記事では、Claudeの読解力を軽く調べてみました。 知りたいことRAGなどで参考文献を引っ張る際に課題となるのが、検索精度です。 100%の精度で所望の文献を引っ張ってくることは不可能なので、検

          GPT-4o(Claude)に危険物取扱者試験(甲種試験)を解かせてみる-その7: Claudeの読解精度(ノイズ耐性)を軽くチェックする

          GPT-4o(Claude)に危険物取扱者試験(甲種試験)を解かせてみる-その6: 演習問題を自作させ、間違えた箇所をメモらせて試験に備える

          はじめに最近は、専門的な情報に回答できる大規模言語モデル(LLM)のシステムを作るための試行錯誤をしています。 前回までの検討で、(24/10/29時点で)読解力の高いClaude-3.5-sonnetのエージェント化が、回答の精度向上の鍵になりそうだという見解に至りました。 エージェントをいい感じに使うと、法令を参照しながら回答精度を高められることが分かってきました。一方、法令情報のみを読み解いて試験に回答するのが難しい問題があることが分かってきました。 本記事では、

          GPT-4o(Claude)に危険物取扱者試験(甲種試験)を解かせてみる-その6: 演習問題を自作させ、間違えた箇所をメモらせて試験に備える

          GPT-4o(Claude)に危険物取扱者試験(甲種試験)を解かせてみる-その5: LangGraphによるRAGエージェント化による精度改善の検証

          はじめに最近は、専門的な情報に回答できる大規模言語モデル(LLM)のシステムを作るための試行錯誤をしています。 これまでの検討の結果、やはり、モデルのエージェント化が精度向上の鍵になりそうだという見解に至りました。 前回までの検討で、Claudeをいい感じに使うと、法令を参照しながら回答精度を高められることが分かってきました。 脱線 本記事では、構築したRAGエージェントに問題を解かせてみます。 コード詳細は前回までの記事を参照 from typing import

          GPT-4o(Claude)に危険物取扱者試験(甲種試験)を解かせてみる-その5: LangGraphによるRAGエージェント化による精度改善の検証

          LangGraphでユーザーの性格分析+会話記憶を持ったチャットエージェントを試作するメモ

          はじめにLangGraphは、大規模言語モデルをエージェントとして使うためのフレームワークです。 前回は、法令関連の専門知識をエージェントが探して読み込んで回答する仕組みを試作しました。 今回は、エージェント的に動くチャットボットを試作してみます。 普通のチャットボットの課題感 人間とチャットボット(例: ChatGPT)の間には大きな違いがいくつもありますが、そのうちの一つが、記憶(存在)の持続性です。 チャットボットは基本的に過去の対話を参照しないので、毎回、「初

          LangGraphでユーザーの性格分析+会話記憶を持ったチャットエージェントを試作するメモ

          GPT-4o(Claude)に危険物取扱者試験(甲種試験)を解かせてみる-その4: LangGraphによるエージェント化と自動の文献情報の照合

          はじめに最近は、専門的な情報に回答できる大規模言語モデル(LLM)のシステムを作るための試行錯誤をしています。 これまでの検討の結果、やはり、モデルのエージェント化が精度向上の鍵になりそうだという見解に至りました。 (適切な文章をLLMも活用しながら探し出して回答するシステムの構築が必要) チャットボットでの予備検証で上手くいく手応えが得られてきましたので、次はエージェントシステムを作る作業が必要になります。 そのためのモジュールが多く存在するようですが、LangGra

          GPT-4o(Claude)に危険物取扱者試験(甲種試験)を解かせてみる-その4: LangGraphによるエージェント化と自動の文献情報の照合

          GPT-4o(Claude)に危険物取扱者試験(甲種試験)を解かせてみる-その3: エージェント化の道筋の模索-

          はじめにこちらの記事の続きです。 その1では、GPT-4oに、日本特有の専門データとして、危険物取扱者試験を解かせてみました。わりと高得点でしたが、残念ながら、日本の法令や化学・物理化学の問題で躓いてしまったため、惜しくも不合格レベルなことがわかりました。 その2では、法令中に記載された表を読み込みながら回答することで、回答精度が向上することを確認しました。 本記事では、より本格的にシステムをエージェント化させる試みを通して、回答精度の向上を測れないかを模索します。

          GPT-4o(Claude)に危険物取扱者試験(甲種試験)を解かせてみる-その3: エージェント化の道筋の模索-

          ChatBotArenaのローカルサーバーでの立ち上げメモ

          はじめにChatBotArenaという、大規模言語モデル(LLM)の評価システムをローカルで立ち上げるメモです。 とりあえず、githubのチュートリアルに沿って作業するだけでOKでした。 インストール・動作確認基本的な機能はFastChatライブラリに入っているようなので、入れていきます。 #環境構築conda create -n arena python=3.10 -yconda activate arena#installpip install "fschat[m

          ChatBotArenaのローカルサーバーでの立ち上げメモ

          GPT-4oに危険物取扱者試験(甲種試験)を解かせてみる-その2: RAG用のテーブルデータの取得と読解-

          はじめにこちらの記事の続きです。 前回は、GPT-4oに、日本特有の専門データとして、危険物取扱者試験を解かせてみました。わりと高得点でしたが、残念ながら、日本の法令や化学・物理化学の問題で躓いてしまったため、惜しくも不合格レベルなことがわかりました。 本記事では、RAGを想定して、法令データを読み込みながら回答するシステムが動くかを調べていきます。 今回解きたい問題以下の問題を解きます。 正解は5なのですが、GPT-4o, OpenAI-o1-preview, G

          GPT-4oに危険物取扱者試験(甲種試験)を解かせてみる-その2: RAG用のテーブルデータの取得と読解-

          GPT-4oに危険物取扱者試験(甲種試験)を解かせてみる-その1: データ準備と予備試験-

          10/15追記質問法を修正したバージョンで再回答させました。 はじめに大規模言語モデル(LLM)に期待される用途の一つは、特定の業界や領域に特化した利用で、様々なユースケースが模索されています。 とはいえ、どこから手を付ければよいのやら、、という事例も多いです。 今回は、ユースケースとして、化学系のLLMを想定した作業を考えてみます。 具体的に、危険物取扱者試験(甲種試験)を解かせるというタスク※を設定しました。 (※モデルに求める要素が多すぎると、二兎を追うものは…と

          GPT-4oに危険物取扱者試験(甲種試験)を解かせてみる-その1: データ準備と予備試験-

          画像系マルチモーダルLLMであるQwen2-VLのファインチューニングの練習

          はじめにQwen2-VLは、高性能なマルチモーダルLLMです。 本記事では、モデルのファインチューニングを試みてみます。 マルチモーダルLLMを学習するのは初めてなので、色々と試行錯誤がありそうです。 基本的には、以下のマニュアルを真似するだけ作業が完了しました。 (一部、コードを追記修正) マシンA100(80GB)x2、ubuntuを使います。 ファインチューニングの最低スペックは不明ですが、とりあえず試してみます。 環境構築適当にcondaで仮想環境を作ります

          画像系マルチモーダルLLMであるQwen2-VLのファインチューニングの練習

          RAGベースの検索回答エージェントシステム(calm3)の構築メモ

          はじめに これは、RAG(Retrieval-Augmented Generation)をベースにエージェントを動作させるシステムの構築メモです。 課題感 RAGは、大規模言語モデル(LLM)の知識を拡張する上で有益なツールですが、最適な文章を検索するプロセスに多くの課題があります。以下に、具体的な課題とその背景を示します。 専門文書の検索精度 専門性の高い文章では、正しい文献がヒットしにくく、単純なキーワードマッチの場合は用語の言い換えにも対応しづらい問題があり

          RAGベースの検索回答エージェントシステム(calm3)の構築メモ

          マルチモーダル言語モデルPhi-3.5-vision-instructをvllmで高速推論するテスト

          はじめにローカルマシンで動くマルチモーダル言語モデルの性能が上がっています。 本記事では、軽量・ローカルの強みを生かして、動画に対して高速でテキストをアノテーションしてみます。 セットアップ以下の記事を参考に、vision系のライブラリなどを入れます。 高速推論のためのvllmを入れます。グラフ表示系のライブラリも入れます。 pip install vllm=0.6.2pip install seabornpip install japanize-matplotlib

          マルチモーダル言語モデルPhi-3.5-vision-instructをvllmで高速推論するテスト