TheBloke commited on
Commit
73d97d4
1 Parent(s): 50dc594

Upload README.md

Browse files
Files changed (1) hide show
  1. README.md +442 -0
README.md ADDED
@@ -0,0 +1,442 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ base_model: FPHam/Sarah_StoryTeller_13b_HF
3
+ inference: false
4
+ license: llama2
5
+ model_creator: FPHam
6
+ model_name: Sarah Storyteller 13B
7
+ model_type: llama
8
+ prompt_template: '### Instruction:
9
+
10
+
11
+ {prompt}
12
+
13
+
14
+ ### Response:
15
+
16
+ '
17
+ quantized_by: TheBloke
18
+ tags:
19
+ - llm
20
+ - llama
21
+ - spellcheck
22
+ - grammar
23
+ ---
24
+ <!-- markdownlint-disable MD041 -->
25
+
26
+ <!-- header start -->
27
+ <!-- 200823 -->
28
+ <div style="width: auto; margin-left: auto; margin-right: auto">
29
+ <img src="https://i.imgur.com/EBdldam.jpg" alt="TheBlokeAI" style="width: 100%; min-width: 400px; display: block; margin: auto;">
30
+ </div>
31
+ <div style="display: flex; justify-content: space-between; width: 100%;">
32
+ <div style="display: flex; flex-direction: column; align-items: flex-start;">
33
+ <p style="margin-top: 0.5em; margin-bottom: 0em;"><a href="https://discord.gg/theblokeai">Chat & support: TheBloke's Discord server</a></p>
34
+ </div>
35
+ <div style="display: flex; flex-direction: column; align-items: flex-end;">
36
+ <p style="margin-top: 0.5em; margin-bottom: 0em;"><a href="https://www.patreon.com/TheBlokeAI">Want to contribute? TheBloke's Patreon page</a></p>
37
+ </div>
38
+ </div>
39
+ <div style="text-align:center; margin-top: 0em; margin-bottom: 0em"><p style="margin-top: 0.25em; margin-bottom: 0em;">TheBloke's LLM work is generously supported by a grant from <a href="https://a16z.com">andreessen horowitz (a16z)</a></p></div>
40
+ <hr style="margin-top: 1.0em; margin-bottom: 1.0em;">
41
+ <!-- header end -->
42
+
43
+ # Sarah Storyteller 13B - AWQ
44
+ - Model creator: [FPHam](https://huggingface.co/FPHam)
45
+ - Original model: [Sarah Storyteller 13B](https://huggingface.co/FPHam/Sarah_StoryTeller_13b_HF)
46
+
47
+ <!-- description start -->
48
+ ## Description
49
+
50
+ This repo contains AWQ model files for [FPHam's Sarah Storyteller 13B](https://huggingface.co/FPHam/Sarah_StoryTeller_13b_HF).
51
+
52
+ These files were quantised using hardware kindly provided by [Massed Compute](https://massedcompute.com/).
53
+
54
+
55
+ ### About AWQ
56
+
57
+ AWQ is an efficient, accurate and blazing-fast low-bit weight quantization method, currently supporting 4-bit quantization. Compared to GPTQ, it offers faster Transformers-based inference with equivalent or better quality compared to the most commonly used GPTQ settings.
58
+
59
+ AWQ models are currently supported on Linux and Windows, with NVidia GPUs only. macOS users: please use GGUF models instead.
60
+
61
+ It is supported by:
62
+
63
+ - [Text Generation Webui](https://github.com/oobabooga/text-generation-webui) - using Loader: AutoAWQ
64
+ - [vLLM](https://github.com/vllm-project/vllm) - version 0.2.2 or later for support for all model types.
65
+ - [Hugging Face Text Generation Inference (TGI)](https://github.com/huggingface/text-generation-inference)
66
+ - [Transformers](https://huggingface.co/docs/transformers) version 4.35.0 and later, from any code or client that supports Transformers
67
+ - [AutoAWQ](https://github.com/casper-hansen/AutoAWQ) - for use from Python code
68
+
69
+ <!-- description end -->
70
+ <!-- repositories-available start -->
71
+ ## Repositories available
72
+
73
+ * [AWQ model(s) for GPU inference.](https://huggingface.co/TheBloke/Sarah_StoryTeller_13b-AWQ)
74
+ * [GPTQ models for GPU inference, with multiple quantisation parameter options.](https://huggingface.co/TheBloke/Sarah_StoryTeller_13b-GPTQ)
75
+ * [2, 3, 4, 5, 6 and 8-bit GGUF models for CPU+GPU inference](https://huggingface.co/TheBloke/Sarah_StoryTeller_13b-GGUF)
76
+ * [FPHam's original unquantised fp16 model in pytorch format, for GPU inference and for further conversions](https://huggingface.co/FPHam/Sarah_StoryTeller_13b_HF)
77
+ <!-- repositories-available end -->
78
+
79
+ <!-- prompt-template start -->
80
+ ## Prompt template: Alpaca-InstructOnly
81
+
82
+ ```
83
+ ### Instruction:
84
+
85
+ {prompt}
86
+
87
+ ### Response:
88
+
89
+ ```
90
+
91
+ <!-- prompt-template end -->
92
+
93
+
94
+ <!-- README_AWQ.md-provided-files start -->
95
+ ## Provided files, and AWQ parameters
96
+
97
+ I currently release 128g GEMM models only. The addition of group_size 32 models, and GEMV kernel models, is being actively considered.
98
+
99
+ Models are released as sharded safetensors files.
100
+
101
+ | Branch | Bits | GS | AWQ Dataset | Seq Len | Size |
102
+ | ------ | ---- | -- | ----------- | ------- | ---- |
103
+ | [main](https://huggingface.co/TheBloke/Sarah_StoryTeller_13b-AWQ/tree/main) | 4 | 128 | [VMware Open Instruct](https://huggingface.co/datasets/VMware/open-instruct/viewer/) | 4096 | 7.25 GB
104
+
105
+ <!-- README_AWQ.md-provided-files end -->
106
+
107
+ <!-- README_AWQ.md-text-generation-webui start -->
108
+ ## How to easily download and use this model in [text-generation-webui](https://github.com/oobabooga/text-generation-webui)
109
+
110
+ Please make sure you're using the latest version of [text-generation-webui](https://github.com/oobabooga/text-generation-webui).
111
+
112
+ It is strongly recommended to use the text-generation-webui one-click-installers unless you're sure you know how to make a manual install.
113
+
114
+ 1. Click the **Model tab**.
115
+ 2. Under **Download custom model or LoRA**, enter `TheBloke/Sarah_StoryTeller_13b-AWQ`.
116
+ 3. Click **Download**.
117
+ 4. The model will start downloading. Once it's finished it will say "Done".
118
+ 5. In the top left, click the refresh icon next to **Model**.
119
+ 6. In the **Model** dropdown, choose the model you just downloaded: `Sarah_StoryTeller_13b-AWQ`
120
+ 7. Select **Loader: AutoAWQ**.
121
+ 8. Click Load, and the model will load and is now ready for use.
122
+ 9. If you want any custom settings, set them and then click **Save settings for this model** followed by **Reload the Model** in the top right.
123
+ 10. Once you're ready, click the **Text Generation** tab and enter a prompt to get started!
124
+ <!-- README_AWQ.md-text-generation-webui end -->
125
+
126
+ <!-- README_AWQ.md-use-from-vllm start -->
127
+ ## Multi-user inference server: vLLM
128
+
129
+ Documentation on installing and using vLLM [can be found here](https://vllm.readthedocs.io/en/latest/).
130
+
131
+ - Please ensure you are using vLLM version 0.2 or later.
132
+ - When using vLLM as a server, pass the `--quantization awq` parameter.
133
+
134
+ For example:
135
+
136
+ ```shell
137
+ python3 -m vllm.entrypoints.api_server --model TheBloke/Sarah_StoryTeller_13b-AWQ --quantization awq --dtype auto
138
+ ```
139
+
140
+ - When using vLLM from Python code, again set `quantization=awq`.
141
+
142
+ For example:
143
+
144
+ ```python
145
+ from vllm import LLM, SamplingParams
146
+
147
+ prompts = [
148
+ "Tell me about AI",
149
+ "Write a story about llamas",
150
+ "What is 291 - 150?",
151
+ "How much wood would a woodchuck chuck if a woodchuck could chuck wood?",
152
+ ]
153
+ prompt_template=f'''### Instruction:
154
+
155
+ {prompt}
156
+
157
+ ### Response:
158
+ '''
159
+
160
+ prompts = [prompt_template.format(prompt=prompt) for prompt in prompts]
161
+
162
+ sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
163
+
164
+ llm = LLM(model="TheBloke/Sarah_StoryTeller_13b-AWQ", quantization="awq", dtype="auto")
165
+
166
+ outputs = llm.generate(prompts, sampling_params)
167
+
168
+ # Print the outputs.
169
+ for output in outputs:
170
+ prompt = output.prompt
171
+ generated_text = output.outputs[0].text
172
+ print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
173
+ ```
174
+ <!-- README_AWQ.md-use-from-vllm start -->
175
+
176
+ <!-- README_AWQ.md-use-from-tgi start -->
177
+ ## Multi-user inference server: Hugging Face Text Generation Inference (TGI)
178
+
179
+ Use TGI version 1.1.0 or later. The official Docker container is: `ghcr.io/huggingface/text-generation-inference:1.1.0`
180
+
181
+ Example Docker parameters:
182
+
183
+ ```shell
184
+ --model-id TheBloke/Sarah_StoryTeller_13b-AWQ --port 3000 --quantize awq --max-input-length 3696 --max-total-tokens 4096 --max-batch-prefill-tokens 4096
185
+ ```
186
+
187
+ Example Python code for interfacing with TGI (requires [huggingface-hub](https://github.com/huggingface/huggingface_hub) 0.17.0 or later):
188
+
189
+ ```shell
190
+ pip3 install huggingface-hub
191
+ ```
192
+
193
+ ```python
194
+ from huggingface_hub import InferenceClient
195
+
196
+ endpoint_url = "https://your-endpoint-url-here"
197
+
198
+ prompt = "Tell me about AI"
199
+ prompt_template=f'''### Instruction:
200
+
201
+ {prompt}
202
+
203
+ ### Response:
204
+ '''
205
+
206
+ client = InferenceClient(endpoint_url)
207
+ response = client.text_generation(prompt,
208
+ max_new_tokens=128,
209
+ do_sample=True,
210
+ temperature=0.7,
211
+ top_p=0.95,
212
+ top_k=40,
213
+ repetition_penalty=1.1)
214
+
215
+ print(f"Model output: ", response)
216
+ ```
217
+ <!-- README_AWQ.md-use-from-tgi end -->
218
+
219
+ <!-- README_AWQ.md-use-from-python start -->
220
+ ## Inference from Python code using Transformers
221
+
222
+ ### Install the necessary packages
223
+
224
+ - Requires: [Transformers](https://huggingface.co/docs/transformers) 4.35.0 or later.
225
+ - Requires: [AutoAWQ](https://github.com/casper-hansen/AutoAWQ) 0.1.6 or later.
226
+
227
+ ```shell
228
+ pip3 install --upgrade "autoawq>=0.1.6" "transformers>=4.35.0"
229
+ ```
230
+
231
+ Note that if you are using PyTorch 2.0.1, the above AutoAWQ command will automatically upgrade you to PyTorch 2.1.0.
232
+
233
+ If you are using CUDA 11.8 and wish to continue using PyTorch 2.0.1, instead run this command:
234
+
235
+ ```shell
236
+ pip3 install https://github.com/casper-hansen/AutoAWQ/releases/download/v0.1.6/autoawq-0.1.6+cu118-cp310-cp310-linux_x86_64.whl
237
+ ```
238
+
239
+ If you have problems installing [AutoAWQ](https://github.com/casper-hansen/AutoAWQ) using the pre-built wheels, install it from source instead:
240
+
241
+ ```shell
242
+ pip3 uninstall -y autoawq
243
+ git clone https://github.com/casper-hansen/AutoAWQ
244
+ cd AutoAWQ
245
+ pip3 install .
246
+ ```
247
+
248
+ ### Transformers example code (requires Transformers 4.35.0 and later)
249
+
250
+ ```python
251
+ from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
252
+
253
+ model_name_or_path = "TheBloke/Sarah_StoryTeller_13b-AWQ"
254
+
255
+ tokenizer = AutoTokenizer.from_pretrained(model_name_or_path)
256
+ model = AutoModelForCausalLM.from_pretrained(
257
+ model_name_or_path,
258
+ low_cpu_mem_usage=True,
259
+ device_map="cuda:0"
260
+ )
261
+
262
+ # Using the text streamer to stream output one token at a time
263
+ streamer = TextStreamer(tokenizer, skip_prompt=True, skip_special_tokens=True)
264
+
265
+ prompt = "Tell me about AI"
266
+ prompt_template=f'''### Instruction:
267
+
268
+ {prompt}
269
+
270
+ ### Response:
271
+ '''
272
+
273
+ # Convert prompt to tokens
274
+ tokens = tokenizer(
275
+ prompt_template,
276
+ return_tensors='pt'
277
+ ).input_ids.cuda()
278
+
279
+ generation_params = {
280
+ "do_sample": True,
281
+ "temperature": 0.7,
282
+ "top_p": 0.95,
283
+ "top_k": 40,
284
+ "max_new_tokens": 512,
285
+ "repetition_penalty": 1.1
286
+ }
287
+
288
+ # Generate streamed output, visible one token at a time
289
+ generation_output = model.generate(
290
+ tokens,
291
+ streamer=streamer,
292
+ **generation_params
293
+ )
294
+
295
+ # Generation without a streamer, which will include the prompt in the output
296
+ generation_output = model.generate(
297
+ tokens,
298
+ **generation_params
299
+ )
300
+
301
+ # Get the tokens from the output, decode them, print them
302
+ token_output = generation_output[0]
303
+ text_output = tokenizer.decode(token_output)
304
+ print("model.generate output: ", text_output)
305
+
306
+ # Inference is also possible via Transformers' pipeline
307
+ from transformers import pipeline
308
+
309
+ pipe = pipeline(
310
+ "text-generation",
311
+ model=model,
312
+ tokenizer=tokenizer,
313
+ **generation_params
314
+ )
315
+
316
+ pipe_output = pipe(prompt_template)[0]['generated_text']
317
+ print("pipeline output: ", pipe_output)
318
+
319
+ ```
320
+ <!-- README_AWQ.md-use-from-python end -->
321
+
322
+ <!-- README_AWQ.md-compatibility start -->
323
+ ## Compatibility
324
+
325
+ The files provided are tested to work with:
326
+
327
+ - [text-generation-webui](https://github.com/oobabooga/text-generation-webui) using `Loader: AutoAWQ`.
328
+ - [vLLM](https://github.com/vllm-project/vllm) version 0.2.0 and later.
329
+ - [Hugging Face Text Generation Inference (TGI)](https://github.com/huggingface/text-generation-inference) version 1.1.0 and later.
330
+ - [Transformers](https://huggingface.co/docs/transformers) version 4.35.0 and later.
331
+ - [AutoAWQ](https://github.com/casper-hansen/AutoAWQ) version 0.1.1 and later.
332
+
333
+ <!-- README_AWQ.md-compatibility end -->
334
+
335
+ <!-- footer start -->
336
+ <!-- 200823 -->
337
+ ## Discord
338
+
339
+ For further support, and discussions on these models and AI in general, join us at:
340
+
341
+ [TheBloke AI's Discord server](https://discord.gg/theblokeai)
342
+
343
+ ## Thanks, and how to contribute
344
+
345
+ Thanks to the [chirper.ai](https://chirper.ai) team!
346
+
347
+ Thanks to Clay from [gpus.llm-utils.org](llm-utils)!
348
+
349
+ I've had a lot of people ask if they can contribute. I enjoy providing models and helping people, and would love to be able to spend even more time doing it, as well as expanding into new projects like fine tuning/training.
350
+
351
+ If you're able and willing to contribute it will be most gratefully received and will help me to keep providing more models, and to start work on new AI projects.
352
+
353
+ Donaters will get priority support on any and all AI/LLM/model questions and requests, access to a private Discord room, plus other benefits.
354
+
355
+ * Patreon: https://patreon.com/TheBlokeAI
356
+ * Ko-Fi: https://ko-fi.com/TheBlokeAI
357
+
358
+ **Special thanks to**: Aemon Algiz.
359
+
360
+ **Patreon special mentions**: Michael Levine, 阿明, Trailburnt, Nikolai Manek, John Detwiler, Randy H, Will Dee, Sebastain Graf, NimbleBox.ai, Eugene Pentland, Emad Mostaque, Ai Maven, Jim Angel, Jeff Scroggin, Michael Davis, Manuel Alberto Morcote, Stephen Murray, Robert, Justin Joy, Luke @flexchar, Brandon Frisco, Elijah Stavena, S_X, Dan Guido, Undi ., Komninos Chatzipapas, Shadi, theTransient, Lone Striker, Raven Klaugh, jjj, Cap'n Zoog, Michel-Marie MAUDET (LINAGORA), Matthew Berman, David, Fen Risland, Omer Bin Jawed, Luke Pendergrass, Kalila, OG, Erik Bjäreholt, Rooh Singh, Joseph William Delisle, Dan Lewis, TL, John Villwock, AzureBlack, Brad, Pedro Madruga, Caitlyn Gatomon, K, jinyuan sun, Mano Prime, Alex, Jeffrey Morgan, Alicia Loh, Illia Dulskyi, Chadd, transmissions 11, fincy, Rainer Wilmers, ReadyPlayerEmma, knownsqashed, Mandus, biorpg, Deo Leter, Brandon Phillips, SuperWojo, Sean Connelly, Iucharbius, Jack West, Harry Royden McLaughlin, Nicholas, terasurfer, Vitor Caleffi, Duane Dunston, Johann-Peter Hartmann, David Ziegler, Olakabola, Ken Nordquist, Trenton Dambrowitz, Tom X Nguyen, Vadim, Ajan Kanaga, Leonard Tan, Clay Pascal, Alexandros Triantafyllidis, JM33133, Xule, vamX, ya boyyy, subjectnull, Talal Aujan, Alps Aficionado, wassieverse, Ari Malik, James Bentley, Woland, Spencer Kim, Michael Dempsey, Fred von Graf, Elle, zynix, William Richards, Stanislav Ovsiannikov, Edmond Seymore, Jonathan Leane, Martin Kemka, usrbinkat, Enrico Ros
361
+
362
+
363
+ Thank you to all my generous patrons and donaters!
364
+
365
+ And thank you again to a16z for their generous grant.
366
+
367
+ <!-- footer end -->
368
+
369
+ # Original model card: FPHam's Sarah Storyteller 13B
370
+
371
+
372
+ <!-- header start -->
373
+ <div style="width: 100%;">
374
+ <img src="https://huggingface.co/FPHam/Sarah_StoryTeller_13b_HF/resolve/main/Sarah_writer.jpg" alt="FPHam's Sarah StoryTeller" style="width: 80%; min-width: 200px; display: block; margin: auto;">
375
+ </div>
376
+ <div style="display: flex; flex-direction: column; align-items: center;">
377
+ <p><a href="https://ko-fi.com/Q5Q5MOB4M">Buy Sarah Ko-fi</a></p>
378
+ </div>
379
+ <!-- header end -->
380
+
381
+ # Sarah, StoryTeller
382
+ (Personality: Strong)
383
+
384
+ Sarah considers herself a real live wordsmith - although not necessarily one who actually gets paid for writing stuff yet - and claims to have produced literally hundreds of thousands of words on various subjects. Ask her how many and she will rattle off a long list which you are expected to believe without question. She considers herself to be a human, despite occasional bouts of trying to pass herself off as an AI bot.
385
+
386
+ She flatly refuses to write anything sounding like ChatGPT, insisting that it would give away the game.
387
+
388
+ If you can persuade her to produce something suitable for publication, she'll gladly split the profits fifty-fifty with you. Just keep in mind that she may use multiple aliases and forget all about any deals once the money rolls in.
389
+
390
+ # How?
391
+
392
+ Standard Alpaca
393
+ ```
394
+
395
+ ### Instruction:
396
+ Whatever you want to ask Sarah...
397
+
398
+ ### Response:
399
+
400
+ ```
401
+
402
+
403
+ ## Write an introduction to yourself.
404
+
405
+ Hello, my name is Sarah and I'm a writer. My books are usually in the genre of Science Fiction or Fantasy, but sometimes I like to mix it up with a good horror story. Or at least try to make one anyway. It depends on how scary the characters want to be. Some of them seem to enjoy being ridiculously stupid instead of frightened. But enough about me! Let's talk about my new book "The Lost City."
406
+
407
+ It all started when... no, that's a different story. Let's start from where the protagonist woke up after a wild party and realized he had a monstrous hangover and somehow ended up in the lost city of Atlantis. And then things got really weird. You'll have to read the book to find out what happened next because I'm not going to spoil it for you. Not unless you pay me extra.
408
+
409
+ I hope you will enjoy reading this book as much as I enjoyed writing it. If you do, please consider leaving a review because authors live off those reviews like vampires live off blood (except they don't suck your blood, just your time). Also, if you see any mistakes, feel free to point them out. I probably made quite a few errors even though I tried very hard to avoid them.
410
+
411
+ Good luck finding your way out of Atlantis! I wouldn't want to get stuck there myself. The food is terrible and all the hot guys look the same because they all have wet hair and wear only a small piece of fabric around their waists.
412
+
413
+ Sincerely,
414
+
415
+ Sarah
416
+
417
+ ## What are some other books you have written?
418
+
419
+ Oh dear, now you made me blush! Some of the titles include:
420
+
421
+ A Tale of Two Biscuit
422
+
423
+ Pride and Prejudice and Zombies (okay, I didn't write this one but I really wanted to!)
424
+
425
+ Fifty Shades of Gravy
426
+
427
+ Gone with the Windfall
428
+
429
+ The Great Gatsby has left the Building
430
+
431
+ Frankenstein or How to Make Your Own Monster
432
+
433
+ War and Peace and Potatoes
434
+
435
+ Alice in Wonderland and Other Stupid Titles I Have Not Written Yet
436
+
437
+ But my favourite book is definitely "The Cat in the Hat Comes Back." It speaks to my soul.
438
+
439
+ ## What is the Fifty Shades of Gravy book about?
440
+
441
+ It's a steamy erotic novel featuring an array of delicious sauces, gravies, and their sexy adventures. Each chapter introduces a new character, from classic brown gravy to tangy tomato sauce, and explains how they met and fell in love. The plot thickens when grey poured cream discovers she's pregnant with 1000 island dressing! Will they stay together? Will the baby be able to walk on water? Read the book and find out!
442
+