<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	
	>
<channel>
	<title>
	Comments on: Sparse Networks from Scratch: Faster Training without Losing Performance	</title>
	<atom:link href="https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/feed/" rel="self" type="application/rss+xml" />
	<link>https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/</link>
	<description>Making deep learning accessible.</description>
	<lastBuildDate>Sat, 19 Sep 2020 16:32:27 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.0.11</generator>
	<item>
		<title>
		By: Tim Dettmers		</title>
		<link>https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-77659</link>

		<dc:creator><![CDATA[Tim Dettmers]]></dc:creator>
		<pubDate>Tue, 15 Sep 2020 05:03:10 +0000</pubDate>
		<guid isPermaLink="false">https://timdettmers.com/?p=774#comment-77659</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-76185&quot;&gt;Chew Kok Wah&lt;/a&gt;.

I do not think Graphcore will be able to take a lot of market share from NVIDIA. The problem is right now that the most valuable models in the industry are very large transformers which are difficult to train on the small memory of the graph cores. Does it work on the 2nd generation processors? It is unclear.

Graphcores marketing is very confusing. They have 450 GB of memory, but then at another point, they say 16 GB per IPU, and then they say TB/s of bandwidth, and at another point, they say DDR4 DIMMs.

For me, this sounds like they just added DDR4 DIMM modules addressable by IPUs with a bandwidth of 20-40GB/s. Will that be enough to be useful?

At those bandwidths, it might be possible to train large models but the processor does not seem to be beneficial over GPUs if you want to train very large transformers.

Otherwise, Graphcore processors are great for computer vision and also for high-frequency trading and I can see that they will snag a bit of market share from NVIDIA in those areas.

This is at least my best guess on the data that is verifiable. I guess my opinion would change quite a bit depending on what information would become available over time.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-76185">Chew Kok Wah</a>.</p>
<p>I do not think Graphcore will be able to take a lot of market share from NVIDIA. The problem is right now that the most valuable models in the industry are very large transformers which are difficult to train on the small memory of the graph cores. Does it work on the 2nd generation processors? It is unclear.</p>
<p>Graphcores marketing is very confusing. They have 450 GB of memory, but then at another point, they say 16 GB per IPU, and then they say TB/s of bandwidth, and at another point, they say DDR4 DIMMs.</p>
<p>For me, this sounds like they just added DDR4 DIMM modules addressable by IPUs with a bandwidth of 20-40GB/s. Will that be enough to be useful?</p>
<p>At those bandwidths, it might be possible to train large models but the processor does not seem to be beneficial over GPUs if you want to train very large transformers.</p>
<p>Otherwise, Graphcore processors are great for computer vision and also for high-frequency trading and I can see that they will snag a bit of market share from NVIDIA in those areas.</p>
<p>This is at least my best guess on the data that is verifiable. I guess my opinion would change quite a bit depending on what information would become available over time.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Chew Kok Wah		</title>
		<link>https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-76185</link>

		<dc:creator><![CDATA[Chew Kok Wah]]></dc:creator>
		<pubDate>Wed, 12 Aug 2020 12:34:12 +0000</pubDate>
		<guid isPermaLink="false">https://timdettmers.com/?p=774#comment-76185</guid>

					<description><![CDATA[With Graphcore recently launched 2nd generation AI chip that claim 3x performance and 10x memory of equivalent priced nVidia A100, do you see sparse learning finally seeing the light?
Do you think Graphcore will be able to take a sizable training market from nVidia   ?

https://www.graphcore.ai/posts/introducing-second-generation-ipu-systems-for-ai-at-scale
http://3s81si1s5ygj3mzby34dq6qf-wpengine.netdna-ssl.com/wp-content/uploads/2020/07/mk2pricing.jpg]]></description>
			<content:encoded><![CDATA[<p>With Graphcore recently launched 2nd generation AI chip that claim 3x performance and 10x memory of equivalent priced nVidia A100, do you see sparse learning finally seeing the light?<br />
Do you think Graphcore will be able to take a sizable training market from nVidia   ?</p>
<p><a href="https://www.graphcore.ai/posts/introducing-second-generation-ipu-systems-for-ai-at-scale" rel="nofollow ugc">https://www.graphcore.ai/posts/introducing-second-generation-ipu-systems-for-ai-at-scale</a><br />
<a href="http://3s81si1s5ygj3mzby34dq6qf-wpengine.netdna-ssl.com/wp-content/uploads/2020/07/mk2pricing.jpg" rel="nofollow ugc">http://3s81si1s5ygj3mzby34dq6qf-wpengine.netdna-ssl.com/wp-content/uploads/2020/07/mk2pricing.jpg</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Tim Dettmers		</title>
		<link>https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-69198</link>

		<dc:creator><![CDATA[Tim Dettmers]]></dc:creator>
		<pubDate>Wed, 26 Feb 2020 18:15:14 +0000</pubDate>
		<guid isPermaLink="false">https://timdettmers.com/?p=774#comment-69198</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-68770&quot;&gt;John&lt;/a&gt;.

There are some benchmarks but they saturated a couple of years ago and you no longer see improvements. Here some benchmarks:

https://github.com/jcjohnson/cnn-benchmarks
https://github.com/soumith/convnet-benchmarks
https://github.com/baidu-research/DeepBench]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-68770">John</a>.</p>
<p>There are some benchmarks but they saturated a couple of years ago and you no longer see improvements. Here some benchmarks:</p>
<p><a href="https://github.com/jcjohnson/cnn-benchmarks" rel="nofollow ugc">https://github.com/jcjohnson/cnn-benchmarks</a><br />
<a href="https://github.com/soumith/convnet-benchmarks" rel="nofollow ugc">https://github.com/soumith/convnet-benchmarks</a><br />
<a href="https://github.com/baidu-research/DeepBench" rel="nofollow ugc">https://github.com/baidu-research/DeepBench</a></p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: John		</title>
		<link>https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-68770</link>

		<dc:creator><![CDATA[John]]></dc:creator>
		<pubDate>Thu, 13 Feb 2020 22:48:41 +0000</pubDate>
		<guid isPermaLink="false">https://timdettmers.com/?p=774#comment-68770</guid>

					<description><![CDATA[Hi Tim - do you know of any good benchmarks that compare algorithmic efficiency over the past few years? I&#039;m thinking of something like ImageNet vs. a modern image recognition algorithm - how much of a speedup have we gotten purely from the algorithmic side of things, rather than hardware? I know there are some difficulties in making a perfect comparison, but it seems like the gist should be obtainable - you should at least be able to do something like &quot;time to get ImageNet&#039;s performance to convergence&quot; vs. &quot;time to get a modern algorithm to that performance level&quot;. Thanks!]]></description>
			<content:encoded><![CDATA[<p>Hi Tim &#8211; do you know of any good benchmarks that compare algorithmic efficiency over the past few years? I&#8217;m thinking of something like ImageNet vs. a modern image recognition algorithm &#8211; how much of a speedup have we gotten purely from the algorithmic side of things, rather than hardware? I know there are some difficulties in making a perfect comparison, but it seems like the gist should be obtainable &#8211; you should at least be able to do something like &#8220;time to get ImageNet&#8217;s performance to convergence&#8221; vs. &#8220;time to get a modern algorithm to that performance level&#8221;. Thanks!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Tim Dettmers		</title>
		<link>https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-64350</link>

		<dc:creator><![CDATA[Tim Dettmers]]></dc:creator>
		<pubDate>Tue, 22 Oct 2019 01:28:52 +0000</pubDate>
		<guid isPermaLink="false">https://timdettmers.com/?p=774#comment-64350</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-64163&quot;&gt;Sachin&lt;/a&gt;.

I start with a sparse network, so not adding any weights will maintain its overall aggregate sparsity: Lets say you have 100 total weights, then I start with 16 weights and during the pruning stage, I remove 8 weights and regrow them elsewhere. Thus, in this case, I keep the same amount of weights, but because I started with 16% of weights to begin with, the network remains sparse.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-64163">Sachin</a>.</p>
<p>I start with a sparse network, so not adding any weights will maintain its overall aggregate sparsity: Lets say you have 100 total weights, then I start with 16 weights and during the pruning stage, I remove 8 weights and regrow them elsewhere. Thus, in this case, I keep the same amount of weights, but because I started with 16% of weights to begin with, the network remains sparse.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Tim Dettmers		</title>
		<link>https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-64344</link>

		<dc:creator><![CDATA[Tim Dettmers]]></dc:creator>
		<pubDate>Tue, 22 Oct 2019 01:09:11 +0000</pubDate>
		<guid isPermaLink="false">https://timdettmers.com/?p=774#comment-64344</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-63735&quot;&gt;Wenjie&lt;/a&gt;.

What I found is the following:
 - One needs much more weights to come anywhere near dense baseline performance.
 - There is much more variability regarding how parameters shift between layers over time, while the distribution is relatively static in computer vision after a couple of epochs.
 - Having different rates of parameter redistribution was useful if one increases the rate slowly from input layer to output layer (one needs to build stable lower-level features before one can build good high level features?)

That is mostly it. I guess these observations stem from (1) computer vision has &quot;static inputs&quot; of predefined structure which is unchanging. The fixed structure in NLP are just one-hot vectors which have very little information; word embeddings themselves are highly variable. (2) Just having a high number of output classes complicates things. One sees the first sign of that if you compare CIFAR-10 and ImageNet. BERT uses two orders of magnitude more labels than ImageNet and has complex combinations between labels within a sequence.

Hope that helps!]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-63735">Wenjie</a>.</p>
<p>What I found is the following:<br />
 &#8211; One needs much more weights to come anywhere near dense baseline performance.<br />
 &#8211; There is much more variability regarding how parameters shift between layers over time, while the distribution is relatively static in computer vision after a couple of epochs.<br />
 &#8211; Having different rates of parameter redistribution was useful if one increases the rate slowly from input layer to output layer (one needs to build stable lower-level features before one can build good high level features?)</p>
<p>That is mostly it. I guess these observations stem from (1) computer vision has &#8220;static inputs&#8221; of predefined structure which is unchanging. The fixed structure in NLP are just one-hot vectors which have very little information; word embeddings themselves are highly variable. (2) Just having a high number of output classes complicates things. One sees the first sign of that if you compare CIFAR-10 and ImageNet. BERT uses two orders of magnitude more labels than ImageNet and has complex combinations between labels within a sequence.</p>
<p>Hope that helps!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Sachin		</title>
		<link>https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-64163</link>

		<dc:creator><![CDATA[Sachin]]></dc:creator>
		<pubDate>Thu, 17 Oct 2019 02:13:10 +0000</pubDate>
		<guid isPermaLink="false">https://timdettmers.com/?p=774#comment-64163</guid>

					<description><![CDATA[Hi ! Thank you for describing the algorithm. Definitely looks interesting :) 

I have a question though, about the regrowing strategy. Maybe I mis-understood it. Your picture suggests pruning down from 16 to 8 weights and then regrowing the network back to 16 weights. How are you then calling the network sparse ? Can you please clarify ? 

Thank you!]]></description>
			<content:encoded><![CDATA[<p>Hi ! Thank you for describing the algorithm. Definitely looks interesting 🙂 </p>
<p>I have a question though, about the regrowing strategy. Maybe I mis-understood it. Your picture suggests pruning down from 16 to 8 weights and then regrowing the network back to 16 weights. How are you then calling the network sparse ? Can you please clarify ? </p>
<p>Thank you!</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Wenjie		</title>
		<link>https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-63735</link>

		<dc:creator><![CDATA[Wenjie]]></dc:creator>
		<pubDate>Mon, 07 Oct 2019 19:48:59 +0000</pubDate>
		<guid isPermaLink="false">https://timdettmers.com/?p=774#comment-63735</guid>

					<description><![CDATA[Excellent piece of work. Would you please elaborate a bit more on your attempts on applying it in transformers, and NLP tasks in general? You briefly mentioned that &quot;Unsurprisingly, my experimentation on transformers for natural language processing tasks show that sparse learning is much more difficult in NLP compared to computer vision&quot;. Makes sense, but it doesn&#039;t appear as unsurprising as it sounds. Thanks.]]></description>
			<content:encoded><![CDATA[<p>Excellent piece of work. Would you please elaborate a bit more on your attempts on applying it in transformers, and NLP tasks in general? You briefly mentioned that &#8220;Unsurprisingly, my experimentation on transformers for natural language processing tasks show that sparse learning is much more difficult in NLP compared to computer vision&#8221;. Makes sense, but it doesn&#8217;t appear as unsurprising as it sounds. Thanks.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Tim Dettmers		</title>
		<link>https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-62665</link>

		<dc:creator><![CDATA[Tim Dettmers]]></dc:creator>
		<pubDate>Sun, 22 Sep 2019 16:44:55 +0000</pubDate>
		<guid isPermaLink="false">https://timdettmers.com/?p=774#comment-62665</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-62636&quot;&gt;Zhang&lt;/a&gt;.

That is correct. However, my work looks at training time and not memory. If you want to save memory, there are much much better ways of doing just that. If you want to save memory one should not really look at weights for a solution, but rather at activations. Gradient checkpointing and recomputation are the most effective techniques to save memory. They will save 20x more memory than sparse weights at no performance cost and minimal computational costs.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-62636">Zhang</a>.</p>
<p>That is correct. However, my work looks at training time and not memory. If you want to save memory, there are much much better ways of doing just that. If you want to save memory one should not really look at weights for a solution, but rather at activations. Gradient checkpointing and recomputation are the most effective techniques to save memory. They will save 20x more memory than sparse weights at no performance cost and minimal computational costs.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		By: Zhang		</title>
		<link>https://timdettmers.com/2019/07/11/sparse-networks-from-scratch/comment-page-1/#comment-62636</link>

		<dc:creator><![CDATA[Zhang]]></dc:creator>
		<pubDate>Sun, 22 Sep 2019 05:25:53 +0000</pubDate>
		<guid isPermaLink="false">https://timdettmers.com/?p=774#comment-62636</guid>

					<description><![CDATA[This algorithm seems to require that you store momentum values for all of the weights, even the ones that are zero. This means even if you have sparse weights the momentum will be dense so the memory for that will not be reduced. But some earlier works like the one from Mostafa and Wang does not need to maintain these momentum values so both the network and the momentum could be sparse. Thus this one will use more memory. Please correct if I am misunderstanding.]]></description>
			<content:encoded><![CDATA[<p>This algorithm seems to require that you store momentum values for all of the weights, even the ones that are zero. This means even if you have sparse weights the momentum will be dense so the memory for that will not be reduced. But some earlier works like the one from Mostafa and Wang does not need to maintain these momentum values so both the network and the momentum could be sparse. Thus this one will use more memory. Please correct if I am misunderstanding.</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>
