Scikit-LLMとオープンソースLLMの使用
この記事では、OllamaとScikit-LLM Pythonライブラリを使用して、Llama 3、Mistral、Gemmaなどのローカルでホストされたオープンソース大規模言語モデルを無料でテキスト分類に利用する方法を学びます。
この記事では、OllamaとScikit-LLMライブラリを使用して、Llama 3、Mistral、Gemmaなどのオープンソース大規模言語モデルをローカルで実行し、テキスト分類タスクを無料で行う方法を紹介します。これにより、有料のクラウドAPIを呼び出すことなく、完全にローカルで推論を行うことができます。
まず、Ollamaをインストールします。Ollamaは無料のローカル大規模言語モデルリポジトリで、多くのオープンソースモデルをサポートしています。インストール後、ターミナルでollama run llama3などのコマンドを実行すると、モデルをダウンロードして起動できます。ダウンロードが完了したら、/byeと入力してバックグラウンドで動作させます。
次に、Pythonプロジェクトを作成し、必要なライブラリをインストールします:pip install scikit-learn pandas scikit-llm。モジュールが見つからないエラーが発生した場合は、個別にインストールしてください。
Pythonコードでは、最初に必要なモジュールをインポートします:pandas、train_test_split、SKLLMConfig、ZeroShotGPTClassifier。その後、Scikit-LLMをローカルのOllamaサービスに接続するように設定します:
SKLLMConfig.set_gpt_url("http://localhost:11434/v1")
SKLLMConfig.set_openai_key("local-ollama-is-free")Ollamaは無料のため、OpenAIキーは実際には無視されます。
次に、小さなデータセットを作成します。例えば、ユーザーレビューとそのカテゴリ(「肯定的なフィードバック」、「技術的な問題」、「サポートリクエスト」など)を含むデータセットです。データを訓練セットとテストセットに分割します。
分類器を初期化する際は、custom_url::プレフィックスを使用してモデルを指定します。例:ZeroShotGPTClassifier(model="custom_url::llama3")。次にfitメソッドでモデルを訓練し、predictでテストセットの予測を行います。
最後に予測結果を表示します。サンプル出力では、モデルがレビューを「サポートリクエスト」と正しく分類しています。このプロセス全体でAPI費用は一切かかりません。
この記事では、Scikit-LLMとOllamaを使用して、オープンソースの大規模言語モデルを馴染みのある機械学習ワークフローに統合し、コストゼロでテキスト分類を実現する方法を示しました。MistralやGemmaなど他のモデルも試すことができます。