From 7936ecebe345d05687a7e6a835a8a906650d9e12 Mon Sep 17 00:00:00 2001 From: Maanav Dalal Date: Wed, 20 Nov 2024 10:07:53 -0800 Subject: [PATCH] Published olive quantize/finetune blog. (#22897) ### Description ### Motivation and Context --- src/images/blogs/Quantize-finetune.jpg | Bin 0 -> 63333 bytes src/routes/blogs/+page.svelte | 85 +++++++++++++--------- src/routes/blogs/olive-quant-ft/+page.svx | 10 +-- 3 files changed, 54 insertions(+), 41 deletions(-) create mode 100644 src/images/blogs/Quantize-finetune.jpg diff --git a/src/images/blogs/Quantize-finetune.jpg b/src/images/blogs/Quantize-finetune.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d0d6d65badafdf44db7f181f218bd13769176620 GIT binary patch literal 63333 zcmeFZ2Ut|ewl>^I6a%7w1PKaA&KYSMM6!V7oO8}WQY%Vo2?7Fwl5=dyIcJa@B}kT> zGc?V&(V02UocYhW=iYO_@4xq%=Gomn{cf^cE9@29&U}v$3Lt{Yaw#6hMi;l(Vt2q9p#HcyR#&T}k{wkr!x$`coPp0lJvI zdCSbn$&R0e#m13Y-^kX$nAyYpbx-{BB^H z@5K3m^kp#%4N%F!$b?_viP$eyfE<|Smv?b>b!B$tV77HIWntsv<6~iEXJKb&0%|Zh zKDTkwcVn_~qy#8nQ+%iK#Msf$!Q9Tt+}4KTlBT|at+NxDh6bDB7t+E`P7dYGu-n%O>CZt8e7^y}tla3JQTA_4$R3951s!9-?S$|2^{~XJ!8VNp|`Uj>byQ?To=R z3dWAM&JKpg-zi)+`h|#ygR#Dov5_D8ygcFp8(4rZe2d(Zw*A+NM(X}%FF(}_Nzl_RnEq)BykBUD{ z%YS^Tj0}I9COc;btM4peWXNJ{Wo&J1<8(PmY?r(P44081zmvI>mGR%ENZ88h_frJ$ z9>0~ojVYMMjmgN^MBmxUiAK;`-_+cY!d2hKh=PfN?N9pj3mE~HpPukv=#kw|eEmBa z18xA_;rOLHK#pJ7*~!e-K~P3t-$vhs;)%YMzLfyWPd5O5|32#fsgVT)^0%S=-Fy5h z>pzASsK)=DXKfvnY;COsMf7c4^eK#N4Z%-@#Z~z%^;uO}B`KU8jUB+s!Xjeq76zgk zlC}aYe{A=s@A~8Q0htG+pXE0l@nh1y3&DTm*AI68Z+yTd>AxQGFAeZt!}Zs2{YxY8 zFIE1FyZ#!ke`y5%rOJPC*I&c+FO9&zRQdl7cm2(~GqwR-I#eqM|$iUBN{`#YMSj29X2q zFgnWj&!q!<`2n0?;C(T%u3}#UDwNy;T|q%by@G~{j*bSnyeM9m&M_J;`tAE{!Weht z^)VmVJ;u4Zl zib~2Vs%q*QhJX`cYG!WX=;Z9;>h|3I)oWir|A0VPc*MKNsOa}GvB@c^Y3Ui6S=og} z#U-U>ZS5VM1A{}uBco$q#%Jf|7Z$%QEw8NZ?C$L!93CB?oL=?|1%&#e zTfq09_6ry2*A+B0R5Z-XexY1(z3ezH8v1=UjN8KUnELj29SD@Gf$qjbNFj_)+Q9RIp%O&Hg)>rgN8I>yH1-hQL+h9{^AzrjfDI@>7^#$nk zrbWtC=~>kWib38Foj6rlEsKW(lJHgEq=@WJVn#MumK^whh6Hc+kFF>A)aen~VqUVF!b+qt={!u#nehffqWL?(69(68hBinniHZqvf7b7;SF% z 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 { anime({ targets: '.border-primary', @@ -49,37 +50,46 @@ } let featuredblog = [ { - title: 'Scribble to Erase on Goodnotes for Windows, Web, and Android, Powered by ONNX Runtime', + title: + 'Is it better to quantize before or after finetuning?', + date: '19th November, 2024', + blurb: + 'Learn how to quickly and easily experiment in your model optimization workflow using Olive.', + link: 'blogs/olive-quant-ft', + image: QuantizeFinetune, + imgalt: 'Quantize or finetune first for better model performance?' + }, + { + title: + 'Scribble to Erase on Goodnotes for Windows, Web, and Android, Powered by ONNX Runtime', date: '18th November, 2024', blurb: - "Discover how Goodnotes brings the popular scribble-to-erase feature from iPad to Windows, Web, and Android with the help of ONNX Runtime, enabling seamless, high-performance AI integration across platforms.", + 'Discover how Goodnotes brings the popular scribble-to-erase feature from iPad to Windows, Web, and Android with the help of ONNX Runtime, enabling seamless, high-performance AI integration across platforms.', link: 'blogs/goodnotes-scribble-to-erase', image: GoodnotesThumbnail, - imgalt: - 'Scribble to Erase feature on Goodnotes for Windows, Web, and Android' - }, - { + imgalt: 'Scribble to Erase feature on Goodnotes for Windows, Web, and Android' + }, + { title: 'Democratizing AI Model optimization with the new Olive CLI', date: 'November 11th, 2024', blurb: - "Learn how to use the new Olive CLI to easily optimize AI Models for on-device inference", + 'Learn how to use the new Olive CLI to easily optimize AI Models for on-device inference', link: 'blogs/olive-cli', image: OliveCli, - imgalt: - 'Olive Flow' - }, + imgalt: 'Olive Flow' + } + ]; + let blogs = [ { - title: 'Enhancing team collaboration during AI model optimization with the Olive Shared Cache', + title: + 'Enhancing team collaboration during AI model optimization with the Olive Shared Cache', date: 'October 30th, 2024', blurb: "Learn how to use Olive's shared cache to enhance team collaboration when optimizing AI models", link: 'blogs/olive-shared-cache', image: OliveSharedCache, - imgalt: - 'Team Flow for Olive shared cache' + imgalt: 'Team Flow for Olive shared cache' }, - ]; - let blogs = [ { title: 'Accelerating LightGlue Inference with ONNX Runtime and TensorRT', date: 'July 17th, 2024', @@ -90,7 +100,7 @@ imgalt: 'Speedup for ONNX Runtime with TensorRT and CUDA vs. torch.compile for difference batch sizes and sequence lengths.' }, - { + { title: 'High performance on-device real-time ML with NimbleEdge, using ONNX Runtime', date: 'June 17th, 2024', blurb: @@ -104,7 +114,7 @@ title: 'Background Removal in the Browser Using ONNX Runtime with WebGPU', date: 'June 12th, 2024', blurb: - "Using ONNX Runtime with WebGPU and WebAssembly leads to 20x speedup over multi-threaded and 550x speedup over single-threaded CPU performance. Thus achieving interactive speeds for state-of-the-art background removal directly in the browser.", + 'Using ONNX Runtime with WebGPU and WebAssembly leads to 20x speedup over multi-threaded and 550x speedup over single-threaded CPU performance. Thus achieving interactive speeds for state-of-the-art background removal directly in the browser.', link: 'https://img.ly/blog/browser-background-removal-using-onnx-runtime-webgpu/', image: 'https://imgly-blog-prod.storage.googleapis.com/2024/06/onnx-runtime-imgly.jpg', imgalt: @@ -113,8 +123,7 @@ { title: 'Phi-3 Small and Medium Models are now Optimized with ONNX Runtime and DirectML', date: 'May 21th, 2024', - blurb: - "You can now run the Phi-3 medium, small models on device of your choice.", + blurb: 'You can now run the Phi-3 medium, small models on device of your choice.', link: 'blogs/accelerating-phi-3-small-medium', image: Phi3SmallMediumImage, imgalt: @@ -123,13 +132,13 @@ { title: 'Enjoy the Power of Phi-3 with ONNX Runtime on your device', date: 'May 20th, 2024', - blurb: - "Harness ONNX Runtime to run Phi-3-mini on mobile phones and in the browser.", + blurb: 'Harness ONNX Runtime to run Phi-3-mini on mobile phones and in the browser.', link: 'https://huggingface.co/blog/Emma-N/enjoy-the-power-of-phi-3-with-onnx-runtime', image: Phi3OnDeviceImage, imgalt: 'Chart comparing model size (in GB) of ONNX Phi-3-mini for web and mobile with original Phi-3-mini' - },{ + }, + { title: 'ONNX Runtime supports Phi-3 mini models across platforms and devices', date: 'April 22nd, 2024', blurb: @@ -148,7 +157,7 @@ image: WebGPUImage, imgalt: 'Comparison of ONNX Runtime Web with WebGPU EP on GPU vs. WASM EP on CPU for segment anything example' - }, + }, { title: 'ONNX Runtime 1.17: CUDA 12 support, Phi-2 optimizations, WebGPU, and more!', date: 'February 28th, 2024', @@ -399,20 +408,21 @@ ]; let blogsCommunity = [ { - title:'Sentence Transformers 3.2.0: 2x-3x Faster Inference with ONNX Runtime', + title: 'Sentence Transformers 3.2.0: 2x-3x Faster Inference with ONNX Runtime', date: 'October 10, 2024', link: 'https://github.com/UKPLab/sentence-transformers/releases/tag/v3.2.0', - blurb: 'This update brings 2x-3x speedups with a new ONNX backends, plus static embeddings offering 50x-500x faster performance with a slight accuracy trade-off. Install with pip install sentence-transformers==3.2.0.' + blurb: + 'This update brings 2x-3x speedups with a new ONNX backends, plus static embeddings offering 50x-500x faster performance with a slight accuracy trade-off. Install with pip install sentence-transformers==3.2.0.' }, { - title:'Running Phi-3 Mistral 7B LLMs on Raspberry Pi 5: A Step-by-Step Guide', + title: 'Running Phi-3 Mistral 7B LLMs on Raspberry Pi 5: A Step-by-Step Guide', date: 'September 5, 2024', link: 'https://medium.com/@vadikus/running-phi-3-mistral-7b-llms-on-raspberry-pi-5-a-step-by-step-guide-185e8102e35b', - blurb: 'Learn how to run Phi-3 Mistral 7B on Raspberry Pi 5 using the ONNX Runtime Gen AI library.' + blurb: + 'Learn how to run Phi-3 Mistral 7B on Raspberry Pi 5 using the ONNX Runtime Gen AI library.' }, { - title: - 'Deploying a Production-Ready RAG Server: A Comprehensive Guide with LlamaIndex', + title: 'Deploying a Production-Ready RAG Server: A Comprehensive Guide with LlamaIndex', date: 'March 27, 2024', link: 'https://python.plainenglish.io/deploying-a-production-ready-rag-server-a-comprehensive-guide-with-llamaindex-dbe57cc960df', blurb: @@ -448,12 +458,15 @@ link: 'https://www.linkedin.com/pulse/hcm-sentence-similarity-language-model-using-java-jonathon-palmieri-tdlpc%3FtrackingId=CN2PPVO4Toqh8r6JsAYMIw%253D%253D/?trackingId=ByNomo0pQFKM%2F%2BWEknVs7Q%3D%3D' } ]; - let description = 'ONNX Runtime Blogs - your source for the latest ONNX Runtime updates and information.' - let image = 'https://i.ibb.co/0YBy62j/ORT-icon-for-light-bg.png' - let imageSquare = 'https://i.ibb.co/0YBy62j/ORT-icon-for-light-bg.png' - let authors = [''] - let keywords = 'onnxruntime, onnx runtime blogs, onnx runtime community blogs, onnx runtime community posts, onnx runtime community announcements' + let description = + 'ONNX Runtime Blogs - your source for the latest ONNX Runtime updates and information.'; + let image = 'https://i.ibb.co/0YBy62j/ORT-icon-for-light-bg.png'; + let imageSquare = 'https://i.ibb.co/0YBy62j/ORT-icon-for-light-bg.png'; + let authors = ['']; + let keywords = + 'onnxruntime, onnx runtime blogs, onnx runtime community blogs, onnx runtime community posts, onnx runtime community announcements'; + @@ -461,9 +474,9 @@ - + - + diff --git a/src/routes/blogs/olive-quant-ft/+page.svx b/src/routes/blogs/olive-quant-ft/+page.svx index 1f922bc7c0aa6..7f4487685c6e4 100644 --- a/src/routes/blogs/olive-quant-ft/+page.svx +++ b/src/routes/blogs/olive-quant-ft/+page.svx @@ -1,8 +1,8 @@ --- title: 'Is it better to quantize before or after finetuning?' -date: '18th November, 2024' -description: 'Learn how to use the shared cache feature in Olive to enhance team collaboration when optimizing AI models' -keywords: 'GenAI , LLM, ONNXRuntime, ORT, Phi, DirectML, Windows, phi3, phi-3, llama-3.2, ONNX, SLM, edge, gpu' +date: '19th November, 2024' +description: 'Learn how to quickly and easily experiment in your model optimization workflow using Olive.' +keywords: 'quantization, fine-tuning, Olive toolkit, model optimization, ONNX runtime, AI model efficiency, AWQ, GPTQ, model deployment, low-precision, LoRA, language models, quantize before fine-tune, quantization sequence, Phi-3.5, Llama, memory reduction' authors: [ 'Jambay Kinley', @@ -13,8 +13,8 @@ authorsLink: 'https://www.linkedin.com/in/jambayk/', 'https://www.linkedin.com/in/samuel-kemp-a9253724/' ] -image: '' -imageSquare: '' +image: 'https://iili.io/251Z3ts.jpg' +imageSquare: 'https://iili.io/251Z3ts.jpg' url: 'https://onnxruntime.ai/blogs/olive-quant-ft' ---