Promptoでリサーチを効率化しよう
Promptoは研究者が複数の大規模言語モデルを使うのを簡単にしてくれるよ。
Ryan Sze-Yin Chan, Federico Nanni, Edwin Brown, Ed Chapman, Angus R. Williams, Jonathan Bright, Evelina Gabasova
― 1 分で読む
目次
大規模言語モデル(LLM)の登場はワクワクする可能性を開いたけど、それを扱うのは大変なこともあるよね。多くのLLMはそれぞれ違うプラットフォームにホストされてて、インタラクションの仕方もバラバラなんだ。だから、研究者は各モデルごとに別々のコードを書かなきゃいけなくて、作業が遅くて複雑になってしまうんだよね。だからこの問題を解決するために「prompto」っていう新しいオープンソースのPythonライブラリを紹介するよ。このライブラリを使えば、複数のLLMに同時にリクエストを送ることができて、作業が早く効率的になるんだ。
なぜプロンプトが重要なのか
LLMはその進んだ技術のおかげで、さまざまな言語タスクを特に得意にこなせるんだ。ChatGPTみたいなツールは使いやすいけど、研究者は一般的にモデルとのインタラクションにもっとコントロールを持ちたいと思ってるんだ。タスクを自動化したり、パラメータを設定したり、実験を行ったりしたいんだよね。でも、LLMをAPIを通じて使うといくつかの問題が出てくることがある。モデルは時間とともに更新されることがあって、過去の実験の結果を再現するのが難しいんだ。さらに、各プラットフォームには、一分間にどれだけリクエストを送れるかのルールが違ったりすることもあるんだ。
これらの問題を解決するために、研究者は自分のプロンプトやパラメータ、コードを正確に共有することが推奨されてる。このオープンさがあれば、他の人が実験を繰り返すことができるんだ。一部の研究者は、自分のAPIエンドポイントを作ってテストや実験を行えるようにしている完全アクセスのオープンLLMを好むんだ。
複数のAPIを使うことの挑戦
研究者が異なるモデルを比較したいとき、通常はそれぞれのモデルのために別々のコードを書かなきゃいけないんだ。これってかなりの時間と労力がかかるんだよね。また、異なるAPIには一分間に送れるリクエストの制限が違うことが多い。例えば、あるAPIは100リクエストを許可しているのに対して、別のAPIは500リクエストを許可していることもある。これが、複数のモデルを同時に評価したい研究者にはさらに複雑にしてしまうんだ。
プロンプトの紹介
そんな中、私たちは「prompto」を開発したんだ。このライブラリは、ユーザーが複数のLLMと同時にやり取りできるように設計されているんだよ。非同期プログラミングを使用することで、promptoは研究者が様々なAPIにいくつものリクエストを同時に送れるようにしてるんだ。これにより、一つのリクエストが終わるのを待たずに次のリクエストを送れるから、全体のプロセスがずっと効率的になるんだ。
promptoはOpenAIやGoogleなどの主要なLLMをサポートしていて、自分でホストしているモデルにも対応してるよ。このライブラリは柔軟性があって、新しいAPIやモデルが出てきたときにも簡単に拡張できるんだ。
プロンプトの使い方
promptoの使い方は簡単だよ。研究者はプロンプトや問い合わせたいモデルに関する必要な情報を含むJSON Lines(JSONL)ファイルを作成するんだ。このファイルの各行が特定のモデルへの指示になるんだ。必要な情報にはプロンプトのテキスト、API名、モデル名が含まれるんだ。オプションのパラメータも含めて、プロンプトの処理の仕方を調整することもできるよ。
研究者がpromptoを使って実験を実行すると、ライブラリはJSONLファイルを探して、各プロンプトを処理して、指定されたモデルにリクエストを送るんだ。結果は別の出力フォルダに保存されるから、異なるモデルの応答を簡単に比較できるんだよ。
実験のセットアップ
promptoで実験をセットアップするには、プロンプトを含む入力ファイル、結果用の出力ファイル、マルチモーダルタスクに必要な追加ファイル用のメディアフォルダを含むフォルダ構造を作るのがスタートだ。これで、すべてが整理されてアクセスしやすくなるんだ。
実験を実行するには、ユーザーが入力ファイルと結果が保存されるデータフォルダを指定できるんだ。また、一分間に送るリクエストの数や、何か問題があったときの再試行の数などの設定もできるんだよ。
プロンプトを使う利点
promptoの主な利点の一つは、並列で実験を行えることなんだ。これによって、あるリクエストが処理されている間に追加のリクエストを遅れずに送れるんだ。このおかげで、特に複数のモデルやAPIで作業するときに評価プロセスが大幅に早くなるよ。
研究者はPythonで直接実験を実行できるから、実行方法に対するコントロールがさらに増えるんだ。また、ライブラリのモジュラー設計は簡単な修正を可能にしていて、さまざまな研究ニーズに対応できるようになってる。
実験デザインの柔軟性
再現性を促進することは、promptoの基本的な原則なんだ。実験のすべての入力とパラメータは同じJSONLファイルで文書化できるんだ。これで他の人が実験を理解しやすくなって、繰り返すのも簡単になるんだよ。実験を実行した後、すべての出力が記録されるから、結果の総合的な分析や探求ができるんだ。
promptoのデザインは、モデルのパフォーマンスを評価するだけでなく、合成データセットを生成するなど、さまざまな状況で利用できるようになってるんだ。この柔軟性は、モデルをトレーニングしたり特定のタスクを実行したりしたい研究者には有益だよ。
比較研究を簡単に
promptoを使えば、研究者は同じプロンプトに対して異なるモデルを効率よく問い合わせることができるんだ。この機能は、特定のタスクに対してどのモデルが最も優れているかを理解しようとするときに特に重要なんだ。promptoは非同期処理を可能にするから、研究者は時間を節約できて、応答を待つのではなく結果の分析に集中できるんだよ。
未来の方向性
promptoは現在LLMへのアクセスを簡素化することに優れているけど、将来のバージョンでは自動評価ツールの強化を目指してるんだ。応答の評価を改善することで、研究者がモデルのパフォーマンスをより簡単に測る手助けができて、彼らの作業がさらに効率的になると思うんだ。
promptoのオープンソースの性質は、コミュニティの貢献を促すものでもあるよ。新しいモデルやAPIが開発されるにつれて、ライブラリはより幅広いオプションをサポートすることを目指していて、研究者が自分にとって最も適切なツールを選べるようになるんだ。
さらに、マルチモーダルモデルへのサポートを拡張することで、テキストや画像などさまざまなデータタイプを組み合わせる必要がある複雑な実験を行う研究者を助けることができるんだ。
まとめ
要するに、promptoは大規模言語モデルで作業する研究者にとって貴重なリソースなんだ。複数のAPIに同時に問い合わせることを可能にすることで、ライブラリはテストと評価のプロセスをスムーズにしてくれるんだ。研究者は分析や実験に集中でき、コミュニティと再現可能な結果を共有できることを誇りに思えるんだよ。
このライブラリの設計は柔軟性を促進してて、基本的な評価を超えたさまざまなタスクにも適してるんだ。進行中のプロジェクトとして、promptoは常に進化を目指していて、研究コミュニティをサポートし続けることで、言語モデルの急速に進化する世界でも関連性を保ち続けることを目指してるんだ。
タイトル: Prompto: An open source library for asynchronous querying of LLM endpoints
概要: Recent surge in Large Language Model (LLM) availability has opened exciting avenues for research. However, efficiently interacting with these models presents a significant hurdle since LLMs often reside on proprietary or self-hosted API endpoints, each requiring custom code for interaction. Conducting comparative studies between different models can therefore be time-consuming and necessitate significant engineering effort, hindering research efficiency and reproducibility. To address these challenges, we present prompto, an open source Python library which facilitates asynchronous querying of LLM endpoints enabling researchers to interact with multiple LLMs concurrently, while maximising efficiency and utilising individual rate limits. Our library empowers researchers and developers to interact with LLMs more effectively and allowing faster experimentation, data generation and evaluation. prompto is released with an introductory video (https://youtu.be/lWN9hXBOLyQ) under MIT License and is available via GitHub (https://github.com/alan-turing-institute/prompto).
著者: Ryan Sze-Yin Chan, Federico Nanni, Edwin Brown, Ed Chapman, Angus R. Williams, Jonathan Bright, Evelina Gabasova
最終更新: 2024-12-16 00:00:00
言語: English
ソースURL: https://arxiv.org/abs/2408.11847
ソースPDF: https://arxiv.org/pdf/2408.11847
ライセンス: https://creativecommons.org/licenses/by/4.0/
変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。
オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。
参照リンク
- https://www.latex-project.org/help/documentation/encguide.pdf
- https://youtu.be/-eZAmlV4ypk
- https://github.com/alan-turing-institute/prompto
- https://chatgpt.com/
- https://gemini.google.com
- https://claude.ai/
- https://openai.com/api/
- https://ai.google.dev/gemini-api
- https://ollama.com/
- https://github.com/huggingface/text-generation-inference
- https://jsonlines.org/
- https://github.com/EleutherAI/lm-evaluation-harness
- https://github.com/UKGovernmentBEIS/inspect_ai
- https://github.com/confident-ai/deepeval
- https://github.com/pair-code/llm-comparator
- https://pypi.org/project/prompto/
- https://alan-turing-institute.github.io/prompto/
- https://www.json.org/
- https://alan-turing-institute.github.io/prompto/docs/pipeline/
- https://alan-turing-institute.github.io/prompto/docs/rate_limits/
- https://alan-turing-institute.github.io/prompto/examples/
- https://alan-turing-institute.github.io/prompto/docs/add_new_api/
- https://github.com/tatsu-lab/stanford_alpaca/blob/main/alpaca_data.json
- https://alan-turing-institute.github.io/prompto/examples/system-demo/