論文の概要: Adaptoring: Adapter Generation to Provide an Alternative API for a
Library
- arxiv url: http://arxiv.org/abs/2401.07053v1
- Date: Sat, 13 Jan 2024 11:48:45 GMT
- ステータス: 処理完了
- システム内更新日: 2024-01-17 19:53:27.617822
- Title: Adaptoring: Adapter Generation to Provide an Alternative API for a
Library
- Title(参考訳): Adaptoring: ライブラリの代替APIを提供するアダプタ生成
- Authors: Lars Reimann, G\"unter Kniesel-W\"unsche
- Abstract要約: サードパーティのライブラリは、迅速なアプリケーション開発の基盤である。
あいまいなAPIは学習プロセスを遅くし、誤用につながる可能性がある。
本稿では、アダプタパターンを用いて、内部で元のライブラリを呼び出す新しいライブラリとして、新しいAPIを提供する。
- 参考スコア(独自算出の注目度): 5.710971447109951
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Third-party libraries are a cornerstone of fast application development. To
enable efficient use, libraries must provide a well-designed API. An obscure
API instead slows down the learning process and can lead to erroneous use.
The usual approach to improve the API of a library is to edit its code
directly, either keeping the old API but deprecating it (temporarily increasing
the API size) or dropping it (introducing breaking changes). If maintainers are
unwilling to make such changes, others need to create a hard fork, which they
can refactor. But then it is difficult to incorporate changes to the original
library, such as bug fixes or performance improvements.
In this paper, we instead explore the use of the adapter pattern to provide a
new API as a new library that calls the original library internally. This
allows the new library to leverage all implementation changes to the original
library, at no additional cost. We call this approach adaptoring. To make the
approach practical, we identify API transformations for which adapter code can
be generated automatically, and investigate which transformations can be
inferred automatically, based on the documentation and usage patterns of the
original library. For cases where automated inference is not possible, we
present a tool that lets developers manually specify API transformations.
Finally, we consider the issue of migrating the generated adapters if the
original library introduces breaking changes. We implemented our approach for
Python, demonstrating its effectiveness to quickly provide an alternative API
even for large libraries.
- Abstract(参考訳): サードパーティのライブラリは、高速アプリケーション開発の基盤である。
効率的な使用を可能にするために、ライブラリはよく設計されたAPIを提供する必要がある。
あいまいなAPIは学習プロセスを遅くし、誤用につながる可能性がある。
ライブラリのAPIを改善するための一般的なアプローチは、そのコードを直接編集し、古いAPIを維持しながら非推奨にする(APIサイズを一時的に増やす)か、あるいは削除する(破壊的な変更の導入)のいずれかである。
メンテナがそのような変更を望まない場合は、リファクタリング可能なハードフォークを作成する必要がある。
しかし、バグフィックスやパフォーマンス改善など、オリジナルのライブラリに変更を組み込むことは困難である。
そこで本論文では,本ライブラリを内部的に呼び出す新しいライブラリとして,新しいapiを提供するためのアダプタパターンの利用について検討する。
これにより、新しいライブラリは、追加コストなしで、元のライブラリへのすべての実装変更を活用できる。
私たちはこのアプローチを適応と呼ぶ。
アプローチを現実的にするために,アダプタコードの自動生成が可能なAPI変換を特定し,元のライブラリのドキュメンテーションと使用パターンに基づいて,どの変換を自動的に推論できるかを検討する。
自動推論が不可能な場合には、開発者が手動でAPI変換を指定できるツールを提示します。
最後に、オリジナルのライブラリが破壊的変更を導入した場合、生成されたアダプタを移行する問題について検討する。
私たちはpythonのアプローチを実装し、大きなライブラリでも代替apiを迅速に提供する効果を示しました。
関連論文リスト
- A Systematic Evaluation of Large Code Models in API Suggestion: When, Which, and How [53.65636914757381]
API提案は、現代のソフトウェア開発において重要なタスクである。
大規模コードモデル(LCM)の最近の進歩は、API提案タスクにおいて有望であることを示している。
論文 参考訳(メタデータ) (2024-09-20T03:12:35Z) - Adapters: A Unified Library for Parameter-Efficient and Modular Transfer
Learning [109.25673110120906]
本稿では,大規模言語モデルにおけるパラメータ効率とモジュール移動学習を統一したオープンソースのライブラリであるAdaptersを紹介する。
10の多様なアダプタメソッドを統一インターフェースに統合することにより、Adaptersは使いやすさとフレキシブルな設定を提供する。
論文 参考訳(メタデータ) (2023-11-18T13:53:26Z) - Recommending Analogical APIs via Knowledge Graph Embedding [10.131362518700403]
私たちは35,773のJavaライブラリ向けにKGE4ARの統一APIKGを構築し、それを2つのAPIレコメンデーションシナリオで評価します。
以上の結果から,KGE4ARは,すべての指標において,最先端のドキュメンテーションベース技術を大幅に上回っていることがわかった。
論文 参考訳(メタデータ) (2023-08-22T13:12:13Z) - Private-Library-Oriented Code Generation with Large Language Models [52.73999698194344]
本稿では,大規模言語モデル(LLM)をプライベートライブラリのコード生成に活用することに焦点を当てる。
プログラマがプライベートコードを書く過程をエミュレートする新しいフレームワークを提案する。
TorchDataEval、TorchDataComplexEval、MonkeyEval、BeatNumEvalの4つのプライベートライブラリベンチマークを作成しました。
論文 参考訳(メタデータ) (2023-07-28T07:43:13Z) - torchgfn: A PyTorch GFlowNet library [56.071033896777784]
torchgfnはPyTorchライブラリで、このニーズに対処することを目指している。
環境のためのシンプルなAPIと、サンプルと損失のための有用な抽象化を提供する。
論文 参考訳(メタデータ) (2023-05-24T00:20:59Z) - SequeL: A Continual Learning Library in PyTorch and JAX [50.33956216274694]
SequeLは継続学習のためのライブラリで、PyTorchとJAXフレームワークの両方をサポートする。
それは、正規化ベースのアプローチ、リプレイベースのアプローチ、ハイブリッドアプローチを含む、幅広い連続学習アルゴリズムのための統一インターフェースを提供する。
私たちはSequeLをオープンソースライブラリとしてリリースし、研究者や開発者が自身の目的で簡単にライブラリを実験し拡張することができます。
論文 参考訳(メタデータ) (2023-04-21T10:00:22Z) - Neural Transition-based Parsing of Library Deprecations [3.6382354548339295]
本稿では,オープンソースライブラリの非推奨API使用量を修正するためのコード更新の自動化に,そのリリースノートを分析して取り組む。
まず、WebクローラサービスがWebから非推奨のドキュメントを検索し、その後、特別に構築されたテキストがそれらのドキュメントを木構造表現に処理します。
提案手法の有効性を確認するため,7つの有名なPythonデータサイエンスライブラリから426のAPI非推奨を収集,ラベル付けし,そのアプローチが非自明なニューラルネットワーク翻訳ベースラインを決定的に上回ることを示した。
論文 参考訳(メタデータ) (2022-12-23T20:48:33Z) - PyTorch Adapt [37.03614011735927]
PyTorch Adaptはドメイン適応のためのライブラリである。
ドメイン適応(Domain adapt)は、既存のモデルを新しいドメインで動作させる機械学習アルゴリズムの一種である。
完全に機能したツールキットで、数行のコードで完全なトレイン/テストパイプラインを作成できる。
論文 参考訳(メタデータ) (2022-11-28T18:59:09Z) - Characterizing Python Library Migrations [2.2557806157585834]
335Pythonライブラリのマイグレーションでは,3,096のマイグレーション関連のコード変更をラベル付けしています。
ライブラリペアの40%が、非関数型プログラム要素を含むAPIマッピングを持っていることが分かりました。
移行を行うには,平均して4つのAPIと2つのAPIマッピングについて学ぶ必要がある。
論文 参考訳(メタデータ) (2022-07-03T21:00:08Z) - Repro: An Open-Source Library for Improving the Reproducibility and
Usability of Publicly Available Research Code [74.28810048824519]
Reproは、研究コードのユーザビリティ向上を目的とした、オープンソースのライブラリである。
Dockerコンテナ内で研究者がリリースしたソフトウェアを実行するための軽量Python APIを提供する。
論文 参考訳(メタデータ) (2022-04-29T01:54:54Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。