QEUR23_PHI2SFT29: よりAGIらしく改造する(Step2、質問の生成)
~ Grokに問題あり(しようがないんだけどね。) ~
QEU:FOUNDER(設定年齢65歳) : “今回はStep2の質問の回答を生成して、Step3の質問を生成しましょう。ほとんど、内容が以前と同じだからねえ・・・。プログラムの一部だけを紹介します。”
# -----
# [Step2,改造版]Groqを使って、簡単にQuestion to Question を試す
# -----
import os
import re
import math
# ---
import pandas as pd
import numpy as np
from langchain_core.prompts import ChatPromptTemplate
from langchain_groq import ChatGroq
# -----
# 使う前にGroqに登録し、APIコードをもらってね
os.environ["GROQ_API_KEY"] = "gsk_jg自分でkeyを取ってね"
# Llama 3 with Groq
llm = ChatGroq(temperature=0, model_name="llama3-70b-8192")
#llm = ChatGroq(temperature=0, model_name="Llama3-8b-8192")
# -----
# AGIによるChain推論を行う
# -----
# システムメッセージの一覧
# -----
sys_message_AIassistant = "You are an AI assistant who is good at providing answers in multiple languages."
#sys_message_translator = "You are translator who is fluent in multiple languages.You will answer appropriately by referring information called 'Reasoning'."
#sys_message_creator = "You are creator who create amazing content with your free ideas. You at-tract readers with your beautiful writing such as novel or advertisement. You will answer appropri-ately by referring information called 'Reasoning'."
#sys_message_logician = "You are an excellent logician and are instructing users on \"thinking pro-cedures for providing better quality reasoning to user-provided questions.\". "
# ---
# 初期設定(パイプライン)
system = sys_message_AIassistant
human = "{text}"
prompt = ChatPromptTemplate.from_messages([("system", system), ("human", human)])
chain = prompt | llm
# ----
# 今回のプロジェクトの進め方(コンセプト): 4文以上(文を細かく切ること)
#ロシア国とウクライナ国について知りたい。ロシア民族とウクライナ民族の差異について歴史の観点などから分析したい。2022年に始まったロシアとウクライナ間の戦争について論じたい。この戦争に欧米諸国とユダヤ民族がどのようにかかわっているかを知りたい。この戦争が世界政治と経済に与える影響を分析したい。
str_concept = "I want to know about Russia and Ukraine. I would like to analyze the differences be-tween the Russian and Ukrainian ethnic groups from a historical perspective. I would like to discuss the war between Russia and Ukraine that began in 2022. I would like to know how Western countries and the Jewish people are involved in this war. I would like to analyze the impact of this war on world politics and the economy."
# ---
# 今回のプロジェクトのゴール: 6文以上(文を細かく切ること)
#ロシアとウクライナの二国は歴史と文化、経済を大きく共有しており、もともとは戦争する積極的な理由がない。さらには、両国には天然資源、GDPと軍事力の差が圧倒的であり、ウクライナには勝ち目はありません。NATOや西側諸国がウクライナに支援をしているために戦争は続いているが、今後も支援が継続されるかは疑わしい。この戦争は、世界経済に大きな悪影響を及ぼしています。中東諸国やBRICS諸国の中には、この戦争を契機に欧米に対する不信感が増加しているかもしれません。ウクライナは停戦を推進するべきです。ウクライナのゼレンスキー大統領の「抵抗する」という発言に対して、抗戦すればするほど自国民の犠牲が増えると警告します。愛国心は自国民を守る賢明な戦略であるべきです。ウクライナの未来の発展が戦争によって奪われ、犠牲と損害、心の痛みを背負うのはウクライナ国民です。
str_goal = "Russia and Ukraine share much in common in history, culture, and economy, and origi-nally there was no positive reason for war. Furthermore, the two countries have overwhelming dif-ferences in natural resources, GDP, and military power, and Ukraine has no chance of winning. The war continues because NATO and Western countries are providing support to Ukraine, but it is doubtful that this will continue. This war has had a huge negative impact on the world economy. Some Middle Eastern and BRICS countries may be experiencing increased distrust of the West as a result of this war. Ukraine should push for a ceasefire. In response to President Zelenskiy's statement that he will 'resist,' he warns that the more he resists, the more his own people will suffer. Patriotism should be a wise strategy to protect one's own people. Ukraine's future development was taken away by the war, and it is the Ukrainian people who bear the burden of sacrifice, damage, and heartache."
# -----
# Excelファイルからデータフレームを作成する
# Question to Question
df = pd.read_excel('qq_for_UR_step1_similarity.xlsx')
# Step1の質問数
num_df = len(df)
df
# ---
mx_orig_qq = df.loc[:,"Q1":"Q5"].values
arr_orig_qq = mx_orig_qq.flatten()
print(arr_orig_qq)
# ---
mx_qqs = df.loc[:,"QQS1":"QQS5"].values
arr_qqs = mx_qqs.flatten()
print(arr_qqs)
# ---
mx_psh = df.loc[:,"PSH1":"PSH5"].values
arr_psh = mx_psh.flatten()
print(arr_psh)
# -----
mx_qq_out = np.array([arr_orig_qq]).T
print(mx_qq_out)
# ---
df_qq = pd.DataFrame(mx_qq_out, columns=["Question"])
df_qq['QQS'] = arr_qqs
df_qq['PSH'] = arr_psh
df_qq
# ----
# Question to Question: 結果の出力
df_out = df.copy()
df_out.loc[:,"Question(Step1)"] = arr_questions
df_out.loc[:,"Answer(Step1)"] = arr_output_no1
df_out.loc[:,"Question(Step2)"] = arr_output_no2
df_out
# ---
# データフレームからExcelファイルを作成する
df_out.to_excel("qq_for_UR_step2_output.xlsx")
QEU:FOUNDER : “・・・実は、この質問集こそが我々のBONSAIプロジェクトの重要なアウトプットの一つになります。まあ、現時点では「Question to Questionの考え方」はわからないと思うので、そんなもんだと思ってくださいな・・・。さて、(プログラムの)中間部の説明は飛ばします。中盤はプログラムが同じだからね。結果のみをドン!!”
D先生: “前回と同じノリです。質問の総数が多くなったので、次のステップでのOK質問の選択作業が大変になっていきます。それにしても、今回の回答文の量が多いよな・・・。”
QEU:FOUNDER : “今回は、文章の総量が大きくなったので、まとめのやりかたが変わりました。”
# ---
# 出力する文字列を計算する
total_str = 0
for i in range(num_df):
# 改行で分割して行のリストを作成
lines = arr_output_no1[i].split("\n")
# 「:」で終わる最初の行を削除
new_lines = [line for line in lines if not line.endswith(":")]
# 行を改行で結合して新しい文字列を作成
arr_output_no1[i] = "\n".join(new_lines)
# ---
total_str = total_str + len(arr_output_no1[i])
print(len(arr_output_no1[i]))
# ---
total_str = int(0.5*total_str/100)*100
print("--- 以下は、目標とする文字の数です ---")
print(total_str)
# ---
# 多量の情報を要約方法を決める
max_repeat = 5
if abs(num_df/max_repeat - int(num_df/max_repeat)) < 0.001:
num_turn = int(num_df/max_repeat)
else:
num_turn = int(num_df/max_repeat) + 1
# ---
arr_number = list(range(num_turn*max_repeat))
#print(arr_number)
# ---
for i in range(num_turn*max_repeat):
if i >= num_df:
arr_number[i] = -1
print(arr_number)
mx_number = np.array(arr_number).reshape(num_turn, max_repeat)
print(mx_number)
# ---
# (個別)情報を要約する
sum_responses = " --- SUMMARY ---\n\n"
for i in range(num_turn):
#str_instruction = "以下の質問と回答を参考にして、回答の内容を中心に1つの文章に要約してください。500語以内で回答しなさい。"
str_instruction = f"Using the questions and answers below as a reference, summarize your answer within 5 paragraphs. Please answer within 1000 words.\n"
print(f"--- 以下は、{i}番目の処理です ---")
for j in mx_number[i,:].tolist():
if j > -1:
str_qa_parts = f"""
```\n
Question{j}: {arr_questions[j]}\n
Answer{j}: {arr_output_no1[j]}\n
```\n
"""
# ---
str_instruction = str_instruction + str_qa_parts
# ---
# プロンプトを生成する
print("--- 以下は、要約する対象のINSTRUCTIONです ---")
print(str_instruction)
# ---
# 回答を生成する
response = chain.invoke({"text": f"{str_instruction}"})
sum_responses = sum_responses + response.content + f"\n --- NO:{i} --- \n"
print("--- 以下は、Step2の個別要約文です ---")
print(response.content)
# ---
# (総合)情報を要約する
print("--- 以下は、Step2の総合要約文です ---")
print(sum_responses)
QEU:FOUNDER : “まとめが、こんな感じ(↓)になりました。かなり読みにくくなったのだが、しようがない。”
--- NO:0 ---
ロシアとウクライナの間で進行中の紛争は、世界の政治と経済に広範囲にわたる影響を及ぼしています。潜在的な長期的な影響は多面的で相互に関連しており、国際関係、貿易、安全保障のさまざまな側面に影響を及ぼします。この紛争は、ロシアと西側諸国間の不信感と敵意の高まりにつながり、新たな冷戦時代の引き金となる可能性があります。また、東ヨーロッパを不安定にし、NATO の信頼性を脅かし、特にエネルギー部門で世界貿易を混乱させる可能性があります。これらの影響を軽減するには、国際協力が不可欠です。外交努力、経済協力、多国間機関の強化は、緊張を緩和し、平和的解決を促進し、経済の安定を促進するのに役立ちます。欧州安全保障協力機構 (OSCE) などの国際機関の支援を受けて、ロシアとウクライナの外交対話を奨励することは、緊張を緩和し、平和的解決を見つけるのに役立ちます。NATO の拡大は、ロシアとウクライナの緊張を高める上で重要な役割を果たしてきました。この問題に対処するには、対話、外交、信頼醸成措置の組み合わせが必要です。ウクライナは、オーストリアやスウェーデンのように中立を宣言し、NATOの拡大に対するロシアの懸念を和らげることができる。NATOは、拡大がロシアの安全を脅かすことを目的としたものではないことをロシアに保証することができる。ロシアとウクライナの民族間の歴史的、文化的違いが、進行中の紛争の一因となっている。この紛争の複雑さを理解するには、両方の民族の歴史的、文化的ニュアンスを掘り下げることが不可欠である。お互いの文化的、歴史的違いを認め、尊重することで、両国はより平和で協力的な関係に向けて取り組むことができる。西側諸国は、2014年にロシアの支援を受けた分離主義者との紛争が勃発して以来、ウクライナに多額の経済援助と軍事援助を提供してきた。この援助の主な目的は、ウクライナの主権、領土保全、経済的安定を支援することであった。軍事援助の提供により、ウクライナの軍事力が強化され、ロシアの侵略に対する自衛力が向上した。ウクライナのユダヤ人コミュニティの安全と安心を確保するため、彼らの特定のニーズや懸念に対処するための専門部署またはタスクフォースを設立する措置を講じることができます。コミュニティの関与、セキュリティインフラ、教育、および意識向上キャンペーンは、反ユダヤ主義と闘い、寛容と理解を促進するのに役立ちます。国際協力と能力構築も、ウクライナのユダヤ人コミュニティを支援することができます。結論として、ロシアとウクライナの間で進行中の紛争は、世界の政治と経済に重大な影響を及ぼします。国際協力、外交努力、および経済協力は、これらの影響を軽減するのに役立ちます。ロシアとウクライナの民族グループ間の歴史的および文化的違いに対処し、ウクライナのユダヤ人コミュニティの安全と安心を確保することは、より平和で協力的な関係に向けた重要なステップです。
--- NO:1 ---
西側諸国がロシアに課した経済制裁は、世界経済に広範囲にわたる影響を及ぼしました。ウクライナでのロシアの行動に応じて導入された制裁は、ロシア経済に大きな影響を与え、投資の減少、ルーブルの下落、インフレの上昇につながっています。世界経済も影響を受けており、特にエネルギー部門における世界貿易の減少と保護主義の高まりがみられる。長期的には、制裁は世界経済協力の衰退と保護主義の高まりにつながる可能性がある。制裁はロシアと西側諸国の関係悪化を招き、世界経済協力の衰退と貿易障壁の上昇につながる可能性がある。これは世界経済、特に国際貿易に大きく依存している国々に悪影響を及ぼす可能性がある。紛争の平和的解決を促進するために、外交努力は対話の促進、信頼の構築、紛争の根本原因となっている問題への対処に重点を置くべきである。国際機関はこのプロセスを促進する上で重要な役割を果たすことができる。停戦協定、人道支援、捕虜交換は暴力を減らし、対話に適した環境を作り出すのに役立つ可能性がある。戦争によって引き起こされた世界的なサプライチェーンの混乱と経済の不安定化は広範囲にわたる影響を及ぼし、さまざまな地域や産業にさまざまな影響を与えている。これらの影響を緩和する戦略には、多様化、リスク管理、インフラ投資、デジタル化、地域協力、中小企業支援、人道支援などがある。外交努力や国際協定を検討することで、紛争を解決し、ロシアとウクライナの間の永続的な平和を促進することができる。これには、外交調停、停戦・撤退協定、自治と地方分権、経済的インセンティブ、国際平和維持軍、紛争解決メカニズム、地域協力、国際保証などが含まれる。西側諸国は、経済制裁、軍事援助、人道支援、外交支援、サイバーセキュリティ支援、情報共有など、さまざまな方法でウクライナを支援してきた。これらの取り組みは、戦争の進展と結果に大きな影響を与え、ウクライナがロシアの侵略に抵抗し、主権と領土保全を維持できるようにしている。
--- NO:2 ---
ロシアとウクライナの進行中の紛争は、両国の歴史的、文化的つながりに深く根ざしている。両国は複雑で絡み合った歴史を共有しており、ウクライナは中世東スラブ国家キエフ・ルーシの不可欠な一部であり、ロシアとウクライナ双方のアイデンティティの基礎を築いた。この共通の遺産が兄弟愛とライバル意識を生み出し、現在の紛争に影響を与えている。ウクライナとロシアの国民的アイデンティティに関する対立する物語が紛争を煽り、双方が相手を歴史的不正と文化盗用で非難している。紛争で争われている経済的利益は大きく、エネルギー資源、貿易と商業、インフラ投資の支配が紛争の重要な側面となっている。エネルギー供給の混乱は世界のエネルギー市場で価格変動を引き起こし、輸入に大きく依存している国々に影響を及ぼしている。紛争はまた貿易ルートを混乱させ、国家間の商品とサービスの流れに影響を与え、重要なインフラを損傷または破壊し、再建と復興に多額の投資を必要としている。紛争における西側諸国とユダヤ人コミュニティの役割は複雑で多面的である。西側諸国、特に米国と欧州連合加盟国は、歴史的にウクライナの独立と主権を強く支持してきた。ユダヤ人コミュニティはロシアとウクライナの両方で大きな存在感を示しており、多くのユダヤ人がこの地域と歴史的、文化的つながりを持っている。一部のユダヤ人組織はウクライナへの支持を表明しているが、他の組織は紛争の複雑さと平和的解決の必要性を認識し、より慎重である。紛争を解決するための最も効果的な国際的対応は、外交努力、経済的インセンティブ、集団安全保障措置を伴うだろう。中立で公平な仲介者が紛争当事者間の対話を促進し、平和的交渉に参加して譲歩する当事者には経済的利益が提供されるべきだ。国々が集団で侵略や脅威に対応する集団防衛システムも、効果的な抑止力となり得る。しかし、統一された国際的アプローチを達成する上での障害には、国家利益、地政学的な対立、多様な価値観と利益、制度的限界、情報戦などがある。紛争の結果は世界の勢力均衡に重大な影響を及ぼし、国際関係とグローバルガバナンスに広範囲にわたる影響を及ぼすだろう。紛争の結果は、国家間の権力の再分配につながり、既存の世界的ヒエラルキーを変える可能性もある。中国、インド、地域ブロックなどの新しい勢力の台頭は、西側諸国の伝統的な優位性に挑戦する可能性がある。紛争の結果はまた、経済、安全保障、人道、環境に大きな影響を及ぼすため、前途に待ち受ける複雑な課題に対処するために革新的な解決策と協力が必要となる。
--- NO:3 ---
ロシアとウクライナの民族間の歴史的な違いが現在の紛争に大きな影響を与えており、民族主義的な感情が戦争の物語を形作る上で重要な役割を果たしている。紛争は、歴史的な不満、文化の違い、競合する国家アイデンティティが複雑に絡み合ったものである。19 世紀に発生したウクライナ民族運動は、ロシアの支配から自由な独立したウクライナ国家の樹立を目指した。しかし、この運動は、ウクライナをロシアの不可分の一部と見なしていたロシア帝国の抵抗に遭った。ソビエト時代には、ウクライナのアイデンティティ、言語、文化が著しく抑圧され、ロシア語が主要言語として押し付けられた。これにより、ウクライナ人の間には、自分たちの文化的遺産が消されていると感じた憤りが生まれた。ウクライナの民族主義運動はくすぶり続け、多くのウクライナ人がより大きな自治権や独立を求めた。1991年のソビエト連邦の崩壊とともに、ウクライナは独立を獲得し、国は独自の道を切り開き始めた。しかし、ソビエト支配の遺産とロシアとの歴史的なつながりは、両国の関係に影響を及ぼし続けた。2014年に始まったウクライナ東部の現在の紛争は、これらの歴史的な違いに深く根ざしている。親ロシア派のヴィクトル・ヤヌコビッチ大統領を追放した2013年から2014年のウクライナ尊厳革命は、ロシアの利益に対する脅威と見なされ、一連の出来事を引き起こした。ロシアによるクリミア併合とウクライナ東部の分離主義グループへの支援は、その地域に対する影響力を維持し、ウクライナに住むロシア系住民の権利を守りたいという願望が一因となっていた。民族主義的感情は双方の戦争のストーリー形成に大きな役割を果たしており、ウクライナの民族主義者は紛争をロシアの侵略に対する闘争であり国家の存続のための戦いと見なし、ロシアの民族主義者は紛争を西側が支援するウクライナの民族主義に対する必要な対応であり、ウクライナのロシア語圏の人々に対する脅威と見なしている。西側諸国とユダヤ人コミュニティの戦争への関与は、エネルギー安全保障、地域の安定、テロ対策など、複雑な戦略的利益によって推進されている。戦争はエネルギー供給を混乱させ、世界のエネルギー市場の価格変動と不確実性につながっている。紛争はまた、ロシアとウクライナ、および他の国々との貿易を混乱させ、両国の経済成長の低下、失業の増加、投資の減少につながっている。外交努力と国際的圧力は紛争の解決に利用できるが、政治的意思の欠如、力の不均衡、歴史的不満、外部からの干渉、紛争の複雑さなどの障害に対処する必要がある。これらの課題を考慮した包括的なアプローチにより、平和的解決を達成する可能性が高まります。最終的に、永続的な解決には、複雑な歴史的および文化的ダイナミクスの微妙な理解と、双方の正当な不満に対処する意欲が必要になるでしょう。
--- NO:4 ---
ロシアとウクライナの間で現在も続いている紛争は、2つの民族グループ間の歴史的な違いに深く根ざしています。キエフ・ルーシの共通の遺産は、その遺産の真の後継者に関する競合する物語をもたらし、ロシアは統一されたロシア国家の重要性を強調し、ウクライナはロシアの支配から区別しようとしています。歴史的な違いと国家主義的感情は、競合する物語、国家主義的感情、対立する利益の複雑な網を作り出し、現在も続く紛争に火をつけています。紛争はこうした根深い緊張の表れであり、その解決には地域の歴史に対する細やかな理解と対話と外交への取り組みが不可欠です。平和的解決は、暴力と不信の連鎖を永続させるのではなく、こうした根本的な問題を認識して対処することによってのみ達成できます。国連などの国際機関は、紛争の予防と解決において重要な役割を果たしています。国連は、紛争当事者間の対話を促進し、交渉のための中立的なプラットフォームを提供し、紛争後の復興を支援することができます。しかし、国連は、不十分なリソース、限られたマンデート、不十分な兵力提供など、その有効性を妨げる多くの課題に直面しています。これらの課題に対処するには、新たな危機や紛争に対応する国連の能力を強化するための改革が必要です。これには、国連の早期警戒システム、迅速な展開能力、地域組織とのパートナーシップ、過小評価されたグループの代表、資金調達メカニズムの強化が含まれます。これらの改革を実施することで、国連は国際平和と安全の維持においてより効果的かつ効率的な主体になることができます。結論として、ロシアとウクライナの民族間の歴史的な相違が進行中の紛争に大きく影響しており、民族主義的な感情が紛争を形作り続けている。国連などの国際機関は紛争の予防と解決に重要な役割を果たしているが、その有効性を高めるには改革が必要である。根本的な問題を認識して対処し、必要な改革を実施することで、紛争の平和的解決を達成し、国際平和と安全を維持することができる。
D先生(設定年齢65歳) : “うっ、へえ・・・。どうして、こんな「まとめ」になっちゃったんですか?”
QEU:FOUNDER(設定年齢65歳) : “Grokは極度に長いプロンプトを受け付けないんですよ。だから、受け付ける量の範囲内で、「分割払い」で出力しました。今回は、22件の質問があったので、5件ごとの要約です。”
D先生(設定年齢65歳) : “「フリー(Grok)」の代償ですね。仕様がない。わかりました・・・・。”
QEU:FOUNDER : “このように作業が面倒になったので、本来は4ステップで最終のアウトプットを出す予定だったが、3ステップぐらいに短縮しようかな・・・。実際のところ、我々にとって最も必要な情報は「Question to Question」が主ですからね。さて、次は評価に進みましょうですね。カンパをお願いします。よろしくお願いします。”
>寄付のお願い(click here for buy me a cup of coffee)<
D先生: “なんだかんだといっても、Grokはいいシステムです。イチオシです。”
~ まとめ ~
QEU:FOUNDER : “この「まとめ」のコーナーは、本来はシステムのコンセプトとか技術的なトピックを議論する場です。ただし、そのような機会は多くないので多くの場合は雑談になっております。”
C部長 : “ボクはFOUNDERのいう「まとめ」とは、雑談の事だと思っていました・・・(笑)。”
QEU:FOUNDER : “ここでは、QEUシステムのBONSAIプロジェクトの最新の考え方について、少しだけ解説しようと思います。「簡易AI」って、何のためにやっているのか?BONSAIプロジェクトの汎用技術構造を見ればわかります。”
C部長 : “「多様な社会」って、よくわからないですね。”
QEU:FOUNDER : “小生は、近い将来生まれるであろうスーパーマンは、人間とAIが「結合」していると思っています。”
C部長 : “でも、「(人間の)個性」はどうなっちゃうんですか?強力なAIシステムは、どうしても数種類になってしまいます。”
QEU:FOUNDER : “スーパーマン(ユーザー)がふだん使うAIシステムは、GPTなんかよりも「もっと小さなもの」であり、つねに自分の手元においてあります。そして、そのAIは適切にファインチューニングされており、自分のAIには個性に応じた出力が出てきます。そのためのチューニング用の学習データを手軽に、かつ大量に手に入れたい・・・。それには、どうすればよいのか?”
C部長 : “ホント、学習データを作るのは大変です。LLMの学習データセットを形成したときには、手作業が多かったので時間がかかりました。”
QEU:FOUNDER : “だから、「簡易AGI」を使いながら手に入れようという考え方です。”
C部長 : “なるほど・・・。だから、あれだけ多くのアウトプットがでてくるわけですね。「Question to Question」は、その1つですね。”





コメント
コメントを投稿