From 83a40ea6f9eff8362f6a8bdd933f2c3ce29fb0f6 Mon Sep 17 00:00:00 2001
From: waleko Contents
In this series of Jupyter notebooks, we embark on a journey to collect code review data from GitHub repositories and +perform code review predictions using a prominent language model: CodeReviewer from +Microsoft Research. Our primary goal is to explore the capabilities of this model in generating code reviews and +evaluate its performance.
-Our system collects code review data from popular GitHub repositories. This data includes code changes and associated -human-authored code reviews. By leveraging this data, our models learn to generate contextually relevant code reviews.
+First, we collect the code review data from popular GitHub repositories. This data includes code changes and associated +human-authored code reviews. By leveraging this data, the model learns to generate contextually relevant code reviews.
We use pre-trained language models and fine-tune them on code review datasets. Fine-tuning allows the models to +
We take the pre-trained language checkpoint and fine-tune the model on code review datasets. Fine-tuning allows the models to specialize in generating code reviews, making them more effective in this task.
Once the models are trained, they can generate code reviews for new code changes. These generated reviews can highlight potential issues, suggest improvements, and provide feedback to developers.
@@ -381,13 +375,12 @@We use the BLEU-4 score metric to assess the quality of generated code reviews. This metric measures the similarity -between model-generated reviews and target human reviews. While our models provide valuable assistance, they are -designed to complement human reviewers.
+between model-generated reviews and target human reviews.To get started with our Code Review Automation system, follow these steps:
+To get started with our work, follow these steps:
Clone this repository to your local machine:
git clone https://github.com/waleko/Code-Review-Automation-LM.git
@@ -395,10 +388,12 @@ Getting Startedrequirements.txt).
+Set up the required dependencies from requirements.txt
. E.g.: using pip
:
+pip install -r requirements.txt
+
+
+
Run the provided notebooks to explore data collection, model inference, and evaluation.
-Integrate the code review automation system into your development workflow. You can use our pre-trained models or
-fine-tune them on your specific codebase for even better results.
@@ -457,7 +452,7 @@ Contact
diff --git a/searchindex.js b/searchindex.js
index 6bb713e..ef9cca0 100644
--- a/searchindex.js
+++ b/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["README", "docs/conclusion", "docs/intro", "notebooks/1_collect_reviews", "notebooks/2_inference", "notebooks/3_evaluation"], "filenames": ["README.md", "docs/conclusion.md", "docs/intro.md", "notebooks/1_collect_reviews.ipynb", "notebooks/2_inference.ipynb", "notebooks/3_evaluation.ipynb"], "titles": ["Code Review Automation with Language Models", "Conclusion", "Code Review Automation with Language Models", "Collecting Code Review Data", "CodeReviewer Model Inference", "Predictions Evaluation"], "terms": {"crucial": 0, "aspect": [0, 1], "softwar": 0, "develop": [0, 1], "process": [0, 1, 2], "ensur": [0, 2, 5], "chang": [0, 5], "ar": [0, 2, 3, 4, 5], "thoroughli": 0, "examin": 0, "qualiti": [0, 1, 2], "secur": 0, "adher": 0, "standard": 0, "howev": 0, "can": [0, 1, 3, 4, 5], "time": 0, "consum": 0, "human": [0, 1, 2, 5], "mai": [0, 1], "overlook": 0, "certain": 0, "issu": [0, 5], "To": [0, 5], "address": 0, "challeng": [0, 1], "we": [0, 1, 2, 3, 4, 5], "have": [0, 1, 3, 4], "system": 0, "power": 0, "our": [0, 1, 2], "leverag": [0, 2], "state": [0, 5], "art": 0, "gener": [0, 1, 2, 4, 5], "automat": [0, 5], "These": 0, "train": [0, 1, 2], "vast": 0, "corpu": 0, "provid": [0, 1, 2, 4, 5], "insight": [0, 1, 2], "feedback": [0, 1], "By": 0, "part": 0, "aim": [0, 2], "speed": 0, "up": [0, 5], "identifi": [0, 5], "common": 0, "recommend": 0, "assist": [0, 1], "produc": [0, 1, 5], "higher": [0, 1, 5], "from": [0, 2, 3, 4, 5], "popular": [0, 2, 3], "github": [0, 2, 3, 5], "repositori": [0, 2, 3], "thi": [0, 1, 2, 3, 4, 5], "includ": 0, "associ": 0, "author": [0, 2, 3, 4, 5], "learn": 0, "contextu": 0, "relev": [0, 1, 5], "us": [0, 2, 3, 4, 5], "pre": [0, 1, 2], "them": 0, "dataset": [0, 1, 2, 3, 5], "allow": [0, 2, 3, 5], "special": [0, 2, 4], "make": [0, 2, 5], "more": [0, 1, 2, 5], "effect": [0, 1, 2], "task": [0, 4, 5], "onc": 0, "thei": [0, 1, 3, 5], "new": [0, 5], "highlight": 0, "potenti": [0, 1, 2], "suggest": [0, 5], "improv": [0, 1, 2], "bleu": [0, 2, 5], "4": [0, 2, 4, 5], "score": [0, 2, 5], "assess": [0, 2], "measur": [0, 5], "similar": [0, 3, 5], "between": [0, 5], "target": [0, 4, 5], "while": [0, 1, 5], "valuabl": [0, 1], "design": 0, "complement": 0, "follow": [0, 3, 4, 5], "step": 0, "clone": 0, "your": [0, 3], "local": [0, 3], "machin": 0, "git": 0, "http": [0, 1, 2, 4, 5], "com": [0, 5], "waleko": [0, 4], "lm": 0, "cd": 0, "set": [0, 3, 5], "requir": [0, 4, 5], "depend": [0, 5], "environ": 0, "see": [0, 5], "txt": [0, 5], "run": [0, 3, 5], "notebook": [0, 1, 2, 3], "explor": [0, 1, 2], "integr": 0, "workflow": 0, "you": [0, 3, 4, 5], "specif": [0, 1, 5], "codebas": 0, "even": 0, "better": [0, 5], "result": [0, 4, 5], "project": [0, 4, 5], "under": 0, "apach": 0, "0": [0, 5], "file": [0, 3, 5], "detail": [0, 2, 5], "For": [0, 4, 5], "ani": [0, 5], "question": 0, "inquiri": 0, "pleas": [0, 5], "inbox": 0, "alexkovrigin": 0, "me": [0, 5], "In": [1, 2, 3, 5], "code": [1, 4, 5], "review": [1, 4, 5], "data": [1, 5], "collect": 1, "model": [1, 5], "infer": 1, "gain": [1, 2], "capabl": [1, 2], "limit": [1, 2, 3], "languag": 1, "context": [1, 2, 5], "journei": [1, 2], "ha": 1, "encompass": 1, "variou": [1, 2], "each": [1, 2, 4, 5], "focus": [1, 2], "here": [1, 4, 5], "summar": 1, "kei": 1, "find": [1, 5], "implic": 1, "work": [1, 4, 5], "show": [1, 5], "promis": [1, 5], "ampl": 1, "room": 1, "term": 1, "fine": [1, 2, 5], "tune": [1, 2, 5], "approach": 1, "enhanc": 1, "perform": [1, 2, 5], "further": [1, 2], "research": 1, "need": [1, 3, 5], "optim": 1, "techniqu": 1, "should": [1, 5], "view": 1, "complementari": 1, "tool": 1, "rather": 1, "than": [1, 5], "replac": [1, 3, 5], "expertis": 1, "remain": 1, "invalu": 1, "futur": 1, "involv": 1, "advanc": 1, "experi": 1, "differ": [1, 2, 5], "strategi": 1, "incorpor": 1, "user": [1, 3, 5], "refin": 1, "predict": 1, "through": 1, "autom": 1, "augment": 1, "help": [1, 2], "As": [1, 5], "technolog": 1, "continu": [1, 3], "anticip": 1, "excit": 1, "field": 1, "focu": 1, "p4v": [1, 2, 4], "codebert": [1, 2], "codereview": 1, "hug": [1, 2], "face": [1, 2], "space": [1, 2, 5], "p4vv37": [1, 2], "url": [1, 2], "huggingfac": [1, 2], "co": [1, 2, 4], "codebert_codereview": [1, 2], "visit": [1, 2], "2023": [1, 2], "09": [1, 2], "13": [1, 2, 5], "llg": [1, 2, 3, 4, 5], "22": [1, 2, 3, 4, 5], "zhiyu": [1, 2], "li": [1, 2], "shuai": [1, 2], "lu": [1, 2], "daya": [1, 2], "guo": [1, 2], "nan": [1, 2, 5], "duan": [1, 2], "shailesh": [1, 2], "jannu": [1, 2], "grant": [1, 2], "jenk": [1, 2], "deep": [1, 2], "majumd": [1, 2], "jare": [1, 2], "green": [1, 2], "alexei": [1, 2], "svyatkovskii": [1, 2], "shengyu": [1, 2], "fu": [1, 2], "other": [1, 2, 3, 5], "activ": [1, 2], "arxiv": [1, 2], "preprint": [1, 2], "2203": [1, 2], "09095": [1, 2], "2022": [1, 2], "seri": 2, "jupyt": [2, 3], "embark": 2, "primari": 2, "goal": 2, "initi": [2, 4], "dive": 2, "pygithub": [2, 3], "librari": [2, 3], "interact": [2, 3], "api": [2, 3], "seamless": 2, "retriev": 2, "establish": 2, "function": [2, 3, 5], "specifi": 2, "paramet": [2, 4], "number": [2, 3, 5], "comment": [2, 3, 5], "load": [2, 3], "skip": [2, 3], "The": [2, 3, 4, 5], "structur": 2, "panda": [2, 3, 4, 5], "datafram": [2, 3, 4, 5], "analysi": 2, "three": 2, "promin": 2, "name": [2, 3, 5], "microsoft": [2, 3, 4], "vscode": [2, 3, 5], "jetbrain": [2, 3, 5], "kotlin": [2, 3, 5], "transloadit": [2, 3], "uppi": [2, 3, 5], "select": [2, 3], "due": 2, "rich": 2, "histori": 2, "addition": [2, 3], "go": 2, "origin": [2, 5], "msg": [2, 3, 4, 5], "test": [2, 3, 4, 5], "second": 2, "delv": 2, "token": [2, 3], "prepar": [2, 5], "emphas": 2, "import": [2, 3, 4, 5], "A": 2, "custom": 2, "reviewsdataset": [2, 4], "class": [2, 4, 5], "introduc": [2, 5], "facilit": 2, "transform": [2, 4], "compat": 2, "sourc": [2, 4], "creat": [2, 4], "dataload": [2, 4], "instanc": 2, "effici": 2, "input": 2, "emploi": 2, "both": [2, 5], "checkpoint": 2, "outlin": 2, "showcas": 2, "resourc": 2, "save": [2, 3], "across": 2, "shed": 2, "light": 2, "qualit": 2, "conduct": 2, "how": [2, 5], "present": 2, "sampl": [2, 5], "along": [2, 3], "enabl": 2, "visual": 2, "comparison": 2, "understand": [2, 5], "nuanc": 2, "lastli": 2, "quantit": 2, "calcul": [2, 5], "comprehens": 2, "overview": 2, "well": 2, "align": 2, "draw": 2, "conclus": 2, "about": [2, 4, 5], "throughout": 2, "applic": 2, "area": 2, "getpass": 3, "auth": 3, "pd": [3, 4, 5], "tqdm": [3, 4], "autonotebook": [3, 4], "c": [3, 5], "akovr": 3, "appdata": 3, "temp": 3, "ipykernel_15472": 3, "323726258": 3, "py": 3, "5": [3, 4, 5], "tqdmexperimentalwarn": 3, "mode": 3, "instead": [3, 5], "forc": 3, "consol": 3, "e": [3, 4], "g": [3, 4, 5], "although": 3, "without": 3, "authent": [3, 5], "increas": 3, "rate": 3, "access": [3, 5], "enter": 3, "below": [3, 5], "If": 3, "do": [3, 5], "60": 3, "request": [3, 5], "per": 3, "hour": [3, 4], "els": 3, "warn": 3, "possibl": 3, "next": 3, "defin": [3, 5], "def": [3, 4, 5], "collect_review": 3, "repo_nam": 3, "str": 3, "num_com": 3, "int": 3, "1000": [3, 5], "skip_author": 3, "true": [3, 4, 5], "allow_thread": 3, "fals": [3, 4, 5], "max_length": [3, 4], "512": [3, 4], "crawl": 3, "repo": 3, "param": 3, "format": 3, "owner": 3, "made": [3, 4], "pull": 3, "repli": 3, "csv": [3, 4, 5], "maximum": 3, "length": 3, "diff": 3, "hunk": 3, "return": [3, 4, 5], "column": 3, "diff_hunk": [3, 4], "human_review": [3, 4], "created_at": 3, "count": 3, "get_repo": 3, "comment_pag": 3, "get_pulls_review_com": 3, "iter": 3, "over": 3, "progress_bar": 3, "total": [3, 5], "len": [3, 4, 5], "enough": 3, "stop": 3, "break": 3, "alreadi": 3, "too": 3, "long": [3, 4], "get": [3, 5], "commit": 3, "commit_author": 3, "get_git_commit": 3, "commit_id": 3, "add": [3, 4, 5], "ground": 3, "truth": 3, "append": [3, 4], "bodi": [3, 5], "updat": [3, 5], "1": [3, 5], "df": [3, 4, 5], "remov": [3, 5], "keep": [3, 5], "first": [3, 5], "loc": 3, "groupbi": 3, "idxmin": 3, "to_csv": [3, 4], "f": [3, 5], "_": [3, 5], "final": [3, 5], "i": [3, 4, 5], "chosen": 3, "becaus": 3, "larg": 3, "also": [3, 5], "criteria": 3, "studi": 3, "folder": 3, "zenodo": 3, "avail": [3, 4], "let": 4, "s": [4, 5], "pathlib": [4, 5], "path": [4, 5], "numpi": [4, 5], "np": [4, 5], "torch": 4, "util": [4, 5], "autotoken": 4, "automodelforseq2seqlm": 4, "p": 4, "enorm": 4, "thank": 4, "open": 4, "download": 4, "from_pretrain": 4, "process_token": 4, "__init__": 4, "self": 4, "y": 4, "x": 4, "tensor": 4, "appli": 4, "lambda": 4, "row": 4, "encode_diff": 4, "axi": 4, "dtype": 4, "cpu": 4, "__len__": 4, "__getitem__": 4, "idx": 4, "filenam": 4, "jetbrains_kotlin_1000": [4, 5], "microsoft_vscode_1000": [4, 5], "transloadit_uppy_1000": [4, 5], "read_csv": [4, 5], "batch_siz": 4, "16": [4, 5], "shuffl": 4, "6": [4, 5], "8gb": 4, "gpu": 4, "now": [4, 5], "two": 4, "devic": 4, "cuda": 4, "eval": 4, "inputs_mask": 4, "ne": 4, "pad_id": 4, "pred": [4, 5], "attention_mask": 4, "use_cach": 4, "num_beam": 4, "early_stop": 4, "num_return_sequ": 4, "decod": 4, "preds_np": 4, "detach": 4, "preds_decod": 4, "skip_special_token": 4, "clean_up_tokenization_spac": 4, "hub": 4, "pretrain": 4, "hf_model": 4, "zip": [4, 5], "df_pred": 4, "with_suffix": [4, 5], "hf_pred": [4, 5], "head": [4, 5], "100": 4, "636": 4, "11": [4, 5], "27": 4, "00": 4, "08": 4, "63": 4, "03": 4, "37": [4, 5], "45": [4, 5], "02": [4, 5], "01": 4, "93": 4, "46": [4, 5], "64": 4, "instruct": 4, "learning_r": 4, "3e": 4, "max_source_length": 4, "took": 4, "12": 4, "singl": 4, "nvidia": 4, "geforc": 4, "a100": 4, "wa": [4, 5], "epoch": 4, "finetun": 4, "ft_model": 4, "finetuned_pr": [4, 5], "some": [4, 5], "weight": 4, "were": 4, "when": [4, 5], "t5forconditionalgener": 4, "cls_head": 4, "bia": 4, "IS": 4, "expect": [4, 5], "anoth": 4, "architectur": 4, "bertforsequenceclassif": 4, "bertforpretrain": 4, "NOT": 4, "exactli": [4, 5], "ident": 4, "15": 4, "51": 4, "50": 4, "40": 4, "59": 4, "32": [4, 5], "48": 4, "26": 4, "38": 4, "smooth_bleu": 5, "bleu_fromstr": 5, "analyze_pr": 5, "base_fil": 5, "sample_s": 5, "read": 5, "hf_preds_fil": 5, "fine_tuned_fil": 5, "fine_tun": 5, "put": 5, "fine_tuned_pr": 5, "regex": 5, "print": 5, "random_st": 5, "42": 5, "to_numpi": 5, "hf": 5, "calc_bleu": 5, "ref": 5, "list": 5, "rang": 5, "char": 5, "join": 5, "split": 5, "rmstop": 5, "calc_bleu_scor": 5, "ft_pred": 5, "inplac": 5, "hf_bleu": 5, "ft_bleu": 5, "compar": 5, "four": 5, "7": 5, "frozen_string_liter": 5, "hocon": 5, "bolt": 5, "error": 5, "transportconfig": 5, "attr_accessor": 5, "host": 5, "port": 5, "ssl_cert": 5, "ssl_kei": 5, "ssl_ca_cert": 5, "ssl_cipher_suit": 5, "look": 5, "like": 5, "isn": 5, "t": 5, "why": 5, "am": 5, "surpris": 5, "don": 5, "92": 5, "public": 5, "oauth2authorizedclientargumentresolv": 5, "implement": 5, "handlermeth": 5, "clientregistrationid": 5, "flatmap": 5, "id": 5, "mono": 5, "illegalstateexcept": 5, "unabl": 5, "resolv": 5, "client": 5, "registr": 5, "an": 5, "unauthent": 5, "session": 5, "serverhttpsecur": 5, "anonym": 5, "configur": 5, "string": 5, "registrationid": 5, "gett1": 5, "usernam": 5, "gett2": 5, "think": 5, "sinc": 5, "reactiv": 5, "side": 5, "support": 5, "messag": 5, "It": 5, "clear": 5, "3": 5, "const": 5, "share": 5, "assert": 5, "setupdatabas": 5, "script": 5, "vm": 5, "chai": 5, "normalizedfunctionstr": 5, "bson": 5, "lib": 5, "parser": 5, "buffer": 5, "safe": 5, "feel": 5, "free": 5, "edit": 5, "section": 5, "modern": 5, "featur": 5, "object": 5, "destructur": 5, "what": 5, "whitespac": 5, "17": 5, "php": 5, "copyright": 5, "bold": 5, "brand": 5, "commerc": 5, "sp": 5, "z": 5, "o": 5, "all": 5, "right": 5, "reserv": 5, "licens": 5, "declar": 5, "strict_typ": 5, "namespac": 5, "ergonod": 5, "core": 5, "infrastructur": 5, "except": 5, "serializationexcept": 5, "extend": 5, "serializerexcept": 5, "__construct": 5, "throwabl": 5, "previou": 5, "null": 5, "parent": 5, "been": 5, "sharedkernel": 5, "modul": 5, "miss": 5, "header": 5, "separ": 5, "seem": 5, "veri": 5, "elgg": 5, "473": 5, "describ": 5, "gridf": 5, "stream": 5, "fail": 5, "tri": 5, "abort": 5, "uploadstream": 5, "tostr": 5, "equal": 5, "todo": 5, "node": 5, "3405": 5, "mongostreamclosederror": 5, "mongodrivererror": 5, "cannot": 5, "call": 5, "twice": 5, "close": 5, "done": 5, "ve": 5, "Is": 5, "still": 5, "problem": 5, "340": 5, "341": 5, "export": 5, "debugeditorcontribut": 5, "idebugeditorcontribut": 5, "runonceschedul": 5, "hoverwidget": 5, "hide": 5, "hover_delai": 5, "memoiz": 5, "privat": 5, "providenondebughoverschedul": 5, "where": 5, "dispos": 5, "runnabl": 5, "53": 5, "sasspars": 5, "cssparser": 5, "sass": 5, "variabl": 5, "font": 5, "size": 5, "12px": 5, "_parsevariabledeclar": 5, "panic": 5, "scanner": 5, "tokentyp": 5, "variabledeclar": 5, "var": 5, "cssvariabledeclar": 5, "super": 5, "_parsecssvariabledeclar": 5, "That": 5, "wrong": 5, "Not": 5, "place": 5, "suit": 5, "css": 5, "nit": 5, "after": 5, "minor": 5, "style": 5, "befor": 5, "537": 5, "23": 5, "interfac": 5, "completionlist": 5, "item": 5, "completionitem": 5, "contain": 5, "addit": 5, "inform": 5, "which": 5, "complet": 5, "completionitemprovid": 5, "providecompletionitem": 5, "trigger": 5, "completioncontext": 5, "manual": 5, "invoc": 5, "24x7": 5, "intellisens": 5, "incomplet": 5, "just": 5, "reason": 5, "439": 5, "441": 5, "debugservic": 5, "debug": 5, "idebugservic": 5, "debounceddisplaythread": 5, "rawdebugsess": 5, "timer": 5, "displaythreadstim": 5, "getid": 5, "cleartimeout": 5, "settimeout": 5, "fetchthread": 5, "undefin": 5, "onunexpectederror": 5, "m": 5, "sure": 5, "best": 5, "wai": 5, "would": 5, "265": 5, "266": 5, "33": 5, "mddocumentcontentprovid": 5, "textdocumentcontentprovid": 5, "300": 5, "documentheadingsprovid": 5, "documentsymbolprovid": 5, "daringfirebal": 5, "net": 5, "markdown": 5, "syntax": 5, "static": 5, "_atxpattern": 5, "_settext": 5, "doe": 5, "pick": 5, "_atxregex": 5, "directli": 5, "symbolprovid": 5, "24": 5, "10": 5, "abstract": 5, "abstractirlinenumbertest": 5, "abstractlinenumbertest": 5, "overrid": 5, "fun": 5, "comparecustom": 5, "psifil": 5, "ktfile": 5, "wholefil": 5, "val": 5, "filetext": 5, "text": 5, "expectedlinenumb": 5, "normal": 5, "substr": 5, "indexof": 5, "2": 5, "trim": 5, "map": 5, "tomutablelist": 5, "n": 5, "toregex": 5, "filter": 5, "line": 5, "simplifi": 5, "d": 5, "start": 5, "Then": 5, "digit": 5, "exclud": 5, "consist": 5, "old": 5, "backend": 5, "did": 5, "org": 5, "type": 5, "kotlintyp": 5, "typeutil": 5, "isprimitivenumbertyp": 5, "makenotnul": 5, "makenul": 5, "java": 5, "lang": 5, "assertionerror": 5, "pl": 5, "pr": 5, "kotlinconst": 5, "abstractchecklocalvariablestabletest": 5, "codegentestcas": 5, "assertnotnul": 5, "couldn": 5, "pattern": 5, "classfileregex": 5, "pathsstr": 5, "outputfil": 5, "actuallocalvari": 5, "readlocalvari": 5, "classread": 5, "asbytearrai": 5, "methodnam": 5, "checklocalvariabletyp": 5, "could": 5, "reus": 5, "reader": 5, "assertequ": 5, "expectedlocalvari": 5, "purpos": 5, "ignorecas": 5, "boolean": 5, "charact": 5, "unicod": 5, "surrog": 5, "unit": 5, "issurrog": 5, "min_surrog": 5, "max_surrog": 5, "minimum": 5, "valu": 5, "href": 5, "doc": 5, "oracl": 5, "javas": 5, "tutori": 5, "nutsandbolt": 5, "datatyp": 5, "html": 5, "link": 5, "tag": 5, "anywai": 5, "175": 5, "195": 5, "9": 5, "expressioncodegen": 5, "visitblockbodi": 5, "irblockbodi": 5, "blockinfo": 5, "stackvalu": 5, "statement": 5, "fold": 5, "none": 5, "exp": 5, "accept": 5, "irexpress": 5, "markendofstatementifneed": 5, "unrel": 5, "doesn": 5, "blockinforesolv": 5, "28": 5, "thumbnail": 5, "29": 5, "classnam": 5, "cuid": 5, "drag": 5, "drop": 5, "uuid": 5, "packag": 5, "actual": 5, "gonna": 5, "switch": 5, "ai": 5, "nanoid": 5, "everywher": 5, "smaller": 5, "fix": 5, "version": 5, "49": 5, "8": 5, "tab": 5, "compon": 5, "tabindex": 5, "multipl": 5, "prop": 5, "maxnumberoffil": 5, "same": 5, "shouldnt": 5, "onli": 5, "496": 5, "494": 5, "25": 5, "providerview": 5, "listallfil": 5, "re": 5, "catch": 5, "otherwis": 5, "happen": 5, "unnecessari": 5, "422": 5, "handleauth": 5, "authstat": 5, "btoa": 5, "json": 5, "stringifi": 5, "locat": 5, "redirect": 5, "localhost": 5, "authurl": 5, "protocol": 5, "hardcod": 5, "14": 5, "echo": 5, "end": 5, "copi": 5, "build": 5, "js": 5, "rm": 5, "rf": 5, "endtoend": 5, "dist": 5, "mkdir": 5, "cp": 5, "min": 5, "src": 5, "index": 5, "node_modul": 5, "uppy_vers": 5, "cat": 5, "grep": 5, "awk": 5, "sed": 5, "tr": 5, "archiv": 5, "npm": 5, "pack": 5, "prepublishonli": 5, "so": 5, "publish": 5, "one": 5, "thought": 5, "insid": 5, "want": 5, "upgrad": 5, "newer": 5, "pretti": 5, "mediocr": 5, "But": 5, "tend": 5, "someth": 5, "sensibl": 5, "struggl": 5, "pin": 5, "point": 5, "10169": 5, "34": 5, "39": 5, "55": 5, "84": 5, "slightli": 5, "nevertheless": 5, "low": 5, "hard": 5}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"code": [0, 2, 3], "review": [0, 2, 3], "autom": [0, 2], "languag": [0, 2], "model": [0, 2, 4], "overview": 0, "kei": 0, "featur": 0, "1": [0, 4], "data": [0, 2, 3, 4], "collect": [0, 2, 3], "2": [0, 4], "infer": [0, 2, 4], "fine": [0, 4], "tune": [0, 4], "3": [0, 4], "evalu": [0, 2, 5], "metric": 0, "get": 0, "start": 0, "licens": 0, "contact": 0, "conclus": 1, "bibliographi": [1, 2], "introduct": 2, "codereview": [2, 4], "predict": [2, 4, 5], "tabl": 2, "content": 2, "token": 4, "dataset": 4, "load": 4, "function": 4, "huggingfac": 4, "pre": 4, "train": 4, "checkpoint": 4, "qualit": 5, "quantit": 5}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinxcontrib.bibtex": 9, "sphinx": 56}})
\ No newline at end of file
+Search.setIndex({"docnames": ["README", "docs/conclusion", "docs/intro", "notebooks/1_collect_reviews", "notebooks/2_inference", "notebooks/3_evaluation"], "filenames": ["README.md", "docs/conclusion.md", "docs/intro.md", "notebooks/1_collect_reviews.ipynb", "notebooks/2_inference.ipynb", "notebooks/3_evaluation.ipynb"], "titles": ["Code Review Automation with Language Models", "Conclusion", "Code Review Automation with Language Models", "Collecting Code Review Data", "CodeReviewer Model Inference", "Predictions Evaluation"], "terms": {"crucial": 0, "aspect": [0, 1], "softwar": 0, "develop": [0, 1], "process": [0, 1, 2], "ensur": [0, 2, 5], "chang": [0, 5], "ar": [0, 2, 3, 4, 5], "thoroughli": 0, "examin": 0, "qualiti": [0, 1, 2], "secur": 0, "adher": 0, "standard": 0, "howev": 0, "can": [0, 1, 3, 4, 5], "time": 0, "consum": 0, "human": [0, 1, 2, 5], "mai": [0, 1], "overlook": 0, "certain": 0, "issu": [0, 5], "In": [0, 1, 2, 3, 5], "thi": [0, 1, 2, 3, 4, 5], "seri": [0, 2], "jupyt": [0, 2, 3], "notebook": [0, 1, 2, 3], "we": [0, 1, 2, 3, 4, 5], "embark": [0, 2], "journei": [0, 1, 2], "from": [0, 2, 3, 4, 5], "github": [0, 2, 3, 5], "repositori": [0, 2, 3], "perform": [0, 1, 2, 5], "predict": [0, 1], "us": [0, 2, 3, 4, 5], "promin": [0, 2], "codereview": [0, 1], "microsoft": [0, 2, 3, 4], "research": [0, 1], "our": [0, 1, 2], "primari": [0, 2], "goal": [0, 2], "explor": [0, 1, 2], "capabl": [0, 1, 2], "gener": [0, 1, 2, 4, 5], "its": [0, 2], "first": [0, 3, 5], "popular": [0, 2, 3], "includ": 0, "associ": 0, "author": [0, 2, 3, 4, 5], "By": 0, "leverag": [0, 2], "learn": 0, "contextu": 0, "relev": [0, 1, 5], "take": 0, "pre": [0, 1, 2], "train": [0, 1, 2], "checkpoint": [0, 2], "dataset": [0, 1, 2, 3, 5], "allow": [0, 3, 5], "special": [0, 2, 4], "make": [0, 5], "them": 0, "more": [0, 1, 5], "effect": [0, 1], "task": [0, 4, 5], "onc": 0, "thei": [0, 1, 3, 5], "new": [0, 5], "These": 0, "highlight": 0, "potenti": [0, 1], "suggest": [0, 5], "improv": [0, 1], "provid": [0, 1, 2, 4, 5], "feedback": [0, 1], "bleu": [0, 2, 5], "4": [0, 2, 4, 5], "score": [0, 2, 5], "assess": [0, 2], "measur": [0, 5], "similar": [0, 3, 5], "between": [0, 5], "target": [0, 4, 5], "To": [0, 5], "work": [0, 1, 4, 5], "follow": [0, 3, 4, 5], "step": 0, "clone": 0, "your": [0, 3], "local": [0, 3], "machin": 0, "git": 0, "http": [0, 1, 2, 4, 5], "com": [0, 5], "waleko": [0, 4], "lm": 0, "cd": 0, "set": [0, 3, 5], "up": [0, 5], "requir": [0, 4, 5], "depend": [0, 5], "txt": [0, 5], "e": [0, 3, 4], "g": [0, 3, 4, 5], "pip": 0, "instal": 0, "r": 0, "run": [0, 3, 5], "project": [0, 4, 5], "under": 0, "apach": 0, "0": [0, 5], "see": [0, 5], "file": [0, 3, 5], "detail": [0, 2, 5], "For": [0, 4, 5], "ani": [0, 5], "question": 0, "inquiri": 0, "pleas": [0, 5], "inbox": 0, "alexkovrigin": 0, "me": [0, 5], "code": [1, 4, 5], "review": [1, 4, 5], "data": [1, 5], "collect": 1, "model": [1, 5], "infer": 1, "have": [1, 3, 4], "gain": [1, 2], "valuabl": 1, "insight": [1, 2], "limit": [1, 3], "languag": 1, "context": [1, 5], "ha": 1, "encompass": 1, "variou": 1, "each": [1, 2, 4, 5], "focus": [1, 2], "specif": [1, 5], "here": [1, 4, 5], "summar": 1, "kei": 1, "find": [1, 5], "implic": 1, "show": [1, 5], "promis": [1, 5], "ampl": 1, "room": 1, "term": 1, "fine": [1, 2, 5], "tune": [1, 2, 5], "approach": 1, "enhanc": 1, "further": 1, "need": [1, 3, 5], "optim": 1, "techniqu": 1, "while": [1, 5], "assist": 1, "should": [1, 5], "view": 1, "complementari": 1, "tool": 1, "rather": 1, "than": [1, 5], "replac": [1, 3, 5], "expertis": 1, "remain": 1, "invalu": 1, "futur": 1, "involv": 1, "advanc": 1, "experi": 1, "differ": [1, 2, 5], "strategi": 1, "incorpor": 1, "user": [1, 3, 5], "refin": 1, "through": 1, "autom": 1, "challeng": 1, "augment": 1, "help": 1, "produc": [1, 5], "higher": [1, 5], "As": [1, 5], "technolog": 1, "continu": [1, 3], "anticip": 1, "excit": 1, "field": 1, "focu": 1, "p4v": [1, 2, 4], "codebert": [1, 2], "hug": [1, 2], "face": [1, 2], "space": [1, 2, 5], "p4vv37": [1, 2], "url": [1, 2], "huggingfac": [1, 2], "co": [1, 2, 4], "codebert_codereview": [1, 2], "visit": [1, 2], "2023": [1, 2], "09": [1, 2], "13": [1, 2, 5], "llg": [1, 2, 3, 4, 5], "22": [1, 2, 3, 4, 5], "zhiyu": [1, 2], "li": [1, 2], "shuai": [1, 2], "lu": [1, 2], "daya": [1, 2], "guo": [1, 2], "nan": [1, 2, 5], "duan": [1, 2], "shailesh": [1, 2], "jannu": [1, 2], "grant": [1, 2], "jenk": [1, 2], "deep": [1, 2], "majumd": [1, 2], "jare": [1, 2], "green": [1, 2], "alexei": [1, 2], "svyatkovskii": [1, 2], "shengyu": [1, 2], "fu": [1, 2], "other": [1, 2, 3, 5], "activ": [1, 2], "arxiv": [1, 2], "preprint": [1, 2], "2203": [1, 2], "09095": [1, 2], "2022": [1, 2], "initi": [2, 4], "dive": 2, "pygithub": [2, 3], "librari": [2, 3], "interact": [2, 3], "api": [2, 3], "seamless": 2, "retriev": 2, "three": 2, "name": [2, 3, 5], "vscode": [2, 3, 5], "jetbrain": [2, 3, 5], "kotlin": [2, 3, 5], "transloadit": [2, 3], "uppi": [2, 3, 5], "select": [2, 3], "due": 2, "rich": 2, "histori": 2, "addition": [2, 3], "go": 2, "origin": [2, 5], "msg": [2, 3, 4, 5], "test": [2, 3, 4, 5], "The": [2, 3, 4, 5], "second": 2, "delv": 2, "token": [2, 3], "prepar": [2, 5], "emphas": 2, "import": [2, 3, 4, 5], "emploi": 2, "both": [2, 5], "outlin": 2, "showcas": 2, "paramet": [2, 4], "resourc": 2, "save": [2, 3], "across": 2, "shed": 2, "light": 2, "qualit": 2, "conduct": 2, "how": [2, 5], "present": 2, "sampl": [2, 5], "along": [2, 3], "enabl": 2, "visual": 2, "comparison": 2, "lastli": 2, "quantit": 2, "calcul": [2, 5], "comprehens": 2, "overview": 2, "well": 2, "align": 2, "conclus": 2, "getpass": 3, "auth": 3, "panda": [3, 4, 5], "pd": [3, 4, 5], "tqdm": [3, 4], "autonotebook": [3, 4], "c": [3, 5], "akovr": 3, "appdata": 3, "temp": 3, "ipykernel_15472": 3, "323726258": 3, "py": 3, "5": [3, 4, 5], "tqdmexperimentalwarn": 3, "mode": 3, "instead": [3, 5], "forc": 3, "consol": 3, "although": 3, "without": 3, "authent": [3, 5], "increas": 3, "rate": 3, "access": [3, 5], "you": [3, 4, 5], "enter": 3, "below": [3, 5], "If": 3, "do": [3, 5], "60": 3, "request": [3, 5], "per": 3, "hour": [3, 4], "els": 3, "warn": 3, "possibl": 3, "next": 3, "defin": [3, 5], "function": [3, 5], "def": [3, 4, 5], "collect_review": 3, "repo_nam": 3, "str": 3, "num_com": 3, "int": 3, "1000": [3, 5], "skip_author": 3, "true": [3, 4, 5], "allow_thread": 3, "fals": [3, 4, 5], "max_length": [3, 4], "512": [3, 4], "crawl": 3, "repo": 3, "param": 3, "format": 3, "owner": 3, "number": [3, 5], "comment": [3, 5], "load": 3, "skip": 3, "made": [3, 4], "pull": 3, "repli": 3, "csv": [3, 4, 5], "maximum": 3, "length": 3, "diff": 3, "hunk": 3, "return": [3, 4, 5], "datafram": [3, 4, 5], "column": 3, "diff_hunk": [3, 4], "human_review": [3, 4], "created_at": 3, "count": 3, "get_repo": 3, "comment_pag": 3, "get_pulls_review_com": 3, "iter": 3, "over": 3, "progress_bar": 3, "total": [3, 5], "len": [3, 4, 5], "enough": 3, "stop": 3, "break": 3, "alreadi": 3, "too": 3, "long": [3, 4], "get": [3, 5], "commit": 3, "commit_author": 3, "get_git_commit": 3, "commit_id": 3, "add": [3, 4, 5], "ground": 3, "truth": 3, "append": [3, 4], "bodi": [3, 5], "updat": [3, 5], "1": [3, 5], "df": [3, 4, 5], "remov": [3, 5], "keep": [3, 5], "loc": 3, "groupbi": 3, "idxmin": 3, "to_csv": [3, 4], "f": [3, 5], "_": [3, 5], "final": [3, 5], "i": [3, 4, 5], "chosen": 3, "becaus": 3, "larg": 3, "also": [3, 5], "criteria": 3, "studi": 3, "folder": 3, "zenodo": 3, "avail": [3, 4], "let": 4, "s": [4, 5], "pathlib": [4, 5], "path": [4, 5], "numpi": [4, 5], "np": [4, 5], "torch": 4, "util": [4, 5], "dataload": 4, "transform": 4, "autotoken": 4, "automodelforseq2seqlm": 4, "p": 4, "enorm": 4, "thank": 4, "open": 4, "sourc": 4, "download": 4, "from_pretrain": 4, "process_token": 4, "class": [4, 5], "reviewsdataset": 4, "__init__": 4, "self": 4, "y": 4, "x": 4, "tensor": 4, "appli": 4, "lambda": 4, "row": 4, "encode_diff": 4, "axi": 4, "dtype": 4, "cpu": 4, "__len__": 4, "__getitem__": 4, "idx": 4, "creat": 4, "filenam": 4, "jetbrains_kotlin_1000": [4, 5], "microsoft_vscode_1000": [4, 5], "transloadit_uppy_1000": [4, 5], "read_csv": [4, 5], "batch_siz": 4, "16": [4, 5], "shuffl": 4, "6": [4, 5], "8gb": 4, "gpu": 4, "now": [4, 5], "two": 4, "devic": 4, "cuda": 4, "eval": 4, "result": [4, 5], "inputs_mask": 4, "ne": 4, "pad_id": 4, "pred": [4, 5], "attention_mask": 4, "use_cach": 4, "num_beam": 4, "early_stop": 4, "num_return_sequ": 4, "decod": 4, "preds_np": 4, "detach": 4, "preds_decod": 4, "skip_special_token": 4, "clean_up_tokenization_spac": 4, "hub": 4, "pretrain": 4, "hf_model": 4, "zip": [4, 5], "df_pred": 4, "with_suffix": [4, 5], "hf_pred": [4, 5], "head": [4, 5], "100": 4, "636": 4, "11": [4, 5], "27": 4, "00": 4, "08": 4, "63": 4, "03": 4, "37": [4, 5], "45": [4, 5], "02": [4, 5], "01": 4, "93": 4, "46": [4, 5], "64": 4, "instruct": 4, "learning_r": 4, "3e": 4, "max_source_length": 4, "took": 4, "about": [4, 5], "12": 4, "singl": 4, "nvidia": 4, "geforc": 4, "a100": 4, "wa": [4, 5], "epoch": 4, "finetun": 4, "ft_model": 4, "finetuned_pr": [4, 5], "some": [4, 5], "weight": 4, "were": 4, "when": [4, 5], "t5forconditionalgener": 4, "cls_head": 4, "bia": 4, "IS": 4, "expect": [4, 5], "anoth": 4, "architectur": 4, "bertforsequenceclassif": 4, "bertforpretrain": 4, "NOT": 4, "exactli": [4, 5], "ident": 4, "15": 4, "51": 4, "50": 4, "40": 4, "59": 4, "32": [4, 5], "48": 4, "26": 4, "38": 4, "smooth_bleu": 5, "bleu_fromstr": 5, "analyze_pr": 5, "base_fil": 5, "sample_s": 5, "read": 5, "hf_preds_fil": 5, "fine_tuned_fil": 5, "fine_tun": 5, "put": 5, "fine_tuned_pr": 5, "regex": 5, "print": 5, "random_st": 5, "42": 5, "to_numpi": 5, "hf": 5, "calc_bleu": 5, "ref": 5, "list": 5, "rang": 5, "char": 5, "join": 5, "split": 5, "rmstop": 5, "calc_bleu_scor": 5, "ft_pred": 5, "inplac": 5, "hf_bleu": 5, "ft_bleu": 5, "compar": 5, "four": 5, "7": 5, "frozen_string_liter": 5, "hocon": 5, "bolt": 5, "error": 5, "transportconfig": 5, "attr_accessor": 5, "host": 5, "port": 5, "ssl_cert": 5, "ssl_kei": 5, "ssl_ca_cert": 5, "ssl_cipher_suit": 5, "look": 5, "like": 5, "isn": 5, "t": 5, "why": 5, "am": 5, "surpris": 5, "don": 5, "92": 5, "public": 5, "oauth2authorizedclientargumentresolv": 5, "implement": 5, "handlermeth": 5, "clientregistrationid": 5, "flatmap": 5, "id": 5, "mono": 5, "illegalstateexcept": 5, "unabl": 5, "resolv": 5, "client": 5, "registr": 5, "identifi": 5, "an": 5, "unauthent": 5, "session": 5, "serverhttpsecur": 5, "anonym": 5, "configur": 5, "string": 5, "registrationid": 5, "gett1": 5, "usernam": 5, "gett2": 5, "think": 5, "sinc": 5, "reactiv": 5, "side": 5, "support": 5, "messag": 5, "It": 5, "clear": 5, "3": 5, "const": 5, "share": 5, "assert": 5, "setupdatabas": 5, "script": 5, "vm": 5, "chai": 5, "normalizedfunctionstr": 5, "bson": 5, "lib": 5, "parser": 5, "buffer": 5, "safe": 5, "feel": 5, "free": 5, "edit": 5, "section": 5, "introduc": 5, "modern": 5, "featur": 5, "object": 5, "destructur": 5, "what": 5, "whitespac": 5, "17": 5, "php": 5, "copyright": 5, "bold": 5, "brand": 5, "commerc": 5, "sp": 5, "z": 5, "o": 5, "all": 5, "right": 5, "reserv": 5, "licens": 5, "declar": 5, "strict_typ": 5, "namespac": 5, "ergonod": 5, "core": 5, "infrastructur": 5, "except": 5, "serializationexcept": 5, "extend": 5, "serializerexcept": 5, "__construct": 5, "throwabl": 5, "previou": 5, "null": 5, "parent": 5, "been": 5, "sharedkernel": 5, "modul": 5, "miss": 5, "header": 5, "separ": 5, "seem": 5, "veri": 5, "elgg": 5, "473": 5, "describ": 5, "gridf": 5, "stream": 5, "fail": 5, "tri": 5, "abort": 5, "uploadstream": 5, "tostr": 5, "equal": 5, "todo": 5, "node": 5, "3405": 5, "mongostreamclosederror": 5, "mongodrivererror": 5, "cannot": 5, "call": 5, "twice": 5, "close": 5, "done": 5, "ve": 5, "Is": 5, "still": 5, "problem": 5, "340": 5, "341": 5, "export": 5, "debugeditorcontribut": 5, "idebugeditorcontribut": 5, "runonceschedul": 5, "hoverwidget": 5, "hide": 5, "hover_delai": 5, "memoiz": 5, "privat": 5, "providenondebughoverschedul": 5, "where": 5, "dispos": 5, "runnabl": 5, "53": 5, "sasspars": 5, "cssparser": 5, "sass": 5, "variabl": 5, "font": 5, "size": 5, "12px": 5, "_parsevariabledeclar": 5, "panic": 5, "scanner": 5, "tokentyp": 5, "variabledeclar": 5, "var": 5, "cssvariabledeclar": 5, "super": 5, "_parsecssvariabledeclar": 5, "That": 5, "wrong": 5, "Not": 5, "place": 5, "suit": 5, "css": 5, "nit": 5, "after": 5, "minor": 5, "style": 5, "befor": 5, "537": 5, "23": 5, "interfac": 5, "completionlist": 5, "item": 5, "completionitem": 5, "contain": 5, "addit": 5, "inform": 5, "which": 5, "complet": 5, "completionitemprovid": 5, "providecompletionitem": 5, "trigger": 5, "completioncontext": 5, "manual": 5, "invoc": 5, "24x7": 5, "intellisens": 5, "incomplet": 5, "just": 5, "reason": 5, "439": 5, "441": 5, "debugservic": 5, "debug": 5, "idebugservic": 5, "debounceddisplaythread": 5, "rawdebugsess": 5, "timer": 5, "displaythreadstim": 5, "getid": 5, "cleartimeout": 5, "settimeout": 5, "fetchthread": 5, "undefin": 5, "onunexpectederror": 5, "m": 5, "sure": 5, "best": 5, "wai": 5, "would": 5, "better": 5, "265": 5, "266": 5, "33": 5, "mddocumentcontentprovid": 5, "textdocumentcontentprovid": 5, "300": 5, "documentheadingsprovid": 5, "documentsymbolprovid": 5, "daringfirebal": 5, "net": 5, "markdown": 5, "syntax": 5, "static": 5, "_atxpattern": 5, "_settext": 5, "doe": 5, "pick": 5, "_atxregex": 5, "directli": 5, "symbolprovid": 5, "24": 5, "10": 5, "abstract": 5, "abstractirlinenumbertest": 5, "abstractlinenumbertest": 5, "overrid": 5, "fun": 5, "comparecustom": 5, "psifil": 5, "ktfile": 5, "wholefil": 5, "val": 5, "filetext": 5, "text": 5, "expectedlinenumb": 5, "normal": 5, "substr": 5, "indexof": 5, "2": 5, "trim": 5, "map": 5, "tomutablelist": 5, "n": 5, "toregex": 5, "filter": 5, "line": 5, "simplifi": 5, "d": 5, "start": 5, "Then": 5, "digit": 5, "exclud": 5, "consist": 5, "old": 5, "backend": 5, "did": 5, "org": 5, "type": 5, "kotlintyp": 5, "typeutil": 5, "isprimitivenumbertyp": 5, "makenotnul": 5, "makenul": 5, "java": 5, "lang": 5, "assertionerror": 5, "pl": 5, "pr": 5, "kotlinconst": 5, "abstractchecklocalvariablestabletest": 5, "codegentestcas": 5, "assertnotnul": 5, "couldn": 5, "pattern": 5, "classfileregex": 5, "pathsstr": 5, "outputfil": 5, "actuallocalvari": 5, "readlocalvari": 5, "classread": 5, "asbytearrai": 5, "methodnam": 5, "checklocalvariabletyp": 5, "could": 5, "reus": 5, "reader": 5, "assertequ": 5, "expectedlocalvari": 5, "purpos": 5, "ignorecas": 5, "boolean": 5, "charact": 5, "unicod": 5, "surrog": 5, "unit": 5, "issurrog": 5, "min_surrog": 5, "max_surrog": 5, "minimum": 5, "valu": 5, "href": 5, "doc": 5, "oracl": 5, "javas": 5, "tutori": 5, "nutsandbolt": 5, "datatyp": 5, "html": 5, "link": 5, "tag": 5, "anywai": 5, "175": 5, "195": 5, "9": 5, "expressioncodegen": 5, "visitblockbodi": 5, "irblockbodi": 5, "blockinfo": 5, "stackvalu": 5, "statement": 5, "fold": 5, "none": 5, "exp": 5, "accept": 5, "irexpress": 5, "markendofstatementifneed": 5, "unrel": 5, "doesn": 5, "blockinforesolv": 5, "28": 5, "thumbnail": 5, "29": 5, "classnam": 5, "cuid": 5, "drag": 5, "drop": 5, "uuid": 5, "packag": 5, "actual": 5, "gonna": 5, "switch": 5, "ai": 5, "nanoid": 5, "everywher": 5, "smaller": 5, "fix": 5, "version": 5, "49": 5, "8": 5, "tab": 5, "compon": 5, "tabindex": 5, "multipl": 5, "prop": 5, "maxnumberoffil": 5, "same": 5, "shouldnt": 5, "onli": 5, "496": 5, "494": 5, "25": 5, "providerview": 5, "listallfil": 5, "re": 5, "catch": 5, "otherwis": 5, "happen": 5, "unnecessari": 5, "422": 5, "handleauth": 5, "authstat": 5, "btoa": 5, "json": 5, "stringifi": 5, "locat": 5, "redirect": 5, "localhost": 5, "authurl": 5, "state": 5, "protocol": 5, "hardcod": 5, "14": 5, "echo": 5, "end": 5, "copi": 5, "build": 5, "js": 5, "rm": 5, "rf": 5, "endtoend": 5, "dist": 5, "mkdir": 5, "cp": 5, "min": 5, "src": 5, "index": 5, "node_modul": 5, "uppy_vers": 5, "cat": 5, "grep": 5, "awk": 5, "sed": 5, "tr": 5, "archiv": 5, "npm": 5, "pack": 5, "prepublishonli": 5, "so": 5, "publish": 5, "one": 5, "thought": 5, "automat": 5, "insid": 5, "want": 5, "upgrad": 5, "newer": 5, "pretti": 5, "mediocr": 5, "understand": 5, "But": 5, "tend": 5, "someth": 5, "sensibl": 5, "struggl": 5, "pin": 5, "point": 5, "10169": 5, "34": 5, "39": 5, "55": 5, "84": 5, "slightli": 5, "nevertheless": 5, "low": 5, "hard": 5}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"code": [0, 2, 3], "review": [0, 2, 3], "autom": [0, 2], "languag": [0, 2], "model": [0, 2, 4], "overview": 0, "content": [0, 2], "1": [0, 4], "data": [0, 2, 3, 4], "collect": [0, 2, 3], "2": [0, 4], "infer": [0, 2, 4], "fine": [0, 4], "tune": [0, 4], "3": [0, 4], "evalu": [0, 2, 5], "metric": 0, "get": 0, "start": 0, "licens": 0, "contact": 0, "conclus": 1, "bibliographi": [1, 2], "introduct": 2, "codereview": [2, 4], "predict": [2, 4, 5], "tabl": 2, "token": 4, "dataset": 4, "load": 4, "function": 4, "huggingfac": 4, "pre": 4, "train": 4, "checkpoint": 4, "qualit": 5, "quantit": 5}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 6, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinxcontrib.bibtex": 9, "sphinx": 56}})
\ No newline at end of file