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. 3 自己紹介 松本 勇気 (@y_matsuwitter) 株式会社LayerX

    代表取締役CTO 株式会社三井物産デジタル・アセットマネジメント 取 締役 日本CTO協会 理事 Fintech/PrivacyTechを主に管掌 趣味は筋トレと料理
  2. © 2023 LayerX Inc. 5 LayerX LLM Labsについて LayerXでの大規模言語モデル専任チーム 今後の取り組み

    ・LayerXおよび三井物産デジタル・アセットマネ ジメントにおけるLLM活用のフィードバック ・LayerXが展開する支出管理サービス「バクラ ク」へのLLMの導入検証 ・LLMを活用した新規事業の検討・探索 ・LLMに関する勉強会コミュニティの運営 ・ブログや論文などを通じた情報発信 等
  3. © 2023 LayerX Inc. 10 推論とアクションの組み合わせによるAgent 出展: https://react-lm.github.io/ ReActでは4つのコマンドを駆使して外部環境とやり取りし回答を作る。 Thought:

    回答方法を推論する。 Action: 外部に対してアクションを指示する。(wikipediaで〇〇を検索して、など) Observation: 外部から得られた情報を観測する。(値を渡す) Answer: これまでの情報から回答を行う。
  4. © 2023 LayerX Inc. 11 Agentの未来 Agentの高度化 HuggingGPTに代表されるように、Agentは今 後様々な道具を利用できる方向へ高度化し、複雑 なタスクを完了出来るようになる。

    また、複数のAgentが連携しながら一つのタスク を完遂するような世界があり得るのではないか。 一方でその未来のための課題 • 安定した応答を得るためのModelの Fine-TuningやPrompt Engineering • 複雑なタスクになるほど、LLM自体の応答 速度との掛け算で処理時間が大きくなる。 • LLMを動かせる環境が限られる。大規模な GPUが必要。
  5. © 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ベース中心としたモデルの公開に加え、それぞれのモデルに対する量子化モデルも多数登場し続けている。参 考までに以下に見かけた物を並べている。他にも多数存在。
  6. © 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)
  7. © 2023 LayerX Inc. 14 軽量なモデルを求める動機 実際にtoBな事業内で活かす場合、お客様の反応・要望など含め対応が必要。 コスト 小さいモデルほど、安価な実行環 境が利用できる。待機時間なども

    含めるとやはり小さなインスタンス 上で実行できるモデルが欲しい。 レスポンス速度 用途によっては実行速度に最低要 件が存在する。軽量ということは、 要件におうじて十分なリソースを与 えることで素早く反応を返すことも 可能になる。 プライバシー センシティブな個人情報を扱う場合 に、データを配置する国や委託先の 要件に考慮が必要。コントロールし やすいという意味でも自社運用の モデルは利用しやすい。 コンプライアンス お客様によっては、データの扱われ 方などについて規則でコントロール 下に置く必要がある。その場合も、 実行環境を柔軟に選べる軽量なモ デルは有望。
  8. © 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:
  9. © 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以上のサイズ のモデルでは利用可能な応答が返っている。
  10. © 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
  11. © 2023 LayerX Inc. 19 まとめ Agentはソフトウェアの未来の一つ 現状の軽量モデルとAgent • LLMは自律的にタスクを分解して外部ツールと連携して解決する、という能力を既に獲得している。これに

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