GPU рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓реИрдкрдЯреЙрдк рдкрд░ рдбреАрдкрдкрд╛рд╡рд▓реЛрд╡ рдиреНрдпреВрд░рд▓ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдХреИрд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЗрд╕ рдУрдкрди-рд╕реЛрд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдп рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдкреАрдбреАрдПрдл / DOC / DOCX рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХрд╛ рд░рд┐рдЬреНрдпреВрдореЗ рд╣реИред

рдпрд╣рд╛рдВ рдореИрдВ рдбреЗрдЯрд╛рд╕реЗрдЯ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рдЙрдкрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдЪрд░рдгреЛрдВ рдХрд╛ рднреА рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред рддрдм рдЧреНрд░рдВрдереЛрдВ рд╕реЗ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ BERT рдореЙрдбрд▓ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ ( рдирд╛рдорд╛рдВрдХрд┐рдд рдорд╛рдиреНрдпрддрд╛ - рдЗрд╕рдХреЗ рдмрд╛рдж NER )ред

рддреЛ, рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рдЯреВрд▓ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВ рд╡рд┐рдВрдбреЛрдЬ 10 рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реВрдВрдЧрд╛ред

Habr├й рдкрд░ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ рд▓реЗрдЦ рд╣реИрдВ, рдЬрд╣рд╛рдВ рдмрд╕ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЧрд╛рдЗрдб рд╣реИред рдФрд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд▓реЙрдиреНрдЪ рд╕реЗ рд▓реЗрдХрд░ рдореЙрдбрд▓ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рддрдХ рд╕рдм рдХреБрдЫ рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдореИрдВ рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдЖрдИ рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рднреА рдмрддрд╛рдКрдВрдЧрд╛ред
рдорд╣рддреНрд╡рдкреВрд░реНрдг: рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп, рд╕рднреА рдЙрддреНрдкрд╛рджреЛрдВ рдФрд░ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЕрдХреНрд╕рд░ рдЕрд╕рдВрдЧрдд рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВред рдпрд╣ TensorFlow рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рдЪ рд╣реИред рдпрд╣ рднреА рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, GitHub рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рддрд┐рдмрджреНрдз рддрдХ , рдЖрдкрдХреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рджреАрдкрдкрд╛рд╡рд▓реЛрд╡ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреЗрд╡рд▓ рд╕рдорд░реНрдерд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред

рдореИрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЙрддреНрдкрд╛рдж рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдФрд░ рдореЗрд░реЗ рд▓реИрдкрдЯреЙрдк рдХреЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░реВрдВрдЧрд╛, рдЬрд┐рд╕ рдкрд░ рдореИрдВрдиреЗ рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХреА рдереАред рдореИрдВ рдХреБрдЫ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдУрдкрди-рд╕реЛрд░реНрд╕ рджреАрдкрдкрд╛рд╡рд▓реЛрд╡ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред

рдбреАрдкрдкрд╛рд╡рд▓реЛрд╡ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ



рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдШрдЯрдХ рд╕рдВрд╕реНрдХрд░рдг


  • рдЕрдЬрдЧрд░ 3.6.6 - 3.7
  • рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрдореНрдпреБрдирд┐рдЯреА 2017 (рд╡реИрдХрд▓реНрдкрд┐рдХ)
  • рд╡рд┐рдЬреБрдЕрд▓ C ++ рдмрд┐рд▓реНрдб рдЯреВрд▓ 14.0.25420.1
  • рдПрдирд╡реАрдбрд┐рдпрд╛ рдХреНрдпреВрдбрд╛ 10.0.130_411.31_win10
  • cuDNN-10.0-windows10-64-v7.6.5.32

GPU рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗрдЯ рдХрд░рдирд╛


  1. рдЕрдЬрдЧрд░ рдХреЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓ рдкрд╛рдпрдерди рдпрд╛ рд╡рд┐рдЬрд╝реБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрдореНрдпреБрдирд┐рдЯреА 2017 рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдореЗрд░реА рд╕реНрдерд╛рдкрдирд╛ рдореЗрдВ, рдореИрдВрдиреЗ рдкрд╛рдпрдерди рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрдореНрдпреБрдирд┐рдЯреА рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реБрдП рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред

    рдмреЗрд╢рдХ, рдЖрдкрдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкрде рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛
    C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python36_64 
    PATH рд╕рд┐рд╕реНрдЯрдо рд╡реИрд░рд┐рдПрдмрд▓, рдЬрд╣рд╛рдВ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕реЗ рдЕрдЬрдЧрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдЬрд╛рдирдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИред

    рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░рд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рдЖрдк рд╕рдм рдХреБрдЫ рдЕрд▓рдЧ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  2. рдЕрдЧрд▓рд╛ рдХрджрдо рд╡рд┐рдЬреБрдЕрд▓ C ++ рдмрд┐рд▓реНрдб рдЯреВрд▓реНрд╕ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реИ ред
  3. рдЕрдЧрд▓рд╛, рдПрдирд╡реАрдбрд┐рдпрд╛ рдХреНрдпреВрдбрд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред
    рдорд╣рддреНрд╡рдкреВрд░реНрдг: рдпрджрд┐ nVelia CUDA рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд╣рд▓реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЖрдкрдХреЛ рд╡реАрдбрд┐рдпреЛ рдбреНрд░рд╛рдЗрд╡рд░ рддрдХ nVedia рд╕реЗ рд╕рднреА рдкрд╣рд▓реЗ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдШрдЯрдХреЛрдВ рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА, рд╡реАрдбрд┐рдпреЛ рдбреНрд░рд╛рдЗрд╡рд░ рдХреА рдПрдХ рд╕рд╛рдл рд╕реНрдерд╛рдкрдирд╛ рдкрд░, nVelia CUDA рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХрд░реЗрдВред
  4. рдЕрдм nVedia CUDA рдХреЗ рд▓рд┐рдП cuDNN рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВред
    рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ NVIDIA рдбреЗрд╡рд▓рдкрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рджрд╕реНрдпрддрд╛ (рдпрд╣ рдореБрдлрд╝реНрдд рд╣реИ) рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХрд░рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

  5. CUDA 10.0 рдХреЗ рд▓рд┐рдП cuDNN рд╕рдВрд╕реНрдХрд░рдг рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ


  6. рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдХрд┐рд╕реА рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЕрдирдкреИрдХ рдХрд░реЗрдВ

     C:\Users\<_>\Downloads\cuDNN 
  7. рдлрд╝реЛрд▓реНрдбрд░ рдХреА рд╕рдВрдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдПрдБ .. \ cuDNN рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╣рд╛рдВ рд╣рдордиреЗ CUDA рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ

     C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0 
  8. рдХрдВрдкреНрдпреВрдЯрд░ рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░реЗрдВред рд╡реИрдХрд▓реНрдкрд┐рдХ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред

рдбреАрдкрдкрд╛рд╡рд▓реЛрд╡ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


  1. рд╡рд░реНрдЪреБрдЕрд▓ рдкрд╛рдпрдерди рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдПрдВ рдФрд░ рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВред
    рдорд╣рддреНрд╡рдкреВрд░реНрдг: рдореИрдВрдиреЗ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрд╕рд╛ рдХрд┐рдпрд╛ред
  2. рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдореМрдЬреВрджрд╛ рдореМрдЬреВрджрд╛ рдкрд╛рдпрдерди рдХреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рдИред

  3. рд╣рдо рдЕрдВрддрд┐рдо рд╡рд┐рдВрдбреЛ рдХреЗ рдЖрдЧреЗ рджрдмрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдкрд░ рд╣рдо рдЕрднреА рддрдХ рдХреНрд▓рд┐рдХ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЖрдкрдХреЛ " рд╡рд░реНрдЪреБрдЕрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ " рдХреЛ рдЕрдирдЪреЗрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

  4. рд╕рдорд╛рдкреНрдд рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ред
  5. рдЕрдм рдЖрдкрдХреЛ рдПрдХ рдЖрднрд╛рд╕реА рд╡рд╛рддрд╛рд╡рд░рдг рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

  6. рд╣рдо рд╕рдм рдХреБрдЫ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВред

  7. рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдЦреЛрд▓реЗрдВред рдФрд░ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

     .\env\Scripts\activate.bat 

  8. рдЕрдм рджреАрдкрдкрд╛рд╡рд▓реЛрд╡ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИред рд╣рдо рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

     pip install deeppavlov 
  9. рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ GPU рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде TensorFlow 1.14.0 рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ:

     pip install tensorflow-gpu==1.14.0 
  10. рд▓рдЧрднрдЧ рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИред рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЧрдгрдирд╛ рдХреЗ рд▓рд┐рдП TensorFlow рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ devices.py , рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

     from tensorflow.python.client import device_lib print(device_lib.list_local_devices()) 

    рдпрд╛ tanorflow_test.py :

     import tensorflow as tf tf.test.is_built_with_cuda() tf.test.is_gpu_available(cuda_only=False, min_cuda_compute_capability=None) 
  11. Devices.py рдЪрд▓рд╛рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреБрдЫ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП:

  12. рдЕрдм рдЖрдк рджреАрдкрдкрд╛рд╡рд▓реЛрд╡ рдХреЛ GPU рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╕реАрдЦрдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВред

рджреАрдкрдкрд╛рд╡рд▓реЛрд╡ рд░реАрд╕реНрдЯ рдПрдкреАрдЖрдИ рдкрд░


REST API рдХреЗ рд▓рд┐рдП рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  1. рд╕рдХреНрд░рд┐рдп рд╡рд░реНрдЪреБрдЕрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

     python -m deeppavlov install ner_ontonotes_bert_mult 
  2. DeepPavlov рд╕рд░реНрд╡рд░ рд╕реЗ ner_ontonotes_bert_mult рдореЙрдбрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

     python -m deeppavlov download ner_ontonotes_bert_mult 
  3. REST API рдЪрд▓рд╛рдПрдВ

     python -m deeppavlov riseapi ner_ontonotes_bert_mult -p 5005 

рдпрд╣ рдореЙрдбрд▓ http: // localhost: 5005 рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред рдЖрдк рдЕрдкрдирд╛ рдкреЛрд░реНрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕рднреА рдореЙрдбрд▓реЛрдВ рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

 C:\Users\<_>\.deeppavlov 

рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рджреАрдкрдкрд╛рд╡рд▓реЛрд╡ рдХреА рд╕реНрдерд╛рдкрдирд╛


рд╕реАрдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рджреАрдкрдкрд╛рд╡рд▓реЛрд╡ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╕реАрдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде "рдХреНрд░реИрд╢" рди рд╣реЛ рдХрд┐ рд╣рдорд╛рд░реЗ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб рдкрд░ рдореЗрдореЛрд░реА рднрд░реА рд╣реБрдИ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реИрдВред

рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рднреА ner_ontonotes_bert_mult рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВред рджреАрдкрдкрд╛рд╡рд▓реЛрд╡ рдХреЗ рд╕рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдиреНрдпрд╛рд╕ рдкрде рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рдд рд╣реИрдВ:

 <_>\env\Lib\site-packages\deeppavlov\configs\ner 

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдлрд╝рд╛рдЗрд▓ рдХреЛ ner_ontonotes_bert_mult.json рдореЙрдбрд▓ рдХреА рддрд░рд╣ рдирд╛рдо рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЕрдкрдиреЗ рд▓реИрдкрдЯреЙрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЯреНрд░реЗрди рдмреНрд▓реЙрдХ рдореЗрдВ рдмреИрдЪ_рд╕рд╛рдЗрдЬрд╝ рд╡реИрд▓реНрдпреВ рдХреЛ 4 рдореЗрдВ рдмрджрд▓рдирд╛ рдкрдбрд╝рд╛ред



рдЕрдиреНрдпрдерд╛, рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдХреЗ рдмрд╛рдж рдореЗрд░рд╛ рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб "рдЪреЛрдХ" рд╣реБрдЖ, рдФрд░ рд╕реАрдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдЧрд┐рд░ рдЧрдИред

рдиреЛрдмреВрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди


  • рдореЙрдбрд▓: рдПрдордПрд╕рдЖрдИ рдЬреАрдПрд╕ -65
  • рдкреНрд░реЛрд╕реЗрд╕рд░: рдХреЛрд░ i7 8750H 2200 MHz
  • рдЗрдВрд╕реНрдЯреЙрд▓ рдХреА рдЧрдИ рдореЗрдореЛрд░реА рдХреА рдорд╛рддреНрд░рд╛: 32 рдЬреАрдмреА рдбреАрдбреАрдЖрд░ -4
  • рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡: 512 рдЬреАрдмреА рдПрд╕рдПрд╕рдбреА
  • рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдб: GeForce GTX 1070 8192 Mb

рдбреЗрдЯрд╛рд╕реЗрдЯ рддреИрдпрд╛рд░реА рдЙрдкрдХрд░рдг


рдореЙрдбрд▓ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рддреАрди рдлрд╛рдЗрд▓реЗрдВ рд╣реЛрддреА рд╣реИрдВред train.txt , valid.txt , test.txt ред рдирд┐рдореНрди рдкреНрд░рддрд┐рд╢рдд рдЯреНрд░реЗрди рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рдЯреВрдЯрдиреЗ рдХреЗ рд╕рд╛рде - 80%, рд╡реИрдз рдФрд░ 10% рдХреЗ рд▓рд┐рдП рдкрд░реАрдХреНрд╖рдгред

BERT рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рд╕реЗрдЯ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:

 Ivan B-PERSON Ivanov I-PERSON Senior B-WORK_OF_ART Java I-WORK_OF_ART Developer I-WORK_OF_ART IT B-ORG - I-ORG Company I-ORG Key O duties O : 0 Java B-WORK_OF_ART Python B-WORK_OF_ART CSS B-WORK_OF_ART JavaScript B-WORK_OF_ART Russian B-LOC Federation I-LOC . O Petr B-PERSON Petrov I-PERSON Junior B-WORK_OF_ART Web I-WORK_OF_ART Developer I-WORK_OF_ART Boogle B-ORG IO ' O ve O developed O Web B-WORK_OF_ART - O Application O . Skills O : O ReactJS B-WORK_OF_ART Vue B-WORK_OF_ART - I-WORK_OF_ART JS I-WORK_OF_ART HTML B-WORK_OF_ART CSS B-WORK_OF_ART Russian B-LOC Federation I-LOC . O ... 

рдбреЗрдЯрд╛рд╕реЗрдЯ рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

 <_><><_> 

рдорд╣рддреНрд╡рдкреВрд░реНрдг: рд╡рд╛рдХреНрдп рдХреЗ рдЕрдВрдд рдХреЗ рдмрд╛рдж, рдПрдХ рд▓рд╛рдЗрди рдмреНрд░реЗрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдСрдлрд╝рд░ рдореЗрдВ 75 рд╕реЗ рдЕрдзрд┐рдХ рдЯреЛрдХрди рд╣реИрдВ, рддреЛ рд▓рд╛рдЗрди рдмреНрд░реЗрдХ рд▓рдЧрд╛рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЬрдм рдореЙрдбрд▓ рд╕реАрдЦрдирд╛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧреАред

рдбреЗрдЯрд╛рд╕реЗрдЯ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд┐рдЦрд╛, рдЬрд╣рд╛рдВ рдПрдХ рд╕рд░реНрд╡рд░ рдкрд░ DOC / PDF / DOCX рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЗрд╕реЗ рд╕рд╛рджреЗ рдкрд╛рда рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдПрдХ рдордзреНрдпрд╡рд░реНрддреА рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдмрдЪрд╛рддреЗ рд╣реБрдП REST API рдПрдХреНрд╕реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдХреНрд░рд┐рдп рдореЙрдбрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕ рдкрд╛рда рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдореИрдВ MongoDB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдЙрдкрд░реЛрдХреНрдд рдХреНрд░рд┐рдпрд╛рдПрдВ рдкреВрд░реА рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рд╣рдорд╛рд░реА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рдЧрдарди рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓рд┐рдЦрд┐рдд рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдкреИрдирд▓ рдмрдирд╛рдпрд╛, рдЬрд╣рд╛рдВ рдбреЗрдЯрд╛рд╕реЗрдЯ рдЯреЛрдХрди рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдФрд░ рдлрд┐рд░ рдЯреЛрдХрди рдФрд░ рдЯреЛрдХрди рдкрд╛рда рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╣реА рдмрджрд▓ рджреЗрдВред

рдЯреВрд▓ рдпрд╣ рднреА рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рд╢рдмреНрджреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреИрд╕реЗ, рдЕрдиреБрд░реЛрдз рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЯреЛрдХрди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЙрдкрдХрд░рдг рдХрд╛рдо рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореИрдиреБрдЕрд▓ рдХрд╛рдо рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗред

рдкрд░рд┐рдгрд╛рдо рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдФрд░ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЛ рддреАрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рднреА рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рджреАрдкрдкрд╛рд╡рд▓реЛрд╡ рдкреНрд░рд╢рд┐рдХреНрд╖рдг


рддреЛ рд╣рдо рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛ред рд╕реАрдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ ner_ontonotes_bert_mult рдореЙрдбрд▓ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрджрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╕реЗ рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рджреАрдкрдкрд╛рд╡рд▓реЛрд╡ рдЕрдиреБрднрд╛рдЧ рд╕реЗ рдкрд╣рд▓реЗ рджреЛ рдЪрд░рдгреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╕реАрдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рджреЛ рдЪрд░рдг рдкреВрд░реЗ рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:

  1. рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд╝реЛрд▓реНрдбрд░ рд╣рдЯрд╛рдПрдВ:

     C:\Users\<_>\.deeppavlov\models\ner_ontonotes_bert_mult 

    рдЪреВрдВрдХрд┐ рдпрд╣ рдореЙрдбрд▓ рдПрдХ рдЕрд▓рдЧ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
  2. рдХреЙрдкреА рдХреА рдЧрдИ рдбреЗрдЯрд╛рд╕реЗрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВред рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ train.txt, valid.txt, test.txt

     C:\Users\<_>\.deeppavlov\downloads\ontonotes 

рдЕрдм рдЖрдк рд╕реАрдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рд╢рд┐рдХреНрд╖рдг рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рдореНрди рдлреЙрд░реНрдо рдХреА рдПрдХ рд╕рд░рд▓ рдЯреНрд░реЗрди- рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:

 from deeppavlov import configs, train_model ner_model = train_model(configs.ner.ner_ontonotes_bert_mult, download=False) 

рдпрд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

 python -m deeppavlov train <_>\env\Lib\site-packages\deeppavlov\configs\ner\ner_ontonotes_bert_mult.json 



рдкрд░рд┐рдгрд╛рдо


рдореИрдВрдиреЗ 115,540 рдЯреЛрдХрди рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдПрдХ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдПрдХ рдореЙрдбрд▓ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ред рдпрд╣ рдбреЗрдЯрд╛рд╕реЗрдЯ 100 рдХрд░реНрдордЪрд╛рд░реА рдкреБрдирд░рд╛рд░рдВрдн рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реБрдЖ рдерд╛ред рд╕реАрдЦрдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдиреЗ рдореБрдЭреЗ 5 рдШрдВрдЯреЗ 18 рдорд┐рдирдЯ рдХрд╛ рд╕рдордп рджрд┐рдпрд╛ред

рдореЙрдбрд▓ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрд░реНрде рдереЗ:

  • рдкрд░рд┐рд╢реБрджреНрдзрддрд╛: 76.32%;
  • рдпрд╛рдж рд░рдЦреЗрдВ: 72.32%;
  • рдПрдлрдмреА 1: 74.27;
  • рдиреБрдХрд╕рд╛рди: 5.4907482981681826;

рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рдСрдЯреЛ-рдЬрдирд░реЗрд╢рди рдореЗрдВ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд╕рдВрдкрд╛рджрди рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдиреАрдЪреЗ рдПрдХ рдиреБрдХрд╕рд╛рди рд╣реБрдЖред рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдкреНрд░рд╕рдиреНрди рдерд╛ред рдмреЗрд╢рдХ, рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдХрдИ рд╕рд╡рд╛рд▓ рд╣реИрдВ, рдФрд░ рдореИрдВрдиреЗ рдпрд╣рд╛рдБ рдЬреЛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ рд╡рд╣ рд╕рд┐рд░реНрдл рдмрд╛рд▓реНрдЯреА рдореЗрдВ рдПрдХ рдмреВрдВрдж рд╣реИред

рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреА рд╕рд╛рджрдЧреА рдФрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд╕рдВрдж рдЖрдпрд╛ред рдХрдо рд╕реЗ рдХрдо рдПрдирдИрдЖрд░ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдПред рдореБрдЭреЗ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реБрдП рдмрд╣реБрдд рдЦреБрд╢реА рд╣реЛрдЧреА рдФрд░ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рдЗрд╕ рд▓реЗрдЦ рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╕рд╛рдордЧреНрд░реА рдорд┐рд▓реЗрдЧреАред

Source: https://habr.com/ru/post/hi483372/


All Articles