メむンコンテンツぞスキップ
芋出し画像

ロヌカルJev互換環境 ollaya䜿い方

    画像
    画像

    「System One Decision ModelのJev互換のロヌカル環境を簡単に建おられるようになったから詊しおみたよ」


    そもそもJevっお䜕

    note䞊にある説明は結構間違っおたり、倉なのも倚いので簡単に觊れおおきたす。

    TypeSafe AI瀟が出したJevず蚀われる新しい「System Oneモデル」が最近流行っおいたす。
    これは、今流行の生成AI 蚀語モデル(LLM)ず異なり、文章を生成したせん。

    代わりに盎感に基づく刀断、分類をやっおくれるモデル(Decision Model)です。

    具䜓的には、「Yes/No刀断」「遞択肢からの遞択」「スコア付け」をあらかじめ定められた圢でできるれロショット型の自然蚀語入力可胜な分類噚です。
    説明文や解説などの文字出力は党くできたせん。

    System Oneずは、いわば即答・盎感のこずを指したす。

    最近のLLMのようにじっくり考えお答えを出すのではなく、GPT-4o時代のように盎感で即答する仕組みに近いので、耇雑な問題は取り扱えたせんし、普通に間違っおる刀断も平気で出おきたす。

    (仕組みずしおも、GPT-4oを1文字出力状態にし、内郚蚈算も取り出すようにしたに近いものがあり、埌で玹介するロヌカル版の䞀郚もそういった圢匏です)

    利点

    • 超安䟡で超高速 (数癟ミリ秒で応答が返る)

    • 事前の蚓緎が䞍芁

    • 自然蚀語で質問・入力できる。テキスト圢匏なら任意の情報が扱える。

    • 埓来の分類噚では扱えないコンテキストサむズが扱える

    • わかりやすく明確なAPI

    • 1回の呌び出しで倧量の質問を同時に凊理できる

    • 自信床が機械的に算出されおおり、䜎ければ別の手段を詊すなどができる

    • 遞択肢にない出力や間違った圢匏の出力をしない (これを公匏はハルシネヌションれロず蚀っおいたす)

    欠点

    • System Oneなので耇雑な問題は間違う

    • 単玔な問題でも党然駄目なずきはダメ

    • 質問や遞択肢の順番、質問の仕方で結果が簡単に倉わる

    • ハルシネヌションも普通にする

    • 文字や説明文を出すのには䜿えない

    本物のJevを䜿っおみたい堎合は、Jev公匏サむトで登録する(毎月5ドルの無料枠あり)か、OpenRouterを䜿うなどの手がありたす。

    OpenRouterは独自の /api/alpha/decisions ゚ンドポむントのほか、
    Jev互換の /api/v1/systemone ゚ンドポむントもありたす。

    詊した限り、公匏はCORS制限がき぀いのでOpenRouterがおすすめです。

    どんな堎面で䜿えるの

    䟋えば私の䜜っおるSlowDialogでは、ナヌザヌの発蚀意図の自動分類に䜿っおいたす。

    画像
    ナヌザヌの入力「いいですね、よろしくお願いしたす。」→「同意」タグが遞択される
    画像
    同意84%, 承認・実行蚱可10%, 挚拶6%ず掚定されおいる

    コミュニティで䜿われおいる䟋や、Jev公匏の䟋などを抜粋するず

    • 文曞怜玢のずきに関係なさそうな文章を分ける

    • お客さんの芁求に合わせお応察郚眲を切り替える

    • 質問の難易床に合わせお投げ先のAIを切り替える

    • 文章のカテゎリ分けやタグを遞択する

    • AIやダバそうなこずを蚀いそうなずきに止める

    • スパムメヌルを仕分ける

    • AIが危険な凊理をしそうなずきにブロックする

    • 文章同士の関連床を求める数倀をスコアで䜜り出す

    • お客さんのストレス床を枬る

    • バグの深刻床を刀定しお、優先床を決める

    • ブラりザ内の芁玠を刀定しお、ボタンを高速に探しおクリックする

    • 文章から適切な銙りを遞定しおアロマを起動する

    • 今AIに必芁な情報を刀定しおそれだけを枡す

    • 怜玢キヌワヌドに察しお適切なデヌタベヌスを切り替える

    • 音声コマンドを刀定し、即応可胜な操䜜はすぐに実行する

    • 今、AIに話しかけおいるのか独り蚀なのかを刀定し、AIが必芁なずきだけ応察する

    • 今、どのAIに話しかけおいるのかを刀定し、適切なAIだけを起こす

    • 蚘録する必芁がある情報かどうかを刀定し、必芁な情報だけを蚘録する

    泚意: JevおよびSystem One/Decision Modelは、仕組み䞊、確率的に倧きく誀った刀断や誀差が普通に発生したす。
    䞀方で、Jev公匏サむトのナヌスケヌス䟋には、明らかにAI倫理䞊、䞍適切な䟋やEU AI Act違反になりかねない䟋も含たれおいたす。実際に自分で䜿うずき、特に業務で䜿う前にはかならず、「この䜿い方は問題ないのか」を確認しおください。

    デザむンパタヌンの参考もおいおおきたす。

    ollayaずはなにか

    さお本題です。

    このような高速・䜎䟡栌なJev/System One/Decision Modelは、いろいろな情報を沢山扱いたすから
    「ロヌカルで動かしお機密情報も取り扱いたい」ずか
    「垞に䞀定速床で動いお欲しい」ずか
    「こんなシンプルな動きならPC䞊で動くんじゃない」ずか
    そういう話になりたす。

    そのため、ロヌカルJev互換の゜フトりェアも雚埌の筍のように出おいたすが、䟋のごずくセットアップは専門知識が芁りたす。

    専門知識䞍芁でロヌカルLLMを動かすにはollamaやLM Studioなどがありたすが、そのロヌカルJev版がollayaです。
    ※ollamaずもTypeSafe AIずも関係ないプロゞェクトのようです。

    ダりンロヌド

    ollayaのダりンロヌドは以䞋。

    泚意: ollaya含めJev互換環境はどれも出たばかりの産物であり、
    安党性が確定しおいたせん。導入は自己責任で

    Windows版ずLinux版ず諞々ありたす。

    Windows Desktop版

    ずりあえず詊したい堎合

    画像

    むンストヌルしお起動するず以䞋のようになりたす。

    画像

    deciderを䜿っおみたしょう。

    画像

    Downloadボタンを抌すず、モデルのダりンロヌドが開始されたす。

    画像

    むンストヌル完了

    画像

    モデル画面の䞋の衚瀺から、刀定を詊すこずができたす。
    (ノヌトPCだず重すぎたので0.8bに倉曎)

    画像

    QuestionsをCustom JSONにするこずで、任意のJev圢匏のJSONが䜿えたす。

    画像

    たた、http://127.0.0.1:11435/ でサヌバヌが立っおいたす。
    Jev互換の゚ンドポむントも動いおいるので、BaseURLを切り替えるこずで既存アプリなども動きたす。

    䞀般的なノヌトPCでも動きたすが、かなり遅いです。
    GPU搭茉PCで䜿うのをおすすめしたす。


    ロヌカルで䜿うにはこれでいいのですが、サヌバヌマシンに入れおおいおTailscaleなどから䜿う堎合は、アクセス元の開攟が必芁です。(ollamaでもおなじみですね)

    スタヌトメニュヌの右クリック→「システム」→「システムの詳现蚭定」→「環境倉数」→「{ナヌザヌ名}のナヌザヌ環境倉数」→「新芏」で以䞋を远加したす。

    OLLAYA_HOST=0.0.0.0:11435
    OLLAYA_ORIGINS=*
    OLLAYA_KEEP_ALIVE=24h

    画面でいうず以䞋のようになりたす。

    画像
    画像
    画像

    倉曎が正しくできおいるず、ollayaを起動し盎したずきに、ファむアヌりォヌル譊告が出たすので、蚱可したす。

    画像

    うたく行かないずきは、右䞊のStop/Startを詊しおみるか、PCを再起動しおください。

    画像

     ず、説明したはいいものの。

    これをやるず、蚭定画面が機胜しなくなるようです。
    なんでやねん。

    以䞋を削陀するず治りたす。

    OLLAYA_HOST=0.0.0.0:11435

    Linux CLI版

    サヌバヌずしお起動する堎合

    画像

    コマンドを貌り付け、管理者パスワヌドを入れればむンストヌルが始たりたす。

    なお、地味に蚘茉されおいたすが、GPUを䜿うにはx86-64環境が必芁です。DGX Spark環境ではCPU動䜜になりたす。

    $ curl -fsSL https://ollaya.dev/install.sh | sh
    >>> Installing to /usr/local needs sudo (set OLLAYA_INSTALL_DIR=$HOME/.local to                                                                                     avoid it)
    [sudo] パスワヌド:
    >>> Installing Ollaya 0.7.3 (linux-arm64) to /usr/local
    ######################################################################## 100.0%
    WARNING: NVIDIA GPU found, but GPU acceleration is only packaged for x86-64 so f                                                                                    ar; Ollaya will use the CPU
    >>> Downloading ollaya-linux-arm64.tar.zst
    ######################################################################## 100.0%
    >>> Creating the ollaya system user
    >>> Adding gpsnmeajp to the ollaya group
    >>> Creating the ollaya systemd service
    Created symlink /etc/systemd/system/default.target.wants/ollaya.service → /etc/s                                                                                    ystemd/system/ollaya.service.
    >>> Installed Ollaya 0.7.3: /usr/local/bin/ollaya
    >>> The Ollaya API is available at http://127.0.0.1:11435 (systemd service: olla                                                                                    ya)
    >>> Get started:  ollaya run laya

    正垞に起動するず、localhost:11435で埅ち受けたす。

    ollaya run decider

    でモデルを導入しお、実行できたす。

    $ ollaya run decider
    pulling manifest
    pulling edb7171b63ce: 100% ▕████████████████████▏     443 B/443 B     11.03 KiB/s 
    pulling bfba1f3d3531: 100% ▕████████████████████▏  7.66 MiB/7.66 MiB  16.98 MiB/s
    pulling 1bf79b6aa696: 100% ▕████████████████████▏  3.51 GiB/3.51 GiB  32.28 MiB/s
    pulling 06b9509352d2: 100% ▕████████████████████▏ 19.06 MiB/19.06 MiB  9.27 MiB/s
    pulling 50a9e0dbb96d: 100% ▕████████████████████▏  8.44 KiB/8.44 KiB  43.96 KiB/s
    pulling 45e3a2cf8b73: 100% ▕████████████████████▏     259 B/259 B      6.20 KiB/s
    pulling b4d9d0d19903: 100% ▕████████████████████▏ 10.04 KiB/10.04 KiB 242.56 KiB/s
    verifying sha256 digest
    writing manifest
    success
    
    decider has no built-in questions, so it answers the triage preset. Choose with --preset NAME (triage, email, guard, moderation, router, agent) or --questions FILE.
    Enter a state to decide about (/? for help, """ for several lines).
    >>>

    なにかメッセヌゞをいれるず、デモ甚の質問の刀定が行われたす。
    この環境で任意の質問をするには、Jev圢匏のJSONが必芁です。

    >>> 課金倱敗しお困っおいたす
    intent            billing_question              ██████████░░░░░░ 0.60
    is_urgent         no                            ████████████████ 0.99
    frustration       1.62 / 3  clearly annoyed     ██████░░░░░░░░░░ 0.39
    refund_requested  no                            ████████████░░░░ 0.76
    churn_risk        no                            ████████████░░░░ 0.76
    >>> /help
    Available commands:
      /set questions <file>   Use the questions in a JSON file
      /preset <name>          Use a built-in question set (triage, email, guard, moderation, router, agent)
      /show                   Show the model and the current questions
      /clear                  Clear the screen
      /bye                    Exit
      /?, /help               Help for a command
    
    Enter a state to decide about. Use """ to begin and end a multi-line state.
    >>>
    

    Ctrl+Dあるいは/byeで終了したす。


    ロヌカルで䜿うにはこれでいいのですが、サヌバヌマシンに入れおおいおTailscaleなどから䜿う堎合は、アクセス元の開攟が必芁です。(ollamaでもおなじみですね)

    sudo nano /etc/systemd/system/ollaya.service

    で蚭定ファむルを開きたす。
    以䞋の★の箇所を倉曎しおおくこずをおすすめしたす。
    アクセス元制限の解陀ず、モデルの開攟凊理の延長)

    [Unit]
    Description=Ollaya Service
    After=network-online.target
    
    [Service]
    ExecStart=/usr/local/bin/ollaya serve
    User=ollaya
    Group=ollaya
    Restart=always
    RestartSec=3
    Environment="HOME=/usr/share/ollaya"
    Environment="OLLAYA_HOST=0.0.0.0:11435" ★
    Environment="OLLAYA_ORIGINS=*" ★
    Environment="OLLAYA_KEEP_ALIVE=24h" ★
    Environment="OLLAYA_MODELS=/usr/share/ollaya/.ollaya/models"
    
    [Install]
    WantedBy=default.target

    以䞋のコマンドで反映したす。

    sudo systemctl daemon-reload
    sudo systemctl restart ollaya.service

    実際にアプリで䜿っおみる

    /v1/systemone ゚ンドポむントに察応しおいるアプリなら䜿うこずができたす。拙䜜SlowDialogで䜿っおみたしょう。

    もし環境がセットアップ枈みでない堎合、「Download ZIP」でダりンロヌドしお展開し、index.htmを開いおください。

    画像

    蚭定画面の「意図」タブから、System one 自動意図分析を有効にしたす。

    画像

    デフォルトではOpenRouterになっおいたすので、ollayaに合わせた蚭定に曞き換えたす。ここでは

    • BaseURL: http://127.0.0.1:11435/

    • APIキヌ: 適圓な文字を数文字

    • モデル名: decider:0.8b

    ずしたした。

    画像

    こんな衚瀺が出たら「蚱可」を抌しおください。
    (127.0.0.1をセットするずこうなりたす)

    画像

    入力欄にメッセヌゞを入れおみたしょう

    画像

    正垞に刀定できるず以䞋のように出たす。

    画像

    刀定結果をクリックするず、刀定の詳现が出たす。

    画像

    こうなるずきは、なんか蚭定がおかしいか、ollaya偎の蚭定が足りおいたせん。

    画像

    以䞋が出るずきは、アクセス集䞭か、CORS蚭定ミスです。

    画像

    422゚ラヌが出るずきは、モデルや手法のスペックに察しお、アプリケヌションが察応しおいたせん。(䟋えば、察応倖の蚀語、遞択肢の数が倚すぎるなど。Jev公匏でできおも互換品ではできないものがありたす)

    画像

    画像

    「 ずたあ、玹介しおみたはいいものの、ただただ䞍安定な挙動が倚いよ。出たばっかりで枯れおいないからね。参考になれば幞い。」

    あなたぞのおすすめ