[ChatStream] 時間のかかるモデル読み込みにプログレスバーをつける

[ChatStream] 時間のかかるモデル読み込みにプログレスバーをつける

こんにちは (株)Qualiteg プロダクト開発本部です!
HuggingFace の LLMのモデル読み込み時間ってとても長いですよね、そんなときに、便利なツールをご紹介します。

HuggingFace の LLM モデルはダウンロードするときは、進捗がでるのですが、ひとたびダウンロードしたあとは、読み込むまで短くて数分、長くて数十分待たされます。これはディスクからモデルデータ(weights and bias)を処理しながらGPUのVRAMに読み込む処理に時間がかかるのですが、その読み込み状態がいったいいまどのくらいなのか、これがわからず、ヤキモキしたことは無いでしょうか。
そこでは ChatStreamの便利機能として、以下のように、このモデル読み込み時間のプログレス表示をすることができます。

仕掛けはいたってシンプルで、初回の読み込み実行時に処理時間を計測しておき、2回目、また同じ処理が呼ばれたときはプログレスバーを表示します。

使い方も簡単で、モデルの読み込みを LoadTime でラップするだけで、プログレスバーつきで読み込むことができます

Before

model = AutoModelForCausalLM.from_pretrained(model_path, torch_dtype=torch.float16)


After

from chatstream import LoadTime
model = LoadTime(name=model_path,
                 fn=lambda: AutoModelForCausalLM.from_pretrained(model_path, torch_dtype=torch.float16))()

モデル読み込みソースコード全体

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
from loadtime import LoadTime

model_path = "togethercomputer/RedPajama-INCITE-Chat-3B-v1"

model = LoadTime(name=model_path,
                 fn=lambda: AutoModelForCausalLM.from_pretrained(model_path, torch_dtype=torch.float16))()

tokenizer = AutoTokenizer.from_pretrained(model_path) # tokenizerはモデル読み込みの後で取得します

ちなみに、本機能は、独立したライブラリとしても提供していますので、ChatStreamをご利用でなくても誰でも自由に使用することが可能です。

以下 loadtime パッケージのご紹介させていただきます

loadtime 使い方

インストール方法

pipを使ってLoadTimeをインストールできます

pip install loadtime

主な機能

  • リアルタイムトラッキング: LoadTimeは読み込みプロセスのリアルタイムトラッキングを提供します。

  • プログレスバー: プログレスバーを表示し、処理がどれだけ完了し、まだどれだけ残っているかを示します。

  • 過去の読み込み時間キャッシュ:
    前回処理した時間をキャッシュしておくため、キャッシュされた情報を使用して、プログレスバーを提供します。

  • カスタマイズ可能な表示: LoadTimeは、自分のメッセージで進捗表示をカスタマイズすることができます。

基本的な使い方

サンプルコードを示します

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
from loadtime import LoadTime

model_path = "togethercomputer/RedPajama-INCITE-Chat-3B-v1"

model = LoadTime(name=model_path,
                 fn=lambda: AutoModelForCausalLM.from_pretrained(model_path, torch_dtype=torch.float16))()

tokenizer = AutoTokenizer.from_pretrained(model_path) # tokenizerはモデル読み込みの後で取得します

初期化パラメータ一覧

パラメータ 説明
name 長時間処理の名前を指定します。HuggingFace モデルの読み込み時はモデル名を指定します。
message 表示するメッセージを指定します。省略するとデフォルトのメッセージとなります。
pbar True に設定すると、プログレスバーとパーセンテージが表示されます。
dirname キャッシュ保存先のディレクトリ名を指定します。
hf True に設定すると、HuggingFace のモデル読み込み用の時間表示に使用します。まだモデルデータがディスクにダウンロードされていないときは、HuggingFace のローダーがダウンロード進捗を表示するため、本ライブラリからは表示しません。
fn 長時間処理をする関数を指定します。
fn_print 表示を行う関数を指定します。省略時はコンソールに出力されます。

Read more

エンジニアリングは「趣味」になってしまうのか

エンジニアリングは「趣味」になってしまうのか

こんにちは! 本日は vibe coding(バイブコーディング、つまりAIが自動的にソフトウェアを作ってくれる)と私たちエンジニアの将来について論じてみたいとおもいます。 ちなみに、自分で作るべきか、vibe codingでAIまかせにすべきか、といった二元論的な結論は出せていません。 悩みながらいったりきたり考えてる思考過程をツラツラと書かせていただきました。 「作る喜び」の変質 まずvibe codingという言葉についてです。 2025年2月、Andrej Karpathy氏(OpenAI創設メンバー)が「vibe coding」という言葉を広めました。 彼は自身のX(旧Twitter)投稿で、 「完全にバイブに身を任せ、コードの存在すら忘れる」 と表現しています。 つまり、LLMを相棒に自然言語でコードを生成させる、そんな新しい開発スタイルを指します。 確かにその生産性は圧倒的です。Y Combinatorの2025年冬バッチでは、同社の発表によれば参加スタートアップの約25%がコードの95%をAIで生成していたとされています(TechCrunch, 2

By Qualiteg プロダクト開発部
発話音声からリアルなリップシンクを生成する技術 第5回(後編):Transformerの実装と実践的な技術選択

発話音声からリアルなリップシンクを生成する技術 第5回(後編):Transformerの実装と実践的な技術選択

なぜGPTで成功したTransformerが、リップシンクでは簡単に使えないのか?データ量・計算量・過学習という3つの課題を深掘りし、LSTMとTransformerの実践的な使い分け方を解説。さらに転移学習という第三の選択肢まで、CEATEC 2025で見せた「アバター」の舞台裏を、クオ先生とマナブ君の対話でわかりやすく紐解きます。

By Qualiteg プロダクト開発部
(株)Qualiteg、CEATEC 2025 出展レポート

(株)Qualiteg、CEATEC 2025 出展レポート

こんにちは! 2025年10月14日から17日までの4日間、幕張メッセで開催されたアジア最大級の総合展示会「CEATEC 2025」(主催者発表、総来場者数98,884名)に、株式会社Qualitegとして出展してまいりました! プレスリリース 株式会社Qualiteg、CEATEC 2025に出展 ― AIアバター動画生成サービス「MotionVox®」最新版を実体験株式会社Qualitegのプレスリリース(2025年10月10日 08時50分)株式会社Qualiteg、CEATEC 2025に出展 ― AIアバター動画生成サービス「MotionVox®」最新版を実体験PR TIMES株式会社Qualiteg CEATEC 2025 出展概要 当社は幕張メッセのホール6にあるネクストジェネレーションパークというエリアの 6H207 にブースを構えました。 「Innovation for All」というCEATECのテーマにあわせ、今回は、 AIアバター動画生成サービスMotionVoxを中心に当社の革新的なAIソリューションを展示させていただきました。 展示内容紹介に

By Qualiteg ビジネス開発本部 | マーケティング部, Qualiteg ニュース
日本語対応 LLMランキング2025 ~ベンチマーク分析レポート~

日本語対応 LLMランキング2025 ~ベンチマーク分析レポート~

はじめに 本レポートは、Nejumi Leaderboard 4のベンチマークデータ(2025/10/11版)に基づいて、日本語対応LLMの性能を総合的に分析したものです。 Nejumi Leaderboard 4は、日本語タスクにおけるLLMの性能を多角的に評価する信頼性の高いベンチマークとして知られています。 本分析では、総合スコアとコーディングスコアの2つの観点から、商用APIモデルとオープンモデルの両方を対象に、それぞれの特徴や傾向を詳しく見ていきます。 オープンソースモデルについて Weightがオープンなモデルは場合によっては「オープンソースモデル」、「OSSモデル」と呼ばれますが、モデルによっては「オープンソース」と呼ぶには不十分な場合があるため本稿では、「オープンソースモデル」ではなく「オープンモデル」と表現しています。 ベンチマーク分析について 本レポートは、LLM選択の参考情報として、ベンチマークデータから読み取れる傾向や特徴を提示するものです。最終的なモデル選択においては、これらの情報を踏まえつつ、実際の使用環境での検証を行うことをおすすめいたし

By Qualiteg コンサルティング, Qualiteg プロダクト開発部