Как проверить строчный трансформатор телевизора


как проверить и схема подключения

Строчные трансформаторы применяются для создания разверток в телевизоре. Приборы заключены в корпус, защищающий от высокого напряжения соседние детали. Раньше в цветных, черно-белых телевизорах при помощи строчного трансформатора ТВС получали ускоряющее напряжение. В схеме применялся умножитель. Строчный высоковольтный трансформатор передавал преобразованный электрический сигнал на представленный элемент. Умножитель вырабатывал напряжение фокусировки, обеспечивая работу второго катодного анода.

Сегодня применяется в схемах телевизора трансформатор диодно-каскадный строчной развертки (ТДКС). Что собой представляет подобная техника, как проверить ее своими руками и произвести ремонт, будет рассмотрено далее.

Особенности

Трансформаторы типа ТДКС сегодня включаются в схему телевизора для обеспечения анода (второго) кинескопа электрическим током с требуемыми параметрами. Напряжение исходящее составляет 25-30 кВ. В процессе работы оборудования формируется электрический поток. Это ускоряющее напряжение 300-800 В.

В зависимости от категории трансформаторов ТДКС, цоколевки, образуется вторичное напряжение, которое является дополнительным для обеспечения развертки кадрового типа. Приборы оборудования снимают в трансформаторах телевизоров сигнал луча кинескопа автоматически подстроенной частоты строчной развертки.

Схема подключения, цоколёвка в представленном трансформаторе характеризуют устройство. Прибор обладает первичной обмоткой. На нее подается электрический ток для дальнейшей развертки. С первичного контура подается питание для функционирования усилителей видеосигнала. Обмотка передает электричество на вторичную катушку. Отсюда производится питание соответствующих цепей.

Видео: Строчный трансформатор

Строчному трансформатору вменяется питание второго анода, ускоряющее напряжение, фокусировка. Эти процессы производятся в ТДКС. Регулировка происходит при помощи потенциометров. Трансформаторам представленной категории обеспечивается определенная цоколевка. Расположение выводов может быть в виде буквы О или U.

Поломка

Строчные устройства могут выходить из строя. Работа телевизора, монитора в этом случае будет невозможна. Существует много разновидностей моделей строчных агрегатов. Замена вызвает трудности. Стоимость аналоговых приборов высока. Некоторые телевизоры, мониторы требуют больших затрат при ремонте. Необходимые детали в некоторых случаях тяжело найти.

Чтобы приобрести только ту часть схемы, которая вышла из строя, произвести ее быструю замену, нужно проверить строчный трансформатор. Телевизору проще будет выполнить адекватный ремонт. В первую очередь проверьте, нет ли следующих неисправностей:

  1. Обрыв контура.
  2. Пробой герметичного корпуса.
  3. Замыкание между витков.
  4. Обрыв потенциометра.

Первые две поломки выявить достаточно просто. Это определяется визуально. Для выполнения замены неисправных элементов материал приобретается практически в любом магазине радиотехники.

Сложнее определить замыкание в контурах обмоток. Трансформатором в этом случае производится звук, напоминающий писк. Но не всегда требуется ремонт при появлении такого сигнала. ТДКС иногда пищит из-за высокого напряжения на вторичном контуре. Проверяете, что вызывает звук, при помощи специального прибора. Если оборудования нет, нужно искать другие варианты.

Проверка осциллографом

Если телевизору требуется проверка в системе ТДКС, проверка выполняется при помощи осциллографа. Для ремонта телевизора потребуется отрезать питающий прибор вывод. Далее нужно найти вторичный контур. Его работу исследуют при подключении к отрезанному выводу питания ТДКС через R-10 Ом. Замена или ремонт устройства потребуется, если подключение осциллографа выявит отклонения. Возможны следующие отклонения:

  • Межвитковое замыкание демонстрирует на R=10 Ом «прямоугольник» с большими помехами. Здесь остается почти все напряжение. Если неисправности в этой области нет, отклонение будет определяться долями вольта.
  • Если нет вторичного напряжения, требуется замена контура. Произошел обрыв.
  • Когда убирают R=10 Ом и создают нагрузку 0,2-1 кОм на вторичном контуре, оценивается нагрузка на выходе. Она должна повторять входящие показатели. Если есть отклонение, ТДКС подлежит ремонту или полной замене.

Существуют и другие поломки. Выявить их можно самостоятельно.

Восстановление прибора

Самостоятельная замена и ремонт ТДКС вполне возможна. Определив неисправность, можно восстановить работу системы. Рассматривая, как подключить строчный трансформатор к телевизорам, необходимо изучить процедуру возобновления его работы. В случае полной замены трансформаторного прибора, потребуется подобрать новое оборудование с соответствующей системой выводов. Только в этом случае техника будет работать корректно.

Если оборудование не работает из-за пробоя, значит, в корпусе появилась трещина. Найти ее можно при осмотре. Трещину потребуется зачистить, обезжирить, а затем залить эпоксидным клеем. При этом слой смолы должен составлять не менее 2 мм. Это позволит предотвратить пробой в дальнейшем.

Ремонт ТДКС при обрыве контура проблематичен. Потребуется перемотать катушку. Это трудоемкий процесс, требующий от мастера высокой концентрации на протяжении всей процедуры. Замена намотки возможна, но для этого требуется определенный опыт.

Если оборвалась обмотка накала, линию формируют из другого места. Применяется в этом случае изолированный провод. Кабель наматывают на сердечник. Напряжение устанавливается при использовании резистора.

Другие поломки

Существует множество причин, почему не работает ТДКС. Опытные радиолюбители помогут изучить распространенные неисправности.

Если в приборе пробит транзистор, необходимо его достать и замерять коллекторное напряжение без него. При определении слишком высокого показателя, его регулируют до требуемого значения. При невозможности совершения подобной процедуры, нужно поменять в блоке питания стабилитрон. Обязательно нужно установить новый конденсатор.

Рекомендуется проверить пайку на всех разъемах. При необходимости ее усиливают. Если такая проблема определялась на конденсаторах, их выпаивают. Осмотр может выявить почернение. Потребуется приобрести новую деталь. Если прямоугольные конденсаторы раздуты, их также следует заменить. Если видно остатки канифоли, их следует убрать при помощи спирта и щетки.

При постоянном пробивании транзистора в строчной разверстке, следует определить тип неисправности. Пробой может быть тепловым или электрическим. Именно неисправный трансформатор приводит к появлению подобной проблемы.

Интересное видео: Высокое напряжение на ТДКС

Рассмотрев особенности строчных трансформаторов, а также их возможные неисправности, можно самостоятельно произвести ремонтные работы. В этом случае приобретать новую, дорогую технику не потребуется. В некоторых случаях отремонтировать монитор без подобных действий не получится. Далеко не для каждого кинескопа сегодня в продаже представлены приборы ТДКС. Поэтому замена неисправных его частей порой является единственным приемлемым выходом.

Как проверить строчный трансформатор — TDKS. Ремонт строчной развертки.

КАК ПРОВЕРИТЬ TDKS

Нередко в ТДКС пробиваются выпрямительные диоды. Проверить их целостность можно прозвонив трансформатор мегомметром между аквадагом (присоской) и нижним выводом той же обмотки — выводом ABL.
На картинке выводы обозначенные точками A и ABL. В исправном трансформаторе сопротивление будет в обе стороны бесконечно велико.

Шасси Beko 12.4 — проверка строчной развёртки

О НЕИСПРАВНОСТЯХ СТРОЧНОЙ РАЗВЕРТКИ,ШАССИ СОБРАННЫХ НА СОСТАВНОМ ТРАНЗИСТОРЕ BU808.

1. Если транзистор пробит, вытаскиваете его, и для начала меряете без него напряжение на коллекторе, точка К
2. Если напряжение выше нормы, регулируете до нормы, если не поддается, меняете регулируемый стабилитрон TL431 в блоке питания.
3. Конденсатор C517 МЕНЯЕТЕ ОБЯЗАТЕЛЬНО на новый.
4. Проверяете пайки на разъёме ОС, ТДКС, конденсаторов. Пропаиваете.
5. Если были плохие пайки на конденсаторах, обязательно выпаиваете, осматриваете и если найдёте почернение — меняете. То же делаете если обнаружите раздутость прямоугольных конденсаторов.
6. Конденсатор C514 проверяете на наличие КЗ. Пробивается часто.
7. Запаиваете транзистор BU808 или аналог спаянный вручную из двух транзисторов, диода и резистора:
http://www.vseprosto.net/2012/11/bu808dfi-2sc5388-analog-zamena-sostavnogo-tranzistora/
8. Не ленитесь убирать остатки канифоли и промывать щеткой со спиртом. Никто после вас не скажет что паял ламер, а вы будете видеть малейшие сопли от припоя, и непропаи.
9. Если транзистор выбивает повторно — проверяете ТДКС, и ВСЁ что подключено к коллектору транзистора, а так же собственную пайку. В первую очередь конденсаторы на 1600 вольт.

ПЕРИОДИЧЕСКИ ПРОБИВАЕТСЯ ВЫХОДНОЙ ТРАНЗИСТОР СТРОЧНОЙ РАЗВЁРТКИ.

Пробой транзистора может быть тепловой, а может электрический.
Электрический пробой бывает из за неисправного трансформатора, плохих паек в районе коллектора транзистора, транзистора не того типа, отсутствия диода в цепи Коллектор-Эмиттер, пробитых конденсаторов, завышенного напряжения питания.
Тепловой сами понимаете от чего бывает.

Если возникли сложности и нужна помощь — добро пожаловать на форум: http://vseprosto.net/forum

Как проверить строчный трансформатор мультиметром

На конкретном примере — Samsung KS9B — восстановление ТДКС FOK14A001

Поступил в ремонт телевизор samsung KS9B с диагнозом не включается. Не буду рассказывать всю процедуру поиска, скажу лишь, что изначально был на утечке конденсатор c406 в строчной развёртке.

Кстати довольно частое явление.

В этом и подобных шасси, при незапуске телевизора или строчной развёртки стоит обращать внимание на синие высоковольтные конденсаторы емкостью в сотни пикофарад, на напряжение 2 киловольта .
Менять лучше на 5 киловольтные. Возьмите современный конденсатор на 5 киловольт и подобный советский, и вы поймёте для чего.

Так вот, о FBT . Трансформатор был зверски замучан предыдущим мастером во время поиска неисправного конденсатора. Механический дефект. Попросту выдернутая ножка трансформатора.

Дефект проявлялся как выключение строчной при перегибании платы. Ну жалко было выбрасывать практически живой трансформатор, тем более что родной все же лучше качеством.
Как вы уже поняли из фотографии, я вытащил ножку плоскогубцами, и с помощью бормашинки аккуратно рассверлил отверстие вокруг бывшего вывода, немного под конус. Пока не добрался до меди.
Зачистил скальпелем и подпаял с флюсом кусочек гибкого провода МГТФ .

Таким же образом можно восстановить любой вывод строчного трансформатора.

Вариант когда на ТДКС пробивает высокое напряжение.

Это означает, что при изготовлении трансформатора вместо качественного изолятора была применена дешёвая пластмасса. Бороться тоже можно.
Если место пробоя визуально видно, сверлом около 5 мм диаметром делаю углубление в пластмассе, глубиной несколько миллиметров. Старайтесь не повредить обмотку. Если по поверхности трансформатора имеются следы копоти — удалить сначала тряпкой смоченной спиртом, затем слегка соскоблить ножом. Это нужно и для более плотного прилягания клея.

В качестве клея использую силиконовые свечи диаметром 11 миллиметров, и соответствующий паяльник-пистолет. Поскольку клей в горячем виде довольно текучий, стараюсь ограничить его растекание щечками из картона. В общем счёте у вас должна образоваться плюха не менее чем 1 см толщиной . Эстетика нас не волнует. Главное чтобы не пробило.
После такой обработки возвратов почти нет. Если обмотка внутри выжила и не замкнула, изоляция не подведёт.

Схему и описание “ Прибор для проверки ТДКС и ОС в телевизорах ” я взял из статьи Романова. М., Израиль. Он пишет “ Я пользуюсь им уже 6-7 лет, и за это время практически все неисправные ТДКСы были задефектованы именно им. Надежность его использования подтверждает практика. Основной показатель при проверке выпаянного ТДКС – это звук, раздающийся в пьезокерамическом излучателе с частотой 15 кГц, который легко услышать при исправном трансформаторе или ОС. При проверке ТДКС подключается только коллекторная обмотка”.

Кто то скажет, что этот прибор для проверки катушек уже потерял свою актуальность, потому, что современные телевизоры не имеют ТДКСов и ОС и будет прав только отчасти потому, что этот прибор так же можно использоваьт для проверки других индуктивностей в сравнении. Например, если мы имеем 2 одинаковых трансформатора и один из них заведомо исправный, то по тому как реагирует прибор, мы можем судить об исправности испытуемого трансформатора.
Детали. Пьезокерамический излучатель (например, от китайского будильника), транзисторы КТ315 или подобные, диоды 1N4148. Резисторы, стоящие в коллекторах транзисторов, включающих светодиоды (R5, R8), придется подобрать по четкому срабатыванию LED1 при подключении любого проводника и LED2,
только при подключении исправного ТДКС.

Пользоваться данным устройством очень просто: подключить два конца коллекторной обмотки испытуемого трансформатора к точкам LX1, если ТДКС исправен, загорается светодиод LED1-слышен писк 15 кГц, если писка нет – ТДКС нерабочий.
При проверке отклоняющая система, вместо писка загорается светодиод LED2. Любой короткозамкнутый виток или пробитый диод в высоковольтной обмотке проверяемого строчного трансформатора или отклоняющей системы срывают резонанс, и звук отсутствует или ослабляется до такой степени, что его еле-еле слышно.

Мой отзыв о работе этой схемы положительный. Пользуюсь прибором уже примерно лет 8 и не только при ремонте телевизоров и мониторов.

Схема работает устойчиво без сбоев. Собрана в коробке от магнитофонной касеты.

После сборки заработала сразу и в наладке не нуждалась.

Так, что все желающие могут повторять зту схему без сомнений.

Это фото пробника собранного мной по выше приведёной схеме.

Пробник для проверки ТДКС и строчных катушек ОС в телевизорах с замкнутыми щупами.

А это этикетка наклееная на боковую стенку прибора для быстрой справки о его работе.

Одной из нередко встречающихся неисправностей ТДКС (в зарубежной литературе – FBT) является пробой внутреннего высоковольтного анодного конденсатора, осуществляющего фильтрацию выпрямленного напряжения, подаваемого на анод ЭЛТ. В приводимой ниже статье рассказывается о восстановлении подобных ТДКС от мониторов GOLDSTAR 1468, CTX PL5A, SAMSUNG SyncMaster 400b, SAMTRON 50E и DAEWOO CMC-1707B.Первыми признаками приближения подобной неисправности являются периодически слышимые во время работы монитора щелчки (прострелы) – кратковременные пробои в высоковольтном конденсаторе, во время которых пропадает изображение на экране монитора. На рис.1 приведена схема подключения ТДКС типа 6174Z-2001A в выходном каскаде строчной развертки 14"" монитора GOLDSTAR 1468 (CHASSIS NO. CA-32).

ри включении монитора индикатор на передней панели светится, изображение отсутствует, слышен громкий треск. На плате монитора, в районе расположения ТДКС виден "сгоревший" конденсатор. Убедиться в том, что причиной отсутствия изображения является именно пробой высоковольтного анодного конденсатора можно измерив сопротивление между выводом анодного напряжения(присоской на ЭЛТ) и нижним выводом высоковольтного конденсатора – вывод 12 ТДКС, см. рис.2а. У исправного трансформатора данное сопротивление будет составлять величину более 200 МОм (максимальный предел измерения сопротивлений у имеющегося мультиметра Mastech M9502), а у неисправного – десятки:сотни кОм.
Поскольку приобрести новый ТДКС для монитора не удалось, было решено попытаться восстановить работоспособность трансформатора путем устранения влияния пробитого конденсатора на работу схемы монитора (в этом случае его роль в какой-то мере будет выполнять собственная емкость анода ЭЛТ). Ниже приводится методика, составленная на основе собственного опыта по восстановлению ТДКС, целью которой является отключение и изоляция нижнего вывода пробитого конденсатора от других элементов схемы монитора. Для выполнения этого необходимо:
1.-выпаять ТДКС из платы монитора, отключить выводы FOCUS и SCREEN (G2) от платы ЭЛТ, отключить "присоску" от ЭЛТ.
2.-сверлом диаметром около 2 мм, аккуратно высверлить ("выфрезеровать") материал корпуса ТДКС вокруг вывода, удалить сам вывод и провод, уходящий вглубь корпуса к выводу конденсатора, высверлить в этом месте отверстие глубиной около 7:10 мм (см. рис.2б)
3.-удалить опилки из отверстия, обезжирить отверстие и участок корпуса вокруг него спиртом, затем заполнить отверстие и участок вокруг него автогерметиком (см. рис.2в). Мной был использован АВТОГЕРМЕТИК-ПРОКЛАДКА производства ОАО КЗСК, г.Казань, ТУ 2384-031-05666764-96, выпускается в жестяной тубе, масса нетто 75 г, приобретенный в ближайшем магазине автозапчастей.
4.-дать высохнуть герметику, согласно инструкции по применению, в течение 48 часов, затем впаять ТДКС в плату, подключить выводы FOCUS и SCREEN (G2) к плате ЭЛТ, подключить "присоску" к ЭЛТ.

Кроме этого на корпусе ТДКС, в районе расположения высоковольтного конденсатора имеются трещины, которые также заливаются герметиком. Далее необходимо заменить вышедшие из строя элементы схемы монитора, в данном случае это – конденсатор С723 емкостью 1 мкФ_63 В (неэлектролитический).
На рис. 3 представлена схема подключения ТДКС типа 6174Z-1006C/47F13-0770G в выходном каскаде строчной развертки 15"" монитора CTX PL5A (DBL1454EL).

При включении монитора индикатор на передней панели светится, изображение отсутствует, по словам владельца перед этим был слышен громкий щелчок и чувствовался запах гари, при осмотре, на плате монитора заметен обуглившийся R717. Кроме выполнения операций, аналогичных описанным выше для ТДКС типа 6174Z-2001A, необходимо заменить вышедшие из строя элементы схемы монитора – резистор R717 сопротивлением 3.9 кОм, электролитический конденсатор С721 емкостью 1 мкФ_50 В и трехвыводный стабилитрон IC701 типа TL431. После этого работоспособность монитора восстанавливается. Качество работы при этом можно признать удовлетворительным, поскольку становится достаточно заметным изменение размера растра при смене сюжета изображения. К настоящему времени, восстановлена работоспособность двух мониторов CTX PL5A, с подобными дефектами ТДКС.
На рис.4 изображен фрагмент схемы подключения ТДКС типа FKD-15A001 в выходном каскаде строчной развертки монитора SAMSUNG SyncMaster 400b (Basic: CKA4217L).

При включении монитора индикатор на передней панели светится, изображение отсутствует, слышен громкий треск в районе расположения ТДКС. Как и в случае с монитором GOLDSTAR 1468, кроме удаления и заливки герметиком вывода 12, также потребовалось залить герметиком трещину на корпусе трансформатора в месте расположения высоковольтного конденсатора. Для этого по всей длине трещины лучше всего сделать небольшое углубление (канавку) сверлом, диаметром 2:4 мм. Остальные элементы схемы монитора исправны.
На рис.5 представлено подключение ТДКС типа FKG-15A001 в схеме выходного каскада строчной развертки монитора SAMTRON 50E (Basic: CHA5227L).

При включении монитора индикатор на передней панели монитора вспыхивает и сразу же гаснет – срабатывает защита блока питания (БП), при этом перегрузка во вторичных цепях блока не обнаружена. После включения лампы накаливания (220 В/60 Вт) в разрыв цепи напряжения В+, БП запускается нормально, форма ИОХ на коллекторе выходного транзистора строчной развертки (НОТ) Q402 – правильная. Проверка сопротивления цепи: вывод высокого напряжения ТДКС – общий провод монитора, дает результат – 68 кОм, из чего следует, что именно пробой высоковольтного конденсатора является причиной срабатывания защиты БП. После высверливания вывода 12 и заливки герметиком, работоспособность монитора восстанавливается, остальные элементы схемы исправны.
Еще один монитор, ТДКС которого был восстановлен подобным образом – DAEWOO CMC-1707B (17""). В этом мониторе используется трансформатор типа FFA87017U (нижний вывод высоковольтного конденсатора также – 12), после его ремонта, в схеме монитора был заменен вышедший из строя резистор цепи ABL – R468 сопротивлением 3.3 кОм.
В мониторах GOLDSTAR 1468, SAMSUNG SyncMaster 400b, SAMTRON 50E и DAEWOO CMC-1707B, в отличие от монитора CTX PL5A, изменения размеров растра при смене сюжета изображения, после отключения высоковольтного конденсатора не наблюдаются. Качество работы этих мониторов восстанавливается практически в полном объеме, возможно небольшое уменьшение яркости изображения, которое легко скомпенсировать вращением движка регулировочного резистора SCREEN на ТДКС.
Приведенный выше метод можно использовать при восстановлении трансформаторов с пробитым анодным конденсатором и от других моделей мониторов (как впрочем, наверное и телевизоров). При этом важно не забывать после восстановления ТДКС проверять и в случае неисправности заменять элементы схемы ограничения тока лучей (ОТЛ), в иностранной литературе – ABL (Automatic Beam Limiter), поскольку в противном случае, даже при успешном восстановлении ТДКС, изображение на экране монитора будет отсутствовать.
В заключении можно отметить, что хотя вышеописанная методика восстановления ТДКС и не всегда позволяет полностью восстановить прежнее качество работы монитора (например, для CTX PL5A), но думается, что подобный ремонт все же имеет право на существование. Например, как временная мера, на период поиска нового ТДКС, или же в качестве не гарантийного ремонта, по желанию клиента.

Инженер фирмы MM-Company (г.Омск)
Кишков Дмитрий Владимирович

Немного хотелось бы добавить и от себя. Действительно, метод ремонта очень простой и в своём роде оригинален. Таким методом я лично отремонтировал несколько ТДКС от мониторов "Studio Workstation – 520" фирмы LG китайского производства, результаты замечательные. Да и найти такой трансформатор не представляется возможности, нет в "partnambe" мануала. Что и побудило отремонтировать, а что делать? Для заливки высверленного места я использовал плавкий прозрачный компаунд, что используется для приклеивания панели кинескопа (верное название "Малекулярный клей") к самой горловине кинескопа, всё равно при демонтаже её приходится удалять. Плавить следует паяльником с хорошо очищенным жалом, чтоб в компаунд не попала грязь, снижающая надёжность. Так как указывал автор, ёмкостью служит анод кинескопа, после ремонта ТДКС и установки его на место, очень незаметно изменились яркость и фокусировка, что легко устраняется регуляторами "Screen" и "Focus", находящимися на самом трансформаторе. Но лучше все же использовать для заливки материалы тяжело поддающиеся плавлению.

ТДКС, что это такое? Проще сказать — это трансформатор, спрятанный в герметичный корпус, так как напряжения в нем значительные и корпус защищает от высокого напряжения расположенные рядом элементы. ТДКС используется в строчной развертке современных телевизоров.

Раньше в отечественных телевизорах цветных и черно-белых напряжение второго анода кинескопа, ускоряющее и фокусировки, вырабатывалось в два этапа. С помощью ТВС (трансформатор высоковольтный строчный) получалось ускоряющее напряжение, а дальше с помощью умножителя получали напряжение фокусировки и напряжение для второго анода катода.

У ТДКС расшифровка такая — трансформатор диодно-каскадный строчный, вырабатывает напряжение питания второго анода кинескопа 25 — 30 кВ, а так же формирует ускоряющее напряжение 300 — 800 В, напряжение на фокусировки 4 — 7 кВ, подает напряжение на видеоусилители — 200 В, тюнера — 27 31 В и на нити накала кинескопа. В зависимости от ТДКС и схемы построения, формирует дополнительные вторичные напряжения для кадровой развёртки. С ТДКС снимаются сигналы ограничения тока луча кинескопа и автоподстройки частоты строчной развёртки.

Состав трансформатора

Устройство ТДКС рассмотрим на примере тдкс 32-02. Как и положено трансформаторам он имеет первичную обмотку, на которую подается напряжение питания строчной развертки, а также снимается питание для видеоусидителей и вторичные обмотки, для питания уже указанных выше цепей. Количество их может быть различным. Питание второго анода, фокусировки и ускоряющего напряжения происходит в диодно-конденсаторном каскаде с возможностью их регулировки потенциометрами. Еще, что следует отметить это расположение выводов, в большинстве своем трансформаторы бывают U — образные и O — образные.

В таблице ниже приведена распиновка ТДКС 32 02 и его схема.

Характеристика трансформатора, назначение выводов

Нумерация начинается если смотреть снизу, слева на право, по часовой стрелке.

Замена

Подобрать для нужного ТДКС аналоги трудно, но возможно. Просто необходимо сравнить характеристики имеющихся трансформаторов с нужным, по выходным и входным напряжениям, а так же по совпадению выводов. Например, для ТДКС 32 02 аналог — РЕТ-19-03. Однако хотя они идентичны по напряжению, у РЕТ-19-03 отсутствует отдельный вывод заземления, но проблем это не создаст, так как он просто соединен внутри корпуса на другой вывод. Прилагаю для некоторых тдкс аналоги

Иногда не получается найти полный аналог ТДКС, но есть схожий по напряжениям с различием в выводах. В этом случае нужно после установки трансформатора в шасси телевизора, разрезать не совпадающие дорожки и соединить в нужной последовательности кусочками изолированного провода. Будьте внимательны при проведении данной операции.

Поломки

Как и всякая радиодеталь, строчные трансформаторы тоже ломаются. Так как цены на некоторые модели достаточно велики, необходимо сделать точную диагностику поломки, чтобы не выкинуть деньги на ветер. Основные неисправности ТДКС это:

  • пробой корпуса;
  • обрыв обмоток;
  • межвитковые замыкания;
  • обрыв потенциометра screen.

С пробоем изоляции корпуса и обрывом более менее все понятно, а вот межвитковое замыкание выявить достаточно трудно. Например, пищит ТДКС, это может быть вызвано как нагрузкой во вторичных цепях трансформатора, так и межвитковым замыканием. Самое лучшее использовать прибор для проверки ТДКС, ну а если такового нет искать альтернативные варианты. О том, как проверить ТДКС телевизора, можно почитать в статье на сайте «Как проверить трансформатор«.

Восстановление

Пробой — это обычно трещина в корпусе, в этом случае ремонт ТДКС будет достаточно прост. Зачищаем крупной наждачной бумагой трещину, очищаем его, обезжириваем и заливаем эпоксидной смолой. Слой делаем достаточно толстый, не менее 2 мм, для исключения повторного пробоя.

Восстановление ТДКС при обрыве и замыкании витков крайне проблематично. Помочь может только перемотка трансформатора. Никогда не выполнял такую операцию, так как она очень трудоемка, но при желании, конечно, все возможно.

При обрыве обмотки накала лучше ее не восстанавливать, а сформировать из другого места. Для этого наматываем пару витков изолированным проводом вокруг сердечника ТДКС. Направление намотки не важно, но если нить накала не засветилась, поменяйте местами провода. После намотки нужно установить напряжения накала при помощи ограничительного резистора.

Если не регулируется ускоряющее напряжение (screen), то в данном случае можно сформировать его. Для этого надо создать постоянное напряжение около 1kV с возможностью его регулировки. Такое напряжение есть на коллекторе строчного транзистора, импульсы на нем могут быть до 1,5 кВ.

Схема проста, напряжение выпрямляется высоковольтным диодом и регулируется потенциометром, который можно взять с платы кинескопа старого отечественного телевизора 2 или 3УСЦТ.

Форум РадиоКот
http://radiokot.ru/forum/
Кто как проверяет импульсные трансформаторы без разборки?
http://radiokot.ru/forum/viewtopic.php?f=11&t=120939
Страница 1 из 2
Автор: Cahes [ Вс сен 13, 2015 20:53:58 ]
Заголовок сообщения: Кто как проверяет импульсные трансформаторы без разборки?
Прошу поделиться мастерством на предмет проверки импульсных трансформаторов без разборки. Типичный случай – преобразователь не работает, разбираем трансформатор – всё оказывается в порядке. Как узнать без разборки – в чём причина, на что он способен, какой ему режим рекомендован, зазор, рекомендации и тп. Возможно есть компьютерный тестер?
Автор: Телекот [ Вс сен 13, 2015 21:01:44 ]
Заголовок сообщения: Re: Кто как проверяет трансформаторы без разборки?
В импульсных преобразователях трансформатор практически не выходит из строя, так что проверять его надо в последнюю очередь после всех деталей. В моей практике более 30 лет видел 2 дохлых трансформатора. В одном сердечник расклеился другой сожгли сами владельцы.
Автор: Пилот [ Пн сен 14, 2015 08:14:04 ]
Заголовок сообщения: Re: Кто как проверяет импульсные трансформаторы без разборки
Проверять приходится разве что высоковольтные трансы подсветки мониторов на кз витки Я делал с помощью измерителя ЭПС конденсаторов – стал им на первичку и при замыкании исправной вторички показания должны резко упасть, если падают не слишком сильно – межвитковое. Измерением индуктивности можно проверять по таким же признакам
Автор: RadioSanta [ Пн сен 14, 2015 21:47:44 ]
Заголовок сообщения: Re: Кто как проверяет импульсные трансформаторы без разборки
Почитал много инфо на эту тему и лучший метод это генератор+осцилл. Проверял пару раз, на обмотке должна быть синусоида, более-менее, резкие изломы говорят о проблемах. Подавал с генератора 10 вольт синусоиду через резистор 1 ком на первичку и гонял частоту до 50 кГц. Форма синусоиды неважна, не должно быть ступенек.

Кстати, только что сообразил, я тут по случаю прихватизировал фирменный генератор шума НЧ, вот надо его попробовать, как вариант, ну а что, это идея )))

Автор: m.ix [ Пн сен 14, 2015 23:00:51 ]
Заголовок сообщения: Re: Кто как проверяет импульсные трансформаторы без разборки
выискивать козу при прогреве весьма не лёгкая работа.
в общем казу нужно греть.
Автор: RadioSanta [ Пн сен 14, 2015 23:07:27 ]
Заголовок сообщения: Re: Кто как проверяет импульсные трансформаторы без разборки
Зачем? Если есть КЗ при старте на холодном трансформаторе, какой смысл греть?
Автор: Borodach [ Пн сен 14, 2015 23:14:09 ]
Заголовок сообщения: Re: Кто как проверяет импульсные трансформаторы без разборки

Этот прибор позволяет определять исправность трансформатора по добротности обмотки, намотанной толстым проводом и с небольшим количеством витков. Особенно эффективно использование прибора для проверки трансформаторов с ферритовым сердечником: ТВС, ТДКС, ТПИ, а также катушек зажигания автотранспорта. Прибор работает в частотном диапазоне 0,37. 24 кГц. Проверяемый трансформатор подключается к клеммам XI, Х2. Манипулируя R1 и тумблерами SI, S2, настраиваются на резонанс. Если удается добиться показаний РА больших, чем без трансформатора и с выключенными SI, S2, то трансформатор можно считать исправным. При сборке надо знать, что R1 – два переменных резистора, собранных в одном корпусе и изменяющихся синхронно. Конденсаторы С1 и С2 подстраиваются в небольших пределах для получения на выводе 13 микросхемы максимального синусоидального и равномерного на всех частотах сигнала. Вместо диодов VD1, VD6 можно использовать другие высокочастотные диоды. Вместо РА можно использовать любой стрелочный указатель уровня записи бытового аудиомагнитофона.
Электрик №4 2004г стр. 26

Автор: RadioSanta [ Пн сен 14, 2015 23:25:46 ]
Заголовок сообщения: Re: Кто как проверяет импульсные трансформаторы без разборки
Для ТКДС проблему решил просто, купил приборчик маленький, там принцип простой – импульс дает в катушку и считает сколько импульсов при самоиндукции пришло обратно. Если 4 – это хорошо, если 6-8, то гарантированно ТДКС исправен. Конечно добротность играет роль.

Для ИБП сложнее, витков мало, габариты маленькие, я остановился на генераторе с осциллографом, думаю, это лучшее.

Автор: Cahes [ Чт сен 17, 2015 22:47:44 ]
Заголовок сообщения: Re: Кто как проверяет импульсные трансформаторы без разборки
Так, одинаковых трансов не встречаю, проверка сравнением – не вариант. Подход в идеале – вообще просто транс с обмотками воткнуть и узнать – как воткнул.

Про прогрев КЗ не понял.

Сделал такую штуковину на предмет короткозамкнутых витков:

По рекомендациям: разорванный магнитопровод испытуемого трансформатора ввести в разрыв магнитопровода индуктивности резонансного генератора, если есть КЗ-витки – звук резко упадёт или вообще исчезнет.

Использовал дроссель с, думаю витков триста тонкого провода, обмоткой. Собрал блокинг, на ОС несколько десятков витков, на главную обмотку конденсатор (подобрал на несколько килогерц), на смещение регулятор на 10кОм, питание – 9В (от 50-ти герцового транса и двух кренок с тремя конденсаторами фонит безбожно (не ожидал), использую крону). Параллельно главной обмотке телефон на 2200Ом через конденсатор 1мкФ.

Правильно ли я поступил – используя дроссель? Цель – иметь готовый удобно разорванный сердечник.

На фотке справа испытуемый транс. Правильно ли я его испытую?

Этот транс не запускался ни в какую ни при каких параметрах деталей на блокинговом обратноходе на 300В, ни при каких комбинациях фаз, в то время как другие работали. От смещения и нагрева открывался транзистор, но обраткой не закрывался, выгорал. Обмотки звонятся, какие-то индуктивности имеются. Опытом не обладаю, грешу на межвитковое, правильно ли я выбрал путь проверки?

При вносе в поле изменяется тональность звука, падает частота примерно в два раза, плавно и медленно, по мере приближения. Говорит ли это о межвитковом КЗ?

Автор: RadioSanta [ Чт сен 17, 2015 23:07:11 ]
Заголовок сообщения: Re: Кто как проверяет импульсные трансформаторы без разборки
Не идите по простому пути, для этого надо знать заранее индуктивность внешней.
1) Использовать набор похожих катушек. Если генерация срывается – однозначно КЗ.
2) Были схемы похожих пробников, но там катушки одевались на ферритовый стержень. Погрешность большая сразу указывалась в зависимости от внешней проверяемой индуктивности. И даже полная неработоспособность.
3)
Просто индуктивность меняется, такое первое впечатление. Замкните виток, причем большой в диаметре и сравните.
4) Проверять надо на слабом токе, это конечно только блокинг.
Автор: АлексейС [ Сб сен 19, 2015 16:46:49 ]
Заголовок сообщения: Re: Кто как проверяет импульсные трансформаторы без разборки
Сделал себе вот такую хрень: http://e-scope.com.ua/article-7/proverk . aniya.html Звоню якоря,статоры,трансы. При К.З хоть в одной обмотке генерацию настроить не удается.В импульсниках звонится высоковольтная обмотка т.к в низковольтной слишком мало витков
Автор: Электpониk [ Пн ноя 14, 2016 20:55:08 ]
Заголовок сообщения: Re: Кто как проверяет импульсные трансформаторы без разборки
Давно уже пользуюсь таким чудо прибором. Определение исправности импульсных трансформаторов занимает пару секунд и выпаивать не нужно. Называется он BR886A, покупал на алиэкспресс.

Наклейки на русском рисовал сам, так как надписи все были китайскими иероглифами.
Тема для обсуждения прибора и работы с ним тут.
Автор: Телекот [ Пн ноя 14, 2016 21:24:24 ]
Заголовок сообщения: Re: Кто как проверяет импульсные трансформаторы без разборки
И много неисправных трансформаторов нашёл?
Автор: Электpониk [ Вт ноя 15, 2016 14:16:40 ]
Заголовок сообщения: Re: Кто как проверяет импульсные трансформаторы без разборки

Пока только один в блоке питания DVB-T2 приставки, которая была после грозы. Взорвался ШИМ и стабилитрон пробило. Всё заменил, но БП не запускался. Оказалось межвитковое в трансформаторе, прибор BR886 показал E1. Перемотал транс и всё заработало.

Автор: Телекот [ Вт ноя 15, 2016 14:21:00 ]
Заголовок сообщения: Re: Кто как проверяет импульсные трансформаторы без разборки
Грозовой может.
Автор: RadioSanta [ Ср ноя 16, 2016 00:27:23 ]
Заголовок сообщения: Re: Кто как проверяет импульсные трансформаторы без разборки
Мне кажется, что.
Если нормальная индуктивность, то надо мерять по уровню 0.7, относительно амплитуды и конечно только синус с генератора (особенность последующего усреднения сигнала, меандр не нужен).

Сравнивать далее с выпрямленным постоянным напряжением и как только будет искажение амплитуды, то постоянка на выходе ОБЯЗАТЕЛЬНО падает, в зависимости от искажения сигнала. Добротность уже не причем.

Что такое ТДКС распиновка и аналоги

ТДКС, что это такое?  Проще сказать  — это трансформатор, спрятанный в герметичный корпус, так как напряжения в нем значительные и корпус защищает от высокого напряжения расположенные рядом элементы. ТДКС используется в строчной развертке  современных телевизоров.

Раньше в отечественных телевизорах цветных и черно-белых напряжение второго анода кинескопа, ускоряющее и фокусировки, вырабатывалось в два этапа. С помощью ТВС (трансформатор высоковольтный строчный) получалось ускоряющее напряжение, а дальше с помощью умножителя получали напряжение фокусировки и напряжение для второго анода катода.

У ТДКС расшифровка такая  — трансформатор диодно-каскадный строчный, вырабатывает напряжение питания второго анода кинескопа 25 — 30 кВ, а так же формирует ускоряющее напряжение 300 — 800 В, напряжение на фокусировки 4 — 7 кВ,   подает напряжение на видеоусилители  — 200 В, тюнера — 27 31 В и на нити накала кинескопа.  В зависимости от ТДКС и схемы построения, формирует дополнительные вторичные напряжения для кадровой развёртки. С ТДКС снимаются сигналы ограничения тока луча кинескопа и автоподстройки частоты строчной развёртки.

Состав трансформатора

Устройство ТДКС рассмотрим на примере тдкс 32-02. Как и положено трансформаторам он имеет первичную обмотку, на которую подается напряжение питания строчной развертки, а также снимается питание для видеоусидителей и вторичные обмотки, для питания уже указанных выше цепей. Количество их может быть различным.  Питание второго анода, фокусировки и ускоряющего напряжения происходит в диодно-конденсаторном каскаде с возможностью их регулировки потенциометрами. Еще, что следует отметить это расположение выводов, в большинстве своем трансформаторы бывают U — образные и O — образные.

В таблице ниже приведена распиновка  ТДКС 32 02 и его схема.

Характеристика трансформатора, назначение выводов

Тип

колич

вывод

Uанода

Uп

видео

Uп

накал

Uп

26/40В

Uп

15В

ОТЛ

фокус-

корпус

заземл.

R

анод-

фокус

U

питания

развертки

ТДКС-32-02

10

27кВ

1-10

1-2

5-3

5-4

7

11

есть

нет

115 В

Нумерация начинается если смотреть снизу, слева на право,  по часовой стрелке.

Замена

Подобрать для нужного ТДКС аналоги трудно, но возможно. Просто необходимо сравнить характеристики имеющихся трансформаторов с нужным, по выходным и входным напряжениям, а так же по совпадению выводов. Например, для  ТДКС 32 02 аналог — РЕТ-19-03. Однако хотя они идентичны по напряжению, у РЕТ-19-03 отсутствует отдельный вывод заземления, но проблем это не создаст, так как он просто соединен внутри корпуса на другой вывод. Прилагаю для некоторых тдкс аналоги

Иногда не получается найти полный аналог ТДКС, но есть схожий по напряжениям с различием в выводах. В этом случае нужно после установки трансформатора в шасси телевизора, разрезать не совпадающие дорожки и соединить в нужной последовательности кусочками изолированного провода. Будьте внимательны при проведении данной операции.

Поломки

Как и всякая радиодеталь, строчные трансформаторы тоже ломаются. Так как цены на некоторые модели достаточно велики, необходимо сделать точную диагностику поломки, чтобы не выкинуть деньги на ветер. Основные неисправности ТДКС это:

  • пробой корпуса;
  • обрыв обмоток;
  •  межвитковые замыкания;
  • обрыв потенциометра screen.

С пробоем изоляции корпуса и обрывом более менее все понятно, а вот межвитковое замыкание выявить достаточно трудно. Например, пищит ТДКС, это может быть вызвано как нагрузкой во вторичных цепях трансформатора, так и межвитковым замыканием. Самое лучшее использовать  прибор для проверки ТДКС, ну а если такового нет искать альтернативные варианты. О том, как проверить ТДКС  телевизора, можно почитать в статье на сайте  «Как проверить трансформатор«.

Восстановление

Пробой — это обычно трещина в корпусе, в этом случае ремонт ТДКС будет достаточно прост. Зачищаем крупной наждачной бумагой трещину, очищаем его, обезжириваем  и заливаем эпоксидной смолой. Слой делаем достаточно толстый, не менее 2 мм, для исключения повторного пробоя. 

Восстановление ТДКС  при обрыве и замыкании витков крайне проблематично. Помочь может только перемотка трансформатора. Никогда не выполнял такую операцию, так как она очень трудоемка, но при желании, конечно, все возможно.

При обрыве обмотки накала лучше ее не восстанавливать, а сформировать из другого места. Для этого наматываем  пару витков изолированным проводом вокруг сердечника ТДКС. Направление намотки не важно, но если нить накала не засветилась, поменяйте местами провода. После намотки нужно установить напряжения накала при помощи ограничительного резистора.

Если не регулируется ускоряющее напряжение (screen), то в данном случае можно сформировать его.  Для этого надо создать постоянное напряжение около 1kV с возможностью его регулировки. Такое напряжение есть на коллекторе строчного транзистора, импульсы на нем могут быть до 1,5 кВ.

Схема проста, напряжение выпрямляется высоковольтным диодом и регулируется потенциометром, который можно взять с платы кинескопа старого отечественного телевизора 2 или 3УСЦТ.

 

Ремонт строчной развертки телевизора ST TV2106

Всем привет. Сегодня будем ремонтировать телевизор ST TV2106, который не включается.

Модель телевизора

После подачи напряжения, на телевизоре начинает моргать красный светодиод и слышен писк. Скажу сразу, что неисправность я найду, а вот отремонтировать телевизор не выйдет, но о этом ниже в статье.

Разборка, чистка платы и первоначальная диагностика

После снятия задней крышки, первым делом решил почистить плату от пыли.

Состояние платы после снятия задней крышки

Видно, что телевизор собран на стандартном китайском шасси, ремонт которого обычно не очень тяжелый. Дабы немного упростить работы, решил почистить плату от пыли. Для этого, я использовал малярную кисточку и пылесос.

Плата после чистки

Так как после включения слышен писк, то зачатую виновником такого поведения является короткое замыкание в выходных цепях блока питания. В большинстве случаев это сгоревший строчный транзистор.рочный транзистор. Его я и решил проверить на предмет короткого замыкания. Мои подозрения подтвердились, так как строчный транзистор был полностью закорочен.

Проверка строчного транзистора. Транзистор закорочен, мультиметр в режиме прозвонки показывает падение напряжения 0,003 в

Далее, я выпал  транзистор, и  начал искать возможную причину выхода его из строя.

Что бы исключить замыкание на стороне платы, повторно прозвонил транзистор в выпаянном состоянии

Процесс полной диагностики телевизора и устранение неисправностей.

После удаления с платы неисправного транзистора, я решил подать напряжение на плату. Результат порадовал, так как появились все выходные напряжения, в частности питание на строчную развертку составило 111,6 вольт.

Напряжение питания строчной развертки

Для таких телевизоров данное напряжение является нормальным.

Чтобы выяснить истинную причину неисправности строчной развертки, для себя я использую какую последовательность действий:

  • Первым делом, я проверяю на исправность коллекторную ёмкость. Найти ее несложно. Обычно, это пленочный конденсатор номиналом от 6 нанофарад до 20 нанофарад, и напряжением 1600-1800 вольт. Этот конденсатор подключается одной ногой к коллектору строчного транзистора (центральная ножка транзистора), а второй к минусу.
  • Если с конденсатором всё нормально, то следующим под проверку попадает отклоняющая система (далее ОС). Телевизоры с неисправной отклоняющей системой попадаются очень часто. Со временем, лак на проводах ОС повреждается, после чего образуется короткое замыкание.
  • Последним проверяю ТДКС.

Для защиты строчной развертки, я выпаял перемычку от блока питания к ТДКС, и вместо нее впаял лампу накаливания на 60 ВТ. Данная лампа защитит строчный транзистор в случае неправильной работы строчной развертки.

Для установки защитной лампы, я удалил перемычку, и вместо нее запаял лампу накаливания

После установки лампы, начал проверку конденсатора в коллектороной цепи. Им оказался конденсатор 912j на 1800 вольт. Его номинал должен соответствовать 9 нанофарадам. Подключив данный конденсатор к мультиметру, тот показал 8,8 nF, что в пределах нормы.

Проверка коллекторной емкости

После проверки конденсатора, решил впаять строчный транзистор и включить телевизор. Лампа ярко загорелась, что свидетельствовало о том, что строчная развертка работает неправильно, так как идет очень большое потребление тока. В нормальном состоянии лампа должна немного загореться, или вообще не гореть. Это актуально для телевизоров 14-21 дюйм, для телевизоров большей диагонали, необходимо использовать лампу большей мощности, так как потребление тока в таких телевизорах намного больше.

Свечение лампы накаливания при включении телевизора

Если бы я не установил бы лампу, то строчный транзистор сразу бы сгорел.

Следующей под проверку попала ОС (отклоняющая система). Чтобы легко ее проверить, необходимо отключить родную ОС, и вместо нее подкинуть какую-то оску с разборки.

Разъем ОС

Если не знаете на доноре где строчные витки, где кадровые, не беда. Берем мультиметр, и измеряем сопротивление на проводах. Где сопротивление меньше (порядка 6 ом), там у нас строчные катушки, где больше там кадровые.

Поискав у себя в закромах, я нашел ОС для проверки.

ОС с донора для подстановки

Предварительно, я отключил разъем оски от родной платы, и вместо нее припаял строчные катушки донорской ОС.  Кадровые катушки не подпаивал, так как они нам не нужны пока. После этого, кратковременно включил плату. Лампа немного засветилась, после чего потухла.

Подпаял к плате донорскую ОС

Я услышал высокое напряжение, после чего отключил плату. Дело в том, что нельзя на долго включать плату без ОС, так как на кинескопе не будет магнитного поля, и все лучи будут бить в одну точку. На кинескопе будет показывать всего одна точка по центру экрана. Если в таком положении оставить телевизор работать, то получим прогар кинескопа.

Итак, неисправность нашли, далее, я решил снять старую ОС, и вместо нее подкинуть новую.

Процесс снятия ОС. отвинчиваем эти 2 болта, после чего снимаем сначала магниты, потом и саму ОС

Отодрав старый клей, и отвинтив 2 болта у меня это получилось. Подкинув новую оску, и подключив ее к плате, и убрав лампу накаливания, включил телевизор.

Включенный телевизор без подключенных кадровых катушек. Полоса ели проглядывается, это еще при том, что ускоряющее напряжение накручено на 100%

Телевизор включился, но картинка была настолько бледна, при этом отсутствовал один из цветов. Проверив кинескоп на приборе, тот оказался полностью севшим. Созвонившись с хозяином, тот подтвердил, что телевизор ели показывал, и обговорив все детали, пришли к выводу, что ремонтировать телевизор нет смысла.

Вот такой ремонт. Хоть в результате работоспособного телевизора нет, но неисправность была найдена. Вот такой ремонт. Если будут вопросы, создавайте темы на форуме, буду рад ответить. Всем спасибо за внимание, и до скорых встреч в новых ремонтах.

Автор публикации

353 Комментарии: 42Публикации: 53Регистрация: 11-12-2017

схема, частые поломки и как проверить

Один из узлов, применяемых в телевизорах – строчный трансформатор. Рассмотрим конструктивные особенности данного устройства, отличия от обычного трансформатора, способы проверки и прочие сопутствующие вопросы.

Что такое строчный трансформатор и особенности конструкции

Строчным трансформатором называют устройство, применявшееся в телевизорах цветного и чёрно-белого изображения устаревших моделей. Этот аппарат обеспечивал преобразование напряжения, подаваемого на умножитель. В дальнейшем стали использовать диодно-каскадное устройство строчной развёртки.

Данный элемент выдаёт на выходе напряжение в пределах от 25 до 30 кВт, с формированием электрического потока.

Напряжение подаётся на первичную обмотку, с выдачей после преобразования на выходную катушку с заданными параметрами. Аппарат помещается в корпус, выполненный из несгораемого пластика. Корпус оборудован двумя потенциометрами, позволяющими регулировать характеристики ускоряющего и фокусирующего напряжения.

Для изготовления магнитопровода применяются П-образные пластины из феррита, обеспечивающие выполнение заданных задач благодаря свойствам данного материала.

От обычного трансформатора строчный отличается конструктивными особенностями, позволяющими обеспечить на выходе высокое напряжение и приспособленностью к установке в качестве детали телевизора.

Частые поломки и способы ремонта

Трансформаторы строчного типа нередко выходят из строя. Дальнейшая эксплуатация телевизора в данной ситуации невозможна. Замена аппарата связана со сложностями, вызванными их высокой стоимостью. Некоторые модели таких трансформаторов сложно отыскать.

В процессе ремонта требуется замена дефектной схемы. В процессе эксплуатации возможно возникновение следующих неисправностей:

  • обрыва контура;
  • пробоя герметичного корпуса;
  • межвиткового замыкания обмоток;
  • обрыва контакта потенциометра.

Первые две из указанных неисправностей идентифицировать достаточно легко по результатам внешнего осмотра. Ремонт выполняется путём замены вышедших из строя элементов, поиск материала для которых не представляет особенных проблем, поскольку его не сложно найти в любом магазине радиотоваров.

С поиском замыкания между витками обмоток несколько сложнее. Такую неисправность можно определить по писку, издаваемому трансформатором при работе. В данной ситуации выполняется диагностика с использованием специального прибора.

Способы проверки

Для проверки аппарата применяется осциллограф. Прибор подсоединяют к выходу вторичного контура через сопротивление на 10 Ом. Необходимость замены или ремонта устройства возникает при выявлении следующих отклонений:

  • появления замыкания между витками, с выдачей проверочным прибором «прямоугольника» при больших помехах. Если указанная проверка не показала неисправности, величина отклонения может составить несколько долей вольта;
  • при отсутствии напряжения на выходе требуется полная замена выходной катушки по причине обрыва провода;
  • после снятия сопротивления в 10 Ом создаётся нагрузка до 1 кОм на вторичной катушке и замеряются параметры напряжения на выходе. Если всё в порядке, она соответствует входным характеристикам. При наличии отклонения требуется ремонт или полная замена.

Другие неисправности происходят с меньшей вероятностью, и их не сложно определить самостоятельно человеку, обладающему начальным уровнем знаний в области электротехники.

При подозрении на пробой транзистора, данный элемент извлекается и проверяется работа устройства без него. В случае значительного превышения заданных характеристик, элемент необходимо заменить на идентичный.

Перемотка катушки – достаточно трудоёмкая операция. Поэтому контур проще заменить, чем восстанавливать.

Также в ходе осмотра о неисправностях могут свидетельствовать следы гари на деталях, видимые обрывы контактов. Неисправные элементы следует заменить, не помешает дополнительно пропаять контакты.

Аналоги устройства

Если необходимую модель строчного трансформатора сложно найти, оригинальное изделие можно заменить на аналогичное. Аналог подбирается по соответствующим характеристикам, указанным в документации, которой сопровождается прибор от изготовителя.

Кроме параметров, аналог должен соответствовать по габаритам и особенностям подключения.

Строчный трансформатор – важный узел, без исправного состояния которого работа телевизора невозможна. При подозрении на неисправность необходимо провести тщательную диагностику и ремонт или замену, в зависимости от результатов проверки.

Как полностью протестировать ЖК-инверторный трансформатор

Высоковольтный трансформатор ЖК-телевизора / монитора предназначен для создания высокого переменного напряжения (от нескольких сотен до более тысячи вольт переменного тока) для включения подсветки CCFL. Если у этого трансформатора есть проблема, это приведет к тому, что ЖК-экран загорится на секунду, а затем отключится или возникнет проблема с тусклым дисплеем.В основном трансформатор высокого напряжения может иметь четыре типа проблем, таких как:

1) Обрыв, особенно вторичная обмотка

2) Короткое замыкание во вторичной обмотке

3) Увеличение сопротивления вторичной обмотки

4) Поломка под нагрузкой

Примечание: первичная обмотка кажется довольно прочной и редко вызывает проблемы.

Как мы узнаем, неисправен ли высоковольтный трансформатор? Ответ на этот вопрос - использовать подходящее испытательное оборудование для проверки.

1) Обрыв, особенно вторичная обмотка

Вся вторичная обмотка должна иметь сопротивление от нескольких сотен до нескольких тысяч Ом. Просто поместите омметр на вторичные контакты, и вы должны получить показание в омах. Если вы не получили никаких показаний, значит, вторичная обмотка уже разомкнута.

Открытая вторичная обмотка может вызвать отключение дисплея через несколько секунд или тусклый дисплей в зависимости от того, сколько трансформаторов используется в схеме.Это означает, что если в схеме используется только один высоковольтный трансформатор для поддержки одной подсветки, и если вторичная обмотка разомкнута, тогда возникнет проблема с тусклым дисплеем. Если в нем используются два трансформатора и одна из вторичных обмоток трансформатора имеет обрыв, то симптомом будет отключение дисплея через секунду или две.

Примечание. Первичная обмотка также имеет сопротивление, а значение Ом очень мало.

2) Короткое замыкание во вторичной обмотке

Если есть закороченная вторичная обмотка, обычный мультиметр не сможет ее обнаружить.Вам необходимо использовать тестер катушек, например Blue Ring Tester. Для высоковольтного трансформатора гораздо большего размера можно ожидать, что загорится как минимум 4 светодиода. Если тестер вообще не загорелся, значит, вторичная обмотка закорочена.

Примечание: Вы также должны принять во внимание, что небольшая вторичная обмотка высоковольтного трансформатора может не считываться тестером синего кольца. Тестер мог считывать только 2 или 3 светодиода. Однако, если ЖК-инвертор имеет более одного высоковольтного трансформатора, то будет легко оценить результат (сравнительный тест).

Вы можете использовать метод сравнения на двух трансформаторах и найти неисправный

В некоторых конструкциях имеется только один трансформатор, но вы все равно можете сравнить обмотку, потому что вышеуказанный трансформатор имеет одну первичную обмотку и две вторичные обмотки

3) Увеличение сопротивления вторичной обмотки

Вы будете удивлены, что сопротивление вторичной обмотки может увеличиваться при возникновении проблемы.Это происходит из-за длительного повышения температуры в высоковольтном трансформаторе.

Если вы заметили резкую разницу в показаниях Ома (обычно более высокое сопротивление), это означает, что трансформатор неисправен.

Я обнаружил, что многие проблемы с высоковольтными трансформаторами с ЖК-дисплеями связаны с увеличением сопротивления вторичной обмотки одного из трансформаторов .

Примечание. При проверке двух одинаковых трансформаторов допустимы незначительные различия в показаниях сопротивления.

Большинство плат инвертора с ЖК-дисплеем имеют более одного высоковольтного трансформатора, поэтому будет легко сравнить вторичную обмотку и определить проблемную.

4) Поломка под нагрузкой

Хотя встречается редко, я встречал один раньше. Сверху вторичной обмотки я увидел очень маленькую искру, пока работал инвертор ЖК-монитора. Это вызвало периодическое отключение дисплея. Когда я вынул трансформатор и протестировал его, он вроде нормально работает.Замена вернула к жизни ЖК-монитор.

Теперь вопрос: что, если трансформатор полностью накрыт и искры не видно? В этом случае решить ее будет непросто. Что вы можете сделать, так это убедиться, что в цепи инвертора нет неисправных компонентов и все индикаторы CCFL исправны (вы можете проверить их с помощью тестера подсветки CCFL). Проверьте трансформатор на предмет хорошего сопротивления и убедитесь в отсутствии короткого замыкания (проверьте его с помощью тестера с синим кольцом).Это означает, что если вы проверили все детали, а на ЖК-мониторе или телевизоре по-прежнему возникают проблемы с периодическим отключением дисплея, то есть вероятность, что один из высоковольтных трансформаторов может выйти из строя под нагрузкой.

Заключение. Надеюсь, что данная статья поможет вам в решении проблемы с ЖК-дисплеем, связанной с высоковольтным трансформатором инвертора. Если у вас есть дополнительный метод тестирования / проверки трансформатора высокого напряжения, пожалуйста, оставьте свой комментарий ниже - спасибо.

Эта статья представлена ​​вам Jestine Yong

Пожалуйста, поддержите, нажав на кнопки социальных сетей ниже.Ваш отзыв о публикации приветствуется. Пожалуйста, оставьте это в комментариях.

P.S- Знаете ли вы кого-нибудь из ваших друзей, кому понравился бы этот контент, который вы сейчас читаете? Если да, отправьте этот веб-сайт своим друзьям, или вы можете пригласить своих друзей подписаться на мою информационную рассылку бесплатно по этой ссылке Ссылка .

Вас также может заинтересовать выключение ЖК-телевизора и монитора по ссылке ниже:

https://www.jestineyong.com/lcd-tv-and-lcd-monitor-shutdown-problem/

Нравится (395) Не нравится (2).

Как использовать Tfidftransformer и Tfidfvectorizer - Краткое руководство

Scikit-learn Tfidftransformer и Tfidfvectorizer нацелены на то же самое, а именно на преобразование набора исходных документов в матрицу функций TF-IDF. Различия между двумя модулями могут сбивать с толку, и трудно понять, когда использовать какой. В этой статье показано, как правильно использовать каждый модуль, различия между ними и некоторые рекомендации о том, что и когда использовать.

Tfidftransformer Использование

1. Набор данных и импорт

Ниже у нас есть 5 игрушечных документов, все о моей кошке и моей мышке, которые счастливо живут вместе в моем доме. Мы собираемся использовать этот игрушечный набор данных для вычисления оценок слов в этих документах по tf-idf.

Мы также импортируем сюда необходимые модули, в том числе TfidfTransformer и CountVectorizer .

 импортировать панды как pd из sklearn.feature_extraction.text импортировать TfidfTransformer из sklearn.feature_extraction.text импортировать CountVectorizer # это очень игрушечный пример, не пробуйте его дома, если вы не хотите понимать различия в использовании docs = ["в доме была маленькая мышка", "кот увидел мышь", "мышь убежала из дома", "кот наконец-то съел мышь", "конец истории мыши" ] 

2. Инициализировать CountVectorizer

Чтобы начать использовать TfidfTransformer , вам сначала необходимо создать CountVectorizer для подсчета количества слов (частоты терминов), ограничения размера словарного запаса, применения стоп-слов и т. Д.Код ниже делает именно это.

 #instantiate CountVectorizer () cv = CountVectorizer () # этот шаг генерирует количество слов для слов в ваших документах word_count_vector = cv.fit_transform (документы) 

Теперь давайте проверим форму. У нас должно быть 5 строк (5 документов) и 16 столбцов (16 уникальных слов без слов из одного символа):

 word_count_vector.shape 
 (5, 16) 

Милая, это то, что мы хотим! Пришло время вычислить IDF. Обратите внимание, что в этом примере мы используем все значения по умолчанию с CountVectorizer.Фактически вы можете указать собственный список стоп-слов, установить минимальное количество слов и т. Д. См. Эту статью о том, как использовать CountVectorizer.

3. Вычислить значения IDF.

Теперь мы собираемся вычислить значения IDF, вызвав tfidf_transformer.fit (word_count_vector) для подсчета слов, вычисленного нами ранее.

 tfidf_transformer = TfidfTransformer (smooth_idf = True, use_idf = True) tfidf_transformer.fit (word_count_vector) 

Чтобы получить представление о том, как выглядят значения IDF, мы собираемся распечатать их, поместив значения IDF в DataFrame Python.Значения будут отсортированы в порядке возрастания.

 # выводить значения idf df_idf = pd.DataFrame (tfidf_transformer.idf_, index = cv.get_feature_names (), columns = ["idf_weights"]) # Сортировать по возрастанию df_idf.sort_values ​​(by = ['idf_weights']) 
Результирующие значения IDF

Обратите внимание, что слова «мышь» и «the» имеют самые низкие значения IDF. Это ожидается, поскольку эти слова встречаются в каждом документе в нашей коллекции. Чем ниже значение IDF слова, тем менее уникально оно для любого конкретного документа.

Импорт Примечание: На практике ваша IDF должна быть основана на большом корпусе текста.

4. Вычислите оценку TFIDF для своих документов.

После того, как у вас есть значения IDF, вы можете вычислить оценки tf-idf для любого документа или набора документов. Давайте посчитаем оценки tf-idf для 5 документов в нашей коллекции.

 # счетная матрица count_vector = cv.transform (документы) # tf-idf оценки tf_idf_vector = tfidf_transformer.transform (count_vector) 

Первая строка выше получает количество слов для документов в разреженной матричной форме.Мы могли бы использовать word_count_vector сверху. Однако на практике вы можете вычислять оценки tf-idf для набора новых невидимых документов. Когда вы это сделаете, вам сначала нужно будет выполнить cv.transform (your_new_docs) , чтобы сгенерировать матрицу подсчета слов.

Затем, вызвав tfidf_transformer.transform (count_vector) , вы, наконец, вычислите оценки tf-idf для своих документов. Внутренне это вычисляет умножение tf * idf , где частота вашего термина взвешивается его значениями IDF.

Теперь давайте напечатаем значения tf-idf первого документа, чтобы посмотреть, имеет ли это смысл. Ниже мы помещаем оценки tf-idf из первого документа во фрейм данных pandas и сортируем его в порядке убывания оценок.

 feature_names = cv.get_feature_names () # get tfidf vector для первого документа first_document_vector = tf_idf_vector [0] # распечатайте партитуры df = pd.DataFrame (first_document_vector.T.todense (), index = feature_names, columns = ["tfidf"]) df.sort_values ​​(by = ["tfidf"], ascending = False) 

Tf-idf оценок первого документа:

tf-idf значений с использованием Tfidftransformer

Обратите внимание, что только определенные слова имеют оценки.Это потому, что наш первый документ - это «В доме была маленькая мышка» все слова в этом документе имеют оценку tf-idf, а все остальное отображается как ноль. Обратите внимание, что в этом списке отсутствует слово «а». Возможно, это связано с внутренней предварительной обработкой CountVectorizer, когда он удаляет отдельные символы.

Приведенные выше оценки имеют смысл. Чем чаще встречается слово в документах, чем ниже его оценка и чем уникальнее слово для нашего первого документа (например, «было» и «крошечный»), тем выше оценка.Так что он работает, как и ожидалось, за исключением загадочных и , которые были отрублены.

Использование Tfidfvectorizer

Теперь мы собираемся использовать те же 5 документов, что и выше, чтобы сделать то же самое, что и для Tfidftransformer, то есть получить оценки tf-idf для набора документов. Но обратите внимание, насколько это намного короче.

С Tfidfvectorizer вы вычисляете количество слов, значения idf и tf-idf одновременно. Это действительно просто.

 из sklearn.feature_extraction.текстовый импорт TfidfVectorizer # настройки, которые вы используете для векторизатора подсчета, будут здесь tfidf_vectorizer = TfidfVectorizer (use_idf = True) # просто отправьте сюда все свои документы tfidf_vectorizer_vectors = tfidf_vectorizer.fit_transform (документы) 

Теперь напечатаем значения tfidf для первого документа из нашей коллекции. Обратите внимание, что эти значения идентичны значениям из Tfidftransformer, единственное, что делается всего за два шага.

 # получить первый вектор (для первого документа) first_vector_tfidfvectorizer = tfidf_vectorizer_vectors [0] # поместить значения tf-idf во фрейм данных pandas df = pd.DataFrame (first_vector_tfidfvectorizer.T.todense (), index = tfidf_vectorizer.get_feature_names (), columns = ["tfidf"]) df.sort_values ​​(by = ["tfidf"], ascending = False) 
значений tf-idf с использованием Tfidfvectorizer

Вот еще один способ сделать это, вызвав fit и transform по отдельности, и вы получите те же результаты.

 tfidf_vectorizer = TfidfVectorizer (use_idf = True) # просто отправьте сюда все свои документы Fitted_vectorizer = tfidf_vectorizer.fit (документы) tfidf_vectorizer_vectors = подогнанный_вектор.преобразовать (документы) 

Tfidftransformer против Tfidfvectorizer

В итоге, основные различия между двумя модулями заключаются в следующем:

С Tfidftransformer вы будете систематически вычислять количество слов с помощью CountVectorizer , а затем вычислять Inverse Document Frequency (частота IDF) . значения и только затем вычислить оценки Tf-idf.

С Tfidfvectorizer , наоборот, вы выполните все три шага одновременно. Под капотом он вычисляет количество слов, значения IDF и оценки Tf-idf, используя один и тот же набор данных.

Что и когда использовать?

Итак, теперь вам может быть интересно, почему вы должны использовать больше шагов, чем необходимо, если вы можете сделать все за два шага. Ну, есть случаи, когда вы хотите использовать Tfidftransformer вместо Tfidfvectorizer, и иногда это не так очевидно. Вот общее руководство:

  • Если вам нужны термины «векторы частоты (количество терминов) для различных задач, используйте Tfidftransformer ».
  • Если вам нужно вычислить оценки tf-idf для документов в вашем «обучающем» наборе данных, используйте Tfidfvectorizer
  • Если вам нужно вычислить оценки tf-idf для документов вне вашего «обучающего» набора данных, используйте любой из них, оба будет работать .

Ресурсы

Рекомендуемая литература

Связанные

.

java - Как контролировать окончания строк, создаваемые javax.xml.transform.Transformer?

Переполнение стека
  1. Около
  2. Продукты
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд
.

Как обучить новую языковую модель с нуля с помощью трансформаторов и токенизаторов

За последние несколько месяцев мы внесли несколько улучшений в наши библиотеки transformers и tokenizers , с целью упростить обучение новой языковой модели с нуля .

В этом посте мы продемонстрируем, как обучить «маленькую» модель (84 параметра M = 6 слоев, 768 скрытых размеров, 12 головок внимания) - такое же количество слоев и головок, что и у DistilBERT - на Esperanto .Затем мы настроим модель для последующей задачи по тегированию части речи.

Эсперанто - это сконструированный язык с целью облегчения изучения. Мы выбрали его для этой демонстрации по нескольким причинам:

  • Это язык с относительно небольшими ресурсами (хотя на нем говорят около 2 миллионов человек), поэтому эта демонстрация менее скучна, чем обучение еще одной модели английского языка English
  • его грамматика очень регулярна (например, все нарицательные существительные заканчиваются на -o, все прилагательные на -a), поэтому мы должны получить интересные лингвистические результаты даже на небольшом наборе данных.
  • , наконец, всеобъемлющая цель, лежащая в основе языка, - сближать людей (способствовать миру во всем мире и международному взаимопониманию), что, как можно утверждать, соответствует цели сообщества НЛП 💚

N.B. Вам не нужно понимать эсперанто, чтобы понять этот пост, но если вы действительно хотите выучить его, у Duolingo есть хороший курс с 280 тысячами активных учеников.

Наша модель будет называться… подождите… EsperBERTo 😂

1.Найдите набор данных

Во-первых, давайте найдем корпус текста на эсперанто. Здесь мы воспользуемся эсперанто-частью корпуса OSCAR от INRIA. OSCAR - это огромный многоязычный корпус, полученный путем классификации языков и фильтрации дампов Common Crawl в Интернете.

Эсперанто-часть набора данных составляет всего 299M, поэтому мы объединим ее с подкорпусом эсперанто Лейпцигской корпоративной коллекции, который состоит из текста из различных источников, таких как новости, литература и Википедия.

Окончательный обучающий корпус имеет размер 3 ГБ, что все еще мало - для вашей модели вы получите лучшие результаты, чем больше данных вы сможете получить для предварительного обучения.

2. Обучить токенизатор

Мы решили обучить токенизатор кодирования пар байтов на уровне байтов (такой же, как GPT-2) с теми же специальными токенами, что и RoBERTa. Возьмем произвольно его размер - 52 000.

Мы рекомендуем обучать BPE байтового уровня (а не, скажем, токенизатор WordPiece, такой как BERT), потому что он начнет строить свой словарь из однобайтного алфавита, поэтому все слова будут разложены на токены (не более жетона!).

  from pathlib import Path из токенизаторов импортировать ByteLevelBPETokenizer paths = [str (x) для x в Path ("./ eo_data /"). glob ("** / *. txt")] tokenizer = ByteLevelBPETokenizer () tokenizer.train (файлы = пути, vocab_size = 52_000, min_frequency = 2, special_tokens = [ "", "<панель>", "", "", "<маска>", ]) tokenizer.save_model (".", "esperberto")  

А вот немного ускоренный захват вывода:

В нашем наборе данных обучение заняло около 5 минут.

🔥🔥 Ого, это было быстро! 000

Теперь у нас есть vocab.json , который представляет собой список наиболее часто используемых токенов, ранжированных по частоте, и список слияний merges.txt .

  { «»: 0, «»: 1, "": 2, "": 3, «<маска>»: 4, "!": 5, "\" ": 6, «#»: 7, «$»: 8, «%»: 9, «&»: 10, "'": 11, "(": 12, ")": 13, # ... } # merges.txt я Ġ к на Ġ la т а Ġ е Ġ г Ġ п #...  

Что замечательно, так это то, что наш токенизатор оптимизирован для эсперанто. По сравнению с универсальным токенизатором, обученным для английского языка, больше родных слов представлено одним неразделенным токеном. Диакритические знаки, то есть символы с ударением, используемые в эсперанто - , ĝ , ĥ , ĵ , ŝ и ŭ - кодируются изначально. Мы также представляем последовательности более эффективным образом. Здесь, в этом корпусе, средняя длина кодированных последовательностей на ~ 30% меньше, чем при использовании предварительно обученного токенизатора GPT-2.

Вот как вы можете использовать его в токенизаторах , включая обработку специальных токенов RoBERTa - конечно, вы также сможете использовать его напрямую из преобразователей .

  из токенизаторов. Имплементации импорта ByteLevelBPETokenizer from tokenizers.processors import BertProcessing tokenizer = ByteLevelBPETokenizer ( "./models/EsperBERTo-small/vocab.json", "./models/EsperBERTo-small/merges.txt", ) tokenizer._tokenizer.post_processor = BertProcessing ( ("", токенизатор.token_to_id ("")), ("", tokenizer.token_to_id ("")), ) tokenizer.enable_truncation (max_length = 512) Распечатать( tokenizer.encode ("Mi estas Julien.") )  

3. Обучение языковой модели с нуля

Обновление: Связанный блокнот Colab использует наш новый Trainer напрямую, а не через скрипт. Не стесняйтесь выбирать подход, который вам больше всего нравится.

Теперь мы обучим нашу языковую модель, используя run_language_modeling.py из transformers (недавно переименован из run_lm_finetuning.py , поскольку теперь он поддерживает обучение с нуля более плавно). Просто не забудьте оставить --model_name_or_path to None для обучения с нуля по сравнению с существующей моделью или контрольной точкой.

Мы обучим модель, подобную RoBERTa, которая является BERT-подобной с парой изменений (подробнее см. В документации).

Поскольку модель похожа на BERT, мы обучим ее на задаче Моделирование маскированного языка , т.е.е. предсказывает, как заполнять произвольные токены, которые мы случайным образом маскируем в наборе данных. Об этом позаботится пример сценария.

Нам просто нужно сделать две вещи:

  • реализует простой подкласс Dataset , который загружает данные из наших текстовых файлов
    • В зависимости от вашего варианта использования вам может даже не понадобиться писать собственный подкласс набора данных, если один из приведенных примеров ( TextDataset и LineByLineTextDataset ) работает, но есть много настраиваемых настроек, которые вы, возможно, захотите добавить в зависимости от того, как выглядит ваш корпус.
  • Выбирайте разные наборы гиперпараметров и экспериментируйте с ними.

Вот простая версия нашего набора EsperantoDataset.

  из набора данных импорта torch.utils.data класс EsperantoDataset (набор данных): def __init __ (самостоятельно, оценить: bool = False): tokenizer = ByteLevelBPETokenizer ( "./models/EsperBERTo-small/vocab.json", "./models/EsperBERTo-small/merges.txt", ) tokenizer._tokenizer.post_processor = BertProcessing ( ("", токенизатор.token_to_id ("")), ("", tokenizer.token_to_id ("")), ) tokenizer.enable_truncation (max_length = 512) self.examples = [] src_files = Путь ("./ data /"). glob ("* - eval.txt") если оценить иначе Путь ("./ data /"). glob ("* - train.txt") для src_file в src_files: print ("🔥", src_file) lines = src_file.read_text (encoding = "utf-8"). splitlines () self.examples + = [x.ids для x в tokenizer.encode_batch (строки)] def __len __ (сам): вернуть len (self.Примеры) def __getitem __ (self, i): вернуть torch.tensor (self.examples [i])  

Если ваш набор данных очень большой, вы можете выбрать загрузку и разметку примеров на лету, а не в качестве этапа предварительной обработки.

Вот один конкретный набор из гиперпараметров и аргументов, которые мы передаем скрипту:

  - каталог_вывода ./models/EsperBERTo-small-v1 --model_type Роберта --mlm --config_name ./models/EsperBERTo-small --tokenizer_name./ модели / EsperBERTo-small --do_train --do_eval --learning_rate 1e-4 --num_train_epochs 5 --save_total_limit 2 --save_steps 2000 --per_gpu_train_batch_size 16 --evaluate_during_training - семя 42  

Как обычно, выберите самый большой размер пакета, который вы можете уместить на вашем графическом процессоре (ах).

🔥🔥🔥 Приступим к тренировкам !! 🔥🔥🔥

Здесь вы можете проверить нашу Tensorboard для одного конкретного набора гиперпараметров:

Наши примеры скриптов по умолчанию регистрируются в формате Tensorboard под запусков / .Затем, чтобы просмотреть свою доску, просто запустите tensorboard dev upload --logdir запускает - это настроит tensorboard.dev, управляемую Google версию, которая позволяет вам поделиться своим экспериментом ML с кем угодно.

4. Убедитесь, что LM действительно обучил

Помимо наблюдения за снижением потерь на обучение и оценку, самый простой способ проверить, изучает ли наша языковая модель что-нибудь интересное, - это использовать FillMaskPipeline .

Конвейеры

- это простые оболочки для токенизаторов и моделей, а оболочка 'fill-mask' позволит вам ввести последовательность, содержащую замаскированный токен (здесь ), и вернуть список наиболее вероятных заполненных последовательностей с их вероятности.

  из импортного трубопровода трансформаторов fill_mask = трубопровод ( "заливка-маска", model = "./ models / EsperBERTo-small", tokenizer = "./ models / EsperBERTo-small" ) result = fill_mask ("La suno <маска>.")  

Хорошо, простой синтаксис / грамматика работает. Давайте попробуем немного более интересную подсказку:

  fill_mask ("Jen la komenco de bela <маска>.")  

« Jen la komenco de bela tago », действительно!

С помощью более сложных подсказок вы можете проверить, отражает ли ваша языковая модель больше семантических знаний или даже какой-то (статистический) здравый смысл.

5. Выполните точную настройку LM для выполнения последующих задач

Теперь мы можем точно настроить нашу новую языковую модель эсперанто для последующей задачи тегирования части речи.

Как упоминалось ранее, эсперанто - это очень регулярный язык, в котором окончания слов обычно определяют грамматическую часть речи. Используя набор данных аннотированных тегов POS на эсперанто, отформатированных в формате CoNLL-2003 (см. Пример ниже), мы можем использовать сценарий run_ner.py из transformers .

POS-теги - это задача классификации токенов, такая же, как и NER, поэтому мы можем просто использовать тот же самый сценарий.

Опять же, вот размещенная на хосте Tensorboard для этой тонкой настройки. Мы тренируемся в течение 3 эпох, используя размер пакета 64 на GPU.

Потери при обучении и оценке сводятся к небольшим остаточным значениям, поскольку задача довольно проста (язык - обычный) - все еще интересно иметь возможность обучать ее от начала до конца 😃.

На этот раз давайте использовать TokenClassificationPipeline :

  от импорта трансформаторов Токен Классификация Трубопровод, трубопровод MODEL_PATH = "./ models / EsperBERTo-small-pos / " nlp = pipeline ( "нер", модель = MODEL_PATH, tokenizer = MODEL_PATH, ) нлп ("Mi estas viro kej estas tago varma.")  

Похоже, заработало! 🔥

Для более сложного набора данных для NER @ stefan-it рекомендовал, чтобы мы могли обучиться на наборе данных серебряного стандарта из WikiANN

6. Поделитесь своей моделью 🎉

Наконец, когда у вас есть хорошая модель, подумайте о том, чтобы поделиться ею с сообществом:

  • загрузите свою модель с помощью интерфейса командной строки: transformers-cli upload
  • написать README.md model card и добавьте ее в репозиторий под model_cards / . В идеале ваша модельная карточка должна включать:
    • описание модели,
    • обучающих параметров (набор данных, предварительная обработка, гиперпараметры),
    • результатов оценки,
    • Предполагаемое использование и ограничения
    • все, что еще может пригодиться! 🤓

ТАДА!

➡️ У вашей модели есть страница на https://huggingface.co/models, и каждый может загрузить ее с помощью AutoModel.from_pretrained ("имя пользователя / имя_модели") .

Если вы хотите взглянуть на модели на разных языках, посетите https://huggingface.co/models

Спасибо!

.

Как работают трансформаторы. Трансформаторы - это разновидность нейронной… | Джулиано Джакалья

Нейронная сеть, используемая Open AI и DeepMind

Трансформаторы - это тип архитектуры нейронных сетей, который набирает популярность. Трансформеры недавно использовались OpenAI в своих языковых моделях, а также недавно использовались DeepMind для AlphaStar - своей программы, чтобы победить лучшего профессионального игрока в Starcraft. Преобразователи

были разработаны для решения задачи преобразования последовательности , или нейронных машин. Это означает любую задачу, которая преобразует входную последовательность в выходную последовательность. Сюда входит распознавание речи, преобразование текста в речь и т. Д.

Преобразование последовательности. Входные данные представлены зеленым цветом, модель - синим, а выход - фиолетовым. GIF от 3

Для моделей, выполняющих преобразование последовательности , необходимо иметь какую-то память. Например, предположим, что мы переводим следующее предложение на другой язык (французский):

«Трансформеры» - японская [[хардкор-панк]] группа.Группа была образована в 1968 году, в разгар истории японской музыки »

В этом примере слово« группа »во втором предложении относится к группе« Трансформеры », представленной в первом предложении. Когда вы читаете о группе во втором предложении, вы знаете, что это относится к группе «Трансформеры». Это может быть важно для перевода. Есть много примеров, когда слова в некоторых предложениях относятся к словам в предыдущих предложениях.

Для перевода подобных предложений модель должна определять такого рода зависимости и связи.Рекуррентные нейронные сети (RNN) и сверточные нейронные сети (CNN) были использованы для решения этой проблемы из-за их свойств. Давайте рассмотрим эти две архитектуры и их недостатки.

Рекуррентные нейронные сети имеют в себе петли, позволяющие информации сохраняться.

Вход представлен как x_t

На рисунке выше мы видим часть нейронной сети, A, , обрабатывающую некоторый вход x_t и выводящую h_t. Цикл позволяет передавать информацию от одного шага к другому.

Петли можно мыслить иначе. Рекуррентную нейронную сеть можно представить как несколько копий одной и той же сети, A , каждая из которых передает сообщение своему преемнику. Рассмотрим, что произойдет, если мы развернем цикл:

Развернутая рекуррентная нейронная сеть

Эта цепочечная природа показывает, что рекуррентные нейронные сети явно связаны с последовательностями и списками. Таким образом, если мы хотим перевести какой-то текст, мы можем установить каждый ввод как слово в этом тексте.Рекуррентная нейронная сеть передает информацию из предыдущих слов в следующую сеть, которая может использовать и обрабатывать эту информацию.

На следующем рисунке показано, как обычно работает модель от последовательности к последовательности с использованием рекуррентных нейронных сетей. Каждое слово обрабатывается отдельно, и результирующее предложение генерируется путем передачи скрытого состояния на этап декодирования, который затем генерирует выходные данные.

GIF от 3

Проблема долгосрочных зависимостей

Рассмотрим языковую модель, которая пытается предсказать следующее слово на основе предыдущих.Если мы пытаемся предсказать следующее слово предложения «облака в небе» , нам не нужен дальнейший контекст. Совершенно очевидно, что следующим словом будет небо.

В этом случае, когда разница между релевантной информацией и местом, которое необходимо, невелика, RNN могут научиться использовать прошлую информацию и выяснить, какое слово будет следующим в этом предложении.

Изображение из 6

Но есть случаи, когда нам нужно больше контекста. Например, предположим, что вы пытаетесь угадать последнее слово текста: «Я вырос во Франции… Я говорю свободно…». Недавняя информация предполагает, что следующим словом, вероятно, является язык, но если мы хотим сузить, какой язык, нам нужен контекст Франции, который находится дальше по тексту.

Изображение из 6

RNN становится очень неэффективным, когда разрыв между релевантной информацией и точкой, где она необходима, становится очень большим. Это связано с тем, что информация передается на каждом шаге, и чем длиннее цепочка, тем более вероятно, что информация будет потеряна по цепочке.

Теоретически RNN могут изучить эту долговременную зависимость.На практике они, кажется, не изучают их. LSTM, особый тип RNN, пытается решить эту проблему.

При составлении календаря на день мы расставляем по приоритетам встречи. Если есть что-то важное, мы можем отменить некоторые встречи и согласовать то, что важно.

RNN этого не делают. Всякий раз, когда он добавляет новую информацию, он полностью преобразует существующую информацию, применяя функцию. Изменяется вся информация, и не учитывается, что важно, а что нет.

LSTM вносят небольшие изменения в информацию путем умножения и сложения. В LSTM информация проходит через механизм, известный как состояния ячейки. Таким образом, LSTM могут выборочно запоминать или забывать то, что важно и не так важно.

Внутри LSTM выглядит следующим образом:

Изображение из 6

Каждая ячейка принимает в качестве входных данных x_t (слово в случае перевода предложения в предложение), предыдущее состояние ячейки и выход предыдущей ячейки .Он манипулирует этими входными данными и на их основе генерирует новое состояние ячейки и выходные данные. Я не буду вдаваться в подробности о механике каждой ячейки. Если вы хотите понять, как работает каждая ячейка, я рекомендую сообщение в блоге Кристофера:

С состоянием ячейки информация в предложении, которая важна для перевода слова, может передаваться от одного слова к другому при переводе.

Проблема с LSTM

Та же проблема, что обычно случается с RNN, случается с LSTM, т.е.е. когда предложения слишком длинные, LSTM все равно не работают. Причина этого в том, что вероятность сохранения контекста для слова, которое находится далеко от текущего обрабатываемого слова, экспоненциально уменьшается с удалением от него.

Это означает, что когда предложения длинные, модель часто забывает содержание удаленных позиций в последовательности. Другая проблема с RNN и LSTM заключается в том, что трудно распараллелить работу по обработке предложений, поскольку вам придется обрабатывать слово за словом.Не только это, но еще и не существует модели зависимостей дальнего и ближнего действия. Подводя итог, можно сказать, что LSTM и RNN представляют 3 проблемы:

  • Последовательные вычисления препятствуют распараллеливанию
  • Отсутствует явное моделирование зависимостей на большом и малом расстоянии
  • «Расстояние» между позициями линейно

Для решения некоторых из этих проблем исследователи создали техника обращения внимания на конкретные слова.

При переводе предложения я обращаю особое внимание на слово, которое сейчас перевожу.Когда я расшифровываю аудиозапись, я внимательно слушаю отрывок, который активно записываю. И если вы попросите меня описать комнату, в которой я сижу, я буду оглядываться на объекты, которые описываю, в процессе.

Нейронные сети могут достичь того же поведения, используя внимание , сосредотачиваясь на части подмножества информации, которую они предоставляют. Например, RNN может следить за выходом другой RNN. На каждом временном шаге он фокусируется на разных позициях в другой RNN.

Для решения этих проблем Attention - это метод, который используется в нейронной сети. Для RNN вместо кодирования всего предложения в скрытом состоянии каждое слово имеет соответствующее скрытое состояние, которое передается на всем пути к этапу декодирования. Затем скрытые состояния используются на каждом этапе RNN для декодирования. На следующем гифке показано, как это происходит.

Шаг зеленого цвета называется этапом кодирования , а этап фиолетового цвета - этапом декодирования . GIF от 3

Идея заключается в том, что в каждом слове предложения может содержаться релевантная информация. Таким образом, чтобы декодирование было точным, оно должно учитывать каждое слово ввода, используя внимания.

Чтобы привлечь внимание к RNN при преобразовании последовательности, мы разделим кодирование и декодирование на 2 основных этапа. Одна ступенька обозначена зеленым цветом , а другая фиолетовым. Шаг , зеленый, , называется этапом кодирования , , а фиолетовый этап - этапом декодирования .

GIF из 3

Шаг, выделенный зеленым цветом, отвечает за создание скрытых состояний на входе. Вместо того, чтобы передавать декодерам только одно скрытое состояние, как мы делали до использования внимание , мы передаем все скрытые состояния, генерируемые каждым «словом» предложения, на этап декодирования. Каждое скрытое состояние используется на этапе декодирования , чтобы выяснить, на что сеть должна обратить внимание .

Например, при переводе предложения « Je suis étudiant» на английский язык требуется, чтобы на этапе декодирования при переводе учитывались разные слова.

На этой гифке показано, какой вес придается каждому скрытому состоянию при переводе предложения Je suis étudiant на английский язык. Чем темнее цвет, тем большее значение придается каждому слову. GIF из 3

Или, например, когда вы переводите предложение «L’accord sur la zone économique européenne a été signé en août 1992». с французского на английский и сколько внимания уделяется каждому входу.

Перевод предложения «L’accord sur la zone économique européenne a été signé en août 1992." на английский. Изображение из 3

Но некоторые из проблем, которые мы обсуждали, все еще не решаются с помощью RNN, использующих внимание . Например, параллельная обработка входных данных (слов) невозможна. Для большого объема текста это увеличивает время, затрачиваемое на перевод текста.

Сверточные нейронные сети помогают решить эти проблемы. С их помощью мы можем

  • Тривиально распараллелить (для каждого слоя)
  • Использовать локальные зависимости
  • Расстояние между позициями логарифмическое

Некоторые из самых популярных нейронных сетей для преобразования последовательностей, Wavenet и Bytenet, являются сверточными нейронными сетями.

Wavenet, модель представляет собой сверточную нейронную сеть (CNN). Изображение из 10

Причина, по которой сверточные нейронные сети могут работать параллельно, заключается в том, что каждое слово на входе может обрабатываться одновременно и не обязательно зависит от предыдущих слов, которые нужно перевести. Более того, «расстояние» между выходным словом и любым входом для CNN составляет порядка log (N) - это размер высоты дерева, сгенерированного от выхода к входу (вы можете увидеть это на гифке выше.Это намного лучше, чем расстояние между выходом RNN и входом, которое составляет порядка N .

Проблема в том, что сверточные нейронные сети не обязательно помогают с проблемой выяснения проблемы зависимостей при переводе предложений. Именно поэтому были созданы Transformers , они представляют собой сочетание обоих CNN с вниманием.

Чтобы решить проблему распараллеливания, Transformers пытаются решить эту проблему, используя сверточные нейронные сети вместе с моделями внимания . Внимание повышает скорость перевода модели из одной последовательности в другую.

Давайте посмотрим, как работает Transformer . Трансформер - это модель, которая использует внимание для увеличения скорости. В частности, он использует самовнимания.

Трансформатор. Image from 4

Внутри Transformer имеет такую ​​же архитектуру, что и предыдущие модели, представленные выше. Но Transformer состоит из шести кодировщиков и шести декодеров.

Изображение из 4

Все кодировщики очень похожи друг на друга. Все кодировщики имеют одинаковую архитектуру. Декодеры имеют одно и то же свойство, то есть они очень похожи друг на друга. Каждый кодировщик состоит из двух уровней: Самовнимание, и нейронной сети прямого распространения.

Изображение из 4

Входы кодировщика сначала проходят через слой самовнимания . Это помогает кодировщику смотреть на другие слова во входном предложении при кодировании определенного слова. В декодере есть оба этих уровня, но между ними есть уровень внимания, который помогает декодеру сосредоточиться на соответствующих частях входного предложения.

Изображение из 4

Примечание: Этот раздел взят из записи блога Джея Алламара

Давайте начнем с рассмотрения различных векторов / тензоров и того, как они перемещаются между этими компонентами, чтобы превратить входные данные обученной модели в выходные. Как и в случае с приложениями НЛП в целом, мы начинаем с преобразования каждого входного слова в вектор с помощью алгоритма встраивания.

Изображение взято из 4

Каждое слово вложено в вектор размером 512. Мы представим эти векторы этими простыми прямоугольниками.

Встраивание происходит только в самый нижний кодировщик. Абстракция, которая является общей для всех кодировщиков, заключается в том, что они получают список векторов, каждый из которых имеет размер 512.

В нижнем кодировщике это будет слово embeddings, но в других кодировщиках это будет выход кодировщика, который прямо внизу. После встраивания слов в нашу входную последовательность каждое из них проходит через каждый из двух уровней кодировщика.

Изображение из 4

Здесь мы начинаем видеть одно ключевое свойство преобразователя, а именно то, что слово в каждой позиции проходит по своему собственному пути в кодировщике.Между этими путями на уровне самовнимания есть зависимости. Однако слой прямой связи не имеет этих зависимостей, и, таким образом, различные пути могут выполняться параллельно при прохождении через слой прямой связи.

Далее мы заменим пример более коротким предложением и посмотрим, что происходит на каждом подуровне кодировщика.

Самовнимание

Давайте сначала посмотрим, как вычислить самовнимание с помощью векторов, а затем перейдем к тому, как это на самом деле реализовано - с помощью матриц.

Выявление отношения слов в предложении и уделение ему внимания . Изображение из 8

Первый шаг в вычислении самовнимания состоит в том, чтобы создать три вектора из каждого из входных векторов кодировщика (в данном случае - вложение каждого слова). Итак, для каждого слова мы создаем вектор запроса, вектор ключа и вектор значения. Эти векторы создаются путем умножения вложения на три матрицы, которые мы обучили в процессе обучения.

Обратите внимание, что эти новые векторы меньше по размерности, чем вектор внедрения.Их размерность составляет 64, в то время как векторы ввода / вывода встраивания и кодировщика имеют размерность 512. Они НЕ ДОЛЖНЫ быть меньше, это выбор архитектуры, позволяющий сделать вычисление многогранного внимания (в основном) постоянным.

Изображение взято из 4

Умножение x1 на весовую матрицу WQ дает q1, вектор «запроса», связанный с этим словом. В итоге мы создаем проекцию «запроса», «ключа» и «значения» для каждого слова во входном предложении.

Что такое векторы «запроса», «ключа» и «значения»?

Это абстракции, которые полезны для вычисления внимания и размышлений о нем.После того как вы перейдете к прочтению того, как рассчитывается внимание ниже, вы будете знать почти все, что вам нужно знать о роли каждого из этих векторов.

Второй шаг в вычислении самовнимания - это подсчет баллов. Допустим, мы рассчитываем самовнимание для первого слова в этом примере - «мышление». Нам нужно сопоставить каждое слово входного предложения с этим словом. Оценка определяет, сколько внимания следует уделять другим частям входного предложения, когда мы кодируем слово в определенной позиции.

Оценка рассчитывается как скалярное произведение вектора запроса на ключевой вектор соответствующего слова, которое мы оцениваем. Итак, если мы обрабатываем самовнимание для слова в позиции №1, первая оценка будет скалярным произведением q1 и k1. Вторая оценка будет скалярным произведением q1 и k2.

Изображение из 4

На третьем и четвертом шагах баллы делятся на 8 (квадратный корень из размерности ключевых векторов, используемых в статье - 64. Это приводит к получению более стабильных градиентов.Здесь могут быть другие возможные значения, но это значение по умолчанию), затем передайте результат с помощью операции softmax. Softmax нормализует оценки, так что все они положительные и в сумме составляют 1.

Изображение из 4

Эта оценка softmax определяет, насколько каждое слово будет выражено в этой позиции. Очевидно, что слово в этой позиции будет иметь наивысший балл softmax, но иногда полезно обратить внимание на другое слово, имеющее отношение к текущему слову.

Пятый шаг - это умножение каждого вектора значений на оценку softmax (при подготовке к их суммированию).Интуиция здесь заключается в том, чтобы сохранить неизменными значения слов, на которых мы хотим сосредоточиться, и заглушить не относящиеся к делу слова (например, умножив их на крошечные числа, такие как 0,001).

Шестой этап предназначен для суммирования векторов взвешенных значений. Это производит вывод слоя самовнимания в этой позиции (для первого слова).

Изображение из 4

На этом расчет самовнимания завершен. Результирующий вектор - это тот, который мы можем отправить в нейронную сеть с прямой связью.Однако в реальной реализации этот расчет выполняется в матричной форме для более быстрой обработки. Итак, давайте посмотрим на это теперь, когда мы увидели интуитивное вычисление на уровне слов.

Multihead Внимание

Трансформаторы в принципе так и работают. Есть еще несколько деталей, которые улучшают их работу. Например, вместо того, чтобы обращать внимание друг на друга только в одном измерении, Трансформеры используют концепцию многоголового внимания.

Идея заключается в том, что всякий раз, когда вы переводите слово, вы можете уделять каждому слову разное внимание в зависимости от типа вопроса, который вы задаете.На изображениях ниже показано, что это значит. Например, когда вы переводите «ударом ногой» в предложении «Я ударил по мячу», вы можете спросить «Кто ударил ногой». В зависимости от ответа перевод слова на другой язык может измениться. Или задайте другие вопросы, например, «Что сделал?» И т. Д.

.

Как закодировать Трансформатор в Pytorch | Сэмюэл Линн-Эванс

Может ли Трансформер стать еще одним гвоздем в гроб для RNN?

Избавившись от неуклюжих циклов for, он находит способ позволить целым предложениям одновременно входить в сеть группами. Чудо; НЛП теперь использует преимущества высокоэффективных библиотек линейной алгебры Python. Эту экономию времени можно потратить на развертывание дополнительных слоев в модели.

Пока кажется, что результатом является более быстрая сходимость и лучшие результаты.Что не любить?

Мой личный опыт очень многообещающий. Он обучил 2 миллиона пар французско-английских предложений создать сложного переводчика всего за три дня.

Вы можете сами поиграть с моделью в задачах языкового перевода, если зайдете к моей реализации на Github здесь. Также ознакомьтесь с моим следующим постом, в котором я рассказываю о своем пути создания переводчика и его результатах.

Или, наконец, вы можете построить его сами. Вот руководство о том, как это сделать и как это работает.

В этом руководстве объясняется только, как кодировать модель и запускать ее, для получения информации о том, как получить данные и обработать их для seq2seq, см. Мое руководство здесь .

На схеме выше показан обзор модели трансформатора. Входными данными для кодировщика будет английское предложение, а «Outputs», поступающее в декодер, будет французским предложением.

Фактически, есть пять процессов, которые нам необходимо понять, чтобы реализовать эту модель:

Встраивание слов стало стандартной практикой в ​​NMT, обеспечивая сеть гораздо большим количеством информации о словах, чем одно горячее кодирование.Подробнее об этом читайте в моем сообщении здесь.

Встраивание выполняется просто в pytorch:

 class Embedder (nn.Module): 
def __init __ (self, vocab_size, d_model):
super () .__ init __ ()
self.embed = nn.Embedding (vocab_size, d_model) )
def forward (self, x):
return self.embed (x)

Когда каждое слово загружается в сеть, этот код выполняет поиск и извлекает его вектор внедрения. Эти векторы затем будут изучены моделью как параметры, настраиваемые с каждой итерацией градиентного спуска.

Чтобы модель могла понять предложение, ей необходимо знать две вещи о каждом слове: что это слово означает? И какова его позиция в приговоре?

Вектор внедрения для каждого слова узнает значение, поэтому теперь нам нужно ввести что-то, что сообщает сети о положении слова.

Васмари и др. ответили на эту проблему, используя эти функции для создания константы значений, зависящих от позиции:

Эта константа представляет собой 2-мерную матрицу. Pos относится к порядку в предложении, а i относится к положению вдоль измерения вектора внедрения. Затем каждое значение в матрице pos / i вычисляется с использованием приведенных выше уравнений.

Матрица позиционного кодирования - это константа, значения которой определяются приведенными выше уравнениями. При добавлении к матрице внедрения каждое вложение слова изменяется в зависимости от его положения.

Интуитивно понятный способ кодирования нашего позиционного энкодера выглядит так:

 class PositionalEncoder (nn.Module): 
def __init __ (self, d_model, max_seq_len = 80):
super () .__ init __ ()
self.d_model = d_model

# создать постоянную матрицу 'pe' со значениями, зависящими от
# pos и i
pe = torch.zeros (max_seq_len, d_model)
для pos в диапазоне (max_seq_len):
для i в диапазоне (0, d_model, 2):
pe [pos, i] = \
math.sin (pos / (10000 ** ((2 * i) / d_model)))
pe [pos, i + 1] = \
math.cos (pos / (10000 ** ((2 * (i + 1)) / d_model)))

pe = pe.unsqueeze (0)
self.register_buffer ('pe', pe)

def forward (self, x):
# сделать вложения относительно большими
x = x * math.sqrt (self.d_model)
# добавить константу во встраивание
seq_len = x.size ( 1)
x = x + Variable (self.pe [:,: seq_len], \
requires_grad = False) .cuda ()
return x

Вышеупомянутый модуль позволяет нам добавить позиционное кодирование к вектору внедрения, обеспечивая информация о структуре к модели.

Причина, по которой мы увеличиваем значения внедрения перед добавлением, состоит в том, чтобы сделать позиционное кодирование относительно меньшим.Это означает, что исходное значение вектора внедрения не будет потеряно, когда мы сложим их вместе.

Маскировка играет важную роль в трансформаторе. Он служит двум целям:

  • В кодировщике и декодере: для вывода нулевого внимания везде, где есть просто заполнение во входных предложениях.
  • В декодере: Чтобы декодер не «забегал» вперед в остальной части переведенного предложения при предсказании следующего слова.

Создать маску для ввода просто:

 batch = next (iter (train_iter)) 
input_seq = batch.English.transpose (0,1)
input_pad = EN_TEXT.vocab.stoi [''] # создает маску с нулями везде, где есть заполнение на входе
input_msk = (input_seq! = Input_pad) .unsqueeze (1)

Для target_seq мы делаем то же самое, но затем создаем дополнительный шаг:

 # создаем маску как раньше target_seq = batch.French.transpose (0,1) 
target_pad = FR_TEXT.vocab.stoi ['']
target_msk = (target_seq! = target_pad) .unsqueeze (1) size = target_seq.size (1) # получить seq_len для matrixnopeak_mask = np . триу (np . штук (1, размер, размер),
k = 1) . astype ('uint8')
nopeak_mask = Variable (torch . from_numpy (nopeak_mask) == 0) target_msk = target_msk & nopeak_mask

Первым вводом в декодер будет целевая последовательность (французский перевод). Декодер предсказывает каждое выходное слово, используя все выходные данные кодировщика и французское предложение только до точки каждого предсказываемого слова.

Следовательно, нам нужно предотвратить отображение первых выходных прогнозов в предложении. Для этого мы используем nopeak_mask:

. Когда маска применяется в нашей функции внимания, каждое предсказание сможет использовать предложение только до слова, которое оно предсказывает.

Если мы позже применим эту маску к оценкам внимания, значения там, где вход находится впереди, не смогут участвовать при вычислении выходов.

Когда у нас есть внедренные значения (с позиционными кодировками) и маски, мы можем начать построение слоев нашей модели.

Вот обзор многоголового уровня внимания:

Многоголовый слой внимания, каждый вход разделен на несколько заголовков, что позволяет сети одновременно уделять внимание различным подразделам каждого внедрения.

V, K и Q обозначают «ключ», «значение» и «запрос». Эти термины используются в функциях внимания, но, честно говоря, я не думаю, что объяснение этой терминологии особенно важно для понимания модели.

В случае энкодера V, K и G будут просто идентичными копиями вектора внедрения (плюс позиционное кодирование).У них будут размеры Batch_size * seq_len * d_model.

В мультиголовом внимании мы разбиваем вектор внедрения на N голов, так что они будут иметь размеры batch_size * N * seq_len * (d_model / N).

Это последнее измерение (d_model / N) мы будем называть d_k.

Давайте посмотрим код для модуля декодера:

 class MultiHeadAttention (nn.Module): 
def __init __ (self, Heads, d_model, dropout = 0.1):
super () .__ init __ ()

self.d_model = d_model
self.d_k = d_model // головки
self.h = головки

self.q_linear = nn.Linear (d_model, d_model)
self.v_linear = nn.Linear (d_model, d_model)
self.k_linear = nn.Linear (d_model, d_model)
self.dropout = nn.Dropout (dropout)
self.out = nn.Linear (d_model, d_model)

def forward (self, q, k, v, mask = None):

bs = q.size (0)

# выполнить линейную операцию и разбить на h головы

k = self.k_linear (k) .view (bs, -1, self.h, self.d_k)
q = self.q_linear (q) .view (bs, -1, self.h, self.d_k)
v = self.v_linear (v) .view (bs, -1, self. h, self.d_k)

# транспонировать для получения размеров bs * h * sl * d_model

k = k.transpose (1,2)
q = q.transpose (1,2)
v = v.transpose ( 1,2)

# вычислить внимание с помощью функции, мы определим следующие
баллов = внимание (q, k, v, self.d_k, mask, self.dropout)

# объединить головы и пропустить через последний линейный слой
concat = scores. транспонировать (1,2).contiguous () \
.view (bs, -1, self.d_model)

output = self.out (concat)

return output

Уравнение для вычисления внимания Диаграмма из бумаги, иллюстрирующая шаги уравнения

Это единственное другое уравнение, которое мы мы будем рассматривать сегодня, и эта диаграмма из бумаги делает большую работу по объяснению каждого шага.

Каждая стрелка на диаграмме отражает часть уравнения.

Сначала мы должны умножить Q на транспонирование K. Затем это «масштабируется» путем деления результата на квадратный корень из d_k.

Шаг, который не показан в уравнении, - это операция маскирования. Перед тем, как выполнить Softmax, мы применяем нашу маску и, следовательно, уменьшаем значения там, где ввод является заполнением (или в декодере, также когда ввод находится перед текущим словом).

Еще один непоказанный шаг - это выпадение, которое мы применим после Softmax.

Наконец, последний шаг - скалярное произведение между полученным результатом и V.

Вот код функции внимания:

 def Внимание (q, k, v, d_k, mask = None, dropout = Нет): 

балла = факел.matmul (q, k.transpose (-2, -1)) / math.sqrt (d_k)

, если маска не равна None:
mask = mask.unsqueeze (1)
score = scores.masked_fill (mask == 0, -1e9) scores = F.softmax (scores, dim = -1)

, если отсев нет Нет:
балл = отсев (баллы)

output = torch.matmul (scores, v)
return output

Ok, если вы уже поняли, похлопайте себя по плечу, поскольку мы добрались до последнего слоя, и здесь все довольно просто!

Этот уровень состоит только из двух линейных операций с промежуточными операциями relu и dropout.

 class FeedForward (nn.Module): 
def __init __ (self, d_model, d_ff = 2048, dropout = 0.1):
super () .__ init __ ()
# Мы устанавливаем d_ff по умолчанию на 2048
self.linear_1 = nn.Linear (d_model, d_ff)
self.dropout = nn.Dropout (dropout)
self.linear_2 = nn.Linear (d_ff, d_model)
def вперед (self, x):
x = self.dropout (F. relu (self.linear_1 (x)))
x = self.linear_2 (x)
return x

Слой прямой связи просто углубляет нашу сеть, используя линейные слои для анализа паттернов на выходе слоев внимания.

Нормализация очень важна в глубоких нейронных сетях. Это предотвращает слишком сильное изменение диапазона значений в слоях, что означает, что модель обучается быстрее и имеет лучшую способность к обобщению.

Мы будем нормализовать наши результаты между каждым слоем в кодировщике / декодере, поэтому перед построением нашей модели давайте определим эту функцию:

 class Norm (nn.Module): 
def __init __ (self, d_model, eps = 1e-6 ):
super () .__ init __ ()

self.size = d_model
# создайте два обучаемых параметра для калибровки нормализации
self.alpha = nn.Parameter (torch.ones (self.size))
self.bias = nn.Parameter (torch.zeros (self.size))
self.eps = eps
def forward (self, x):
norm = self.alpha * (x - x.mean (dim = -1, keepdim = True)) \
/ (x.std (dim = -1, keepdim = True) + self.eps) + self.bias
return norm

Если вы понимаете детали выше, теперь вы понимаете модель. Остальное просто ставит все на свои места.

Давайте еще раз взглянем на общую архитектуру и начнем строить:

Последняя переменная: Если вы внимательно посмотрите на диаграмму, вы увидите «Nx» рядом с архитектурами кодировщика и декодера.В действительности кодер и декодер на схеме выше представляют один уровень кодера и один из декодеров. N - это переменная количества слоев. Например. если N = 6, данные проходят через шесть уровней кодера (с архитектурой, показанной выше), затем эти выходные данные передаются в декодер, который также состоит из шести повторяющихся уровней декодера.

Теперь мы создадим модули EncoderLayer и DecoderLayer с архитектурой, показанной в модели выше. Затем, когда мы построим кодировщик и декодер, мы можем определить, сколько из этих слоев нужно иметь.

 # построить слой кодировщика с одним слоем внимания с несколькими головками и одним слоем с прямой связью class EncoderLayer (nn.Module): 
def __init __ (self, d_model, Head, dropout = 0.1):
super () .__ init __ ( )
self.norm_1 = Norm (d_model)
self.norm_2 = Norm (d_model)
self.attn = MultiHeadAttention (головы, d_model)
self.ff = FeedForward (d_model)
self.dropout_1 = nn.Dropout (выпадение)
self.dropout_2 = nn.Dropout (выпадение)

def forward (self, x, mask):
x2 = self.norm_1 (x)
x = x + self.dropout_1 (self.attn (x2, x2, x2, mask))
x2 = self.norm_2 (x)
x = x + self.dropout_2 (self.ff (x2) )
return x

# построить слой декодера с двумя слоями внимания с несколькими головами и
# одним слоем прямой связи

class DecoderLayer (nn.Module):
def __init __ (self, d_model, Heads, dropout = 0.1):
super () .__ init __ ()
self.norm_1 = Norm (d_model)
self.norm_2 = Norm (d_model)
self.norm_3 = Norm (d_model)

self.dropout_1 = nn.Dropout (выпадение)
self.dropout_2 = nn.Dropout (выпадение)
self.dropout_3 = nn.Dropout (выпадение)

self.attn_1 = MultiHeadAttention (головы, d_model)
self.attn_2 = MultiHeadAttention (головы, d_model)
self.ff = FeedForward (d_model) .cuda ()

def forward (self, x, e_outputs, src_mask, trg_mask):
x2 = self.norm_1 (x)
x = x + self.dropout_1 (self.attn_1 (x2 , x2, x2, trg_mask))
x2 = self.norm_2 (x)
x = x + self.dropout_2 (self.attn_2 (x2, e_outputs, e_outputs,
src_mask))
x2 = self.norm_3 (x)
x = x + self.dropout_3 (self.ff (x2))
return x # Затем мы можем создать удобную функцию клонирования, которая может генерировать несколько слоев: def get_clones (module, N):
return nn.ModuleList ([copy.deepcopy (модуль) для i в диапазоне (N)])

Теперь мы готовы создать кодировщик и декодер:

 class Encoder (nn.Module): 
def __init __ (self, vocab_size, d_model , N, головок):
super () .__ init __ ()
self.N = N
self.embed = Embedder (vocab_size, d_model)
self.pe = PositionalEncoder (d_model)
self.layers = get_clones (EncoderLayer (d_model, Head), N)
self.norm = Norm (d_model)
def forward (self, src, mask):
x = self.embed (src )
x = self.pe (x)
для i в диапазоне (N):
x = self.layers [i] (x, mask)
return self.norm (x)

class Decoder (nn.Module):
def __init __ (self, vocab_size, d_model, N, Heads):
super () .__ init __ ()
self.N = N
self.embed = Embedder (vocab_size, d_model)
self.pe = PositionalEncoder (d_model)
я.Layers = get_clones (DecoderLayer (d_model, Head), N)
self.norm = Norm (d_model)
def forward (self, trg, e_outputs, src_mask, trg_mask):
x = self.embed (trg)
x = self .pe (x)
for i in range (self.N):
x = self.layers [i] (x, e_outputs, src_mask, trg_mask)
return self.norm (x)

И, наконец… Преобразователь !

Трансформатор класса
 (nn.Module): 
def __init __ (self, src_vocab, trg_vocab, d_model, N, Heads):
super () .__ init __ ()
self.encoder = Encoder (src_vocab, d_model, N, Heads)
self.decoder = Decoder (trg_vocab, d_model, N, Head)
self.out = nn.Linear (d_model, trg_vocab)
def forward (self, src, trg, src_mask, trg_mask):
e_outputs = self.encoder (src, src_mask)
d_output = self.decoder (trg, e_outputs, src_mask, trg_mask)
output = self.out (d_output)
soft return output # мы не выполняем soft return output # на выходе, так как это будет обработано
# автоматически нашей функцией потерь.

После того, как преобразователь построен, все, что остается, - это обучить эту присоску на наборе данных EuroParl.Кодирование довольно безболезненно, но будьте готовы подождать около 2 дней, чтобы эта модель начала сходиться!

Сначала определим некоторые параметры:

 d_model = 512 
голов = 8
N = 6
src_vocab = len (EN_TEXT.vocab)
trg_vocab = len (FR_TEXT.vocab) model = Transformer (src_vocab, trg_modelocab, , Heads) для p в model.parameters ():
if p.dim ()> 1:
nn.init.xavier_uniform_ (p) # этот код очень важен! Он инициализирует параметры с диапазоном значений
#, который предотвращает затухание или чрезмерное усиление сигнала.
# См. Математическое объяснение в этом блоге. Optim = torch.optim.Adam (model.parameters (), lr = 0.0001, beta = (0.9, 0.98), eps = 1e-9)

И теперь все хорошо для обучения:

 def train_model (epochs, print_every = 100): 

model.train ()

start = time.time ()
temp = start

total_loss = 0

для эпох в диапазоне (эпох):

для i, партия в enumerate (train_iter):

src = batch.English.transpose (0,1)
trg = batch.French.transpose (0,1) # во французском предложении, которое мы вводим, есть все слова, кроме
# последнего, так как каждое слово используется для предсказания следующего

trg_input = trg [:,: -1]

# слова, которые мы пробуем для прогнозирования

target = trg [:, 1:]. contiguous (). view (-1)

# создать функцию для создания масок с использованием кода маски выше

src_mask, trg_mask = create_masks (src, trg_input)

preds = модель (src, trg_input, src_mask, trg_mask)

optim.zero_grad ()

loss = F.cross_entropy (preds.view (-1, preds.size (-1)),
результатов, ignore_index = target_pad)

loss.backward ()
optim.step ()

total_loss + = loss.data [0]
if ( i + 1)% print_every == 0:
loss_avg = total_loss / print_every
print ("time =% dm, epoch% d, iter =% d, loss =% .3f,
% ds на% d iters"% ( (time.time () - start) // 60,
эпоха + 1, i + 1, loss_avg, time.time () - temp,
print_every))
total_loss = 0
temp = time.time ()

Пример результатов тренировки: после нескольких дней тренировок я, казалось, сошёл на потерю примерно 1.3

Мы можем использовать приведенную ниже функцию для перевода предложений. Мы можем кормить его предложениями прямо из наших пакетов или вводить собственные строки.

Переводчик работает, выполняя цикл. Начнем с кодирования английского предложения. Затем мы передаем декодеру индекс токена и выходные данные кодировщика. Декодер делает предсказание для первого слова, и мы добавляем его к нашему входу декодера с токеном sos. Мы повторно запускаем цикл, получая следующее предсказание и добавляя его ко входу декодера, пока не дойдем до токена , сообщающего нам, что перевод завершен.

 def translate (model, src, max_len = 80, custom_string = False): 

model.eval ()

if custom_sentence == True:
src = tokenize_en (src)
предложение = \
Variable (torch.LongTensor ([ [EN_TEXT.vocab.stoi [tok] для tok
в предложении]])). Cuda () src_mask = (src! = Input_pad) .unsqueeze (-2)
e_outputs = model.encoder (src, src_mask)

output = torch.zeros (max_len) .type_as (src.data)
output [0] = torch.LongTensor ([FR_TEXT.vocab.stoi ['']])

для i в диапазоне (1, max_len):

trg_mask = np.triu (np.ones ((1, i, i),
k = 1) .astype ('uint8')
trg_mask = Variable (torch.from_numpy (trg_mask) == 0) .cuda ()

out = модель .out (model.decoder (output [: i] .unsqueeze (0),
e_outputs, src_mask, trg_mask))
out = F.softmax (out, dim = -1)
val, ix = out [:, - 1] .data.topk (1)

выводит [i] = ix [0] [0]
if ix [0] [0] == FR_TEXT.vocab.stoi ['']:
break

return '' .join (
[FR_TEXT.vocab.itos [ix] для ix в выходах [: i]]
)

И все.Посмотрите мой Github здесь, где я написал этот код как программу, которая будет принимать два параллельных текста в качестве параметров и тренировать эту модель на них. Или практикуйте знания и применяйте сами!

.

Смотрите также