<meta charset="utf-8" /><meta http-equiv="content-security-policy" content=""><meta name="hf:doc:metadata" content="{&quot;local&quot;:&quot;&quot;,&quot;title&quot;:&quot;บทนำ&quot;}" data-svelte="svelte-1phssyn">
	<link rel="modulepreload" href="/docs/course/pr_212/th/_app/assets/pages/__layout.svelte-hf-doc-builder.css">
	<link rel="modulepreload" href="/docs/course/pr_212/th/_app/start-hf-doc-builder.js">
	<link rel="modulepreload" href="/docs/course/pr_212/th/_app/chunks/vendor-hf-doc-builder.js">
	<link rel="modulepreload" href="/docs/course/pr_212/th/_app/chunks/paths-hf-doc-builder.js">
	<link rel="modulepreload" href="/docs/course/pr_212/th/_app/pages/__layout.svelte-hf-doc-builder.js">
	<link rel="modulepreload" href="/docs/course/pr_212/th/_app/pages/chapter6/1.mdx-hf-doc-builder.js"> 





<h1 id="">บทนำ</h1>
<p>ใน<a href="/course/chapter3">บทที่ 3</a> คุณได้เรียนเกี่ยวกับการ fine-tune โมเดลเพื่อนำไปใช้ในงานที่คุณต้องการ ตอนนั้นเราใช้ตัวตัดคำ(tokenizer)แบบเดียวกับตัวที่มากับโมเดล แต่หากคุณอยากจะเทรนโมเดลตั้งแต่เริ่มต้นเลย คุณควรจะเลือกใช้ตัวตัดคำแบบไหนดี
ในกรณีนี้ถ้าคุณใช้ตัวตัดคำที่เทรนจากคลังข้อมูล(corpus)ที่ไม่ใช่ภาษาเดียวกับโมเดลหรือคลังข้อมูลที่มาจากโดเมนอื่น(แปลว่าเนื้อหาของข้อมูลที่ใช้เทรนตัวตัดคำและใช้เทรนโมเดลมีความแตกต่างกันมาก)ก็จะไม่เหมาะสมนัก
ตัวอย่างเช่น ตัวตัดคำที่เทรนมาสำหรับตัดคำภาษาอังกฤษ เมื่อนำมาใช้เพื่อตัดคำภาษาญี่ปุ่นก็จะได้ผลลัพธ์ที่ไม่ดี เพราะว่าทั้งสองภาษามีการใช้ช่องว่าง(space)และเครื่องหมายวรรคตอน(punctuation)ที่ต่างกันมาก</p>
<p>ในบทนี้คุณจะได้เรียนเกี่ยวกับการเทรนตัวตัดคำจากคลังข้อความ(corpus of texts) เพื่อให้ได้ตัวตัดคำที่เหมาะสมกับ language model ที่คุณต้องการจะเทรน
เราจะใช้ library ที่ชื่อว่า <a href="https://github.com/huggingface/tokenizers" rel="nofollow">🤗 Tokenizers</a> ซึ่งมีตัวตัดคำแบบ “เร็ว” ให้ผู้ใช้เลือกได้ ใน <a href="https://github.com/huggingface/transformers" rel="nofollow">🤗 Transformers</a> library
เราจะมาดู features ต่างๆของ library นี้กันและมาเรียนรู้ว่าตัวตัดคำแบบเร็วและแบบช้านั้นต่างกันอย่างไร</p>
<p>หัวข้อที่เราจะเรียนกันในบทนี้:</p>
<ul><li>การสร้างตัวตัดคำขึ้นมาใหม่ให้คล้ายกับตัวที่ใช้ใน checkpoint โดนใช้ชุดข้อมูลใหม่ในการเทรน</li>
<li>feature พิเศษของตัวตัดคำแบบเร็ว</li>
<li>ความแตกต่างระหว่างอัลกอริทึม 3 แบบที่ใช้ในการสร้างตัวตัดคำประเภท subword ที่ใช้ใน NLP ทุกวันนี้</li>
<li>การสร้างและเทรนตัวตัดคำตั้งแต่เริ่มต้นด้วย 🤗 Tokenizers library</li></ul>
<p>เทคนิคต่างๆที่คุณจะได้เรียนในบทนี้จะเป็นเตรียมให้คุณพร้อมสำหรับ<a href="/course/chapter7/6">บทที่ 7</a> ซึ่งคุณจะได้เรียนเกี่ยวกับการสร้าง language model ด้วย Python
เรามาเริ่มกันที่ความหมายของการ “เทรน” ตัวตัดคำ</p>


		<script type="module" data-hydrate="1am1j2l">
		import { start } from "/docs/course/pr_212/th/_app/start-hf-doc-builder.js";
		start({
			target: document.querySelector('[data-hydrate="1am1j2l"]').parentNode,
			paths: {"base":"/docs/course/pr_212/th","assets":"/docs/course/pr_212/th"},
			session: {},
			route: false,
			spa: false,
			trailing_slash: "never",
			hydrate: {
				status: 200,
				error: null,
				nodes: [
					import("/docs/course/pr_212/th/_app/pages/__layout.svelte-hf-doc-builder.js"),
						import("/docs/course/pr_212/th/_app/pages/chapter6/1.mdx-hf-doc-builder.js")
				],
				params: {}
			}
		});
	</script>
