farc

Submission for the 2nd Bandwidth Estimation Challenge at ACM MMSys 2024

https://github.com/streaming-university/farc

Science Score: 75.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: acm.org
  • Academic email domains
  • Institutional organization owner
    Organization streaming-university has institutional domain (streaming.university)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.3%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Submission for the 2nd Bandwidth Estimation Challenge at ACM MMSys 2024

Basic Info
  • Host: GitHub
  • Owner: streaming-university
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 3.19 MB
Statistics
  • Stars: 4
  • Watchers: 5
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Created about 2 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License Citation

README.md

Public repository for FARC

Paper Title: Offline Reinforcement Learning for Bandwidth Estimation in RTC Using a Fast Actor and Not-So-Furious Critic (🔗Link)

Submission for the 2nd Bandwidth Estimation Challenge at ACM MMSys 2024

🥈 FARC Ranked 2nd in the final challenge

Installation

Install the required Python packages

bash pip3 install -r requirements.txt

Download both testbed (🔗Link) and emulated (🔗Link) datasets from and put them into Datafolder

Split them into train and testfolders. We used 98% of the data for training and 2% for testing.

Final structure should look like this: |-- Data | |-- emulated_dataset | | |-- train | | |-- test | |-- testbed_dataset | | |-- train | | |-- test

Training

To train the model, first run the train_critic.py script to train the critic model.

Once the training for the critic model is done, you can run the train_actor.py script to train the actor model.

Evaluation

To evaluate the model, run the evaluate.py script.

This will evaluate the model on the test subset of emulated dataset and save the results in the figs folder.

If you want to reproduce the figures in the paper, extract the call traces in the test-traces.zip and change the line 18 (data_dir) in eval.py to point to this folder.

This will evaluate the model on these call traces and save the figures in the figs folder.

ONNX Visualization

You can find the visualization of the ONNX model using the Netron tool below:

Network Visualization

Citation

If you use this code in your research, please cite our paper:

@inproceedings{FARC, author = {Çetinkaya, Ekrem and Pehlivanoglu, Ahmet and Ayten, Ihsan U. and Yumakogullari, Basar and Ozgun, Mehmet E. and Erinc, Yigit K. and Deniz, Enes and Begen, Ali C.}, booktitle = {Proceedings of the 15th ACM Multimedia Systems Conference}, doi = {10.1145/3625468.3652184}, publisher = {Association for Computing Machinery}, series = {MMSys'24}, title = {{Offline Reinforcement Learning for Bandwidth Estimation in RTC Using a Fast Actor and Not-So-Furious Critic}}, url = {https://doi.org/10.1145/3625468.3652184}, year = {2024} }

Owner

  • Name: Streaming University
  • Login: streaming-university
  • Kind: organization
  • Location: Turkey

Multimedia Streaming Research group at Ozyegin University

Citation (CITATION.cff)

cff-version: 1.2.0
message: If you use this software, please cite both the article from preferred-citation and the software itself.
authors:
  - family-names: Çetinkaya
    given-names: Ekrem
  - family-names: Pehlivanoglu
    given-names: Ahmet
  - family-names: Ayten
    given-names: Ihsan U.
  - family-names: Yumakogullari
    given-names: Basar
  - family-names: Ozgun
    given-names: Mehmet E.
  - family-names: Erinc
    given-names: Yigit K.
  - family-names: Deniz
    given-names: Enes
  - family-names: Begen
    given-names: Ali C.
title: Offline Reinforcement Learning for Bandwidth Estimation in RTC Using a Fast Actor and Not-So-Furious Critic
version: 1.0.0
url: https://doi.org/10.1145/3625468.3652184
doi: 10.1145/3625468.3652184
date-released: '2024-04-18'
preferred-citation:
  authors:
    - family-names: Çetinkaya
      given-names: Ekrem
    - family-names: Pehlivanoglu
      given-names: Ahmet
    - family-names: Ayten
      given-names: Ihsan U.
    - family-names: Yumakogullari
      given-names: Basar
    - family-names: Ozgun
      given-names: Mehmet E.
    - family-names: Erinc
      given-names: Yigit K.
    - family-names: Deniz
      given-names: Enes
    - family-names: Begen
      given-names: Ali C.
  title: Offline Reinforcement Learning for Bandwidth Estimation in RTC Using a Fast Actor and Not-So-Furious Critic
  doi: 10.1145/3625468.3652184
  url: https://doi.org/10.1145/3625468.3652184
  type: conference-paper
  pages: 388–393
  year: '2024'
  isbn: '9798400704123'
  collection-title: Proceedings of the 15th ACM Multimedia Systems Conference
  conference:
    name: MMSys '24
  publisher:
    name: Association for Computing Machinery
    address: New York, NY, USA

GitHub Events

Total
  • Watch event: 4
Last Year
  • Watch event: 4

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 1
  • Total pull requests: 0
  • Average time to close issues: about 3 hours
  • Average time to close pull requests: N/A
  • Total issue authors: 1
  • Total pull request authors: 0
  • Average comments per issue: 1.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Gdragon14131113 (1)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

requirements.txt pypi
  • onnxruntime *
  • torch *
  • tqdm *