<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="100330" data-post-id="100330">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="jamesnorton" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/jamesnorton/120/1064_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  jamesnorton
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This is going to sound harsh, but those posts seem quite naive - a three layer neural network is not “deep learning”, and using Erlang/Elixir processes as individual neurons would scale terribly. DL networks are essentially a pipeline of tensors that transform input tensors into output tensors. Horizontal scaling via distributed computing is horribly inefficient for this - you need massive hardware parallelism, e.g., GPUs via CUDA. Elixir might have some promise as a front end to TensorFlow or another C/C++/Rust library, but IMO implementing things in pure Elixir is a non-starter for anything but toy problems.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="100330" data-batch-url="/posts/batch_likers">
                        6
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/using-elixir-for-data-science-and-machine-learning/849/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-100330" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="100330"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #22"></div>
  </section>
</div>
    <div class="postbit" id="100333" data-post-id="100333">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="leifericf" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/leifericf/120/39367_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  leifericf
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Yes, I agree with what you’re saying, <a class="mention" href="/u/jamesnorton" rel="nofollow">@jamesnorton</a>. I found those articles to be interesting nonetheless, despite the limited practical utility of the proposed approach.</p>
<p>I don’t see many blog posts and articles about using Elixir for machine learning and deep learning in particular, likely due to the limitations you mentioned. I’m easily excited.</p>
<p>I welcome any writings on the subject, if only as food for thought <img src="https://forum.elixirforum.com/images/emoji/apple/slight_smile.png?v=15" title=":slight_smile:" class="emoji" alt=":slight_smile:" loading="lazy" width="20" height="20"></p>
<p>As you can see in my post above from a couple of days ago, I share your concerns about the computational aspects of machine learning in pure Elixir, accessing GPUs via CUDA, etc.</p>
<p>Personally, I’m more hopeful about the possibilities of using Elixir for the non-computational and operational aspects of data science, such as data gathering and wrangling, model serving/exposure, model distribution for federated/collaborative learning, monitoring model behaviour, etc.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="100333" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/using-elixir-for-data-science-and-machine-learning/849/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-100333" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="100333"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #23"></div>
  </section>
</div>
    <div class="postbit" id="100394" data-post-id="100394">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="pcharbon" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/pcharbon/120/36990_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  pcharbon
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I am not a Data Scientist but interested in the subject and stumbled upon this library. Have not tried or tested it but since it was mentioned that for any serious machine learning you would need access to CUDA for GPU processing I thought this could be of interest to you.</p>
<p><a href="https://github.com/sirin-tech/cuda" class="onebox" target="_blank" rel="noopener nofollow ugc">https://github.com/sirin-tech/cuda</a></p>
<p>The library has not been updated in a while but it seems someone already looked into CUDA bindings for Elixir/Erlang.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="100394" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/using-elixir-for-data-science-and-machine-learning/849/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-100394" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="100394"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #24"></div>
  </section>
</div>
    <div class="postbit" id="100558" data-post-id="100558">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="OvermindDL1" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/OvermindDL1/120/2677_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  OvermindDL1
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>OpenCL seems better than CUDA as then you’d be able to use other streaming processing, FPGA’s, etc… etc…  CUDA locks you in to nVidia hardware only when there is <em>so</em> much other available hardware.  Even if you did just want to constraint yourself to GPU’s then Vulkan’s compute layer would be the way to go, not CUDA.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="100558" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/using-elixir-for-data-science-and-machine-learning/849/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-100558" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="100558"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #25"></div>
  </section>
</div>
    <div class="postbit" id="100664" data-post-id="100664">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="pcharbon" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/pcharbon/120/36990_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  pcharbon
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>This Erlang library for OpenCl might be worth checking out then. Its been around for a while it seems but has been recently updated <a href="https://github.com/tonyrog/cl" class="inline-onebox" rel="noopener nofollow ugc">GitHub - tonyrog/cl: OpenCL binding for Erlang · GitHub</a>. Should be semi-compatible with Elixir.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="100664" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/using-elixir-for-data-science-and-machine-learning/849/27">Post #26</a>
	                </div>
	            </div>
              <div id="likers-container-100664" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="100664"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #26"></div>
  </section>
</div>
    <div class="postbit" id="100676" data-post-id="100676">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="leifericf" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/leifericf/120/39367_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  leifericf
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><strong>Disclaimer:</strong> I’m not a GPGPU expert. Please be skeptical about what I’m about to say.</p>
<hr>
<p>The issue seems to be that the major projects such as Google’s TensorFlow only support CUDA and (unfortunately) not OpenCL (yet). To my limited knowledge in this area, I believe the primary reason for this is because TensorFlow depends on <a href="http://eigen.tuxfamily.org/" rel="noopener nofollow ugc">Eigen</a>, which currently only supports CUDA.</p>
<p>It would be awesome to have a vendor-agnostic platform layer of sorts, independent of OpenCL, CUDA and other future GPGPU interfaces X. Back when I was working in the games industry, I lead a rendering team which developed an analogous proprietary platform layer for OpenGL and DirectX. Building something like that is a massive and time-consuming undertaking.</p>
<p>It seems to me like Nvidia has an edge with CUDA, simply because that is what most established frameworks, libraries, tools and applications have chosen to target. Data scientists who make use of said products rarely have the know-how, time and interest to develop low-level GPU interfaces.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="100676" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/using-elixir-for-data-science-and-machine-learning/849/28">Post #27</a>
	                </div>
	            </div>
              <div id="likers-container-100676" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="100676"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #27"></div>
  </section>
</div>
    <div class="postbit" id="171861" data-post-id="171861">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="mardukbp" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/mardukbp/120/25735_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  mardukbp
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>You might be interested in Intel’s <a href="https://www.intel.com/content/www/us/en/artificial-intelligence/ngraph.html" rel="noopener nofollow ugc">nGraph</a>:</p>
<blockquote>
<p>nGraph Library is an open-source C++ library and runtime / compiler suite for Deep Learning ecosystems. With nGraph Library, data scientists can use their preferred deep learning framework on any number of hardware architectures, for both training and inference.</p>
</blockquote> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="171861" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/using-elixir-for-data-science-and-machine-learning/849/29">Post #28</a>
	                </div>
	            </div>
              <div id="likers-container-171861" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="171861"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #28"></div>
  </section>
</div>
    <div class="postbit" id="181191" data-post-id="181191">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="leifericf" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/leifericf/120/39367_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  leifericf
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Interesting, thanks for the tip! I’ll check it out.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="181191" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/using-elixir-for-data-science-and-machine-learning/849/30">Post #29</a>
	                </div>
	            </div>
              <div id="likers-container-181191" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="181191"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #29"></div>
  </section>
</div>
    <div class="postbit" id="184262" data-post-id="184262">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="ericsteen" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  ericsteen
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Let’s keep in mind that supervised learning is only one approach to ML, and backpropagation (the heaviest number crunching part of Deep Learning) is <a href="https://www.i-programmer.info/news/105-artificial-intelligence/11135--geoffrey-hinton-says-ai-needs-to-start-over.html" rel="noopener nofollow ugc">falling out of favor</a>. DL is not very scalable, and Unsupervised Learning (i.e. Reinforcement Learning) seems to be expected to be the key path to AGI (artificial general intelligence) — according to <a href="https://en.wikipedia.org/wiki/Richard_S._Sutton" rel="noopener nofollow ugc">Richard Sutton</a> and others</p>
<p>With that in mind, I have been successfully using <a href="https://github.com/versilov/matrex" rel="noopener nofollow ugc">Matrex</a> for high-dimensional vectorized computation for Multi-Armed Bandits (Elementary Reinforcement Learning). You can check it out <a href="https://github.com/upstarter/automata/blob/master/lib/automata/automaton_types/reinforcement_learning/bandits/mab.ex" rel="noopener nofollow ugc">here</a>.  Its part of <a href="https://www.github.com/upstarter/automata" rel="noopener nofollow ugc">The Automata Project</a>. Down the road I may need to use python or julia via erlports (or maybe even docker containers as used <a href="https://youtu.be/p58sFfgMvdI?t=1581" rel="noopener nofollow ugc">here</a>) for the vectorized parts, but for prototyping, things are going well so far.</p>
<p>In my view, <a href="https://www.youtube.com/watch?v=TcUqGIHq8rA&amp;list=PLmgEqxC4Fyq1fTBdJeqGOij3jgb-5gvQx&amp;index=89&amp;t=0s" rel="noopener nofollow ugc">Neuroevolutionary Typology and Weight Evolving Artificial Neural Networks (TWEANN)</a> with <a href="http://eplex.cs.ucf.edu/noveltysearch/userspage/" rel="noopener nofollow ugc">Novelty Search</a> is one of the most promising alternative approaches, and Elixir has a head start in this sub-field of ML thanks to Gene Sher’s book.</p>
<p>As far as python interop goes, something like <a href="http://davekuhlman.org/elixir-poolboy-erlport-datasci.html" rel="noopener nofollow ugc">this</a> looks pretty appealing for scaling ML as well.</p>
<p><a href="https://www.github.com/upstarter/automata" rel="noopener nofollow ugc">The Automata Project</a> is seeking contributors if anyone here is interested.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="184262" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/using-elixir-for-data-science-and-machine-learning/849/31">Post #30</a>
	                </div>
	            </div>
              <div id="likers-container-184262" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="184262"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #30"></div>
  </section>
</div>
    <div class="postbit" id="185091" data-post-id="185091">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="leifericf" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/leifericf/120/39367_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  leifericf
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I wrote a comment on a separate thread with some more relevant info on this topic:</p>
<aside class="quote quote-modified" data-post="8" data-topic="32992">
  <div class="title">
    <div class="quote-controls"></div>
    <img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/leifericf/48/39367_2.png" class="avatar">
    <div class="quote-title__text-content">
      <a href="https://forum.elixirforum.com/t/implementing-ml-into-your-elixir-phoenix-app/32992/8" rel="nofollow">Implementing ML into your Elixir/Phoenix app</a> <a class="badge-category__wrapper " href="/c/chat-discussions/chat-discussions/167" rel="nofollow"><span data-category-id="167" style="--category-badge-color: #cca771; --category-badge-text-color: #FFFFFF; --parent-category-badge-color: #cca771;" data-parent-category-id="165" data-drop-close="true" class="badge-category --style-square --has-parent"><span class="badge-category__name">Discussions</span></span></a>
    </div>
  </div>
  <blockquote>
    Another approach to incorporate machine learning components into Elixir applications is to interoperate with other languages such as Python, e.g. through <a href="https://hexdocs.pm/elixir/Port.html" rel="noopener nofollow ugc">ports</a>, <a href="https://erlang.org/doc/tutorial/nif.html" rel="nofollow">NIFs</a>, etc. 
Erlang/OTP gives us other means to interface with- or incorporate external code, each with varying degrees of ease and robustness guarantees. See <a href="https://erlang.org/doc/tutorial/introduction.html" rel="nofollow">the Erlang Interoperability Tutorial</a> for details. 
Chapter 15 (Interfacing Techniques) of <a href="https://pragprog.com/titles/jaerlang2/" rel="noopener nofollow ugc">Programming Erlang by Joe Armstrong</a> also contains some valuable information on this topic. …
  </blockquote>
</aside>

<p>I’m leaving a reference here for future adventurers to discover.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="185091" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/using-elixir-for-data-science-and-machine-learning/849/32">Post #31</a>
	                </div>
	            </div>
              <div id="likers-container-185091" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="185091"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #31"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/849/load_more?page=4">Load more posts (1 remaining)</a>
</div></template></turbo-stream>