「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > オープンソース モデル (llama) を使用して独自のカスタム LLM エージェントを作成する

オープンソース モデル (llama) を使用して独自のカスタム LLM エージェントを作成する

2024 年 10 月 31 日公開
ブラウズ:138

Create your own Custom LLM Agent Using Open Source Models (llama)

この記事では、PC 上でローカルに実行されるオープン ソース llm (llama3.1) を使用するカスタム エージェントを作成する方法を学習します。 Ollama と LangChain も使用します。

概要

  • Ollamaをインストール
  • プルモデル
  • サーブモデル
  • 新しいフォルダーを作成し、コード エディターで開きます
  • 仮想環境の作成とアクティブ化
  • langchain langchain-ollama をインストールします
  • Python のオープンソース モデルを使用してカスタム エージェントを構築する
  • 結論

オラマをインストールする

GitHub README にある OS の種類に基づいた手順に従って、Ollama をインストールします。

https://github.com/ollama/ollama

私は Linux ベースの PC を使用しているので、ターミナルで次のコマンドを実行します。

curl -fsSL https://ollama.com/install.sh | sh

プルモデル

次のコマンドを使用して、利用可能な LLM モデルを取得します:

ollama pull llama3.1

これにより、モデルのデフォルトのタグ付きバージョンがダウンロードされます。通常、デフォルトは最新の最小サイズのパラメーター モデルを指します。この場合、llama3.1:8bモデルになります。

モデルの別のバージョンをダウンロードするには、https://ollama.com/library/llama3.1 にアクセスして、インストールするバージョンを選択し、モデルとそのバージョン番号を指定して ollama pull コマンドを実行します。 。例: ollam プル llama3.1:70b

Mac では、モデルは ~/.ollama/models にダウンロードされます

Linux (または WSL) では、モデルは /usr/share/ollama/.ollama/models に保存されます

サーブモデル

次のコマンドを実行して、デスクトップ アプリケーションを実行せずに ollam を起動します。

ollama serve

すべてのモデルはローカルホスト:11434 で自動的に提供されます

新しいフォルダーを作成し、コードエディターで開きます

コンピューター上に新しいフォルダーを作成し、VS Code などのコード エディターで開きます。

仮想環境の作成とアクティブ化

ターミナルを開きます。次のコマンドを使用して仮想環境 .venv を作成し、アクティブ化します:

python3 -m venv .venv
source .venv/bin/activate

ラングチェーンをインストールする

次のコマンドを実行して、langchain と langchain-ollama をインストールします:

pip install -U langchain langchain-ollama

上記のコマンドは、Python で LangChain および LangChain-Ollama パッケージをインストールまたはアップグレードします。 -U フラグは、これらのパッケージの最新バージョンが確実にインストールされ、すでに存在する可能性のある古いバージョンを置き換えます。

Python のオープンソース モデルを使用してカスタム エージェントを構築する

Python ファイル (例: main.py) を作成し、次のコードを追加します:

from langchain_ollama import ChatOllama
from langchain.agents import tool
from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder
from langchain.agents.format_scratchpad.openai_tools import (
    format_to_openai_tool_messages,
)
from langchain.agents import AgentExecutor
from langchain.agents.output_parsers.openai_tools import OpenAIToolsAgentOutputParser


llm = ChatOllama(
            model="llama3.1",
            temperature=0,
            verbose=True
        )

@tool
def get_word_length(word: str) -> int:
    """Returns the length of a word."""
    return len(word)


tools = [get_word_length]



prompt = ChatPromptTemplate.from_messages(
            [
                (
                    "system",
                    "You are very powerful assistant",
                ),
                ("user", "{input}"),
                MessagesPlaceholder(variable_name="agent_scratchpad"),
            ]
        )

llm_with_tools = llm.bind_tools(tools)

agent = (
    {
        "input": lambda x: x["input"],
        "agent_scratchpad": lambda x: format_to_openai_tool_messages(
            x["intermediate_steps"]
        ),
    }
    | prompt
    | llm_with_tools
    | OpenAIToolsAgentOutputParser()
)

# Create an agent executor by passing in the agent and tools
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
result = agent_executor.invoke({"input": "How many letters in the word educa"})

if result:
    print(f"[Output] --> {result['output']}")
else:
    print('There are no result..')

上記のコード スニペットは、ChatOllama モデル (llama3.1) を使用して LangChain エージェントをセットアップし、ユーザー入力を処理し、単語の長さを計算するカスタム ツールを利用します。これは、エージェントのプロンプト テンプレートを定義し、ツールを言語モデルにバインドし、入力を処理して中間ステップをフォーマットするエージェントを構築します。最後に、特定の入力でエージェントを呼び出す AgentExecutor を作成します。 「educa という単語は何文字か」という簡単な質問を渡し、出力を印刷するか、結果が見つからなかったかどうかを示します。

実行すると、次の結果が得られます:

> Entering new AgentExecutor chain...

Invoking: `get_word_length` with `{'word': 'educa'}`


5The word "educa" has 5 letters.

> Finished chain.
[Output] --> The word "educa" has 5 letters.

エージェントがモデル (llama3.1) を使用してツールを正しく呼び出し、単語内の文字数を取得したことがわかります。

結論

読んでいただきありがとうございます。

ここで Ollama リポジトリを確認してください: https://github.com/ollama/ollama

リリースステートメント この記事は次の場所に転載されています: https://dev.to/emmakodes_/create-your-own-custom-llm-agent-using-open-source-models-llama31-4aag?1 侵害がある場合は、study_golang にご連絡ください。 @163.com 削除
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3