Ырааттуулуктан ырааттуулукка машина которуу модели

терең үйрөнүү
seq2seq
машина которуу
Ырааттуулуктан ырааттуулукка машина которуу модели cover image

Машина котормосунун кандай иштээри жөнүндө ойлонуп көрдүңүз беле? Google Translate, DeepL ж.б. окшош куралдарды түзүү үчүн коддун бир нече сабы жетиштүү. Бул макалада биз сизге ырааттуулуктан (seq2seq) машина котормо моделин түзүү процесси аркылуу тааныштырабыз. Аягында, сиз анын кантип иштээрин жана котормо моделине кантип ээ болуу керектигин түшүнө аласыз.

Seq2Seq моделин түшүнүү

seq2seq моделинин түшүнүгүн түшүнүү үчүн, келгиле, бир мисалга кайрылалы. Элестетиңиз, сизде англис тилинде сүйлөм бар:

"How are you?"

жана сиз аны Tamazight тилине которууну каалайсыз:

"Amek tettiliḍ?"

seq2seq модели бул котормону аткаруу үчүн чогуу иштешкен коддоочу жана декодерден турат.

  1. Encoder: Кодер "Кандайсың?" деген баштапкы сүйлөмдү алып, аны сөзмө-сөз иштетет. Ал маалыматты контексттик вектор деп аталган туруктуу узундуктагы векторго коддойт. Биздин мисалда, коддоочу ар бир сөздү талдап, сүйлөмдүн мазмундуу өкүлчүлүгүн түзөт.

  2. Декодер: Декодер коддоочудан контексттик векторду кабыл алып, "Amek tettiliḍ?" деген максаттуу сүйлөмдү түзө баштайт. Ал бул сөздү контексттик векторду жана мурда түзүлгөн сөздөрдү эске алуу менен аткарат. Декодер машыгуу учурунда тапкан үлгүлөрдүн негизинде туура котормо түзүүнү үйрөнөт.

Seq2Seq Schema

Маалыматтарды даярдоо

Эми биз seq2seq моделин түшүнгөнүбүздөн кийин, келгиле, ошол эле мисалды колдонуу менен маалыматтарды даярдоо жөнүндө сүйлөшөлү.

Машиналык котормо моделин үйрөтүү үчүн булактагы (биздин учурда англисче) жана максаттуу тилдердеги (Tamazight) тегизделген сүйлөм жуптарынан турган параллелдүү корпус талап кылынат. Europarl жана БУУнун параллелдүү корпусу сыяктуу бир нече ресурстар көп тилдүү маалыматтардын чоң көлөмүн камсыз кылат.

  1. Токенизация: Маалыматтарды даярдоодогу биринчи кадам бул токенизация. Биз англисче жана Tamazight сүйлөмдөрүн өзүнчө белгилерге же сөздөргө бөлөбүз. Мисалы, англисче сүйлөм "How are you?" ['Кандай', 'сиз', 'сен', '?'] жана Tamazight сүйлөмү "Amek tettiliḍ?" ['SOS', 'Amek', 'tettiliḍ', '?', 'EOS'] болуп токенизацияланмак. Биз ырааттуулуктун башталышын жана аягын көрсөтүү үчүн SOS жана EOS колдонобуз.

  2. Тазалоо жана нормалдаштыруу: Андан кийин, биз токенизацияланган сүйлөмдөрдү тазалоо жана нормалдаштырууну аткарабыз. Бул котормо процессине тоскоол боло турган керексиз белгилерди, тыныш белгилерин же атайын белгилерди алып салууну камтыйт. Мисалы, биз англисче жана Tamazight сүйлөмдөрүнүн аягындагы суроо белгисин алып салышыбыз мүмкүн.

Булак жана котормо тилдердин өзгөчөлүктөрүнө жараша кошумча тилге тиешелүү алдын ала иштетүү кадамдары талап кылынышы мүмкүн. Мисалы, француз тилинде акцент же диакритика сыяктуу өзгөчө белгилерди иштетүү керек болушу мүмкүн.

  1. Сөз байлыгын түзүү: Булактан да, максаттуу сүйлөмдөн да уникалдуу сөздөрдү чогултуу менен сөз байлыгын түзөбүз. Андан кийин ар бир сөзгө уникалдуу индекс же идентификатор ыйгарылат, натыйжада биз сөздөрдү кыстаруу картасы деп атайбыз, ал окуу процессинде колдонулат:
6: "how"
330: "are"
537: "you"

Ушуну менен биздин токенизацияланган мисал мындай болот:

[6, 330, 537] # How Are You
[420, 775] # Amek tettiliḍ
  1. Ызаттык толтуруу: Бирдиктүү ырааттуулук узундугун камсыз кылуу үчүн, биз сүйлөмдөрдү атайын белгилер (мисалы, "PAD" же 0) менен толтурабыз, ошондо алардын бардыгы бирдей узундукка ээ болот. Нейрондук тармактар ​​адатта туруктуу узундуктагы киргизүүлөрдү күткөндүктөн, толтуруу зарыл. Кыска сүйлөмдөрдүн аягына толтуруучу белгилерди кошуу менен биз эффективдүү окутууга мүмкүндүк берген бирдей узундуктагы ырааттуулуктарды түзөбүз. Узундук эң узун кириш сүйлөмдөгү сөздөрдүн саны болот.

Мисалы, биздин киргизүү жана чыгаруу энбелгилерибизге 13 толтурууну колдонуу төмөнкү натыйжаны берет:

[6, 330, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # How Are You
[420, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] # Amek tettiliḍ

Үлгү окутуу

Даярдалган маалыматтар менен биз машина котормо моделибизди үйрөтүүнү уланта алабыз. Биз дайындарды окутуу жана текшерүү топтомуна бөлөбүз. Тренинг топтому машыгуу учурунда моделдин параметрлерин жаңыртуу үчүн колдонулат, ал эми валидация топтому моделдин иштешин көзөмөлдөөгө жана ашыкча тууралоону алдын алууга жардам берет.

Нейрондук тармак боюнча тренинг

Тренинг учурунда биз моделди баштапкы сүйлөмдөрдү (англисче) киргизүү катары жана тиешелүү максаттуу сүйлөмдөрдү (Tamazight) каалаган жыйынтык катары беребиз. Модель киргизүү ырааттуулугуна негизделген максаттуу сүйлөмдөр үчүн сөздөн сөзгө болжолдоолорду түзөт. Бул божомолдор категориялык кайчылаш энтропия сыяктуу жоготуу функциясын колдонуу менен иш жүзүндөгү максаттуу тизмектер менен салыштырылат.

Артка жайылтуу жана Параметр жаңыртуулары

Артка таралуу процесси аркылуу модель анын параметрлерине карата жоготуулардын градиенттерин эсептейт. Бул градиенттер жоготууну азайтуу үчүн зарыл болгон параметр жаңыртууларынын багытын жана чоңдугун көрсөтөт. Стохастикалык градиенттин түшүүсү (SGD) же Адам сыяктуу оптималдаштыруу алгоритми бул градиенттерди моделдин параметрлерин итеративдик жаңыртуу үчүн колдонуп, убакыттын өтүшү менен болжолдоолорду так кылат.

Итеративдик тренинг

Окутуу процесси бир нече доордо кайталанып турат. Ар бир доордо, модель анын параметрлерин жаңыртып, котормо үлгүлөрүн түшүнүү менен тыкыр тууралап, бүткүл окуу маалымат топтомун аралап өтөт. Бул процессти кайталоо менен модель так котормолорду жаратуу боюнча барган сайын чебер болуп калат.

Валидация жана баалоо

Тренингдин жүрүшүндө биз мезгил-мезгили менен валидация топтомундагы моделдин иштешин баалайбыз. Бул баалоо бизге моделдин жүрүшүн көзөмөлдөөгө жана керек болсо оңдоолорду киргизүүгө жардам берет. Котормолордун сапатын баалоо жана аларды шилтеме котормолору менен салыштыруу үчүн BLEU (Bilingual Evaluation Understudy) сыяктуу метрикаларды колдоно алабыз.

Жайгаштыруу

Модель үйрөтүлгөн жана баалангандан кийин, ал жайылтууга даяр. TensorFlow машина котормо моделдерин жайылтуу үчүн бир нече варианттарды, анын ичинде TensorFlow Serving, TensorFlow Lite жана TensorFlow.js камсыз кылат. TensorFlow Сервинг башка тиркемелер менен оңой интеграциялоону камсыз кылуу менен REST API аркылуу моделди тейлөөгө мүмкүндүк берет. TensorFlow Lite чектелген ресурстары бар мобилдик түзмөктөрдө моделди иштетүү мүмкүнчүлүгүн берет. TensorFlow.js веб-браузерлерде колдонууга мүмкүнчүлүк берип, котормону түздөн-түз веб-сайттарда колдонуучуларга жеткиликтүү кылат.

REST API түзүү үчүн FastAPI сыяктуу веб алкактарды да колдонсо болот.

Көбүрөөк маалымат алуу үчүн машина үйрөнүү моделиңизди кантип жайылтуу керек деген макалабызды текшере аласыз.

Үзгүлтүксүз өркүндөтүү

Машиналык котормо моделин түзүү - кайталануучу процесс. Колдонуучунун пикирлерин көзөмөлдөө, кошумча маалыматтарды чогултуу жана үзгүлтүксүз жаңыртуулар аркылуу моделди тактоо үзгүлтүксүз өркүндөтүү үчүн абдан маанилүү. TensorFlowдун ийкемдүүлүгү жана масштабдуулугу моделди өнүгүп жаткан талаптарга жана жаңы тилдерге ылайыкташтырууну жеңилдетет.


Career Services background pattern

Карьера кызматтары

Contact Section background image

байланышта бололу

Code Labs Academy © 2024 Бардык укуктар корголгон.