はじめに
llm.pdfは、ユーザがPDFファイルで直接大規模言語モデル(LLM)を実行できるようにするオープンソースプロジェクトです。EvanZhouDevによって開発され、GitHubでホストされているこのプロジェクトは、革新的なアプローチを示しています。Emscriptenを介してllama.cppをasm.jsにコンパイルし、PDFのJavaScriptインジェクション機能と組み合わせることで、LLMの推論プロセスを完全にPDFファイル内で行うことができます。このプロジェクトはGGUF形式の定量モデルに対応しており、最高のパフォーマンスを得るためにQ8定量モデルの使用を推奨しています。ユーザーは、提供されるPythonスクリプトを使って、LLMを含むPDFファイルを生成することができます。このプロジェクトは、AIとPDF技術に興味のある開発者や研究者のために、従来とは異なる環境で複雑なAIモデルを実行することの実現可能性を示す概念実証です。
経験:https://evanzhoudev.github.io/llm.pdf/
機能一覧
- PDFファイルで大規模な言語モデルを実行し、テキスト生成とインタラクションをサポートします。
- Emscriptenを使用してllama.cppをasm.jsにコンパイルし、ブラウザ環境でモデル推論を実装する。
- GGUF形式の定量モデルがサポートされており、実行速度を上げるためにQ8の定量化が推奨されている。
- Pythonスクリプトの提供
generatePDF.py
これは、LLMを含むPDFファイルを生成するために使用されます。 - base64エンコーディングによるPDFへのモデルファイルの埋め込みをサポートし、配布と使用を簡素化します。
- YouTubeのビデオ・チュートリアルでは、プロジェクトの組み立て方や使い方を詳しく紹介している。
- オープンソースコードのため、ユーザーによるカスタマイズや機能拡張が可能。
ヘルプの使用
インストールと環境の準備
llm.pdfプロジェクトを使用するには、Python 3をサポートする環境を準備し、必要な依存関係をインストールする必要があります。以下に詳しいインストール手順を示します:
- プロジェクト・ウェアハウスのクローン
ターミナルを開き、以下のコマンドを実行してllm.pdfリポジトリをクローンします:git clone https://github.com/EvanZhouDev/llm.pdf.git cd llm.pdf
- Pythonの依存関係をインストールする
このプロジェクトはPython環境に依存しており、Python 3.8以上を推奨します。次のサイトへscripts
カタログに必要なライブラリをインストールする:cd scripts pip install -r requirements.txt
Emscripten とその他の必要なコンパイルツールがインストールされていることを確認してください。Emscriptenがインストールされていない場合は、公式ドキュメントを参照して設定してください。
- GGUFモデルの準備
llm.pdfは、GGUF形式の定量モデルにのみ対応しており、最高のパフォーマンスを得るためにはQ8の定量モデルを推奨します。ユーザーは、Hugging Faceや、TinyLLaMAや他の小さなLLMのような他のモデルリポジトリからGGUFモデルをダウンロードすることができます。/path/to/model.gguf
. - PDFファイルの生成
プロジェクトはPythonスクリプトを提供するgeneratePDF.py
LLMを含むPDFファイルを生成するために使用します。以下のコマンドを実行してください:python3 generatePDF.py --model "/path/to/model.gguf" --output "/path/to/output.pdf"
--model
GGUFモデルへのパスを指定します。--output
生成されたPDFファイルを保存するパスを指定します。
スクリプトは、base64エンコーディングによってモデルファイルをPDFに埋め込み、推論を実行するために必要なJavaScriptコードを注入します。モデルのサイズやデバイスの性能にもよりますが、生成処理には数分かかることがあります。
- PDFファイルの実行
生成されたPDFファイルは、Adobe Acrobatや最新のブラウザのPDFビューアなど、JavaScript対応のPDFリーダーで開くことができます。PDFが開かれると、モデルが自動的に読み込まれ、推論が実行されます。ユーザーはPDFインターフェースを通してテキストを入力することができ、モデルは適切な応答を生成します。注:パフォーマンスの制限により、135Mパラメトリック・モデルはトークンの生成に約5秒かかります。
注目の機能操作
- テキスト生成
PDFファイルでは、ユーザーはテキスト入力ボックスを通じてLLMと対話することができる。プロンプトを入力すると、モデルはトークンごとに応答を生成する。推論時間を短縮するために、短いプロンプトが推奨される。例えば、"Write a short sentence about cats "と入力すると、モデルは "Cats like to chase hairballs "と応答するかもしれない。生成されたテキストは、PDFの出力領域に表示されます。 - モデルの選択と最適化
プロジェクトは様々なGGUFモデルをサポートしており、ユーザーはニーズに応じて異なるサイズを選択することができる。性能とスピードのバランスが取れているため、Q8定量モデルが推奨される選択である。もしユーザーがより速いレスポンスを必要とするのであれば、より小さなモデル(例えば135Mパラメータ)を試すことができるが、生成の質は若干落ちるかもしれない。 - カスタムエクステンション
llm.pdfはオープンソースプロジェクトであり、ユーザはscripts/generatePDF.py
または注入されたJavaScriptコードでカスタム機能を実装することができます。例えば、新しいインタラクティブなインタフェースを追加したり、他のモデル形式をサポートしたりするためです。ユーザーは、EmscriptenとPDFのためのJavaScript APIに精通している必要があります。
ほら
- パフォーマンス要件PDFでLLM推論を実行するには、より高い計算リソースが必要です。少なくとも8GBのRAMを搭載したデバイスで実行することをお勧めします。
- モデルの互換性GGUF形式の定量的モデルのみサポートされます。非定量モデルや非GUF形式は生成に失敗します。
- ブラウザの互換性一部の古いブラウザはasm.jsをサポートしていない場合がありますので、最新版のChromeまたはFirefoxを使用することをお勧めします。
- テスト中にコンポーネントを調整するPDF ファイルが動作しない場合は、ターミナル ログまたはブラウザの開発者ツール (F12) で JavaScript のエラーを確認してください。
学習リソース
このプロジェクトでは、llm.pdfのビルドプロセスを詳しく説明するYouTubeビデオチュートリアルを提供しています。ユーザーはGitHubリポジトリのREADMEか docs
ディレクトリにあります。コミュニティ・ディスカッションはGitHubのIssuesページで見ることができ、開発者はそこで質問したりコードを投稿したりすることができる。
アプリケーションシナリオ
- AIテクノロジー・ショーケース
llm.pdfは、顧客や学生に対して、従来とは異なる環境で動作するAIモデルの能力を示すために使用できます。例えば、技術会議では、開発者がPDFを開いて、LLMのテキスト生成機能をリアルタイムで実演し、AIの移植性と革新性を強調することができます。 - 教育・研究
学生や研究者はllm.pdfを使って、PDFのJavaScript機能を使ってLLMの推論プロセスを学ぶことができます。このプロジェクトは、モデルの定量化の役割とEmscriptenのコンパイル方法を理解するための実践的なプラットフォームを提供します。 - オフラインAI展開
ネットワークに制約のある環境において、llm.pdfはサーバレスでAIを展開する方法を提供します。ユーザはモデルをPDFに埋め込み、それを他の人に配布して、オフラインでテキストを生成し、対話することができます。
品質保証
- llm.pdfはどのようなモデルに対応していますか?
llm.pdfはGGUF形式の数値化モデルのみをサポートしています。最高のパフォーマンスを得るためにはQ8数値化モデルを推奨します。ユーザーはHugging Faceから互換性のあるモデルをダウンロードすることができます。 - 生成されたPDFファイルの動作が遅いのはなぜですか?
PDFでのLLMピープ推論は、ブラウザの性能とモデルサイズによって制限されます。135Mパラメータモデルでは、トークンあたり約5秒かかります。Q8定量モデルを使用し、高性能デバイスで実行することを推奨します。 - llm.pdfを使うにはインターネット接続が必要ですか?
必須ではありません。PDFを生成した後、モデルと推論コードはファイルに埋め込まれ、オフラインで実行することができます。ただし、PDFを生成するプロセスでは、依存関係をダウンロードするためのインターネット接続が必要です。 - PDFファイルのエラーをデバッグするには?
ブラウザの開発者ツール(F12)を使って、PDFファイルを開くときにJavaScriptエラーがないかチェックしてください。またgeneratePDF.py
端末ログの