DUICUO

大規模なローカル言語モデルの展開にはわずか数分しかかかりません。

2023年はAIにとって急速な発展の年でした。強力な商用大規模言語モデルに加え、Llama2、Codellama、Mistral、Vicunaといった優れたオープンソースの大規模言語モデルも数多く登場しました。ChatGPT、Bard、Claudeといった商用大規模言語モデルは強力ですが、価格が高く、セキュリティ上の懸念も伴います。データセキュリティが最優先されるシナリオでは、ローカル大規模言語モデルを導入することが現実的な選択肢となるかもしれません。

本稿では、 ollama [1]の使い方を紹介する。  このオープンソース プロジェクトは、Llama2 やその他の大規模言語モデルを実行します。

ollamaをインストールする

現在、OllamaはmacOSとLinuxシステムのみをサポートしており、Windowsプラットフォームは現在開発中です。Ollamaのダウンロードは[2]から可能です。  このリンクを使用すると、指定されたプラットフォーム用の Ollama をダウンロードできます。

macOS版をダウンロードしました。ダウンロードが完了したら、「Ollama-darwin.zip」ファイルを解凍し、Ollama実行ファイルをダブルクリックしてインストールを開始しました。

インストール中に、Ollamアプリをシステムのアプリケーションディレクトリに移動するかどうかを確認するメッセージが表示されます。ここでは「アプリケーションに移動」を選択しました。

次に、ソフトウェアのインストール ガイドに従って手順を追って進めます。

llama2を実行するには、ターミナルで「ollam run llama2」コマンドを実行するだけです。このコマンドを実行すると、 llama2が自動的にダウンロードされます。 [3]  モデル:

llama2モデルに加えて、Ollamは他の多くのモデルをサポートしており、完全なモデルリストにアクセスできます[4]。  チェック。

注意: 3B モデルを実行するには少なくとも 8 GB の RAM、7B モデルを実行するには 16 GB の RAM、13B モデルを実行するには 32 GB の RAM が必要です。

モデルのダウンロードに成功すると、llama2 モデルを操作できるようになります。

ollama CLI

ollama CLI を使用すると、モデルの作成、取得、削除、コピーなど、モデルに対するさまざまな操作を簡単に実行できます。

モデルを作成する

ollama create example -f Modelfile

プルモデル

ollama pull llama2 

このコマンドはローカルモデルの更新にも使用できます。差分のみが取得されます。

モデルを削除

ollama rm llama2

レプリケーションモデル

ollama cp llama2 my-llama2

上記のコマンドに加えて、ollama CLI では他のコマンドも提供されており、それらは以下からアクセスできます...   ollama --help  完全なコマンドを表示できます。

 (base) ➜ ~ ollama --help Large language model runner Usage: ollama [command] Available Commands: serve Start ollama create Create a model from a Modelfile show Show information for a model run Run a model pull Pull a model from a registry push Push a model to a registry list List models cp Copy a model rm Remove a model help Help about any command Flags: -h, --help help for ollama -v, --version version for ollama

ローカルサーバーを起動する

ターミナルで大規模言語モデルを操作したくない場合は、「ollam serve」コマンドを使用してローカルサーバーを起動できます。このコマンドが正常に実行されたら、REST APIを介してローカルの大規模言語モデルを操作できるようになります。

 curl http://localhost:11434/api/generate -d '{ "model": "llama2", "prompt":"Why is the sky blue?" }'

実際のプロジェクトではlangchainjs [5]を使用することができます。  カプセル化されたChatOllama [6]  オブジェクトを使用して Ollam と効率的に対話します。

チャットオラマ

OllamaはJSONモードもサポートしており、大規模な言語モデルから有効なJSONを強制的に出力できます。以下では、カプセル化されたコード(langchainjs)の使い方を紹介します。   「チャットオラマ」  オブジェクトはテキスト翻訳機能を実装します。

ChatOllama プロジェクトを初期化します。

 mkdir ChatOllama npm init -y

langchainjs をインストールします。

 npm install -S langchain # or yarn add langchain # or pnpm add langchainjs

index.mjs ファイルを作成します。

 import { ChatOllama } from "langchain/chat_models/ollama"; import { ChatPromptTemplate } from "langchain/prompts"; const prompt = ChatPromptTemplate.fromMessages([ [ "system", `You are an expert translator. Format all responses as JSON objects with two keys: "original" and "translated".`, ], ["human", `Translate "{input}" into {language}.`], ]); const model = new ChatOllama({ baseUrl: "http://localhost:11434", // Default value model: "llama2", // Default value format: "json", }); const chain = prompt.pipe(model); const result = await chain.invoke({ input: "I love programming", language: "Chinese", }); console.log(result);

次に、プロジェクトのルートディレクトリでターミナルを開き、コマンド「node index.mjs」を実行します。コマンドが正常に実行されると、ターミナルには次の結果が出力されます。

テキスト翻訳以外にも、様々な機能を実装できます。例えば、効率的な情報検索を実現するRAG(Retrieval Augmented Generation)アプリケーションを開発できます。ご興味のある方は、RAGについてご自身で詳しく学んでみてください。

要約

この記事では、Ollamを用いてオープンソースの大規模言語モデルをローカルに迅速にデプロイする方法と、langchainjsベースのChatOllamaオブジェクトを用いてテキスト翻訳機能を実装する方法を紹介します。Ollamはカスタムモデルもサポートしており、GGUF形式のモデルをインポートできます。カスタムモデルにご興味をお持ちの方は、 「Customize your own model」 [7]をご覧ください。  このセクションにはコンテンツが含まれています。

参照

[1]オラマ: https://github.com/jmorganca/ollama。

[2]Ollamaをダウンロード: https://ollama.ai/download.

[3]llama2: https://ollama.ai/library/llama2。

[4] モデルリスト: https://ollama.ai/library.

[5]langchainjs: https://github.com/langchain-ai/langchainjs.

[6]ChatOllama: https://js.langchain.com/docs/integrations/chat/ollama。

[7]独自のモデルをカスタマイズする: https://github.com/jmorganca/ollama?tab=readme-ov-file#customize-your-own-model.