Comments (1)
Hi and sorry for the late answer,
We created the tests by generating test cases for each problem, then running the generated tests on the ground truth. We considered the unit tests we generated to be correct if they all pass for the ground truth independently for each language. For instance, if the generated unit tests succeed for the Python version but not for the C++ version, we will add an example in the valid or test set for X -> Python but not for Y -> C++. That explains why we don't have the same number of valid unit tests for C++ -> Java and Java -> C++ for instance.
It is debatable whether that's the right thing to do, as we have seen a few examples where the functions were not exactly parallel (e.g. global variables in C++ but not in Python) and that was causing the tests to fail only in C++. Taking the intersection instead would reduce the number of valid/test examples and also probably increase the average quality of the sets and result in higher scores. On the other hand, if we assume that the translation will always fail when the functions are not parallel, the current version will still correlate well with model performance and have lower variance due to us accepting extra correct examples for which only one of the test suites failed.
About the difference between the number of unit tests in the unit test folder vs what we actually test on, we removed a few functions that had too many tokens from our test set and the generated tests are still in the test folder. That's why you have 1 or 2 examples that have unit tests but that we didn't test on (e.g. for C++ 231 + 466 = 697 so one was too long).
Tell me if you still have some questions.
More precisely, we remove all the sentences with more than 512 tokens in either the source or the target language, corresponding to these test IDs DYNAMIC_PROGRAMMING_SET_37_BOOLEAN_PARENTHESIZATION_PROBLEM for the test set and all language pairs and MOBILE_NUMERIC_KEYPAD_PROBLEM for Java and Python in the validation set.
from codegen.
Related Issues (20)
- Are Decompilation Model Checkpoints available to share?
- Is there a method to directly evaluate my trasnlated code snippets?
- Possible overfitting with "TransCoder_model_1.pth" from Java -> Python
- missing file requirements-notorch.txt HOT 2
- Error : ModuleNotFoundError: No module named 'packaging' #793
- The lack of paralled dataset in Transcoder-IR
- Assertion `srcIndex < srcSelectDimSize` failed HOT 4
- Pretrain modell HOT 1
- Bug in epoch calculation
- Could you please build a website to support API to translate the program languages?
- Empty .sa.tok files after select_functions & request to release self_training dataset
- typo in readme: donwload HOT 2
- `fastBPE` fix path
- Lang embeddings loading
- Untokenized version of transcoder_test_set.zip
- [Question] How to write extract_function method?
- Training MLM with reload model as TransCoder_model_1 on csharp monolingual data generated from pre_processing
- [Question]retrained the original TransCoder model, translation was not good
- Parallel dataset generated by TransCoder-ST
- Go and Rust models HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from codegen.