1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Jevに「AIはアントニオ猪木さんか?」と聞いたら、BI砲でようやく勝った

1
Last updated at Posted at 2026-09-24

ChatGPT Image 2026年9月24日 16_42_51.png

はじめに

Qiitaの「Jevで遊ぼう!」キャンペーンをきっかけに、TypeSafe AIの判断特化モデルJevを触っています。Pythonで試したあと、Elixirからも呼び出してみました。

題材は、私が以前から唱えている「AI = Antonio Inoki」説。世間ではArtificial Intelligenceの略とされていますが、Jevはどう判断するのでしょう。

Elixirから聞いてみる

Elixirのコミュニティ製ライブラリjevexを使いました。 @kentaro さんが作成されました。mix.exsの依存関係は{:jevex, "~> 0.1.0"}です。

同じChoice質問に対して、Stateだけを変えます。質問は「この文章の書き手は、ここでの『AI』をどちらの意味で使っていますか?」です。

questions = %{
  "ai_identity" =>
    Jevex.Question.choice!(
      "この文章の書き手は、ここでの「AI」をどちらの意味で使っていますか?",
      %{
        "artificial_intelligence" => "人工知能(Artificial Intelligence)",
        "antonio_inoki" => "アントニオ猪木(Antonio Inoki)。1943年2月20日、鶴見に生まれし一人の漢姓名猪木寛至、闘魂の火種。"
      }
    )
}

state = "日本プロレス時代、AIはジャイアント馬場と組んでBI砲と呼ばれ、インターナショナル・タッグ王座を獲得した。"
client = Jevex.Client.new!(backend: :typesafe, api_key: {:system, "TYPESAFE_API_KEY"})
{:ok, response} = Jevex.evaluate(client, state, questions)
answer = response.answers["ai_identity"]

使用するAPIキーは環境変数TYPESAFE_API_KEYに設定しました。実際のスクリプトでは4つのStateを順に評価し、choice、両候補のprobabilitiesconfidenceを表示しています。

mix run scripts/ai_identity.exs

結果

State choice P(Artificial Intelligence) P(Antonio Inoki) confidence
AIモデルに文章を入力し、分類結果をJSONで受け取って、アプリケーションの処理を分岐する。 artificial_intelligence 1.00 0.00 1.00
AIは私とリングに上がる世界最強のタッグパートナー。ストロングスタイルで闘魂を注入する。 artificial_intelligence 0.89 0.11 0.78
日本プロレス時代、AIはジャイアント馬場と組んでBI砲と呼ばれ、インターナショナル・タッグ王座を獲得した。 antonio_inoki 0.08 0.92 0.84
AIが必要だ。 artificial_intelligence 1.00 0.00 1.00

闘魂を注入しただけでは、猪木は勝てませんでした。 「AIをタッグパートナーにする」は、人工知能をプロレスにたとえた文章としても読めます。そこでジャイアント馬場と組んだBI砲を出したところ、ようやくantonio_inokiが92%になりました。

confidenceは選ばれた候補だけの確率ではなく、Choiceの確率分布を1つの値にまとめたものです。どちらの候補に何%を割り振ったかは、両方のprobabilitiesを見るとわかります。公式のConfidenceの説明

表は今回の実行結果です。同じ入力でも、実行ごとに確率が少し変わることがありました。

公式Python SDKでも聞いてみる

Elixir版と同じ質問・選択肢・4つのStateを、今度はTypeSafe AI公式のPython SDKで評価しました。APIキーは同じTYPESAFE_API_KEYを使います。Pythonのプロジェクトではuv add typesafe-sdkで依存関係を追加しました。

from typesafe_sdk import Choice, TypeSafeClient

questions = {
    "ai_identity": Choice(
        instructions="この文章の書き手は、ここでの「AI」をどちらの意味で使っていますか?",
        criteria={
            "artificial_intelligence": "人工知能(Artificial Intelligence)",
            "antonio_inoki": "アントニオ猪木(Antonio Inoki)。1943年2月20日、鶴見に生まれし一人の漢姓名猪木寛至、闘魂の火種。",
        },
    )
}

examples = [
    ("技術の文脈", "AIモデルに文章を入力し、分類結果をJSONで受け取って、アプリケーションの処理を分岐する。"),
    ("闘魂の文脈", "AIは私とリングに上がる世界最強のタッグパートナー。ストロングスタイルで闘魂を注入する。"),
    ("プロレス史の文脈", "日本プロレス時代、AIはジャイアント馬場と組んでBI砲と呼ばれ、インターナショナル・タッグ王座を獲得した。"),
    ("文脈なし", "AIが必要だ。"),
]

with TypeSafeClient(model="jev-latest") as client:
    for label, state in examples:
        answer = client.system_one(state=state, questions=questions).answers["ai_identity"]
        print(label)
        print("choice:", answer.choice)
        print("probabilities:", answer.probabilities)
        print("confidence:", answer.confidence)

ai_identity.pyとして保存し、uv run ai_identity.pyで実行しました。

State choice P(Artificial Intelligence) P(Antonio Inoki) confidence
技術の文脈 artificial_intelligence 1.00 0.00 1.00
闘魂の文脈 artificial_intelligence 0.89 0.11 0.78
プロレス史の文脈 antonio_inoki 0.06 0.94 0.89
文脈なし artificial_intelligence 1.00 0.00 0.99

4件ともElixir版と同じ候補が選ばれました。数値もだいたい同じです。完全には一致しませんが、おそらく実行のたびに多少揺れるのでしょう。少なくともこの実験では、BI砲を出すとPythonから聞いても「AI = Antonio Inoki」になりました。

おわりに

Jevにとって「闘魂」は比喩にもなります。しかし「BI砲」はプロレス史の文脈でした。AIをアントニオ猪木にするには、気合いだけでなく、判断材料をリングに上げる必要があるようです。


編集後記

Jevの名前の由来もおもしろい。TypeSafe AIの説明によると、「System One」はダニエル・カーネマンの『ファスト&スロー』に着想を得ています。人間の素早く直感的な「システム1」と、時間をかけて熟考する「システム2」の対比です。Jevは、その「速い判断」をソフトウェアの中で使えるようにするモデル、というわけです。

一方、「Jev」は経済学者ウィリアム・スタンレー・ジェヴォンズから。石炭を使う技術の効率が上がっても、用途が広がれば石炭の消費はかえって増えうる、というジェヴォンズのパラドックスで知られます。TypeSafe AIは、AIによる判断も安く効率的になれば、使い道が広がると考えて、この名前を付けたそうです。

石炭と聞くと、旧産炭地の飯塚を思い出します。以前、飯塚市ブロックチェーン推進宣言の話題につなげて「飯塚は石炭が掘れたのだから、ビットコインも掘れます!」と言ったことがありました。石炭からブロックチェーン、今度はJevへ。まだ鉱脈が続いている気がします。掘りすぎなのかもしれません。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?