チャットボット開発の三銃士: LLAMA、LangChain、Python

チャットボット開発の三銃士: LLAMA、LangChain、Python

チャットボットの開発は、複数のテクノロジーとツールを組み合わせて使用​​する必要がある複雑で困難な作業です。この分野では、LLAMA、LangChain、Python の組み合わせが強力な組み合わせを形成し、チャットボットの設計と実装に優れたサポートを提供します。

まず、LLAMA は、高度な意味理解と対話管理機能を備えた強力な自然言語処理ツールです。これにより、チャットボットはユーザーの意図をより深く理解し、コンテキストに基づいてインテリジェントに応答できるようになります。 LLAMA はカスタマイズ性が高いため、開発者は実際のニーズに応じてチャットボットの言語処理機能を柔軟に調整できます。

フルスタック言語テクノロジープラットフォームとして、LangChain は Chatbot 向けの豊富な開発リソースを提供します。音声認識、テキスト処理、機械翻訳などの複数の言語テクノロジーを統合し、チャットボットのマルチモーダルインタラクションを包括的にサポートします。 LangChain の強力な機能により、開発者は複雑で柔軟なチャットボット システムを簡単に構築できます。

汎用プログラミング言語である Python は、チャットボットの開発に最適です。簡潔で強力な構文により開発プロセスがより効率的になり、豊富なサードパーティライブラリとエコシステムにより、チャットボット開発のための幅広いツールとリソースが提供されます。 Python のクロスプラットフォームの性質により、Chatbot をさまざまな環境で実行し、より幅広いアプリケーションを実現することもできます。

チャットボットの開発は、一般的な言語の理解と生成を実現する能力で大きな注目を集めている言語モデルの一種である大規模言語モデル (LLM) と切り離すことはできません。 LLM は、トレーニング中に大量のデータを使用して数十億のパラメータを学習し、トレーニングと実行中に大量のコンピューティング リソースを消費することで、これらの機能を実現します。

Langchain、llama、Python を使用して簡単なチャットボットを構築しましょう。

このシンプルなプロジェクトでは、HIV/AIDS に関する特定のトピックに関するチャットボットを作成したいと考えました。つまり、チャットボットに送信するメッセージに対して、チャットボットはトピックとメッセージの関連性に基づいて回答を試みます。しかし、その前に、いくつかの必要なコンポーネントをインストールしてダウンロードする必要があります。

1. 大規模言語モデル

Hugging FaceからダウンロードしたMETA AIのLLAMA 2を使用しました。

2. ランチェイン

言語モデルに基づくアプリケーションを開発するためのフレームワーク

pip install langchain

3. Llama-cpp-pythonをインストールする

llama.cpp ライブラリの Python 実装 (最新の llama.cpp バージョンを使用しようとしましたが、動作しませんでした。そのため、0.1.78 安定バージョンを使用することをお勧めします。また、C++ コンパイラがインストールされていることを確認してください)。

 pip install llama-cpp-pythnotallow==0.1.78

4. ライブラリのインポート

from langchain.prompts importPromptTemplate from langchain.llms importLlamaCpp from langchain.callbacks.manager importCallbackManager from langchain.callbacks.streaming_stdout import( StreamingStdOutCallbackHandler )

PromptTemplate: ユーザー入力に基づいて動的な値を構成するオブジェクトである PromptValue の作成を担当します。

llamacpp: Facebook の LLAMA モデルの C/C++ ポート。

CallbackManager: LangChain からのコールバックを処理します。

StreamingStdOutCallbackHandler: ストリーミング用のコールバック ハンドラー。

コード

まず、モデル パス用に“your_model_path”という変数を作成します。次に、トピックを HIV/AIDS のみに制限したいので、 “chat_topic”というトピック変数を作成し、 “HIV/AIDS”を入力します。もちろん、これは変更できます。トピックを制限したくない場合は、 “chat_topic”を削除してテンプレートを変更するだけです。その後、ユーザー入力を受け取るための“user_question”という変数と、後で使用するテンプレートを作成します。

 your_model_path = "写入你的模型路径" chat_topic = "hiv/aids" user_question = str(input("输入你的问题:")) template= """请解释这个问题:“{question}”,主题是关于{topic} """

先ほど作成したテンプレートを使用するPromptTemplate変数を作成し、それを“prompt”変数に割り当てます。次に、プロンプトの形式を変更し、 “final_prompt”変数に割り当てます。先ほど初期化した“chat_topic”のトピック“user_question”中的问题を使用します次に、 “Callbackmanager”という変数を作成し、それにストリーム ハンドラーを割り当てます。

 prompt = PromptTemplate.from_template(template) final_prompt = prompt.format( topic=chat_topic, questinotallow=user_question ) CallbackManager= CallbackManager([StreamingStdOutCallbackHandler()])

その後、モデルを作成しましょう。

 llm = LlamaCpp( model_path=your_model_path, n_ctx=6000, n_gpu_layers=512, n_batch=30, callback_manager=CallbackManager, temperature=0.9, max_tokens=4095, n_parts=1, verbose=0 )

model_path : LLAMA モデルへのパス。

n_ctx : トークン コンテキスト ウィンドウ。応答を生成するときにモデルが受け入れることができるトークンの数。

n_gpu_layers : GPU メモリにロードするレイヤーの数。

n_batch : 並列処理するトークンの数。

callback_manager : コールバックを処理します。

temperature : サンプリングに使用する温度。温度が高いほど、より創造的で想像力豊かなテキストが生成され、温度が低いほど、より正確で現実的なテキストが生成されます。

max_tokens : 生成されるトークンの最大数。

n_parts : モデルを分割するパーツの数。

verbose : 詳細な出力を出力します。

最後に、モデルを呼び出してプロンプトを渡します。

 python "你的文件名.py"

実行するには、上記のコマンドを cmd に入力するだけです。

デモ

完全なコード

from langchain.prompts importPromptTemplate from langchain.llms importLlamaCpp from langchain.callbacks.manager importCallbackManager from langchain.callbacks.streaming_stdout import( StreamingStdOutCallbackHandler ) your_model_path = "write your model path" chat_topic = "hiv/aids" user_question = str(input("Enter your question : ")) template= """ Please explain this question : "{question}" the topic is about {topic} """ prompt = PromptTemplate.from_template(template) final_prompt = prompt.format( topic=chat_topic, questinotallow=user_question ) CallbackManager= CallbackManager([StreamingStdOutCallbackHandler()]) llm = LlamaCpp( model_path=your_model_path, n_ctx=6000, n_gpu_layers=512, n_batch=30, callback_manager=CallbackManager, temperature=0.9, max_tokens=4095, n_parts=1, verbose=0 ) llm(final_prompt)

<<:  オーディオ品質評価方法の簡単な分析

>>:  研究によると、ChatGPT は科学的仮説の偽のデータセットを生成し、学術的誠実性に脅威を与える可能性がある。

ブログ    
ブログ    

推薦する

大学受験出願関連アプリは会員料金が高く、AIアプリは信頼できない

6月26日のニュース:大学入試願書の記入は毎年大学入試後の重要なステップであり、受験生や保護者が最も...

報告書は、中国が人工知能の特許出願数で世界一であると指摘している。

最近、2020年中国人工知能産業年次大会が蘇州で開催されました。大会で発表された「中国人工知能発展報...

TalkingDataはビッグデータとAIについて語ります

[51CTO.com からのオリジナル記事] Singularity University の CE...

GNN の科学: テンセント AI ラボと清華大学が、等変グラフ ニューラル ネットワークをレビューする論文を共同で発表

近年、伝統的な自然科学の問題の解決においてますます多くの人工知能手法が活躍しており、いくつかの重要な...

Splunk は 2018 年の人工知能と機械学習の 3 つのトレンドを予測しています

調査会社ガートナーは、「人工知能(AI)と高度な機械学習技術は、広く注目されている新興技術であり、企...

マスク氏は激怒:マイクロソフトはAI用のデータ収集にWindowsを使用しているが、登録なしでは使用できない

マスク氏が投稿したXダイナミックにより、Microsoft Windowsは論争の中心となった。事件...

...

30% のトークンで SOTA パフォーマンスを達成、Huawei Noah 軽量ターゲット検出器 Focus-DETR が効率を 2 倍に

現在、DETR モデルはターゲット検出の主流のパラダイムとなっています。しかし、DETRアルゴリズム...

...

開発から生産まで: 機械学習に関する 7 つの実践的な提案

この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...

アルゴリズムの質問: 計算された π の値が正確かどうかをどのように判断するのでしょうか?

以下を読む前に、まず考えてみてください。 πの値を計算する世界記録保持者であるMysticialから...

人工知能技術が人の流れにおける個々の感染リスクを迅速に特定し、同済は伝染病予防・制御識別システムを開発

[[315277]]校門に設置されたカメラの前に立つと、システムは顔認識技術と現場での体温検知を組み...

10年後にあなたの生活を変える5つの新しいテクノロジー

脳制御のコンピューターからホログラフィック ビデオ ゲームまで、今後 10 年間であなたの生活を変え...

18カ国が支持するAI安全ガイドラインが発表

英国の国立サイバーセキュリティセンター(NCSC)は、AIシステムの開発者やプロバイダーが「期待通り...