目次
TaskWeaver のコア アーキテクチャを明らかにする
TaskWeaver の特定のプロセス
ホームページ テクノロジー周辺機器 AI TaskWeaver: データ分析と業界のカスタマイズを容易にして優れたエージェント ソリューションを構築するオープン ソース フレームワーク

TaskWeaver: データ分析と業界のカスタマイズを容易にして優れたエージェント ソリューションを構築するオープン ソース フレームワーク

Jan 17, 2024 am 08:36 AM
データ 電車

データ分析は常に現代社会において重要なツールであり、本質を深く理解し、パターンを発見し、意思決定を導くのに役立ちます。ただし、データ分析プロセスは複雑で時間がかかることが多いため、データと直接対話できるインテリジェントなアシスタントが期待されています。大規模言語モデル (LLM) の発展により、仮想アシスタントや Copilot などのインテリジェント エージェントが次々に登場し、自然言語の理解と生成におけるパフォーマンスは驚異的です。しかし、残念なことに、既存のエージェント フレームワークは、複雑なデータ構造 (DataFrame、ndarray など) の処理と、まさにデータ分析や専門分野における中心的な要件であるドメイン知識の導入において依然として困難に直面しています。

タスク実行時の音声アシスタントのボトルネック問題をより適切に解決するために、Microsoft は TaskWeaver と呼ばれるエージェント フレームワークを立ち上げました。このフレームワークはコードファーストであり、複数のデータ構造と動的なプラグインの選択をサポートしながら、ユーザーの自然言語リクエストを実行可能なコードにインテリジェントに変換できます。さらに、TaskWeaver は、大規模な言語モデルの可能性を最大限に活用して、さまざまな分野の計画プロセスに従って専門的に適応させることもできます。 TaskWeaver はオープンソース フレームワークとして、特定の分野の知識を組み込むことができるカスタマイズ可能なサンプルとプラグインを提供し、ユーザーがパーソナライズされた仮想アシスタントを簡単に作成できるようにします。 TaskWeaver の発売により、音声アシスタントのインテリジェンス レベルが効果的に向上し、パーソナライズされた仮想アシスタントに対するユーザーの高まるニーズに応えます。

TaskWeaver: データ分析と業界のカスタマイズを容易にして優れたエージェント ソリューションを構築するオープン ソース フレームワーク

  • 論文: TaskWeaver: コードファースト エージェント フレームワーク
  • 論文のアドレス: https ://export.arxiv.org/abs/2311.17541

TaskWeaver プロジェクトは GitHub でオープンソース化されており、リリース当日に GitHub トレンド リストに掲載されました。現在、このプロジェクトは 29,000 個のスターを獲得しており、良い反響を得ています。また、SAPデータ分析にTaskWeaverを活用するなど、LinkedInなどのソーシャルプラットフォームでも実践事例がいくつかあります。これらのケースは、TaskWeaver の有用性と価値を示しています。

TaskWeaver: データ分析と業界のカスタマイズを容易にして優れたエージェント ソリューションを構築するオープン ソース フレームワーク


  • #プロジェクト ホームページ: https://microsoft.github.io/TaskWeaver/
  • プロジェクト アドレス: https://github.com/microsoft/TaskWeaver
##ストーリーの例

販売データに隠された秘密の追跡

Xiaoya はビジネス アナリストであり、彼女の仕事の 1 つは異常を探すことです。最近の販売データを分析し、それらの異常に基づいて企業が販売戦略を調整できるようにします。すべての販売データは SQL データベースに安全に保存されます。彼女は、AI アシスタントとの自然言語コミュニケーションを通じて、データを簡単に抽出して分析できるようにしたいと考えています。特に重要なのは、販売の世界では異常が独特であるという事実であるため、彼女は、AI アシスタントがカスタマイズされた異常検出アルゴリズムを使用してこの問題を解決できることを望んでいます。以下は、Xiaoya と AI アシスタントの間のチャット記録 (図 1) であり、両者の間のやり取りを示しています。 Xiaoya: こんにちは。データベースから売上データを抽出して分析するのを手伝ってもらいたいのですが。 AI アシスタント: わかりました。すぐにデータベースから対応するデータを抽出します。抽出したデータは後ほど確認のため提示させていただきます。 シャオヤ:ありがとうございます。 (しばらくして) AIアシスタント:データベースから売上データを抽出しましたが、データの概要は以下の通りですのでご確認ください。 (AIアシスタントが表示するデータの概要) Xiaoya: データは良好のようです。異常の検出と分析を続けてください。 AI アシスタント: 分かりました。カスタム異常検出アルゴリズムを使用して分析を実行し、できるだけ早く直感的な視覚化を示します。 (しばらくして) AI アシスタント: 分析が完了しました。次の視覚化結果をご覧ください。 (AI アシスタントが結果を視覚的に表示) シャオヤ: ご協力ありがとうございました!これらの結果は私にとって非常に貴重です。 AI アシスタント: お手伝いさせていただきます。さらにご質問がある場合、またはさらなる分析が必要な場合は、お気軽にお知らせください。 シャオヤ: もちろん、サポートに感謝します。

TaskWeaver: データ分析と業界のカスタマイズを容易にして優れたエージェント ソリューションを構築するオープン ソース フレームワーク#図 1. ストーリーの例での会話の記録

エージェント フレームワークに必要なスキル?

上記の Xiaoya のストーリーを通じて、エージェント フレームワークに必要ないくつかのコア機能を整理しました。

1. プラグインのサポート: 上記のストーリーでは、エージェントはデータベースからデータを取得し、指定された異常検出アルゴリズムを使用する必要があります。これらのタスクを実行するには、スマート アシスタントが「query_database」プラグインや「anomaly_detection」プラグインなどのカスタム プラグインを定義して呼び出すことができる必要があります。

2. 豊富なデータ構造のサポート: エージェントは、配列、行列、テーブル データなどの複雑なデータ構造を処理する必要があります。 、したがって、予測、クラスタリングなどの高度なデータ処理をスムーズに実行できます。さらに、このデータは異なるプラグイン間でシームレスに受け渡される必要があります。ただし、既存のエージェント フレームワークのほとんどは、データ分析の中間結果を Prompt でテキストに変換するか、最初にローカル ファイルとして保存し、必要に応じて読み取ります。ただし、これらの方法ではエラーが発生したり、プロンプトの単語数の制限を超えたりする可能性があります。

3. ステートフル実行: エージェントは多くの場合、複数ラウンドの反復でユーザーと対話し、以下に基づいてコードを生成して実行する必要があります。ユーザー入力です。したがって、これらのコードの実行状態は、セッションが終了するまでセッション全体にわたって保存される必要があります。

4. まず理由を考えてから行動する (ReAct) : エージェントは ReAct の能力を備えている必要があります。つまり、まず理由を観察し、これは、不確実性が存在する一部のシナリオでは非常に必要です。たとえば、上記の例では、通常、データベース内のデータ スキーマ (スキーマ) が多様であるため、エージェントはまずデータ スキーマ情報を取得し、どの列が適切であるかを理解し (ユーザーに確認し)、次に対応する列を確認する必要があります。異常検出アルゴリズムに入力される名前にすることができます。

5. 任意のコードの生成: 事前定義されたプラグインではユーザーのリクエストを満たすことができない場合があり、エージェントはそれを実行できる必要があります。ユーザーの一時的なニーズに対処するためのコードを生成します。上記の例では、エージェントは検出された異常を視覚化するコードを生成する必要がありますが、このプロセスはプラグインの助けを借りずに実現されます。

6. ドメイン知識の統合: エージェントは、特定の分野の知識を統合するための体系的なソリューションを提供する必要があります。これにより、LLM はより適切な計画を立て、ツールを正確に呼び出すことができるようになり、特に業界に合わせたシナリオで信頼性の高い結果が得られます。

TaskWeaver のコア アーキテクチャを明らかにする

図 2 は、TaskWeaver の全体的なアーキテクチャ (プランナー、コード インタープリター インタープリター)、およびメモリ モジュールを示しています。 (メモリ)。

プランナーはシステムの頭脳のようなもので、次の 2 つの主要な役割があります: 1) 計画を立てる、つまりユーザーのニーズをサブタスクに分割し、これらのサブタスクを 1 つずつ送信します。コードインタープリタ、およびプラン実行プロセス全体で必要に応じてプランを自己調整します。 2) ユーザーに応答し、コードインタープリタのフィードバック結果をユーザーが理解しやすい回答に変換し、それをユーザーに送信します。ユーザー。

コード インタープリターは、主に 2 つのコンポーネントで構成されます。コード ジェネレーター (コード ジェネレーター) は、プランナーによって送信されたサブタスクを受け取り、既存の利用可能なプラグインおよびドメイン固有のタスクと組み合わせられます。対応するコード ブロックを生成するため、コード エグゼキューター (Code Executor) は、生成されたコードを実行し、セッション全体で実行状態を維持する責任を負います。このため、複雑なデータ構造は、プロンプトやファイル システムを経由せずにメモリ内で渡すことができます。これは、Jupyter Notebook での Python プログラミングに似ており、ユーザーがセルにコードのスニペットを入力すると、プログラムの内部状態が逐次実行中に保存され、後続のプロセスで参照できます。実装に関しては、各セッションで、コード実行プログラムはコードを実行するための独立した Python プロセスを持ち、同時に複数のユーザーをサポートします。

メモリ モジュールは主に、実行結果など、システム全体の動作中に役立つ情報を保存し、さまざまなモジュールによって書き込みおよび読み取りが可能です。短期記憶には主に、現在のセッションにおけるユーザーとTaskWeaver間の通信記録や、モジュール間の通信記録が含まれます。長期記憶には、ユーザーが事前にカスタマイズできるドメイン知識や、対話プロセス中に要約されたいくつかの経験などが含まれます。

TaskWeaver: データ分析と業界のカスタマイズを容易にして優れたエージェント ソリューションを構築するオープン ソース フレームワーク

#図 2. TaskWeaver の全体的なアーキテクチャ図

基本的なアーキテクチャに加えて、TaskWeaver には多くのユニークなデザインもあります。たとえば、セッション圧縮によりテキスト サイズが削減され、より多くの会話ターンが可能になり、動的なプラグイン選択によりユーザーのリクエストに基づいて適切なプラグインが自動的に選択されるため、より多くのカスタム プラグインを統合できるようになります。さらに、TaskWeaver は、ユーザーが使用中にコマンドを入力することによってトリガーできるエクスペリエンス保存機能もサポートしており、現在のセッションでのユーザーのエクスペリエンスと教訓を要約し、次のセッションでの間違いの繰り返しを回避し、真のパーソナライゼーションを実現します。 TaskWeaverはセキュリティ面でも慎重に設計されており、例えばPythonモジュールのホワイトリストをユーザーが指定でき、生成されたコードがホワイトリスト外のモジュールを参照した場合にはエラーが発生するため、セキュリティリスクが軽減されます。

TaskWeaver の特定のプロセス

図 3 は、前述のサンプル タスクを完了する TaskWeaver のプロセスの一部を示しています。

まず、プランナーはユーザーの入力を受け取り、各モジュールの機能説明と計画例に基づいて具体的な計画を生成します。この計画には 4 つのサブタスクが含まれており、その 1 つ目はデータベースからデータを抽出し、データ スキーマを記述することです。

コード ジェネレーターは、機能の説明と関連するすべてのプラグインの定義に基づいてコードを生成します。このコードは、sql_pull_data プラグインを呼び出してデータを DataFrame に保存し、データ スキーマの説明を提供します。

最後に、生成されたコードは実行のためにコード エグゼキューターに送信され、完了した結果はプランナーに送信されて、プランを更新するか、次のサブタスクに進みます。図の実行結果は、DataFrame に 2 つの列 (日付と値) があることを示しています。プランナは、これらの列が正しいかどうかをユーザーにさらに確認することも、anomaly_detection プラグインを呼び出す次のステップに直接進むこともできます。

TaskWeaver: データ分析と業界のカスタマイズを容易にして優れたエージェント ソリューションを構築するオープン ソース フレームワーク

図 3. TaskWeaver の内部ワークフロー

ドメインの知識を TaskWeaver に注入するにはどうすればよいでしょうか?

大規模なモデル アプリケーションにおいて、ドメイン固有の知識を統合する主な目的は、業界のカスタマイズにおける LLM の汎化パフォーマンスを向上させることです。 TaskWeaver は、ドメインの知識をモデルに注入する 3 つの方法を提供します。

  • プラグインを使用したカスタマイズ: ユーザーはカスタマイズ可能 ドメインの統合プラグインの形での知識。プラグインには、API の呼び出し、特定のデータベースからのデータの取得、特定の機械学習アルゴリズムやモデルの実行など、さまざまな形式があります。プラグインのカスタマイズは比較的簡単で、プラグインに関する基本情報 (プラグイン名、関数の説明、入力パラメータ、戻り値など) と Python 実装を指定するだけです。
  • 例を使用したカスタマイズ: TaskWeaver はユーザーに体系的なインターフェイス (YAML 形式) も提供しますLLM にユーザーのリクエストに応答する方法を教えるため。具体的には、プランナーでの計画と、コードジェネレーターでのコードプログラミングに使用されるサンプルの 2 種類に分類できます。
  • # エクスペリエンスの保存 #: TaskWeaver は、ユーザーが現在のセッション プロセスを要約して保存できるようにサポートします。用語記憶。ユーザーは、自分のドメイン知識を会話として TaskWeaver に「教え」、その会話をエクスペリエンスとして保存できます。その後の使用プロセスでは、エクスペリエンスを動的にロードすることで、専門分野の問題をより適切に完了できます。

#TaskWeaver の使用方法?

TaskWeaver の完全なコードは、GitHub でオープン ソースになりました。現在、コマンド ライン起動、Web サービス、Python ライブラリ形式でのインポートの 3 つのソリューションの使用がサポートされています。簡単なインストールの後、ユーザーは LLM API アドレス、キー、モデル名などのいくつかの主要なパラメーターを構成するだけで、TaskWeaver サービスを簡単に開始できます。

TaskWeaver: データ分析と業界のカスタマイズを容易にして優れたエージェント ソリューションを構築するオープン ソース フレームワーク

#図 4. コマンド ライン起動インターフェイス

TaskWeaver: データ分析と業界のカスタマイズを容易にして優れたエージェント ソリューションを構築するオープン ソース フレームワーク

図5. TaskWeaver の実行例

TaskWeaver は、データ分析と業界のカスタマイズ シナリオのニーズを満たすように設計された新しいエージェント フレームワーク ソリューションです。ユーザー言語をプログラミング言語に変換することで、「データと対話する」ことが夢ではなく現実になります。

以上がTaskWeaver: データ分析と業界のカスタマイズを容易にして優れたエージェント ソリューションを構築するオープン ソース フレームワークの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ddrescue を使用して Linux 上のデータを回復する ddrescue を使用して Linux 上のデータを回復する Mar 20, 2024 pm 01:37 PM

DDREASE は、ハード ドライブ、SSD、RAM ディスク、CD、DVD、USB ストレージ デバイスなどのファイル デバイスまたはブロック デバイスからデータを回復するためのツールです。あるブロック デバイスから別のブロック デバイスにデータをコピーし、破損したデータ ブロックを残して正常なデータ ブロックのみを移動します。 ddreasue は、回復操作中に干渉を必要としないため、完全に自動化された強力な回復ツールです。さらに、ddasue マップ ファイルのおかげでいつでも停止および再開できます。 DDREASE のその他の主要な機能は次のとおりです。 リカバリされたデータは上書きされませんが、反復リカバリの場合にギャップが埋められます。ただし、ツールに明示的に指示されている場合は切り詰めることができます。複数のファイルまたはブロックから単一のファイルにデータを復元します

オープンソース!ゾーイデプスを超えて! DepthFM: 高速かつ正確な単眼深度推定! オープンソース!ゾーイデプスを超えて! DepthFM: 高速かつ正確な単眼深度推定! Apr 03, 2024 pm 12:04 PM

0.この記事は何をするのですか?私たちは、多用途かつ高速な最先端の生成単眼深度推定モデルである DepthFM を提案します。従来の深度推定タスクに加えて、DepthFM は深度修復などの下流タスクでも最先端の機能を実証します。 DepthFM は効率的で、いくつかの推論ステップ内で深度マップを合成できます。この作品について一緒に読みましょう〜 1. 論文情報タイトル: DepthFM: FastMonocularDepthEstimationwithFlowMatching 著者: MingGui、JohannesS.Fischer、UlrichPrestel、PingchuanMa、Dmytr

Google は大喜び: JAX のパフォーマンスが Pytorch や TensorFlow を上回りました! GPU 推論トレーニングの最速の選択肢となる可能性があります Google は大喜び: JAX のパフォーマンスが Pytorch や TensorFlow を上回りました! GPU 推論トレーニングの最速の選択肢となる可能性があります Apr 01, 2024 pm 07:46 PM

Google が推進する JAX のパフォーマンスは、最近のベンチマーク テストで Pytorch や TensorFlow のパフォーマンスを上回り、7 つの指標で 1 位にランクされました。また、テストは最高の JAX パフォーマンスを備えた TPU では行われませんでした。ただし、開発者の間では、依然として Tensorflow よりも Pytorch の方が人気があります。しかし、将来的には、おそらくより大規模なモデルが JAX プラットフォームに基づいてトレーニングされ、実行されるようになるでしょう。モデル 最近、Keras チームは、ネイティブ PyTorch 実装を使用して 3 つのバックエンド (TensorFlow、JAX、PyTorch) をベンチマークし、TensorFlow を使用して Keras2 をベンチマークしました。まず、主流のセットを選択します

こんにちは、電気アトラスです!ボストン・ダイナミクスのロボットが復活、180度の奇妙な動きにマスク氏も恐怖 こんにちは、電気アトラスです!ボストン・ダイナミクスのロボットが復活、180度の奇妙な動きにマスク氏も恐怖 Apr 18, 2024 pm 07:58 PM

Boston Dynamics Atlas は正式に電動ロボットの時代に突入します!昨日、油圧式アトラスが歴史の舞台から「涙ながらに」撤退したばかりですが、今日、ボストン・ダイナミクスは電動式アトラスが稼働することを発表しました。ボストン・ダイナミクス社は商用人型ロボットの分野でテスラ社と競争する決意を持っているようだ。新しいビデオが公開されてから、わずか 10 時間ですでに 100 万人以上が視聴しました。古い人が去り、新しい役割が現れるのは歴史的な必然です。今年が人型ロボットの爆発的な年であることは間違いありません。ネットユーザーは「ロボットの進歩により、今年の開会式は人間のように見え、人間よりもはるかに自由度が高い。しかし、これは本当にホラー映画ではないのか?」とコメントした。ビデオの冒頭では、アトラスは仰向けに見えるように地面に静かに横たわっています。次に続くのは驚くべきことです

iPhoneのセルラーデータインターネット速度が遅い:修正 iPhoneのセルラーデータインターネット速度が遅い:修正 May 03, 2024 pm 09:01 PM

iPhone のモバイル データ接続に遅延や遅い問題が発生していませんか?通常、携帯電話の携帯インターネットの強度は、地域、携帯ネットワークの種類、ローミングの種類などのいくつかの要因によって異なります。より高速で信頼性の高いセルラー インターネット接続を実現するためにできることがいくつかあります。解決策 1 – iPhone を強制的に再起動する 場合によっては、デバイスを強制的に再起動すると、携帯電話接続を含む多くの機能がリセットされるだけです。ステップ 1 – 音量を上げるキーを 1 回押して放します。次に、音量小キーを押して、もう一度放します。ステップ 2 – プロセスの次の部分は、右側のボタンを押し続けることです。 iPhone の再起動が完了するまで待ちます。セルラーデータを有効にし、ネットワーク速度を確認します。もう一度確認してください 修正 2 – データ モードを変更する 5G はより優れたネットワーク速度を提供しますが、信号が弱い場合はより適切に機能します

超知性の生命力が覚醒する!しかし、自己更新 AI の登場により、母親はデータのボトルネックを心配する必要がなくなりました。 超知性の生命力が覚醒する!しかし、自己更新 AI の登場により、母親はデータのボトルネックを心配する必要がなくなりました。 Apr 29, 2024 pm 06:55 PM

世界は狂ったように大きなモデルを構築していますが、インターネット上のデータだけではまったく不十分です。このトレーニング モデルは「ハンガー ゲーム」のようであり、世界中の AI 研究者は、データを貪欲に食べる人たちにどのように餌を与えるかを心配しています。この問題は、マルチモーダル タスクで特に顕著です。何もできなかった当時、中国人民大学学部のスタートアップチームは、独自の新しいモデルを使用して、中国で初めて「モデル生成データフィード自体」を実現しました。さらに、これは理解側と生成側の 2 つの側面からのアプローチであり、両方の側で高品質のマルチモーダルな新しいデータを生成し、モデル自体にデータのフィードバックを提供できます。モデルとは何ですか? Awaker 1.0 は、中関村フォーラムに登場したばかりの大型マルチモーダル モデルです。チームは誰ですか?ソフォンエンジン。人民大学ヒルハウス人工知能大学院の博士課程学生、ガオ・イージャオ氏によって設立されました。

Kuaishou バージョンの Sora「Ke Ling」がテスト用に公開されています。120 秒以上のビデオを生成し、物理学をより深く理解し、複雑な動きを正確にモデル化できます。 Kuaishou バージョンの Sora「Ke Ling」がテスト用に公開されています。120 秒以上のビデオを生成し、物理学をより深く理解し、複雑な動きを正確にモデル化できます。 Jun 11, 2024 am 09:51 AM

何?ズートピアは国産AIによって実現するのか?ビデオとともに公開されたのは、「Keling」と呼ばれる新しい大規模な国産ビデオ生成モデルです。 Sora も同様の技術的ルートを使用し、自社開発の技術革新を多数組み合わせて、大きく合理的な動きをするだけでなく、物理世界の特性をシミュレートし、強力な概念的結合能力と想像力を備えたビデオを制作します。データによると、Keling は、最大 1080p の解像度で 30fps で最大 2 分の超長時間ビデオの生成をサポートし、複数のアスペクト比をサポートします。もう 1 つの重要な点は、Keling は研究所が公開したデモやビデオ結果のデモンストレーションではなく、ショートビデオ分野のリーダーである Kuaishou が立ち上げた製品レベルのアプリケーションであるということです。さらに、主な焦点は実用的であり、白紙小切手を書かず、リリースされたらすぐにオンラインに移行することです。Ke Ling の大型モデルは Kuaiying でリリースされました。

テスラのロボットは工場で働く、マスク氏:手の自由度は今年22に達する! テスラのロボットは工場で働く、マスク氏:手の自由度は今年22に達する! May 06, 2024 pm 04:13 PM

テスラのロボット「オプティマス」の最新映像が公開され、すでに工場内で稼働可能となっている。通常の速度では、バッテリー(テスラの4680バッテリー)を次のように分類します:公式は、20倍の速度でどのように見えるかも公開しました - 小さな「ワークステーション」上で、ピッキング、ピッキング、ピッキング:今回は、それがリリースされたハイライトの1つビデオの内容は、オプティマスが工場内でこの作業を完全に自律的に行​​い、プロセス全体を通じて人間の介入なしに完了するというものです。そして、オプティマスの観点から見ると、自動エラー修正に重点を置いて、曲がったバッテリーを拾い上げたり配置したりすることもできます。オプティマスのハンドについては、NVIDIA の科学者ジム ファン氏が高く評価しました。オプティマスのハンドは、世界の 5 本指ロボットの 1 つです。最も器用。その手は触覚だけではありません

See all articles