Buckets:

rtrm's picture
download
raw
34.4 kB
import{s as Me,o as Ne}from"../chunks/scheduler.37c15a92.js";import{S as Qe,i as de,g as ye,s as i,r as l,A as je,h as Ce,f as n,c as m,j as Fe,u as a,x as Be,k as He,y as Ge,a as r,v as s,t as p,b as Ie,d as f,w as x,p as Le}from"../chunks/index.2bf4358c.js";import{C as Oe}from"../chunks/CourseFloatingBanner.9ff4c771.js";import{Q as _}from"../chunks/Question.668688bc.js";import{F as Re}from"../chunks/FrameworkSwitchCourse.8d4d4ab6.js";import{H as w,E as Ue}from"../chunks/getInferenceSnippets.24b50994.js";function De(k){let u,o,g,c;return u=new w({props:{title:"9. Почему при вызове compile() для модели трансформера часто нет необходимости определять потери?",local:"9-почему-при-вызове-compile-для-модели-трансформера-часто-нет-необходимости-определять-потери",headingTag:"h3"}}),g=new _({props:{choices:[{text:"Потому что модели трансформеров обучаются с помощью обучения без учителя.",explain:"Не совсем так - даже для обучения без учителя нужна функция потерь!"},{text:"Потому что по умолчанию используется внутренний вывод потерь модели.",explain:"Это верно!",correct:!0},{text:"Потому что вместо этого мы вычисляем метрики после обучения.",explain:"Мы часто так и поступаем, но это не объясняет, откуда мы берем значение потерь, которое оптимизируем в процессе обучения."},{text:"Потому что вместо этого потери определяются в `model.fit()`.",explain:"Нет, функция потерь всегда фиксирована после запуска `model.compile()` и не может быть изменена в `model.fit()`."}]}}),{c(){l(u.$$.fragment),o=i(),l(g.$$.fragment)},l($){a(u.$$.fragment,$),o=m($),a(g.$$.fragment,$)},m($,q){s(u,$,q),r($,o,q),s(g,$,q),c=!0},i($){c||(f(u.$$.fragment,$),f(g.$$.fragment,$),c=!0)},o($){p(u.$$.fragment,$),p(g.$$.fragment,$),c=!1},d($){$&&n(o),x(u,$),x(g,$)}}}function Je(k){let u,o,g,c;return u=new w({props:{title:"8. Почему существует специальный подкласс Trainer для проблем преобразования ” последовательности-в-последовательность”?",local:"8-почему-существует-специальный-подкласс-trainer-для-проблем-преобразования--последовательности-в-последовательность",headingTag:"h3"}}),g=new _({props:{choices:[{text:"Поскольку проблемы преобразования последовательности-в-последовательность используют определенные пользователем потери, для игнорирования меток задайте <code>-100</code>.",explain:"Это вовсе не определенные пользователем потери, а то, как потери всегда вычисляются."},{text:"Поскольку проблемы преобразования последовательности-в-последовательность требуют специального цикла оценки",explain:"Это верно. Предсказания моделей преобразующих последовательность-в-последовательность часто выполняются с помощью метода <code>generate()</code>.",correct:!0},{text:"Поскольку целью являются тексты в проблемах преобразования последовательности-в-последовательность",explain:"<code>Trainer</code> не особо заботится об этом, поскольку они уже были предварительно обработаны."},{text:"Поскольку в проблемах преобразования последовательности-в-последовательность мы используем две модели",explain:"В некотором смысле мы используем две модели, энкодер и декодер, но они сгруппированы в одну модель."}]}}),{c(){l(u.$$.fragment),o=i(),l(g.$$.fragment)},l($){a(u.$$.fragment,$),o=m($),a(g.$$.fragment,$)},m($,q){s(u,$,q),r($,o,q),s(g,$,q),c=!0},i($){c||(f(u.$$.fragment,$),f(g.$$.fragment,$),c=!0)},o($){p(u.$$.fragment,$),p(g.$$.fragment,$),c=!1},d($){$&&n(o),x(u,$),x(g,$)}}}function Ke(k){let u,o,g,c,$,q,h,Y,v,Z,y,Ee="Давайте проверим, чему вы научились в этой главе!",ee,C,te,P,$e,E,ne,z,re,S,ie,A,me,F,pe,H,fe,M,le,N,ae,Q,se,d,xe,j,ue,B,ge,b,T,W,G,oe,I,ce,L,we,O,_e,R,qe,U,be,D,Te,J,ke,K,he,X,ve;$=new Re({props:{fw:k[0]}}),h=new w({props:{title:"Тест в конце главы",local:"end-of-chapter-quiz",headingTag:"h1"}}),v=new Oe({props:{chapter:7,classNames:"absolute z-10 right-0 top-0"}}),C=new w({props:{title:"1. Какую из следующих задач можно сформулировать как проблему классификации токенов?",local:"1-какую-из-следующих-задач-можно-сформулировать-как-проблему-классификации-токенов",headingTag:"h3"}}),P=new _({props:{choices:[{text:"Поиск грамматических компонентов в предложении.",explain:"Правильно! Затем мы можем пометить каждое слово как существительное, глагол и т.д.",correct:!0},{text:"Определение того, является ли предложение грамматически правильным или нет.",explain:"Нет, это проблема классификации последовательностей."},{text:"Поиск персон, упомянутых в предложении.",explain:"Правильно! Мы можем пометить каждое слово как персона или не персона.",correct:!0},{text:"Поиск части слов в предложении, которое отвечает на вопрос.",explain:"Нет, это была бы проблема ответа на вопрос."}]}}),E=new w({props:{title:"2. Какая часть предварительной обработки для классификации токенов отличается от других конвейеров предварительной обработки?",local:"2-какая-часть-предварительной-обработки-для-классификации-токенов-отличается-от-других-конвейеров-предварительной-обработки",headingTag:"h3"}}),z=new _({props:{choices:[{text:"Ничего делать не нужно: тексты уже токенизированы.",explain:"Тексты действительно представлены в виде отдельных слов, но нам все равно нужно применить модель токенизации по подсловам."},{text:"Тексты представлены в виде слов, поэтому нам нужно применить только токенизацию по подсловам.",explain:"Правильно! Это отличие от обычной предобработки, где нам нужно применить полный конвейер токенизации. Можете ли вы придумать другое отличие?",correct:!0},{text:"Мы используем <code>-100</code> для обозначения специальных токенов.",explain:"Это не относится к классификации токенов - мы всегда используем <code>-100</code> в качестве метки для токенов, которые мы хотим игнорировать в потерях."},{text:"При применении усечения/дополнения нам нужно убедиться, что метки имеют тот же размер, что и входные данные.",explain:"Действительно! Но это не единственное отличие.",correct:!0}]}}),S=new w({props:{title:"3. Какая проблема возникает при токенизации слов в проблеме классификации токенов и при необходимости их маркировки?",local:"3-какая-проблема-возникает-при-токенизации-слов-в-проблеме-классификации-токенов-и-при-необходимости-их-маркировки",headingTag:"h3"}}),A=new _({props:{choices:[{text:"Токенизатор добавляет специальные токены, для которых у нас нет меток.",explain:"Мы помечаем их -100, чтобы они игнорировались при потерях."},{text:"Каждое слово может создавать несколько токенов, поэтому в итоге мы получаем больше токенов, чем меток.",explain:"Это основная проблема, и нам нужно выровнять оригинальные метки с токенами.",correct:!0},{text:"Добавленные токены не имеют меток, поэтому проблем не возникает.",explain:"Это неверно; нам нужно столько меток, сколько у нас токенов, иначе наши модели будут ошибаться."}]}}),F=new w({props:{title:"4. Что означает “доменная адаптация”?",local:"4-что-означает-доменная-адаптация",headingTag:"h3"}}),H=new _({props:{choices:[{text:"Это когда мы запускаем модель на датасете и получаем предсказания для каждого примера в этом датасете.",explain:"Нет, это просто инференс."},{text:"Это когда мы обучаем модель на датасете.",explain:"Нет, это обучение модели; здесь нет адаптации."},{text:"Это когда мы проводим дообучение предварительно обученной модели на новом датасете, и он выдает прогнозы, более адаптированные к этому датасету.",explain:"Правильно! Модель адаптировала свои знания к новому датасету.",correct:!0},{text:"Это когда мы добавляем в датасет неправильно классифицированные образцы, чтобы сделать нашу модель более надежной.",explain:"Это, конечно, нужно делать, если вы регулярно переобучаете свою модель, но это не доменная адаптация."}]}}),M=new w({props:{title:"5. Что такое метки в проблеме маскированного языкового моделирования?",local:"5-что-такое-метки-в-проблеме-маскированного-языкового-моделирования",headingTag:"h3"}}),N=new _({props:{choices:[{text:"Некоторые токены во входном предложении маскируются случайным образом, а метками служат оригинальные входные токены.",explain:"Это оно!",correct:!0},{text:"Некоторые токены во входном предложении случайным образом маскируются, а метками служат исходные токены, сдвинутые влево.",explain:"Нет, сдвиг меток влево соответствует предсказанию следующего слова, что соответствует каузальному языковому моделированию."},{text:"Некоторые токены во входном предложении маскируются случайным образом, а метка означает, является ли предложение положительным или отрицательным.",explain:"Это проблема классификации последовательностей с некоторыми дополнениями к данным, а не маскированное языковое моделирование."},{text:"Некоторые токены в двух входных предложениях маскируются случайным образом, а метка означает, похожи эти два предложения или нет.",explain:"Это проблема классификации последовательностей с некоторыми дополнительными данными, а не маскированное моделирование языка."}]}}),Q=new w({props:{title:"6. Какую из этих задач можно рассматривать как проблему преобразования последовательности-в-последовательность (sequence-to-sequence problem)?",local:"6-какую-из-этих-задач-можно-рассматривать-как-проблему-преобразования-последовательности-в-последовательность-sequence-to-sequence-problem",headingTag:"h3"}}),d=new _({props:{choices:[{text:"Написание коротких обзоров длинных документов",explain:"Да, это проблема суммаризации. Попробуйте другой ответ!",correct:!0},{text:"Ответы на вопросы о документе",explain:"Это можно сформулировать как проблему преобразования последовательности-в-последовательность. Однако это не единственный правильный ответ.",correct:!0},{text:"Перевод текста на китайском языке на английский",explain:"Это определенно проблема преобразования последовательности-в-последовательность. Вы можете найти другую?",correct:!0},{text:"Исправление сообщений, отправленных моим племянником/другом, чтобы они были на правильном английском языке",explain:"Это своего рода проблема перевода, так что это определенно задача последовательности-в-последовательности. Однако это не единственный правильный ответ!",correct:!0}]}}),j=new w({props:{title:"7. Каков правильный способ предварительной обработки данных для проблемы преобразования последовательности-в-последовательность?",local:"7-каков-правильный-способ-предварительной-обработки-данных-для-проблемы-преобразования-последовательности-в-последовательность",headingTag:"h3"}}),B=new _({props:{choices:[{text:"Входные данные и цели должны быть переданы токенизатору вместе с <code>inputs=...</code> и <code>targets=...</code>.",explain:"Возможно, в будущем мы добавим такой API, но сейчас это невозможно."},{text:"Входные данные и цели должны быть предварительно обработаны в двух раздельных вызовах токенизатора.",explain:"Это правда, но неполная. Вам нужно кое-что сделать, чтобы убедиться, что токенизатор правильно обрабатывает оба варианта."},{text:"Как обычно, нам просто нужно выполнить токенизацию входных данных.",explain:"Не в проблеме классификации последовательностей; цели - это тексты, которые мы должны преобразовать в числа!"},{text:"Входные данные должны быть переданы токенизатору, и цели тоже, но под управлением специального контекстного менеджера.",explain:"Верно, токенизатор должен быть переведен в target режим этим менеджером контекста.",correct:!0}]}});const ze=[Je,De],V=[];function Se(e,t){return e[0]==="pt"?0:1}return b=Se(k),T=V[b]=ze[b](k),G=new w({props:{title:"10. Когда следует проводить предварительное обучение новой модели?",local:"10-когда-следует-проводить-предварительное-обучение-новой-модели",headingTag:"h3"}}),I=new _({props:{choices:[{text:"Если для вашего специфического языка не существует предварительно обученной модели.",explain:"Это верно!",correct:!0},{text:"Когда у вас много данных, даже если есть предварительно обученная модель, которая может работать с ними.",explain:"В этом случае, вероятно, следует использовать предварительно обученную модель и провести ее дообучение на ваших данных, чтобы избежать больших вычислительных затрат."},{text:"Если у вас есть опасения по поводу смещения предварительно обученной модели, которую вы используете",explain:"Это правда, но вы должны быть уверены, что данные, которые вы будете использовать для обучения, действительно лучше.",correct:!0},{text:"Когда имеющиеся предварительно обученные модели недостаточно хороши.",explain:"Вы уверены, что правильно отладили свой цикл обучения?"}]}}),L=new w({props:{title:"11. Почему легко провести предварительное обучение языковой модели на большом количестве текстов?",local:"11-почему-легко-провести-предварительное-обучение-языковой-модели-на-большом-количестве-текстов",headingTag:"h3"}}),O=new _({props:{choices:[{text:"Потому что в Интернете можно найти множество текстов.",explain:"Хотя это и верно, но не отвечает на вопрос. Попробуйте еще раз!"},{text:"Потому что задача предварительного обучения не требует от людей маркировки данных.",explain:"Верно, языковое моделирование - это проблема обучения с самоконтролем (self-supervised problem).",correct:!0},{text:"Потому что библиотека 🤗 Transformers требует всего несколько строк кода для начала обучения.",explain:"Хотя это и верно, но не совсем отвечает на поставленный вопрос. Попробуйте другой ответ!"}]}}),R=new w({props:{title:"12. Какие основные проблемы возникают при предварительной обработке данных для задачи ответа на вопрос (question answering)?",local:"12-какие-основные-проблемы-возникают-при-предварительной-обработке-данных-для-задачи-ответа-на-вопрос-question-answering",headingTag:"h3"}}),U=new _({props:{choices:[{text:"Вам нужно выполнить токенизацию входных данных.",explain:"Это верно, но действительно ли это главная проблема?"},{text:"Вам приходится иметь дело с очень длинными контекстами, в которых дается несколько обучающих признаков, которые могут содержать ответ, а могут и не содержать.",explain:"Это, безусловно, одна из проблем.",correct:!0},{text:"Вам нужно провести токенизацию ответов на вопрос так же, как и входных данных.",explain:"Нет, если только вы не формулируете проблему ответа на вопрос как задачу преобразования последовательности-в-последовательность."},{text:"На основе фрагмента ответа в тексте нужно найти начальный и конечный токен в исходном токенизированном тексте.",explain:"Это одна из самых сложных частей, да!",correct:!0}]}}),D=new w({props:{title:"13. Как обычно выполняется постобработка в задаче ответов на вопросы?",local:"13-как-обычно-выполняется-постобработка-в-задаче-ответов-на-вопросы",headingTag:"h3"}}),J=new _({props:{choices:[{text:"Модель дает вам начальную и конечную позиции ответа, и вам остается только декодировать соответствующий промежуток токенов.",explain:"Это может быть одним из способов, но слишком упрощенным."},{text:"Модель возыращает вам начальную и конечную позиции ответа для каждого признака, созданного одним примером, а вам остается только декодировать соответствующий промежуток токенов в том из них, который имеет наилучшую оценку.",explain:"Это близко к постобработке, которую мы изучали, но это не совсем правильно."},{text:"Модель возвращает вам начальную и конечную позиции ответа для каждого признака, созданного одним примером, а вам остается только сопоставить их с промежутком в контексте, чтобы выбрать тот, который набрал наибольшую оценку.",explain:"Вот и все в двух словах!",correct:!0},{text:"Модель генерирует ответ, а вам остается только декодировать его.",explain:"Нет, если только вы не формулируете проблему ответа на вопрос как проблему преобразования последовательности-в-последовательность."}]}}),K=new Ue({props:{source:"https://github.com/huggingface/course/blob/main/chapters/ru/chapter7/9.mdx"}}),{c(){u=ye("meta"),o=i(),g=ye("p"),c=i(),l($.$$.fragment),q=i(),l(h.$$.fragment),Y=i(),l(v.$$.fragment),Z=i(),y=ye("p"),y.textContent=Ee,ee=i(),l(C.$$.fragment),te=i(),l(P.$$.fragment),$e=i(),l(E.$$.fragment),ne=i(),l(z.$$.fragment),re=i(),l(S.$$.fragment),ie=i(),l(A.$$.fragment),me=i(),l(F.$$.fragment),pe=i(),l(H.$$.fragment),fe=i(),l(M.$$.fragment),le=i(),l(N.$$.fragment),ae=i(),l(Q.$$.fragment),se=i(),l(d.$$.fragment),xe=i(),l(j.$$.fragment),ue=i(),l(B.$$.fragment),ge=i(),T.c(),W=i(),l(G.$$.fragment),oe=i(),l(I.$$.fragment),ce=i(),l(L.$$.fragment),we=i(),l(O.$$.fragment),_e=i(),l(R.$$.fragment),qe=i(),l(U.$$.fragment),be=i(),l(D.$$.fragment),Te=i(),l(J.$$.fragment),ke=i(),l(K.$$.fragment),he=i(),X=ye("p"),this.h()},l(e){const t=je("svelte-u9bgzb",document.head);u=Ce(t,"META",{name:!0,content:!0}),t.forEach(n),o=m(e),g=Ce(e,"P",{}),Fe(g).forEach(n),c=m(e),a($.$$.fragment,e),q=m(e),a(h.$$.fragment,e),Y=m(e),a(v.$$.fragment,e),Z=m(e),y=Ce(e,"P",{"data-svelte-h":!0}),Be(y)!=="svelte-18x10k3"&&(y.textContent=Ee),ee=m(e),a(C.$$.fragment,e),te=m(e),a(P.$$.fragment,e),$e=m(e),a(E.$$.fragment,e),ne=m(e),a(z.$$.fragment,e),re=m(e),a(S.$$.fragment,e),ie=m(e),a(A.$$.fragment,e),me=m(e),a(F.$$.fragment,e),pe=m(e),a(H.$$.fragment,e),fe=m(e),a(M.$$.fragment,e),le=m(e),a(N.$$.fragment,e),ae=m(e),a(Q.$$.fragment,e),se=m(e),a(d.$$.fragment,e),xe=m(e),a(j.$$.fragment,e),ue=m(e),a(B.$$.fragment,e),ge=m(e),T.l(e),W=m(e),a(G.$$.fragment,e),oe=m(e),a(I.$$.fragment,e),ce=m(e),a(L.$$.fragment,e),we=m(e),a(O.$$.fragment,e),_e=m(e),a(R.$$.fragment,e),qe=m(e),a(U.$$.fragment,e),be=m(e),a(D.$$.fragment,e),Te=m(e),a(J.$$.fragment,e),ke=m(e),a(K.$$.fragment,e),he=m(e),X=Ce(e,"P",{}),Fe(X).forEach(n),this.h()},h(){He(u,"name","hf:doc:metadata"),He(u,"content",Ve)},m(e,t){Ge(document.head,u),r(e,o,t),r(e,g,t),r(e,c,t),s($,e,t),r(e,q,t),s(h,e,t),r(e,Y,t),s(v,e,t),r(e,Z,t),r(e,y,t),r(e,ee,t),s(C,e,t),r(e,te,t),s(P,e,t),r(e,$e,t),s(E,e,t),r(e,ne,t),s(z,e,t),r(e,re,t),s(S,e,t),r(e,ie,t),s(A,e,t),r(e,me,t),s(F,e,t),r(e,pe,t),s(H,e,t),r(e,fe,t),s(M,e,t),r(e,le,t),s(N,e,t),r(e,ae,t),s(Q,e,t),r(e,se,t),s(d,e,t),r(e,xe,t),s(j,e,t),r(e,ue,t),s(B,e,t),r(e,ge,t),V[b].m(e,t),r(e,W,t),s(G,e,t),r(e,oe,t),s(I,e,t),r(e,ce,t),s(L,e,t),r(e,we,t),s(O,e,t),r(e,_e,t),s(R,e,t),r(e,qe,t),s(U,e,t),r(e,be,t),s(D,e,t),r(e,Te,t),s(J,e,t),r(e,ke,t),s(K,e,t),r(e,he,t),r(e,X,t),ve=!0},p(e,[t]){const Ae={};t&1&&(Ae.fw=e[0]),$.$set(Ae);let Pe=b;b=Se(e),b!==Pe&&(Le(),p(V[Pe],1,1,()=>{V[Pe]=null}),Ie(),T=V[b],T||(T=V[b]=ze[b](e),T.c()),f(T,1),T.m(W.parentNode,W))},i(e){ve||(f($.$$.fragment,e),f(h.$$.fragment,e),f(v.$$.fragment,e),f(C.$$.fragment,e),f(P.$$.fragment,e),f(E.$$.fragment,e),f(z.$$.fragment,e),f(S.$$.fragment,e),f(A.$$.fragment,e),f(F.$$.fragment,e),f(H.$$.fragment,e),f(M.$$.fragment,e),f(N.$$.fragment,e),f(Q.$$.fragment,e),f(d.$$.fragment,e),f(j.$$.fragment,e),f(B.$$.fragment,e),f(T),f(G.$$.fragment,e),f(I.$$.fragment,e),f(L.$$.fragment,e),f(O.$$.fragment,e),f(R.$$.fragment,e),f(U.$$.fragment,e),f(D.$$.fragment,e),f(J.$$.fragment,e),f(K.$$.fragment,e),ve=!0)},o(e){p($.$$.fragment,e),p(h.$$.fragment,e),p(v.$$.fragment,e),p(C.$$.fragment,e),p(P.$$.fragment,e),p(E.$$.fragment,e),p(z.$$.fragment,e),p(S.$$.fragment,e),p(A.$$.fragment,e),p(F.$$.fragment,e),p(H.$$.fragment,e),p(M.$$.fragment,e),p(N.$$.fragment,e),p(Q.$$.fragment,e),p(d.$$.fragment,e),p(j.$$.fragment,e),p(B.$$.fragment,e),p(T),p(G.$$.fragment,e),p(I.$$.fragment,e),p(L.$$.fragment,e),p(O.$$.fragment,e),p(R.$$.fragment,e),p(U.$$.fragment,e),p(D.$$.fragment,e),p(J.$$.fragment,e),p(K.$$.fragment,e),ve=!1},d(e){e&&(n(o),n(g),n(c),n(q),n(Y),n(Z),n(y),n(ee),n(te),n($e),n(ne),n(re),n(ie),n(me),n(pe),n(fe),n(le),n(ae),n(se),n(xe),n(ue),n(ge),n(W),n(oe),n(ce),n(we),n(_e),n(qe),n(be),n(Te),n(ke),n(he),n(X)),n(u),x($,e),x(h,e),x(v,e),x(C,e),x(P,e),x(E,e),x(z,e),x(S,e),x(A,e),x(F,e),x(H,e),x(M,e),x(N,e),x(Q,e),x(d,e),x(j,e),x(B,e),V[b].d(e),x(G,e),x(I,e),x(L,e),x(O,e),x(R,e),x(U,e),x(D,e),x(J,e),x(K,e)}}}const Ve='{"title":"Тест в конце главы","local":"end-of-chapter-quiz","sections":[{"title":"1. Какую из следующих задач можно сформулировать как проблему классификации токенов?","local":"1-какую-из-следующих-задач-можно-сформулировать-как-проблему-классификации-токенов","sections":[],"depth":3},{"title":"2. Какая часть предварительной обработки для классификации токенов отличается от других конвейеров предварительной обработки?","local":"2-какая-часть-предварительной-обработки-для-классификации-токенов-отличается-от-других-конвейеров-предварительной-обработки","sections":[],"depth":3},{"title":"3. Какая проблема возникает при токенизации слов в проблеме классификации токенов и при необходимости их маркировки?","local":"3-какая-проблема-возникает-при-токенизации-слов-в-проблеме-классификации-токенов-и-при-необходимости-их-маркировки","sections":[],"depth":3},{"title":"4. Что означает “доменная адаптация”?","local":"4-что-означает-доменная-адаптация","sections":[],"depth":3},{"title":"5. Что такое метки в проблеме маскированного языкового моделирования?","local":"5-что-такое-метки-в-проблеме-маскированного-языкового-моделирования","sections":[],"depth":3},{"title":"6. Какую из этих задач можно рассматривать как проблему преобразования последовательности-в-последовательность (sequence-to-sequence problem)?","local":"6-какую-из-этих-задач-можно-рассматривать-как-проблему-преобразования-последовательности-в-последовательность-sequence-to-sequence-problem","sections":[],"depth":3},{"title":"7. Каков правильный способ предварительной обработки данных для проблемы преобразования последовательности-в-последовательность?","local":"7-каков-правильный-способ-предварительной-обработки-данных-для-проблемы-преобразования-последовательности-в-последовательность","sections":[],"depth":3},{"title":"8. Почему существует специальный подкласс Trainer для проблем преобразования ” последовательности-в-последовательность”?","local":"8-почему-существует-специальный-подкласс-trainer-для-проблем-преобразования--последовательности-в-последовательность","sections":[],"depth":3},{"title":"9. Почему при вызове compile() для модели трансформера часто нет необходимости определять потери?","local":"9-почему-при-вызове-compile-для-модели-трансформера-часто-нет-необходимости-определять-потери","sections":[],"depth":3},{"title":"10. Когда следует проводить предварительное обучение новой модели?","local":"10-когда-следует-проводить-предварительное-обучение-новой-модели","sections":[],"depth":3},{"title":"11. Почему легко провести предварительное обучение языковой модели на большом количестве текстов?","local":"11-почему-легко-провести-предварительное-обучение-языковой-модели-на-большом-количестве-текстов","sections":[],"depth":3},{"title":"12. Какие основные проблемы возникают при предварительной обработке данных для задачи ответа на вопрос (question answering)?","local":"12-какие-основные-проблемы-возникают-при-предварительной-обработке-данных-для-задачи-ответа-на-вопрос-question-answering","sections":[],"depth":3},{"title":"13. Как обычно выполняется постобработка в задаче ответов на вопросы?","local":"13-как-обычно-выполняется-постобработка-в-задаче-ответов-на-вопросы","sections":[],"depth":3}],"depth":1}';function We(k,u,o){let g="pt";return Ne(()=>{const c=new URLSearchParams(window.location.search);o(0,g=c.get("fw")||"pt")}),[g]}class nt extends Qe{constructor(u){super(),de(this,u,We,Ke,Me,{})}}export{nt as component};

Xet Storage Details

Size:
34.4 kB
·
Xet hash:
201c7bffc7cabe23803ef59128d093eda05c9c4a37a7775f733b305fb519cf34

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.