<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:georss="http://www.georss.org/georss"
	xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
	>

<channel>
	<title>Martyna Mul, Autor w serwisie Inero Software - Rozwiązania IT i Konsulting</title>
	<atom:link href="https://inero-software.com/pl/author/martynamul/feed/" rel="self" type="application/rss+xml" />
	<link>https://inero-software.com/pl/author/martynamul/</link>
	<description>Tworzymy cyfrowe innowacje</description>
	<lastBuildDate>Tue, 20 May 2025 11:31:52 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://inero-software.com/wp-content/uploads/2018/11/inero-logo-favicon.png</url>
	<title>Martyna Mul, Autor w serwisie Inero Software - Rozwiązania IT i Konsulting</title>
	<link>https://inero-software.com/pl/author/martynamul/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">153509928</site>	<item>
		<title>Ile kosztuje wdrożenie i utrzymanie modelu LLM w firmie? Szczegółowa analiza</title>
		<link>https://inero-software.com/pl/ile-kosztuje-wdrozenie-i-utrzymanie-modelu-llm-w-firmie-szczegolowa-analiza/</link>
		
		<dc:creator><![CDATA[Martyna Mul]]></dc:creator>
		<pubDate>Tue, 13 May 2025 09:16:26 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[Agenci AI]]></category>
		<category><![CDATA[Agent AI]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Asystent AI]]></category>
		<category><![CDATA[biznes]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[digitalizacja]]></category>
		<category><![CDATA[duże modele językowe]]></category>
		<category><![CDATA[Gemini]]></category>
		<category><![CDATA[LLaMA]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[Mistral]]></category>
		<category><![CDATA[sztuczna inteligencja]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=7958</guid>

					<description><![CDATA[<p>Rozważając wprowadzenie sztucznej inteligencji do firmy, warto wiedzieć, jakie koszty wiążą się z wdrożeniem i utrzymaniem własnego modelu LLM. Wydatki nie sprowadzają się wyłącznie do opłat za wykorzystanie modelu (np. za tokeny w API), ale obejmują szereg czynników – od infrastruktury po bezpieczeństwo. Poniżej omawiamy rodzaje kosztów korzystania z dedykowanych LLM,&#8230;</p>
<p>Artykuł <a href="https://inero-software.com/pl/ile-kosztuje-wdrozenie-i-utrzymanie-modelu-llm-w-firmie-szczegolowa-analiza/">Ile kosztuje wdrożenie i utrzymanie modelu LLM w firmie? Szczegółowa analiza</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="7958" class="elementor elementor-7958" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-b624393 e-flex e-con-boxed e-con e-parent" data-id="b624393" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-93f3c2f elementor-widget elementor-widget-html" data-id="93f3c2f" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			 		</div>
				</div>
				<div class="elementor-element elementor-element-3d9c5ec elementor-widget elementor-widget-text-editor" data-id="3d9c5ec" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h4><span class="TextRun SCXW12193356 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">Rozważając</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">wprowadzenie</span><span class="NormalTextRun SCXW12193356 BCX0"> </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">sztucznej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">inteligencji</span> <span class="NormalTextRun SCXW12193356 BCX0">do</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">firm</span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">y</span><span class="NormalTextRun SCXW12193356 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">warto</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">wiedzieć</span><span class="NormalTextRun SCXW12193356 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">jakie</span> </span><span class="TextRun SCXW12193356 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">koszty</span></span><span class="TextRun SCXW12193356 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">wiążą</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">się</span><span class="NormalTextRun SCXW12193356 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">wdrożeniem</span><span class="NormalTextRun SCXW12193356 BCX0"> i </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">utrzymaniem</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">własnego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">modelu</span><span class="NormalTextRun SCXW12193356 BCX0"> LLM. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">Wydatki</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">nie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">sprowadzają</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">się</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">wyłącznie</span><span class="NormalTextRun SCXW12193356 BCX0"> do </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">opłat</span><span class="NormalTextRun SCXW12193356 BCX0"> za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">wykorzystanie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">modelu</span><span class="NormalTextRun SCXW12193356 BCX0"> (np. za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">tokeny</span><span class="NormalTextRun SCXW12193356 BCX0"> w API), ale </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">obejmują</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">szereg</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">czynników</span><span class="NormalTextRun SCXW12193356 BCX0"> – od </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">infrastruktury</span><span class="NormalTextRun SCXW12193356 BCX0"> po </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">bezpieczeństwo</span><span class="NormalTextRun SCXW12193356 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">Poniżej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">omawiamy</span> </span><span class="TextRun SCXW12193356 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">rodzaje</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">kosztów</span></span><span class="TextRun SCXW12193356 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">korzystania</span><span class="NormalTextRun SCXW12193356 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">dedykowanych</span><span class="NormalTextRun SCXW12193356 BCX0"> LLM, a </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">także</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">przedstawiamy</span> </span><span class="TextRun SCXW12193356 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">przykładowe</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">kalkulacje</span><span class="NormalTextRun SCXW12193356 BCX0"> dla </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">popularnych</span></span><span class="TextRun SCXW12193356 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW12193356 BCX0"> </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">modeli</span><span class="NormalTextRun SCXW12193356 BCX0"> (GPT-4, Claude, Mistral, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">LLaMA</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">itp</span><span class="NormalTextRun SCXW12193356 BCX0">.), w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">tym</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">scenariusze</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">użycia</span><span class="NormalTextRun SCXW12193356 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW12193356 BCX0">firmie</span><span class="NormalTextRun SCXW12193356 BCX0">. </span></span><span class="EOP SCXW12193356 BCX0" data-ccp-props="{}"> </span></h4>						</div>
				</div>
				<div class="elementor-element elementor-element-085701f elementor-widget elementor-widget-text-editor" data-id="085701f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span data-contrast="auto">Coraz więcej firm rozważa wykorzystanie dużych modeli językowych (LLM – </span><i><span data-contrast="auto">Large Language Models</span></i><span data-contrast="auto">) we własnych produktach i procesach. Takie „dedykowane” modele mogą działać jako inteligentni asystenci: odpowiadać na pytania klientów, analizować dokumenty, generować raporty i wiele więcej. Wiecej przeczytasz o tym </span><a href="https://inero-software.com/pl/chatbot-agent-czy-asystent-ai-sprawdz-ktore-rozwiazanie-najlepiej-sprawdzi-sie-w-twoim-biznesie/"><span data-contrast="none">tutaj</span></a><span data-contrast="auto">. </span><span data-ccp-props="{}"> </span></p><p><span data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-4636eb2 elementor-widget elementor-widget-heading" data-id="4636eb2" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Rodzaje kosztów przy korzystaniu z LLM </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-dc7b85d elementor-widget elementor-widget-text-editor" data-id="dc7b85d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW136045100 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW136045100 BCX0">Przed</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW136045100 BCX0">rozpoczęciem</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW136045100 BCX0">wdrożenia</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW136045100 BCX0">warto</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW136045100 BCX0">poznać</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW136045100 BCX0">wszystkie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW136045100 BCX0">elementy</span><span class="NormalTextRun SCXW136045100 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW136045100 BCX0">które</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW136045100 BCX0">składają</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW136045100 BCX0">się</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW136045100 BCX0">na</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW136045100 BCX0">pełny</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW136045100 BCX0">koszt</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW136045100 BCX0">korzystania</span><span class="NormalTextRun SCXW136045100 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW136045100 BCX0">dedykowanego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW136045100 BCX0">modelu</span><span class="NormalTextRun SCXW136045100 BCX0">. </span></span><span class="EOP SCXW136045100 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-d01d87f elementor-widget elementor-widget-heading" data-id="d01d87f" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">Infrastruktura: </h4>		</div>
				</div>
				<div class="elementor-element elementor-element-556fadf elementor-widget elementor-widget-text-editor" data-id="556fadf" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong><span class="TextRun SCXW205001490 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW205001490 BCX0">Jeśli</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW205001490 BCX0">korzystasz</span><span class="NormalTextRun SCXW205001490 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW205001490 BCX0">modeli</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW205001490 BCX0">przez</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW205001490 BCX0">chmurowe</span><span class="NormalTextRun SCXW205001490 BCX0"> API</span></span></strong><span class="TextRun SCXW205001490 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW205001490 BCX0"><strong> (OpenAI, Anthropic, Google):</strong> </span><span class="NormalTextRun SpellingErrorV2Themed SCXW205001490 BCX0">płacisz</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW205001490 BCX0">wyłącznie</span><span class="NormalTextRun SCXW205001490 BCX0"> za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW205001490 BCX0">zużyte</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW205001490 BCX0">tokeny</span><span class="NormalTextRun SCXW205001490 BCX0">. Koszt </span><span class="NormalTextRun SpellingErrorV2Themed SCXW205001490 BCX0">infrastruktury</span><span class="NormalTextRun SCXW205001490 BCX0"> jest „</span><span class="NormalTextRun SpellingErrorV2Themed SCXW205001490 BCX0">ukryty</span><span class="NormalTextRun SCXW205001490 BCX0">” po </span><span class="NormalTextRun SpellingErrorV2Themed SCXW205001490 BCX0">stronie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW205001490 BCX0">dostawcy</span><span class="NormalTextRun SCXW205001490 BCX0">.</span></span><span class="EOP SCXW205001490 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559685&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-fca6d2f elementor-widget elementor-widget-text-editor" data-id="fca6d2f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong><span class="TextRun SCXW211127704 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">Jeśli</span><span class="NormalTextRun SCXW211127704 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">kolei</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">zdecydujesz</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">się</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">na</span><span class="NormalTextRun SCXW211127704 BCX0"> self‑hosting</span></span></strong><span class="TextRun SCXW211127704 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><strong><span class="NormalTextRun SCXW211127704 BCX0"> </span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">wybranego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">modelu</span><span class="NormalTextRun SCXW211127704 BCX0">,</span></strong><span class="NormalTextRun SCXW211127704 BCX0"> np. Mistral, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">LLaMA</span><span class="NormalTextRun SCXW211127704 BCX0">,</span><span class="NormalTextRun SCXW211127704 BCX0"> </span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">musisz</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">utrzymać</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">serwer</span><span class="NormalTextRun SCXW211127704 BCX0"> GPU (</span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">lokalnie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">lub</span><span class="NormalTextRun SCXW211127704 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">chmurze</span><span class="NormalTextRun SCXW211127704 BCX0">). </span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">Przykład</span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">owo</span><span class="NormalTextRun SCXW211127704 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">wynajęcie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">instancj</span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">i</span><span class="NormalTextRun SCXW211127704 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">kartą</span><span class="NormalTextRun SCXW211127704 BCX0"> A100 </span><span class="NormalTextRun SCXW211127704 BCX0">to </span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">koszt</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">rzędu</span> <span class="NormalTextRun SCXW211127704 BCX0"> $1 – 2 </span><span class="NormalTextRun SCXW211127704 BCX0">za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">godzinę</span><span class="NormalTextRun SCXW211127704 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">czyli</span><span class="NormalTextRun SCXW211127704 BCX0">  $75</span><span class="NormalTextRun SCXW211127704 BCX0">0 do</span><span class="NormalTextRun SCXW211127704 BCX0"> 1 500 </span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">na</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">mies</span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">iąc</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">przy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">ciągłym</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">działaniu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">serwera</span><span class="NormalTextRun SCXW211127704 BCX0">.</span><span class="NormalTextRun SCXW211127704 BCX0"> Taka </span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">inwestycja</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">może</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">obsłużyć</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">wiele</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">zapytań</span><span class="NormalTextRun SCXW211127704 BCX0">, ale </span><span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">przy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">małej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">skali</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">obciążenia</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">może</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">okazać</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">się</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW211127704 BCX0">niewykorzystana</span><span class="NormalTextRun SCXW211127704 BCX0">.</span></span><span class="EOP SCXW211127704 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559685&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-6ef6f58 elementor-widget elementor-widget-heading" data-id="6ef6f58" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">Licencje i opłaty za modele </h4>		</div>
				</div>
				<div class="elementor-element elementor-element-275e876 elementor-widget elementor-widget-text-editor" data-id="275e876" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW260070277 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">Modele</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">komercyjne</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">wiążą</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">się</span><span class="NormalTextRun SCXW260070277 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">opłatami</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">licencyjnymi</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">lub</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">abonamentowymi</span><span class="NormalTextRun SCXW260070277 BCX0">. Na </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">przykład</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">korzystając</span><span class="NormalTextRun SCXW260070277 BCX0"> z API GPT-4 od OpenAI </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">czy</span><span class="NormalTextRun SCXW260070277 BCX0"> Claude od Anthropic, </span></span><span class="TextRun SCXW260070277 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">płacimy</span><span class="NormalTextRun SCXW260070277 BCX0"> za </span><strong><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">każdy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">użyty</span><span class="NormalTextRun SCXW260070277 BCX0"> token</span></strong></span><span class="TextRun SCXW260070277 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">według</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">cennika</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">dostawcy</span><span class="NormalTextRun SCXW260070277 BCX0"> (</span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">szczegóły</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">kosztów</span><span class="NormalTextRun SCXW260070277 BCX0"> za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">tokeny</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">przedstawiamy</span><span class="NormalTextRun SCXW260070277 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">dalszej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">części</span><span class="NormalTextRun SCXW260070277 BCX0">)</span><span class="NormalTextRun SCXW260070277 BCX0">. </span> <span class="NormalTextRun SCXW260070277 BCX0">Z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">drugiej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">strony</span><span class="NormalTextRun SCXW260070277 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">dostępne</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">są</span> </span><strong><span class="TextRun SCXW260070277 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">otwartoźródłowe</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">modele</span></span></strong><span class="TextRun SCXW260070277 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW260070277 BCX0"> jak </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">LLaMA</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">czy</span><span class="NormalTextRun SCXW260070277 BCX0"> Mistral, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">które</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">można</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">używać</span><span class="NormalTextRun SCXW260070277 BCX0"> za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">darmo</span><span class="NormalTextRun SCXW260070277 BCX0"> – </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">nie</span><span class="NormalTextRun SCXW260070277 BCX0"> ma </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">opłaty</span><span class="NormalTextRun SCXW260070277 BCX0"> za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">licencję</span><span class="NormalTextRun SCXW260070277 BCX0"> ani za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">tokeny</span><span class="NormalTextRun SCXW260070277 BCX0">. Meta </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">udostępniła</span><span class="NormalTextRun SCXW260070277 BCX0"> np. model </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">LLaMA</span><span class="NormalTextRun SCXW260070277 BCX0"> 2 </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">na</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">licencji</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">pozwalającej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">firmom</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">na</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">swobodne</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">użycie</span><span class="NormalTextRun SCXW260070277 BCX0"> bez </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">opłat</span><span class="NormalTextRun SCXW260070277 BCX0">. </span></span><strong><span class="TextRun SCXW260070277 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW260070277 BCX0">“Za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">darmo</span><span class="NormalTextRun SCXW260070277 BCX0">” </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">nie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">oznacza</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">jednak</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">braku</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">kosztów</span></span></strong><span class="TextRun SCXW260070277 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW260070277 BCX0"> – </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">wówczas</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">płacimy</span><span class="NormalTextRun SCXW260070277 BCX0"> za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">infrastrukturę</span> <span class="NormalTextRun SCXW260070277 BCX0">i</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">prąd</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">potrzebny</span><span class="NormalTextRun SCXW260070277 BCX0"> do ich </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">uruchomienia</span><span class="NormalTextRun SCXW260070277 BCX0"> (jak </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">wspomniano</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">wyżej</span><span class="NormalTextRun SCXW260070277 BCX0">). </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">Warto</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">też</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">sprawdzić</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">ograniczenia</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">licencyjne</span><span class="NormalTextRun SCXW260070277 BCX0">: </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">niektóre</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">otwarte</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">modele</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">mogą</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">mieć</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">pewne</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">warunki</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">użytkowania</span><span class="NormalTextRun SCXW260070277 BCX0"> (np. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">zakaz</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">użycia</span><span class="NormalTextRun SCXW260070277 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">określonych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW260070277 BCX0">branżach</span><span class="NormalTextRun SCXW260070277 BCX0">).</span></span><span class="EOP SCXW260070277 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559685&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-aa18bfc elementor-widget elementor-widget-heading" data-id="aa18bfc" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">Adaptacja i dostosowanie modelu </h4>		</div>
				</div>
				<div class="elementor-element elementor-element-96aa203 elementor-widget elementor-widget-text-editor" data-id="96aa203" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW119566638 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW119566638 BCX0">Aby model LLM </span><span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">dobrze</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">sprawdzał</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">się</span><span class="NormalTextRun SCXW119566638 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">konkretnej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">firmie</span><span class="NormalTextRun SCXW119566638 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">często</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">wymaga</span><span class="NormalTextRun SCXW119566638 BCX0"> on</span> </span><span class="TextRun SCXW119566638 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">dostosowania</span></span><span class="TextRun SCXW119566638 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW119566638 BCX0"> – np. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">dodatkowego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">treningu</span><span class="NormalTextRun SCXW119566638 BCX0"> (fine-tuning) </span><span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">na</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">firmowych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">danych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">lub</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">przynajmniej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">przygotowania</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">odpowiednich</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">promptów</span><span class="NormalTextRun SCXW119566638 BCX0"> (</span><span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">tzw</span><span class="NormalTextRun SCXW119566638 BCX0">. </span></span><span class="TextRun SCXW119566638 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW119566638 BCX0">prompt engineering</span></span><span class="TextRun SCXW119566638 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW119566638 BCX0">). </span><span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">Adaptacja</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">może</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">generować</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">znaczące</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW119566638 BCX0">koszty</span><span class="NormalTextRun SCXW119566638 BCX0">:</span></span><span class="EOP SCXW119566638 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559685&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-8573d17 elementor-widget elementor-widget-text-editor" data-id="8573d17" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li><span class="TextRun SCXW122723501 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><strong><span class="NormalTextRun SCXW122723501 BCX0">Fine-tuning </span><span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">modelu</span></strong><span class="NormalTextRun SCXW122723501 BCX0">:</span></span><span class="TextRun SCXW122723501 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">Trenowanie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">modelu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">na</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">własnym</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">zbiorze</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">danych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">wymaga</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">mocy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">obliczeniowej</span><span class="NormalTextRun SCXW122723501 BCX0"> (GPU </span><span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">przez</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">wiele</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">godzin</span><span class="NormalTextRun SCXW122723501 BCX0">) i </span><span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">wiedzy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">specjalistów</span><span class="NormalTextRun SCXW122723501 BCX0">. Dla </span><span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">dużych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">modeli</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">może</span><span class="NormalTextRun SCXW122723501 BCX0"> to </span><span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">kosztować</span><span class="NormalTextRun SCXW122723501 BCX0"> od </span><span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">kilku</span><span class="NormalTextRun SCXW122723501 BCX0"> do </span><span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">kilkudziesięciu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">tysięcy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">dolarów</span><span class="NormalTextRun SCXW122723501 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">biorąc</span><span class="NormalTextRun SCXW122723501 BCX0"> pod </span><span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">uwagę</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">zarówno</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">opłaty</span><span class="NormalTextRun SCXW122723501 BCX0"> za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">maszyny</span><span class="NormalTextRun SCXW122723501 BCX0">, jak i </span><span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">czas</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">pracy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">ekspertów</span><span class="NormalTextRun SCXW122723501 BCX0">. Nawet fine-tuning </span><span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">mniejszego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">modelu</span><span class="NormalTextRun SCXW122723501 BCX0"> (np. GPT-3.5) </span><span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">przez</span><span class="NormalTextRun SCXW122723501 BCX0"> API OpenAI to </span><span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">koszt</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">zużycia</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">setek</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">tysięcy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">czy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">milionów</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">tokenów</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">podczas</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">treningu</span><span class="NormalTextRun SCXW122723501 BCX0"> (</span><span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">liczonych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">również</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">według</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW122723501 BCX0">stawek</span><span class="NormalTextRun SCXW122723501 BCX0"> za token).</span></span><span class="EOP SCXW122723501 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-092f2e3 elementor-widget elementor-widget-text-editor" data-id="092f2e3" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li><span class="TextRun SCXW154057626 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><strong><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">Inżynieria</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">promptów</span></strong><span class="NormalTextRun SCXW154057626 BCX0">:</span></span><span class="TextRun SCXW154057626 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">Alternatywą</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">lub</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">uzupełnieniem</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">treningu</span><span class="NormalTextRun SCXW154057626 BCX0"> jest </span><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">przygotowanie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">odpowiednich</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">zapytań</span><span class="NormalTextRun SCXW154057626 BCX0"> i </span><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">instrukcji</span><span class="NormalTextRun SCXW154057626 BCX0"> dla </span><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">modelu</span><span class="NormalTextRun SCXW154057626 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">Choć</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">samo</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">tworzenie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">promptów</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">nie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">wymaga</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">płatnych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">zasobów</span><span class="NormalTextRun SCXW154057626 BCX0">, to </span><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">jednak</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">iteracyjne</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">testowanie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">wielu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">wersji</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">zapytań</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">też</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">zużywa</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">tokeny</span><span class="NormalTextRun SCXW154057626 BCX0"> (</span><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">koszt</span><span class="NormalTextRun SCXW154057626 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">przypadku</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">modelu</span><span class="NormalTextRun SCXW154057626 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">chmurze</span><span class="NormalTextRun SCXW154057626 BCX0">) i </span><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">czas</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">pracy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">zespołu</span><span class="NormalTextRun SCXW154057626 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">Można</span><span class="NormalTextRun SCXW154057626 BCX0"> to </span><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">traktować</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">jako</span> </span><span class="TextRun SCXW154057626 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">koszt</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">operacyjny</span></span><span class="TextRun SCXW154057626 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">lub</span> </span><span class="TextRun SCXW154057626 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">koszt</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">kompetencji</span></span><span class="TextRun SCXW154057626 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW154057626 BCX0"> – </span><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">potrzebny</span><span class="NormalTextRun SCXW154057626 BCX0"> jest </span><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">czas</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">specjalisty</span><span class="NormalTextRun SCXW154057626 BCX0">, by </span><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">zoptymalizować</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">działanie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">modelu</span><span class="NormalTextRun SCXW154057626 BCX0"> pod </span><span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">nasze</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW154057626 BCX0">potrzeby</span><span class="NormalTextRun SCXW154057626 BCX0">.</span></span><span class="EOP SCXW154057626 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-b4d3407 elementor-widget elementor-widget-heading" data-id="b4d3407" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">Koszty operacyjne </h4>		</div>
				</div>
				<div class="elementor-element elementor-element-d96252c elementor-widget elementor-widget-text-editor" data-id="d96252c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW132067802 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW132067802 BCX0">Po </span><span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">wdrożeniu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">modelu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">dochodzą</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">bieżące</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">koszty</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">operacyjne</span><span class="NormalTextRun SCXW132067802 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">Obejmują</span><span class="NormalTextRun SCXW132067802 BCX0"> one </span><span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">monitorowanie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">działania</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">modelu</span><span class="NormalTextRun SCXW132067802 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">utrzymanie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">wydajności</span><span class="NormalTextRun SCXW132067802 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">logowanie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">wyników</span><span class="NormalTextRun SCXW132067802 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">aktualizacje</span><span class="NormalTextRun SCXW132067802 BCX0"> i </span><span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">ewentualne</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">naprawy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">błędów</span><span class="NormalTextRun SCXW132067802 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">Jeśli</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">korzystamy</span><span class="NormalTextRun SCXW132067802 BCX0"> z API, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">kosztem</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">operacyjnym</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">będzie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">głównie</span> </span><strong><span class="TextRun SCXW132067802 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">miesięczny</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">rachunek</span><span class="NormalTextRun SCXW132067802 BCX0"> za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">wykorzystane</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">tokeny</span></span></strong><span class="TextRun SCXW132067802 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">oraz</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">ewentualny</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">abonament</span><span class="NormalTextRun SCXW132067802 BCX0"> za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">dostęp</span><span class="NormalTextRun SCXW132067802 BCX0"> premium (</span><span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">niektórzy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">dostawcy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">oferują</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">plany</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">subskrypcyjne</span><span class="NormalTextRun SCXW132067802 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">określonym</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">limitem</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">lub</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">stawkami</span><span class="NormalTextRun SCXW132067802 BCX0">). </span><span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">Jeśli</span><span class="NormalTextRun SCXW132067802 BCX0"> model jest </span><span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">hostowany</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">lokalnie</span><span class="NormalTextRun SCXW132067802 BCX0">, do </span><span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">kosztów</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">operacyjnych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW132067802 BCX0">zaliczamy</span><span class="NormalTextRun SCXW132067802 BCX0">:</span></span><span class="EOP SCXW132067802 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559685&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-15a5e0f elementor-widget elementor-widget-text-editor" data-id="15a5e0f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li data-leveltext="o" data-font="Courier New" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Courier New&quot;,&quot;469769242&quot;:[9675],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="3" data-aria-level="2"><b><span data-contrast="auto">Energie elektryczną</span></b><span data-contrast="auto"> zużywaną przez serwery (przy modelach GPU może to być niebagatelna kwota miesięcznie),</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="o" data-font="Courier New" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Courier New&quot;,&quot;469769242&quot;:[9675],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="4" data-aria-level="2"><b><span data-contrast="auto">Administrację systemem</span></b><span data-contrast="auto"> – czas administratorów na utrzymanie serwera, wykonywanie kopii zapasowych, aktualizacje oprogramowania (np. bibliotek AI),</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="o" data-font="Courier New" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Courier New&quot;,&quot;469769242&quot;:[9675],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="5" data-aria-level="2"><b><span data-contrast="auto">Skalowanie infrastruktury</span></b><span data-contrast="auto"> w razie zwiększenia obciążenia – może zajść potrzeba dokupienia dodatkowych maszyn lub instancji chmurowych, co wiąże się z kolejnymi kosztami.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="o" data-font="Courier New" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:1,&quot;335559684&quot;:-2,&quot;335559685&quot;:1440,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Courier New&quot;,&quot;469769242&quot;:[9675],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;o&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="6" data-aria-level="2"><b><span data-contrast="auto">Wysoka dostępność</span></b><span data-contrast="auto"> – jeśli asystent LLM ma działać 24/7 bez przerw, być może trzeba zainwestować w redundantne zasoby (zapasowe serwery na wypadek awarii) lub w umowę SLA z dostawcą chmury.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-62dc195 elementor-widget elementor-widget-heading" data-id="62dc195" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">Kompetencje zespołu </h4>		</div>
				</div>
				<div class="elementor-element elementor-element-3d2c4a9 elementor-widget elementor-widget-text-editor" data-id="3d2c4a9" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW114965477 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">Wdrożenie</span><span class="NormalTextRun SCXW114965477 BCX0"> LLM </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">wymaga</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">odpowiednich</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">kompetencji</span><span class="NormalTextRun SCXW114965477 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">zespole</span><span class="NormalTextRun SCXW114965477 BCX0"> IT/</span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">Danych</span><span class="NormalTextRun SCXW114965477 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">Jeśli</span><span class="NormalTextRun SCXW114965477 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">firmie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">brakuje</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">doświadczenia</span><span class="NormalTextRun SCXW114965477 BCX0"> z AI, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">może</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">być</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">konieczne</span> </span><span class="TextRun SCXW114965477 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">przeszkolenie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">pracowników</span></span><span class="TextRun SCXW114965477 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">lub</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">zatrudnienie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">nowych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">specjalistów</span><span class="NormalTextRun SCXW114965477 BCX0"> (np. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">inżyniera</span><span class="NormalTextRun SCXW114965477 BCX0"> ML </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">czy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">MLOps</span><span class="NormalTextRun SCXW114965477 BCX0">). To </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">wiąże</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">się</span><span class="NormalTextRun SCXW114965477 BCX0"> z</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">dodatkowymi</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">kosztami</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">rekrutacji</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">lub</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">szkoleń</span><span class="NormalTextRun SCXW114965477 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">Alternatywnie</span><span class="NormalTextRun SCXW114965477 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">firmy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">czasem</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">korzystają</span><span class="NormalTextRun SCXW114965477 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">konsultantów</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">lub</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">usługodawców</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">zewnętrznych</span><span class="NormalTextRun SCXW114965477 BCX0"> do </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">wdrożenia</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">modelu</span><span class="NormalTextRun SCXW114965477 BCX0"> – co </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">również</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">generuje</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">koszty</span><span class="NormalTextRun SCXW114965477 BCX0"> (</span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">najczęściej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">jednorazowe</span><span class="NormalTextRun SCXW114965477 BCX0"> za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">projekt</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">wdrożeniowy</span><span class="NormalTextRun SCXW114965477 BCX0">, ale </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">nierzadko</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">znaczące</span><span class="NormalTextRun SCXW114965477 BCX0">). </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">Warto</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">uwzględnić</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">też</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">czas</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">poświęcony</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">przez</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">zespół</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">na</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">integrację</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">modelu</span><span class="NormalTextRun SCXW114965477 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">istniejącymi</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">systemami</span><span class="NormalTextRun SCXW114965477 BCX0"> (np. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">połączenie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">modelu</span><span class="NormalTextRun SCXW114965477 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">bazą</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">danych</span><span class="NormalTextRun SCXW114965477 BCX0">, z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">aplikacją</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">użytkownika</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">itp</span><span class="NormalTextRun SCXW114965477 BCX0">.) – jest to </span></span><span class="TextRun SCXW114965477 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">koszt</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">czasu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">pracy</span></span><span class="TextRun SCXW114965477 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW114965477 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">który</span><span class="NormalTextRun SCXW114965477 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">małych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">projektach</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">bywa</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">pomijany</span><span class="NormalTextRun SCXW114965477 BCX0">, a w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">praktyce</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">może</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">być</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW114965477 BCX0">istotny</span><span class="NormalTextRun SCXW114965477 BCX0">.</span></span><span class="EOP SCXW114965477 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559685&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-980dd92 elementor-widget elementor-widget-text-editor" data-id="980dd92" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW213037309 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">Powyższe</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">kategorie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">pokazują</span><span class="NormalTextRun SCXW213037309 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">że</span> </span><span class="TextRun SCXW213037309 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">całkowity</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">koszt</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">posiadania</span></span><span class="TextRun SCXW213037309 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">dedykowanego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">rozwiązania</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">opartego</span><span class="NormalTextRun SCXW213037309 BCX0"> o LLM to </span><span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">nie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">tylko</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">opłata</span><span class="NormalTextRun SCXW213037309 BCX0"> za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">dostęp</span><span class="NormalTextRun SCXW213037309 BCX0"> do </span><span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">modelu</span><span class="NormalTextRun SCXW213037309 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">Warto</span><span class="NormalTextRun SCXW213037309 BCX0"> je </span><span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">wszystkie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">przeanalizować</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">przed</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">podjęciem</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">decyzji</span><span class="NormalTextRun SCXW213037309 BCX0">. W </span><span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">dalszej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">części</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">przejdziemy</span><span class="NormalTextRun SCXW213037309 BCX0"> do </span><span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">konkretnych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">liczb</span><span class="NormalTextRun SCXW213037309 BCX0">: </span><span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">ile</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">kosztuje</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">pojedyncze</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">zapytanie</span><span class="NormalTextRun SCXW213037309 BCX0"> (prompt) do </span><span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">różnych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">popularnych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">modeli</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">oraz</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">ile</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">wyniosłoby</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">utrzymanie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">prostego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">asystenta</span><span class="NormalTextRun SCXW213037309 BCX0"> LLM w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">dwóch</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">przykładowych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">zastosowaniach</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW213037309 BCX0">biznesowych</span><span class="NormalTextRun SCXW213037309 BCX0">.</span></span><span class="EOP SCXW213037309 BCX0" data-ccp-props="{&quot;335551550&quot;:0,&quot;335551620&quot;:0}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-aa5ede7 elementor-widget elementor-widget-spacer" data-id="aa5ede7" data-element_type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
					<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-0acc8bb elementor-widget elementor-widget-heading" data-id="0acc8bb" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Koszt jednego zapytania w popularnych modelach LLM </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-37ada92 elementor-widget elementor-widget-text-editor" data-id="37ada92" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW68103921 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">Modele</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">językowe</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">rozliczane</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">są</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">zazwyczaj</span><span class="NormalTextRun SCXW68103921 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">oparciu</span><span class="NormalTextRun SCXW68103921 BCX0"> o </span></span><strong><span class="TextRun SCXW68103921 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">liczbę</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">tokenów</span></span></strong><span class="TextRun SCXW68103921 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW68103921 BCX0">. Token to </span><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">mały</span><span class="NormalTextRun SCXW68103921 BCX0"> fragment </span><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">tekstu</span><span class="NormalTextRun SCXW68103921 BCX0"> – </span><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">może</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">odpowiadać</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">pojedynczemu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">słowu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">lub</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">jego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">części</span><span class="NormalTextRun SCXW68103921 BCX0"> (</span><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">przykładowo</span><span class="NormalTextRun SCXW68103921 BCX0">, 1000 </span><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">tokenów</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">odpowiada</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">mniej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">więcej</span><span class="NormalTextRun SCXW68103921 BCX0"> 750 </span><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">słowom</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">ciągłego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">tekstu</span><span class="NormalTextRun SCXW68103921 BCX0">). </span><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">Dostawcy</span><span class="NormalTextRun SCXW68103921 BCX0"> API </span><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">podają</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">ceny</span><span class="NormalTextRun SCXW68103921 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">przeliczeniu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">na</span> </span><strong><span class="TextRun SCXW68103921 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW68103921 BCX0">1 </span><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">tys</span><span class="NormalTextRun SCXW68103921 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">t</span><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">okenów</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">lub</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">milion</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">tokenów</span></span></strong><span class="TextRun SCXW68103921 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW68103921 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">Poniżej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">zestawiamy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">orientacyjne</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">koszty</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">przetworzenia</span><span class="NormalTextRun SCXW68103921 BCX0"> 1000 </span><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">tokenów</span> <span class="NormalTextRun SCXW68103921 BCX0">dla</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">wybranych</span><span class="NormalTextRun SCXW68103921 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">popularnych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW68103921 BCX0">modeli</span><span class="NormalTextRun SCXW68103921 BCX0"> LLM</span><span class="NormalTextRun SCXW68103921 BCX0">:</span></span><span class="EOP SCXW68103921 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-94811ff elementor-widget elementor-widget-html" data-id="94811ff" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="UTF-8">
  <title>Porównanie modeli LLM</title>
  <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap" rel="stylesheet">
  <style>
    body {
      font-family: 'Roboto', sans-serif;
      font-weight: 300;
      font-size: 14px;
      color: #1C244B;
    }
    table {
      width: 100%;
      border-collapse: collapse;
    }
    th, td {
      border: 1px solid #ccc;
      padding: 8px;
      vertical-align: top;
    }
    th {
      background-color: #f2f2f2;
    }
    td ul {
      margin: 0;
      padding-left: 18px;
    }
  </style>
</head>
<body>

<table>
  <thead>
    <tr>
      <th>Model LLM</th>
      <th>Dostęp / Licencja</th>
      <th>Koszt za 1000 tokenów</th>
      <th>Uwagi</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>GPT-3.5 Turbo (OpenAI)</td>
      <td>API w chmurze (model chat dostępny np. w ChatGPT)</td>
      <td>$0,0015 (wejście)<br>$0,0020 (wyjście)</td>
      <td>
        <ul>
          <li>Bardzo niski koszt – 16k tokenów + płatne rozszerzenie do 128k</li>
          <li>Dobre jakość odpowiedzi</li>
        </ul>
      </td>
    </tr>
    <tr>
      <td>GPT-4 (8k)</td>
      <td>API w chmurze (OpenAI)</td>
      <td>$0,08 (wejście)<br>$0,16 (wyjście)</td>
      <td>Wysoka jakość; wysoki koszt</td>
    </tr>
    <tr>
      <td>GPT-4 Turbo (128k)</td>
      <td>API w chmurze (OpenAI)</td>
      <td>$0,01 (wejście)<br>$0,03 (wyjście)</td>
      <td>
        <ul>
          <li>Bezpieczny duży kontekst (do 128k tokenów)</li>
          <li>Tańszy (niewiele droższy niż GPT-4)</li>
        </ul>
      </td>
    </tr>
    <tr>
      <td>Claude Instant v1.2</td>
      <td>API w chmurze (Anthropic)</td>
      <td>$0,0008 (wejście)<br>$0,0024 (wyjście)</td>
      <td>
        <ul>
          <li>Szybki, tańszy model Claude (odpowiednik GPT-3.5)</li>
        </ul>
      </td>
    </tr>
    <tr>
      <td>Claude 2 (100k)</td>
      <td>API w chmurze (Anthropic)</td>
      <td>$0,008 (wejście)<br>$0,024 (wyjście)</td>
      <td>
        <ul>
          <li>Wysokiej jakości model od Anthropica; kontekst do 100k tokenów</li>
        </ul>
      </td>
    </tr>
    <tr>
      <td>Mistral 7B</td>
      <td>Open source (darmowy model)</td>
      <td>50 ttoken (opłat za tokeny)</td>
      <td>
        <ul>
          <li>Trzeba samodzielnie hostować</li>
          <li>Alternatywa dla GPT-3.5 – niskie wymagania (można uruchomić nawet <1M tokenów)</li>
        </ul>
      </td>
    </tr>
    <tr>
      <td>LLaMA 2 13B</td>
      <td>Open source (darmowy model)</td>
      <td>50 ttoken (opłat za tokeny)</td>
      <td>
        <ul>
          <li>Samodzielny hosting</li>
          <li>Wymaga mocniejszego sprzętu (np. 2x 24GB GPU) niż 7B, ale nadal dostępny dla wielu firm</li>
        </ul>
      </td>
    </tr>
    <tr>
      <td>LLaMA 2 70B</td>
      <td>Open source (darmowy model)</td>
      <td>50 ttoken (opłat za tokeny)</td>
      <td>
        <ul>
          <li>Samodzielny hosting</li>
          <li>Wymaga kosztownego infrastruktury (np. 8x 80GB GPU)</li>
          <li>Przy takiej skali koszt może zbliżać się lub nawet kilkukrotnie przekraczać model np. GPT-4</li>
        </ul>
      </td>
    </tr>
  </tbody>
</table>

</body>
</html>
		</div>
				</div>
				<div class="elementor-element elementor-element-6267324 elementor-widget elementor-widget-text-editor" data-id="6267324" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p class="" data-start="127" data-end="169"><strong data-start="127" data-end="169">Legenda: jak liczone są koszty tokenów</strong></p><ul><li style="list-style-type: none;"><ul data-start="171" data-end="356"><li class="" data-start="171" data-end="258"><p class="" data-start="173" data-end="258"><strong data-start="173" data-end="193">Tokeny wejściowe</strong> („wejście”) – to słowa zawarte w zapytaniu użytkownika (prompt).</p></li><li class="" data-start="259" data-end="356"><p class="" data-start="261" data-end="356"><strong data-start="261" data-end="281">Tokeny wyjściowe</strong> („wyjście”) – to słowa wygenerowane przez model w odpowiedzi (completion).</p></li></ul></li></ul><p class="" data-start="358" data-end="469">W przypadku większości <strong data-start="381" data-end="407">komercyjnych dostawców</strong>, koszt naliczany jest osobno dla wejścia i wyjścia. Przykład:</p><ul><li style="list-style-type: none;"><ul data-start="471" data-end="781"><li class="" data-start="471" data-end="781"><p class="" data-start="473" data-end="489"><strong data-start="473" data-end="488">GPT-4 Turbo</strong>:</p><ul data-start="471" data-end="781"><li class="" data-start="492" data-end="529"><p class="" data-start="494" data-end="529">1000 tokenów wejściowych: <strong data-start="520" data-end="529">$0,03</strong></p></li><li class="" data-start="532" data-end="569"><p class="" data-start="534" data-end="569">1000 tokenów wyjściowych: <strong data-start="560" data-end="569">$0,06</strong></p></li><li class="" data-start="572" data-end="680"><p class="" data-start="574" data-end="680">Przy dialogu zawierającym łącznie 1000 tokenów (np. 500 wejścia + 500 wyjścia), koszt to około <strong data-start="669" data-end="679">$0,045</strong>.</p></li><li class="" data-start="683" data-end="781"><p class="" data-start="685" data-end="781">Dla uproszczenia można przyjąć, że interakcja o wielkości 1000 tokenów kosztuje około <strong data-start="771" data-end="780">$0,09</strong>.</p></li></ul></li></ul></li></ul><p class="" data-start="783" data-end="798">Dla porównania:</p><ul><li style="list-style-type: none;"><ul data-start="800" data-end="1126"><li class="" data-start="800" data-end="912"><p class="" data-start="802" data-end="912"><strong data-start="802" data-end="819">GPT-3.5 Turbo</strong> – koszt podobnego 1000-tokenowego dialogu to tylko około <strong data-start="877" data-end="888">$0,0035</strong> (czyli <strong data-start="896" data-end="910">0,35 centa</strong>).</p></li><li class="" data-start="913" data-end="1126"><p class="" data-start="915" data-end="1126"><strong data-start="915" data-end="937">Modele open-source</strong> (np. Mistral, LLaMA) – koszt tokenów wynosi <strong data-start="982" data-end="988">$0</strong>, ponieważ modele działają lokalnie. Ponosimy jedynie <strong data-start="1042" data-end="1078">koszty związane z infrastrukturą</strong> (zużycie energii, czas działania serwera itp.).</p></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-2c3b4b9 elementor-widget elementor-widget-text-editor" data-id="2c3b4b9" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW240231663 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">Otwartoźródłowe</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">modele</span><span class="NormalTextRun SCXW240231663 BCX0"> (Mistral, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">LLaMA</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">itp</span><span class="NormalTextRun SCXW240231663 BCX0">.) </span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">kuszą</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">brakiem</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">opłat</span><span class="NormalTextRun SCXW240231663 BCX0"> za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">sam</span><span class="NormalTextRun SCXW240231663 BCX0"> model – </span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">można</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">generować</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">dowolne</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">ilości</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">tokenów</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">nie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">płacąc</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">dostawcy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">modelu</span><span class="NormalTextRun SCXW240231663 BCX0"> ani </span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">centa</span><span class="NormalTextRun SCXW240231663 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">Jednakże</span><span class="NormalTextRun SCXW240231663 BCX0">, aby </span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">te</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">modele</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">działały</span><span class="NormalTextRun SCXW240231663 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">musimy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">utrzymywać</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">własną</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">infrastrukturę</span><span class="NormalTextRun SCXW240231663 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">Przy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">niewielkiej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">skali</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">użycia</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">może</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">się</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">okazać</span><span class="NormalTextRun SCXW240231663 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">że</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">koszt</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">wynajmu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">maszyny</span> </span><span class="TextRun SCXW240231663 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">na</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">jedno</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">zapytanie</span></span><span class="TextRun SCXW240231663 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">będzie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">nawet</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">wyższy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">niż</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">zapłata</span><span class="NormalTextRun SCXW240231663 BCX0"> za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">pojedyncze</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">wywołanie</span><span class="NormalTextRun SCXW240231663 BCX0"> API GPT. Z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">drugiej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">strony</span><span class="NormalTextRun SCXW240231663 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">przy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">dużej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">skali</span><span class="NormalTextRun SCXW240231663 BCX0"> (</span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">bardzo</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">wielu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">zapytaniach</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">dziennie</span><span class="NormalTextRun SCXW240231663 BCX0">) </span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">wykorzystanie</span> <span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW240231663 BCX0">open-source</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">może</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">okazać</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">się</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">dużo</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">bardziej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">opłacalne</span><span class="NormalTextRun SCXW240231663 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">Podsumowując</span><span class="NormalTextRun SCXW240231663 BCX0">,</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">opłacalność</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">zależy</span> <span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW240231663 BCX0">od</span> </span><span class="TextRun SCXW240231663 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">scenariusza</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">użycia</span></span><span class="TextRun SCXW240231663 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW240231663 BCX0">, o </span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">czym</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">opowiemy</span><span class="NormalTextRun SCXW240231663 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">kolejnym</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW240231663 BCX0">punkcie</span><span class="NormalTextRun SCXW240231663 BCX0">.</span></span><span class="EOP SCXW240231663 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-68c5cf5 elementor-widget elementor-widget-spacer" data-id="68c5cf5" data-element_type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
					<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-eb32f74 elementor-widget elementor-widget-heading" data-id="eb32f74" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Przykładowe koszty wdrożenia asystenta LLM (100 zapytań dziennie) </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-d65244a elementor-widget elementor-widget-text-editor" data-id="d65244a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW152583449 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW152583449 BCX0">Rozważmy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW152583449 BCX0">teraz</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW152583449 BCX0">praktyczny</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW152583449 BCX0">scenariusz</span><span class="NormalTextRun SCXW152583449 BCX0">: </span><span class="NormalTextRun SpellingErrorV2Themed SCXW152583449 BCX0">Twoja</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW152583449 BCX0">firma</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW152583449 BCX0">chce</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW152583449 BCX0">wdrożyć</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW152583449 BCX0">prostego</span> </span><span class="TextRun SCXW152583449 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW152583449 BCX0">wirtualnego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW152583449 BCX0">asystenta</span></span><span class="TextRun SCXW152583449 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SpellingErrorV2Themed SCXW152583449 BCX0">opartego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW152583449 BCX0">na</span><span class="NormalTextRun SCXW152583449 BCX0"> LLM, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW152583449 BCX0">który</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW152583449 BCX0">wykonuje</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW152583449 BCX0">jedno</span><span class="NormalTextRun SCXW152583449 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW152583449 BCX0">zadań</span><span class="NormalTextRun SCXW152583449 BCX0">:</span></span><span class="EOP SCXW152583449 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-54a353d elementor-widget elementor-widget-text-editor" data-id="54a353d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Analiza dokumentów</span></b><span data-contrast="auto"> – np. asystent wczytuje oferty lub umowy i wyciąga z nich najważniejsze informacje (klauzule, terminy, kwoty).</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><b><span data-contrast="auto">Obsługa zapytań klientów</span></b><span data-contrast="auto"> – np. asystent odpowiada na maile klientów z pytaniami o ofertę, dostępność produktów, pomoc techniczną itp.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-e25102c elementor-widget elementor-widget-text-editor" data-id="e25102c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW103184250 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW103184250 BCX0">Załóżmy</span><span class="NormalTextRun SCXW103184250 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW103184250 BCX0">że</span><span class="NormalTextRun SCXW103184250 BCX0">:</span> </span><span class="EOP SCXW103184250 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-e1312ca elementor-widget elementor-widget-text-editor" data-id="e1312ca" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="6" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">asystent będzie obsługiwał około </span><b><span data-contrast="auto">100 interakcji dziennie</span></b> <span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="6" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">każda interakcja to </span><b><span data-contrast="auto">zapytanie + odpowiedź o łącznej długości ~2000 tokenów</span></b><span data-contrast="auto"> (np. 1000 tokenów w pytaniu – odpowiada to mniej więcej 750 słowom lub kilku akapitom tekstu – oraz 1000 tokenów w odpowiedzi, czyli ok. 750 słów wygenerowanej odpowiedzi). Taka długość pokrywa już dosyć złożone zapytanie i obszerną odpowiedź.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">miesięcznie nasz asystent przetworzy około </span><b><span data-contrast="auto">6 milionów tokenów</span></b><span data-contrast="auto"> (3000 * 2000 = 6 000 000 tokenów). </span><span data-ccp-props="{}"> </span></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-fd1201f elementor-widget elementor-widget-text-editor" data-id="fd1201f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW201326146 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW201326146 BCX0">Chcemy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW201326146 BCX0">porównać</span> </span><span class="TextRun SCXW201326146 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW201326146 BCX0">koszty</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW201326146 BCX0">miesięczne</span></span><span class="TextRun SCXW201326146 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SpellingErrorV2Themed SCXW201326146 BCX0">utrzymania</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW201326146 BCX0">takiego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW201326146 BCX0">asystenta</span><span class="NormalTextRun SCXW201326146 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW201326146 BCX0">zależności</span><span class="NormalTextRun SCXW201326146 BCX0"> od </span><span class="NormalTextRun SpellingErrorV2Themed SCXW201326146 BCX0">wyboru</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW201326146 BCX0">modelu</span> <span class="NormalTextRun SCXW201326146 BCX0">i</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW201326146 BCX0">sposobu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW201326146 BCX0">wdrożenia</span><span class="NormalTextRun SCXW201326146 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW201326146 BCX0">Pokażemy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW201326146 BCX0">dwa</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW201326146 BCX0">warianty</span><span class="NormalTextRun SCXW201326146 BCX0">:</span></span><span class="EOP SCXW201326146 BCX0" data-ccp-props="{&quot;335559685&quot;:0}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-405f91b elementor-widget elementor-widget-text-editor" data-id="405f91b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><strong>Wariant API (model zamknięty):</strong><span data-contrast="auto"> Korzystamy z komercyjnego modelu poprzez API (np. OpenAI GPT lub Anthropic Claude). Nie utrzymujemy własnych serwerów – płacimy wyłącznie za wykorzystane tokeny według cennika.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><strong>Wariant self-hosted (model open-source):</strong><span data-contrast="auto"> Korzystamy z otwartoźródłowego modelu (np. Mistral lub LLaMA) zainstalowanego na naszych serwerach. Płacimy za infrastrukturę potrzebną do obsługi tych ~100 zapytań dziennie (np. wynajem instancji GPU w chmurze lub amortyzacja zakupu sprzętu, plus prąd).</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-8644d6d elementor-cta--skin-cover elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action" data-id="8644d6d" data-element_type="widget" data-widget_type="call-to-action.default">
				<div class="elementor-widget-container">
					<a class="elementor-cta" href="https://inero-software.com/pl/dowiedz-sie-jak-skorzystac-z-bezplatnych-szkolen-prowadzonych-przez-ekspertow-inero/">
					<div class="elementor-cta__bg-wrapper">
				<div class="elementor-cta__bg elementor-bg" style="background-image: url(https://inero-software.com/wp-content/uploads/2024/12/tlo-2-1030x579.png);" role="img" aria-label="tło (2)"></div>
				<div class="elementor-cta__bg-overlay"></div>
			</div>
							<div class="elementor-cta__content">
				
									<h2 class="elementor-cta__title elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Zapraszamy na bezpłatne szkolenie dla MŚP					</h2>
				
									<div class="elementor-cta__description elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Usługa edukacyjno-szkoleniowa w zakresie automatyzacji procesów integracji i wdrożenia narzędzi AI w ramach Pomorskiego Hubi Innowacji Cyfrowych					</div>
				
									<div class="elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
					<span class="elementor-cta__button elementor-button elementor-size-">
						Poznaj szczegóły					</span>
					</div>
							</div>
						</a>
				</div>
				</div>
				<div class="elementor-element elementor-element-0c96b1a elementor-widget elementor-widget-text-editor" data-id="0c96b1a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW157284688 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW157284688 BCX0">Poniżej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW157284688 BCX0">przedstawiamy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW157284688 BCX0">tabelę</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW157284688 BCX0">porównującą</span> </span><span class="TextRun SCXW157284688 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW157284688 BCX0">orientacyjne</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW157284688 BCX0">miesięczne</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW157284688 BCX0">koszty</span></span><span class="TextRun SCXW157284688 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SCXW157284688 BCX0">dla</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW157284688 BCX0">kilku</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW157284688 BCX0">przykładowych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW157284688 BCX0">modeli</span><span class="NormalTextRun SCXW157284688 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW157284688 BCX0">obu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW157284688 BCX0">wariantach</span><span class="NormalTextRun SCXW157284688 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW157284688 BCX0">przy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW157284688 BCX0">założeniu</span><span class="NormalTextRun SCXW157284688 BCX0"> 6 </span><span class="NormalTextRun SpellingErrorV2Themed SCXW157284688 BCX0">mln</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW157284688 BCX0">tokenów</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW157284688 BCX0">miesięcznie</span><span class="NormalTextRun SCXW157284688 BCX0">:</span></span><span class="EOP SCXW157284688 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559685&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-7d37b9a elementor-widget elementor-widget-html" data-id="7d37b9a" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			<!DOCTYPE html>
<html lang="pl">
<head>
  <meta charset="UTF-8">
  <title>Porównanie kosztów miesięcznych LLM</title>
  <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap" rel="stylesheet">
  <style>
    body {
      font-family: 'Roboto', sans-serif;
      font-weight: 300;
      font-size: 14px;
      color: #1C244B;
    }
    table {
      width: 100%;
      border-collapse: collapse;
      margin-top: 20px;
    }
    th, td {
      border: 1px solid #ccc;
      padding: 8px;
      vertical-align: top;
    }
    th {
      background-color: #f2f2f2;
    }
    td ul {
      margin: 0;
      padding-left: 18px;
    }
  </style>
</head>
<body>

<table>
  <thead>
    <tr>
      <th>Model (wariant)</th>
      <th>Szacowany koszt miesięczny</th>
      <th>Komentarz</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>GPT-3.5 Turbo (API)</td>
      <td>ok. $18 (USD)</td>
      <td>
        <ul>
          <li>Bardzo niski koszt przy tej jakości.</li>
          <li>Wyliczenie: ok. $0,0027/1k tok. → $12 za wygenerowanie 4M tok. + $6 za zapytania → $18 miesięcznie orientacyjnie.</li>
        </ul>
      </td>
    </tr>
    <tr>
      <td>GPT-4 (8k) (API)</td>
      <td>ok. $270</td>
      <td>
        <ul>
          <li>Dużo wyższy koszt za lepszą jakość.</li>
          <li>Wyliczenie: np. 8M tok. → koszt: 8M × $0,08/1k (tok wejści) + $0,16/1k (tok wyjści) → koszt miesięczny $270–$540.</li>
        </ul>
      </td>
    </tr>
    <tr>
      <td>GPT-4 Turbo (128k) (API)</td>
      <td>ok. $18</td>
      <td>
        <ul>
          <li>Niewiele droższy niż zwykły GPT-3.5 dzięki tańszym tokenom wejściowym i wyjściowym.</li>
          <li>Może mieć nawet lepszą jakość niż GPT-4 (8k).</li>
        </ul>
      </td>
    </tr>
    <tr>
      <td>Claude Instant (API)</td>
      <td>ok. $20–25</td>
      <td>
        <ul>
          <li>Porównywalny z kosztem GPT-3.5.</li>
          <li>Wyliczenie: ok. $0,0021/1k tok. (wej+wyj) → analogicznie $18–25 za 8 mln tok. (Plus ewentualne opłaty stałe).</li>
        </ul>
      </td>
    </tr>
    <tr>
      <td>Claude 2 (API)</td>
      <td>ok. $150–200</td>
      <td>
        <ul>
          <li>Tańszy od GPT-4, ale wciąż kilkukrotnie droższy niż GPT-3.5.</li>
          <li>Wyliczenie: $0,032/1k tok. → 8M = ~$192 za 8 mln tok.</li>
        </ul>
      </td>
    </tr>
    <tr>
      <td>Mistral 7B (open source, 1 self-host, 1xGPU)</td>
      <td>ok. $300</td>
      <td>
        <ul>
          <li>Koszt głównie za utrzymanie serwera / GPU.</li>
          <li>Założenie: instancja na 1x24GB GPU – model generuje ~30–60 tok./s, zużycie 100–150W.</li>
          <li>Rzeczywisty koszt zależy od lokalizacji i zużycia (prąd + serwer = ~300 zł–400 zł/mies.).</li>
        </ul>
      </td>
    </tr>
    <tr>
      <td>LLaMA 2 70B (open source, self-host, multi-GPU)</td>
      <td>ok. $1,000+</td>
      <td>
        <ul>
          <li>Wysoki koszt związany wymaga dużą mocą GPU.</li>
          <li>Przy 70B to zazwyczaj instancja na minimum 8x80GB GPU (~10k–12k USD sprzętowo + wysokie zużycie prądu).</li>
          <li>Wyliczenia zależne od modelu działania (on-prem / cloud / GPU provider).</li>
        </ul>
      </td>
    </tr>
    <tr>
      <td>Lokalny model (np. LLaMA 13B, GPTQ, Mistral 7B – CPU)</td>
      <td>ok. $300–500</td>
      <td>
        <ul>
          <li>Koszt obejmuje eksploatację lokalnego serwera.</li>
          <li>Model może być wolniejszy niż GPT-3.5, ale za to bezpieczny i prywatny.</li>
          <li>Dla instancji na CPU (np. 12 rdzeni, 64 GB RAM) koszt miesięczny to głównie energia i obsługa.</li>
        </ul>
      </td>
    </tr>
  </tbody>
</table>

</body>
</html>
		</div>
				</div>
				<div class="elementor-element elementor-element-c433e92 elementor-widget elementor-widget-text-editor" data-id="c433e92" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW103638469 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW103638469 BCX0">Z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW103638469 BCX0">powyższego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW103638469 BCX0">porównania</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW103638469 BCX0">można</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW103638469 BCX0">wyciągnąć</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW103638469 BCX0">kilka</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW103638469 BCX0">wniosków</span><span class="NormalTextRun SCXW103638469 BCX0">:</span></span><span class="EOP SCXW103638469 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-cdd2a41 elementor-widget elementor-widget-text-editor" data-id="cdd2a41" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong><span class="TextRun SCXW229380527 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">Mała</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">skala</span><span class="NormalTextRun SCXW229380527 BCX0"> (100 </span><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">zapytań</span><span class="NormalTextRun SCXW229380527 BCX0">/</span><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">dziennie</span><span class="NormalTextRun SCXW229380527 BCX0">) </span><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">sprzyja</span><span class="NormalTextRun SCXW229380527 BCX0"> API</span></span></strong></p><p><span class="TextRun SCXW229380527 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">Przy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">stosunkowo</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">niewielkim</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">obciążeniu</span><span class="NormalTextRun SCXW229380527 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">korzystanie</span><span class="NormalTextRun SCXW229380527 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">gotowego</span><span class="NormalTextRun SCXW229380527 BCX0"> API (OpenAI, Anthropic) jest </span></span><strong><span class="TextRun SCXW229380527 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">bardzo</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">tanie</span></span></strong><span class="TextRun SCXW229380527 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW229380527 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">przypadku</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">tańszych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">modeli</span><span class="NormalTextRun SCXW229380527 BCX0"> (GPT-3.5, Claude Instant) – </span><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">mówimy</span><span class="NormalTextRun SCXW229380527 BCX0"> o </span><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">kilkunastu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">czy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">kilkudziesięciu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">dolarach</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">miesięcznie</span><span class="NormalTextRun SCXW229380527 BCX0">.</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">Przy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">użyciu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">droższych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">modeli</span><span class="NormalTextRun SCXW229380527 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">koszt</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">miesięczny</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">może</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">wzrosnąć</span><span class="NormalTextRun SCXW229380527 BCX0"> do </span><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">kilkuset</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">dolarów</span><span class="NormalTextRun SCXW229380527 BCX0">. </span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">Gdy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">z</span><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">apytań</span> <span class="NormalTextRun SCXW229380527 BCX0">jest </span><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">m</span><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">ało</span><span class="NormalTextRun SCXW229380527 BCX0">,</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">w</span><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">łasny</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">s</span><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">erwer</span> <span class="NormalTextRun SCXW229380527 BCX0">GPU za $300+ </span><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">m</span><span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">iesięcznie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">byłby</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">mniej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW229380527 BCX0">opłacalny</span><span class="NormalTextRun SCXW229380527 BCX0">.</span></span><span class="EOP SCXW229380527 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-e8cf4e9 elementor-widget elementor-widget-text-editor" data-id="e8cf4e9" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong><span class="TextRun SCXW158473464 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">Duża</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">skala</span><span class="NormalTextRun SCXW158473464 BCX0"> (</span><span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">wiele</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">tysięcy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">zapytań</span><span class="NormalTextRun SCXW158473464 BCX0">) </span><span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">zmienia</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">kalkulację</span></span></strong></p><p><span class="TextRun SCXW158473464 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">Jeśli</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">nasz</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">asystent</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">odniesie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">sukces</span> <span class="NormalTextRun SCXW158473464 BCX0">i</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">skala</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">zapytań</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">wzrośnie</span> </span><span class="TextRun SCXW158473464 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW158473464 BCX0">np. <strong>10x </strong></span><strong><span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">lub</span><span class="NormalTextRun SCXW158473464 BCX0"> 100x</span></strong></span><span class="TextRun SCXW158473464 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW158473464 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">wtedy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">comiesięczny</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">rachunek</span><span class="NormalTextRun SCXW158473464 BCX0"> za API </span><span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">mógłby</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">urosnąć</span><span class="NormalTextRun SCXW158473464 BCX0"> do </span><span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">tysięcy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">czy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">dziesiątek</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">tysięcy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">dolarów</span><span class="NormalTextRun SCXW158473464 BCX0">. W </span><span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">takiej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">sytuacji</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">inwestycja</span><span class="NormalTextRun SCXW158473464 BCX0"> we </span><span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">własny</span><span class="NormalTextRun SCXW158473464 BCX0"> model </span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW158473464 BCX0">open-source</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">zaczyna</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">mieć</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">sens.</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">Przy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">odpowiednio</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">dużej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">liczbie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">zapytań</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">koszt</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">jednostkowy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">generowania</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">odpowiedzi</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">lokalnie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">staje</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">się</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">niższy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">niż</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">koszt</span><span class="NormalTextRun SCXW158473464 BCX0"> w API (</span><span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">bo</span> </span><strong><span class="TextRun SCXW158473464 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">pełniej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">wykorzystujemy</span></span></strong><span class="TextRun SCXW158473464 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">zakupiony</span><span class="NormalTextRun SCXW158473464 BCX0">/</span><span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">wynajęty</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">sprzęt</span><span class="NormalTextRun SCXW158473464 BCX0">). W </span><span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">skrajnym</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">przypadku</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">ogromnej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">skali</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">można</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">nawet</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">myśleć</span><span class="NormalTextRun SCXW158473464 BCX0"> o </span><span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">trenowaniu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">własnego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">modelu</span> <span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW158473464 BCX0">od</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">podstaw</span><span class="NormalTextRun SCXW158473464 BCX0"> – ale to </span><span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">już</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">domena</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">największych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">graczy</span><span class="NormalTextRun SCXW158473464 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">bardzo</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">dużymi</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW158473464 BCX0">budżetami</span><span class="NormalTextRun SCXW158473464 BCX0">.</span></span><span class="EOP SCXW158473464 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-8d36cb0 elementor-widget elementor-widget-text-editor" data-id="8d36cb0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong><span class="TextRun SCXW188260597 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">Znaczenie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">przypadku</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">użycia</span><span class="NormalTextRun SCXW188260597 BCX0"> (</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">jakość</span><span class="NormalTextRun SCXW188260597 BCX0"> vs. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">oszczędność</span><span class="NormalTextRun SCXW188260597 BCX0">)</span></span></strong></p><p><span class="TextRun SCXW188260597 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">Wybór</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">modelu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">powinien</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">zależeć</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">nie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">tylko</span> <span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW188260597 BCX0">od</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">kosztu</span><span class="NormalTextRun SCXW188260597 BCX0">, ale </span><span class="NormalTextRun SCXW188260597 BCX0">i</span><span class="NormalTextRun SCXW188260597 BCX0"> od </span></span><strong><span class="TextRun SCXW188260597 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">wymaganego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">poziomu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">odpowiedzi</span></span></strong><span class="TextRun SCXW188260597 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW188260597 BCX0">. W </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">scenariuszu</span> </span><span class="TextRun SCXW188260597 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">analizy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">dokumentów</span></span><span class="TextRun SCXW188260597 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">najbardziej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">zależy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">nam</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">na</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">precyzji</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">ekstrakcji</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">informacji</span><span class="NormalTextRun SCXW188260597 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">Być</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">może</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">wystarczy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">tu</span><span class="NormalTextRun SCXW188260597 BCX0"> model </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">tańszy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">lub</span> <span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW188260597 BCX0">open-source</span><span class="NormalTextRun SCXW188260597 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">który</span><span class="NormalTextRun SCXW188260597 BCX0"> po </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">odpowiednim</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">dostrojeniu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">poprawnie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">wyłuska</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">dane</span><span class="NormalTextRun SCXW188260597 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">tekstu</span><span class="NormalTextRun SCXW188260597 BCX0">. Taki model (np. 7B-13B </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">parametrów</span><span class="NormalTextRun SCXW188260597 BCX0">) </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">może</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">być</span> </span><span class="TextRun SCXW188260597 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">znacznie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">tańszy</span><span class="NormalTextRun SCXW188260597 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">użyciu</span></span><span class="TextRun SCXW188260597 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SCXW188260597 BCX0">i</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">wystarczający</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">jakościowo</span><span class="NormalTextRun SCXW188260597 BCX0">. Co </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">więcej</span><span class="NormalTextRun SCXW188260597 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">jeśli</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">przetwarzamy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">wrażliwe</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">dokumenty</span><span class="NormalTextRun SCXW188260597 BCX0"> (np. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">umowy</span><span class="NormalTextRun SCXW188260597 BCX0">), </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">lokalne</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">uruchomienie</span> <span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW188260597 BCX0">open-source</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">gwarantuje</span><span class="NormalTextRun SCXW188260597 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">że</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">treść</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">dokumentów</span> </span><span class="TextRun SCXW188260597 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">nie</span> <strong><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">opuści</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">naszej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">firmy</span></strong></span><span class="TextRun SCXW188260597 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW188260597 BCX0">, co </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">bywa</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">bezcenne</span><span class="NormalTextRun SCXW188260597 BCX0"> ze </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">względów</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">prawnych</span><span class="NormalTextRun SCXW188260597 BCX0">. Z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">d</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">rugiej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">s</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">trony</span><span class="NormalTextRun SCXW188260597 BCX0">,</span><span class="NormalTextRun SCXW188260597 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">s</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">cenariuszu</span> </span><span class="TextRun SCXW188260597 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">o</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">bsługi</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">z</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">apytań</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">k</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">lientów</span></span><span class="TextRun SCXW188260597 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW188260597 BCX0">,</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">g</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">dzie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">l</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">iczy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">s</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">ię</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">j</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">akość</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">j</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">ęzyka</span><span class="NormalTextRun SCXW188260597 BCX0">,</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">u</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">przejmość</span><span class="NormalTextRun SCXW188260597 BCX0">,</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">k</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">ontekst</span> <span class="NormalTextRun SCXW188260597 BCX0">– model GPT-4 </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">m</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">oże</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">z</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">nacząco</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">p</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">rzewyższać</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">p</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">rostsze</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">m</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">odele</span> <span class="NormalTextRun SCXW188260597 BCX0">w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">j</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">akości</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">o</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">dpowiedzi</span><span class="NormalTextRun SCXW188260597 BCX0">.</span><span class="NormalTextRun SCXW188260597 BCX0"> Tu </span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">f</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">irma</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">m</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">oże</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">z</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">decydować</span><span class="NormalTextRun SCXW188260597 BCX0">,</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">ż</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">e</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">w</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">arto</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">z</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">apłacić</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">w</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">ięcej</span> <span class="NormalTextRun SCXW188260597 BCX0">za </span></span><strong><span class="TextRun SCXW188260597 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">l</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">epsze</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">w</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">rażenia</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">k</span><span class="NormalTextRun SpellingErrorV2Themed SCXW188260597 BCX0">lienta</span></span><span class="TextRun SCXW188260597 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW188260597 BCX0">.</span> </span></strong><span class="EOP SCXW188260597 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-e71a8c1 elementor-widget elementor-widget-text-editor" data-id="e71a8c1" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong><span class="TextRun SCXW74896482 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">Niewidoczne</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">koszty</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">wokół</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">projektu</span></span></strong></p><p><span class="TextRun SCXW74896482 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">Zauważmy</span><span class="NormalTextRun SCXW74896482 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">że</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">powyższe</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">kalkulacje</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">dotyczą</span> </span><strong><span class="TextRun SCXW74896482 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">kosztów</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">czysto</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">technologicznych</span></span></strong><span class="TextRun SCXW74896482 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW74896482 BCX0"> (</span><span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">tokeny</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">lub</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">sprzęt</span><span class="NormalTextRun SCXW74896482 BCX0">). W </span><span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">praktyce</span><span class="NormalTextRun SCXW74896482 BCX0"> do </span><span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">tego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">dojdą</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">koszty</span><span class="NormalTextRun SCXW74896482 BCX0"> „</span><span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">miękkie</span><span class="NormalTextRun SCXW74896482 BCX0">” – </span><span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">czas</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">personelu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">na</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">przygotowanie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">wdrożenia</span><span class="NormalTextRun SCXW74896482 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">integrację</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">modelu</span><span class="NormalTextRun SCXW74896482 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">systemem</span><span class="NormalTextRun SCXW74896482 BCX0"> np. CRM </span><span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">lub</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">bazą</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">wiedzy</span><span class="NormalTextRun SCXW74896482 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">testowanie</span> <span class="NormalTextRun SCXW74896482 BCX0">i</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">iteracyjne</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">usprawnianie</span><span class="NormalTextRun SCXW74896482 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">Jeśli</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">nasz</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">asystent</span><span class="NormalTextRun SCXW74896482 BCX0"> ma np. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">pobierać</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">dane</span><span class="NormalTextRun SCXW74896482 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">firmowej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">bazy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">dokumentów</span><span class="NormalTextRun SCXW74896482 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">często</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">dane</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">te</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">trzeba</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">też</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">odpowiednio</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW74896482 BCX0">uporządkować</span><span class="NormalTextRun SCXW74896482 BCX0">.</span></span><span class="EOP SCXW74896482 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-a572344 elementor-widget elementor-widget-spacer" data-id="a572344" data-element_type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
					<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-2a1f46d elementor-widget elementor-widget-heading" data-id="2a1f46d" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Przykład kosztów: Asystent AI analizujący maile i dokumenty PDF </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-f3e96de elementor-widget elementor-widget-text-editor" data-id="f3e96de" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW59938259 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">Przedstawiamy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">tutaj</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">też</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">koszty</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">naszego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">asystenta</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">opartego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">na</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">modelu</span><span class="NormalTextRun SCXW59938259 BCX0"> Gemini od Google, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">który</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">opisaliśmy</span> </span><a class="Hyperlink SCXW59938259 BCX0" href="https://inero-software.com/pl/poznaj-swojego-osobistego-agenta-ai-case-study-dla-firmy-spedycyjnej/" target="_blank" rel="noreferrer noopener"><span class="TextRun Underlined SCXW59938259 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW59938259 BCX0" data-ccp-charstyle="Hyperlink">tutaj</span></span></a><span class="TextRun SCXW59938259 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW59938259 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">Jego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">zadaniem</span><span class="NormalTextRun SCXW59938259 BCX0"> jest </span><span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">automatyczna</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">analiza</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">przychodzących</span><span class="NormalTextRun SCXW59938259 BCX0"> e-</span><span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">maili</span><span class="NormalTextRun SCXW59938259 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">celu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">identyfikacji</span><span class="NormalTextRun SCXW59938259 BCX0"> polis </span><span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">ubezpieczeniowych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">oraz</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">ekstrakcja</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">kluczowych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">danych</span><span class="NormalTextRun SCXW59938259 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">załączonych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">dokumentów</span><span class="NormalTextRun SCXW59938259 BCX0"> PDF, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">takich</span><span class="NormalTextRun SCXW59938259 BCX0"> jak </span><span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">numer</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">polisy</span><span class="NormalTextRun SCXW59938259 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">adres</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">ubezpieczonego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">czy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">potwierdzenie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW59938259 BCX0">płatności</span><span class="NormalTextRun SCXW59938259 BCX0">. </span></span><span class="EOP SCXW59938259 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-149557e elementor-widget elementor-widget-text-editor" data-id="149557e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><b><span data-contrast="auto">Średnia liczba tokenów na e-mail</span></b><span data-contrast="auto">:</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559685&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p><p> </p><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="9" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><b><span data-contrast="auto">Wejście (input)</span></b><span data-contrast="auto">: 3 500 tokenów</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="9" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><b><span data-contrast="auto">Wyjście (output)</span></b><span data-contrast="auto">: 220 tokenów </span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-6ac8e71 elementor-widget elementor-widget-text-editor" data-id="6ac8e71" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW258822112 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW258822112 BCX0">Analiza </span><span class="NormalTextRun SCXW258822112 BCX0">100</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW258822112 BCX0">mail</span><span class="NormalTextRun SpellingErrorV2Themed SCXW258822112 BCX0">i</span><span class="NormalTextRun SCXW258822112 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW258822112 BCX0">załącznikami</span><span class="NormalTextRun SCXW258822112 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW258822112 BCX0">użyciem</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW258822112 BCX0">modelu</span><span class="NormalTextRun SCXW258822112 BCX0"> Gemini 2.0 Flash </span><span class="NormalTextRun SpellingErrorV2Themed SCXW258822112 BCX0">kosztuje</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW258822112 BCX0">zatem</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW258822112 BCX0">około</span> <span class="NormalTextRun SCXW258822112 BCX0">$1.5.</span></span><span class="EOP SCXW258822112 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559685&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-6721885 elementor-widget elementor-widget-heading" data-id="6721885" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Podsumowanie </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-2655d3c elementor-widget elementor-widget-text-editor" data-id="2655d3c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong><span class="TextRun SCXW150866836 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">Czy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">stać</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">nas</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">na</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">własnego</span><span class="NormalTextRun SCXW150866836 BCX0"> „ChatGPT” w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">firmie</span><span class="NormalTextRun SCXW150866836 BCX0">?</span></span></strong><span class="TextRun SCXW150866836 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW150866836 BCX0"> Jak </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">widać</span><span class="NormalTextRun SCXW150866836 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">odpowiedź</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">brzmi</span><span class="NormalTextRun SCXW150866836 BCX0">: </span></span><span class="TextRun SCXW150866836 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW150866836 BCX0">to </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">zależy</span></span><span class="TextRun SCXW150866836 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW150866836 BCX0"> – </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">przede</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">wszystkim</span> <span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW150866836 BCX0">od</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">skali</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">użycia</span> <span class="NormalTextRun SCXW150866836 BCX0">i</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">wymagań</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">jakościowych</span><span class="NormalTextRun SCXW150866836 BCX0">.</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">Kluczem</span><span class="NormalTextRun SCXW150866836 BCX0"> jest </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">wybór</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">modelu</span><span class="NormalTextRun SCXW150866836 BCX0"> i </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">sposóbu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">wdrożenia</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">adekwatnego</span><span class="NormalTextRun SCXW150866836 BCX0"> do </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">naszych</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">potrzeb</span><span class="NormalTextRun SCXW150866836 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">Często</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">praktykuje</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">się</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">podejście</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">iteracyjne</span><span class="NormalTextRun SCXW150866836 BCX0"> – start z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">tańszym</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">modelem</span><span class="NormalTextRun SCXW150866836 BCX0">/API, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">ocena</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">efektów</span><span class="NormalTextRun SCXW150866836 BCX0">, a </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">następnie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">ewentualne</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">przejście</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">na</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">mocniejszy</span><span class="NormalTextRun SCXW150866836 BCX0"> model </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">lub</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">własny</span><span class="NormalTextRun SCXW150866836 BCX0"> hosting, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">gdy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">projekt</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">się</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">rozwinie</span><span class="NormalTextRun SCXW150866836 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">Niezależnie</span><span class="NormalTextRun SCXW150866836 BCX0"> od </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">wyboru</span><span class="NormalTextRun SCXW150866836 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">ważne</span><span class="NormalTextRun SCXW150866836 BCX0"> jest </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">świadome</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">planowanie</span><span class="NormalTextRun SCXW150866836 BCX0"> i </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">monitorowanie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">wszystkich</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">rodzajów</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">kosztów</span><span class="NormalTextRun SCXW150866836 BCX0">. Mamy </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">nadzieję</span><span class="NormalTextRun SCXW150866836 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">że</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">powyższe</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">zestawienie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">pomoże</span><span class="NormalTextRun SCXW150866836 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">podjęciu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">decyzji</span><span class="NormalTextRun SCXW150866836 BCX0"> i </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">przygotowaniu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">realnego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">budżetu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">na</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">wdrożenie</span> </span><strong><span class="TextRun SCXW150866836 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">dedykowanego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">modelu</span><span class="NormalTextRun SCXW150866836 BCX0"> LLM</span></span></strong><span class="TextRun SCXW150866836 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW150866836 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">Waszej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW150866836 BCX0">organizacji</span><span class="NormalTextRun SCXW150866836 BCX0">.</span></span><span class="EOP SCXW150866836 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559685&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-ec198b5 elementor-widget elementor-widget-text-editor" data-id="ec198b5" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW34349917 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SpellingErrorV2Themed SCXW34349917 BCX0">Jeśli</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW34349917 BCX0">rozważasz</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW34349917 BCX0">wdrożenie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW34349917 BCX0">asystenta</span><span class="NormalTextRun SCXW34349917 BCX0"> w </span><span class="NormalTextRun SpellingErrorV2Themed SCXW34349917 BCX0">Twojej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW34349917 BCX0">firmie</span><span class="NormalTextRun SCXW34349917 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW34349917 BCX0">warto</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW34349917 BCX0">znaleźć</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW34349917 BCX0">odpowiedzi</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW34349917 BCX0">na</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW34349917 BCX0">poniższe</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW34349917 BCX0">pytania</span><span class="NormalTextRun SCXW34349917 BCX0">:</span></span><span class="EOP SCXW34349917 BCX0" data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-22bdc83 elementor-widget elementor-widget-text-editor" data-id="22bdc83" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="8" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Czy potrzebuję wysokiej jakości odpowiedzi (GPT-4), czy wystarczy przybliżona (Claude Haiku, Gemini Flash)?</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="8" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">Czy przetwarzam dane wrażliwe (np. dokumenty klientów)?</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="8" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">Czy mam zespół IT zdolny hostować własny model?</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="8" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="4" data-aria-level="1"><span data-contrast="auto">Jaka jest spodziewana liczba zapytań dziennie/miesięcznie?</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="8" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="5" data-aria-level="1"><span data-contrast="auto">Czy opłaca mi się własna infrastruktura, czy lepiej płacić za API?</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-f145f07 elementor-widget elementor-widget-text-editor" data-id="f145f07" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW43685267 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW43685267 BCX0">Dla</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">małych</span> <span class="NormalTextRun SCXW43685267 BCX0">i</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">średnich</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">zastosowań</span><span class="NormalTextRun SCXW43685267 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">koszty</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">korzystania</span><span class="NormalTextRun SCXW43685267 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">dedykowanego</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">modelu</span><span class="NormalTextRun SCXW43685267 BCX0"> LLM </span><span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">mogą</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">być</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">całkiem</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">przystępne</span><span class="NormalTextRun SCXW43685267 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">Dzięki</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">usługom</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">chmurowym</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">można</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">zacząć</span> <span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW43685267 BCX0">od</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">kilkunastu</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">dolarów</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">miesięcznie</span><span class="NormalTextRun SCXW43685267 BCX0"> za model </span><span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">pokroju</span><span class="NormalTextRun SCXW43685267 BCX0"> GPT-3.5 </span><span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">czy</span><span class="NormalTextRun SCXW43685267 BCX0"> Claude Instant, co jest </span><span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">świetnym</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">sposobem</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">na</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">eksperymenty</span> <span class="NormalTextRun SCXW43685267 BCX0">i</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">pierwsze</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">prototypy</span><span class="NormalTextRun SCXW43685267 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">Jeśli</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">potrzebujemy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">najwyższej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">jakości</span><span class="NormalTextRun SCXW43685267 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">dostępnej</span><span class="NormalTextRun SCXW43685267 BCX0"> np. w GPT-4, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">musimy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">liczyć</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">się</span><span class="NormalTextRun SCXW43685267 BCX0"> z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">wyższą</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">ceną</span><span class="NormalTextRun SCXW43685267 BCX0">, ale </span><span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">nawet</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">kilkaset</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">dolarów</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">miesięcznie</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">może</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">być</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">uzasadnione</span><span class="NormalTextRun SCXW43685267 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">jeśli</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">wartość</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">dodana</span> <span class="NormalTextRun SCXW43685267 BCX0">dla</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">biznesu</span><span class="NormalTextRun SCXW43685267 BCX0"> jest </span><span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">istotna</span><span class="NormalTextRun SCXW43685267 BCX0"> (np. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">automatyzacja</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">oszczędzająca</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">wiele</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">godzin</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">pracy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW43685267 BCX0">ludzi</span><span class="NormalTextRun SCXW43685267 BCX0">).</span></span><span class="EOP SCXW43685267 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559685&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-b80a60d elementor-widget elementor-widget-text-editor" data-id="b80a60d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><span class="TextRun SCXW143587048 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW143587048 BCX0">Z </span><span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">drugiej</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">strony</span><span class="NormalTextRun SCXW143587048 BCX0">, </span><span class="NormalTextRun SCXW143587048 BCX0">dla</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">dużych</span><span class="NormalTextRun SCXW143587048 BCX0"> firm </span><span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">planujących</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">intensywne</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">użycie</span><span class="NormalTextRun SCXW143587048 BCX0"> AI, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">koszty</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">mogą</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">rosnąć</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">wykładniczo</span><span class="NormalTextRun SCXW143587048 BCX0"> – </span><span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">wtedy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">warto</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">rozważyć</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">opcje</span><span class="NormalTextRun SCXW143587048 BCX0"> open-source </span><span class="NormalTextRun SCXW143587048 BCX0">i</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">większe</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">inwestycje</span><span class="NormalTextRun SCXW143587048 BCX0"> we </span><span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">własną</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">infrastrukturę</span><span class="NormalTextRun SCXW143587048 BCX0">. </span></span><span class="TextRun SCXW143587048 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><strong><span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">Otwarte</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">modele</span></strong></span><span class="TextRun SCXW143587048 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW143587048 BCX0"> jak </span><span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">LLaMA</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">czy</span><span class="NormalTextRun SCXW143587048 BCX0"> Mistral </span><span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">dają</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">wolność</span> <span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW143587048 BCX0">od</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">opłat</span><span class="NormalTextRun SCXW143587048 BCX0"> za </span><span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">każdy</span><span class="NormalTextRun SCXW143587048 BCX0"> token, ale </span><span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">przenoszą</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">ciężar</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">kosztów</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">na</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">sprzęt</span> <span class="NormalTextRun SCXW143587048 BCX0">i</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">zespół</span><span class="NormalTextRun SCXW143587048 BCX0">. </span><span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">Opłacą</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">się</span><span class="NormalTextRun SCXW143587048 BCX0">, </span><span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">gdy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">mamy</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">odpowiednią</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">skalę</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">lub</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">priorytetem</span><span class="NormalTextRun SCXW143587048 BCX0"> jest </span><span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">pełna</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">kontrola</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">nad</span> <span class="NormalTextRun SpellingErrorV2Themed SCXW143587048 BCX0">danymi</span><span class="NormalTextRun SCXW143587048 BCX0">.</span></span><span class="EOP SCXW143587048 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559685&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-65aa533 elementor-cta--skin-cover elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action" data-id="65aa533" data-element_type="widget" data-widget_type="call-to-action.default">
				<div class="elementor-widget-container">
					<div class="elementor-cta">
					<div class="elementor-cta__bg-wrapper">
				<div class="elementor-cta__bg elementor-bg" style="background-image: url(https://inero-software.com/wp-content/uploads/2025/02/cta-AI2-1030x579.png);" role="img" aria-label="cta AI2"></div>
				<div class="elementor-cta__bg-overlay"></div>
			</div>
							<div class="elementor-cta__content">
				
									<h2 class="elementor-cta__title elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Chcesz wprowadzić narzędzia AI do swojej firmy?					</h2>
				
									<div class="elementor-cta__description elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Oferujemy kompleksowe wsparcie technologiczne w zakresie sztucznej inteligencji i agentów AI.  Opisz nam swój pomysł!					</div>
				
									<div class="elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
					<a class="elementor-cta__button elementor-button elementor-size-" href="https://inero-software.com/pl/kontakt/">
						Napisz do nas					</a>
					</div>
							</div>
						</div>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>Artykuł <a href="https://inero-software.com/pl/ile-kosztuje-wdrozenie-i-utrzymanie-modelu-llm-w-firmie-szczegolowa-analiza/">Ile kosztuje wdrożenie i utrzymanie modelu LLM w firmie? Szczegółowa analiza</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7958</post-id>	</item>
		<item>
		<title>Jak platformy AI korzystają z Twoich danych? Przegląd obowiązujących zasad</title>
		<link>https://inero-software.com/pl/jak-platformy-ai-korzystaja-z-twoich-danych/</link>
		
		<dc:creator><![CDATA[Martyna Mul]]></dc:creator>
		<pubDate>Wed, 30 Apr 2025 12:10:39 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[Agenci AI]]></category>
		<category><![CDATA[Agent AI]]></category>
		<category><![CDATA[Anthropic]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[duże modele językowe]]></category>
		<category><![CDATA[Gemini]]></category>
		<category><![CDATA[OpenAI]]></category>
		<category><![CDATA[prywatność danych]]></category>
		<category><![CDATA[sztuczna inteligencja]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=7915</guid>

					<description><![CDATA[<p>W tym artykule przedstawiamy zasady, dotyczące prywatności danych, obowiązujące w czołowych platformach AI. </p>
<p>Artykuł <a href="https://inero-software.com/pl/jak-platformy-ai-korzystaja-z-twoich-danych/">Jak platformy AI korzystają z Twoich danych? Przegląd obowiązujących zasad</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="7915" class="elementor elementor-7915" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-bc35505 e-flex e-con-boxed e-con e-parent" data-id="bc35505" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-44ba7b6 elementor-widget elementor-widget-html" data-id="44ba7b6" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			 		</div>
				</div>
				<div class="elementor-element elementor-element-23d3d65 elementor-widget elementor-widget-text-editor" data-id="23d3d65" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h4>Zastanawiałeś się kiedyś, co dzieje się z Twoimi danymi, gdy korzystasz z chmurowych platform AI, albo czy informacje, które podajesz są wykorzystywane do trenowania przyszłych modeli? W tym artykule przedstawiamy zasady, dotyczące prywatności danych, obowiązujące w czołowych platformach AI. Dowiesz się także, co zrobić, aby Twoje dane nie były wykorzystywane do trenowania dużych modeli językowych (LLM).</h4>						</div>
				</div>
				<div class="elementor-element elementor-element-18af7ef elementor-widget elementor-widget-text-editor" data-id="18af7ef" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Najwięksi dostawcy chmurowych usług AI stają się coraz bardziej transparentni w kwestii wykorzystywania danych – zwłaszcza w kontekście trenowania modeli. Choć większość platform, szczególnie tych oferujących usługi na poziomie korporacyjnym, domyślnie nie wykorzystuje Twoich danych wejściowych i wyjściowych do treningu, to szczegóły zapisane drobnym drukiem mają znaczenie. Zrozumienie, w jaki sposób te usługi przetwarzają dane – oraz jak możesz zachować nad nimi kontrolę – jest kluczowe.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-e8dd97a elementor-widget elementor-widget-text-editor" data-id="e8dd97a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Z tego bloga dowiesz się jakie zasady, dotyczące prywatności danych i trenowania modeli stosują najpopularniejsze platformy AI, takie jak OpenAI, Google Gemini, Azure OpenAI od Microsoftu oraz Claude firmy Anthropic. Z tekstu dowiesz się między innymi:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-33a2f78 elementor-widget elementor-widget-text-editor" data-id="33a2f78" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li><p>w jaki sposób platformy AI wykorzystują Twoje dane i czy są one domyślnie używane do trenowania modeli</p></li><li><p>jak, w razie potrzeby, uniemożliwić wykorzystywanie swoich danych przez AI (opcja opt-out)</p></li><li><p>gdzie przechowywane są Twoje dane (tzw. lokalizacja danych)</p></li><li><p>jakie środki zgodności z przepisami, takimi jak RODO, mają zastosowanie</p></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-291cb3e elementor-widget elementor-widget-text-editor" data-id="291cb3e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Wdrażanie AI to nie tylko kwestia tworzenia promptów czy wydajności modeli. To również świadomość, gdzie trafiają Twoje dane – i jak zadbać o to, by pozostały pod Twoją kontrolą.</p><p> </p><p><strong>Oto, co warto wiedzieć:</strong></p>						</div>
				</div>
				<div class="elementor-element elementor-element-ecb1c2a elementor-widget elementor-widget-spacer" data-id="ecb1c2a" data-element_type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
					<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-2add4a6 elementor-widget elementor-widget-heading" data-id="2add4a6" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">OpenAI – Wykorzystanie danych i prywatność</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-cb6fb79 elementor-widget elementor-widget-text-editor" data-id="cb6fb79" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>OpenAI traktuje Twoje dane w różny sposób, w zależności od tego, jak korzystasz z jego usług:</p><p> </p><p><strong>Aplikacja ChatGPT (wersja webowa/mobilna)</strong></p><p><strong> </strong></p><p>Gdy prowadzisz rozmowy z ChatGPT, Twoje konwersacje mogą być wykorzystywane do trenowania modeli AI – chyba że ręcznie zrezygnujesz z tego (opt-out).<br />Aby zapobiec wykorzystywaniu Twoich danych:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-01b1f1c elementor-widget elementor-widget-text-editor" data-id="01b1f1c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li>Przejdź do <strong>Ustawienia → Kontrola danych → Ulepszanie modelu dla wszystkich</strong> i wyłącz tę opcję.</li><li>Nawet po rezygnacji (opt-out), OpenAI przechowuje rozmowy przez 30 dni w celu monitorowania nadużyć, a następnie je usuwa.</li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-1fb6e1a elementor-widget elementor-widget-image" data-id="1fb6e1a" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img fetchpriority="high" decoding="async" width="602" height="407" src="https://inero-software.com/wp-content/uploads/2025/04/image-2-1.png" class="attachment-large size-large wp-image-7897" alt="" srcset="https://inero-software.com/wp-content/uploads/2025/04/image-2-1.png 602w, https://inero-software.com/wp-content/uploads/2025/04/image-2-1-300x203.png 300w, https://inero-software.com/wp-content/uploads/2025/04/image-2-1-444x300.png 444w" sizes="(max-width: 602px) 100vw, 602px" data-attachment-id="7897" data-permalink="https://inero-software.com/ai-user-privacy-an-analysis-of-platform-policies/image-2-2/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/04/image-2-1.png" data-orig-size="602,407" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image (2)" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/04/image-2-1-300x203.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/04/image-2-1.png" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-422566b elementor-widget elementor-widget-heading" data-id="422566b" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">OpenAI API i ChatGPT Enterprise</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-0be90ca elementor-widget elementor-widget-text-editor" data-id="0be90ca" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Jeśli jesteś deweloperem lub firmą korzystającą z API OpenAI albo ChatGPT Enterprise, nie musisz rezygnować z udziału w trenowaniu modeli – domyślnie OpenAI nie wykorzystuje danych z API ani z wersji Enterprise do tego celu, a Twoje dane pozostają prywatne. Nie musisz podejmować żadnych dodatkowych działań – ochrona danych jest włączona automatycznie. Możesz zdecydować się na udostępnienie danych w celu ulepszania modeli, ale tylko jeśli tego chcesz.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-d497044 elementor-widget elementor-widget-heading" data-id="d497044" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h5 class="elementor-heading-title elementor-size-default">Lokalizacja danych</h5>		</div>
				</div>
				<div class="elementor-element elementor-element-bd96e19 elementor-widget elementor-widget-text-editor" data-id="bd96e19" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Serwery OpenAI znajdują się głównie w Stanach Zjednoczonych i obecnie – jeśli korzystasz bezpośrednio z API – nie masz możliwości wyboru, gdzie Twoje dane są przechowywane. Oznacza to, że dane są przetwarzane w infrastrukturze OpenAI – objętej solidnymi zabezpieczeniami, ale niekoniecznie zlokalizowanej w Twoim kraju.</p><p> </p><p>Są jednak postępy dla użytkowników biznesowych. OpenAI niedawno wprowadziło opcję dla wybranych klientów API w wersji Enterprise, która umożliwia przechowywanie danych w Europie – pod warunkiem zawarcia odpowiedniej umowy.</p><p> </p><p>Jeśli lokalizacja danych ma dla Twojej firmy istotne znaczenie – np. ze względu na RODO lub wewnętrzne wymogi zgodności – warto rozważyć korzystanie z Azure OpenAI. W tym wariancie modele OpenAI są uruchamiane w chmurze Microsoftu, a Ty możesz wybrać konkretny region, np. Europę Zachodnią lub Azję, zapewniając, że dane będą przetwarzane i przechowywane wyłącznie w wybranej lokalizacji.</p><p> </p><p>Więcej o Azure przeczytasz w kolejnej części – ale w skrócie: OpenAI zapewnia bezpieczne przetwarzanie danych, jednak jeśli zależy Ci na pełnej kontroli nad ich lokalizacją, lepszym wyborem może być chmurowy partner, taki jak Azure.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-5c3e1ec elementor-widget elementor-widget-spacer" data-id="5c3e1ec" data-element_type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
					<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-0a6231f elementor-widget elementor-widget-heading" data-id="0a6231f" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Gemini – Podejście Google do Twoich danych</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-48f1b4f elementor-widget elementor-widget-text-editor" data-id="48f1b4f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Google rozwija generatywną sztuczną inteligencję m.in. poprzez model Gemini – nowej generacji rozwiązanie, które zasila produkty takie jak chatbot Google Gemini oraz różne usługi AI dostępne w Google Cloud. Oto jak Google podchodzi do kwestii Twoich danych:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-bae7fbe elementor-widget elementor-widget-heading" data-id="bae7fbe" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">Aplikacja Gemini</h4>		</div>
				</div>
				<div class="elementor-element elementor-element-c7c8d68 elementor-widget elementor-widget-text-editor" data-id="c7c8d68" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Domyślnie Google zapisuje historię czatów z Gemini na Twoim koncie (podobnie jak historię wyszukiwania) i może wykorzystywać te dane do ulepszania swoich usług. Użytkownik ma jednak możliwość zarządzania tym ustawieniem za pomocą funkcji <strong>„Gemini Activity”</strong>.</p><p>Aby to skonfigurować:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-83c9f69 elementor-widget elementor-widget-text-editor" data-id="83c9f69" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="5" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">Przejdź do ustawień </span><strong>Gemini Activity,</strong></li><li><span data-contrast="auto">Wstrzymaj Gemini Activity, aby zatrzymać zapisywanie rozmów i uniemożliwić ich wykorzystanie jako źródła danych do trenowania modeli AI.</span></li><li><span data-contrast="auto">Możesz także usunąć dotychczasową historię konwersacji.</span></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-13a61aa elementor-widget elementor-widget-text-editor" data-id="13a61aa" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><a href="https://support.google.com/gemini/answer/13594961#your_data">Wyłączenie Aktywności Gemini</a> oznacza, że nowe rozmowy nie będą wykorzystywane do ulepszania usług opartych na uczeniu maszynowym ani przeglądane przez członków zespołu Google – chyba że samodzielnie prześlesz je jako opinię. Daje to zwykłym użytkownikom możliwość rezygnacji z udziału w trenowaniu modeli, podobnie jak opcja opt-out dostępna w ChatGPT.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-cb94ad1 elementor-widget elementor-widget-image" data-id="cb94ad1" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img decoding="async" width="712" height="332" src="https://inero-software.com/wp-content/uploads/2025/04/image-1.png" class="attachment-large size-large wp-image-7901" alt="" srcset="https://inero-software.com/wp-content/uploads/2025/04/image-1.png 712w, https://inero-software.com/wp-content/uploads/2025/04/image-1-300x140.png 300w, https://inero-software.com/wp-content/uploads/2025/04/image-1-643x300.png 643w" sizes="(max-width: 712px) 100vw, 712px" data-attachment-id="7901" data-permalink="https://inero-software.com/ai-user-privacy-an-analysis-of-platform-policies/image-1/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/04/image-1.png" data-orig-size="712,332" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="image (1)" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/04/image-1-300x140.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/04/image-1.png" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-e57f550 elementor-widget elementor-widget-text-editor" data-id="e57f550" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Aby zatrzymać zapisywanie rozmów, przejdź do zakładki <strong>Activity</strong> i wyłącz opcję <strong>Gemini Apps Activity</strong>. Możesz również usunąć wcześniejsze konwersacje.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-ca02a5a elementor-widget elementor-widget-heading" data-id="ca02a5a" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h5 class="elementor-heading-title elementor-size-default">API i Vertex AI </h5>		</div>
				</div>
				<div class="elementor-element elementor-element-73c636b elementor-widget elementor-widget-text-editor" data-id="73c636b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Jeśli korzystasz z platformy <strong>Vertex AI</strong> w Google Cloud:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-5da483c elementor-widget elementor-widget-text-editor" data-id="5da483c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="5" data-aria-level="1">Twoje prompty i odpowiedzi nie są wykorzystywane do trenowania modeli <strong>AI bez Twojej wyraźnej zgody.</strong></li><li data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="5" data-aria-level="1">Dane mogą być <strong>tymczasowo buforowane</strong> (do 24 godzin) w celu poprawy wydajności, ale pozostają w wybranym przez Ciebie regionie geograficznym.</li><li data-leveltext="" data-font="Symbol" data-listid="1" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="5" data-aria-level="1">Firmy mogą zdecydować się na<strong> politykę braku retencji danych</strong> (zero-retention), aby zapewnić maksymalny poziom prywatności.</li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-15e5fa7 elementor-widget elementor-widget-heading" data-id="15e5fa7" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h5 class="elementor-heading-title elementor-size-default">Lokalizacja danych</h5>		</div>
				</div>
				<div class="elementor-element elementor-element-6769505 elementor-widget elementor-widget-text-editor" data-id="6769505" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Lokalizacja danych to mocna strona Google – możesz samodzielnie wybrać region geograficzny, w którym działa Twoja usługa AI (np. centra danych w UE lub USA), a Google będzie przetwarzać i przechowywać dane właśnie w tym regionie, spełniając wymagania dotyczące lokalizacji danych.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-dffefeb elementor-widget elementor-widget-spacer" data-id="dffefeb" data-element_type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
					<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-e7c3b12 elementor-widget elementor-widget-heading" data-id="e7c3b12" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Microsoft Azure OpenAI - Domyślna ochrona prywatności danych</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-36c3a52 elementor-widget elementor-widget-heading" data-id="36c3a52" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h5 class="elementor-heading-title elementor-size-default">Zasady trenowania modelu</h5>		</div>
				</div>
				<div class="elementor-element elementor-element-657a095 elementor-widget elementor-widget-text-editor" data-id="657a095" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Usługa Azure OpenAI firmy Microsoft umożliwia firmom korzystanie z modeli OpenAI za pośrednictwem zaufanej platformy chmurowej Azure. Prywatność jest tutaj jednym z głównych atutów. Microsoft wyraźnie zaznacza: <b>wszelkie dane przesyłane do Azure OpenAI nie są wykorzystywane do trenowania modeli ani do ulepszania usług Microsoftu czy OpenAI.</b></p><p> </p><p>Usługa Azure OpenAI w praktyce hostuje modele OpenAI (GPT-4, GPT-3.5 itd.) w infrastrukturze chmurowej Microsoft Azure. Microsoft zaprojektował tę usługę specjalnie z myślą o przedsiębiorstwach, które wymagają silnych mechanizmów ochrony prywatności. Do kluczowych elementów należą:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-96820b8 elementor-widget elementor-widget-text-editor" data-id="96820b8" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="6" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><p>Wszelkie dane wprowadzone do usługi Azure OpenAI – takie jak prompty, odpowiedzi modeli (completions), osadzenia (embeddings) czy dane do fine-tuningu – <strong>nie są wykorzystywane do trenowania modeli AI</strong>.</p></li><li data-leveltext="-" data-font="Aptos" data-listid="6" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><p>Twoje dane wejściowe i wyjściowe <strong>„nie są dostępne dla innych klientów, nie są udostępniane OpenAI i nie są wykorzystywane do ulepszania modeli OpenAI”</strong>.</p></li><li data-leveltext="-" data-font="Aptos" data-listid="6" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><p>Microsoft przechowuje dane jedynie w zakresie niezbędnym do świadczenia usługi i monitorowania nadużyć. Domyślnie prompty i odpowiedzi są przechowywane tymczasowo (do 30 dni) wyłącznie w celu wykrywania nadużyć, po czym są usuwane.</p><p>Jeśli nawet to tymczasowe przechowywanie stanowi problem (np. w przypadku danych o wysokiej wrażliwości), Microsoft oferuje procedurę zwaną <strong>„modified abuse monitoring”</strong>, która umożliwia całkowite pominięcie 30-dniowego przechowywania. Oznacza to, że żadne prompty nie są w ogóle zapisywane. Zazwyczaj wymaga to zatwierdzenia, ale jest to możliwe w scenariuszach o podwyższonym poziomie bezpieczeństwa.</p></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-5e2b615 elementor-widget elementor-widget-heading" data-id="5e2b615" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h5 class="elementor-heading-title elementor-size-default">Lokalizacja danych </h5>		</div>
				</div>
				<div class="elementor-element elementor-element-82ccf7d elementor-widget elementor-widget-text-editor" data-id="82ccf7d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Ponieważ usługa działa w środowisku Azure, możesz łatwo wybrać region i spełnić wymagania dotyczące lokalizacji danych. Podczas konfigurowania Azure OpenAI wybierasz region, w którym zostanie wdrożona usługa (np. <b>Wschodnie USA, Europa Zachodnia, Azja Południowo-Wschodnia itd.</b>). Całe przetwarzanie i przechowywanie danych na potrzeby wnioskowania (inference) odbywa się w wybranym regionie lub w jego granicach geograficznych.</p><p>Oznacza to, że jeśli wdrożysz usługę w Europie Zachodniej, Twoje dane nie opuszczą Europy – co ma kluczowe znaczenie dla zgodności z RODO. Sama platforma Azure spełnia szereg standardów zgodności (takich jak SOC 2, ISO 27001 itp.), a certyfikacje te obejmują również usługę Azure OpenAI jako część oferty Azure.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-cea2902 elementor-widget elementor-widget-spacer" data-id="cea2902" data-element_type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
					<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-0013609 elementor-widget elementor-widget-heading" data-id="0013609" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Anthropic (Claude) – Asystent AI z priorytetem prywatności</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-6f1b8b4 elementor-widget elementor-widget-heading" data-id="6f1b8b4" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h5 class="elementor-heading-title elementor-size-default">Zasady trenowania modelu</h5>		</div>
				</div>
				<div class="elementor-element elementor-element-988001e elementor-widget elementor-widget-text-editor" data-id="988001e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Anthropic, firma stojąca za asystentem AI Claude (Claude 2 i nowsze wersje), od początku kładzie duży nacisk na podejście zorientowane na prywatność. Stosuje model działania oparty na zgodzie użytkownika (opt-in):</p>						</div>
				</div>
				<div class="elementor-element elementor-element-3f7e219 elementor-widget elementor-widget-text-editor" data-id="3f7e219" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="7" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><p>Domyślnie Anthropic nie wykorzystuje Twoich rozmów ani danych do trenowania swoich modeli. Dotyczy to zarówno oferty komercyjnej (<a href="https://privacy.anthropic.com/en/collections/10663361-commercial-customers">Claude for Work, Anthropic API</a>), jak i produktów konsumenckich (Claude Free, Claude Pro) – Twoje prompty oraz odpowiedzi Claude’a nie są automatycznie używane do trenowania modeli.</p></li><li data-leveltext="-" data-font="Aptos" data-listid="7" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><p>Dane są wykorzystywane wyłącznie wtedy, gdy świadomie wyrazisz na to zgodę – na przykład przesyłając opinię. Jeśli klikniesz ikonę kciuka w górę lub w dół w interfejsie Claude’a albo prześlesz dane przez kanał feedbacku, oznacza to, że wyrażasz zgodę: „<span data-contrast="none">you can learn from this”.</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:240}"> </span></p></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-00d6994 elementor-widget elementor-widget-text-editor" data-id="00d6994" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Dla klientów biznesowych Anthropic oferuje rozwiązania Claude Team/Enterprise, które nie tylko gwarantują, że dane nie są wykorzystywane do trenowania modeli, ale także udostępniają funkcje kontroli administracyjnej. Jedną z nich są niestandardowe ustawienia dotyczące retencji danych.</p><p>Domyślnie systemy Anthropic mogą przechowywać dane wejściowe i wyjściowe bezterminowo na potrzeby konta (ale nie do trenowania modeli). Jednak administratorzy usługi Claude Enterprise mogą ustawić własną politykę retencji – na przykład usuwanie wszystkich danych rozmów po 30, 60 dniach itd., przy czym aktualne minimum to 30 dni.</p><p>Takie mechanizmy kontroli mają na celu wspieranie zgodności z przepisami takimi jak RODO.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-5a24ccc elementor-widget elementor-widget-heading" data-id="5a24ccc" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h5 class="elementor-heading-title elementor-size-default">Lokalizacja danych </h5>		</div>
				</div>
				<div class="elementor-element elementor-element-3cf1dac elementor-widget elementor-widget-text-editor" data-id="3cf1dac" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Anthropic to stosunkowo nowy gracz na rynku, i obecnie – korzystając bezpośrednio z ich API – nie masz możliwości jawnego wyboru regionu przechowywania danych. Najprawdopodobniej dane są hostowane w USA przez Anthropic lub za pośrednictwem dostawców chmurowych, takich jak AWS, w regionie amerykańskim.</p><p>Jednak modele Anthropic są również dostępne za pośrednictwem partnerów, co może pomóc w spełnieniu wymagań dotyczących lokalizacji danych. Przykładowo, Claude firmy Anthropic jest oferowany przez usługę <strong>Amazon Bedrock</strong> (AI-as-a-service od AWS) oraz przez <strong>Google Cloud Vertex AI</strong>. Korzystając z Claude’a za pośrednictwem jednej z tych platform, możesz skorzystać z możliwości wyboru regionu oferowanych przez AWS lub Google.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-a2a60c8 elementor-widget elementor-widget-spacer" data-id="a2a60c8" data-element_type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
					<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
				</div>
				</div>
				<div class="elementor-element elementor-element-de688f7 elementor-widget elementor-widget-heading" data-id="de688f7" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Podsumowanie </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-9f1b51c elementor-widget elementor-widget-text-editor" data-id="9f1b51c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Zrozumienie praktyk związanych z gromadzeniem danych przez dostawców dużych modeli językowych (LLM) ma kluczowe znaczenie dla zgodności z przepisami, zaufania klientów oraz ładu informacyjnego w organizacji. Niezależnie od tego, czy priorytetem jest zgodność z regulacjami, transparentność wobec klientów czy wewnętrzne zarządzanie danymi – poniższe informacje pomogą w podjęciu świadomych decyzji. Wybieraj dostawców, którzy są zgodni z Twoimi standardami prywatności – i zawsze weryfikuj ustawienia swoich usług.</p><p><strong>Oto porównanie najważniejszych platform:</strong></p>						</div>
				</div>
				<div class="elementor-element elementor-element-4597621 elementor-widget elementor-widget-html" data-id="4597621" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			<style>
  table {
    width: 100%;
    border-collapse: collapse;
    font-family: 'Roboto', sans-serif;
    font-weight: 300;
    font-size: 14px;
    color: #1C244B;
  }
  th, td {
    border: 1px solid #ccc;
    padding: 8px;
    text-align: left;
    vertical-align: top;
  }
  th {
    background-color: #f2f2f2;
  }
  a {
    color: #1C244B;
    text-decoration: underline;
  }
</style>

<table>
  <thead>
    <tr>
      <th>Dostawca</th>
      <th>Domyślne trenowanie na danych</th>
      <th>Ustawienia w aplikacji webowej</th>
      <th>Opcje lokalizacji danych</th>
      <th>Zgodność z RODO/CCPA</th>
      <th>Polityka prywatności</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>OpenAI</td>
      <td>Nie (API)</td>
      <td>Dostępna opcja opt-out</td>
      <td>Nie (chyba że przez Azure Microsoft)</td>
      <td>Tak</td>
      <td><a href="https://openai.com/policies/privacy-policy" target="_blank">Prywatność konsumencka</a></td>
    </tr>
    <tr>
      <td>Google</td>
      <td>Nie (Cloud + Gemini)</td>
      <td>Brak trenowania domyślnie</td>
      <td>Szeroka kontrola regionalna</td>
      <td>Tak</td>
      <td>
        <a href="https://policies.google.com/privacy" target="_blank">Prywatność korporacyjna</a>, 
        <a href="https://www.google.com/intl/en_us/gemini/privacy" target="_blank">Prywatność Gemini</a>, 
        <a href="https://cloud.google.com/vertex-ai/docs/general/privacy-overview" target="_blank">Vertex AI</a>
      </td>
    </tr>
    <tr>
      <td>Azure</td>
      <td>Nie</td>
      <td>Nie dotyczy</td>
      <td>Pełna kontrola regionalna</td>
      <td>Tak</td>
      <td><a href="https://privacy.microsoft.com/en-us/privacystatement" target="_blank">Prywatność Azure i OpenAI</a></td>
    </tr>
    <tr>
      <td>Anthropic</td>
      <td>Nie</td>
      <td>Brak trenowania domyślnie</td>
      <td>Nie (chyba że przez partnerów)</td>
      <td>Tak</td>
      <td>
        <a href="https://www.anthropic.com/legal/privacy" target="_blank">Użytkownicy API</a>, 
        <a href="https://claude.ai/privacy" target="_blank">Użytkownicy Claude.ai</a>
      </td>
    </tr>
  </tbody>
</table>
		</div>
				</div>
				<div class="elementor-element elementor-element-5234314 elementor-widget elementor-widget-text-editor" data-id="5234314" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Dla maksymalnej prywatności i pełnej kontroli alternatywą pozostaje lokalne wdrożenie modeli (on-premises). Pozwala to całkowicie wyeliminować obawy związane z przechowywaniem danych w chmurze<a href="https://inero-software.com/pl/lokalne-wdrazanie-modeli-llm-przewodnik-po-ollama-i-lm-studio/">. Więcej na temat lokalnego wdrażania przeczytasz tutaj</a>.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-7c7244d elementor-cta--skin-cover elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action" data-id="7c7244d" data-element_type="widget" data-widget_type="call-to-action.default">
				<div class="elementor-widget-container">
					<a class="elementor-cta" href="https://inero-software.com/pl/kontakt/">
					<div class="elementor-cta__bg-wrapper">
				<div class="elementor-cta__bg elementor-bg" style="background-image: url(https://inero-software.com/wp-content/uploads/2025/03/cta-1903-1030x579.png);" role="img" aria-label="cta 1903"></div>
				<div class="elementor-cta__bg-overlay"></div>
			</div>
							<div class="elementor-cta__content">
				
									<h2 class="elementor-cta__title elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Chcesz porozmawiać o agentach AI?					</h2>
				
									<div class="elementor-cta__description elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Planujesz wdrożyć narzędzia AI? Z nami zrobisz to jak należy. 					</div>
				
									<div class="elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
					<span class="elementor-cta__button elementor-button elementor-size-">
						Napisz do nas					</span>
					</div>
							</div>
						</a>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>Artykuł <a href="https://inero-software.com/pl/jak-platformy-ai-korzystaja-z-twoich-danych/">Jak platformy AI korzystają z Twoich danych? Przegląd obowiązujących zasad</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7915</post-id>	</item>
		<item>
		<title>Lokalne LLM-y: testujemy lekkie modele do przetwarzania dokumentów</title>
		<link>https://inero-software.com/pl/lokalne-llm-y-testujemy-lekkie-modele-do-przetwarzania-dokumentow/</link>
		
		<dc:creator><![CDATA[Martyna Mul]]></dc:creator>
		<pubDate>Thu, 17 Apr 2025 12:42:27 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=7873</guid>

					<description><![CDATA[<p>W tym wpisie przyjrzymy się kilku najlepszym otwartoźródłowym lekkim modelom LLM oraz sposobom ich uruchamiania na lokalnym komputerze z systemem Windows — zarówno przy użyciu samego CPU, jak i z ograniczoną kartą graficzną (GPU) — w zastosowaniach związanych z przetwarzaniem dokumentów.</p>
<p>Artykuł <a href="https://inero-software.com/pl/lokalne-llm-y-testujemy-lekkie-modele-do-przetwarzania-dokumentow/">Lokalne LLM-y: testujemy lekkie modele do przetwarzania dokumentów</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="7873" class="elementor elementor-7873" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-cc31ada e-flex e-con-boxed e-con e-parent" data-id="cc31ada" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-2485c29 elementor-widget elementor-widget-html" data-id="2485c29" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					</div>
				</div>
				<div class="elementor-element elementor-element-d3520b4 elementor-widget elementor-widget-text-editor" data-id="d3520b4" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h5>Uruchamianie dużych modeli językowych (LLM) na własnym sprzęcie staje się coraz bardziej dostępne dzięki tzw. lekkim modelom LLM — modelom o stosunkowo niewielkiej liczbie parametrów, które zapewniają wysoką wydajność bez potrzeby korzystania z kart graficznych klasy serwerowej. W tym wpisie przyjrzymy się kilku najlepszym otwartoźródłowym lekkim modelom LLM oraz sposobom ich uruchamiania na lokalnym komputerze z systemem Windows — zarówno przy użyciu samego CPU, jak i z ograniczoną kartą graficzną (GPU) — w zastosowaniach związanych z przetwarzaniem dokumentów. Opisaliśmy także benchmark, który porównuje modele pod względem dokładności i szybkości wnioskowania, co pomoże Ci wybrać odpowiedni model do lokalnego środowiska i konkretnego przypadku użycia.</h5>						</div>
				</div>
				<div class="elementor-element elementor-element-10359f9 elementor-widget elementor-widget-heading" data-id="10359f9" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Lekkie modele LLM – czym są i czy warto uruchamiać je lokalnie?</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-621d40f elementor-widget elementor-widget-text-editor" data-id="621d40f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>„Lekkie” modele LLM to zazwyczaj modele mieszczące się w przedziale od około 1 do 8 miliardów parametrów — znacznie mniejsze niż modele klasy GPT-3 — często zoptymalizowane do działania na jednej karcie graficznej (GPU) lub nawet samym procesorze (CPU). Zazwyczaj są one udostępniane jako modele otwarte, z publicznie dostępnymi wagami. Tego typu rozwiązania rezygnują z części mocy obliczeniowej na rzecz większej efektywności, jednak dzięki postępom badawczym i przemyślanej inżynierii (lepsze dane, trenowanie z użyciem destylacji, wydajne mechanizmy uwagi itd.) ich możliwości znacząco wzrosły. Wiele z tych modeli dorównuje dziś, a nawet przewyższa znacznie większe modele w wybranych benchmarkach.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-81497fe elementor-widget elementor-widget-text-editor" data-id="81497fe" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Lokalne uruchamianie takich modeli ma wiele zalet:</p><ul><li style="list-style-type: none;"><ul><li><strong>Prywatność i bezpieczeństwo:</strong> Wszystkie dane pozostają na Twoim urządzeniu, co ma kluczowe znaczenie w przypadku poufnych dokumentów, takich jak umowy ubezpieczeniowe. Nie wysyłasz wrażliwych treści do zewnętrznego API.</li><li><strong>Oszczędność kosztów:</strong> Po pobraniu model działa lokalnie za darmo —<strong> bez opłat</strong> za korzystanie z API czy zasoby chmurowe. Przy regularnym przetwarzaniu dużej liczby dokumentów może to oznaczać znaczące oszczędności.</li><li><strong>Niskie opóźnienia i dostęp offline:</strong> Lokalna inferencja eliminuje opóźnienia sieciowe. Na GPU odpowiedzi mogą pojawiać się niemal natychmiast, a cały system może działać w trybie offline. To szczególnie przydatne w środowiskach lokalnych lub tam, gdzie dostęp do internetu jest ograniczony.</li><li><strong>Możliwość dostosowania:</strong> Korzystając z modeli lokalnych, masz pełną kontrolę — możesz zmieniać parametry, prompty lub dostrajać model do specyfiki swojej branży (np. danych ubezpieczeniowych) bez ograniczeń narzuconych przez dostawcę.</li></ul></li></ul><p>Krótko mówiąc, lekkie modele LLM dają Ci dostęp do możliwości sztucznej inteligencji bezpośrednio na Twoim sprzęcie. W dalszej części porównamy wybrane otwarte modele, które szczególnie dobrze sprawdzają się w lokalnym przetwarzaniu dokumentów.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-6e958d1 elementor-widget elementor-widget-heading" data-id="6e958d1" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Porównanie najlepszych lekkich modeli LLM</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-adbf2c8 elementor-widget elementor-widget-text-editor" data-id="adbf2c8" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Lekkie, otwartoźródłowe duże modele językowe (LLM) stają się praktycznym wyborem dla organizacji, które chcą uruchamiać zadania AI lokalnie. Oferują one korzystny kompromis między wydajnością, szybkością a wymaganiami sprzętowymi — co czyni je idealnym rozwiązaniem do podsumowywania, ekstrakcji i klasyfikacji dokumentów bez potrzeby korzystania z infrastruktury chmurowej.</p>						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-330c9fe e-flex e-con-boxed e-con e-parent" data-id="330c9fe" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-73949bc elementor-widget elementor-widget-text-editor" data-id="73949bc" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Skupimy się na następujących otwartoźródłowych modelach (każdy z dostępem do punktów kontrolnych do pobrania), które cieszą się dobrą opinią pod względem jakości w stosunku do swojej wielkości:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-6703794 elementor-widget elementor-widget-text-editor" data-id="6703794" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li><strong>Llama 3.1</strong><span data-contrast="auto"> – 8B parametrów (Meta AI)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li><li data-leveltext="-" data-font="Aptos" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:1080,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><strong>StableLM Zephyr</strong><span data-contrast="auto"> – 3B parametrów (Stability AI)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:1080,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><strong>Llama 3.2</strong><span data-contrast="auto"> – 1B/3B parametrów (Meta AI)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:1080,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="4" data-aria-level="1"><strong>Mistral</strong><span data-contrast="auto"> – 7B parametrów (Mistral AI)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:1080,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="5" data-aria-level="1"><strong>Gemma 3</strong><span data-contrast="auto"> – warianty 1B i 4B (Google DeepMind)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:1080,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="6" data-aria-level="1"><strong>DeepSeek R1</strong><span data-contrast="auto"> – warianty 1.5B i 7B (DeepSeek AI)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:1080,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="7" data-aria-level="1"><strong>Phi-4 Mini</strong><span data-contrast="auto"> – 3.8B parametrów (Microsoft)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="-" data-font="Aptos" data-listid="2" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559685&quot;:1080,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Aptos&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;-&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="8" data-aria-level="1"><strong>TinyLlama</strong><span data-contrast="auto"> – 1.1B parametrów (community project)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-f98ca55 elementor-widget elementor-widget-text-editor" data-id="f98ca55" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;">Te modele obejmują zakres od bardzo małych (poniżej 1 GB na dysku) do średniej wielkości (około 5 GB). Wszystkie mogą być uruchamiane w trybie inferencji na karcie graficznej z 16 GB pamięci (często nawet w wersji z obniżoną precyzją lub skwantyzowanej do 4 bitów), a wiele z nich działa również na procesorze, o ile dysponujemy odpowiednią ilością pamięci RAM i cierpliwością. Tabela 1 przedstawia ich charakterystyki.</li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-71cd074 elementor-widget elementor-widget-html" data-id="71cd074" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			<table class="model-table">
  <thead>
    <tr>
      <th>Model</th>
      <th>Rozmiar na dysku (po kwantyzacji)</th>
      <th>Maksymalny kontekst</th>
      <th>Licencja</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Llama 3.1 (8B)</td>
      <td>4,9 GB</td>
      <td>128 tys. tokenów</td>
      <td>Open-source</td>
    </tr>
    <tr>
      <td>StableLM Zephyr (3B)</td>
      <td>1,6 GB</td>
      <td>4 tys. tokenów</td>
      <td>Tylko do użytku niekomercyjnego</td>
    </tr>
    <tr>
      <td>Llama 3.2 (3B)</td>
      <td>2,0 GB</td>
      <td>128 tys. tokenów</td>
      <td>Open-source</td>
    </tr>
    <tr>
      <td>Mistral (7B)</td>
      <td>4,1 GB</td>
      <td>32 tys. tokenów</td>
      <td>Open-source (licencja Apache 2.0)</td>
    </tr>
    <tr>
      <td>Gemma 3 (4B)</td>
      <td>3,3 GB</td>
      <td>128 tys. tokenów</td>
      <td>Open-source</td>
    </tr>
    <tr>
      <td>Gemma 3 (1B)</td>
      <td>0,8 GB</td>
      <td>32 tys. tokenów</td>
      <td>Open-source</td>
    </tr>
    <tr>
      <td>DeepSeek R1 (7B)</td>
      <td>4,7 GB</td>
      <td>128 tys. tokenów</td>
      <td>Open-source (licencja MIT)</td>
    </tr>
    <tr>
      <td>DeepSeek R1 (1.5B)</td>
      <td>1,1 GB</td>
      <td>128 tys. tokenów</td>
      <td>Open-source (licencja MIT)</td>
    </tr>
    <tr>
      <td>Phi-4 Mini (3.8B)</td>
      <td>2,5 GB</td>
      <td>128 tys. tokenów</td>
      <td>Open-source</td>
    </tr>
    <tr>
      <td>TinyLlama (1.1B)</td>
      <td>0,6 GB</td>
      <td>2 tys. tokenów</td>
      <td>Open-source</td>
    </tr>
  </tbody>
</table>
		</div>
				</div>
				<div class="elementor-element elementor-element-55c06b4 elementor-widget elementor-widget-text-editor" data-id="55c06b4" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h6>Tabela 1: Lekkie modele LLM do użytku lokalnego – rozmiary modeli i maksymalne okno kontekstu.</h6>						</div>
				</div>
				<div class="elementor-element elementor-element-58e51e9 elementor-widget elementor-widget-text-editor" data-id="58e51e9" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong>Uwaga:</strong> „Maksymalny kontekst” to maksymalna długość sekwencji (w tokenach), jaką model może przetworzyć jednorazowo.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-223eda5 elementor-widget elementor-widget-text-editor" data-id="223eda5" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Przyjrzyjmy się teraz zaletom i ograniczeniom każdego z modeli, szczególnie w kontekście zadań związanych z dokumentami.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-7192f01 elementor-widget elementor-widget-text-editor" data-id="7192f01" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li><strong>Llama 3.1</strong> <strong>(8B</strong>): Wszechstronny, wydajny model ogólnego zastosowania; umiarkowany rozmiar i dobre możliwości wielojęzyczne. Zbyt ciężki dla systemów opartych wyłącznie na CPU; wymaga dzielenia długich dokumentów na fragmenty.</li><li><strong>StableLM Zephyr (3B)</strong>: Bardzo lekki model, sprawdza się w podstawowym QA i ekstrakcji. Ograniczony przez niewielką liczbę parametrów i restrykcyjną licencję komercyjną.</li><li><strong>Llama 3.2 (3B)</strong>: Doskonały do podsumowań i wyszukiwania informacji; obsługuje długi kontekst (128 tys. tokenów). Mniejszy rozmiar wpływa na precyzję w złożonym rozumowaniu.</li><li><strong>Mistral (7B):</strong> Najlepszy ogólny model w swojej klasie; bardzo wydajna inferencja. Idealny do szczegółowych zadań podsumowujących.</li><li><strong>Gemma 3 (4B/1B)</strong>: Oferuje możliwości multimodalne i szerokie wsparcie językowe. Wariant 4B to dobry kompromis między mocą a szybkością, wariant 1B najlepiej sprawdza się w prostych zadaniach.</li><li><strong>DeepSeek R1 (7B/1.5B)</strong>: Zrównoważona wydajność i rozumienie ogólnych zadań NLP; słabsze wnioskowanie w porównaniu do Mistrala.</li><li><strong>Phi-4 Mini (3.8B):</strong> Wyjątkowe zdolności analityczne, matematyczne i logiczne; idealny do analitycznego przetwarzania dokumentów. Skoncentrowany głównie na języku angielskim.</li><li><strong>TinyLlama (1.1B):</strong> Bardzo lekki model; odpowiedni do prostych zadań ekstrakcji i klasyfikacji tekstu. Ograniczone rozumienie kontekstu.</li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-906c9d8 elementor-widget elementor-widget-text-editor" data-id="906c9d8" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Omówione powyżej modele obejmują szeroki zakres rozmiarów i możliwości. Większe warianty, takie jak Llama 3.1 i Mistral, dobrze radzą sobie ze złożonymi zadaniami podsumowania i obsługą wielu języków, ale mniej nadają się do systemów opartych wyłącznie na CPU. Modele średniej wielkości, takie jak Llama 3.2 i Gemma 3 (4B), efektywnie przetwarzają długie dane wejściowe, oferując przy tym rozsądną wydajność. Mniejsze modele, w tym TinyLlama i StableLM Zephyr, są lekkie i szybkie, co czyni je praktycznym wyborem do prostych zadań ekstrakcji lub klasyfikacji.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-013ecbc elementor-widget elementor-widget-heading" data-id="013ecbc" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Porównanie modeli: ekstrakcja i podsumowywanie dokumentów</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-f583b4c elementor-widget elementor-widget-text-editor" data-id="f583b4c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Poniżej przedstawiamy prosty plan benchmarku modeli, obejmujący dwa typowe zadania związane z przetwarzaniem dokumentów:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-236155a elementor-widget elementor-widget-text-editor" data-id="236155a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ol><li><strong>Ekstrakcja informacji:</strong> Ocenialiśmy, jak dobrze każdy model potrafi wyodrębnić konkretne pola z polisy lub certyfikatu. W szczególności prosiliśmy modele o znalezienie<strong> numeru polisy, nazwy ubezpieczonego, NIP-u, adresu oraz okresu ubezpieczenia</strong> w treści dokumentu i zwrócenie ustrukturyzowanego wyniku — czystej odpowiedzi w formacie JSON zawierającej wszystkie wymagane wartości.</li><li><strong>Podsumowanie:</strong> Każdy model generował zwięzłe podsumowanie polisy ubezpieczeniowej, obejmujące kluczowe informacje, takie jak zakres ochrony, wyłączenia i warunki. Podsumowania ocenialiśmy pod względem przejrzystości, poprawności, zgodności z faktami i czytelności, a za zmyślanie informacji przyznawaliśmy znaczące kary.</li></ol>						</div>
				</div>
				<div class="elementor-element elementor-element-02421da elementor-widget elementor-widget-text-editor" data-id="02421da" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Wykorzystaliśmy 11 dokumentów i przeprowadziliśmy wszystkie testy za pomocą Ollama <a href="https://inero-software.com/pl/lokalne-wdrazanie-modeli-llm-przewodnik-po-ollama-i-lm-studio/">(więcej o uruchamianiu modeli z użyciem Ollama możesz przeczytać tutaj).</a> Benchmarki zostały wykonane na komputerze z kartą graficzną NVIDIA GeForce RTX 2060 z 6 GB pamięci VRAM. Aby zapewnić spójność wyników, każdy model był uruchamiany z temperaturą ustawioną na 0 w zadaniu ekstrakcji (dla uzyskania deterministycznych odpowiedzi) oraz z ustaloną temperaturą 0,7 w zadaniu podsumowania. W przypadku ekstrakcji wykorzystaliśmy również ustrukturyzowane odpowiedzi:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-f1a279a elementor-widget elementor-widget-text-editor" data-id="f1a279a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre> "stream": false, <br />    "format": { <br />    "type": "object", <br />    "properties": { <br />      "numer_polisy": { <br />        "type": "string" <br />      }, <br />      "okres_ubezpieczenia_od": { <br />        "type": "string" <br />      }, <br />      "okres_ubezpieczenia_do": { <br />        "type": "string" <br />      }, <br />      "ubezpieczony": { <br />        "type": "string" <br />      }, <br />      "nip_ubezpieczonego": { <br />        "type": "string" <br />      }, <br />      "adres_ubezpieczonego": { <br />        "type": "string" <br />      } <br />    }, <br />    "required": [ <br />      "numer_polisy", <br />      "okres_ubezpieczenia_od", <br />      "okres_ubezpieczenia_do", <br />      "ubezpieczony", <br />      "nip_ubezpieczonego", <br />      "adres_ubezpieczonego" <br />    ] <br />  } <br />} </pre>						</div>
				</div>
				<div class="elementor-element elementor-element-a6fbca0 elementor-widget elementor-widget-image" data-id="a6fbca0" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img decoding="async" width="1030" height="579" src="https://inero-software.com/wp-content/uploads/2025/04/111553-1030x579.png" class="attachment-large size-large wp-image-7846" alt="" srcset="https://inero-software.com/wp-content/uploads/2025/04/111553-1030x579.png 1030w, https://inero-software.com/wp-content/uploads/2025/04/111553-300x169.png 300w, https://inero-software.com/wp-content/uploads/2025/04/111553-768x432.png 768w, https://inero-software.com/wp-content/uploads/2025/04/111553-533x300.png 533w, https://inero-software.com/wp-content/uploads/2025/04/111553.png 1154w" sizes="(max-width: 1030px) 100vw, 1030px" data-attachment-id="7846" data-permalink="https://inero-software.com/top-lightweight-llms-for-local-deployment/attachment/111553/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/04/111553.png" data-orig-size="1154,649" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="111553" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/04/111553-300x169.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/04/111553-1030x579.png" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-c923f73 elementor-widget elementor-widget-text-editor" data-id="c923f73" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h6>Przykłady certyfikatów ubezpieczeniowych.</h6>						</div>
				</div>
				<div class="elementor-element elementor-element-e9e7e62 elementor-widget elementor-widget-text-editor" data-id="e9e7e62" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong>Tabela poniżej przedstawia wyniki benchmarku.</strong> Dokładność ekstrakcji odnosi się do liczby dokumentów (z 11), w których model poprawnie wyodrębnił wszystkie kluczowe pola. Tokeny/sek to szybkość wnioskowania modelu — czyli tempo generowania odpowiedzi.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-e5f35c8 elementor-widget elementor-widget-html" data-id="e5f35c8" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			<style>
  @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap');

  .model-table {
    font-family: 'Roboto', sans-serif;
    font-weight: 300;
    font-size: 14px;
    color: #1C244B;
    border-collapse: collapse;
    width: 100%;
  }

  .model-table th, .model-table td {
    border: 1px solid #ccc;
    padding: 8px;
    text-align: left;
    color: #1C244B;
  }

  .model-table th {
    background-color: #f2f2f2;
  }

  .green-bg {
    background-color: #DFF0D8;
  }

  .red-bg {
    background-color: #F2DEDE;
  }
</style>

<table class="model-table">
  <thead>
    <tr>
      <th>Model</th>
      <th>Podsumowanie</th>
      <th>Dokładność ekstrakcji</th>
      <th>Tokeny/sek.</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Llama 3.1 (8B)</td>
      <td class="green-bg">Wysoka jakość, brak halucynacji</td>
      <td>10/11</td>
      <td>13.49</td>
    </tr>
    <tr>
      <td>StableLM 3B</td>
      <td class="red-bg">Średnia jakość, literówki/halucynacje</td>
      <td>4/11</td>
      <td>56.51</td>
    </tr>
    <tr>
      <td>Llama 3.2 (3B)</td>
      <td class="green-bg">Zwięzłe i pełne podsumowanie, brak halucynacji</td>
      <td>8/11</td>
      <td>49.49</td>
    </tr>
    <tr>
      <td>Mistral 7B</td>
      <td>Rozbudowane podsumowanie, zgodne z faktami</td>
      <td>8/11</td>
      <td>29.01</td>
    </tr>
    <tr>
      <td>Gemma 3 4B</td>
      <td class="green-bg">Zwięzłe i pełne podsumowanie, brak halucynacji</td>
      <td>10/11</td>
      <td>13.37</td>
    </tr>
    <tr>
      <td>Gemma 3 1B</td>
      <td class="green-bg">Zwięzłe i pełne podsumowanie, brak halucynacji</td>
      <td>4/11</td>
      <td>73.46</td>
    </tr>
    <tr>
      <td>DeepSeek 7B</td>
      <td class="green-bg">Zwięzłe i pełne podsumowanie, brak halucynacji</td>
      <td>6/11</td>
      <td>16.39</td>
    </tr>
    <tr>
      <td>DeepSeek 1.5B</td>
      <td class="red-bg">Bardzo słaba jakość, częste halucynacje/błędy</td>
      <td>0/11</td>
      <td>66.45</td>
    </tr>
    <tr>
      <td>Phi-4 Mini 3.8B</td>
      <td>Bardzo zwięzłe podsumowania, zgodne z faktami</td>
      <td>9/11</td>
      <td>39.31</td>
    </tr>
    <tr>
      <td>TinyLlama 1.1B</td>
      <td class="red-bg">Słaba jakość, poważne halucynacje</td>
      <td>2/11</td>
      <td>107.34</td>
    </tr>
  </tbody>
</table>
		</div>
				</div>
				<div class="elementor-element elementor-element-4f30579 elementor-widget elementor-widget-text-editor" data-id="4f30579" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h6>Tabela: Porównanie modeli</h6>						</div>
				</div>
				<div class="elementor-element elementor-element-1046393 elementor-widget elementor-widget-image" data-id="1046393" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="1030" height="618" src="https://inero-software.com/wp-content/uploads/2025/04/lightweight-llm-scatterplot-1030x618.png" class="attachment-large size-large wp-image-7847" alt="" srcset="https://inero-software.com/wp-content/uploads/2025/04/lightweight-llm-scatterplot-1030x618.png 1030w, https://inero-software.com/wp-content/uploads/2025/04/lightweight-llm-scatterplot-300x180.png 300w, https://inero-software.com/wp-content/uploads/2025/04/lightweight-llm-scatterplot-768x460.png 768w, https://inero-software.com/wp-content/uploads/2025/04/lightweight-llm-scatterplot-1536x921.png 1536w, https://inero-software.com/wp-content/uploads/2025/04/lightweight-llm-scatterplot-500x300.png 500w, https://inero-software.com/wp-content/uploads/2025/04/lightweight-llm-scatterplot.png 1968w" sizes="(max-width: 1030px) 100vw, 1030px" data-attachment-id="7847" data-permalink="https://inero-software.com/top-lightweight-llms-for-local-deployment/lightweight-llm-scatterplot/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/04/lightweight-llm-scatterplot.png" data-orig-size="1968,1180" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="lightweight-llm-scatterplot" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/04/lightweight-llm-scatterplot-300x180.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/04/lightweight-llm-scatterplot-1030x618.png" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-704e9c5 elementor-widget elementor-widget-text-editor" data-id="704e9c5" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Ten wykres punktowy przedstawia kompromis między dokładnością ekstrakcji a szybkością wnioskowania (mierzoną w tokenach na sekundę).</p>						</div>
				</div>
				<div class="elementor-element elementor-element-5527166 elementor-widget elementor-widget-text-editor" data-id="5527166" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Wyniki benchmarku ujawniają istotne różnice pomiędzy testowanymi modelami.</p><ul><li style="list-style-type: none;"><ul><li>Modele z dolnej prawej części wykresu — Llama 3.1 (8B), Gemma 3 (4B) i Phi-4 Mini (3.8B) — wyróżniają się wysoką jakością podsumowań i dokładnością ekstrakcji, konsekwentnie dostarczając zwięzłe i precyzyjne odpowiedzi. Phi-4 Mini wydaje się oferować dobry kompromis między szybkością a dokładnością.</li><li>Modele takie jak Mistral 7B, DeepSeek 7B oraz Llama 3.2 generują szczegółowe i bogate w treść podsumowania, choć ich skuteczność w zadaniach ekstrakcji jest umiarkowana.</li><li>Z kolei mniejsze modele (w lewej górnej części wykresu), takie jak StableLM Zephyr (3B), Gemma 3 (1B) i TinyLlama (1.1B), cechują się znacznie niższą dokładnością ekstrakcji i są podatne na częste halucynacje. Ich zaletą jest natomiast szybka inferencja. Ograniczone okna kontekstu (np. 4 tys. tokenów) mogą dodatkowo wpływać na obniżoną skuteczność. Ogólnie rzecz biorąc, modele te nadają się raczej do bardzo podstawowych zadań.</li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-1ac20ae elementor-widget elementor-widget-heading" data-id="1ac20ae" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Dobór odpowiedniego modelu do Twoich potrzeb</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-11e1bfc elementor-widget elementor-widget-text-editor" data-id="11e1bfc" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Wybór modelu językowego do ekstrakcji lub podsumowywania dokumentów to kwestia znalezienia odpowiedniego balansu między dokładnością, szybkością działania a ograniczeniami sprzętowymi. Poniżej znajdziesz krótkie zestawienie, które pomoże Ci dobrać najlepsze rozwiązanie — niezależnie od tego, czy zależy Ci na wysokiej precyzji, szybkiej inferencji, czy lekkim modelu do podstawowych zadań.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-689718c elementor-widget elementor-widget-text-editor" data-id="689718c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><p><strong>Wysoka dokładność i rozsądna szybkość:</strong> Wybierz <strong>Phi-4 Mini (3.8B), Gemma 3 (4B)</strong> lub <strong>Llama 3.1 (8B)</strong>, jeśli zależy Ci na solidnej dokładności ekstrakcji i podsumowań.</p></li><li data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><p><strong>Szybka inferencja i umiarkowana dokładność:</strong> Postaw na <strong>Llama 3.2 (3B)</strong> lub <strong>StableLM Zephyr (3B)</strong> w przypadku prostszych zadań na sprzęcie o ograniczonych zasobach.</p></li><li data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><p><strong>Zrównoważona wydajność (kompromis między dokładnością a szybkością):</strong> <strong>Mistral (7B)</strong> oferuje silne możliwości ogólnego zastosowania, dobrze sprawdzając się w szczegółowych zadaniach podsumowywania dokumentów.</p></li><li data-leveltext="" data-font="Symbol" data-listid="4" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><p><strong>Środowiska o niskich zasobach (zadania podstawowe):</strong> Rozważ <strong>TinyLlama (1.1B)</strong> do szybkiej ekstrakcji lub klasyfikacji na minimalnym sprzęcie, jeśli dokładność nie jest kluczowa.</p></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-ee4c212 elementor-widget elementor-widget-heading" data-id="ee4c212" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Podsumowanie </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-510ec3a elementor-widget elementor-widget-text-editor" data-id="510ec3a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Lekkie modele LLM stają się coraz bardziej dostępną opcją do lokalnego uruchamiania, szczególnie w branżach intensywnie pracujących z dokumentami, takich jak ubezpieczenia. Modele takie jak Phi-4 Mini, Gemma 3 (4B) czy Mistral 7B oferują wysoką wydajność w zadaniach podsumowywania, ekstrakcji i klasyfikacji. Odpowiednie zrównoważenie rozmiaru modelu, szybkości wnioskowania i dokładności pozwala osiągać optymalne rezultaty, dając organizacjom dostęp do niedrogich, prywatnych i responsywnych rozwiązań AI uruchamianych bezpośrednio na własnym sprzęcie.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-8874a86 elementor-cta--skin-cover elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action" data-id="8874a86" data-element_type="widget" data-widget_type="call-to-action.default">
				<div class="elementor-widget-container">
					<a class="elementor-cta" href="https://inero-software.com/pl/optymalizacja-procesow-back-office-dzieki-wdrozeniu-agenta-ai-praktyczny-przyklad/">
					<div class="elementor-cta__bg-wrapper">
				<div class="elementor-cta__bg elementor-bg" style="background-image: url(https://inero-software.com/wp-content/uploads/2025/03/cta-1903-1030x579.png);" role="img" aria-label="cta 1903"></div>
				<div class="elementor-cta__bg-overlay"></div>
			</div>
							<div class="elementor-cta__content">
				
									<h2 class="elementor-cta__title elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						To może Cię zainteresować					</h2>
				
									<div class="elementor-cta__description elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Optymalizacja procesów back – office, dzięki wdrożeniu agenta AI. Praktyczny przykład					</div>
				
									<div class="elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
					<span class="elementor-cta__button elementor-button elementor-size-">
						Czytaj całość					</span>
					</div>
							</div>
						</a>
				</div>
				</div>
					</div>
				</div>
				</div>
		<p>Artykuł <a href="https://inero-software.com/pl/lokalne-llm-y-testujemy-lekkie-modele-do-przetwarzania-dokumentow/">Lokalne LLM-y: testujemy lekkie modele do przetwarzania dokumentów</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7873</post-id>	</item>
		<item>
		<title>Lokalne wdrażanie modeli LLM: przewodnik po Ollama i LM Studio</title>
		<link>https://inero-software.com/pl/lokalne-wdrazanie-modeli-llm-przewodnik-po-ollama-i-lm-studio/</link>
		
		<dc:creator><![CDATA[Martyna Mul]]></dc:creator>
		<pubDate>Fri, 04 Apr 2025 10:40:41 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[duże modele językowe]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[LM Studio]]></category>
		<category><![CDATA[Ollama]]></category>
		<category><![CDATA[sztuczna inteligencja]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=7715</guid>

					<description><![CDATA[<p>W tym przewodniku przyjrzymy się dwóm zaawansowanym narzędziom, które umożliwiają lokalne uruchamianie modeli: Ollama i LM Studio. Przejdziemy przez proces instalacji, omówimy sposób ich użycia oraz możliwości dostosowania, pomagając Ci wybrać najlepsze rozwiązanie dopasowane do Twoich potrzeb.</p>
<p>Artykuł <a href="https://inero-software.com/pl/lokalne-wdrazanie-modeli-llm-przewodnik-po-ollama-i-lm-studio/">Lokalne wdrażanie modeli LLM: przewodnik po Ollama i LM Studio</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="7715" class="elementor elementor-7715" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-139e1f8 e-flex e-con-boxed e-con e-parent" data-id="139e1f8" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-2474df1 elementor-widget elementor-widget-html" data-id="2474df1" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			 		</div>
				</div>
				<div class="elementor-element elementor-element-29e8b23 elementor-widget elementor-widget-text-editor" data-id="29e8b23" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h4>Lokalne wdrażanie dużych modeli językowych (LLM) staje się coraz bardziej popularne wśród programistów, entuzjastów technologii oraz specjalistów z branż takich jak ubezpieczenia czy transport. W przeciwieństwie do rozwiązań opartych na chmurze, lokalne wdrażanie LLM-ów zapewnia większą prywatność, dostępność offline oraz pełną kontrolę nad optymalizacją zasobów i wydajnością działania modelu.</h4>						</div>
				</div>
				<div class="elementor-element elementor-element-d13f5fb elementor-widget elementor-widget-text-editor" data-id="d13f5fb" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Uruchamianie modeli takich jak Llama 2 czy Mistral bezpośrednio na własnym sprzęcie oznacza, że dane pozostają na Twoim urządzeniu — co jest idealnym rozwiązaniem w przypadku zadań wymagających wysokiego poziomu prywatności, takich jak przetwarzanie dokumentów ubezpieczeniowych czy praca z zastrzeżonymi danymi transportowymi. Przy okazji nie ponosisz stałych kosztów związanych z API, a wydajność zależy wyłącznie od Twojego systemu. Niezależnie od tego, czy tworzysz własnego chatbota, agenta, asystenta programistycznego opartego na AI, czy analizujesz dokumenty offline — lokalne wdrożenie daje Ci swobodę eksperymentowania i wprowadzania innowacji bez konieczności polegania na zewnętrznych usługach.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-313a919 elementor-widget elementor-widget-text-editor" data-id="313a919" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>W tym przewodniku przyjrzymy się dwóm zaawansowanym narzędziom, które umożliwiają lokalne uruchamianie modeli: <b>Ollama</b> i <b>LM Studio.</b> Przejdziemy przez proces instalacji, omówimy sposób ich użycia oraz możliwości dostosowania, pomagając Ci wybrać najlepsze rozwiązanie dopasowane do Twoich potrzeb.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-66f4910 elementor-widget elementor-widget-heading" data-id="66f4910" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Pierwsze kroki z Ollama (narzędzie CLI)</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-55390e0 elementor-widget elementor-widget-text-editor" data-id="55390e0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong data-start="267" data-end="363">Ollama to wydajne, otwartoźródłowe narzędzie konsolowe do lokalnego uruchamiania modeli LLM.</strong> Działa jako menedżer modeli i środowisko wykonawcze, ułatwiając pobieranie i uruchamianie modeli open source (takich jak Llama 2, Mistral, CodeLlama itp.) bezpośrednio na Twoim komputerze. Ollama jest dostępna dla systemów macOS, Linux i Windows, a dodatkowo oferuje lokalne API REST do integracji z aplikacjami.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-f83e139 elementor-widget elementor-widget-text-editor" data-id="f83e139" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ol><li><p><strong>Zainstaluj Ollama na swoim systemie:</strong> Pobierz instalator dla swojego systemu operacyjnego ze strony internetowej Ollama lub skorzystaj z menedżera pakietów.</p></li></ol>						</div>
				</div>
				<div class="elementor-element elementor-element-f34ab2b elementor-widget elementor-widget-text-editor" data-id="f34ab2b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>W systemie Windows pobierz plik <strong>OllamaSetup.exe</strong> ze strony internetowej i uruchom go.<br />W systemie Linux możesz zainstalować Ollama za pomocą jednej komendy:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-b668357 elementor-widget elementor-widget-text-editor" data-id="b668357" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun SCXW8325834 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW8325834 BCX0">curl -</span><span class="NormalTextRun SpellingErrorV2Themed SCXW8325834 BCX0">fsSL</span> </span><a class="Hyperlink SCXW8325834 BCX0" href="https://ollama.com/install.sh" target="_blank" rel="noreferrer noopener"><span class="TextRun Underlined SCXW8325834 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW8325834 BCX0" data-ccp-charstyle="Hyperlink">https://ollama.com/install.sh</span></span></a><span class="TextRun SCXW8325834 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW8325834 BCX0"> | </span><span class="NormalTextRun SpellingErrorV2Themed SCXW8325834 BCX0">sh</span></span><span class="EOP SCXW8325834 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:0}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-c086d50 elementor-widget elementor-widget-text-editor" data-id="c086d50" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Po zakończeniu instalacji otwórz terminal (lub wiersz poleceń w systemie Windows) i sprawdź, czy Ollama zostało poprawnie zainstalowane, wyświetlając jego wersję:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-a98aedb elementor-widget elementor-widget-text-editor" data-id="a98aedb" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun SCXW230245657 BCX0" lang="EN-GB" style="-webkit-user-drag: none; -webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; user-select: text; white-space-collapse: preserve; font-size: 11pt; line-height: 19.7625px; font-family: Consolas, Consolas_EmbeddedFont, Consolas_MSFontService, monospace; font-variant-ligatures: none !important;" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SpellingErrorV2Themed SCXW230245657 BCX0" style="-webkit-user-drag: none; -webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; user-select: text; background-position: 0px 100%; background-repeat: repeat-x; border-bottom: 1px solid transparent;">ollama</span><span class="NormalTextRun SCXW230245657 BCX0" style="-webkit-user-drag: none; -webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; user-select: text;"> -</span><span class="NormalTextRun SCXW230245657 BCX0" style="-webkit-user-drag: none; -webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; user-select: text;">-</span><span class="NormalTextRun SCXW230245657 BCX0" style="-webkit-user-drag: none; -webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; user-select: text;">version</span></span><span class="EOP SCXW230245657 BCX0" style="-webkit-user-drag: none; -webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; user-select: text; white-space-collapse: preserve; font-size: 11pt; line-height: 19.7625px; font-family: Consolas, Consolas_EmbeddedFont, Consolas_MSFontService, monospace;" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:0}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-fe7e512 elementor-widget elementor-widget-text-editor" data-id="fe7e512" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Powinno to wyświetlić zainstalowaną wersję Ollama, co potwierdzi, że narzędzie jest gotowe do użycia, np.:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-8f0123b elementor-widget elementor-widget-text-editor" data-id="8f0123b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun SCXW19868586 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SpellingErrorV2Themed SCXW19868586 BCX0">ollama</span><span class="NormalTextRun SCXW19868586 BCX0"> version is 0.6.2</span></span><span class="EOP SCXW19868586 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:0}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-cf0e477 elementor-widget elementor-widget-text-editor" data-id="cf0e477" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ol start="2"><li><p><strong>Pobierz model LLM („ściągnij” model):</strong> Ollama zawiera wbudowaną bibliotekę modeli. Możesz przeszukiwać katalog dostępny na stronie internetowej lub po prostu pobrać znany model, podając jego nazwę.<br />Na przykład, aby pobrać model <strong>Llama 2 Chat (7B)</strong>, użyj polecenia:</p></li></ol>						</div>
				</div>
				<div class="elementor-element elementor-element-abab4bd elementor-widget elementor-widget-text-editor" data-id="abab4bd" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun SCXW86029186 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SpellingErrorV2Themed SCXW86029186 BCX0">ollama</span><span class="NormalTextRun SCXW86029186 BCX0"> pull llama2:7b-chat</span></span><span class="EOP SCXW86029186 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:0}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-e31da10 elementor-widget elementor-widget-text-editor" data-id="e31da10" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>To polecenie pobiera na Twój komputer pliki modelu (może to chwilę potrwać, ponieważ mają one zazwyczaj kilka gigabajtów). Model wystarczy pobrać tylko raz — zostaje zapisany lokalnie. W razie potrzeby możesz wyświetlić listę wszystkich pobranych modeli za pomocą polecenia <code data-start="709" data-end="722">ollama list</code>.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-0fe8c48 elementor-widget elementor-widget-text-editor" data-id="0fe8c48" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ol start="3"><li><p><strong>Uruchom model lokalnie:</strong> Po pobraniu możesz uruchomić model za pomocą polecenia <code>ollama run</code>. Spowoduje to uruchomienie interaktywnej sesji, w której możesz wpisywać zapytania i otrzymywać odpowiedzi. Na przykład:</p></li></ol>						</div>
				</div>
				<div class="elementor-element elementor-element-bb58a0a elementor-widget elementor-widget-text-editor" data-id="bb58a0a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun SCXW171041342 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SpellingErrorV2Themed SCXW171041342 BCX0">ollama</span><span class="NormalTextRun SCXW171041342 BCX0"> run llama2:7b-chat &gt;&gt;&gt; What is the capital city of Poland?</span></span><span class="EOP SCXW171041342 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:0}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-c17cc6e elementor-widget elementor-widget-text-editor" data-id="c17cc6e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Po uruchomieniu powyższego polecenia Ollama załaduje model, a na ekranie pojawi się znak &gt;&gt;&gt;. Możesz wtedy wpisywać pytania lub polecenia. Model (w tym przypadku Llama 2 7B Chat) będzie generował odpowiedź na każde zapytanie. Na przykład możesz zapytać: „What is the capital of France?” i otrzymać odpowiedź: „Paris is the capital of France.” wyświetloną w terminalu.</p><p>Przy pierwszym uruchomieniu inicjalizacja modelu może chwilę potrwać, ale kolejne zapytania są obsługiwane szybciej, bez ponownego ładowania modelu.</p><p>Wskazówka: Możesz też przekazać jednorazowe zapytanie bezpośrednio w poleceniu, np. <code>ollama run llama2:7b "What is the capital city of Poland?"</code> spowoduje wygenerowanie jednej odpowiedzi i powrót do powłoki systemowej.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-846e51f elementor-widget elementor-widget-text-editor" data-id="846e51f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Możesz także uruchomić Ollama jako serwer w tle za pomocą polecenia <code>ollama serve</code>. Umożliwia to korzystanie z API REST dostępnego pod adresem <code>localhost:11434</code>, które deweloperzy mogą wykorzystać do integracji modelu z aplikacjami za pomocą zapytań HTTP. Możesz zadawać pytania modelowi, wysyłając zapytania POST, na przykład:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-7fa1a27 elementor-widget elementor-widget-text-editor" data-id="7fa1a27" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun SCXW24036424 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW24036424 BCX0">curl </span></span><a class="Hyperlink SCXW24036424 BCX0" href="http://localhost:11434/api/generate" target="_blank" rel="noreferrer noopener"><span class="TextRun Underlined SCXW24036424 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW24036424 BCX0" data-ccp-charstyle="Hyperlink">http://localhost:11434/api/generate</span></span></a><span class="TextRun SCXW24036424 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW24036424 BCX0"> -d </span></span><span class="TextRun SCXW24036424 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW24036424 BCX0">'{</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW24036424 BCX0"><span class="SCXW24036424 BCX0"> </span><br class="SCXW24036424 BCX0" /></span><span class="TextRun SCXW24036424 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW24036424 BCX0">  "model": "llama2:7b-chat",</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW24036424 BCX0"><span class="SCXW24036424 BCX0"> </span><br class="SCXW24036424 BCX0" /></span><span class="TextRun SCXW24036424 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW24036424 BCX0">  "prompt": "What is the capital city of Poland?"</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW24036424 BCX0"><span class="SCXW24036424 BCX0"> </span><br class="SCXW24036424 BCX0" /></span><span class="TextRun SCXW24036424 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW24036424 BCX0">}'</span></span><span class="EOP SCXW24036424 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:0}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-77dd7b1 elementor-widget elementor-widget-text-editor" data-id="77dd7b1" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>API zwraca odpowiedź w postaci obiektów JSON, w miarę jak model stopniowo ją generuje. Każdy obiekt zawiera fragment tekstu (ang. chunk).<br />​</p>						</div>
				</div>
				<div class="elementor-element elementor-element-943d033 elementor-widget elementor-widget-text-editor" data-id="943d033" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">{</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"model"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"llama2:7b-chat"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"</span><span class="NormalTextRun SpellingErrorV2Themed SCXW52386783 BCX0">created_at</span><span class="NormalTextRun SCXW52386783 BCX0">"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"2025-04-02T15:19:17.1569954Z"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"response"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"The"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"done"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">false</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">}</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">{</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"model"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"llama2:7b-chat"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"</span><span class="NormalTextRun SpellingErrorV2Themed SCXW52386783 BCX0">created_at</span><span class="NormalTextRun SCXW52386783 BCX0">"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"2025-04-02T15:19:17.268992Z"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"response"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">" capital"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"done"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">false</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">}</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">{</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"model"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"llama2:7b-chat"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"</span><span class="NormalTextRun SpellingErrorV2Themed SCXW52386783 BCX0">created_at</span><span class="NormalTextRun SCXW52386783 BCX0">"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"2025-04-02T15:19:17.3796491Z"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"response"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">" city"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"done"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">false</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">}</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">...</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">{</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"model"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"llama2:7b-chat"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"</span><span class="NormalTextRun SpellingErrorV2Themed SCXW52386783 BCX0">created_at</span><span class="NormalTextRun SCXW52386783 BCX0">"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"2025-04-02T15:19:21.3106413Z"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"response"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">" Warszawa"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"done"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">false</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">}</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">{</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"model"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"llama2:7b-chat"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"</span><span class="NormalTextRun SpellingErrorV2Themed SCXW52386783 BCX0">created_at</span><span class="NormalTextRun SCXW52386783 BCX0">"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"2025-04-02T15:19:21.4619772Z"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"response"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">")."</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"done"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">false</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">}</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">{</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"model"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"llama2:7b-chat"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"</span><span class="NormalTextRun SpellingErrorV2Themed SCXW52386783 BCX0">created_at</span><span class="NormalTextRun SCXW52386783 BCX0">"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"2025-04-02T15:19:21.6296267Z"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"response"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">""</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"done"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">true</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"</span><span class="NormalTextRun SpellingErrorV2Themed SCXW52386783 BCX0">done_reason</span><span class="NormalTextRun SCXW52386783 BCX0">"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"stop"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"</span><span class="NormalTextRun SpellingErrorV2Themed SCXW52386783 BCX0">total_duration</span><span class="NormalTextRun SCXW52386783 BCX0">"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: 5337417000,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"</span><span class="NormalTextRun SpellingErrorV2Themed SCXW52386783 BCX0">load_duration</span><span class="NormalTextRun SCXW52386783 BCX0">"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: 8625100,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"</span><span class="NormalTextRun SpellingErrorV2Themed SCXW52386783 BCX0">prompt_eval_count</span><span class="NormalTextRun SCXW52386783 BCX0">"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: 28,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"</span><span class="NormalTextRun SpellingErrorV2Themed SCXW52386783 BCX0">prompt_eval_duration</span><span class="NormalTextRun SCXW52386783 BCX0">"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: 854952300,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"</span><span class="NormalTextRun SpellingErrorV2Themed SCXW52386783 BCX0">eval_count</span><span class="NormalTextRun SCXW52386783 BCX0">"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: 15,</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">    </span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">"</span><span class="NormalTextRun SpellingErrorV2Themed SCXW52386783 BCX0">eval_duration</span><span class="NormalTextRun SCXW52386783 BCX0">"</span></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">: 4472807400</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW52386783 BCX0"><span class="SCXW52386783 BCX0"> </span><br class="SCXW52386783 BCX0" /></span><span class="TextRun SCXW52386783 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW52386783 BCX0">}</span></span><span class="EOP SCXW52386783 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:0}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-10d3ffe elementor-widget elementor-widget-text-editor" data-id="10d3ffe" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Jeśli ustawisz <code>stream: false</code>, odpowiedź zostanie zwrócona jako pojedynczy obiekt JSON.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-af79c25 elementor-widget elementor-widget-text-editor" data-id="af79c25" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun SCXW81302069 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW81302069 BCX0">curl </span></span><a class="Hyperlink SCXW81302069 BCX0" href="http://localhost:11434/api/generate" target="_blank" rel="noreferrer noopener"><span class="TextRun Underlined SCXW81302069 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW81302069 BCX0" data-ccp-charstyle="Hyperlink">http://localhost:11434/api/generate</span></span></a><span class="TextRun SCXW81302069 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW81302069 BCX0"> -d </span></span><span class="TextRun SCXW81302069 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW81302069 BCX0">'{</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW81302069 BCX0"><span class="SCXW81302069 BCX0"> </span><br class="SCXW81302069 BCX0" /></span><span class="TextRun SCXW81302069 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW81302069 BCX0">  "model": "llama2:7b-chat",</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW81302069 BCX0"><span class="SCXW81302069 BCX0"> </span><br class="SCXW81302069 BCX0" /></span><span class="TextRun SCXW81302069 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW81302069 BCX0">  "prompt": "What is the capital city of Poland?",</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW81302069 BCX0"><span class="SCXW81302069 BCX0"> </span><br class="SCXW81302069 BCX0" /></span><span class="TextRun SCXW81302069 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW81302069 BCX0">  "stream": false</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW81302069 BCX0"><span class="SCXW81302069 BCX0"> </span><br class="SCXW81302069 BCX0" /></span><span class="TextRun SCXW81302069 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW81302069 BCX0">}</span></span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-3d76430 elementor-widget elementor-widget-text-editor" data-id="3d76430" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Możesz również ustawić różne parametry modelu, takie jak temperatura (czyli poziom losowości generowanych odpowiedzi), dodając odpowiednie pola w opcjach.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-12fc8b0 elementor-widget elementor-widget-text-editor" data-id="12fc8b0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun SCXW121643900 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW121643900 BCX0">curl </span></span><a class="Hyperlink SCXW121643900 BCX0" href="http://localhost:11434/api/generate" target="_blank" rel="noreferrer noopener"><span class="TextRun Underlined SCXW121643900 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW121643900 BCX0" data-ccp-charstyle="Hyperlink">http://localhost:11434/api/generate</span></span></a><span class="TextRun SCXW121643900 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW121643900 BCX0"> -d </span></span><span class="TextRun SCXW121643900 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW121643900 BCX0">'{</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW121643900 BCX0"><span class="SCXW121643900 BCX0"> </span><br class="SCXW121643900 BCX0" /></span><span class="TextRun SCXW121643900 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW121643900 BCX0">  "model": "llama2:7b-chat",</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW121643900 BCX0"><span class="SCXW121643900 BCX0"> </span><br class="SCXW121643900 BCX0" /></span><span class="TextRun SCXW121643900 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW121643900 BCX0">  "prompt": "What is the capital city of Poland?",</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW121643900 BCX0"><span class="SCXW121643900 BCX0"> </span><br class="SCXW121643900 BCX0" /></span><span class="TextRun SCXW121643900 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW121643900 BCX0">  "options": {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW121643900 BCX0"><span class="SCXW121643900 BCX0"> </span><br class="SCXW121643900 BCX0" /></span> <span class="TextRun SCXW121643900 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW121643900 BCX0">"temperature": 0.2  </span></span><span class="LineBreakBlob BlobObject DragDrop SCXW121643900 BCX0"><span class="SCXW121643900 BCX0"> </span><br class="SCXW121643900 BCX0" /></span><span class="TextRun SCXW121643900 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW121643900 BCX0">  }</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW121643900 BCX0"><span class="SCXW121643900 BCX0"> </span><br class="SCXW121643900 BCX0" /></span><span class="TextRun SCXW121643900 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW121643900 BCX0">  "stream": false</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW121643900 BCX0"><span class="SCXW121643900 BCX0"> </span><br class="SCXW121643900 BCX0" /></span><span class="TextRun SCXW121643900 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW121643900 BCX0">}'</span></span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-c478ddd elementor-widget elementor-widget-text-editor" data-id="c478ddd" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ol start="4"><li><p><strong>Dostosuj modele:</strong> Ollama obsługuje pliki Modelfile o składni podobnej do Dockerfile, które umożliwiają tworzenie własnych wariantów modeli LLM. Dzięki niej możesz:</p></li></ol>						</div>
				</div>
				<div class="elementor-element elementor-element-dde64e1 elementor-widget elementor-widget-text-editor" data-id="dde64e1" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li data-start="338" data-end="385">Rozpocząć od istniejącego modelu (np. llama3)</li><li data-start="388" data-end="421">Dodać własne systemowe prompt’y</li><li data-start="424" data-end="499">Wprowadzić dane zdefiniowane przez użytkownika (np. instrukcje, kontekst)</li><li data-start="502" data-end="549">Ustawić parametry modelu, takie jak temperatura</li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-9672691 elementor-widget elementor-widget-text-editor" data-id="9672691" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Oto prosty przykład, jak możesz stworzyć własnego asystenta do przetwarzania dokumentów ubezpieczeniowych:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-b3b173f elementor-widget elementor-widget-text-editor" data-id="b3b173f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">FROM llama2:7b-chat</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">PARAMETER temperature 0.7</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">SYSTEM </span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">"""</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">You are an assistant that extracts insurance-related information from a given input text.</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">You must extract and return only the following fields:</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">- policy_number</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">- insurance_period</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">- insured (company or person name)</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">- nip (tax identification number)</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">- address (of the insured)</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">Return the output as a **clean JSON object** -- not as a string, not inside quotes, and without any commentary. If a field is missing, use "</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">Not found</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">".</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">Example output format:</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">{</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">  "</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SpellingErrorV2Themed SCXW168916518 BCX0">policy_number</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">": "</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">...</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">",</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">  "</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SpellingErrorV2Themed SCXW168916518 BCX0">insurance_period</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">": "</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">...</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">",</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">  "</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">insured</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">": "</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">...</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">",</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">  "</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">nip</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">": "</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">...</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">",</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">  "</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">address</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">": "</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">...</span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">"</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">}</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">"""</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">TEMPLATE </span></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">"""</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">{{ .</span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW168916518 BCX0">System }</span><span class="NormalTextRun SCXW168916518 BCX0">}</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">Input:</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">{{ .</span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW168916518 BCX0">Prompt }</span><span class="NormalTextRun SCXW168916518 BCX0">}</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">Response:</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW168916518 BCX0"><span class="SCXW168916518 BCX0"> </span><br class="SCXW168916518 BCX0" /></span><span class="TextRun SCXW168916518 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SCXW168916518 BCX0">"""</span></span><span class="EOP SCXW168916518 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:0}"> </span>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.</pre>						</div>
				</div>
				<div class="elementor-element elementor-element-70f4001 elementor-widget elementor-widget-text-editor" data-id="70f4001" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Aby skorzystać z pliku <strong>Modelfile</strong>, zapisz go w wybranym katalogu, np. <code>insurance-assistant</code>, a następnie utwórz własny model za pomocą polecenia:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-5d4fca1 elementor-widget elementor-widget-text-editor" data-id="5d4fca1" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun SCXW150813743 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="none"><span class="NormalTextRun SpellingErrorV2Themed SCXW150813743 BCX0">ollama</span><span class="NormalTextRun SCXW150813743 BCX0"> create insurance-assistant -f insurance-</span><span class="NormalTextRun SpellingErrorV2Themed SCXW150813743 BCX0">assitant</span><span class="NormalTextRun SCXW150813743 BCX0">/</span><span class="NormalTextRun SpellingErrorV2Themed SCXW150813743 BCX0">Modelfile</span></span><span class="EOP SCXW150813743 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:0}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-3cfba04 elementor-widget elementor-widget-text-editor" data-id="3cfba04" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Następnie możesz użyć swojego modelu, podając właściwą nazwę modelu w zapytaniu:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-607dc80 elementor-widget elementor-widget-text-editor" data-id="607dc80" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:0}"> </span><span data-contrast="none">curl </span><a href="http://localhost:11434/api/generate"><span data-contrast="none">http://localhost:11434/api/generate</span></a><span data-contrast="none"> -d </span><span data-contrast="none">'{</span> <br /><span data-contrast="none">  "model": "insurance-extractor",</span> <br /><span data-contrast="none">  "prompt": "",</span> <br /><span data-contrast="none">  "stream": false</span> <br /><span data-contrast="none">}'</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335559738&quot;:0,&quot;335559739&quot;:0}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-bc5221c elementor-widget elementor-widget-text-editor" data-id="bc5221c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Ollama działa wyłącznie w trybie konsolowym — nie posiada graficznego interfejsu użytkownika. Jednak dzięki temu świetnie sprawdza się w automatyzacji: możesz przekierowywać dane wejściowe i wyjściowe, zapisywać odpowiedzi do plików lub korzystać z API Ollama bezpośrednio w kodzie.</p><p>Podsumowując, za pomocą zaledwie kilku poleceń możesz uruchomić lokalnie model LLM, który chroni prywatność, działa bez połączenia z internetem i jest gotowy do odpowiadania na pytania lub wspierania Cię w pracy programistycznej.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-ce97082 elementor-widget elementor-widget-heading" data-id="ce97082" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Pierwsze kroki z LM Studio (aplikacja desktopowa)</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-f911779 elementor-widget elementor-widget-image" data-id="f911779" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="1030" height="579" src="https://inero-software.com/wp-content/uploads/2025/04/LLM1-1030x579.png" class="attachment-large size-large wp-image-7711" alt="" srcset="https://inero-software.com/wp-content/uploads/2025/04/LLM1-1030x579.png 1030w, https://inero-software.com/wp-content/uploads/2025/04/LLM1-300x169.png 300w, https://inero-software.com/wp-content/uploads/2025/04/LLM1-768x432.png 768w, https://inero-software.com/wp-content/uploads/2025/04/LLM1-1536x864.png 1536w, https://inero-software.com/wp-content/uploads/2025/04/LLM1-533x300.png 533w, https://inero-software.com/wp-content/uploads/2025/04/LLM1.png 1920w" sizes="(max-width: 1030px) 100vw, 1030px" data-attachment-id="7711" data-permalink="https://inero-software.com/deploying-llms-locally-a-guide-to-ollama-and-lm-studio/llm1/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/04/LLM1.png" data-orig-size="1920,1080" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="LLM1" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/04/LLM1-300x169.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/04/LLM1-1030x579.png" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-14c3b4c elementor-widget elementor-widget-text-editor" data-id="14c3b4c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong>LM Studio</strong> to przyjazna dla użytkownika aplikacja desktopowa, która umożliwia pobieranie i uruchamianie lokalnych modeli LLM za pomocą interfejsu graficznego. Działa na wielu platformach (Windows, macOS, Linux) i jest idealna dla początkujących, którzy wolą nie korzystać z konsoli. Dzięki LM Studio możesz rozmawiać z modelami w estetycznym interfejsie, zarządzać pobieraniem modeli, a także uruchomić lokalny serwer, by wykorzystywać model w innych aplikacjach.</p><p><span data-ccp-props="{}"> </span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-42a60f3 elementor-widget elementor-widget-text-editor" data-id="42a60f3" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>To polecenie pobiera pliki modelu na Twój komputer (może to potrwać, ponieważ modele mają zazwyczaj kilka gigabajtów). Model wystarczy pobrać tylko raz — później jest przechowywany lokalnie. W razie potrzeby możesz wyświetlić listę wszystkich pobranych modeli za pomocą polecenia <code>ollama list</code>.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-623f7d7 elementor-widget elementor-widget-text-editor" data-id="623f7d7" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ol><li><strong>Zainstaluj i uruchom LM Studio:</strong> Pobierz instalator dla swojego systemu operacyjnego ze strony LM Studio i zainstaluj aplikację. Po zakończeniu instalacji uruchom LM Studio. Przy pierwszym uruchomieniu zostaniesz poproszony o pobranie modelu AI. Możesz wybrać jeden z popularnych modeli open source z dostępnej listy. Na początek możesz na przykład wybrać mniejszy model, taki jak „Mistral 7B” lub wariant Llama2 dostosowany do instrukcji.</li><li><p class="" data-start="771" data-end="1301"><strong data-start="790" data-end="828">Uruchom swoją pierwszą rozmowę:</strong> Gdy model zostanie pobrany, LM Studio załaduje go do pamięci. Następnie możesz rozpocząć nową sesję czatu w aplikacji. Interfejs zazwyczaj zawiera pole tekstowe, w którym wpisujesz zapytanie lub polecenie, a odpowiedź modelu pojawia się w oknie rozmowy. Wystarczy, że wpiszesz pytanie (na przykład: „Jaka jest stolica Francji?” albo „Wyjaśnij mechanikę kwantową w prosty sposób”) i naciśniesz Enter. Odpowiedź AI zostanie wyświetlona jako odpowiedź „Asystenta” w czacie.</p><p class="" data-start="1303" data-end="1382">LM Studio w przejrzysty sposób pokazuje również metryki generowania odpowiedzi.</p></li></ol>						</div>
				</div>
				<div class="elementor-element elementor-element-e83ff6c elementor-widget elementor-widget-text-editor" data-id="e83ff6c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li><p>liczba tokenów wejściowych i wyjściowych,</p></li><li><p>tokeny na sekundę – możesz zobaczyć, jak szybko model generuje tekst,</p></li><li><p>zajętość kontekstu,</p></li><li><p>wykorzystanie zasobów systemowych (RAM i użycie procesora).</p></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-4c50be9 elementor-widget elementor-widget-text-editor" data-id="4c50be9" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ol start="3"><li><p><strong>Odkryj dostępne funkcje:</strong> Graficzny interfejs LM Studio oferuje dodatkowe możliwości dostępne zarówno dla początkujących, jak i zaawansowanych użytkowników:</p></li></ol>						</div>
				</div>
				<div class="elementor-element elementor-element-0bc4155 elementor-widget elementor-widget-text-editor" data-id="0bc4155" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li><p><strong>Biblioteka modeli:</strong> Sekcja „Odkrywaj modele” lub katalog, w którym możesz pobierać nowe modele lub aktualizować już posiadane. Nie jesteś ograniczony do jednego modelu — możesz przechowywać wiele modeli i swobodnie się między nimi przełączać. Oznacza to szeroki wybór: od małych modeli z 3 miliardami parametrów, zapewniających szybkość działania, aż po modele 70-miliardowe, jeśli Twój system jest w stanie je obsłużyć.</p></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-c3af6d0 elementor-widget elementor-widget-text-editor" data-id="c3af6d0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li><p><strong>Interfejs czatu:</strong> Główne okno czatu (jak pokazano wcześniej) to miejsce, w którym prowadzisz interakcję z modelem. Każde nowe zapytanie, które wpiszesz, jest traktowane jako część rozmowy i otrzymuje odpowiedź w formacie konwersacyjnym. Możesz prowadzić wieloetapowy dialog — tak jak w rozmowie z ChatGPT. Nie musisz samodzielnie zarządzać historią zapytań — aplikacja automatycznie zachowuje kontekst rozmowy.</p></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-fcf03f1 elementor-widget elementor-widget-text-editor" data-id="fcf03f1" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li><p><strong>Ustawienia zaawansowane:</strong> W panelu bocznym LM Studio udostępnia opcje konfiguracji dla użytkowników, którzy chcą mieć większą kontrolę nad działaniem modelu. Możesz ustawić systemowy prompt (czyli rolę lub instrukcję, która globalnie wpływa na zachowanie AI), dostosować parametry generowania, takie jak temperatura (twórczość vs. spójność), top-p lub top-k (do kontrolowania losowości), maksymalna liczba tokenów w odpowiedzi itd. Te ustawienia pozwalają precyzyjnie dostosować sposób działania modelu — bez potrzeby pisania kodu.</p><p>Na przykład możesz ustawić instrukcję systemową typu: „Jesteś pomocnym asystentem programisty”. To przystępny sposób na personalizację zachowania modelu, choć nie tak rozbudowany jak możliwości oferowane przez narzędzie konsolowe.</p></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-5378615 elementor-widget elementor-widget-image" data-id="5378615" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="1030" height="579" src="https://inero-software.com/wp-content/uploads/2025/04/LLM2-1030x579.png" class="attachment-large size-large wp-image-7710" alt="" srcset="https://inero-software.com/wp-content/uploads/2025/04/LLM2-1030x579.png 1030w, https://inero-software.com/wp-content/uploads/2025/04/LLM2-300x169.png 300w, https://inero-software.com/wp-content/uploads/2025/04/LLM2-768x432.png 768w, https://inero-software.com/wp-content/uploads/2025/04/LLM2-1536x864.png 1536w, https://inero-software.com/wp-content/uploads/2025/04/LLM2-533x300.png 533w, https://inero-software.com/wp-content/uploads/2025/04/LLM2.png 1920w" sizes="(max-width: 1030px) 100vw, 1030px" data-attachment-id="7710" data-permalink="https://inero-software.com/deploying-llms-locally-a-guide-to-ollama-and-lm-studio/llm2/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/04/LLM2.png" data-orig-size="1920,1080" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="LLM2" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/04/LLM2-300x169.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/04/LLM2-1030x579.png" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-8d32129 elementor-widget elementor-widget-text-editor" data-id="8d32129" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h6>Ustawienia zaawansowane – prosty przykład asystenta AI do przetwarzania dokumentów ubezpieczeniowych.</h6>						</div>
				</div>
				<div class="elementor-element elementor-element-88a1e0d elementor-widget elementor-widget-text-editor" data-id="88a1e0d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li><p><strong>Lokalny serwer API:</strong> Dla deweloperów LM Studio oferuje tryb „Local LLM Server”. Wystarczy przełączyć się na zakładkę <strong>Developer</strong>, wybrać model i kliknąć przycisk <strong>Start</strong>. Włącza to punkt końcowy API na <code>localhost</code>, który imituje API OpenAI, co pozwala innym programom wysyłać zapytania do lokalnie uruchomionego modelu.</p><p>To bardzo przydatne rozwiązanie, jeśli chcesz zintegrować lokalny model LLM z własnymi aplikacjami (na przykład podłączając interfejs czatu lub wykorzystując model do funkcji AI w środowisku IDE), zachowując jednocześnie prywatność i uniezależniając się od usług zewnętrznych.</p></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-369df09 elementor-widget elementor-widget-image" data-id="369df09" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="1030" height="579" src="https://inero-software.com/wp-content/uploads/2025/04/LLM3-1030x579.png" class="attachment-large size-large wp-image-7709" alt="" srcset="https://inero-software.com/wp-content/uploads/2025/04/LLM3-1030x579.png 1030w, https://inero-software.com/wp-content/uploads/2025/04/LLM3-300x169.png 300w, https://inero-software.com/wp-content/uploads/2025/04/LLM3-768x432.png 768w, https://inero-software.com/wp-content/uploads/2025/04/LLM3-1536x864.png 1536w, https://inero-software.com/wp-content/uploads/2025/04/LLM3-533x300.png 533w, https://inero-software.com/wp-content/uploads/2025/04/LLM3.png 1920w" sizes="(max-width: 1030px) 100vw, 1030px" data-attachment-id="7709" data-permalink="https://inero-software.com/deploying-llms-locally-a-guide-to-ollama-and-lm-studio/llm3/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/04/LLM3.png" data-orig-size="1920,1080" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="LLM3" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/04/LLM3-300x169.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/04/LLM3-1030x579.png" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-5937737 elementor-widget elementor-widget-text-editor" data-id="5937737" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h6><strong>Zakładka Developer</strong> – umożliwia uruchomienie lokalnego serwera LLM, hostującego Twój spersonalizowany model.</h6>						</div>
				</div>
				<div class="elementor-element elementor-element-06d2cee elementor-widget elementor-widget-text-editor" data-id="06d2cee" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Korzystanie z LM Studio jest równie proste jak w przypadku ChatGPT — wpisujesz zapytanie i otrzymujesz odpowiedź — z tą różnicą, że wszystko działa lokalnie na Twoim sprzęcie. Przyjazny interfejs użytkownika obniża próg wejścia, ponieważ nie musisz używać konsoli ani pamiętać poleceń. Otrzymujesz natychmiastowe, interaktywne odpowiedzi AI, a wszystkim możesz wygodnie zarządzać za pomocą przycisków i menu.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-b60b847 elementor-widget elementor-widget-heading" data-id="b60b847" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Ollama vs. LM Studio: porównanie narzędzi</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-2d19913 elementor-widget elementor-widget-text-editor" data-id="2d19913" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Zarówno Ollama, jak i LM Studio umożliwiają lokalne uruchamianie modeli LLM, jednak są skierowane do nieco innych grup użytkowników i przypadków użycia. Oto porównanie kluczowych aspektów, które pomoże zrozumieć różnice między tymi narzędziami:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-872db63 elementor-widget elementor-widget-text-editor" data-id="872db63" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li><p><strong>Interfejs i łatwość obsługi:</strong><br />LM Studio oferuje dopracowany graficzny interfejs użytkownika, co czyni je wyjątkowo przystępnym dla początkujących. Obsługa odbywa się metodą „wskaż i kliknij”, z wbudowanym oknem czatu, dzięki czemu nie jest wymagana żadna wiedza techniczna, aby rozpocząć pracę.</p><p>Ollama z kolei to narzędzie konsolowe (CLI) z opcjonalnym API REST. Daje dużą moc i elastyczność, ale wymaga swobody w korzystaniu z terminala, aby w pełni wykorzystać jego możliwości. Początkujący mogą uznać krzywą uczenia się Ollamy za bardziej stromą, podczas gdy LM Studio sprawia wrażenie rozwiązania typu „podłącz i używaj”.</p></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-4f4ccfd elementor-widget elementor-widget-text-editor" data-id="4f4ccfd" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li><p><strong>Obsługiwane modele:</strong><br />Oba narzędzia obsługują szeroką gamę otwartoźródłowych modeli LLM. LM Studio może ładować dowolny model w formacie <strong>GGUF</strong> (standard używany przez <code>llama.cpp</code>), co oznacza, że możesz korzystać z modeli takich jak Llama 2 (7B, 13B, 70B), Mistral, Vicuna, Alpaca, CodeLlama i wielu innych — o ile Twój sprzęt jest w stanie je obsłużyć.</p></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-8a420f5 elementor-widget elementor-widget-text-editor" data-id="8a420f5" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li><p><strong>Odpowiednie zastosowania:</strong><br />Ze względu na powyższe różnice, <strong>LM Studio</strong> świetnie sprawdzi się u użytkowników, którzy chcą mieć na swoim komputerze osobistego asystenta w stylu ChatGPT, bez potrzeby skomplikowanej konfiguracji. To dobre rozwiązanie do interaktywnych pytań i odpowiedzi, burzy mózgów czy codziennego, swobodnego użytkowania — uruchamiasz, gdy potrzebujesz, wpisujesz zapytanie, otrzymujesz odpowiedź.</p><p><strong>Ollama</strong> natomiast jest idealna dla programistów oraz osób, które chcą zintegrować modele LLM ze swoimi projektami lub procesami. Jeśli planujesz eksperymentować z promptami w skryptach, dostosowywać zachowanie modelu lub budować aplikację (np. chatbota, integrację asystenta kodu itp.), interfejs CLI i API Ollamy daje Ci elastyczność potrzebną do takich zastosowań.</p></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-b4240ce elementor-widget elementor-widget-heading" data-id="b4240ce" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Wnioski i rekomendacje</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-a417a13 elementor-widget elementor-widget-text-editor" data-id="a417a13" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Lokalne wdrażanie modeli LLM oferuje wiele możliwości dla programistów i entuzjastów. Omówiliśmy Ollama i LM Studio – dwa doskonałe narzędzia, które umożliwiają dostęp do lokalnej sztucznej inteligencji. Oto krótkie podsumowanie wskazówek dotyczących wyboru między nimi:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-93b9fb0 elementor-widget elementor-widget-text-editor" data-id="93b9fb0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li><strong data-start="55" data-end="161">Wybierz LM Studio, jeśli chcesz gotowe rozwiązanie do rozmów z AI z przyjaznym interfejsem graficznym.</strong> To idealna opcja dla początkujących lub osób, które nie chcą korzystać z konsoli. Oferuje szybkie uruchomienie, łatwe pobieranie modeli i wygodny interfejs czatu do interakcji z AI. Świetnie sprawdzi się jako „offline’owy ChatGPT” do użytku osobistego, robienia notatek czy generowania pomysłów — bez konieczności zagłębiania się w konfigurację. To także wygodny sposób na zaprezentowanie możliwości LLM osobom nietechnicznym, ponieważ aplikacja działa jak zwykły program.</li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-dcecadd elementor-widget elementor-widget-text-editor" data-id="dcecadd" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li><p><strong>Wybierz Ollama, jeśli zależy Ci na większej kontroli, automatyzacji lub integracji.</strong> Deweloperzy i zaawansowani użytkownicy docenią jej elastyczność — możesz ją skryptować, uruchamiać bez interfejsu na serwerze, integrować lokalny model LLM z własnymi aplikacjami przez API oraz dostosowywać zachowanie modeli za pomocą plików Modelfile. Jeśli dobrze czujesz się w pracy z konsolą i chcesz precyzyjnie kontrolować sposób działania AI (poza tym, co oferuje interfejs graficzny), Ollama będzie lepszym wyborem. To także lekkie narzędzie, jeśli planujesz uruchamiać usługi AI w tle w sposób ciągły.</p></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-cd8dc50 elementor-widget elementor-widget-text-editor" data-id="cd8dc50" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Na koniec pamiętaj, że sam model LLM, który wybierzesz, jest równie istotny jak narzędzie. Warto poświęcić czas na znalezienie modelu dopasowanego do konkretnego zadania — niezależnie od tego, czy potrzebujesz zwięzłego narzędzia do podsumowań, czy kreatywnego opowiadacza historii — i dostosowanego do możliwości Twojego sprzętu. <span style="color: var( --e-global-color-text );">Zarówno Ollama, jak i LM Studio umożliwiają łatwą zamianę modeli, więc nie jesteś ograniczony do jednego wyboru. Ekosystem otwartoźródłowych modeli rozwija się bardzo szybko, co oznacza, że uruchamianie zaawansowanej AI na własnym urządzeniu staje się coraz prostsze i powszechniejsze.</span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-5a3b149 elementor-widget elementor-widget-text-editor" data-id="5a3b149" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Podsumowując, lokalne wdrażanie modeli LLM za pomocą omawianych w tym tekście narzędzi daje Ci to, co najlepsze z obu światów: możliwości sztucznej inteligencji porównywalne z usługami chmurowymi, ale z zachowaniem prywatności, pełną kontrolą i bez żadnych stałych kosztów. Niezależnie od tego, czy wybierzesz zaawansowane narzędzie konsolowe, takie jak Ollama, czy przyjazną aplikację graficzną, jak LM Studio — dołączasz do czołówki rozwoju lokalnej AI.</p><p>Powodzenia w eksperymentach i udanego korzystania z własnego, lokalnego asystenta AI!</p>						</div>
				</div>
					</div>
				</div>
				</div>
		<p>Artykuł <a href="https://inero-software.com/pl/lokalne-wdrazanie-modeli-llm-przewodnik-po-ollama-i-lm-studio/">Lokalne wdrażanie modeli LLM: przewodnik po Ollama i LM Studio</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7715</post-id>	</item>
		<item>
		<title>OpenAI vs. DeepSeek: Techniczne porównanie z wykorzystaniem zunifikowanych interfejsów API</title>
		<link>https://inero-software.com/pl/openai-vs-deepseek-techniczne-porownanie-z-wykorzystaniem-zunifikowanych-interfejsow-api/</link>
		
		<dc:creator><![CDATA[Martyna Mul]]></dc:creator>
		<pubDate>Fri, 14 Mar 2025 14:40:50 +0000</pubDate>
				<category><![CDATA[Blog_pl]]></category>
		<category><![CDATA[Firma]]></category>
		<category><![CDATA[Technologie]]></category>
		<category><![CDATA[4o-mini]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[DeepSeek]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[modele]]></category>
		<category><![CDATA[o3-mini]]></category>
		<category><![CDATA[sztuczna inteligencja]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=7584</guid>

					<description><![CDATA[<p>W tym artykule przeprowadzamy analizę porównawczą trzech popularnych modeli LLM—modeli GPT od OpenAI: 4o-mini i o3-mini, oraz DeepSeek R1—w celu oceny ich skuteczności w odczytywaniu i analizie danych statystycznych z dużych plików PDF.</p>
<p>Artykuł <a href="https://inero-software.com/pl/openai-vs-deepseek-techniczne-porownanie-z-wykorzystaniem-zunifikowanych-interfejsow-api/">OpenAI vs. DeepSeek: Techniczne porównanie z wykorzystaniem zunifikowanych interfejsów API</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="7584" class="elementor elementor-7584" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-4c59976 e-flex e-con-boxed e-con e-parent" data-id="4c59976" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-5cf6ead elementor-widget elementor-widget-html" data-id="5cf6ead" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			 		</div>
				</div>
				<div class="elementor-element elementor-element-a037070 elementor-widget elementor-widget-text-editor" data-id="a037070" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h4>Duże modele językowe (LLM) są coraz częściej wykorzystywane do analizy i ekstrakcji informacji z obszernych dokumentów, w tym długich raportów statystycznych w formacie PDF. Jednak nie wszystkie modele radzą sobie równie dobrze z przetwarzaniem dużych plików, zwłaszcza tych przekraczających 50 stron. W tym artykule przeprowadzamy analizę porównawczą trzech popularnych modeli LLM—modeli GPT od OpenAI: 4o-mini i o3-mini, oraz DeepSeek R1—w celu oceny ich skuteczności w odczytywaniu i analizie danych statystycznych z dużych plików PDF. Nasza ocena koncentruje się na trzech kluczowych czynnikach: dokładności, czasie odpowiedzi oraz szacunkowych kosztach korzystania z każdego modelu.</h4>						</div>
				</div>
				<div class="elementor-element elementor-element-237cac6 elementor-widget elementor-widget-text-editor" data-id="237cac6" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Aby zapewnić rzetelne porównanie, wykorzystaliśmy LiteLLM – zunifikowane API, które upraszcza benchmarking różnych modeli LLM. Standaryzując interakcje między dostawcami modeli, LiteLLM pozwoliło nam skupić się na ocenie metryk wydajności LLM zamiast na różnicach w implementacji.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-53a2380 elementor-widget elementor-widget-heading" data-id="53a2380" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Zunifikowane podejście API</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-f569e31 elementor-widget elementor-widget-text-editor" data-id="f569e31" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Porównywanie modeli LLM typu od różnych dostawców bywa wyzwaniem ze względu na różnice w ich interfejsach API. Aby ujednolicić nasze testy, wykorzystaliśmy LiteLLM – bibliotekę zapewniającą spójny interfejs do obsługi wielu modeli LLM. Dzięki temu możliwa była łatwa zamiana modeli oraz bardziej obiektywne porównanie ich wydajności. Oto, jak proste jest przełączanie między modelami przy użyciu zunifikowanego API LiteLLM:</p>						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-277031f e-flex e-con-boxed e-con e-parent" data-id="277031f" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-66b9211 elementor-widget elementor-widget-text-editor" data-id="66b9211" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun SCXW177913088 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW177913088 BCX0">import litellm</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW177913088 BCX0"><span class="SCXW177913088 BCX0"> </span><br class="SCXW177913088 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW177913088 BCX0"><span class="SCXW177913088 BCX0"> </span><br class="SCXW177913088 BCX0" /></span><span class="TextRun SCXW177913088 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW177913088 BCX0"># To use </span><span class="NormalTextRun SpellingErrorV2Themed SCXW177913088 BCX0">openai</span><span class="NormalTextRun SCXW177913088 BCX0">.</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW177913088 BCX0"><span class="SCXW177913088 BCX0"> </span><br class="SCXW177913088 BCX0" /></span><span class="TextRun SCXW177913088 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW177913088 BCX0">response = </span><span class="NormalTextRun SpellingErrorV2Themed SCXW177913088 BCX0">litellm.completion</span><span class="NormalTextRun SCXW177913088 BCX0">(model="</span><span class="NormalTextRun SCXW177913088 BCX0">o3-mini</span><span class="NormalTextRun SCXW177913088 BCX0">", messages</span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW177913088 BCX0">=[</span><span class="NormalTextRun SCXW177913088 BCX0">{"content": "Hello", "role": "user"}])</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW177913088 BCX0"><span class="SCXW177913088 BCX0"> </span><br class="SCXW177913088 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW177913088 BCX0"><span class="SCXW177913088 BCX0"> </span><br class="SCXW177913088 BCX0" /></span><span class="TextRun SCXW177913088 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW177913088 BCX0"># To use </span><span class="NormalTextRun SpellingErrorV2Themed SCXW177913088 BCX0">deepseek</span><span class="NormalTextRun SCXW177913088 BCX0">.</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW177913088 BCX0"><span class="SCXW177913088 BCX0"> </span><br class="SCXW177913088 BCX0" /></span><span class="TextRun SCXW177913088 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW177913088 BCX0">response = </span><span class="NormalTextRun SpellingErrorV2Themed SCXW177913088 BCX0">litellm.completion</span><span class="NormalTextRun SCXW177913088 BCX0">(model="</span><span class="NormalTextRun SpellingErrorV2Themed SCXW177913088 BCX0">deepseek</span><span class="NormalTextRun SCXW177913088 BCX0">/</span><span class="NormalTextRun SpellingErrorV2Themed SCXW177913088 BCX0">deepseek</span><span class="NormalTextRun SCXW177913088 BCX0">-</span><span class="NormalTextRun SCXW177913088 BCX0">reasoner</span><span class="NormalTextRun SCXW177913088 BCX0">", messages</span><span class="NormalTextRun ContextualSpellingAndGrammarErrorV2Themed SCXW177913088 BCX0">=[</span><span class="NormalTextRun SCXW177913088 BCX0">{"content": "Hello", "role": "user"}])</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW177913088 BCX0"><span class="SCXW177913088 BCX0"> </span><br class="SCXW177913088 BCX0" /></span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-ad9012a elementor-widget elementor-widget-text-editor" data-id="ad9012a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>To uproszczone podejście pozwoliło nam porównać modele bez konieczności zajmowania się złożonością ich implementacji.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-bdf2fca elementor-widget elementor-widget-heading" data-id="bdf2fca" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">DeepSeek vs. OpenAI – przegląd modeli</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-2a9d55a elementor-widget elementor-widget-text-editor" data-id="2a9d55a" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Zanim przejdziemy do wyników benchmarku modeli AI, zdefiniujmy kluczowe pojęcia i przedstawmy podstawowe specyfikacje testowanych modeli.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-3070cc7 elementor-widget elementor-widget-text-editor" data-id="3070cc7" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Jednym z najważniejszych parametrów w benchmarkingu modeli LLM jest okno kontekstowe – maksymalna liczba tokenów, które model może przetworzyć jednocześnie. Tokeny reprezentują fragmenty tekstu, a nie pojedyncze słowa. Większe okno kontekstowe pozwala modelowi obsługiwać bardziej rozbudowane dokumenty w jednym zapytaniu, co ma kluczowe znaczenie przy pracy z długimi raportami statystycznymi.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-d7ab0b3 elementor-widget elementor-widget-text-editor" data-id="d7ab0b3" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Ceny korzystania z modeli LLM są zazwyczaj oparte na liczbie przetworzonych tokenów, przy czym koszt może się różnić w zależności od rodzaju tokenów. W modelach LLM wyróżnia się zazwyczaj trzy typy tokenów wpływające na wycenę:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-65a6290 elementor-widget elementor-widget-text-editor" data-id="65a6290" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ol><li><p><strong>Tokeny wejściowe (input tokens)</strong> – reprezentują dane dostarczane do modelu, takie jak tekst zapytania lub dokument do analizy. Koszt przetwarzania wejściowych tokenów zależy od modelu i dostawcy.</p></li><li><p><strong>Tokeny wyjściowe (output tokens)</strong> – to treść generowana przez model w odpowiedzi na zapytanie. Ponieważ modele LLM mogą zwracać różne długości odpowiedzi, liczba tokenów wyjściowych ma istotny wpływ na końcowy koszt użytkowania.</p></li><li><p><strong>Tokeny kontekstowe (context tokens)</strong> – obejmują zarówno tokeny wejściowe, jak i poprzednie odpowiedzi modelu w sesji konwersacyjnej. Im większy kontekst przechowywany w pamięci modelu, tym większe zużycie tokenów i potencjalnie wyższy koszt.</p></li></ol><p>Zrozumienie tych kategorii jest kluczowe dla optymalizacji kosztów korzystania z LLM, zwłaszcza w przypadku analizy dużych dokumentów.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-d9daaed elementor-widget elementor-widget-text-editor" data-id="d9daaed" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Modele wybrane do tego porównania należą do najnowszych wersji wydanych w ostatnich miesiącach. Choć różnią się pod względem cen i możliwości, naszym celem jest ocena, czy te różnice przekładają się na mierzalne różnice w wydajności. Poniżej przedstawiamy kluczowe charakterystyki modeli DeepSeek-R1, OpenAI 4o-mini oraz OpenAI o3-mini:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-c83f80c elementor-widget elementor-widget-html" data-id="c83f80c" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			<style>
    table {
        width: 100%;
        border-collapse: collapse;
        font-family: 'Roboto', sans-serif;
        font-weight: 300;
        font-size: 14px;
        color: #1C244B;
    }
    th, td {
        border: 1px solid #ddd;
        padding: 8px;
        text-align: left;
    }
    th {
        background-color: #f4f4f4;
        color: #1C244B;
    }
    tr:nth-child(even) {
        background-color: #f9f9f9;
    }
</style>

<table>
    <thead>
        <tr>
            <th></th>
            <th>DeepSeek-R1</th>
            <th>OpenAI 4o-mini</th>
            <th>OpenAI o3-mini</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><strong>Okno kontekstowe</strong></td>
            <td>128 000 tokenów</td>
            <td>128 000 tokenów (maksymalnie 16 384 tokenów w odpowiedzi)</td>
            <td>200 000 tokenów (maksymalnie 100 000 tokenów w odpowiedzi)</td>
        </tr>
        <tr>
            <td><strong>Data wydania</strong></td>
            <td>Styczeń 2025</td>
            <td>Lipiec 2024</td>
            <td>Styczeń 2025</td>
        </tr>
        <tr>
            <td><strong>Cennik (za 1 milion tokenów)</strong></td>
            <td>Wejście: 0,55 USD<br>Pamięć podręczna wejścia: 0,14 USD<br>Wyjście: 2,19 USD</td>
            <td>Wejście: 0,15 USD<br>Pamięć podręczna wejścia: 0,075 USD<br>Wyjście: 0,60 USD</td>
            <td>Wejście: 1,10 USD<br>Pamięć podręczna wejścia: 0,55 USD<br>Wyjście: 4,40 USD</td>
        </tr>
        <tr>
            <td><strong>Obsługiwane formaty wejściowe</strong></td>
            <td>Tekst</td>
            <td>Tekst, obrazy (w tym PNG, JPEG, GIF, WEBP)</td>
            <td>Tekst</td>
        </tr>
        <tr>
            <td><strong>Obsługiwane formaty wyjściowe</strong></td>
            <td>Tekst</td>
            <td>Tekst</td>
            <td>Tekst</td>
        </tr>
    </tbody>
</table>

<!-- Link do czcionki Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap" rel="stylesheet">
		</div>
				</div>
				<div class="elementor-element elementor-element-fb0549b elementor-widget elementor-widget-heading" data-id="fb0549b" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Plik PDF użyty do testów</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-898fdb5 elementor-widget elementor-widget-text-editor" data-id="898fdb5" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Dokument użyty do testów składa się z kilku rozdziałów raportu dotyczącego polskiej i światowej gospodarki morskiej w latach 2017–2020. Raport ma 50 stron i zawiera różne statystyki oraz analizy dotyczące ruchu ładunkowego, żeglugi, przemysłu stoczniowego i innych sektorów gospodarki morskiej. Dane w pliku są sformatowane w tabelach i tekście. Większość informacji przedstawiono w tabelach, z dodatkowymi objaśnieniami i podsumowaniami w otaczającym tekście. Przykładowe strony dokumentu użytego do testów:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-cf84d20 elementor-widget elementor-widget-image" data-id="cf84d20" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="1030" height="728" src="https://inero-software.com/wp-content/uploads/2025/03/grafika-14032025-1030x728.png" class="attachment-large size-large wp-image-7573" alt="" srcset="https://inero-software.com/wp-content/uploads/2025/03/grafika-14032025-1030x728.png 1030w, https://inero-software.com/wp-content/uploads/2025/03/grafika-14032025-300x212.png 300w, https://inero-software.com/wp-content/uploads/2025/03/grafika-14032025-768x543.png 768w, https://inero-software.com/wp-content/uploads/2025/03/grafika-14032025-1536x1086.png 1536w, https://inero-software.com/wp-content/uploads/2025/03/grafika-14032025-424x300.png 424w, https://inero-software.com/wp-content/uploads/2025/03/grafika-14032025.png 2000w" sizes="(max-width: 1030px) 100vw, 1030px" data-attachment-id="7573" data-permalink="https://inero-software.com/openai-vs-deepseek-a-technical-comparison-using-unified-apis/grafika-14032025/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/03/grafika-14032025.png" data-orig-size="2000,1414" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="grafika 14032025" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/03/grafika-14032025-300x212.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/03/grafika-14032025-1030x728.png" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-e46d19d elementor-widget elementor-widget-heading" data-id="e46d19d" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default"><p>Metodologia testowania<span style="color: var( --e-global-color-primary );font-family: var( --e-global-typography-primary-font-family ), Sans-serif;font-size: 1.7em;font-weight: var( --e-global-typography-primary-font-weight );text-align: var(--text-align)"></span></p></h3>		</div>
				</div>
				<div class="elementor-element elementor-element-1ba1d08 elementor-widget elementor-widget-text-editor" data-id="1ba1d08" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Przeprowadziliśmy serię testów, wykorzystując następujące zapytania związane z gospodarką morską oraz plik PDF zawierający kontekstowe informacje. Oto przykładowe zapytania dotyczące danych zawartych w pliku PDF:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-4228b97 elementor-widget elementor-widget-text-editor" data-id="4228b97" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li>Podsumuj kluczowe wnioski ekonomiczne z raportu dotyczącego gospodarki morskiej.</li><li>Jaki był całkowity obrót ładunkowy w polskich portach morskich w 2020 roku?</li><li>Jakie są główne rodzaje ładunków obsługiwanych przez polskie porty morskie?</li><li>Które kraje są głównymi partnerami handlowymi Polski w transporcie morskim?</li><li>Jaki jest średni wiek statków we flocie polskiego transportu morskiego?</li><li>Jakie są kluczowe wskaźniki ekonomiczne polskiego przemysłu stoczniowego?</li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-26bc5cf elementor-widget elementor-widget-text-editor" data-id="26bc5cf" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Jak wcześniej wspomniano, porównaliśmy następujące modele:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-890abbd elementor-widget elementor-widget-text-editor" data-id="890abbd" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="1" data-aria-level="1"><span data-contrast="auto">OpenAI&#8217;s 4o-mini</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="2" data-aria-level="1"><span data-contrast="auto">OpenAI&#8217;s </span><span data-contrast="auto">o3-mini</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0}"> </span></li></ul></li></ul><ul><li style="list-style-type: none;"><ul><li data-leveltext="" data-font="Symbol" data-listid="7" data-list-defn-props="{&quot;335552541&quot;:1,&quot;335559683&quot;:0,&quot;335559684&quot;:-2,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}" aria-setsize="-1" data-aria-posinset="3" data-aria-level="1"><span data-contrast="auto">DeepSeek&#8217;s </span><span data-contrast="auto">deepseek-resoner (R1)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:0}"> </span></li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-153e657 elementor-widget elementor-widget-text-editor" data-id="153e657" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Zmierzyliśmy następujące metryki:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-6ca549e elementor-widget elementor-widget-text-editor" data-id="6ca549e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li><strong>Czas inferencji</strong> – Określa czas potrzebny modelowi na wygenerowanie odpowiedzi po otrzymaniu zapytania. Krótszy czas inferencji oznacza szybsze reakcje, co ma kluczowe znaczenie dla aplikacji czasu rzeczywistego oraz przetwarzania dużych dokumentów.</li><li><strong>Zużycie tokenów</strong> – Modele LLM przetwarzają i generują tekst w jednostkach zwanych tokenami. Token może być pełnym słowem, jego częścią lub nawet znakiem interpunkcyjnym. Całkowite zużycie tokenów obejmuje zarówno tokeny wejściowe (zapytanie użytkownika lub dokument), jak i tokeny wyjściowe (odpowiedź modelu). Im więcej tokenów jest używanych, tym wyższy koszt zapytania.</li><li><strong>Koszt odpowiedzi</strong> – Obliczany jako <em>zużycie tokenów × cena modelu</em> (za 1 000 lub 1 000 000 tokenów, w zależności od dostawcy). Ponieważ różne modele mają różne struktury cenowe, porównanie kosztów odpowiedzi pozwala określić, który model jest bardziej opłacalny w zastosowaniach na dużą skalę.</li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-e807a52 elementor-widget elementor-widget-heading" data-id="e807a52" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Wyniki testów </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-b36a1c6 elementor-widget elementor-widget-text-editor" data-id="b36a1c6" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Oto podsumowane wyniki naszych testów (każdy test był powtarzany kilkukrotnie):</p>						</div>
				</div>
				<div class="elementor-element elementor-element-f26f255 elementor-widget elementor-widget-html" data-id="f26f255" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			<style>
    table {
        width: 100%;
        border-collapse: collapse;
        font-family: 'Roboto', sans-serif;
        font-weight: 300;
        font-size: 14px;
        color: #1C244B;
    }
    th, td {
        border: 1px solid #ddd;
        padding: 8px;
        text-align: left;
    }
    th {
        background-color: #f4f4f4;
        color: #1C244B;
    }
    tr:nth-child(even) {
        background-color: #f9f9f9;
    }
</style>

<table>
    <thead>
        <tr>
            <th>Model</th>
            <th>Średni czas inferencji (s)</th>
            <th>Średni koszt odpowiedzi ($)</th>
            <th>Średnia liczba tokenów wejściowych</th>
            <th>Średnia liczba tokenów wyjściowych</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><strong>DeepSeek R1</strong></td>
            <td>57,2</td>
            <td>0,0039</td>
            <td>63 961,7</td>
            <td>751,6</td>
        </tr>
        <tr>
            <td><strong>o3-mini</strong></td>
            <td>13,8</td>
            <td>0,0755</td>
            <td>63 251,5</td>
            <td>1 162,5</td>
        </tr>
        <tr>
            <td><strong>4o-mini</strong></td>
            <td>9,5</td>
            <td>0,0511</td>
            <td>62 538,0</td>
            <td>1 046,5</td>
        </tr>
    </tbody>
</table>

<!-- Link do czcionki Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap" rel="stylesheet">
		</div>
				</div>
				<div class="elementor-element elementor-element-65630f9 elementor-widget elementor-widget-heading" data-id="65630f9" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Kluczowe wnioski </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-703de17 elementor-widget elementor-widget-text-editor" data-id="703de17" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<ul><li style="list-style-type: none;"><ul><li><strong>Czas inferencji:</strong> DeepSeek konsekwentnie wykazywał dłuższe czasy inferencji w porównaniu do obu modeli OpenAI. Może to być istotny czynnik dla aplikacji, które wymagają szybkiego przetwarzania.</li><li><strong>Koszt odpowiedzi:</strong> DeepSeek wykazał przewagę kosztową, szczególnie w zakresie tokenów wyjściowych. Pomimo dłuższego czasu inferencji, całkowity koszt zapytania pozostaje niższy niż w przypadku OpenAI o3-mini i 4o-mini. Niższy koszt odpowiedzi DeepSeek wynika z mechanizmu buforowania, który ogranicza konieczność ponownego przetwarzania danych wejściowych. Większość treści wejściowych, zwłaszcza zawartość pliku PDF, była buforowana, co pozwoliło na znaczne oszczędności w kosztach przetwarzania. Dzięki temu systemowi DeepSeek efektywnie obsługiwał powtarzające się zapytania, czyniąc go opłacalnym wyborem do analizy dużych dokumentów.</li><li><strong>Zmienność odpowiedzi:</strong> Modele różniły się pod względem stylu i poziomu szczegółowości generowanych odpowiedzi. Ma to znaczenie w zależności od kontekstu i wymagań użytkownika (np. ogólne podsumowania vs. szczegółowa analiza).</li><li><strong>API LiteLLM:</strong> LiteLLM znacząco ułatwiło śledzenie kosztów, zużycia tokenów i czasu odpowiedzi bezpośrednio w odpowiedziach API, umożliwiając prostą i przejrzystą analizę porównawczą modeli.</li></ul></li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-f56bc1c elementor-widget elementor-widget-heading" data-id="f56bc1c" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Podsumowanie </h3>		</div>
				</div>
				<div class="elementor-element elementor-element-abbecc5 elementor-widget elementor-widget-text-editor" data-id="abbecc5" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Nasze testy podkreślają zalety stosowania zunifikowanych interfejsów API do benchmarkingu modeli LLM. LiteLLM znacząco uprościło cały proces, pozwalając nam skupić się na ocenie efektywności modeli oraz ich wydajności.</p><p>DeepSeek R1 wykazał się konkurencyjną opłacalnością, głównie dzięki mechanizmowi buforowania, który redukował koszty ponownego przetwarzania tych samych danych wejściowych. Jednak był zdecydowanie najwolniejszym modelem w naszych testach, osiągając średni czas inferencji na poziomie 57,2 sekundy.</p><p>Z kolei OpenAI o3-mini i 4o-mini zapewniały znacznie krótszy czas odpowiedzi, co czyni je bardziej odpowiednimi dla zastosowań wymagających przetwarzania w czasie rzeczywistym.</p>						</div>
				</div>
					</div>
				</div>
				</div>
		<p>Artykuł <a href="https://inero-software.com/pl/openai-vs-deepseek-techniczne-porownanie-z-wykorzystaniem-zunifikowanych-interfejsow-api/">OpenAI vs. DeepSeek: Techniczne porównanie z wykorzystaniem zunifikowanych interfejsów API</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">7584</post-id>	</item>
		<item>
		<title>Ocena dużych modeli językowych (LLM) z wykorzystaniem Retrieval-Augmented Generation (RAG) i DeepEval dla złożonych danych tabelarycznych</title>
		<link>https://inero-software.com/pl/ocena-duzych-modeli-jezykowych-llm-z-wykorzystaniem-retrieval-augmented-generation-rag-i-deepeval-dla-zlozonych-danych-tabelarycznych/</link>
		
		<dc:creator><![CDATA[Martyna Mul]]></dc:creator>
		<pubDate>Tue, 04 Feb 2025 11:56:49 +0000</pubDate>
				<category><![CDATA[Firma]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[biznes]]></category>
		<category><![CDATA[DeepEval]]></category>
		<category><![CDATA[LLM]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=6913</guid>

					<description><![CDATA[<p>W tym artykule przyjrzymy się, jak DeepEval pomaga w systematycznej ocenie, zwiększając wiarygodność informacji tworzonych przez AI.</p>
<p>Artykuł <a href="https://inero-software.com/pl/ocena-duzych-modeli-jezykowych-llm-z-wykorzystaniem-retrieval-augmented-generation-rag-i-deepeval-dla-zlozonych-danych-tabelarycznych/">Ocena dużych modeli językowych (LLM) z wykorzystaniem Retrieval-Augmented Generation (RAG) i DeepEval dla złożonych danych tabelarycznych</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6913" class="elementor elementor-6913" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-a77f132 e-flex e-con-boxed e-con e-parent" data-id="a77f132" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-eedef0f e-con-full e-flex e-con e-child" data-id="eedef0f" data-element_type="container">
				</div>
		<div class="elementor-element elementor-element-8bb2c58 e-con-full e-flex e-con e-child" data-id="8bb2c58" data-element_type="container">
		<div class="elementor-element elementor-element-cac0d92 e-con-full e-flex e-con e-child" data-id="cac0d92" data-element_type="container">
				<div class="elementor-element elementor-element-f3a0ecb elementor-widget elementor-widget-html" data-id="f3a0ecb" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
			 		</div>
				</div>
				<div class="elementor-element elementor-element-33c698c elementor-widget elementor-widget-text-editor" data-id="33c698c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<h4>Modele Retrieval-Augmented Generation (RAG) zmieniają sposób, w jaki inteligentni asystenci przetwarzają informacje, umożliwiając bardziej precyzyjne i kontekstowe odpowiedzi na zapytania użytkowników. W przeciwieństwie do tradycyjnych dużych modeli językowych (LLMs), systemy RAG łączą dwa kluczowe elementy: mechanizm wyszukiwania, który pobiera istotne dokumenty, oraz model generatywny, który tworzy odpowiedzi na podstawie aktualnych danych. W tym artykule przyjrzymy się, jak DeepEval pomaga w systematycznej ocenie skuteczności zarówno wyszukiwania, jak i generowania, zwiększając wiarygodność informacji tworzonych przez AI.</h4>						</div>
				</div>
				<div class="elementor-element elementor-element-6e6ea96 elementor-widget elementor-widget-text-editor" data-id="6e6ea96" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Chociaż wirtualni asystenci wykorzystujący RAG znacząco poprawiają trafność odpowiedzi, ich skuteczna ocena nadal stanowi wyzwanie. Ponieważ modele te opierają się zarówno na mechanizmie wyszukiwania, jak i generowaniu tekstu, niedokładne lub nieefektywne pobieranie dokumentów może prowadzić do błędnych lub mylących odpowiedzi, nawet jeśli sam model językowy (LLM) jest zaawansowany technologicznie.</p><p>W tym artykule przedstawimy ten proces na przykładzie naszego autorskiego asystenta AI, zaprojektowanego do udzielania odpowiedzi na złożone pytania dotyczące statystyk gospodarki morskiej. Pokażemy, jak wykorzystanie LLM do inteligentnego wyszukiwania informacji wspiera podejmowanie decyzji opartych na danych.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-d0eedd1 elementor-widget elementor-widget-heading" data-id="d0eedd1" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">SeaStat - nasz asystent AI</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-caacdce elementor-widget elementor-widget-text-editor" data-id="caacdce" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Świetnym przykładem, który możemy wykorzystać do omówienia tego zagadnienia, jest asystent AI <strong>SeaStat</strong>, opracowany przez nas w ramach projektu <strong>Incone60 Green</strong> (<a href="https://www.incone60.eu/">https://www.incone60.eu/</a>). Celem tego projektu jest zwiększenie konkurencyjności oraz wspieranie zrównoważonego rozwoju małych portów morskich w regionie południowego Bałtyku.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-42941ab elementor-widget elementor-widget-image" data-id="42941ab" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="517" height="587" src="https://inero-software.com/wp-content/uploads/2025/02/SeaStat.png" class="attachment-large size-large wp-image-6904" alt="" srcset="https://inero-software.com/wp-content/uploads/2025/02/SeaStat.png 517w, https://inero-software.com/wp-content/uploads/2025/02/SeaStat-264x300.png 264w" sizes="(max-width: 517px) 100vw, 517px" data-attachment-id="6904" data-permalink="https://inero-software.com/assessing-retrieval-augmented-generation-rag-large-language-models-llms-with-deepeval-for-complex-tabular-data/seastat/" data-orig-file="https://inero-software.com/wp-content/uploads/2025/02/SeaStat.png" data-orig-size="517,587" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="SeaStat" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2025/02/SeaStat-264x300.png" data-large-file="https://inero-software.com/wp-content/uploads/2025/02/SeaStat.png" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-bf0da8d elementor-widget elementor-widget-text-editor" data-id="bf0da8d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>W ramach projektu <strong>Incone60 Green</strong> opracowaliśmy asystenta AI, który odpowiada na pytania dotyczące danych gospodarki morskiej, zapewniając natychmiastowy dostęp do uporządkowanych informacji. Asystent wykorzystuje podejście <strong>Retrieval-Augmented Generation (RAG)</strong>, dzięki czemu jego odpowiedzi opierają się na ustrukturyzowanej bazie danych obejmującej kluczowe aspekty, takie jak porty morskie, transport morski, stocznie, ruch pasażerski, handel oraz przemysł rybny.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-85e0e3e elementor-widget elementor-widget-text-editor" data-id="85e0e3e" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Nasz asystent AI działa w ramach <strong>potoku RAG</strong>, który integruje trzy kluczowe elementy:</p><ul><li><strong>Ustrukturyzowaną bazę danych gospodarki morskiej</strong>, zawierającą globalne i polskie statystyki morskie z lat 2017–2020. Dane pochodzą z publikacji <strong>Uniwersytetu Morskiego w Gdyni</strong>, które agregują informacje z instytutów rządowych, uczelni oraz przedsiębiorstw portowych. Baza składa się z <strong>50 tabel</strong> obejmujących kluczowe aspekty transportu morskiego i będzie rozszerzana o kolejne lata.</li><li><strong>Dynamiczne generowanie zapytań SQL</strong>, umożliwiające precyzyjne pobieranie potrzebnych informacji z bazy danych.</li><li><strong>Generatywny model LLM</strong>, który formułuje odpowiedzi na podstawie uzyskanych danych.</li></ul><p>Budowa takiego asystenta wymaga kilku istotnych decyzji i optymalizacji, w tym:</p><ul><li><strong>Dobór odpowiedniego modelu LLM</strong> oraz dostosowanie jego parametrów (np. temperatury).</li><li><strong>Projektowanie skutecznej struktury promptów</strong>, zapewniającej jasne i trafne odpowiedzi.</li><li><strong>Zoptymalizowanie mechanizmu wyboru tabel</strong>, tak aby asystent konsekwentnie korzystał z najbardziej adekwatnych danych.</li></ul><p>Na tym etapie <strong>automatyczne testowanie</strong> odgrywa kluczową rolę – pozwala mierzyć wydajność systemu, wykrywać jego słabe punkty oraz zapewniać jego stały rozwój.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-648b32b elementor-widget elementor-widget-heading" data-id="648b32b" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default"><p><strong>LLM-as-a-Judge: Automatyzacja ewaluacji modeli RAG</strong><span style="color: var( --e-global-color-primary );font-family: var( --e-global-typography-primary-font-family ), Sans-serif;font-size: 1.7em;font-weight: var( --e-global-typography-primary-font-weight );text-align: var(--text-align)"></span></p></h3>		</div>
				</div>
				<div class="elementor-element elementor-element-09073bd elementor-widget elementor-widget-text-editor" data-id="09073bd" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Ocena systemów generujących <strong>niedeterministyczne, otwarte odpowiedzi tekstowe</strong> stanowi wyzwanie, ponieważ często nie istnieje jedna „poprawna” odpowiedź. Choć <strong>ocena przeprowadzana przez ludzi</strong> jest precyzyjna, bywa kosztowna i czasochłonna.</p><p><strong>LLM-as-a-Judge</strong> to metoda, która naśladuje ocenę ludzką, oceniając wyniki systemu na podstawie <strong>dostosowanych kryteriów</strong>, dopasowanych do konkretnej aplikacji. Jednym z narzędzi wspierających ten proces jest <strong>DeepEval</strong> – framework testowy, który oferuje zestaw metryk zarówno dla zadań wyszukiwania, jak i generowania tekstu, a także umożliwia tworzenie własnych kryteriów oceny.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-b4e1ef9 elementor-widget elementor-widget-text-editor" data-id="b4e1ef9" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong>Kluczowe metryki oceny:</strong></p><ul><li><strong>G-Eval</strong> – uniwersalna metryka oceniająca odpowiedzi LLM na podstawie niestandardowych, zdefiniowanych kryteriów.</li><li><strong>Answer Relevancy</strong> – mierzy, jak dobrze odpowiedź modelu odnosi się do zapytania użytkownika.</li><li><strong>Faithfulness</strong> – ocenia, na ile odpowiedź jest zgodna z dostarczonym kontekstem, co pomaga ograniczyć halucynacje w systemach RAG.</li><li><strong>ContextualRecallMetric, ContextualPrecisionMetric, ContextualRelevancyMetric</strong> – metryki szczególnie przydatne w systemach RAG, oceniające, czy mechanizmy wyszukiwania zwracają <strong>wszystkie istotne informacje</strong>, jednocześnie eliminując treści nieistotne.</li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-1c250db elementor-widget elementor-widget-heading" data-id="1c250db" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Testowanie modelu RAG za pomocą DeepEval – krok po kroku</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-e3db2c9 elementor-widget elementor-widget-text-editor" data-id="e3db2c9" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Aby zapewnić <strong>niezawodność i dokładność</strong> naszego modelu <strong>Retrieval-Augmented Generation (RAG)</strong>, stosujemy <strong>ustrukturyzowane podejście do ewaluacji</strong>. Proces ten obejmuje <strong>tworzenie zbioru danych, generowanie odpowiedzi oraz ocenę modelu za pomocą DeepEval</strong>, co pozwala na systematyczną analizę skuteczności zarówno komponentu wyszukiwania, jak i generowania.</p><p>Przyjrzyjmy się każdemu z tych kroków. </p>						</div>
				</div>
				<div class="elementor-element elementor-element-019ed5f elementor-widget elementor-widget-heading" data-id="019ed5f" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">1. Tworzenie Zbioru Danych</h4>		</div>
				</div>
				<div class="elementor-element elementor-element-741ed12 elementor-widget elementor-widget-text-editor" data-id="741ed12" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Aby skutecznie ocenić wydajność modelu, tworzymy zestaw testowy składający się z:</p><ul><li><strong>Realistycznych pytań użytkowników</strong> – obejmujących zarówno proste zapytania faktograficzne, jak i bardziej złożone pytania wieloetapowe, wymagające szczegółowych odpowiedzi na podstawie wielu tabel.</li><li><strong>Oczekiwanych odpowiedzi referencyjnych (ground truth)</strong> – pochodzących bezpośrednio z bazy danych, zapewniających wzorzec do oceny poprawności generowanych odpowiedzi.</li></ul>						</div>
				</div>
				<div class="elementor-element elementor-element-f4f0b50 elementor-widget elementor-widget-heading" data-id="f4f0b50" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">2. Generowanie Odpowiedzi Modelu</h4>		</div>
				</div>
				<div class="elementor-element elementor-element-587939b elementor-widget elementor-widget-text-editor" data-id="587939b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Dla każdego zapytania testowego asystent generuje odpowiedź na podstawie odpowiednich danych pobranych z bazy danych.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-0deb934 elementor-widget elementor-widget-heading" data-id="0deb934" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">3. Ewaluacja za pomocą DeepEval</h4>		</div>
				</div>
				<div class="elementor-element elementor-element-7c0b685 elementor-widget elementor-widget-text-editor" data-id="7c0b685" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Szczególnie zależy nam na poprawności faktograficznej naszego asystenta, dlatego do oceny tego aspektu wykorzystujemy metrykę G-Eval.</p><p>Musimy zdefiniować G-Eval, opisując kryteria testowe, np.:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-3d98b09 elementor-widget elementor-widget-text-editor" data-id="3d98b09" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span data-contrast="auto">correctness_metric = GEval(    </span> <br /><span data-contrast="auto">    name="Correctness",     </span> <br /><span data-contrast="auto">    evaluation_steps=[  </span> <br /><span data-contrast="auto">        "Assess whether the actual output is accurate in terms of facts compared to the expected output.",      </span> <br /><span data-contrast="auto">        "Penalize missing information."  </span> <br /><span data-contrast="auto">    ],      </span> <br /><span data-contrast="auto">    evaluation_params=[  </span> <br /><span data-contrast="auto">       LLMTestCaseParams.INPUT,   </span> <br /><span data-contrast="auto">       LLMTestCaseParams.ACTUAL_OUTPUT,   </span> <br /><span data-contrast="auto">       LLMTestCaseParams.EXPECTED_OUTPUT  </span> <br /><span data-contrast="auto">    ],    </span> <br /><span data-contrast="auto">)</span> </pre>						</div>
				</div>
				<div class="elementor-element elementor-element-63d0764 elementor-widget elementor-widget-text-editor" data-id="63d0764" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Dodatkowo korzystamy z kilku wbudowanych metryk:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-4344a23 elementor-widget elementor-widget-text-editor" data-id="4344a23" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun SCXW8241585 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW8241585 BCX0">contextual_precision</span><span class="NormalTextRun SCXW8241585 BCX0"> = </span><span class="NormalTextRun SCXW8241585 BCX0">ContextualPrecisionMetric</span><span class="NormalTextRun SCXW8241585 BCX0">()</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW8241585 BCX0"><span class="SCXW8241585 BCX0"> </span><br class="SCXW8241585 BCX0" /></span><span class="TextRun SCXW8241585 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW8241585 BCX0">contextual_recall = </span><span class="NormalTextRun SCXW8241585 BCX0">ContextualRecallMetric</span><span class="NormalTextRun SCXW8241585 BCX0">()</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW8241585 BCX0"><span class="SCXW8241585 BCX0"> </span><br class="SCXW8241585 BCX0" /></span><span class="TextRun SCXW8241585 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW8241585 BCX0">contextual_relevancy = </span><span class="NormalTextRun SCXW8241585 BCX0">ContextualRelevancyMetric</span><span class="NormalTextRun SCXW8241585 BCX0">()</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW8241585 BCX0"><span class="SCXW8241585 BCX0"> </span><br class="SCXW8241585 BCX0" /></span><span class="TextRun SCXW8241585 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW8241585 BCX0">answer_relevancy = </span><span class="NormalTextRun SCXW8241585 BCX0">AnswerRelevancyMetric</span><span class="NormalTextRun SCXW8241585 BCX0">()</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW8241585 BCX0"><span class="SCXW8241585 BCX0"> </span><br class="SCXW8241585 BCX0" /></span><span class="TextRun SCXW8241585 BCX0" lang="EN-GB" xml:lang="EN-GB" data-contrast="auto"><span class="NormalTextRun SCXW8241585 BCX0">faithfulness = </span><span class="NormalTextRun SCXW8241585 BCX0">FaithfulnessMetric</span><span class="NormalTextRun SCXW8241585 BCX0">()</span></span><span class="EOP SCXW8241585 BCX0" data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-5d2ddcf elementor-widget elementor-widget-text-editor" data-id="5d2ddcf" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Następnie definiujemy przypadki testowe:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-f16e61d elementor-widget elementor-widget-text-editor" data-id="f16e61d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span data-contrast="auto">test_case = LLMTestCase(  </span> <br /><span data-contrast="auto">    input=#user prompt,  </span> <br /><span data-contrast="auto">    actual_output=#model output here,  </span> <br /><span data-contrast="auto">    expected_output=#the ground truth response </span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}"> </span><br /><br /><span data-contrast="auto">    retrieval_context=#data extracted by retriever, in our case it is data extracted from the database</span> <br /><span data-contrast="auto">)</span> <br /><span data-ccp-props="{}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-466c61d elementor-widget elementor-widget-text-editor" data-id="466c61d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Oto jeden z przypadków testowych, których użyliśmy do oceny naszego asystenta <strong>SeaStat</strong>:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-53c56bc elementor-widget elementor-widget-text-editor" data-id="53c56bc" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span data-contrast="auto">test_case = LLMTestCase(  </span> <br /><span data-contrast="auto">    input='Compare cargo traffic in Suez Canal and Panama Canal in 2019',  </span> <br /><span data-contrast="auto">    actual_output= 'In 2019, the cargo traffic data for the Suez Canal and Panama Canal was as follows: Suez Canal - 1031 million tons; Panama Canal - 243059 thousand tons. The Suez Canal had significantly higher cargo traffic compared to the Panama Canal in 2019.' </span> <br /><span data-contrast="auto">    expected_output=' In 2019, the Suez Canal handled 1,031 million tons of cargo, whereas the Panama Canal transported only 243 million tons. This indicates that the Suez Canal carried a substantially higher volume of cargo than the Panama Canal that year.' </span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}"> </span><br /><br /><span data-contrast="auto">    retrieval_context=[</span><span data-ccp-props="{}"> </span><br /><br /><span data-contrast="auto">{'table': 'Suez_Canal_Cargo_Traffic', 'year': 2019, 'cargo_volume_million_tons': 1031},</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span><br /><br /><span data-contrast="auto">{'table': 'Panama_Canal_Cargo_Traffic', 'year': 2019, 'direction': 'Atlantic – Pacific', 'cargo_volume_thousand_tons': 156899}, {'table': 'Panama_Canal_Cargo_Traffic', 'year': 2019, 'direction': 'Pacific – Atlantic', 'cargo_volume_thousand_tons': 86160}</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span><br /><br /><span data-contrast="auto">]</span> <br /><span data-contrast="auto">)</span> </pre>						</div>
				</div>
				<div class="elementor-element elementor-element-2c1ba07 elementor-widget elementor-widget-text-editor" data-id="2c1ba07" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>I przeprowadzamy ewaluację:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-fb89c70 elementor-widget elementor-widget-text-editor" data-id="fb89c70" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span data-contrast="auto">assert_test(test_case, [correctness_metric, answer_relevancy, contextual_precision, contextual_recall, contextual_relevancy, faithfulness])</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;201341983&quot;:0,&quot;335551550&quot;:1,&quot;335551620&quot;:1,&quot;335559685&quot;:0,&quot;335559731&quot;:0,&quot;335559737&quot;:0,&quot;335559738&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-9893049 elementor-widget elementor-widget-heading" data-id="9893049" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">4. Testowanie wyników </h4>		</div>
				</div>
				<div class="elementor-element elementor-element-283d669 elementor-widget elementor-widget-text-editor" data-id="283d669" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>DeepEval przypisuje każdej metryce wynik w skali od <strong>0 do 1</strong>, wraz z opisowym wyjaśnieniem oceny. Poniżej przedstawiamy wyniki jednego z testów oceniających odpowiedź asystenta <strong>SeaStat</strong> na zapytanie:</p><p><strong>„Porównaj ruch towarowy w Kanale Sueskim i Kanale Panamskim w 2019 roku.”</strong></p><h3><strong>Interpretacja wyników metryk:</strong></h3><ul><li><strong>Contextual Recall (1.0)</strong> – Mechanizm wyszukiwania skutecznie pobrał wszystkie kluczowe informacje, zapewniając prawie pełne pokrycie oczekiwanej odpowiedzi.</li><li><strong>Contextual Relevancy (0.95) i Contextual Precision (1.0)</strong> – Pobrany kontekst był bardzo trafny, co oznacza, że retriever precyzyjnie dobrał informacje istotne dla zapytania.</li><li><strong>Faithfulness (1.0)</strong> – Odpowiedź modelu była w pełni zgodna z dostarczonymi danymi i nie zawierała żadnych halucynacji.</li><li><strong>Answer Relevancy (1.0)</strong> – Model dokładnie odpowiedział na pytanie użytkownika, dostarczając kompletną i adekwatną odpowiedź.</li><li><strong>Correctness (0.78)</strong> – Wynik był nieco niższy z powodu drobnych rozbieżności liczbowych wynikających z zaokrągleń.</li></ul><p>Systematyczna analiza przypadków testowych za pomocą <strong>DeepEval</strong> dostarcza cennych informacji na temat mocnych stron naszego modelu RAG oraz obszarów wymagających usprawnień. Przyszłe optymalizacje mogą obejmować <strong>ulepszenie strategii wyszukiwania, dopracowanie promptów lub dostosowanie parametrów modelu LLM</strong> w celu poprawy precyzji faktograficznej.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-0445df6 elementor-widget elementor-widget-text-editor" data-id="0445df6" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<table style="font-weight: 400;" data-tablestyle="MsoTableGrid" data-tablelook="1696" aria-rowcount="7"><tbody><tr aria-rowindex="1"><td data-celllook="0"><p><b><span data-contrast="auto">Test case</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><b><span data-contrast="auto">Metric</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><b><span data-contrast="auto">Score</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><b><span data-contrast="auto">Status</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><b><span data-contrast="auto">Overall Success Rate</span></b><span data-ccp-props="{}"> </span></p></td></tr><tr aria-rowindex="2"><td colspan="1" rowspan="6" data-celllook="0"><p><span data-contrast="auto">test_case_0</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p><p><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">Correctness (GEval)</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">0.78 (threshold=0.5, evaluation model=gpt-4o, reason=The actual output closely matches the expected output in terms of cargo volumes and comparative conclusion, but the numbers are expressed in different units (thousand tons vs million tons) and slightly differ, which may indicate rounding or conversion discrepancies., error=None)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">PASSED</span><span data-ccp-props="{}"> </span></p></td><td colspan="1" rowspan="6" data-celllook="0"><p><span data-contrast="auto">100%</span><span data-ccp-props="{}"> </span></p></td></tr><tr aria-rowindex="3"><td data-celllook="0"><p><span data-contrast="auto">Answer Relevancy</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">1.0 (threshold=0.5, evaluation model=gpt-4o, reason=The score is 1.00 because the response thoroughly addressed the comparison of cargo traffic in the Suez Canal and the Panama Canal in 2019 with no irrelevant details included. It&#8217;s precise and to the point, showcasing a deep understanding of the topic., error=None)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">PASSED</span><span data-ccp-props="{}"> </span></p></td></tr><tr aria-rowindex="4"><td data-celllook="0"><p><span data-contrast="auto">Contextual Precision</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">1.0 (threshold=0.5, evaluation model=gpt-4o, reason=The score is 1.00 because the relevant nodes, offering essential data for comparing cargo traffic in the Suez and Panama Canals in 2019, are perfectly ranked at the top. These nodes effectively deliver a comprehensive breakdown of cargo volumes through both canals during that year, ensuring accurate comparisons can be made efficiently., error=None)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p><p><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">PASSED</span><span data-ccp-props="{}"> </span></p></td></tr><tr aria-rowindex="5"><td data-celllook="0"><p><span data-contrast="auto">Contextual Recall</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">1.0 (threshold=0.5, evaluation model=gpt-4o, reason=The score is 1.00 because every sentence in the expected output aligns perfectly with the data from the nodes in the retrieval context, effectively illustrating the significant difference in cargo volumes handled by both canals. Well done on maintaining precise and accurate attention to detail!, error=None)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p><p><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">PASSED</span><span data-ccp-props="{}"> </span></p></td></tr><tr aria-rowindex="6"><td data-celllook="0"><p><span data-contrast="auto">Contextual Relevancy</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">0.95 (threshold=0.5, evaluation model=gpt-4o, reason=The score is 0.95 because although the context is rich with detailed data on Suez Canal cargo traffic, it lacks specific information on the Panama Canal&#8217;s cargo traffic, necessitating additional data for a complete comparison., error=None)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p><p><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">PASSED</span><span data-ccp-props="{}"> </span></p></td></tr><tr aria-rowindex="7"><td data-celllook="0"><p><span data-contrast="auto">Faithfulness</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">1.0 (threshold=0.5, evaluation model=gpt-4o, reason=Awesome job! The score is 1.00 because there are no contradictions present, showcasing perfect alignment and faithfulness of the actual output to the retrieval context. Keep up the excellent work!, error=None)</span><span data-ccp-props="{&quot;134233117&quot;:false,&quot;134233118&quot;:false,&quot;335551550&quot;:0,&quot;335551620&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:240}"> </span></p><p><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">PASSED</span><span data-ccp-props="{}"> </span></p></td></tr></tbody></table>						</div>
				</div>
				<div class="elementor-element elementor-element-abdf550 elementor-widget elementor-widget-text-editor" data-id="abdf550" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Ocena modeli Retrieval-Augmented Generation (RAG) wymaga ustrukturyzowanego podejścia, które zapewnia zarówno precyzję wyszukiwania, jak i wiarygodność odpowiedzi. LLM-as-a-Judge stanowi efektywną alternatywę dla oceny ludzkiej, umożliwiając systematyczną analizę wyników na podstawie wcześniej zdefiniowanych kryteriów, co przekłada się na skalowalność i redukcję kosztów walidacji.</p><p>Korzystając z DeepEval, przetestowaliśmy naszego asystenta AI SeaStat pod kątem kluczowych metryk, takich jak Correctness (G-Eval), Answer Relevancy, Contextual Precision, Contextual Recall, Contextual Relevancy oraz Faithfulness. Wyniki testów wykazały drobne rozbieżności w wartościach liczbowych, brak niektórych kontekstowych informacji oraz niewielkie niedokładności w precyzji wyszukiwania – informacje te są kluczowe dla dalszej optymalizacji modelu.</p><p>Te obserwacje podkreślają, że nawet wysokowydajne modele RAG wymagają rygorystycznej ewaluacji, aby zapewnić poprawność faktograficzną i uniknąć potencjalnie wprowadzających w błąd odpowiedzi. Automatyzacja tego procesu umożliwia ciągłe doskonalenie modeli, zapewniając, że asystenci AI dostarczają rzetelne i kontekstowo trafne informacje na dużą skalę.</p><p>Asystenci AI to technologia, która wkrótce stanie się nieodzownym narzędziem dla pracowników na wszystkich szczeblach organizacji – od kadry zarządzającej po specjalistów. Ich dynamiczny rozwój pozwala na błyskawiczne dostosowanie się do potrzeb biznesowych oraz zmieniających się oczekiwań użytkowników.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-308ac2d elementor-cta--skin-cover elementor-animated-content elementor-bg-transform elementor-bg-transform-zoom-in elementor-widget elementor-widget-call-to-action" data-id="308ac2d" data-element_type="widget" data-widget_type="call-to-action.default">
				<div class="elementor-widget-container">
					<div class="elementor-cta">
					<div class="elementor-cta__bg-wrapper">
				<div class="elementor-cta__bg elementor-bg" style="background-image: url(https://inero-software.com/wp-content/uploads/2024/12/3-1030x1030.png);" role="img" aria-label="3"></div>
				<div class="elementor-cta__bg-overlay"></div>
			</div>
							<div class="elementor-cta__content">
				
									<h2 class="elementor-cta__title elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Stworzymy Twojego Asystenta AI					</h2>
				
									<div class="elementor-cta__description elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
						Jeśli szukasz firmy, która pomoże Ci wdrożyć rozwiązanie oparte na sztucznej inteligencji, skontaktuj się z nami. Chętnie omówimy Twój pomysł.					</div>
				
									<div class="elementor-cta__button-wrapper elementor-cta__content-item elementor-content-item elementor-animated-item--grow">
					<a class="elementor-cta__button elementor-button elementor-size-" href="https://inero-software.com/pl/kontakt/">
						Napisz do nas					</a>
					</div>
							</div>
						</div>
				</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-961021e e-con-full e-flex e-con e-child" data-id="961021e" data-element_type="container">
				</div>
					</div>
				</div>
				</div>
		<p>Artykuł <a href="https://inero-software.com/pl/ocena-duzych-modeli-jezykowych-llm-z-wykorzystaniem-retrieval-augmented-generation-rag-i-deepeval-dla-zlozonych-danych-tabelarycznych/">Ocena dużych modeli językowych (LLM) z wykorzystaniem Retrieval-Augmented Generation (RAG) i DeepEval dla złożonych danych tabelarycznych</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6913</post-id>	</item>
		<item>
		<title>Sieci neuronowe w przeglądarce: Przewodnik na przykładzie customowej sieci YOLO do wykrywania twarzy</title>
		<link>https://inero-software.com/pl/sieci-neuronowe-w-przegladarce-przewodnik-na-przykladzie-customowej-sieci-yolo-do-wykrywania-twarzy/</link>
		
		<dc:creator><![CDATA[Martyna Mul]]></dc:creator>
		<pubDate>Thu, 10 Oct 2024 11:20:57 +0000</pubDate>
				<category><![CDATA[Firma]]></category>
		<category><![CDATA[ML]]></category>
		<category><![CDATA[NLP]]></category>
		<category><![CDATA[oprogramowanie]]></category>
		<category><![CDATA[optymalizacja procesów biznesowych]]></category>
		<category><![CDATA[repozytorium]]></category>
		<category><![CDATA[sieci neuronowe]]></category>
		<category><![CDATA[yolo]]></category>
		<category><![CDATA[zarządzanie danymi]]></category>
		<guid isPermaLink="false">https://inero-software.com/?p=6230</guid>

					<description><![CDATA[<p>Wraz z rosnącym zapotrzebowaniem na aplikacje działające w czasie rzeczywistym, uruchamianie modeli głębokiego uczenia w przeglądarce staje się coraz bardziej dostępne i wydajne. W tym artykule pokażemy, jak zaimplementować wykrywanie obiektów bezpośrednio w przeglądarce, wykorzystując YOLO (You Only Look Once) oraz TensorFlow.js. Skoncentrujemy się na zastosowaniu wytrenowanego przez nas niestandardowego&#8230;</p>
<p>Artykuł <a href="https://inero-software.com/pl/sieci-neuronowe-w-przegladarce-przewodnik-na-przykladzie-customowej-sieci-yolo-do-wykrywania-twarzy/">Sieci neuronowe w przeglądarce: Przewodnik na przykładzie customowej sieci YOLO do wykrywania twarzy</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6230" class="elementor elementor-6230" data-elementor-post-type="post">
				<div class="elementor-element elementor-element-d225397 e-flex e-con-boxed e-con e-parent" data-id="d225397" data-element_type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-4df78db elementor-widget elementor-widget-html" data-id="4df78db" data-element_type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-0827b19 e-flex e-con-boxed e-con e-parent" data-id="0827b19" data-element_type="container">
					<div class="e-con-inner">
		<div class="elementor-element elementor-element-afa200d e-con-full e-flex e-con e-child" data-id="afa200d" data-element_type="container">
				</div>
		<div class="elementor-element elementor-element-3302212 e-con-full e-flex e-con e-child" data-id="3302212" data-element_type="container">
				<div class="elementor-element elementor-element-640ca1b elementor-widget elementor-widget-text-editor" data-id="640ca1b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong>Wraz z rosnącym zapotrzebowaniem na aplikacje działające w czasie rzeczywistym, uruchamianie modeli głębokiego uczenia w przeglądarce staje się coraz bardziej dostępne i wydajne. W tym artykule pokażemy, jak zaimplementować wykrywanie obiektów bezpośrednio w przeglądarce, wykorzystując YOLO (You Only Look Once) oraz TensorFlow.js. Skoncentrujemy się na zastosowaniu wytrenowanego przez nas niestandardowego modelu YOLOv8 do wykrywania ludzkich twarzy. Na końcu tego przewodnika dowiesz się, jak skonfigurować i uruchomić model YOLO do wykrywania twarzy za pomocą TensorFlow.js, przetworzyć wyniki i zoptymalizować wydajność – wszystko to bez potrzeby korzystania z serwera czy przetwarzania po stronie backendu.</strong></p>						</div>
				</div>
				<div class="elementor-element elementor-element-aed25a2 elementor-widget elementor-widget-heading" data-id="aed25a2" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Dlaczego warto korzystać z sieci neuronowych w przeglądarce?</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-344fad5 elementor-widget elementor-widget-text-editor" data-id="344fad5" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Uruchamianie sieci neuronowych w przeglądarce ma wiele zalet. Najważniejsze z nich to:</p><ol><li><strong>Niskie opóźnienia</strong>: Wszystko odbywa się po stronie klienta, co eliminuje opóźnienia wynikające z przesyłania danych na serwer i oczekiwania na odpowiedź.</li><li><strong>Większa prywatność</strong>: Wrażliwe dane pozostają na urządzeniu użytkownika, co minimalizuje ryzyko ich naruszenia lub ujawnienia.</li><li><strong> Możliwość użycia offline</strong>: Użytkownicy mogą korzystać z funkcji uczenia maszynowego nawet bez stałego połączenia z internetem.</li><li><strong>Kompatybilność między platformami</strong>: Aplikacja działa na każdym urządzeniu z przeglądarką – niezależnie czy to komputer, tablet, czy smartfon.</li></ol>						</div>
				</div>
				<div class="elementor-element elementor-element-9e13d20 elementor-widget elementor-widget-heading" data-id="9e13d20" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Wybór i przygotowanie sieci neuronowej</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-769829b elementor-widget elementor-widget-text-editor" data-id="769829b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Przy wyborze sieci neuronowej do implementacji w przeglądarce warto uwzględnić takie czynniki jak rozmiar modelu, szybkość działania, zużycie pamięci oraz kompatybilność z technologiami przeglądarkowymi, np. WebGL. Dla optymalnej wydajności na urządzeniach o ograniczonych zasobach zaleca się stosowanie modeli o rozmiarze poniżej 30 MB. Do odpowiednich modeli należą MobileNetV2, SqueezeNet, EfficientNet oraz wybrane warianty YOLO. My zdecydowaliśmy się na wytrenowany przez nas model YOLOv8 do wykrywania ludzkich twarzy na obrazach.</p><p>Jeśli Twój model przekracza zalecany rozmiar, warto rozważyć techniki optymalizacji, takie jak kwantyzacja (quantization) i przycinanie (pruning). Kwantyzacja zmniejsza precyzję wag modelu, zazwyczaj konwertując wartości zmiennoprzecinkowe 32-bitowe na liczby zmiennoprzecinkowe 16-bitowe lub całkowite 8-bitowe. Przycinanie usuwa zbędne połączenia w sieci neuronowej. Obie metody zmniejszają rozmiar modelu i redukują złożoność obliczeniową, co poprawia szybkość inferencji – szczególnie na urządzeniach takich jak smartfony – choć mogą one nieznacznie wpłynąć na dokładność.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-76a71b3 elementor-widget elementor-widget-heading" data-id="76a71b3" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Optymalizacja YOLOv8 do wykrywania twarzy: wyniki naszego niestandardowego modelu
</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-9111e72 elementor-widget elementor-widget-text-editor" data-id="9111e72" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Nasz model YOLOv8 został wytrenowany na niestandardowym zbiorze danych w celu automatycznego sprawdzania, czy załącznik zawiera wyraźne zdjęcie ludzkiej twarzy, skierowanej na wprost i niezasłoniętej, np. przez maskę. Taka funkcjonalność jest szczególnie przydatna w systemach obiegu dokumentów, gdzie weryfikacja tożsamości wymaga widoczności twarzy. Zbiór danych składał się z 1500 obrazów, z czego 1200 wykorzystano do treningu, a 300 do walidacji. Dataset zawierał zdjęcia twarzy fotografowanych z różnych kątów, twarzy częściowo zasłoniętych oraz zdjęcia innych obiektów. Dzięki treningowi model nauczył się skutecznie wykrywać twarze spełniające wymagane kryteria. Poniższe przykłady ilustrują, jak model działa w praktyce. Dwie twarze po lewej stronie zostały poprawnie wykryte, podczas gdy dwie po prawej nie zostały rozpoznane, ponieważ były częściowo zasłonięte:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-fd798a3 elementor-widget elementor-widget-image" data-id="fd798a3" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="934" height="258" src="https://inero-software.com/wp-content/uploads/2024/10/9102024gr1.jpg" class="attachment-large size-large wp-image-6206" alt="" srcset="https://inero-software.com/wp-content/uploads/2024/10/9102024gr1.jpg 934w, https://inero-software.com/wp-content/uploads/2024/10/9102024gr1-300x83.jpg 300w, https://inero-software.com/wp-content/uploads/2024/10/9102024gr1-768x212.jpg 768w" sizes="(max-width: 934px) 100vw, 934px" data-attachment-id="6206" data-permalink="https://inero-software.com/running-ai-in-client-side-real-time-face-detection-in-the-browser-using-yolo-and-tensorflow-js-use-case-study/9102024gr1/" data-orig-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr1.jpg" data-orig-size="934,258" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="9102024gr1" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr1-300x83.jpg" data-large-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr1.jpg" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-34bbb24 elementor-widget elementor-widget-heading" data-id="34bbb24" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<p class="elementor-heading-title elementor-size-default">(source of images: https://www.kaggle.com/datasets/ashwingupta3012/human-faces, https://www.kaggle.com/datasets/andrewmvd/face-mask-detection) </p>		</div>
				</div>
				<div class="elementor-element elementor-element-12bfcb4 elementor-widget elementor-widget-text-editor" data-id="12bfcb4" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Wyniki wnioskowania na czterech przykładach – dwie twarze po lewej stronie zostały poprawnie wykryte, natomiast dwie po prawej nie, ponieważ były częściowo zasłonięte.</p><p>Jako bazowy model dla naszego projektu wybraliśmy YOLOv8s (small), co dało model o rozmiarze 44 MB, osiągający 99,9% precyzji (ang. precision) oraz 99,1% czułości (ang. recall) na naszym niestandardowym zbiorze danych walidacyjnych. W celu optymalizacji przetestowaliśmy również mniejszy model bazowy, YOLOv8n (nano), oraz przeanalizowaliśmy efekty kwantyzacji. Trening z modelem YOLOv8n dał model o rozmiarze zaledwie 12 MB, przy niemal identycznych wynikach – 99,7% precyzji i 99,1% czułości. Następnie przeprowadziliśmy kwantyzację obu modeli, a ich rozmiary oraz dokładność po kwantyzacji zostały zaprezentowane w poniższej tabeli:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-859298c elementor-widget elementor-widget-text-editor" data-id="859298c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<table class=" aligncenter" style="font-weight: 400;" data-tablestyle="MsoNormalTable" data-tablelook="1568" aria-rowcount="4"><tbody><tr aria-rowindex="1"><td colspan="1" rowspan="2" data-celllook="69905"><p><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td colspan="3" data-celllook="69905"><p><strong>Model bazowy</strong></p><p> </p></td><td colspan="3" data-celllook="69905"><p><strong>Model kwantyzowany 16-bitowy</strong></p><p> </p></td></tr><tr aria-rowindex="2"><td data-celllook="69905"><p><b><span data-contrast="auto">Rozmiar</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><b>Precyzja</b></p></td><td data-celllook="69905"><p><b><span data-contrast="auto">Recall</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><b><span data-contrast="auto">Rozmiar</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><b>Precyzja</b></p></td><td data-celllook="69905"><p><b><span data-contrast="auto">Recall</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td></tr><tr aria-rowindex="3"><td data-celllook="69905"><p><b><span data-contrast="auto">YOLOv8 small</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><b><span data-contrast="auto">44 MB</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">0.999</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">0.991</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">22 MB</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">0.997</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">0.991</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td></tr><tr aria-rowindex="4"><td data-celllook="69905"><p><b><span data-contrast="auto">YOLOv8 nano</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">12 MB</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">0.997</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">0.991</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><b><span data-contrast="auto">6 MB</span></b><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">0.989</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td><td data-celllook="69905"><p><span data-contrast="auto">0.991</span><span data-ccp-props="{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559740&quot;:360}"> </span></p></td></tr></tbody></table>						</div>
				</div>
				<div class="elementor-element elementor-element-a7be2ba elementor-widget elementor-widget-text-editor" data-id="a7be2ba" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p><strong>Uwaga: </strong>Czułość mierzy, ile rzeczywistych pozytywnych próbek zostało poprawnie zidentyfikowanych (tutaj: ile twarzy zostało poprawnie wykrytych), natomiast precyzja wskazuje, ile próbek zidentyfikowanych przez model jako pozytywne było faktycznie pozytywnych (tutaj: ile obiektów wykrytych przez model to faktycznie ludzkie twarze). W idealnym przypadku oba wskaźniki wynoszą 1.</p><p>W naszym przykładzie, zastosowanie mniejszego modelu bazowego wraz z kwantyzacją zmniejszyło dokładność o mniej niż 1%, jednocześnie redukując rozmiar modelu z 44 MB do zaledwie 6 MB.</p><p>Poniżej przedstawiamy kilka przykładowych zdjęć, które pokazują, jak działają dwa modele: YOLOv8s i YOLOv8n z kwantyzacją.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-ba300a9 elementor-widget elementor-widget-image" data-id="ba300a9" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="934" height="307" src="https://inero-software.com/wp-content/uploads/2024/10/9102024gr2.jpg" class="attachment-large size-large wp-image-6208" alt="" srcset="https://inero-software.com/wp-content/uploads/2024/10/9102024gr2.jpg 934w, https://inero-software.com/wp-content/uploads/2024/10/9102024gr2-300x99.jpg 300w, https://inero-software.com/wp-content/uploads/2024/10/9102024gr2-768x252.jpg 768w, https://inero-software.com/wp-content/uploads/2024/10/9102024gr2-913x300.jpg 913w" sizes="(max-width: 934px) 100vw, 934px" data-attachment-id="6208" data-permalink="https://inero-software.com/running-ai-in-client-side-real-time-face-detection-in-the-browser-using-yolo-and-tensorflow-js-use-case-study/9102024gr2/" data-orig-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr2.jpg" data-orig-size="934,307" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="9102024gr2" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr2-300x99.jpg" data-large-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr2.jpg" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-3d14285 elementor-widget elementor-widget-text-editor" data-id="3d14285" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Wyniki inferencji z modelem YOLOv8s, bez kwantyzacji (o rozmiarze 44 MB):</p><p><span class="TextRun SCXW46079478 BCX0" lang="EN-US" xml:lang="EN-US" data-contrast="auto"><span class="NormalTextRun SCXW46079478 BCX0">(source of images: </span><span class="NormalTextRun SCXW46079478 BCX0">https://www.kaggle.com/datasets/ashwingupta3012/human-faces</span><span class="NormalTextRun SCXW46079478 BCX0">).</span></span></p>						</div>
				</div>
				<div class="elementor-element elementor-element-e4f1955 elementor-widget elementor-widget-image" data-id="e4f1955" data-element_type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
													<img loading="lazy" decoding="async" width="934" height="313" src="https://inero-software.com/wp-content/uploads/2024/10/9102024gr3.jpg" class="attachment-large size-large wp-image-6207" alt="" srcset="https://inero-software.com/wp-content/uploads/2024/10/9102024gr3.jpg 934w, https://inero-software.com/wp-content/uploads/2024/10/9102024gr3-300x101.jpg 300w, https://inero-software.com/wp-content/uploads/2024/10/9102024gr3-768x257.jpg 768w, https://inero-software.com/wp-content/uploads/2024/10/9102024gr3-895x300.jpg 895w" sizes="(max-width: 934px) 100vw, 934px" data-attachment-id="6207" data-permalink="https://inero-software.com/running-ai-in-client-side-real-time-face-detection-in-the-browser-using-yolo-and-tensorflow-js-use-case-study/9102024gr3/" data-orig-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr3.jpg" data-orig-size="934,313" data-comments-opened="0" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="9102024gr3" data-image-description="" data-image-caption="" data-medium-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr3-300x101.jpg" data-large-file="https://inero-software.com/wp-content/uploads/2024/10/9102024gr3.jpg" role="button" />													</div>
				</div>
				<div class="elementor-element elementor-element-8185505 elementor-widget elementor-widget-text-editor" data-id="8185505" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Wyniki inferencji z modelem YOLOv8n po kwantyzacji 16-bitowej (o rozmiarze 6 MB). Różnica w poziomie ufności jest minimalna, natomiast położenie wykrytych obiektów pozostało takie samo.</p><p>Przetestowaliśmy wydajność dwóch modeli — YOLOv8s (44 MB) i YOLOv8n po kwantyzacji 16-bitowej (6 MB) — na trzech różnych procesorach. Mniejszy model, YOLOv8n, konsekwentnie przewyższał swój większy odpowiednik pod względem czasu wczytania modelu oraz szybkości pojedynczej inferencji. Szczegółowe dane dotyczące wydajności zostały podsumowane w tabeli poniżej.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-bba7a47 elementor-widget elementor-widget-text-editor" data-id="bba7a47" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<table style="font-weight: 400;" data-tablestyle="MsoTableGrid" data-tablelook="1696" aria-rowcount="5"><tbody><tr aria-rowindex="1"><td colspan="1" rowspan="2" data-celllook="0"><p><span data-ccp-props="{}"> </span></p></td><td colspan="3" data-celllook="0"><p><strong>Ładowanie modelu</strong></p></td><td colspan="3" data-celllook="0"><p><strong>Pojedyncze wnioskowanie</strong></p></td></tr><tr aria-rowindex="2"><td data-celllook="0"><p><b><span data-contrast="auto">CPU 1</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><b><span data-contrast="auto">CPU 2</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><b><span data-contrast="auto">CPU 3</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><b><span data-contrast="auto">CPU 1</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><b><span data-contrast="auto">CPU 2</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><b><span data-contrast="auto">CPU 3</span></b><span data-ccp-props="{}"> </span></p></td></tr><tr aria-rowindex="3"><td data-celllook="0"><p><b><span data-contrast="auto">YOLOv8 small</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">1050 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">3700 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">4200 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">21 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">117.5 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">196.5 ms</span><span data-ccp-props="{}"> </span></p></td></tr><tr aria-rowindex="4"><td data-celllook="0"><p><b><span data-contrast="auto">YOLOv8 nano 16-bit</span></b><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">980 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">3200 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">3700 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">16 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">112.5 ms</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">189 ms</span><span data-ccp-props="{}"> </span></p></td></tr><tr aria-rowindex="5"><td data-celllook="0"><p>Przyspieszenie</p></td><td data-celllook="0"><p><span data-contrast="auto">6.7 %</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">13.5 %</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">11.9 %</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">23.8 %</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">4.2 %</span><span data-ccp-props="{}"> </span></p></td><td data-celllook="0"><p><span data-contrast="auto">3.8 %</span><span data-ccp-props="{}"> </span></p></td></tr></tbody></table>						</div>
				</div>
				<div class="elementor-element elementor-element-cc12989 elementor-widget elementor-widget-text-editor" data-id="cc12989" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Oprócz czasu wczytania modelu i inferencji, istotnym czynnikiem do rozważenia jest również czas pobrania modelu, który nie został uwzględniony w tabeli. Czas ten jest bezpośrednio proporcjonalny do rozmiaru modelu i w znacznym stopniu zależy od prędkości połączenia internetowego użytkownika.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-d6f4734 elementor-widget elementor-widget-heading" data-id="d6f4734" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h3 class="elementor-heading-title elementor-size-default">Praktyczna implementacja krok po kroku</h3>		</div>
				</div>
				<div class="elementor-element elementor-element-e00fb33 elementor-widget elementor-widget-text-editor" data-id="e00fb33" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Aby wdrożyć model uczenia maszynowego w przeglądarce, skorzystamy z TensorFlow.js — popularnej biblioteki, która umożliwia uruchamianie wytrenowanych modeli lub całkowite trenowanie nowych modeli bezpośrednio w przeglądarce. W tym przewodniku skupimy się na wdrożeniu wytrenowanego modelu YOLOv8 do wykrywania twarzy. Poniżej znajdziesz instrukcję, jak krok po kroku skonfigurować środowisko i uruchomić model z TensorFlow.js.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-d18e614 elementor-widget elementor-widget-heading" data-id="d18e614" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">1. Instalacja TensorFlow.js </h4>		</div>
				</div>
				<div class="elementor-element elementor-element-cb9241f elementor-widget elementor-widget-text-editor" data-id="cb9241f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Najłatwiejszą metodą instalacji Tensorflow.js jest użycie npm:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-c5deef0 elementor-widget elementor-widget-text-editor" data-id="c5deef0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre>npm install @tensorflow/tfjs </pre>						</div>
				</div>
				<div class="elementor-element elementor-element-cd338d1 elementor-widget elementor-widget-heading" data-id="cd338d1" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">2. Wczytanie modelu</h4>		</div>
				</div>
				<div class="elementor-element elementor-element-d54d572 elementor-widget elementor-widget-text-editor" data-id="d54d572" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Ponieważ używamy biblioteki TensorFlow.js, musisz przekonwertować swój model na format TensorFlow.js (Tf.js). W przypadku modeli YOLO, twórcy Ultralytics udostępnili łatwy sposób na dokonanie tego za pomocą prostego polecenia:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-8acf4f8 elementor-widget elementor-widget-text-editor" data-id="8acf4f8" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW164933469 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW164933469 BCX0">yolo </span></span><span class="TextRun Highlight SCXW164933469 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW164933469 BCX0">export</span></span><span class="TextRun Highlight SCXW164933469 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW164933469 BCX0"> model=path/to/best.pt format=tfjs</span></span><span class="EOP SCXW164933469 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-a9c3625 elementor-widget elementor-widget-text-editor" data-id="a9c3625" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Po konwersji Twój model zostanie zapisany jako pliki binarne wraz z plikiem JSON o nazwie <strong>model.json</strong>. Wówczas możesz wczytać model korzystając z funkcji <strong>tf.loadGraphModel()</strong>. Poniżej znajdziesz przykład implementacji. Zwróć uwagę na dodatkowy etap &#8222;rozgrzewki&#8221; modelu, poprzez wykonanie jednokrotnej inferencji na losowych danych wejściowych. Ten krok poprawi wydajność modelu przy kolejnej inferencji.</p>						</div>
				</div>
				<div class="elementor-element elementor-element-8ae265d elementor-widget elementor-widget-text-editor" data-id="8ae265d" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">export</span></span> <span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">async</span></span> <span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">function</span></span> <span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">loadModel</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">(modelPath) {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">  </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">try</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0"> {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">    </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">// Load the model using a URL</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">    </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">const</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0"> model = </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">await</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0"> tf.loadGraphModel(</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">`${modelPath}/model.json`</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">    </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">// Warm up the model</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">    </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">const</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0"> dummyInput = tf.ones(model.inputs[</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">0</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">].shape);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">    </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">await</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0"> model.execute(dummyInput);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">    </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">return</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0"> model;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">  } </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">catch</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0"> (error) {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">    </span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">throw</span></span> <span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">new</span></span> <span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">Error</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">(</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">`Failed to load model: ${error.message}`</span></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">  }</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW28304209 BCX0"><span class="SCXW28304209 BCX0"> </span><br class="SCXW28304209 BCX0" /></span><span class="TextRun Highlight SCXW28304209 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW28304209 BCX0">}</span></span><span class="EOP SCXW28304209 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-4fb7ba0 elementor-widget elementor-widget-heading" data-id="4fb7ba0" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">3. Przygotowanie danych wejściowych</h4>		</div>
				</div>
				<div class="elementor-element elementor-element-bcd536f elementor-widget elementor-widget-text-editor" data-id="bcd536f" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Przed uruchomieniem modelu musimy odpowiednio przygotować obraz wejściowy. Modele YOLO oczekują obrazów o określonym rozmiarze, takim samym jaki został użyty podczas treningu sieci. Zamiast jednak zmieniać rozmiar obrazu (np. funkcją resize()), zalecamy bardziej zaawansowaną metodę przetwarzania obrazu, która zachowuje proporcje i stosuje wypełnienie (letterbox padding). Takie podejście jest zgodne z przetwarzaniem stosowanym przez Ultralytics podczas trenowania modelu YOLO i zapewni najlepszą skuteczność.</p><p>Poniższa funkcja skaluje obraz tak, aby największy jego wymiar zgadzał się z tym oczekiwanym przez model, dodaje wypełnienie aby dopasować drugi wymiar obrazu (jeżeli trzeba) i normalizuje obraz wejściowy:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-dd83945 elementor-widget elementor-widget-text-editor" data-id="dd83945" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">function</span></span> <span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">preprocessImage</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">(base64Image, imgSize) {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> image = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">new</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> Image();</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  image.src = base64Image;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> canvas = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">document</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">.createElement(</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">'canvas'</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  canvas.width = image.width;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  canvas.height = image.height;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> ctx = canvas.getContext(</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">'2d'</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  ctx.drawImage(image, </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">0</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">, </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">0</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">, image.width, image.height);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">// Convert canvas image to a tensor</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">let</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> imgTensor = tf.browser.fromPixels(canvas);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">// Determine rescale factor</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> xFactor = image.width / imgSize;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> yFactor = image.height / imgSize;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> factor = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">Math</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">.max(xFactor, yFactor);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> newWidth = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">Math</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">.round(image.width / factor);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> newHeight = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">Math</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">.round(image.height / factor);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">// Resize to expected input shape </span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  imgTensor = tf.image.resizeBilinear(imgTensor, [newHeight, newWidth]);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">// Add padding</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> xPad = (imgSize - newWidth) / </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">2</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> yPad = (imgSize - newHeight) / </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">2</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> top = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">Math</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">.floor(yPad);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">co</span><span class="NormalTextRun SCXW147374849 BCX0">nst</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> bottom = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">Math</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">.ceil(yPad);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> left = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">Math</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">.floor(xPad);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">const</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> right = </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">Math</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">.ceil(xPad);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  imgTensor = tf.pad(imgTensor, [[top, bottom], [left, right], [</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">0</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">, </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">0</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">]], </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">114</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">// Normalize pixel values</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  imgTensor = imgTensor.div(</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">255.0</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">).expandDims(</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">0</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">); </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">// Add batch dimension</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">  </span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">return</span></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0"> { imgTensor, left, top, factor };</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW147374849 BCX0"><span class="SCXW147374849 BCX0"> </span><br class="SCXW147374849 BCX0" /></span><span class="TextRun Highlight SCXW147374849 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW147374849 BCX0">}</span></span><span class="EOP SCXW147374849 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-183b6cf elementor-widget elementor-widget-heading" data-id="183b6cf" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">4. Uruchom inferencję modelu</h4>		</div>
				</div>
				<div class="elementor-element elementor-element-639b754 elementor-widget elementor-widget-text-editor" data-id="639b754" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Po załadowaniu modelu i przetworzeniu danych wejściowych, wykonanie inferencji odbywa się za pomocą tej linii kodu:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-25f3c6b elementor-widget elementor-widget-text-editor" data-id="25f3c6b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW75192197 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW75192197 BCX0">const</span></span><span class="TextRun Highlight SCXW75192197 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW75192197 BCX0"> prediction = </span></span><span class="TextRun Highlight SCXW75192197 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW75192197 BCX0">await</span></span><span class="TextRun Highlight SCXW75192197 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW75192197 BCX0"> model.execute(inputTensor);</span></span><span class="EOP SCXW75192197 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-0830169 elementor-widget elementor-widget-heading" data-id="0830169" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">5. Przetwarzanie wyników modelu</h4>		</div>
				</div>
				<div class="elementor-element elementor-element-aeca953 elementor-widget elementor-widget-text-editor" data-id="aeca953" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Wynik sieci YOLO to tensor, który należy odpowiednio zinterpretować. Poniżej znajdują się kroki w naszej funkcji <span style="color: #008000;">postprocessInferenceResults()</span>, które pozwalają na wyodrębnienie współrzędnych wszystkich wykrytych obiektów:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-04c9010 elementor-widget elementor-widget-text-editor" data-id="04c9010" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre data-ccp-border-bottom="0px none #000000" data-ccp-padding-bottom="0px" data-ccp-border-between="0px none #000000" data-ccp-padding-between="0px"><span data-contrast="none">const</span><span data-contrast="none"> results = prediction.transpose([</span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">2</span><span data-contrast="none">, </span><span data-contrast="none">1</span><span data-contrast="none">]); </span> <br /><span data-contrast="none">const</span><span data-contrast="none"> numClass = </span><span data-contrast="none">1</span><span data-contrast="none">; </span><span data-contrast="none">// Only one class in our case</span> <br /><span data-contrast="none">const</span><span data-contrast="none"> boxes = tf.tidy(() =&gt; {</span> <br /><span data-contrast="none">const</span><span data-contrast="none"> w = results.slice([</span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">2</span><span data-contrast="none">], [</span><span data-contrast="none">-1</span><span data-contrast="none">, </span><span data-contrast="none">-1</span><span data-contrast="none">, </span><span data-contrast="none">1</span><span data-contrast="none">]); </span><span data-contrast="none">// Get width</span> <br /><span data-contrast="none">const</span><span data-contrast="none"> h = results.slice([</span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">3</span><span data-contrast="none">], [</span><span data-contrast="none">-1</span><span data-contrast="none">, </span><span data-contrast="none">-1</span><span data-contrast="none">, </span><span data-contrast="none">1</span><span data-contrast="none">]); </span><span data-contrast="none">// Get height</span> <br /><span data-contrast="none">const</span><span data-contrast="none"> x1 = tf.sub(results.slice([</span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">0</span><span data-contrast="none">], [</span><span data-contrast="none">-1</span><span data-contrast="none">, </span><span data-contrast="none">-1</span><span data-contrast="none">, </span><span data-contrast="none">1</span><span data-contrast="none">]), tf.div(w, </span><span data-contrast="none">2</span><span data-contrast="none">)); </span><span data-contrast="none">// Get x1</span><span data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span><br /><br /><span data-contrast="none">const</span><span data-contrast="none"> y1 = tf.sub(results.slice([</span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">0</span><span data-contrast="none">, </span><span data-contrast="none">1</span><span data-contrast="none">], [</span><span data-contrast="none">-1</span><span data-contrast="none">, </span><span data-contrast="none">-1</span><span data-contrast="none">, </span><span data-contrast="none">1</span><span data-contrast="none">]), tf.div(h, </span><span data-contrast="none">2</span><span data-contrast="none">)); </span><span data-contrast="none">// Get y1</span> <br /><span data-contrast="none">return</span><span data-contrast="none"> tf.concat([y1, x1, y1.add(h), x1.add(w)], </span><span data-contrast="none">2</span><span data-contrast="none">).squeeze();</span> <br /><span data-contrast="none">});</span><span data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-70bdd06 elementor-widget elementor-widget-text-editor" data-id="70bdd06" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Aby wyodrębnić klasy i poziomy ufności dla każdego obiektu:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-4e859a7 elementor-widget elementor-widget-text-editor" data-id="4e859a7" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">const</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0"> numClass = labels.length;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW92870568 BCX0"><span class="SCXW92870568 BCX0"> </span><br class="SCXW92870568 BCX0" /></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">const</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0"> [scores, classes] = tf.tidy(() =&gt; {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW92870568 BCX0"><span class="SCXW92870568 BCX0"> </span><br class="SCXW92870568 BCX0" /></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">const</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0"> rawData = results.slice([</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">0</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">, </span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">0</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">, </span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">4</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">], [</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">-1</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">, </span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">-1</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">, numClass]).squeeze(</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">0</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW92870568 BCX0"><span class="SCXW92870568 BCX0"> </span><br class="SCXW92870568 BCX0" /></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">  </span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">return</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0"> [rawData.max(</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">1</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">), rawData.argMax(</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">1</span></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">)];</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW92870568 BCX0"><span class="SCXW92870568 BCX0"> </span><br class="SCXW92870568 BCX0" /></span><span class="TextRun Highlight SCXW92870568 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW92870568 BCX0">});</span></span><span class="EOP SCXW92870568 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-c29f2bf elementor-widget elementor-widget-text-editor" data-id="c29f2bf" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Następnie należy pozbyć się wyników z poziomem ufności poniżej ustalonego progu (u nas był to 0.4):</p>						</div>
				</div>
				<div class="elementor-element elementor-element-2bbe314 elementor-widget elementor-widget-text-editor" data-id="2bbe314" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">const</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0"> array = </span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">await</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0"> scores.array();</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW227521811 BCX0"><span class="SCXW227521811 BCX0"> </span><br class="SCXW227521811 BCX0" /></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">const</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0"> highConfidenceIndices = array.reduce((acc, value, index) =&gt; {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW227521811 BCX0"><span class="SCXW227521811 BCX0"> </span><br class="SCXW227521811 BCX0" /></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">  </span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">if</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0"> (value &gt; </span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">0.4</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">) acc.push(index);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW227521811 BCX0"><span class="SCXW227521811 BCX0"> </span><br class="SCXW227521811 BCX0" /></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">  </span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">return</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0"> acc;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW227521811 BCX0"><span class="SCXW227521811 BCX0"> </span><br class="SCXW227521811 BCX0" /></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">}, []);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW227521811 BCX0"><span class="SCXW227521811 BCX0"> </span><br class="SCXW227521811 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW227521811 BCX0"><span class="SCXW227521811 BCX0"> </span><br class="SCXW227521811 BCX0" /></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">const</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0"> highConfidenceBoxes = boxes.gather(highConfidenceIndices);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW227521811 BCX0"><span class="SCXW227521811 BCX0"> </span><br class="SCXW227521811 BCX0" /></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">const</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0"> highConfidenceScores = scores.gather(highConfidenceIndices);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW227521811 BCX0"><span class="SCXW227521811 BCX0"> </span><br class="SCXW227521811 BCX0" /></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0">const</span></span><span class="TextRun Highlight SCXW227521811 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW227521811 BCX0"> highConfidenceClasses = classes.gather(highConfidenceIndices);</span></span><span class="EOP SCXW227521811 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-6d455b0 elementor-widget elementor-widget-text-editor" data-id="6d455b0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Na koniec zastosuj Non-Max Suppression (NMS), aby odfiltrować duplikaty, tzn. wykryte obiekty, które się na siebie nakładają:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-a51ed9c elementor-widget elementor-widget-text-editor" data-id="a51ed9c" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">const</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0"> nms = </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">await</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0"> tf.image.nonMaxSuppressionAsync(highConfidenceBoxes, highConfidenceScores, </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">40</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">, </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">0.45</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">, </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">0.4</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">); </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">// NMS to filter boxes</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW150352841 BCX0"><span class="SCXW150352841 BCX0"> </span><br class="SCXW150352841 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW150352841 BCX0"><span class="SCXW150352841 BCX0"> </span><br class="SCXW150352841 BCX0" /></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">const</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0"> boxesData = highConfidenceBoxes.gather(nms, </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">0</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">); </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">// Indexing boxes by NMS index</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW150352841 BCX0"><span class="SCXW150352841 BCX0"> </span><br class="SCXW150352841 BCX0" /></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">const</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0"> scoresData = highConfidenceScores.gather(nms, </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">0</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">).dataSync(); </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">// Indexing scores by</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW150352841 BCX0"><span class="SCXW150352841 BCX0"> </span><br class="SCXW150352841 BCX0" /></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">const</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0"> classesData = highConfidenceClasses.gather(nms, </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">0</span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">).dataSync(); </span></span><span class="TextRun Highlight SCXW150352841 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW150352841 BCX0">// Indexing classes by NMS index</span></span><span class="EOP SCXW150352841 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-a61bead elementor-widget elementor-widget-text-editor" data-id="a61bead" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Ostatnim krokiem jest przeskalowanie współrzędnych, aby dopasować je do kształtu oryginalnego obrazu:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-84b07f0 elementor-widget elementor-widget-text-editor" data-id="84b07f0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">// Precompute the margins and factors outside the stack</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">const</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0"> yMarginTensor = tf.scalar(yMargin);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">const</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0"> xMarginTensor = tf.scalar(xMargin);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">const</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0"> resizeFactorTensor = tf.scalar(resizeFactor);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">// Slice the boxesData and apply transformations in one step</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">const</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0"> [yCoordinates, xCoordinates, height, width] = </span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">  [</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">'0'</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">, </span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">'1'</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">, </span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">'2'</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">, </span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">'3'</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">].map((index) =&gt; </span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">    boxesData.slice([</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">0</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">, </span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">parseInt</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">(index)], [</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">-1</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">, </span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">1</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">]).sub(index % </span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">2</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0"> === </span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">0</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0"> ? yMarginTensor : xMarginTensor).mul(resizeFactorTensor)</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">// Stack the tensors without converting to arrays (unless needed)</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">const</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0"> bbox = tf.stack([yCoordinates, xCoordinates, height, width], </span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">1</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">// Convert to an array only if absolutely necessary</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW260954935 BCX0"><span class="SCXW260954935 BCX0"> </span><br class="SCXW260954935 BCX0" /></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0">const</span></span><span class="TextRun Highlight SCXW260954935 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW260954935 BCX0"> bboxArray = bbox.arraySync();</span></span><span class="EOP SCXW260954935 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-b542632 elementor-widget elementor-widget-text-editor" data-id="b542632" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Na końcu możemy zdefiniować funkcję <strong>runInference()</strong>, która zawiera cały opisany powyżej proces wykrywania obiektów. Ta funkcja zawiera przygotowanie obrazu, uruchomienie inferencji modelu oraz przetworzenie wyników. Oto jak wygląda:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-d6642ff elementor-widget elementor-widget-text-editor" data-id="d6642ff" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">export</span></span> <span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">async</span></span> <span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">function</span></span> <span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">runInference</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">(model, labels, image, confidenceThreshold = </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">0.4</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">) {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">  </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">try</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">// Preprocess the image</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">const</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> imgSize = model.inputs[</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">0</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">].shape[</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">1</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">];</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">const</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> { imgTensor: inputTensor, left: xMargin, top: yMargin, factor: resizeFactor } = preprocessImage(image, imgSize);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">// Run inference</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">const</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> prediction = </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">await</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> model.execute(inputTensor);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">// Post-process the model output</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">const</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> [boxes, scores, classes] = </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">await</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> postprocessInferenceResults(prediction, labels, xMargin, yMargin, resizeFactor, confidenceThreshold);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">return</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> [boxes, scores, classes];</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">  } </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">catch</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0"> (error) {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">    </span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">throw</span></span> <span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">new</span></span> <span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">Error</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">(</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">`Inference failed: ${error.message}`</span></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">  }</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW217269171 BCX0"><span class="SCXW217269171 BCX0"> </span><br class="SCXW217269171 BCX0" /></span><span class="TextRun Highlight SCXW217269171 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW217269171 BCX0">}</span></span><span class="EOP SCXW217269171 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-d087385 elementor-widget elementor-widget-heading" data-id="d087385" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">6. Wizualizacja wyników </h4>		</div>
				</div>
				<div class="elementor-element elementor-element-84689b0 elementor-widget elementor-widget-text-editor" data-id="84689b0" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Na samym końcu, gdy mamy już gotowe wyniki detekcji, możemy narysować wykryte obiekty na obrazie:</p>						</div>
				</div>
				<div class="elementor-element elementor-element-d769790 elementor-widget elementor-widget-text-editor" data-id="d769790" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<pre><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">function</span></span> <span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">drawBoxesOnCanvas</span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">(ctx, boxes, classes, scores, colors) {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">  boxes.forEach((box, i) =&gt; {</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">    </span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">const</span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0"> [x1, y1, x2, y2] = box;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">    ctx.strokeStyle = colors[classes[i]];</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">    ctx.lineWidth = </span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">2</span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">;</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">    ctx.strokeRect(x1, y1, x2 - x1, y2 - y1);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">    ctx.fillStyle = colors[classes[i]];</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">    ctx.fillText(</span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">`${labels[classes[i]]} (${</span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">Math</span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">.round(scores[i] * </span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">100</span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">)}%)`</span></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">, x1, y1);</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">  });</span></span><span class="LineBreakBlob BlobObject DragDrop SCXW6384134 BCX0"><span class="SCXW6384134 BCX0"> </span><br class="SCXW6384134 BCX0" /></span><span class="TextRun Highlight SCXW6384134 BCX0" lang="PL" xml:lang="PL" data-contrast="none"><span class="NormalTextRun SCXW6384134 BCX0">}</span></span><span class="EOP SCXW6384134 BCX0" data-ccp-props="{&quot;134245417&quot;:false,&quot;201341983&quot;:0,&quot;335559740&quot;:360,&quot;335572071&quot;:0,&quot;335572072&quot;:0,&quot;335572073&quot;:0,&quot;335572075&quot;:0,&quot;335572076&quot;:0,&quot;335572077&quot;:0,&quot;335572079&quot;:0,&quot;335572080&quot;:0,&quot;335572081&quot;:0,&quot;335572083&quot;:0,&quot;335572084&quot;:0,&quot;335572085&quot;:0,&quot;335572087&quot;:0,&quot;335572088&quot;:0,&quot;335572089&quot;:0,&quot;469789798&quot;:&quot;nil&quot;,&quot;469789802&quot;:&quot;nil&quot;,&quot;469789806&quot;:&quot;nil&quot;,&quot;469789810&quot;:&quot;nil&quot;,&quot;469789814&quot;:&quot;nil&quot;}"> </span></pre>						</div>
				</div>
				<div class="elementor-element elementor-element-0a7536b elementor-widget elementor-widget-text-editor" data-id="0a7536b" data-element_type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
							<p>Podsumowując, uruchamianie modelu YOLO do wykrywania obiektów bezpośrednio w przeglądarce przy użyciu TensorFlow.js otwiera nowe możliwości dla aplikacji real-time. W tym wpisie przedstawiliśmy wszystkie kroki, od konfiguracji TensorFlow.js, przez ładowanie modeli, przetwarzanie obrazów, uruchamianie wnioskowania, aż po wizualizację wyników, wraz ze wskazówkami jak zrobić to efektywnie. W miarę dalszego zgłębiania tej ciekawej technologii, warto eksperymentować z różnymi modelami, technikami optymalizacji oraz przypadkami użycia, aby w pełni wykorzystać potencjał uczenia maszynowego w aplikacjach internetowych.</p>						</div>
				</div>
		<div class="elementor-element elementor-element-b23a8f8 e-grid e-con-full e-con e-child" data-id="b23a8f8" data-element_type="container">
				<div class="elementor-element elementor-element-2e189c2 elementor-widget elementor-widget-heading" data-id="2e189c2" data-element_type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
			<h4 class="elementor-heading-title elementor-size-default">Zapraszam do kontaktu, jeśli masz pytania lub chciałbyś podzielić się swoimi implementacjami!</h4>		</div>
				</div>
				<div class="elementor-element elementor-element-a749555 elementor-button-success elementor-align-center elementor-widget elementor-widget-button" data-id="a749555" data-element_type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
							<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="https://inero-software.com/pl/kontakt/">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon">
				<svg aria-hidden="true" class="e-font-icon-svg e-fas-envelope" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="M502.3 190.8c3.9-3.1 9.7-.2 9.7 4.7V400c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V195.6c0-5 5.7-7.8 9.7-4.7 22.4 17.4 52.1 39.5 154.1 113.6 21.1 15.4 56.7 47.8 92.2 47.6 35.7.3 72-32.8 92.3-47.6 102-74.1 131.6-96.3 154-113.7zM256 320c23.2.4 56.6-29.2 73.4-41.4 132.7-96.3 142.8-104.7 173.4-128.7 5.8-4.5 9.2-11.5 9.2-18.9v-19c0-26.5-21.5-48-48-48H48C21.5 64 0 85.5 0 112v19c0 7.4 3.4 14.3 9.2 18.9 30.6 23.9 40.7 32.4 173.4 128.7 16.8 12.2 50.2 41.8 73.4 41.4z"></path></svg>			</span>
									<span class="elementor-button-text">KONTAKT</span>
					</span>
					</a>
				</div>
						</div>
				</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-38cdd54 e-con-full e-flex e-con e-child" data-id="38cdd54" data-element_type="container">
				</div>
					</div>
				</div>
				</div>
		<p>Artykuł <a href="https://inero-software.com/pl/sieci-neuronowe-w-przegladarce-przewodnik-na-przykladzie-customowej-sieci-yolo-do-wykrywania-twarzy/">Sieci neuronowe w przeglądarce: Przewodnik na przykładzie customowej sieci YOLO do wykrywania twarzy</a> pochodzi z serwisu <a href="https://inero-software.com/pl">Inero Software - Rozwiązania IT i Konsulting</a>.</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">6230</post-id>	</item>
	</channel>
</rss>
