ChatGPT がナンセンスなことを言うのはなぜですか? どうすれば改善できますか?| コード付きテキスト
ご存知のように、OpenAI プラットフォームのモデルには
ChatGPT
現在 2 つの大きな問題点があります。1. 学習するデータはすべて 2021 年までのものであるため、2022 年以降に何が起こったかを示すことは不可能です。2. 時々、常識的な間違い、つまり、歴史や数学の質問をするなど、ナンセンスなことを真剣に話し、そのような間違った答えを返すことがあります.
主な理由は、ChatGPT が「ジェネレーティブ リプライ」であることです。多くの人間の知識と人間の指導と報酬戦略を事前に学習しています。基本的に膨大なパラメータを持つニューラル ネットワーク モデルに依存しており、そのトレーニング プロセスはそのコーパスに基づいています.トレーニング データ自体はすべて高品質のテキストではないため、事実誤認がある可能性があります.ChatGPT
与えられた答えは、その理解によって生み出された最良の結果にのみ基づいています. しかし、特定のトレーニング知識の死角については、文字通りの意味に従って推論し、「深刻なナンセンス」の現象を引き起こす可能性があります.
したがって、上記の2つの問題を解決するために、検索エンジンをChatGPT
使用して、正確でタイムリーな補助情報をインターネットに提供できます。全体的な解決策は、検索エンジンでクロールされた質問関連の情報を CharGPT に投入し、必要な回答を統合して出力できるようにすることです。
記事ディレクトリ
1.ファストトラック
コードに習熟した読者が完全なコードを直接デバッグしたい場合は、私のリポジトリにアクセスして、完全で実行可能なものを直接ダウンロードできます。CSDN コミュニティによって規定された理由により、完全なコンテンツをそこに書き込むことはできません。ブロガーはすべてのコードとブログを載せます. このレポはスターを求めています! : https://github.com/lsl1229840757/chatbot .
2. ChatGPT履歴の制限事項と事実誤認
要約では、ブロガーは、ChatGPT が (1) 2022 年以降に何が起こるかについて答えられないこと、(2) いくつかの常識的な間違いを犯すこと、これら 2 つの主要な問題を詳細に分析しています。栗を取って見てみましょう:
2022年のワールドカップで優勝するチームを彼に尋ねたとき、それは予測できないと答えた.
フック 3 ストランド 4 ストリング 5 とは何かを彼に尋ねると、彼は厳粛に、これが古代中国の楽器である秦のチューニング方法であると教えてくれました。
3.効果のデモンストレーション
比較せずに害はありません。あまり話さずに、効果を直接示しましょう。
- 2022 ワールドカップ チャンピオン チームについて質問する
- ピタゴラスの定理について質問します
- 最近のニュースを見る
5. コード例
import warnings
import openai
from selenium import webdriver
from selenium.webdriver.common.by import By
warnings.filterwarnings('ignore')
class ChatGPT(object):
def __init__(self, api_key) -> None:
self._api_key = None
self.api_key = api_key
options = webdriver.ChromeOptions()
options.add_argument('headless') # 设置不弹出浏览器
options.add_experimental_option('excludeSwitches',
['enable-logging']) # 控制台不输出
self.browser = webdriver.Chrome(options=options)
@property
def api_key(self):
return self._api_key
@api_key.setter
def api_key(self, api_key):
self._api_key = api_key
# Load your API key
openai.api_key = api_key
def _grabbing_data(self, wd):
url = f'https://www.baidu.com/s?wd={
wd}'
self.browser.get(url)
self.browser.execute_script(
'window.scrollTo(0, document.body.scrollHeight)')
data = []
results = self.browser.find_elements(By.CLASS_NAME, 'c-border') \
+ self.browser.find_elements(By.CLASS_NAME, 'result-op') \
+ self.browser.find_elements(By.CLASS_NAME, 'result')
for result in results[:5]:
a_link = result.find_element(By.TAG_NAME, 'a')
href = a_link.get_attribute('href')
data.append(result.text + f'来源:{
href}')
return data
def _format_prompt(self, prompt):
print(f'正在百度中搜索{
prompt}相关资料...')
data = self._grabbing_data(prompt)
data = '\n'.join(data)
prompt = f'请根据以下辅助信息回答问题: {
data[:1000]}\n 请问:{
prompt}'
return prompt
def get_answer(self, prompt):
prompt = self._format_prompt(prompt)
response = openai.Completion.create(model="text-davinci-003",
prompt=prompt,
temperature=0.6,
max_tokens=2048)
return response['choices'][0]['text']
def chat(self):
flag = True
print('欢迎使用百度版ChatGPT, 我使用了百度作为资料搜索支撑引擎, 如果您想退出请输入exit!')
while flag:
prompt = input()
if prompt != 'exit':
print(self.get_answer(prompt))
else:
print('再见!')
flag = False
4.参考文献
- https://cloud.tencent.com/developer/article/2190154
- https://platform.openai.com/account/api-keys
- https://platform.openai.com/docs/introduction/overview