Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • M metaseq
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 95
    • Issues 95
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 41
    • Merge requests 41
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Administrator
  • metaseq
  • Issues
  • #8
Closed
Open
Issue created Mar 19, 2022 by Administrator@rootOwner

Unify model and task registries with... everything else.

Created by: suchenzang

From looking at the merge_with_parent method, we see:

(base) √ fairseq-big-internal % ag merge_with_parent
fairseq/tasks/__init__.py
12:from fairseq.dataclass.utils import merge_with_parent, populate_dataclass
39:            cfg = merge_with_parent(dc(), cfg)

fairseq/registry.py
10:from fairseq.dataclass.utils import populate_dataclass, merge_with_parent
40:                cfg = merge_with_parent(dc(), cfg)

fairseq/models/__init__.py
12:from fairseq.dataclass.utils import merge_with_parent, populate_dataclass
81:            cfg = merge_with_parent(dc(), cfg)

fairseq/dataclass/utils.py
463:def merge_with_parent(dc: FairseqDataclass, cfg: FairseqDataclass):

What is notable here is that models and tasks are the only two modules that doesn't call on the fairseq/registry.py shared file. Meanwhile:

(base) √ fairseq-big-internal % ag setup_registry
fairseq/registry.py
17:def setup_registry(registry_name: str, base_class=None, default=None, required=False):

fairseq/optim/lr_scheduler/__init__.py
23:) = registry.setup_registry(

fairseq/optim/__init__.py
31:) = registry.setup_registry("--optimizer", base_class=FairseqOptimizer, required=True)

fairseq/data/encoders/__init__.py
13:build_tokenizer, register_tokenizer, TOKENIZER_REGISTRY, _ = registry.setup_registry(
19:build_bpe, register_bpe, BPE_REGISTRY, _ = registry.setup_registry(

fairseq/criterions/__init__.py
23:) = registry.setup_registry(

use registry to setup configurations.

Figure out how to unify these (or what a good reason for leaving model/task untouched would be).

Assignee
Assign to
Time tracking