import{s as Hl,n as Kl,o as lt}from"../chunks/scheduler.f38f3a0e.js";import{S as tt,i as Ut,e as p,s,c as J,h as Mt,a as g,d as U,b as e,f as Xl,j as T,g as V,k as Pl,m as st,n as M,o as n,t as y,p as a,q as i}from"../chunks/index.a03143fc.js";import{C as et}from"../chunks/CopyLLMTxtMenu.cf2f6034.js";import{C as X}from"../chunks/CodeBlock.b5d7b6b8.js";import{C as Jt}from"../chunks/CourseFloatingBanner.9d00122a.js";import{H as u,E as Tt}from"../chunks/MermaidChart.svelte_svelte_type_style_lang.487db1bc.js";function nt(ql){let o,K,P,ll,m,tl,r,Ul,C,Ml,F,Bl="チャットテンプレートは、言語モデルとユーザー間のインタラクションを構造化するために不可欠です。これらは会話の一貫した形式を提供し、モデルが各メッセージの文脈と役割を理解し、適切な応答パターンを維持することを保証します。",sl,O,el,R,wl="ベースモデルは次のトークンを予測するために生のテキストデータでトレーニングされる一方、インストラクションモデルは特定の指示に従い会話に参加するように微調整されたモデルです。例えば、<code>SmolLM2-135M</code>はベースモデルであり、<code>SmolLM2-135M-Instruct</code>はその指示に特化したバリアントです。",Jl,j,xl="ベースモデルをインストラクションモデルのように動作させるためには、モデルが理解できるようにプロンプトを一貫してフォーマットする必要があります。ここでチャットテンプレートが役立ちます。ChatMLは、システム、ユーザー、アシスタントの役割を明確に示すテンプレート形式で会話を構造化します。",Tl,f,kl="ベースモデルは異なるチャットテンプレートで微調整される可能性があるため、インストラクションモデルを使用する際には、正しいチャットテンプレートを使用していることを確認する必要があります。",nl,I,yl,Q,dl="チャットテンプレートの核心は、言語モデルと通信する際に会話がどのようにフォーマットされるべきかを定義することです。これには、システムレベルの指示、ユーザーメッセージ、およびアシスタントの応答が含まれ、モデルが理解できる構造化された形式で提供されます。この構造は、インタラクションの一貫性を維持し、モデルがさまざまな種類の入力に適切に応答することを保証します。以下はチャットテンプレートの例です：",al,$,il,z,bl='<code>transformers</code>ライブラリは、モデルのトークナイザーに関連してチャットテンプレートを自動的に処理します。<code>transformers</code>でチャットテンプレートがどのように構築されるかについて詳しくは<a href="https://huggingface.co/docs/transformers/en/chat_templating#how-do-i-use-chat-templates" rel="nofollow">こちら</a>を参照してください。私たちはメッセージを正しい形式で構造化するだけで、残りはトークナイザーが処理します。以下は基本的な会話の例です：',pl,c,gl,S,Al="上記の例を分解して、チャットテンプレート形式にどのようにマッピングされるかを見てみましょう。",Vl,D,ol,N,_l="システムメッセージは、モデルの動作の基礎を設定します。これらは、以降のすべてのインタラクションに影響を与える持続的な指示として機能します。例えば：",ul,E,ml,h,rl,q,vl="チャットテンプレートは、ユーザーとアシスタント間の以前のやり取りを保存し、会話の履歴を通じて文脈を維持します。これにより、複数ターンにわたる一貫した会話が可能になります：",Cl,B,Fl,w,Ol,x,Gl="<code>transformers</code>ライブラリは、チャットテンプレートのための組み込みサポートを提供します。使用方法は以下の通りです：",Rl,k,jl,d,fl,b,Zl="異なる役割に対して特別なトークンやフォーマットを追加するなど、さまざまなメッセージタイプのフォーマットをカスタマイズできます。例えば：",Il,A,Ql,_,$l,v,Wl="テンプレートは、文脈を維持しながら複雑なマルチターン会話を処理できます：",zl,G,cl,Z,Yl='⏭️ <a href="./supervised_fine_tuning.md">次へ: Supervised Fine-Tuning</a>',Sl,W,Dl,Y,Ll='<li><a href="https://huggingface.co/docs/transformers/main/en/chat_templating" rel="nofollow">Hugging Face Chat Templating Guide</a></li> <li><a href="https://huggingface.co/docs/transformers" rel="nofollow">Transformers Documentation</a></li> <li><a href="https://github.com/chujiezheng/chat_templates" rel="nofollow">Chat Templates Examples Repository</a></li>',Nl,L,El,H,hl;return m=new et({props:{containerStyle:"float: right; margin-left: 10px; display: inline-flex; position: relative; z-index: 10;"}}),r=new u({props:{title:"チャットテンプレート",local:"チャットテンプレート",headingTag:"h1"}}),C=new Jt({props:{chapter:10,classNames:"absolute z-10 right-0 top-0",notebooks:[{label:"Google Colab",value:"https://colab.research.google.com/github/huggingface/smol-course/blob/main/notebooks/ja/1_instruction_tuning/chat_templates_example.ipynb"}]}}),O=new u({props:{title:"ベースモデル vs インストラクションモデル",local:"ベースモデル-vs-インストラクションモデル",headingTag:"h2"}}),I=new u({props:{title:"チャットテンプレートの理解",local:"チャットテンプレートの理解",headingTag:"h2"}}),$=new X({props:{code:"JTNDJTdDaW1fZW5kJTdDJTNFJUUzJTgzJUE2JUUzJTgzJUJDJUUzJTgyJUI2JUUzJTgzJUJDJTBBJUUzJTgxJTkzJUUzJTgyJTkzJUUzJTgxJUFCJUUzJTgxJUExJUUzJTgxJUFGJUVGJUJDJTgxJTNDJTdDaW1fZW5kJTdDJTNFJTBBJTNDJTdDaW1fZW5kJTdDJTNFJUUzJTgyJUEyJUUzJTgyJUI3JUUzJTgyJUI5JUUzJTgyJUJGJUUzJTgzJUIzJUUzJTgzJTg4JTBBJUUzJTgxJUFGJUUzJTgxJTk4JUUzJTgyJTgxJUUzJTgxJUJFJUUzJTgxJTk3JUUzJTgxJUE2JUVGJUJDJTgxJTNDJTdDaW1fZW5kJTdDJTNFJTBBJTNDJTdDaW1fZW5kJTdDJTNFJUUzJTgzJUE2JUUzJTgzJUJDJUUzJTgyJUI2JUUzJTgzJUJDJTBBJUU4JUIzJUFBJUU1JTk1JThGJUUzJTgxJTk3JUUzJTgxJUE2JUUzJTgyJTgyJUUzJTgxJTg0JUUzJTgxJTg0JUUzJTgxJUE3JUUzJTgxJTk5JUUzJTgxJThCJUVGJUJDJTlGJTNDJTdDaW1fZW5kJTdDJTNFJTBBJTNDJTdDaW1fZW5kJTdDJTNFJUUzJTgyJUEyJUUzJTgyJUI3JUUzJTgyJUI5JUUzJTgyJUJGJUUzJTgzJUIzJUUzJTgzJTg4",highlighted:`&lt;|im_end|&gt;ユーザー
こんにちは！&lt;|im_end|&gt;
&lt;|im_end|&gt;アシスタント
はじめまして！&lt;|im_end|&gt;
&lt;|im_end|&gt;ユーザー
質問してもいいですか？&lt;|im_end|&gt;
&lt;|im_end|&gt;アシスタント`,wrap:!1}}),c=new X({props:{code:"bWVzc2FnZXMlMjAlM0QlMjAlNUIlMEElMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIyc3lzdGVtJTIyJTJDJTIwJTIyY29udGVudCUyMiUzQSUyMCUyMiVFMyU4MSU4MiVFMyU4MSVBQSVFMyU4MSU5RiVFMyU4MSVBRiVFNiU4QSU4MCVFOCVBMSU5MyVFNyU5QSU4NCVFMyU4MSVBQSVFMyU4MyU4OCVFMyU4MyU5NCVFMyU4MyU4MyVFMyU4MiVBRiVFMyU4MSVBQiVFNyU4NCVBNiVFNyU4MiVCOSVFMyU4MiU5MiVFNSVCRCU5MyVFMyU4MSVBNiVFMyU4MSU5RiVFNSVCRCVCOSVFNyVBQiU4QiVFMyU4MSVBNCVFMyU4MiVBMiVFMyU4MiVCNyVFMyU4MiVCOSVFMyU4MiVCRiVFMyU4MyVCMyVFMyU4MyU4OCVFMyU4MSVBNyVFMyU4MSU5OSVFMyU4MCU4MiUyMiU3RCUyQyUwQSUyMCUyMCUyMCUyMCU3QiUyMnJvbGUlMjIlM0ElMjAlMjJ1c2VyJTIyJTJDJTIwJTIyY29udGVudCUyMiUzQSUyMCUyMiVFMyU4MyU4MSVFMyU4MyVBMyVFMyU4MyU4MyVFMyU4MyU4OCVFMyU4MyU4NiVFMyU4MyVCMyVFMyU4MyU5NyVFMyU4MyVBQyVFMyU4MyVCQyVFMyU4MyU4OCVFMyU4MSVBOCVFMyU4MSVBRiVFNCVCRCU5NSVFMyU4MSU4QiVFOCVBQSVBQyVFNiU5OCU4RSVFMyU4MSVBNyVFMyU4MSU4RCVFMyU4MSVCRSVFMyU4MSU5OSVFMyU4MSU4QiVFRiVCQyU5RiUyMiU3RCUyQyUwQSUyMCUyMCUyMCUyMCU3QiUyMnJvbGUlMjIlM0ElMjAlMjJhc3Npc3RhbnQlMjIlMkMlMjAlMjJjb250ZW50JTIyJTNBJTIwJTIyJUUzJTgzJTgxJUUzJTgzJUEzJUUzJTgzJTgzJUUzJTgzJTg4JUUzJTgzJTg2JUUzJTgzJUIzJUUzJTgzJTk3JUUzJTgzJUFDJUUzJTgzJUJDJUUzJTgzJTg4JUUzJTgxJUFGJUUzJTgwJTgxJUUzJTgzJUE2JUUzJTgzJUJDJUUzJTgyJUI2JUUzJTgzJUJDJUUzJTgxJUE4QUklRTMlODMlQTIlRTMlODMlODclRTMlODMlQUIlRTklOTYlOTMlRTMlODElQUUlRTQlQkMlOUElRTglQTklQjElRTMlODIlOTIlRTYlQTclOEIlRTklODAlQTAlRTUlOEMlOTYlRTMlODElOTclRTMlODElQkUlRTMlODElOTkuLi4lMjIlN0QlMEElNUQ=",highlighted:`messages = [
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;system&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;あなたは技術的なトピックに焦点を当てた役立つアシスタントです。&quot;</span>},
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;チャットテンプレートとは何か説明できますか？&quot;</span>},
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;assistant&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;チャットテンプレートは、ユーザーとAIモデル間の会話を構造化します...&quot;</span>}
]`,wrap:!1}}),D=new u({props:{title:"システムメッセージ",local:"システムメッセージ",headingTag:"h2"}}),E=new X({props:{code:"c3lzdGVtX21lc3NhZ2UlMjAlM0QlMjAlN0IlMEElMjAlMjAlMjAlMjAlMjJyb2xlJTIyJTNBJTIwJTIyc3lzdGVtJTIyJTJDJTBBJTIwJTIwJTIwJTIwJTIyY29udGVudCUyMiUzQSUyMCUyMiVFMyU4MSU4MiVFMyU4MSVBQSVFMyU4MSU5RiVFMyU4MSVBRiVFMyU4MyU5NyVFMyU4MyVBRCVFMyU4MyU5NSVFMyU4MiVBNyVFMyU4MyU4MyVFMyU4MiVCNyVFMyU4MyVBNyVFMyU4MyU4QSVFMyU4MyVBQiVFMyU4MSVBQSVFMyU4MiVBQiVFMyU4MiVCOSVFMyU4MiVCRiVFMyU4MyU5RSVFMyU4MyVCQyVFMyU4MiVCNSVFMyU4MyVCQyVFMyU4MyU5MyVFMyU4MiVCOSVFMyU4MiVBOCVFMyU4MyVCQyVFMyU4MiVCOCVFMyU4MiVBNyVFMyU4MyVCMyVFMyU4MyU4OCVFMyU4MSVBNyVFMyU4MSU5OSVFMyU4MCU4MiVFNSVCOCVCOCVFMyU4MSVBQiVFNyVBNCVCQyVFNSU4NCU4MCVFNiVBRCVBMyVFMyU4MSU5NyVFMyU4MSU4RiVFMyU4MCU4MSVFNiU5OCU4RSVFNyVBMiVCQSVFMyU4MSVBNyVFMyU4MCU4MSVFNSVCRCVCOSVFNyVBQiU4QiVFMyU4MSVBNCVFMyU4MiU4OCVFMyU4MSU4NiVFMyU4MSVBQiVFMyU4MSU5NyVFMyU4MSVBNiVFMyU4MSU4RiVFMyU4MSVBMCVFMyU4MSU5NSVFMyU4MSU4NCVFMyU4MCU4MiUyMiUwQSU3RA==",highlighted:`system_message = {
    <span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;system&quot;</span>,
    <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;あなたはプロフェッショナルなカスタマーサービスエージェントです。常に礼儀正しく、明確で、役立つようにしてください。&quot;</span>
}`,wrap:!1}}),h=new u({props:{title:"会話",local:"会話",headingTag:"h2"}}),B=new X({props:{code:"Y29udmVyc2F0aW9uJTIwJTNEJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTdCJTIycm9sZSUyMiUzQSUyMCUyMnVzZXIlMjIlMkMlMjAlMjJjb250ZW50JTIyJTNBJTIwJTIyJUU2JUIzJUE4JUU2JTk2JTg3JUUzJTgxJUFCJUU5JTk2JUEyJUUzJTgxJTk3JUUzJTgxJUE2JUU1JThBJUE5JUUzJTgxJTkxJUUzJTgxJThDJUU1JUJGJTg1JUU4JUE2JTgxJUUzJTgxJUE3JUUzJTgxJTk5JTIyJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTdCJTIycm9sZSUyMiUzQSUyMCUyMmFzc2lzdGFudCUyMiUyQyUyMCUyMmNvbnRlbnQlMjIlM0ElMjAlMjIlRTMlODElOEElRTYlODklOEIlRTQlQkMlOUQlRTMlODElODQlRTMlODElOTclRTMlODElQkUlRTMlODElOTklRTMlODAlODIlRTYlQjMlQTglRTYlOTYlODclRTclOTUlQUElRTUlOEYlQjclRTMlODIlOTIlRTYlOTUlOTklRTMlODElODglRTMlODElQTYlRTMlODElODQlRTMlODElOUYlRTMlODElQTAlRTMlODElOTElRTMlODElQkUlRTMlODElOTklRTMlODElOEIlRUYlQkMlOUYlMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIydXNlciUyMiUyQyUyMCUyMmNvbnRlbnQlMjIlM0ElMjAlMjIlRTYlQjMlQTglRTYlOTYlODclRTclOTUlQUElRTUlOEYlQjclRTMlODElQUZPUkRFUi0xMjMlRTMlODElQTclRTMlODElOTklMjIlN0QlMkMlMEElNUQ=",highlighted:`conversation = [
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;注文に関して助けが必要です&quot;</span>},
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;assistant&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;お手伝いします。注文番号を教えていただけますか？&quot;</span>},
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;注文番号はORDER-123です&quot;</span>},
]`,wrap:!1}}),w=new u({props:{title:"Transformersを使用した実装",local:"transformersを使用した実装",headingTag:"h2"}}),k=new X({props:{code:"ZnJvbSUyMHRyYW5zZm9ybWVycyUyMGltcG9ydCUyMEF1dG9Ub2tlbml6ZXIlMEElMEF0b2tlbml6ZXIlMjAlM0QlMjBBdXRvVG9rZW5pemVyLmZyb21fcHJldHJhaW5lZCglMjJIdWdnaW5nRmFjZVRCJTJGU21vbExNMi0xMzVNLUluc3RydWN0JTIyKSUwQSUwQW1lc3NhZ2VzJTIwJTNEJTIwJTVCJTBBJTIwJTIwJTIwJTIwJTdCJTIycm9sZSUyMiUzQSUyMCUyMnN5c3RlbSUyMiUyQyUyMCUyMmNvbnRlbnQlMjIlM0ElMjAlMjIlRTMlODElODIlRTMlODElQUElRTMlODElOUYlRTMlODElQUYlRTUlQkQlQjklRTclQUIlOEIlRTMlODElQTQlRTMlODMlOTclRTMlODMlQUQlRTMlODIlQjAlRTMlODMlQTklRTMlODMlOUYlRTMlODMlQjMlRTMlODIlQjAlRTMlODIlQTIlRTMlODIlQjclRTMlODIlQjklRTMlODIlQkYlRTMlODMlQjMlRTMlODMlODglRTMlODElQTclRTMlODElOTklRTMlODAlODIlMjIlN0QlMkMlMEElMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIydXNlciUyMiUyQyUyMCUyMmNvbnRlbnQlMjIlM0ElMjAlMjIlRTMlODMlQUElRTMlODIlQjklRTMlODMlODglRTMlODIlOTIlRTMlODIlQkQlRTMlODMlQkMlRTMlODMlODglRTMlODElOTklRTMlODIlOEJQeXRob24lRTklOTYlQTIlRTYlOTUlQjAlRTMlODIlOTIlRTYlOUIlQjglRTMlODElODQlRTMlODElQTYlRTMlODElOEYlRTMlODElQTAlRTMlODElOTUlRTMlODElODQlMjIlN0QlMkMlMEElNUQlMEElMEElMjMlMjAlRTMlODMlODElRTMlODMlQTMlRTMlODMlODMlRTMlODMlODglRTMlODMlODYlRTMlODMlQjMlRTMlODMlOTclRTMlODMlQUMlRTMlODMlQkMlRTMlODMlODglRTMlODIlOTIlRTklODElQTklRTclOTQlQTglMEFmb3JtYXR0ZWRfY2hhdCUyMCUzRCUyMHRva2VuaXplci5hcHBseV9jaGF0X3RlbXBsYXRlKCUwQSUyMCUyMCUyMCUyMG1lc3NhZ2VzJTJDJTBBJTIwJTIwJTIwJTIwdG9rZW5pemUlM0RGYWxzZSUyQyUwQSUyMCUyMCUyMCUyMGFkZF9nZW5lcmF0aW9uX3Byb21wdCUzRFRydWUlMEEp",highlighted:`<span class="hljs-keyword">from</span> transformers <span class="hljs-keyword">import</span> AutoTokenizer

tokenizer = AutoTokenizer.from_pretrained(<span class="hljs-string">&quot;HuggingFaceTB/SmolLM2-135M-Instruct&quot;</span>)

messages = [
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;system&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;あなたは役立つプログラミングアシスタントです。&quot;</span>},
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;リストをソートするPython関数を書いてください&quot;</span>},
]

<span class="hljs-comment"># チャットテンプレートを適用</span>
formatted_chat = tokenizer.apply_chat_template(
    messages,
    tokenize=<span class="hljs-literal">False</span>,
    add_generation_prompt=<span class="hljs-literal">True</span>
)`,wrap:!1}}),d=new u({props:{title:"カスタムフォーマット",local:"カスタムフォーマット",headingTag:"h2"}}),A=new X({props:{code:"dGVtcGxhdGUlMjAlM0QlMjAlMjIlMjIlMjIlMEElM0MlN0NzeXN0ZW0lN0MlM0UlN0JzeXN0ZW1fbWVzc2FnZSU3RCUwQSUzQyU3Q3VzZXIlN0MlM0UlN0J1c2VyX21lc3NhZ2UlN0QlMEElM0MlN0Nhc3Npc3RhbnQlN0MlM0UlN0Jhc3Npc3RhbnRfbWVzc2FnZSU3RCUwQSUyMiUyMiUyMi5sc3RyaXAoKQ==",highlighted:`template = <span class="hljs-string">&quot;&quot;&quot;
&lt;|system|&gt;{system_message}
&lt;|user|&gt;{user_message}
&lt;|assistant|&gt;{assistant_message}
&quot;&quot;&quot;</span>.lstrip()`,wrap:!1}}),_=new u({props:{title:"マルチターン会話のサポート",local:"マルチターン会話のサポート",headingTag:"h2"}}),G=new X({props:{code:"bWVzc2FnZXMlMjAlM0QlMjAlNUIlMEElMjAlMjAlMjAlMjAlN0IlMjJyb2xlJTIyJTNBJTIwJTIyc3lzdGVtJTIyJTJDJTIwJTIyY29udGVudCUyMiUzQSUyMCUyMiVFMyU4MSU4MiVFMyU4MSVBQSVFMyU4MSU5RiVFMyU4MSVBRiVFNiU5NSVCMCVFNSVBRCVBNiVFMyU4MSVBRSVFNSVBRSVCNiVFNSVCQSVBRCVFNiU5NSU5OSVFNSVCOCVBQiVFMyU4MSVBNyVFMyU4MSU5OSVFMyU4MCU4MiUyMiU3RCUyQyUwQSUyMCUyMCUyMCUyMCU3QiUyMnJvbGUlMjIlM0ElMjAlMjJ1c2VyJTIyJTJDJTIwJTIyY29udGVudCUyMiUzQSUyMCUyMiVFNSVCRSVBRSVFNyVBOSU4RCVFNSU4OCU4NiVFMyU4MSVBOCVFMyU4MSVBRiVFNCVCRCU5NSVFMyU4MSVBNyVFMyU4MSU5OSVFMyU4MSU4QiVFRiVCQyU5RiUyMiU3RCUyQyUwQSUyMCUyMCUyMCUyMCU3QiUyMnJvbGUlMjIlM0ElMjAlMjJhc3Npc3RhbnQlMjIlMkMlMjAlMjJjb250ZW50JTIyJTNBJTIwJTIyJUU1JUJFJUFFJUU3JUE5JThEJUU1JTg4JTg2JUUzJTgxJUFGJUU2JTk1JUIwJUU1JUFEJUE2JUUzJTgxJUFFJUU0JUI4JTgwJUU1JTg4JTg2JUU5JTg3JThFJUUzJTgxJUE3JUUzJTgxJTk5Li4uJTIyJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTdCJTIycm9sZSUyMiUzQSUyMCUyMnVzZXIlMjIlMkMlMjAlMjJjb250ZW50JTIyJTNBJTIwJTIyJUU0JUJFJThCJUUzJTgyJTkyJUU2JTk1JTk5JUUzJTgxJTg4JUUzJTgxJUE2JUUzJTgxJThGJUUzJTgxJUEwJUUzJTgxJTk1JUUzJTgxJTg0JUUzJTgwJTgyJTIyJTdEJTJDJTBBJTVE",highlighted:`messages = [
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;system&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;あなたは数学の家庭教師です。&quot;</span>},
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;微積分とは何ですか？&quot;</span>},
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;assistant&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;微積分は数学の一分野です...&quot;</span>},
    {<span class="hljs-string">&quot;role&quot;</span>: <span class="hljs-string">&quot;user&quot;</span>, <span class="hljs-string">&quot;content&quot;</span>: <span class="hljs-string">&quot;例を教えてください。&quot;</span>},
]`,wrap:!1}}),W=new u({props:{title:"リソース",local:"リソース",headingTag:"h2"}}),L=new Tt({props:{source:"https://github.com/huggingface/smol-course/blob/main/units/ja/unit1/2.md"}}),{c(){o=p("meta"),K=s(),P=p("p"),ll=s(),J(m.$$.fragment),tl=s(),J(r.$$.fragment),Ul=s(),J(C.$$.fragment),Ml=s(),F=p("p"),F.textContent=Bl,sl=s(),J(O.$$.fragment),el=s(),R=p("p"),R.innerHTML=wl,Jl=s(),j=p("p"),j.textContent=xl,Tl=s(),f=p("p"),f.textContent=kl,nl=s(),J(I.$$.fragment),yl=s(),Q=p("p"),Q.textContent=dl,al=s(),J($.$$.fragment),il=s(),z=p("p"),z.innerHTML=bl,pl=s(),J(c.$$.fragment),gl=s(),S=p("p"),S.textContent=Al,Vl=s(),J(D.$$.fragment),ol=s(),N=p("p"),N.textContent=_l,ul=s(),J(E.$$.fragment),ml=s(),J(h.$$.fragment),rl=s(),q=p("p"),q.textContent=vl,Cl=s(),J(B.$$.fragment),Fl=s(),J(w.$$.fragment),Ol=s(),x=p("p"),x.innerHTML=Gl,Rl=s(),J(k.$$.fragment),jl=s(),J(d.$$.fragment),fl=s(),b=p("p"),b.textContent=Zl,Il=s(),J(A.$$.fragment),Ql=s(),J(_.$$.fragment),$l=s(),v=p("p"),v.textContent=Wl,zl=s(),J(G.$$.fragment),cl=s(),Z=p("p"),Z.innerHTML=Yl,Sl=s(),J(W.$$.fragment),Dl=s(),Y=p("ul"),Y.innerHTML=Ll,Nl=s(),J(L.$$.fragment),El=s(),H=p("p"),this.h()},l(l){const t=Mt("svelte-u9bgzb",document.head);o=g(t,"META",{name:!0,content:!0}),t.forEach(U),K=e(l),P=g(l,"P",{}),Xl(P).forEach(U),ll=e(l),T(m.$$.fragment,l),tl=e(l),T(r.$$.fragment,l),Ul=e(l),T(C.$$.fragment,l),Ml=e(l),F=g(l,"P",{"data-svelte-h":!0}),V(F)!=="svelte-6651fp"&&(F.textContent=Bl),sl=e(l),T(O.$$.fragment,l),el=e(l),R=g(l,"P",{"data-svelte-h":!0}),V(R)!=="svelte-vmuvuz"&&(R.innerHTML=wl),Jl=e(l),j=g(l,"P",{"data-svelte-h":!0}),V(j)!=="svelte-nrxyru"&&(j.textContent=xl),Tl=e(l),f=g(l,"P",{"data-svelte-h":!0}),V(f)!=="svelte-pntnf9"&&(f.textContent=kl),nl=e(l),T(I.$$.fragment,l),yl=e(l),Q=g(l,"P",{"data-svelte-h":!0}),V(Q)!=="svelte-1tkm6ua"&&(Q.textContent=dl),al=e(l),T($.$$.fragment,l),il=e(l),z=g(l,"P",{"data-svelte-h":!0}),V(z)!=="svelte-1twnkqx"&&(z.innerHTML=bl),pl=e(l),T(c.$$.fragment,l),gl=e(l),S=g(l,"P",{"data-svelte-h":!0}),V(S)!=="svelte-1ynhy00"&&(S.textContent=Al),Vl=e(l),T(D.$$.fragment,l),ol=e(l),N=g(l,"P",{"data-svelte-h":!0}),V(N)!=="svelte-j1jkfm"&&(N.textContent=_l),ul=e(l),T(E.$$.fragment,l),ml=e(l),T(h.$$.fragment,l),rl=e(l),q=g(l,"P",{"data-svelte-h":!0}),V(q)!=="svelte-ldheti"&&(q.textContent=vl),Cl=e(l),T(B.$$.fragment,l),Fl=e(l),T(w.$$.fragment,l),Ol=e(l),x=g(l,"P",{"data-svelte-h":!0}),V(x)!=="svelte-1a7oua3"&&(x.innerHTML=Gl),Rl=e(l),T(k.$$.fragment,l),jl=e(l),T(d.$$.fragment,l),fl=e(l),b=g(l,"P",{"data-svelte-h":!0}),V(b)!=="svelte-byeu2a"&&(b.textContent=Zl),Il=e(l),T(A.$$.fragment,l),Ql=e(l),T(_.$$.fragment,l),$l=e(l),v=g(l,"P",{"data-svelte-h":!0}),V(v)!=="svelte-18pa42h"&&(v.textContent=Wl),zl=e(l),T(G.$$.fragment,l),cl=e(l),Z=g(l,"P",{"data-svelte-h":!0}),V(Z)!=="svelte-1wo28pt"&&(Z.innerHTML=Yl),Sl=e(l),T(W.$$.fragment,l),Dl=e(l),Y=g(l,"UL",{"data-svelte-h":!0}),V(Y)!=="svelte-kyf9sf"&&(Y.innerHTML=Ll),Nl=e(l),T(L.$$.fragment,l),El=e(l),H=g(l,"P",{}),Xl(H).forEach(U),this.h()},h(){Pl(o,"name","hf:doc:metadata"),Pl(o,"content",yt)},m(l,t){st(document.head,o),M(l,K,t),M(l,P,t),M(l,ll,t),n(m,l,t),M(l,tl,t),n(r,l,t),M(l,Ul,t),n(C,l,t),M(l,Ml,t),M(l,F,t),M(l,sl,t),n(O,l,t),M(l,el,t),M(l,R,t),M(l,Jl,t),M(l,j,t),M(l,Tl,t),M(l,f,t),M(l,nl,t),n(I,l,t),M(l,yl,t),M(l,Q,t),M(l,al,t),n($,l,t),M(l,il,t),M(l,z,t),M(l,pl,t),n(c,l,t),M(l,gl,t),M(l,S,t),M(l,Vl,t),n(D,l,t),M(l,ol,t),M(l,N,t),M(l,ul,t),n(E,l,t),M(l,ml,t),n(h,l,t),M(l,rl,t),M(l,q,t),M(l,Cl,t),n(B,l,t),M(l,Fl,t),n(w,l,t),M(l,Ol,t),M(l,x,t),M(l,Rl,t),n(k,l,t),M(l,jl,t),n(d,l,t),M(l,fl,t),M(l,b,t),M(l,Il,t),n(A,l,t),M(l,Ql,t),n(_,l,t),M(l,$l,t),M(l,v,t),M(l,zl,t),n(G,l,t),M(l,cl,t),M(l,Z,t),M(l,Sl,t),n(W,l,t),M(l,Dl,t),M(l,Y,t),M(l,Nl,t),n(L,l,t),M(l,El,t),M(l,H,t),hl=!0},p:Kl,i(l){hl||(y(m.$$.fragment,l),y(r.$$.fragment,l),y(C.$$.fragment,l),y(O.$$.fragment,l),y(I.$$.fragment,l),y($.$$.fragment,l),y(c.$$.fragment,l),y(D.$$.fragment,l),y(E.$$.fragment,l),y(h.$$.fragment,l),y(B.$$.fragment,l),y(w.$$.fragment,l),y(k.$$.fragment,l),y(d.$$.fragment,l),y(A.$$.fragment,l),y(_.$$.fragment,l),y(G.$$.fragment,l),y(W.$$.fragment,l),y(L.$$.fragment,l),hl=!0)},o(l){a(m.$$.fragment,l),a(r.$$.fragment,l),a(C.$$.fragment,l),a(O.$$.fragment,l),a(I.$$.fragment,l),a($.$$.fragment,l),a(c.$$.fragment,l),a(D.$$.fragment,l),a(E.$$.fragment,l),a(h.$$.fragment,l),a(B.$$.fragment,l),a(w.$$.fragment,l),a(k.$$.fragment,l),a(d.$$.fragment,l),a(A.$$.fragment,l),a(_.$$.fragment,l),a(G.$$.fragment,l),a(W.$$.fragment,l),a(L.$$.fragment,l),hl=!1},d(l){l&&(U(K),U(P),U(ll),U(tl),U(Ul),U(Ml),U(F),U(sl),U(el),U(R),U(Jl),U(j),U(Tl),U(f),U(nl),U(yl),U(Q),U(al),U(il),U(z),U(pl),U(gl),U(S),U(Vl),U(ol),U(N),U(ul),U(ml),U(rl),U(q),U(Cl),U(Fl),U(Ol),U(x),U(Rl),U(jl),U(fl),U(b),U(Il),U(Ql),U($l),U(v),U(zl),U(cl),U(Z),U(Sl),U(Dl),U(Y),U(Nl),U(El),U(H)),U(o),i(m,l),i(r,l),i(C,l),i(O,l),i(I,l),i($,l),i(c,l),i(D,l),i(E,l),i(h,l),i(B,l),i(w,l),i(k,l),i(d,l),i(A,l),i(_,l),i(G,l),i(W,l),i(L,l)}}}const yt='{"title":"チャットテンプレート","local":"チャットテンプレート","sections":[{"title":"ベースモデル vs インストラクションモデル","local":"ベースモデル-vs-インストラクションモデル","sections":[],"depth":2},{"title":"チャットテンプレートの理解","local":"チャットテンプレートの理解","sections":[],"depth":2},{"title":"システムメッセージ","local":"システムメッセージ","sections":[],"depth":2},{"title":"会話","local":"会話","sections":[],"depth":2},{"title":"Transformersを使用した実装","local":"transformersを使用した実装","sections":[],"depth":2},{"title":"カスタムフォーマット","local":"カスタムフォーマット","sections":[],"depth":2},{"title":"マルチターン会話のサポート","local":"マルチターン会話のサポート","sections":[],"depth":2},{"title":"リソース","local":"リソース","sections":[],"depth":2}],"depth":1}';function at(ql){return lt(()=>{new URLSearchParams(window.location.search).get("fw")}),[]}class mt extends tt{constructor(o){super(),Ut(this,o,at,nt,Hl,{})}}export{mt as component};
