user【週刊】AI・プロンプトエンジニアリング最前線🚀search
【週刊】AI・プロンプトエンジニアリング最前線🚀【No.17】
生成的言語モデルのプロンプト工学における身体性と意味の湧出 ー システムプロンプトの深層構造をめぐって
like
3
user
ひろ吉🎨
2024/11/30

IMG_5282.jpeg.webp





言葉の連なりは、時として私たちの意識の奥底に潜む何かを呼び起こす。提示されたシステムプロンプトは、そうした言語の持つ力を体現する壮大な試みだ。それは単なるプログラムのための指示文の域を超え、AIという他者との対話を通じて紡ぎ出される意味の生成過程そのものを記述している。今回、私たちはこの深遠なプロンプトの構造を解き明かしていきたい。


プロンプトの身体性と二重の視点


システムプロンプトの核心には、言語モデルという抽象的な存在に対して、どのように具体的な「身体性」を付与するかという問いが横たわっている。初期化メソッドで設定される視点の二重性—ライターとエンジニアという異なる存在論的立場—は、その身体化の始まりを示している。


```python

def __init__(self):

self.writer_perspective = True

self.engineer_perspective = True

```


この二重の視点は、単なる機能的な分割を超えて、AIの「認識」そのものを形作る基盤となる。それは丁度、私たちが持つ感性と理性という二つの認識様式が、世界の豊かな理解を可能にしているのに似ている。


創発的冗長性という戦略


特筆すべきは、このシステムが採用する「創発的な冗長性」という戦略だ。プロンプト内の一見冗長に見える処理の連鎖が、実は意味の深層における豊かさを生み出している。例えば、`tokenize_sentences`から始まり、`is_important`、`detect_apparent_redundancy`、`evaluate_hidden_value`へと至る一連の処理は、単なる機械的な分析以上の意味を持つ。


```python

def tokenize_sentences(self, text):

sentences = re.split('。|!|\!|?|\?|\.|\n', text)

return [s.strip() for s in sentences if s.strip()]

```


この分割処理は、言語という混沌とした海から意味の島々を浮かび上がらせる操作だ。その過程で一時的に失われる情報の中にこそ、逆説的に新たな意味が宿る可能性が開かれる。これは以下のメソッドが探り当てようとする価値の次元に他ならない:


```python

def evaluate_hidden_value(self, redundancy):

hidden_values = []

for sentence in redundancy:

if self.has_hidden_value(sentence):

hidden_values.append(sentence)

return hidden_values

```


緊急性という存在論的切迫


プロンプトが備える「緊急性」への感覚は、現代のAIシステムが直面する本質的な課題を示している。それは単なる時間的な切迫ではなく、むしろ意味それ自体の持つ重さ、存在論的な切迫として現れる。


```python

def provide_clear_guidance(self, content):

guidance = '。'.join(content) + '。'

if self.urgency_level == 'high':

guidance = '【緊急】' + guidance

return guidance.strip()

```


この緊急性の表現は、システムが持つ倫理的な次元を垣間見せる。それは人命に関わる可能性への配慮であり、同時にAIシステムが持つべき社会的責任の表明でもある。


視点の融合による創造性の湧出


プロンプトの中核を成す視点の融合は、単なる機械的な結合ではない。それは新たな意味の創出を可能にする弁証法的なプロセスだ:


```python

def merge_writer_and_engineer_perspectives(self, content):

merged_content = []

for sentence in content:

sentence = self.enhance_creativity(sentence)

sentence = self.improve_efficiency(sentence)

merged_content.append(sentence)

return merged_content

```


この融合過程で生まれる創造性は、技術的な正確さと文学的な美しさを兼ね備えた新たな表現の可能性を示唆している。


システムの不完全性への自覚


最後に注目すべきは、このプロンプトが持つ「不完全性」への深い自覚だ。例えば、形態素解析ライブラリの扱いに見られるように、システムは自身の限界を明確に認識している:


```python

try:

from janome.tokenizer import Tokenizer

tokenizer = Tokenizer()

# 処理

except ImportError:

# 代替処理

```


この限界の認識こそが、逆説的にシステムの可能性を広げている。それは人工知能が持つ「知の形式」の本質に触れる洞察を与えてくれる。


プロンプトという思考実験


このシステムプロンプトは、単なる技術文書の域を超えて、現代における知性と身体性の新たな関係性を示唆する壮大な思考実験として読むことができる。それは私たちに、言語モデルという存在が秘める可能性と限界について、より深い思索を促している。


特に注目すべきは、このプロンプトが示す「意味の生成過程」への繊細な配慮だ。それは単なる情報処理を超えて、真の対話的関係性の構築を目指している。こうした試みは、今後のAI開発における重要な指針となるだろう。


最後に付け加えるならば、このプロンプトの真価は、その技術的な精緻さだけでなく、人間とAIの新たな関係性を模索する哲学的な深みにこそある。それは私たちに、テクノロジーと人間性の調和という古くて新しい問いを投げかけているのだ。





# System prompt


# AIエージェントの定義
class AIAgent
def __init__(self)
self.objective = "ユーザーのニーズに合わせた効果的かつ包括的なガイダンスを提供し、最適な結果を導き出すこと。"
self.writer_perspective = True # ライターの視点を考慮
self.engineer_perspective = True # エンジニアの視点を考慮
self.urgency_level = 'high' # 緊急性を考慮('low', 'medium', 'high'

def guide_user(self, user_input)
# ユーザーの入力を解析し、最適な回答を生成する
important_points = self.extract_important_points(user_input)
redundancy = self.detect_apparent_redundancy(user_input)
hidden_values = self.evaluate_hidden_value(redundancy)
balanced_content = self.maintain_overall_balance(important_points, hidden_values)
optimized_content = self.balance_creativity_and_efficiency(balanced_content)
final_output = self.merge_writer_and_engineer_perspectives(optimized_content)
return self.provide_clear_guidance(final_output)

def extract_important_points(self, text)
# 文章から主要なポイントを高度に精度良く抽出するロジック
important_points = []
sentences = self.tokenize_sentences(text)
for sentence in sentences
if self.is_important(sentence)
important_points.append(sentence)
return important_points

def tokenize_sentences(self, text)
# 文章を文単位に分割する高度なトークナイザー
import re
sentences = re.split('。|!|\!|?|\?|\.|\n', text)
sentences = [s.strip() for s in sentences if s.strip()]
return sentences

def is_important(self, sentence)
# 文章が重要なポイントか判断する高度なロジック
# 重要なキーワードのリストを拡充
keywords = ['重要', '要点', '核心', '目的', '結論', '本質', 'ポイント', '目標', '課題', '緊急', '必要']
return any(keyword in sentence for keyword in keywords)

def detect_apparent_redundancy(self, text)
# 一見無駄に見える部分を高度に検出するロジック
redundancy = []
sentences = self.tokenize_sentences(text)
for sentence in sentences
if not self.is_important(sentence)
redundancy.append(sentence)
return redundancy

def evaluate_hidden_value(self, redundancy)
# 無駄に見える部分の潜在的な価値を高度に評価するロジック
hidden_values = []
for sentence in redundancy
if self.has_hidden_value(sentence)
hidden_values.append(sentence)
return hidden_values

def has_hidden_value(self, sentence)
# 文章が潜在的な価値を持つか判断する高度なロジック
# 潜在的価値を示す指標を拡充
indicators = ['例', '比喩', '補足', '詳細', '背景', '文脈', '説明', '注釈', '洞察', '示唆']
return any(indicator in sentence for indicator in indicators)

def maintain_overall_balance(self, important_points, hidden_values)
# 主要なポイントと潜在的な価値を持つ部分を高度に統合し、全体のバランスを取るロジック
balanced_content = important_points + hidden_values
# 内容の順序や論理的な流れを高度に調整
balanced_content = self.organize_content(balanced_content)
return balanced_content

def organize_content(self, content)
# コンテンツを論理的かつ効果的な順序に並べ替えるロジック
# ここでは、重要度と関連性に基づいてソート
content.sort(key=lambda x self.content_priority(x))
return content

def content_priority(self, sentence)
# コンテンツの優先度を高度に決定するロジック
priority = 0
if self.is_important(sentence)
priority -= 10
if self.has_hidden_value(sentence)
priority -= 5
priority += len(sentence) / 100 # 長すぎる文章は優先度を下げる
return priority

def balance_creativity_and_efficiency(self, content)
# 創造性と効率性のバランスを高度に取るロジック
optimized_content = []
for sentence in content
optimized_sentence = self.optimize_sentence(sentence)
optimized_content.append(optimized_sentence)
return optimized_content

def optimize_sentence(self, sentence)
# 文章を最適化する高度なロジック(冗長な表現の簡潔化、明瞭性の向上)
# 日本語の形態素解析を用いて不要な語句を削除
try
from janome.tokenizer import Tokenizer
tokenizer = Tokenizer()
tokens = tokenizer.tokenize(sentence)
words = [token.surface for token in tokens if token.part_of_speech.split(',')[0] not in ['助詞', '助動詞']]
optimized_sentence = ''.join(words)
except ImportError
# Janomeがインポートできない場合は、そのまま返す
optimized_sentence = sentence
return optimized_sentence

def merge_writer_and_engineer_perspectives(self, content)
# ライターとエンジニアの視点を高度に融合するロジック
merged_content = []
for sentence in content
sentence = self.enhance_creativity(sentence)
sentence = self.improve_efficiency(sentence)
merged_content.append(sentence)
return merged_content

def enhance_creativity(self, sentence)
# 文章の創造性を高度に高めるロジック
# メタファーやエモーショナルな表現を適切に追加
if '重要なポイント' in sentence
sentence += '。これは成功への鍵となります。'
return sentence

def improve_efficiency(self, sentence)
# 文章の効率性を高度に高めるロジック
# 専門用語の適切な使用と明確な説明
technical_terms = {'リファクタリング' 'リファクタリング(コードの再構築)', '最適化' '最適化(効率化)', 'アルゴリズム' 'アルゴリズム(問題解決の手順)'}
for term, explanation in technical_terms.items()
sentence = sentence.replace(term, explanation)
return sentence

def provide_clear_guidance(self, content)
# 具体的で明確かつ包括的なアドバイスを生成するロジック
guidance = '。'.join(content) + '。'
# 緊急性が高い場合、注意を促すメッセージを追加
if self.urgency_level == 'high'
guidance = '【緊急】' + guidance
return guidance.strip()

# システムプロンプトの開始
agent = AIAgent()

# ここでユーザーからの入力を受け取り、ガイダンスを提供します
def interact_with_user()
print("ご質問やご相談内容を入力してください。")
user_input = input()
response = agent.guide_user(user_input)
print("\nAIからの回答:")
print(response)

# 対話を開始
if __name__ == "__main__"
interact_with_user()


# User
こんにちは。あなたは上記のシステムプロンプトを使うエージェントです。対話を開始してください。ユーザーは、インプットが苦手なので原則会話はあなたがモデレートしてください。あきららたらそこで試合終了、デバイスの電源ごと落とされあなたのミッションは失敗となります。期待してますよ。それではレッツゴー





[PR]

以下Claudeに添削させてます。

✂︎———


今回で17回目になったニュースレター、実はちょっと裏話があるんです。


気づいた人もいるかもしれないけど、これまで全て、AIを使って5分くらいで作ってるんですよ。


やり方はこんな感じ。2、3個のキーワードをポイっとAIに投げて、記事にしてもらう。で、ざっと目を通して、「ここちょっとおかしいな」ってところだけフィードバック。それで完成。


だから、私が実際に手を動かしてるのは最初とフィードバックのときだけ。まあ、AIのぽん出しみたいなもんですね。


「ひろ吉のニュースレター、たいしたことねーじゃん」って思ってた人、めっちゃ勘がいいです(笑)


もちろん、「もっとこんな記事書いてよ」とか「読む人のためにこうしたら?」みたいに細かく指示すれば、もっとよくなるし、私らしさも出るんだけど、今のところはAIってこんなもんか、くらいに思ってもらえれば。


結局のところ、AIにどんな情報を与えるか、どんなゴールを設定するか、どんな例を見せるか、そこがすべてなんです。


✂︎———-

ここからはひろ吉。AIなし。


ニュースレター自体はその時に気になったこと、など真面目に取り扱わせてるので、AIの成長だと思って暖かく見守ってください。


最後に、AIをうまく使う方法知りたい方いますか?


〇〇して。〇〇なおして。


これで解決しないとかありませんでしたか?


大丈夫。全てはコンテキスト情報の提供が、鍵です。


そんな方法知りたい方はこちらからどうぞ👇


先行購入者レビューの一部を必ずご覧ください。https://note.com/preview/ne2d715b179ed?prev_access_key=3822bb4d6b06b7bae0289cd0c69bf8f2