チャットボット開発の三銃士: 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 は科学的仮説の偽のデータセットを生成し、学術的誠実性に脅威を与える可能性がある。

ブログ    
ブログ    
ブログ    

推薦する

インドネシアのゴミ分別:人工知能が役に立つ

上海市は7月に「史上最も厳しいゴミ分別措置」を実施し始めて以来、ゴミ分別は多くの人々の日常生活におけ...

年末コレクション!アンドリュー・ンが2020年に最も注目されたAIイベントをレビュー

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

表現学習: 自然言語のための高度なディープラーニング

表現学習では、半教師あり学習と自己教師あり学習の特定の機能を通じて、モデルのトレーニングに必要なデー...

UiPath: 自動化とは、退化を拒否し、価値の高い仕事の創出に専念することです

【51CTO.comオリジナル記事】近年、RPAの開発はかつてないほど注目を集めています。 Mark...

Uni-TTS音声合成モデルのアップグレード:1つの音声、複数の言語、高忠実度、高効率

最近、マイクロソフトは最新の Azure ニューラル ネットワーク音声合成技術 Uni-TTSv3 ...

...

GPT-4Vがロボットの頭脳として機能すると、AIで計画を立てることができなくなる可能性があります

GPT-4V はすでに、Web サイトのコード設計やブラウザの制御に役立っています。これらのアプリケ...

TensorFlow2020: Tensorflow.js を使用してコンピューター ビジョン アプリケーションを実行する方法は?

この記事は、公開アカウント「Reading the Core」(ID: AI_Discovery)か...

...

ディープラーニングツール: TensorFlow と NLP モデル

[[200204]]序文自然言語処理 (略して NLP) は、コンピューターが人間の言語を処理する方...

...

素人でもわかるポピュラーサイエンス:これは自然言語処理と呼ばれるものです

[[208394]] 1. 自然言語処理とは何ですか?簡単に言えば、自然言語処理(NLP)とは、コン...

ビジョンレーダーは、センサーコンピューティングによる次世代の自動運転システムの重要なコンポーネントです。

[[438879]] 2021年10月25日、テスラの時価総額は1兆ドルを超え、米国株式市場で時価...

...