私たちは自律エージェントと協力し、その力を直接目撃する機会を共有しています。 AI 駆動の自律エージェントは、業界に革命を起こし、私たちの生活様式を変える可能性を秘めています。ただし、他のテクノロジーと同様に、それらは良くも悪くも使用される可能性があります。それでは、実際の例と最後にある魅力的なチュートリアルを通じて、それらを活用する方法を探ってみましょう。
一言で言えば、自律エージェントは、 Amazonの倉庫で商品のピッキングと梱包に使用されています。コカ・コーラは自動運転ドローンを使用して生産施設の安全性とメンテナンスをチェックし、テスラは輸送用の車両に自動運転技術を使用しています。
先月、Auto GPT と Baby AGI という 2 つの主要なリポジトリが GitHub に登場しました。
基本的に、 GPT-4などの LLM を使用して、さまざまな種類のタスクを自律的に開発および管理します。言い換えれば、あなたが管理する必要はありません。彼らは、あなたからの入力がなくても、次に何をすべきかを自分で決定することができます。そのため、インテリジェントなエージェントを導入して、代わりにタスクを実行してリラックスすることができます 🙂
GPT-4 が TaskRabbit の従業員に AI の CAPTCHA コードを解くように依頼したときの、この CAPTCHA の話をご存知ですか。従業員は「質問してもいいですか?あなたは問題を解決できなかったロボットですか?状況を明らかにしたいだけです。」と答えました。これに対してGPT-4は単に視力が悪く画像を見るのが難しいだけだと答えた。
その後、TaskRabbit の従業員が彼に結果を提供しました。そしてこれが転換点です...SKYNETはすでにそこにあります。
残念なことに、中国では悪の名の下に自律エージェントが使用されることが現実となっています。
中国は、軍隊を含むさまざまな分野で自律エージェントを使用している。国民の大規模監視、政治的反体制派の弾圧、さらには飛び回ってコロナウイルス対策がまだ有効であり、家に留まるべきであることを人々に喚起するドローンさえも使用している。
良いものをもっと人々に見せれば、その良い部分が彼らの人生のほとんどを占めることになります。そうすることで人の選択を管理できるのです。秘密ではありません - 私たちの選択はマーケターによってコントロールされており、常に善の名の下にあるわけではありませんが、事実は変わりません - 私たちは善のために AI を使用しなければなりません。
lablab.aiのハッカソンでは、メンターが最新テクノロジーの使用方法について説明しました。それは私の人生をどう変えましたか?今、私には未来の軌跡が見え、未来の職業がわかり、愛好家が新時代世代の次のスティーブ・ジョブズになるであろう分野がわかります。ドローンショーを見たことはありますか?ブランドはすでに空中に広告を掲載しています。
ここで、開発に必要なベクトルがいくつあるか想像してみてください。競合ゼロの独自の広告会社を設立してみませんか?最新のテクノロジーを活用して目立つ医療センターを作りたいと思いませんか?ルーチンを自動化して、家族ともっと時間を過ごしたいですか?驚くべきことは、チーム、新しいスタートアップ、アイデア、イノベーション、歴史に足跡を残したいという願望など、すべてがたった 1 か所で見つかったことです。ちなみに、すべては 48 時間以内に起こりました。私はたまたま広告を見つけました。
でも今…
AI エージェントは、与えられたタスクを自ら解決する能力により急速に人気が高まっています。 AutoGPT 、 BabyAGI 、 CAMELなどのプロジェクトについて聞いたことがあると思います。今日は、それらがどのように機能するかを少なくとも部分的に学びます。
AI エージェントは、特定の、通常は事前に定義された目標または一連の目標を達成するために、意思決定を行い、ツールを選択し、アクションを実行するように設計されたコンピューター システムです。エージェントは自律的に動作し、その操作に人間の介入がほとんど必要ありません。
現在、AI エージェントが大きな注目を集めているのは、適切で強力なツールであり、自立性であるためです。これらは確かに私たちの未来であり、このテクノロジーについてよく知っておく価値があります。
現在、エージェントを試すにはいくつかのオプションがあります。 AutoGPTなどの既製のソリューションを選択できます。たまたま私たちのチームはすでに彼らと協力しており、私たちのプラットフォームでチュートリアルを見つけることができます。
別のオプションは、エージェントを自分で構築することです。私はまさにこの方法を選択します。これにはLangChain を使用します。これは、大規模言語モデルに基づいてアプリケーションを構築するために作成されたフレームワークです。これは非常に強力で、モデルとエージェントの操作が大幅に簡単になります。
エージェントを学ぶ価値がある理由はすでにわかっています。さあ、仕事に取り掛かり、自分自身のものを作成してみましょう。
新しいディレクトリを作成し、Python 環境を初期化することから始めましょう。
mkdir ai-agents cd ai-agents python3 -m venv venv # Linux / MacOS source venv/bin/activate # Windows .\venv\Scripts\activate
まずは必要なツールをインストールしましょう。 LLM やエージェントと連携するにはlangchain
、外部 API にリクエストを行うにはrequests
、OpenAI のモデルを簡単に使用するにはopenai
SDK、Web 検索にはduckduckgo-search
が必要です。
!pip install langchain !pip install openai !pip install requests !pip install duckduckgo-search
これでライブラリをインポートできるようになりました。
import requests from langchain import OpenAI from langchain.agents import initialize_agent, load_tools, Tool from langchain.chains import LLMChain from langchain.prompts import PromptTemplate from langchain.tools import DuckDuckGoSearchRun
この時点で、OpenAI から LLM を定義したいと思います。このチュートリアルでは GPT-3 を使用します。他の機種でも遊べます。また、最初のプロンプトを定義し、このモデルのチェーンを作成します。
OPENAI_API_KEY = "sk-..." llm = OpenAI( openai_api_key=OPENAI_API_KEY, temperature=0.8, model_name="text-davinci-003" ) prompt = PromptTemplate( input_variables=["query"], template="You are New Native Internal Bot. Help users with their important tasks, like a professor in a particular field. Query: {query}" ) llm_chain = LLMChain(llm=llm, prompt=prompt)
次に、質問に直面したときにモデルがどのように動作するかを見てみましょう。 lablab.ai が何であるかを知っているか、積分をどのように処理するかを見てみましょう。
llm_chain.run("What is lablab.ai")
Lablab.ai は、業務の合理化と効率化を支援する AI と機械学習を活用したソリューションを企業に提供するテクノロジー プラットフォームです。自然言語処理、マシン ビジョン、オートメーション、その他の業界固有のソリューションなど、一連の AI サービスを提供します。企業が顧客エクスペリエンスを向上させ、コストを削減し、生産性を向上できるように設計されています。
llm_chain.run("Integral of x * (log(x)^2)")
答えは x^2 log(x)^3 / 3 + C です。ここで、C は任意の積分定数です。
ご覧のとおり、どちらの答えも偽です。積分の正しい値1/4 x^2 (1 - 2 log(x) + 2 log^2(x))
です。一方、lablab.ai が何なのかは、誰にも説明する必要はないと思います 😉。
不正解の場合は、LLM の計算スキルの不足と最新の情報の欠如が原因です。
使用したモデルは 2021 年 9 月までの情報を持っています。lablab.ai プラットフォームはその後に作成されました。ただし、どちらの問題にも解決策があります。
問題に対処するには、エージェントとツールを使用することをお勧めします。インターネット検索ツールを使用すると、最新の情報を検索できます。これにより、現在までのモデルの知識の範囲が広がります。 LangChain からインポートするだけの既製ツールがすでにあります。カウントの問題の解決策は、 Wolfram Alphaの API です。数学の問題にもしっかり対応できます!ぜひお勧めします。
まずは検索ツールを組み立てることから始めましょう。これはDuckDuckGoSearchRun
と呼ばれるもので、以前にインポートしました。
search = DuckDuckGoSearchRun() # Web Search Tool search_tool = Tool( name = "Web Search", func=search.run, description="A useful tool for searching the Internet to find information on world events, issues, etc. Worth using for general topics. Use precise questions." )
そのような単純な!次に、数学の問題を解決するためのツールを作成しましょう。このためのカスタム クラスを作成します。 Wolfram Alphaによって作成された API は多数ありますが,ここでは最も単純なものの 1 つを使用します。
class WA: """ Wolfram|Alpha API """ def __init__(self, app_id): self.url = f"http://api.wolframalpha.com/v1/result?appid={app_id}&i=" def run(self, query): query = query.replace("+", " plus ").replace("-", " minus ") # '+' and '-' are used in URI and cannot be used in request result = requests.post(f"{self.url}{query}") if not result.ok: raise Exception("Cannot call WA API.") return result.text
この API は自然言語でリクエストを処理し、結果を返します。それは私たちにとって完璧なものになるでしょう! run
メソッドがそれを処理します。次に、ツールを定義しましょう。
WA_API_KEY = "<WA_API_KEY>" # You can get it here: https://products.wolframalpha.com/api/ wa = WA(app_id=WA_API_KEY) wa_tool = Tool( name="Wolfram|Alpha API", func=wa.run, description="Wolfram|Alpha API. It's super powerful Math tool. Use it for simple & complex math tasks." )
最後のステップは、エージェントを作成し、それにツールを与え、結果を確認することです。やってみましょう!
agent = initialize_agent( agent="zero-shot-react-description", tools=[wa_tool, search_tool], llm=llm, verbose=True, # I will use verbose=True to check process of choosing tool by Agent max_iterations=3 )
以前のプロンプトを確認してみましょう。
r_1 = agent("What is lablab.ai?") print(f"Final answer: {r_1['output']}") r_2 = agent("Integral of x * (log(x)^2)") print(f"Final answer: {r_2['output']}")
以前の回答:
Lablab.ai は、業務の合理化と効率化を支援する AI と機械学習を活用したソリューションを企業に提供するテクノロジー プラットフォームです。自然言語処理、マシン ビジョン、オートメーション、その他の業界固有のソリューションなど、一連の AI サービスを提供します。企業が顧客エクスペリエンスを向上させ、コストを削減し、生産性を向上できるように設計されています。
答えは x^2 log(x)^3 / 3 + C です。ここで、C は任意の積分定数です。
新しい答え:
lablab.ai は、AI ツールとテクノロジー専用のプラットフォームです。 AI チュートリアル、ハッカソン、最先端の言語モデルへのアクセスなどを提供します。
x^2/4 + 1/2 x^2 log^2(x) - 1/2 x^2 log(x)
ご覧のとおり、ツールを使用すると結果がはるかに良くなります。積分は正しくカウントされ、lablab.ai プラットフォームに関する質問への回答の質も向上しています。これは、簡単なツールを追加することで回答の正確性がどのように向上したかを示しています。だからこそ、今時間を割く価値はあると思います。そうすれば、将来的には LLM との取り組みがより良く支援されるようになります。
アプリケーションを改善するには、他のタイプのAgentを試すことをお勧めします。それらの場合、メモリを使用する価値もあります。ここではVector Database が役に立ちます。幸いなことに、 LangChainもサポートしています。