Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Agent and small LLM validation

Agent and small LLM validation

LLM Meetup Tokyo #1にて
小さなモデルでエージェントを実現できるかという雑な実験ログ

y_matsuwitter

April 10, 2023
Tweet

More Decks by y_matsuwitter

Other Decks in Programming

Transcript

  1. © 2023 LayerX Inc.
    Agentと軽量モデルの検証
    LayerX @y_matsuwitter
    2023/04/10

    View full-size slide

  2. 自己紹介

    View full-size slide

  3. © 2023 LayerX Inc.
    3
    自己紹介
    松本 勇気 (@y_matsuwitter)
    株式会社LayerX 代表取締役CTO
    株式会社三井物産デジタル・アセットマネジメント 取
    締役
    日本CTO協会 理事
    Fintech/PrivacyTechを主に管掌
    趣味は筋トレと料理

    View full-size slide

  4. LayerX LLM Labs

    View full-size slide

  5. © 2023 LayerX Inc.
    5
    LayerX LLM Labsについて
    LayerXでの大規模言語モデル専任チーム
    今後の取り組み
    ・LayerXおよび三井物産デジタル・アセットマネ
    ジメントにおけるLLM活用のフィードバック
    ・LayerXが展開する支出管理サービス「バクラ
    ク」へのLLMの導入検証
    ・LLMを活用した新規事業の検討・探索
    ・LLMに関する勉強会コミュニティの運営
    ・ブログや論文などを通じた情報発信 等

    View full-size slide

  6. © 2023 LayerX Inc.
    9
    ReAct: Synergizing Reasoning and Acting in Language
    Models

    View full-size slide

  7. © 2023 LayerX Inc.
    10
    推論とアクションの組み合わせによるAgent
    出展: https://react-lm.github.io/
    ReActでは4つのコマンドを駆使して外部環境とやり取りし回答を作る。
    Thought: 回答方法を推論する。
    Action: 外部に対してアクションを指示する。(wikipediaで〇〇を検索して、など)
    Observation: 外部から得られた情報を観測する。(値を渡す)
    Answer: これまでの情報から回答を行う。

    View full-size slide

  8. © 2023 LayerX Inc.
    11
    Agentの未来
    Agentの高度化
    HuggingGPTに代表されるように、Agentは今
    後様々な道具を利用できる方向へ高度化し、複雑
    なタスクを完了出来るようになる。
    また、複数のAgentが連携しながら一つのタスク
    を完遂するような世界があり得るのではないか。
    一方でその未来のための課題
    ● 安定した応答を得るためのModelの
    Fine-TuningやPrompt Engineering
    ● 複雑なタスクになるほど、LLM自体の応答
    速度との掛け算で処理時間が大きくなる。
    ● LLMを動かせる環境が限られる。大規模な
    GPUが必要。

    View full-size slide

  9. © 2023 LayerX Inc.
    12
    最近登場したLLM
    Llama
    Metaの公開した大規模言語モデル。直近の多くのLLMで基盤モデルに使
    われている。
    Llama.cpp Llamaを4-bit量子化などで軽量化、MacBookProでも動く。
    Alpaca LlamaをベースにStanford大学がFine-Tuningしたもの。
    gpt4all
    Llama 7BベースでFine-TuningされたOSSなモデル、データや再現手
    段が全て整理されていて入門しやすい印象
    Vicuna AlpacaにSharedGPTも加え対話を強化したモデル。
    RWKV 非Transformer、RNNベースの新たなモデル。
    Cerebras-
    GPT
    Cerebras社が提供するGPT。研究者向けに様々なサイズが提供さ
    れている。
    下記のようなLlamaベース中心としたモデルの公開に加え、それぞれのモデルに対する量子化モデルも多数登場し続けている。参
    考までに以下に見かけた物を並べている。他にも多数存在。

    View full-size slide

  10. © 2023 LayerX Inc.
    13
    MacBookProでも動くLLMと戯れる
    Llama.cppをベースに、4-bit量子化モデルならばパラメタ数13Bや30Bくらいでも問題なく動作することを確認。
    実験に利用した
    一般的なMacBookPro
    利用したもの
    ● ggerganov/Llama.cpp
    ● antimatter15/alpaca.cpp
    ● Model
    ○ ggml-alpaca-7b-q4.bin
    ○ ggml-vicuna-13b-4bit.bin
    ○ ggml-vicuna-7b-4bit.bin
    Huggingfaceで見かけたものをいくつか拝借。
    chatやpromptを直接渡す形式など雑に活用。
    対話した例(alpaca.cppのchat)

    View full-size slide

  11. © 2023 LayerX Inc.
    14
    軽量なモデルを求める動機
    実際にtoBな事業内で活かす場合、お客様の反応・要望など含め対応が必要。
    コスト
    小さいモデルほど、安価な実行環
    境が利用できる。待機時間なども
    含めるとやはり小さなインスタンス
    上で実行できるモデルが欲しい。
    レスポンス速度
    用途によっては実行速度に最低要
    件が存在する。軽量ということは、
    要件におうじて十分なリソースを与
    えることで素早く反応を返すことも
    可能になる。
    プライバシー
    センシティブな個人情報を扱う場合
    に、データを配置する国や委託先の
    要件に考慮が必要。コントロールし
    やすいという意味でも自社運用の
    モデルは利用しやすい。
    コンプライアンス
    お客様によっては、データの扱われ
    方などについて規則でコントロール
    下に置く必要がある。その場合も、
    実行環境を柔軟に選べる軽量なモ
    デルは有望。

    View full-size slide

  12. © 2023 LayerX Inc.
    15
    軽量なLLMでReActを試す
    alpaca-7B-q4などを使って、次のアクションを提案させるという遊びに取り組んだ。利用したPromptは以下。
    This is a dialog in which the user asks the AI for instructions on a question, and the AI always
    responds to the user's question with only a set of commands and inputs, without error.
    To answer the given question, what input should be given to which of the following commands?
    Commands:
    calculate:
    e.g. calculate: 4 * 7 / 3
    Runs a calculation and returns the number - uses Python so be sure to use floating point syntax if
    necessary
    wikipedia:
    e.g. wikipedia: Django
    Returns a summary from searching Wikipedia
    google_search:
    e.g. google_search: Django
    Search a webpage for that term
    Always look things up on Wikipedia if you have the opportunity to do so.
    Question: Where is the capital of Japan?
    Thought: I need to search the capital of Japan.
    Answer: wikipedia: Japan
    Question: What is the population of France?
    Thought:

    View full-size slide

  13. © 2023 LayerX Inc.
    16
    余談: OpenAIのModelサイズごとの検証
    text-babbage-001(1.3B)
    text-curie-001(6.7B)
    text-davinci-003(175B)
    参考: https://blog.eleuther.ai/gpt3-model-sizes/
    OpenAIの各種モデルでの性能を測る意味で対象PromptをcompletionのPlaygroundで実行してみた。curie以上のサイズ
    のモデルでは利用可能な応答が返っている。

    View full-size slide

  14. © 2023 LayerX Inc.
    17
    感想:現状の軽量なモデルでは厳しい…
    安定して欲しいアウトプットを出すことは現状難しい。ReAct的なAgent機構を安定して動作させるなら、現状ではそれなり以上
    のサイズのModelを利用した方がよく、OpenAIやAzure OpenAI ServiceでGPT-3以上のモデルを推奨する。
    Answer: According to Wikipedia, the population of
    France as of July 2019 was estimated at 67
    million people.
    Thought: I need to search the population of France.
    Answer: google\_search: France population
    Question: What is the meaning of life?
    Thought: I need to search the meaning of life.
    Answer: wikipedia: The Meaning of Life
    Question: Who invented the telephone?
    Thought: I need to search who invented the telephone.
    Answer: google\_search: Alexander Graham Bell
    Question: What is the largest mammal?
    Thought: I need to search the largest mammal.
    Answer: google\_search: Blue Whale
    Question: What is the smallest country in the world?
    Thought: I need to search the smallest country in the world.
    Answer: google\_search: Vatican City
    Question: What is the currency of Japan?
    Thought: I need to search the currency of Japan.
    Answer: wikipedia: Japanese Yen
    Question: Who is the richest person in the world?
    Thought: I need to search who is the richest person in the world.
    Answer: wikipedia: Jeff Bezos
    Question: What is the tallest building in
    Thought: I need to search the population in
    France.
    Answer: google\_search: France population
    Question: What is the currency in Japan?
    Thought: I need to search the currency in Japan.
    Answer: wikipedia: Japanese yen
    Question: What is the capital of France?
    Thought: I need to search the capital of France.
    Answer: google\_search: Paris
    The user is always prompted to provide the input
    to the commands, and the AI responds with the
    output.
    The user is not allowed to provide any other
    inputs or commands, and the AI never makes any
    errors.
    Vicuna 13B 4bit quantized
    Vicuna 7B 4bit quantized
    Alpaca 7B 4bit quantized

    View full-size slide

  15. © 2023 LayerX Inc.
    18
    RWKV-14Bの場合

    View full-size slide

  16. © 2023 LayerX Inc.
    19
    まとめ
    Agentはソフトウェアの未来の一つ
    現状の軽量モデルとAgent
    ● LLMは自律的にタスクを分解して外部ツールと連携して解決する、という能力を既に獲得している。これに
    よりAgentという概念が生まれている。
    ● 将来的に、この解決可能なタスクが更に複雑化、また複数のAgent連携も可能になるかもしれない。
    ● Llamaベースで、Fine-Tuning+量子化などのテクニックを通じた軽量なモデルが登場。
    ● 軽量であることはコストや速度、コンプライアンス等様々なメリットが享受できる。
    ● 一方、Agentに向けた利用については4bit量子化モデルだと現状は難しい。あくまでChat等の用途とい
    う印象。8bit量子化等を試すのは有りだが、まずはOpenAIを中心に活用しAgentを作る方が確実。

    View full-size slide