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

ブログ    
ブログ    

推薦する

Java でアルゴリズムを実装する場合は、再帰に注意してください。

現象:再帰は、アルゴリズムの原理をうまく説明できる古典的なアルゴリズム実装です。再帰は、アルゴリズム...

洪水の知らせを聞いたらすぐに行動を起こしましょう!ロボットは風と波の守護者となることを目指す

災害に直面して、すべての関係者が行動を起こした。人民解放軍部隊が被災者の救出に派遣されているとみられ...

ガートナー、2023年の中国のデータ分析と人工知能技術の成熟度曲線を発表

ガートナーは、2026年までに中国のホワイトカラー職の30%以上が再定義され、生成AIを活用し管理す...

Facebook、黒人男性を霊長類と認識したアルゴリズムについて謝罪

[[422559]]ビッグデータ概要著者: ミッキー6月27日に英国のデイリーメール紙が公開した動画...

フロスト&サリバンは、倉庫管理用の自律配送ロボットの市場が2025年までに272億ドルに達すると予測している。

コロナウイルスのパンデミックが業界に与える影響の程度は地域や業種によって異なると報告書は述べている合...

ARMベースの3DES暗号化アルゴリズムの実装(2)

ARMベースのハードウェア実装3DESアルゴリズムと一般的な組み込みアプリケーションの要件に応じて...

...

人工知能のトレンドが電子商取引業界のビジネスを変える

電子商取引企業は常に技術革新の最前線に立ってきました。彼らでさえ、ビッグデータの突然の驚くべき破壊力...

...

...

運輸・物流業界におけるAIと自動化のユースケース

現在、世界の一部の国や地域の運輸・物流業界は、流行病によって深刻な影響を受けています。コロナウイルス...

サイバーセキュリティの専門家が知っておくべきAI用語

人工知能の急速な発展により、私たちは第四次産業革命の真っ只中にいます。このデジタル時代において、サイ...

インテリジェントビルにおける人工知能技術の応用の展望

現在の人工知能技術と製品の実用レベルによると、インテリジェントビルの分野では、建物の自己調節型「呼吸...

AIがシュレーディンガー方程式を正確かつ計算効率よく解く、Nature Chemistry誌に発表

量子力学の基本方程式の一つとして、シュレーディンガー方程式は常に幅広い注目を集めてきました。昨年、D...

デジタル変革、人工知能、そして生産性の問題

企業がデジタル変革を進める際に、生成 AI がいかにして企業の生産性を向上させることができるかについ...