diff --git a/tensorflow/python/saved_model/README.md b/tensorflow/python/saved_model/README.md
index fe69f3beb01..a5c0aa894f6 100644
--- a/tensorflow/python/saved_model/README.md
+++ b/tensorflow/python/saved_model/README.md
@@ -3,49 +3,37 @@
 [TOC]
 
 ## Overview
-This document describes SavedModel, the universal serialization format for
+
+SavedModel is the universal serialization format for
 [TensorFlow](https://www.tensorflow.org/) models.
 
-SavedModel provides a language-neutral format to save machine-learned models
+SavedModel provides a language-neutral format to save machine-learning models
 that is recoverable and hermetic. It enables higher-level systems and tools to
 produce, consume and transform TensorFlow models.
 
-## Features
+## Guides
+* [Using the SavedModel Format](https://www.tensorflow.org/guide/saved_model)
+* [Save and load Keras models](https://www.tensorflow.org/guide/keras/save_and_serialize)
+* [Save and load with checkpointing in Keras](https://www.tensorflow.org/tutorials/keras/save_and_load)
+* [Training checkpoints](https://www.tensorflow.org/guide/checkpoint)
+* [Save and load a model using a distribution strategy](https://www.tensorflow.org/tutorials/distribute/save_and_load)
 
-The following is a summary of the features in SavedModel:
 
-* Multiple graphs sharing a single set of variables and assets can be added to a
-  single SavedModel. Each graph is associated with a specific set of tags to
-  allow identification during a load or restore operation.
-* Support for `SignatureDefs`
-    * Graphs that are used for inference tasks typically have a set of inputs
-      and outputs. This is called a `Signature`.
-    * SavedModel uses [SignatureDefs](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/protobuf/meta_graph.proto)
-      to allow generic support for signatures that may need to be saved with the graphs.
-    * For commonly used SignatureDefs in the context of TensorFlow Serving,
-      please see documentation [here](https://github.com/tensorflow/serving/blob/master/tensorflow_serving/g3doc/signature_defs.md).
-* Support for `Assets`.
-    * For cases where ops depend on external files for initialization, such as
-      vocabularies, SavedModel supports this via `assets`.
-    * Assets are copied to the SavedModel location and can be read when loading
-      a specific meta graph def.
-* Support to clear devices before generating the SavedModel.
+## [Public API](https://www.tensorflow.org/api_docs/python/tf/saved_model)
+* [`tf.saved_model.save`](https://www.tensorflow.org/api_docs/python/tf/saved_model/save)
+* [`tf.saved_model.load`](https://www.tensorflow.org/api_docs/python/tf/saved_model/load)
+* [`tf.saved_model.SaveOptions`](https://www.tensorflow.org/api_docs/python/tf/saved_model/SaveOptions)
+* [`tf.saved_model.LoadOptions`](https://www.tensorflow.org/api_docs/python/tf/saved_model/LoadOptions)
+* [`tf.saved_model.Asset`](https://www.tensorflow.org/api_docs/python/tf/saved_model/Asset)
+* [`tf.saved_model.contains_saved_model`](https://www.tensorflow.org/api_docs/python/tf/saved_model/contains_saved_model)
 
-The following is a summary of features that are NOT supported in SavedModel.
-Higher-level frameworks and tools that use SavedModel may provide these.
+### Related Modules and Functions
+* [`tf.keras.models.save_model`](https://www.tensorflow.org/api_docs/python/tf/keras/models/save_model)
+* [`tf.keras.models.load_model`](https://www.tensorflow.org/api_docs/python/tf/keras/models/load_model)
+* [`tf.train.Checkpoint`](https://www.tensorflow.org/api_docs/python/tf/train/Checkpoint)
 
-* Implicit versioning.
-* Garbage collection.
-* Atomic writes to the SavedModel location.
 
-## Background
-SavedModel manages and builds upon existing TensorFlow primitives such as
-`TensorFlow Saver` and `MetaGraphDef`. Specifically, SavedModel wraps a [TensorFlow Saver](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/python/training/saver.py).
-The Saver is primarily used to generate the variable checkpoints. SavedModel
-will replace the existing [TensorFlow Inference Model Format](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/contrib/session_bundle/README.md)
-as the canonical way to export TensorFlow graphs for serving.
-
-## Components
+## The SavedModel Format
 A SavedModel directory has the following structure:
 
 ```
@@ -57,72 +45,23 @@ variables/
 saved_model.pb
 ```
 
-* SavedModel protocol buffer
-    * `saved_model.pb` or `saved_model.pbtxt`
-    * Includes the graph definitions as `MetaGraphDef` protocol buffers.
-* Assets
-    * Subfolder called `assets`.
-    * Contains auxiliary files such as vocabularies, etc.
-* Extra assets
-    * Subfolder where higher-level libraries and users can add their own assets
-      that co-exist with the model, but are not loaded by the graph.
-    * This subfolder is not managed by the SavedModel libraries.
-* Variables
-    * Subfolder called `variables`.
-    * Includes output from the [TensorFlow Saver](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/python/training/saver.py).
-        * `variables.data-?????-of-?????`
-        * `variables.index`
+*   SavedModel protocol buffer
+    *   [`saved_model.pb`](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/protobuf/saved_model.proto)
+        or `saved_model.pbtxt`
+    *   Includes the graph definitions as `MetaGraphDef` protocol buffers.
+*   Assets
+    *   Subfolder called `assets`.
+    *   Contains auxiliary files such as vocabularies, etc.
+*   Extra assets
+    *   Subfolder where higher-level libraries and users can add their own
+        assets that co-exist with the model, but are not loaded by the graph.
+    *   This subfolder is not managed by the SavedModel libraries.
+*   Variables
+    *   Subfolder called `variables`.
+        *   `variables.data-?????-of-?????`
+        *   `variables.index`
 
-## APIs
-The APIs for building and loading a SavedModel are described in this section.
-
-### Builder
-The SavedModel [builder](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/saved_model/builder.py)
-is implemented in Python.
-
-The `SavedModelBuilder` class provides functionality to save multiple meta graph
-defs, associated variables and assets.
-
-To build a SavedModel, the first meta graph must be saved with variables.
-Subsequent meta graphs will simply be saved with their graph definitions. If
-assets need to be saved and written or copied to disk, they can be provided
-when the meta graph def is added. If multiple meta graph defs are associated
-with an asset of the same name, only the first version is retained.
-
-#### Tags
-Each meta graph added to the SavedModel must be annotated with user specified
-tags, which reflect the meta graph capabilities or use-cases.
-More specifically, these tags typically annotate a meta graph with its
-functionality (e.g. serving or training), and possibly hardware specific aspects
-such as GPU.
-In the SavedModel, the meta graph def whose tag-set exactly matches those
-specified in the loader API, will be the one loaded by the loader.
-If no meta graph def is found matching the specified tags, an error is returned.
-For example, a loader with a requirement to serve on GPU hardware would be able
-to load only meta graph annotated with tags='serve,gpu' by specifying this set
-of tags in tensorflow::LoadSavedModel(...).
-
-
-#### Usage
-The typical usage of `builder` is as follows:
-
-~~~python
-export_dir = ...
-...
-builder = tf.saved_model.builder.SavedModelBuilder(export_dir)
-with tf.Session(graph=tf.Graph()) as sess:
-  ...
-  builder.add_meta_graph_and_variables(sess,
-                                       [tf.saved_model.tag_constants.TRAINING],
-                                       signature_def_map=foo_signatures,
-                                       assets_collection=foo_assets)
-...
-with tf.Session(graph=tf.Graph()) as sess:
-  ...
-  builder.add_meta_graph(["bar-tag", "baz-tag"])
-...
-builder.save()
-~~~
+---
 
 #### Stripping Default valued attributes
 The SavedModelBuilder class allows users to control whether default-valued
@@ -152,60 +91,3 @@ models regenerated with newer training binaries.
 TIP: If you care about forward compatibility, then set `strip_default_attrs`
 to `True` while using `SavedModelBuilder.add_meta_graph_and_variables` and
 `SavedModelBuilder.add_meta_graph`.
-
-### Loader
-The SavedModel loader is implemented in C++ and Python.
-
-#### Python
-The Python version of the SavedModel [loader](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/saved_model/loader.py)
-provides load and restore capability for a SavedModel. The `load` operation
-requires the session in which to restore the graph definition and variables, the
-tags used to identify the meta graph def to load and the location of the
-SavedModel. Upon a load, the subset of variables and assets supplied as part of
-the specific meta graph def, will be restored into the supplied session.
-
-~~~python
-export_dir = ...
-...
-with tf.Session(graph=tf.Graph()) as sess:
-  tf.saved_model.loader.load(sess, [tag_constants.TRAINING], export_dir)
-  ...
-~~~
-
-#### C++
-The C++ version of the SavedModel [loader](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/cc/saved_model/loader.h)
-provides an API to load a SavedModel from a path, while allowing
-`SessionOptions` and `RunOptions`. Similar to the Python version, the C++
-version requires the tags associated with the graph to be loaded, to be
-specified. The loaded version of SavedModel is referred to as `SavedModelBundle`
-and contains the meta graph def and the session within which it is loaded.
-
-~~~c++
-const string export_dir = ...
-SavedModelBundle bundle;
-...
-LoadSavedModel(session_options, run_options, export_dir, {kSavedModelTagTrain},
-               &bundle);
-~~~
-
-### Constants
-SavedModel offers the flexibility to build and load TensorFlow graphs for a
-variety of use-cases. For the set of most common expected use-cases,
-SavedModel's APIs provide a set of constants in Python and C++ that are easy to
-reuse and share across tools consistently.
-
-#### Tag constants
-Sets of tags can be used to uniquely identify a `MetaGraphDef` saved in a
-SavedModel. A subset of commonly used tags is specified in:
-
-* [Python](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/saved_model/tag_constants.py)
-* [C++](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/cc/saved_model/tag_constants.h).
-
-#### Signature constants
-SignatureDefs are used to define the signature of a computation supported in a
-TensorFlow graph. Commonly used input keys, output keys and method names are
-defined in:
-
-* [Python](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/saved_model/signature_constants.py)
-* [C++](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/cc/saved_model/signature_constants.h).
-