Permalink
Commits on Jan 19, 2019
  1. Save best model state in CPU memory instead of file (#224)

    seayoung1112 authored and facebook-github-bot committed Jan 19, 2019
    Summary:
    Pull Request resolved: #224
    
    Saving to file still has a potential race condition issue if we're training ensemble models in parallel, this diff changes the behavior to save it in cpu memory
    
    Reviewed By: borguz
    
    Differential Revision: D13740384
    
    fbshipit-source-id: 5040bc3bd7bd2766224eb6169daa84ed937adb72
  2. More comments and tests (#205)

    wowitsmrinal authored and facebook-github-bot committed Jan 19, 2019
    Summary:
    Pull Request resolved: #205
    
    Docstrings / Typehints / Comments
    Unit tests for RNNG Data Structures
    Unit tests for RNNG Parser
    Unit tests for Unkification
    
    Suggestions for more tests welcome
    
    Reviewed By: seayoung1112
    
    Differential Revision: D13671519
    
    fbshipit-source-id: 725b2a873d579d55053e0bc94525b33326f88c8b
Commits on Jan 18, 2019
  1. Make CosineAnnealingLR a batch-based scheduler (#214)

    mwu1993 authored and facebook-github-bot committed Jan 18, 2019
    Summary:
    Pull Request resolved: #214
    
    CosineAnnealingLR treats `last_epoch` as the batch number (https://pytorch.org/docs/stable/_modules/torch/optim/lr_scheduler.html#CosineAnnealingLR), and this should be updated every training step.
    
    Reviewed By: Titousensei
    
    Differential Revision: D13704662
    
    fbshipit-source-id: 1c859900e313a831c2610bf672daded8aaad3e1f
  2. Refactor optimizer similar to other components. (#8)

    arbabu123 authored and facebook-github-bot committed Jan 18, 2019
    Summary:
    This diff achieves the following objectives:
    - We will have a cleaner way of specifying optimizers. Only exact expected arguments can be provided for a particular optimizer. Giving momentum argument for Adam will throw exception.
    - It makes it easier to add new optimizers. By replacing the if-else-style create_optimizer(), optimizers can be defined from different files.
    - We remove support for multiple optimizers as this feature was not being used anywhere else and it was creating unnecessary complexity.
    
    Pull Request resolved: #8
    
    Reviewed By: hikushalhere
    
    Differential Revision: D13227927
    
    fbshipit-source-id: 2da3a1f8f456e6c4561375f62efa6596715a2880
  3. bump pytext-nlp wheel version (#216)

    Titousensei authored and facebook-github-bot committed Jan 18, 2019
    Summary:
    Pull Request resolved: #216
    
    to release pytext-nlp on pip after fixing hypothesis
    
    https://our.intern.facebook.com/intern/wiki/Assistant/PyText/PyPI/
    
    Reviewed By: chenyangyu1988
    
    Differential Revision: D13705817
    
    fbshipit-source-id: d0e01347bae8eb6d0ab6796f7f2807bd69223dd1
Commits on Jan 17, 2019
  1. save/load model only for rank==0 (#212)

    borguz authored and facebook-github-bot committed Jan 17, 2019
    Summary:
    Pull Request resolved: #212
    
    Save/load can break for distributed training with multiple processes writing to the same file.  Fix by only doing it for rank 0.
    
    Reviewed By: hikushalhere, seayoung1112
    
    Differential Revision: D13704156
    
    fbshipit-source-id: cb468f76ccda93e29735ab7badb130fedf946df9
  2. load dataset shard for training (#203)

    chenyangyu1988 authored and facebook-github-bot committed Jan 17, 2019
    Summary:
    Pull Request resolved: #203
    
    ```
    Mainly Change
    1. read_from_file and hive_reader will accept rank and world_size as input parameters, it will only load the sharded data that required by the node
    2. we take the shard based on rank + padding so that we don't need to know the dataset size ahead.
    
    offset = rank * (datasize // world_size) + min(rank, datasize % world_size)
    len = datasize // world_size + (1 if rank < datasize % world_size else 0)
    ```
    
    The intention of this diff is to reduce the memory usage when each node load the sharded dataset.
    
    The current implmentation is that every node will load the whole dataset into memory and then take the shard, which could cause OOM issue because num_gpus * dataset_size
    
    This diff enabled that
    1. each node will only load the sharded dataset into memory, which means the total memory usage should approximate same when compare multi gpus and single gpu
    2. we take the shard ranged based on formula offset = rank * (datasize // world_size) + min(rank, datasize % world_size) and shard_len =datasize // world_size + (1 if rank < datasize % world_size else 0) , and we might need to pad one more example in some sharded dataset
    
    Example
    dataset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    world_size = 3
    
    shard_1 = [1, 2, 3, 4]
    shard_2 = [5, 6, 7, 7]
    shard_3 = [8, 9, 10, 10]
    
    The benefits of this Sharding + Padding approach is that
    1. It doesn't require us to know the total dataset size in advance
    2. The padding guarantee that each shard have the same number of examples which means we don't need to handle potential batch different issue
    3. For every single shard, the maximum pad is 1 which is negligible when dataset size is large
    
    To be aware, the current hiveio API is not streamed, so there will still be OOM issue for hive reader even the dataset could fits in memory
    
    Reviewed By: ahhegazy
    
    Differential Revision: D13644994
    
    fbshipit-source-id: d51e55de4f9e2fda6d15980db06989f5712ef885
Commits on Jan 16, 2019
  1. Fix hypothesis dependency (#213)

    Titousensei authored and facebook-github-bot committed Jan 16, 2019
    Summary:
    Pull Request resolved: #213
    
    caffe2 uses min_satisfying_examples, which was removed in v4.0 of
    hypothesis. This diff makes sure we depend on an earlier version until this
    is fixed upstream
    
    Reviewed By: m3rlin45, chenyangyu1988
    
    Differential Revision: D13704590
    
    fbshipit-source-id: 057a33ecd3978b8c11077f475eac3c150d87f7dd
  2. remove epoch_size to simplify configuration (#207)

    borguz authored and facebook-github-bot committed Jan 16, 2019
    Summary:
    Pull Request resolved: #207
    
    The epoch_size parameter to define epochs is counterinutitive from user perspective.  One needs to know dataset size and divide by batch size to judge what the epoch_size should be.  This diff removes this parameter in favor of a binary flag, and a reasonable default epoch size.
    
    Two parameters are added:
    - upsample (in DisjointMultitaskDatahandler)
    - target_task_name (moved to DisjointMultitask.Config)
    
    If upsample = True (default):
    We'll cycle over each dataset repeatedly in round-robin fashion, so that shorter datasets will see more iterations (upsampled).  Epoch is defined to be the epoch of the target task, if defined, otherwise it's set to the length of the shortest dataset.
    
    If upsample = False:
    We do a single pass over each dataset.  Datasets which are short will sit idle some of the time.  This is used for evaluation.
    
    Reviewed By: seayoung1112
    
    Differential Revision: D13678696
    
    fbshipit-source-id: 96329f241686bc2479e405feda3a230494f12a39
  3. per task loss weights (#206)

    borguz authored and facebook-github-bot committed Jan 16, 2019
    Summary:
    Pull Request resolved: #206
    
    Adding a way to weight the losses of each task.
    
    Differential Revision: D13676800
    
    fbshipit-source-id: 5336de9c4336802f0572d06b5f882c65570ab199
Commits on Jan 15, 2019
  1. GPU OOM optimizations - use torch.no_grad() and save best model to di…

    borguz authored and facebook-github-bot committed Jan 15, 2019
    …sk (#204)
    
    Summary:
    Pull Request resolved: #204
    
    I fix the two GPU memory related issues that are identified below:
    
    - We save the state_dict of the current best model in memory, which takes up space. The fix is to save to disk and reload.
    
    - Eval takes unnecessary memory because we're not using the torch.no_grad() context for optimization.
    
    Reviewed By: hikushalhere, chenyangyu1988
    
    Differential Revision: D13642570
    
    fbshipit-source-id: 246a82d7ebebbeaaa6fc2747bd9f16e87cfc9537
  2. Fix and consolidate pretrained embeddings tests (#194)

    mwu1993 authored and facebook-github-bot committed Jan 15, 2019
    Summary:
    Pull Request resolved: #194
    
    `pytext/utils/tests/embeddings_utils_test.py` was incorrectly referencing a test data file - fix this and merge other tests at `pytext/tests/pretrained_embeds_test.py` into the same file. Also update `utils_test.py` reference to test data file for consistency.
    
    Reviewed By: hikushalhere
    
    Differential Revision: D13593728
    
    fbshipit-source-id: 76bd931dcf738559d77989f29a95ddb4c1770b85
  3. gen_default_config dynamically loads custom components (#196)

    Titousensei authored and facebook-github-bot committed Jan 15, 2019
    Summary:
    Pull Request resolved: #196
    
    Custom components are not import-ed in python main, gen_default_config
    can't find them. This diff dynamically loads the classes from the fully
    qualified class name.
    
    This is a fix for github issue #145
    
    Reviewed By: hikushalhere
    
    Differential Revision: D13604448
    
    fbshipit-source-id: 3245dcdf0b5ba3a4b8b7a27d525a66d7ec36a28d
Commits on Jan 11, 2019
  1. add temperature in kd doc classification (#199)

    Haoran Li authored and facebook-github-bot committed Jan 11, 2019
    Summary:
    Pull Request resolved: #199
    
    reference implementation from https://arxiv.org/pdf/1503.02531.pdf
    I'm actually not sure if we need to re-train the teacher using the same temperature. Quoting "In the simplest form of distillation, knowledge is transferred to the distilled model by training it on a transfer set and using a soft target distribution for each case in the transfer set that is produced by using the cumbersome model with a high temperature in its softmax. The same high temperature is used when training the distilled model, but after it has been trained it uses a temperature of 1."
    
    Reviewed By: gardenia22
    
    Differential Revision: D13605113
    
    fbshipit-source-id: 04dfb2c857db4d41f1b039df4ecfcb9399926683
Commits on Jan 10, 2019
  1. enable exporting individual models in disjoint multitask (#197)

    borguz authored and facebook-github-bot committed Jan 10, 2019
    Summary:
    Pull Request resolved: #197
    
    Currently model export for DisjointMultitask is not implemented.  Here we allow configuring exporter under each task, and export sub-models individually.
    
    Reviewed By: mwu1993
    
    Differential Revision: D13612990
    
    fbshipit-source-id: abf63db775f91367ee19c3132e71bd0d5115cf5e
Commits on Jan 9, 2019
  1. Make TensorBoard work with RNNG (#195)

    geof90 authored and facebook-github-bot committed Jan 9, 2019
    Summary:
    Pull Request resolved: #195
    
    Make TensorBoard work with RNNG. Exporter was crashing with use_tensorboard=true because RNNG exporter does not have a dummy_input, this is fixed to add the c2 net directly when calling add_graph.
    
    Also, reworked throttling in Manifold Writer (recent throttling caused data to not show up on the dashboard until the summary_writer is closed)
    
    Reviewed By: hikushalhere
    
    Differential Revision: D13596297
    
    fbshipit-source-id: 88e72186b4c3173996d52ac7d73f2533f238072c
Commits on Jan 8, 2019
  1. Gets rid of all doc gen warnings for Python 3.7 (#188)

    snisarg authored and facebook-github-bot committed Jan 8, 2019
    Summary:
    This fixes the error that was preventing doc generation in Python 3.7. Note that doc generation will still throw a warning for 3.6, but a lot of time has been spent trying to fix that by Chris and me and moving ahead is the best approach anyway. Therefore, this commit also updates doc generation on CircleCI and ReadTheDocs to Python 3.7. Finally, enabling failures on warning for Sphinx doc gen so we lock this down for good.
    
    Tested by building docs locally without errors
    
    <!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
    - [ ] Docs change / refactoring / dependency upgrade
    - [x] Bug fix (non-breaking change which fixes an issue)
    - [ ] New feature (non-breaking change which adds functionality)
    - [ ] Breaking change (fix or feature that would cause existing functionality to change)
    Pull Request resolved: #188
    
    Reviewed By: hikushalhere
    
    Differential Revision: D13582311
    
    Pulled By: snisarg
    
    fbshipit-source-id: e415d0740f9131ac875ab45183dceab90babb9df
  2. Export onnx model support (#187)

    qibaoyuan authored and facebook-github-bot committed Jan 8, 2019
    Summary:
    I have use org.bytedeco.javacpp-presets and deeplearning4j in my JAVA application to do Deep learning task in production env, and it can use onnx as a pre-trained model. So, I make this PR to copy the model as a .onnx file after it was converted from pytorch-type model.I make a "export_onnx_path" para, in this PR I split "--output-model-path" to "--output-caffe2-path" and "--output-onnx-path" in "export" command.
    
    my test code under JAVA applciation in javacpp-presets is as belows:
    ```java
    onnx.OpSchemaVector allSchemas = onnx.OpSchemaRegistry.get_all_schemas();
    System.out.println(allSchemas.size());
    
    byte[] bytes =
     Files.readAllBytes(Paths.get("/Users/qibaoyuan/Documents/source/project/pycharm/pytext/minlpdemo/ner/model.pt.prd.2.onnx"));
    
    onnx.ModelProto model = new onnx.ModelProto();
    ParseProtoFromBytes(model, new BytePointer(bytes), bytes.length);
    
    check_model(model);
    
    InferShapes(model);
    
    onnx.StringVector passes = new onnx.StringVector("eliminate_nop_transpose", "eliminate_nop_pad", "fuse_consecutive_transposes", "fuse_transpose_into_gemm");
    Optimize(model, passes);
    
    check_model(model);
    
    ConvertVersion(model, 8);
    
    System.out.println(model.graph().input_size());
    ```
    
    or in deeplearning4j:
    
    ```java
        public static OnnxProto3.GraphProto loadModel(final String file) {
            try (InputStream is = new ClassPathResource(file).getInputStream()) {
                OnnxProto3.GraphProto graphProto = OnnxProto3.GraphProto.parseFrom(is);
                log.debug("load model from onnx:[{}]", graphProto);
                return graphProto;
            } catch (Exception ex) {
                log.error("error:[{}]", ExceptionUtils.getStackTrace(ex));
            }
            return null;
    
        }
    ```
    
    <!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply: -->
    - [ ] Docs change / refactoring / dependency upgrade
    - [ ] Bug fix (non-breaking change which fixes an issue)
    - [x] New feature (non-breaking change which adds functionality)
    - [ ] Breaking change (fix or feature that would cause existing functionality to change)
    
    <!--- Go over all the following points, and put an `x` in all the boxes that apply. -->
    <!--- If you're unsure about any of these, don't hesitate to ask. We're here to help! -->
    - [x] My code follows the code style of this project.
    - [ ] My change requires a change to the documentation.
    - [ ] I have updated the documentation accordingly.
    - [x] I have read the **CONTRIBUTING** document.
    - [x] I have completed my CLA (see **CONTRIBUTING**)
    - [ ] I have added tests to cover my changes.
    - [ ] All new and existing tests passed.
    Pull Request resolved: #187
    
    Reviewed By: geof90
    
    Differential Revision: D13595227
    
    Pulled By: seayoung1112
    
    fbshipit-source-id: aa3c54d183d7f1236ef46fe07057b246efe9761b
  3. Select best epoch for target task (#193)

    borguz authored and facebook-github-bot committed Jan 8, 2019
    Summary:
    Pull Request resolved: #193
    
    Allow specifiying a target task for disjoint multitask training which will be used to select the best epoch on dev.
    
    Reviewed By: hikushalhere
    
    Differential Revision: D13406159
    
    fbshipit-source-id: aedecd2d8a3991ab07edfa96c4617c9ced793309
  4. implement knowledge distillation (#147)

    gardenia22 authored and facebook-github-bot committed Jan 8, 2019
    Summary:
    Pull Request resolved: #147
    
    Implementation of Knowledge Distillation, follow the paper https://arxiv.org/abs/1503.02531
    
    Now we only support distill doc classification teacher models with BinaryCrossEntropyLoss and CrossEntropyLoss, with the flexibility of whatever representation or decoder layers used in teacher model.
    
    We create a new task called "KDDocClassificationTask", including:
    1. "KDDocClassificationDataHandler" to process the probability and logit training input,
    2. new KD loss functions:  "KLDivergenceBCELoss", "KLDivergenceCELoss", "SoftHardBCELoss"
    3. config file for kd_doc_classification (some parts are duplicated with doc_classification)
    4. unittest for data handler
    5. integration test config file
    
    This diff doesn't implement the temperature tuning mentioned in paper, but will add it in the future.
    
    Prominent experimental results of compressed model with KD are available here:
    
    https://fb.workplace.com/notes/honglei-liu/proactive-m-suggestion-models-on-device/366801604075857/
    https://fb.workplace.com/notes/haoran-li/shippable-pre-trained-representation/387823601961318/
    
    And we already have productionized kd models, more results here:
    
    https://fb.workplace.com/notes/nanshu-wang/productionized-model-compressed-with-bytenn-knowledge-distillation-live-in-m-sug/228186384748203/
    
    Reviewed By: liaimi, ppuliu
    
    Differential Revision: D12990020
    
    fbshipit-source-id: dfa9031b6cbe4285dd3f5095b5a33a9bf7334887
Commits on Jan 7, 2019
  1. init metadata brefore spawn process (#136)

    chenyangyu1988 authored and facebook-github-bot committed Jan 7, 2019
    Summary:
    Pull Request resolved: #136
    
    init metadata before spawn processes
    Currently init_metadata will load the whole dataset for building vocab, and if we do this operation in every single process in distributed training, it will increase 8x memory usage which might cause OOMs given some dataset would take 30G (x8 is 240G).
    
    Instead of init metadata inside each process, we prepare the distributed context (metadata) before spawn and pass metadata for create task
    
    Reviewed By: seayoung1112
    
    Differential Revision: D13503441
    
    fbshipit-source-id: 423139fb0a7ad0003e4694afc644f494c2a8e370
Commits on Jan 3, 2019
  1. Cleanup Hogwild trainer (#176)

    geof90 authored and facebook-github-bot committed Jan 3, 2019
    Summary:
    Pull Request resolved: #176
    
    Fix possible race conditions in Hogwild trainer.
    We join all the parallel processes after traning every epoch, and do evaulation after joining, so that we dont encounter races during evaluation and model selection.
    
    This implementation is similar to what sklearn is doing: https://github.com/srome/sklearn-hogwild/blob/master/hogwildsgd.py#L78
    
    Reviewed By: sonalgupta
    
    Differential Revision: D13426423
    
    fbshipit-source-id: 10010c4fbb9832c7429778cb16cec364f357f3c3
  2. Refactoring RNNGParser's Config helper classes. (#179)

    snisarg authored and facebook-github-bot committed Jan 3, 2019
    Summary:
    Moving the enum style classes used in RNNGParser's config into the Config file itself. This is more in lines with how the other config classes are arranged in the package, and also gets rid of doc generate warnings.
    Pull Request resolved: #179
    
    Reviewed By: bethebunny
    
    Differential Revision: D13568649
    
    Pulled By: snisarg
    
    fbshipit-source-id: 10b52adbc844f684f34f7bdacac8dd08b6e3d5d3
Commits on Jan 2, 2019
  1. Fix typos (#177)

    Rowayda-Khayri authored and facebook-github-bot committed Jan 2, 2019
    Summary:
    This PR is to fix typos.
    Pull Request resolved: #177
    
    Reviewed By: jhcross
    
    Differential Revision: D13564244
    
    Pulled By: m3rlin45
    
    fbshipit-source-id: 164b83da55db3b880a8aedb2b2b028de212cbc8f
  2. Enabling multithreading in doc generation, fixing warning (#180)

    snisarg authored and facebook-github-bot committed Jan 2, 2019
    Summary:
    This will fix 1 warning during doc generation.
    Pull Request resolved: #180
    
    Reviewed By: m3rlin45
    
    Differential Revision: D13568530
    
    Pulled By: snisarg
    
    fbshipit-source-id: 23c3bb8e2f0a408847d0114309e559845c033ae0
Commits on Dec 29, 2018
  1. Fix docstrings (#166)

    m3rlin45 authored and facebook-github-bot committed Dec 29, 2018
    Summary:
    Attacks issues related to indentation and formatting of docstrings. There are 3 families of issues:
    1.) bad indentation of individual lines of otherwise good docstrings, these are simple fixes
    2.) docstrings not following proper style, simple fixes again
    3.) docstrings on config classes, which don't get parsed at all. These are being fixed via unindenting them at read time
    Pull Request resolved: #166
    
    Reviewed By: chenyangyu1988
    
    Differential Revision: D13554248
    
    Pulled By: m3rlin45
    
    fbshipit-source-id: 94a184acd30b7454dfc19e4e0a4516c37a2f4532
Commits on Dec 28, 2018
  1. Print out utterance for tree validation errors for RNNG (#172)

    Emily Wang authored and facebook-github-bot committed Dec 28, 2018
    Summary:
    Pull Request resolved: #172
    
    Print out the utterance that results in tree validation errors in the Tree class in annotation.py. This will be helpful for debugging.
    
    Reviewed By: bethebunny
    
    Differential Revision: D13556119
    
    fbshipit-source-id: 18db450f0aeae69e9f0f7a5a54999e601cf0b2bc
  2. Removed models.rst (#174)

    m3rlin45 authored and facebook-github-bot committed Dec 28, 2018
    Summary:
    This file is not referenced in our TOC and doesn't appear to actually be used.
    If we want to revive it in the future, we can do so, but for now, removing it fixes 4 warnings and doesn't actually change the appearance of the docs.
    Pull Request resolved: #174
    
    Reviewed By: hikushalhere
    
    Differential Revision: D13559259
    
    Pulled By: m3rlin45
    
    fbshipit-source-id: d331c01377cbbec48621995d0ff4de69a72fde62
  3. Reduce duplicate indices (#165)

    m3rlin45 authored and facebook-github-bot committed Dec 28, 2018
    Summary:
    our config objects are being added to the index twice, once in the modules docs, once in the config docs. This change removes the config doc verions from the index. Long term we likely want to merge these, but for now, this will do.
    
    based on discussion here:
    sphinx-doc/sphinx#3866
    Pull Request resolved: #165
    
    Reviewed By: bethebunny
    
    Differential Revision: D13553706
    
    Pulled By: m3rlin45
    
    fbshipit-source-id: 62a23cce983e3e3a10a8169c990b9af9c12278bd
Commits on Dec 27, 2018
  1. typo: tensorboard -> tensorflow

    silky authored and facebook-github-bot committed Dec 27, 2018
    Summary: Pull Request resolved: #168
    
    Differential Revision: D13555818
    
    Pulled By: geof90
    
    fbshipit-source-id: c72c85b46fbbd8a34ca3a2cb9fa1b461a449ed62
  2. Fix Atis Tutorial Reference in Docstring (#163)

    m3rlin45 authored and facebook-github-bot committed Dec 27, 2018
    Summary:
    The reference to the atis tutorial in model.py doesn't work properly and is throwing a warning. This fixes it.
    Pull Request resolved: #163
    
    Reviewed By: bethebunny
    
    Differential Revision: D13553444
    
    Pulled By: m3rlin45
    
    fbshipit-source-id: 4d9fbb111e555a696622a9d216ff06f336358f37
  3. Fix all warnings in tutorials (#164)

    m3rlin45 authored and facebook-github-bot committed Dec 27, 2018
    Summary:
    This fixes all sphinx warnings found in our handwritten tutorial pages
    Pull Request resolved: #164
    
    Reviewed By: bethebunny
    
    Differential Revision: D13553454
    
    Pulled By: m3rlin45
    
    fbshipit-source-id: 0503cab24834f142bbada5b133336af149dacaf3
  4. Ignore generated documentation sources in git (#162)

    m3rlin45 authored and facebook-github-bot committed Dec 27, 2018
    Summary:
    We generate a lot of source files as part of our documentation build process. These are generated files and should not be checked in
    Pull Request resolved: #162
    
    Reviewed By: bethebunny
    
    Differential Revision: D13553414
    
    Pulled By: m3rlin45
    
    fbshipit-source-id: d685a4402d74af3d8a680d72cb48e574ce68584b
  5. Support TensorBoard visualization in OSS workflows (#153)

    geof90 authored and facebook-github-bot committed Dec 27, 2018
    Summary:
    Pull Request resolved: #153
    
    Support TensorBoard visualization in OSS workflows
    
    Reviewed By: snisarg
    
    Differential Revision: D13547620
    
    fbshipit-source-id: 748864d626b6af1cbfa3ead4c86380d6b8d1343d
Commits on Dec 26, 2018
  1. Using existing config file for export and predict. (#156)

    snisarg authored and facebook-github-bot committed Dec 26, 2018
    Summary:
    We observed a lot of questions regarding the location of the "config.json" file for export and train steps. We expect this file to be created by the user, but for the sake of simplicity and initial trails, it's better to point users to us the existing file. This will also ease users trying the framework for the first time and support questions on both GitHub Issues and FB group.
    Pull Request resolved: #156
    
    Reviewed By: hikushalhere
    
    Differential Revision: D13550588
    
    Pulled By: snisarg
    
    fbshipit-source-id: 158c08661d78b9f0e82578790cddc258d298ef8e