Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable multi-source input in marian-server #505

Closed
wants to merge 357 commits into from
Closed

Conversation

tomekd
Copy link
Member

@tomekd tomekd commented Sep 19, 2019

At the moment, marian-server could not handle multi-source models. This pull request aims to fix this problem. The solution assumes that the source inputs are separated by \t.

Additionally, I noticed that marian-server does not follows max-length limitations. I fixed it too.

frankseide and others added 28 commits October 22, 2019 17:28
…st and all features that

This PR is to allow Marian to be built on Windows without Boost, since Boost 1.66 causes build errors under Flo.

With this PR, if the preprocessor symbol `NO_BOOST` is defined, Boost will not be included anywhere, and configurations that rely on that cannot be used.

The long-term goal is to remove Boost completely. This `#define` allows to easily locate all relevant locations.

Boost is currently used for two things:

* the timer in the AutoTuner
* when shuffling the corpus to a temp file (not --shuffle-in-ram)

With `NO_BOOST`, attempting to shuffle to file will terminate the program, and auto-tuner will select the first algorithm.

Not tested with Linux.
ykim362 and others added 21 commits March 25, 2020 02:52
…in/max quantization to avoid overflow

1. Change the weight matrix quantization to use 7-bit min/max quantization
-> This resolves all the overflow issue, because weight and activations are quantized by min/max range.
2. Clip fp16 quantization to avoid overflow
3. Fix windows build errors (cmake options, vcproj file)
4. int8 pack model (encoder -> fp16)
…encoders as well

For int8 quantized model, use int8 quantization for encoders as well. The quality difference between fp16 encoder and int8 encoder is small, but they have quite amount of speed difference.
* Add basic support for TSV inputs
* Fix mini-batch-fit for TSV inputs
* Abort if shuffling data from stdin
* Fix terminating training with data from STDIN
* Allow creating vocabs from TSV files
* Add comments; clean creation of vocabs from TSV files
* Guess --tsv-size based on the model type
* Add shortcut for STDIN inputs
* Rename --tsv-size to --tsv-fields
* Allow only one 'stdin' in --train-sets
* Properly create separate vocabularies from a TSV file
* Clearer logging message
* Add error message for wrong number of valid sets if --tsv is used
* Use --no-shuffle instead of --shuffle in the error message
* Fix continuing training from STDIN
* Update CHANGELOG
* Support both 'stdin' and '-'
* Guess --tsv-fields from dim-vocabs if special:model.yml available
* Update error messages
* Move variable outside the loop
* Refactorize utils::splitTsv; add unit tests
* Support '-' as stdin; refactorize; add comments
* Abort if excessive field(s) in the TSV input
* Add a TODO on passing one vocab with fully-tied embeddings
* Remove the unit test with excessive tab-separated fields
* fix 0 * nan behavior in concatention
* bump patch
* change epsilon to margin
* Refactorize processPaths
* Fix relative paths for shortlist and sqlite options
* Rename InterpolateEnvVars to interpolateEnvVars
* Update CHANGELOG
…anch

Cherry pick a few improvements/fixes from Frank's branch
* Adds Frank's fix for label-based mini-batch sizing from Frank's current experimental branch.
* Also copies minor improvements and a few comments.
* python3 shebang from #620
* Add changelog entry for python3 change
@snukky
Copy link
Member

snukky commented Apr 18, 2020

I will revisit this soon after merging #617.

snukky and others added 4 commits April 26, 2020 16:43
* Fix server build with current boost, move simple-websocket-server to submodule
* Change submodule to marian-nmt/Simple-WebSocket-Server
* Update submodule simple-websocket-server

Co-authored-by: Gleb Tv <glebtv@gmail.com>
@snukky
Copy link
Member

snukky commented May 1, 2020

It seems that GitHub got confused after merging with the current master. I will open a new pull request that replaces this one.

@snukky snukky closed this May 1, 2020
@snukky snukky deleted the multi-source-server branch February 15, 2022 12:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants