Logo Zephyrnet

10 cách thực hành tốt nhất để ghi nhớ trong năm 2020

Ngày:


Giới thiệu

Nếu xem qua các tài liệu và ấn phẩm về Trí tuệ nhân tạo từ thế kỷ 21, bạn không thể bỏ qua Deep Learning. Nó là một tập hợp con của Machine Learning bao gồm việc học một hệ thống phân cấp các tính năng để có được thông tin chi tiết có ý nghĩa từ một không gian đầu vào phức tạp.

Mặc dù mọi người thường hào hứng sử dụng deep learning, nhưng họ có thể nhanh chóng nản lòng bởi khó khăn trong việc triển khai deep network của riêng họ. Đặc biệt là trong ngành, việc phát triển các quy trình tích hợp học sâu trong cơ sở hạ tầng điện toán hiện có của một tổ chức vẫn là một thách thức. Nhiều tổ chức đang ngày càng nhận ra rằng phần mã học sâu trong một hệ thống trong thế giới thực nhỏ hơn rất nhiều so với cơ sở hạ tầng cần thiết để hỗ trợ nó.

Khi các dự án chuyển từ nghiên cứu quy mô nhỏ sang triển khai quy mô lớn, tổ chức của bạn chắc chắn sẽ cần rất nhiều nguồn lực để hỗ trợ suy luận, đào tạo phân tán, đường dẫn dữ liệu, giám sát mô hình… Tuy nhiên, các công ty nhỏ phải vật lộn để cạnh tranh với các công ty lớn có nguồn lực khổng lồ để đầu tư vào việc phát triển quy trình học sâu. May mắn thay, có một số phương pháp phổ biến nhất để triển khai thành công mô hình học sâu cho một công ty thuộc mọi quy mô và phương tiện.


Xác định vấn đề kinh doanh

Bước đầu tiên và quan trọng nhất để điều hành một dự án học sâu thành công là xác định một vấn đề kinh doanh. Không có điều này, một dự án đơn giản là không thể tồn tại. Để trau dồi về trường hợp sử dụng kinh doanh, bạn phải bắt đầu với danh sách các vấn đề kinh doanh quan trọng để lựa chọn, bằng cách có thể thu hút phản hồi và ý tưởng từ các nhóm trong toàn công ty.

Hãy sử dụng số hóa hóa đơn này làm ví dụ. Bạn sẽ có thể trả lời những câu hỏi sau:

  • Quy trình hiện tại là gì? Quá trình xem xét hóa đơn đã phát triển rất nhiều theo thời gian, từ xem xét thủ công đến quét hóa đơn. Số hóa hóa đơn bao gồm rất nhiều bước do con người kiểm duyệt, vì vậy chúng tôi chắc chắn có thể sử dụng công nghệ để làm cho quá trình này tốt hơn.
  • Việc sử dụng các kỹ thuật học sâu có giúp ích gì đặc biệt cho vấn đề kinh doanh này không và nếu có thì bằng cách nào? Các phương pháp học sâu đã chứng kiến ​​​​sự tiến bộ trong vấn đề cụ thể là đọc văn bản và trích xuất thông tin có cấu trúc và phi cấu trúc từ hình ảnh. Bằng cách hợp nhất các phương pháp học sâu hiện có với công nghệ nhận dạng ký tự quang học (OCR), các công ty và cá nhân đã có thể tự động hóa quy trình số hóa tài liệu và cho phép các thủ tục nhập dữ liệu thủ công dễ dàng hơn, ghi nhật ký và lưu trữ tốt hơn, lỗi thấp hơn và thời gian phản hồi tốt hơn.
  • Chúng ta có lượng dữ liệu thích hợp không? Khi chọn một trường hợp sử dụng deep learning, bạn sẽ muốn chọn một trường hợp đã có sẵn dữ liệu. Yêu cầu thu thập dữ liệu trước khi bắt đầu một dự án là không lý tưởng vì nó sẽ kéo dài quá trình một cách đáng kể. Trong trường hợp sử dụng của chúng tôi, có các bộ dữ liệu có sẵn cho OCR cho các tác vụ như nhận dạng biển số hoặc nhận dạng chữ viết tay nhưng những bộ dữ liệu này hầu như không đủ để có được độ chính xác mà quy trình xử lý yêu cầu bảo hiểm hoặc phân công trả nợ của nhà cung cấp sẽ yêu cầu.
  • Chúng ta có sẵn sàng giải quyết vấn đề này với một đối tác bên ngoài không? Bởi vì bạn sẽ làm việc trong dự án với ai đó, nên vấn đề được chọn phải là vấn đề mà bạn thực sự sẵn sàng có sự tham gia của bên thứ ba. Lưu ý rằng nếu bạn chọn cách xây dựng giải pháp nội bộ, thì chi phí xây dựng giải pháp đó phải được bù đắp bằng việc tăng số lượng khách hàng đăng ký, tăng tỷ lệ xử lý hóa đơn và giảm số lượng người đánh giá thủ công được yêu cầu.
  • Dự án này sẽ giúp tôi kiếm tiền hay tiết kiệm tiền? Nếu câu trả lời là “có thể” hoặc “không”, thì hãy gạch nó ra khỏi danh sách. Dự án nên tập trung vào các cơ hội với kết quả thực tế và có thể đo lường được. Đối với số hóa hóa đơn, đây là một số lợi ích: tự động hóa quy trình, tăng hiệu quả, giảm chi phí và lưu trữ, tăng sự hài lòng của khách hàng và giảm dấu chân sinh thái.

Tính toán lợi tức đầu tư

Có nhiều thách thức trong việc tính toán ROI của một dự án học sâu. Một là thường rất khó để tách riêng những đóng góp của nó đối với các cải tiến, đặc biệt là đối với các kết quả kinh doanh lớn hơn. Hơn nữa, việc tính toán thường phức tạp vì giá trị không phải là tất cả trong một số và có thể trải rộng trên nhiều bộ phận và nhóm. Do đó, phần lớn nhất của công việc ở đây thường là xác định tất cả các cách khả thi mà dự án học sâu có thể mang lại thành công.

Danh sách các yếu tố là khác nhau đối với mỗi doanh nghiệp, nhưng những đóng góp chung là:

  • Tiết kiệm thời gian: Điều này rất dễ định lượng. Thời gian tiết kiệm được thông qua các dự án học sâu có thể được tái đầu tư vào các tổ chức của bạn cho các sáng kiến ​​khác.
  • Tiết kiệm tiền: Giá trị này hoàn toàn phụ thuộc vào từng dự án. Học sâu có thể cải thiện độ chính xác và hiệu quả trong các ngành. Đối với trường hợp sử dụng bảo trì dự đoán, học sâu có thể tiết kiệm tiền từ tỷ lệ khách hàng rời bỏ và nỗ lực của con người để bảo trì. Đối với trường hợp sử dụng công cụ đề xuất, học sâu có thể tăng mức độ tương tác của khách hàng và lòng trung thành với thương hiệu. Đối với trường hợp sử dụng chatbot dịch vụ khách hàng, học sâu có thể giảm chi phí vận hành hỗ trợ và cải thiện trải nghiệm của khách hàng.
  • Cho phép khả năng mở rộng: Các nỗ lực CNTT nội bộ để đóng gói dữ liệu và duy trì các mô hình cho các kỹ sư học sâu có thể tốn kém nếu chúng khó truy cập và quá lớn để xử lý. Đây là lợi ích chính của các nền tảng học sâu vì khi đó, các kỹ sư của bạn có thể truy cập vào đường dẫn dữ liệu và thực hiện các thay đổi khi cần. Điều này cuối cùng sẽ cho phép tổ chức của bạn mở rộng quy mô nhanh hơn mà không phải lo lắng về gánh nặng cơ sở hạ tầng.
  • Cải thiện trải nghiệm khách hàng: Khi dự án thể hiện cam kết của tổ chức bạn với khách hàng, họ có nhiều khả năng chọn bạn hơn các đối thủ cạnh tranh khác, giúp bạn có lợi thế hơn. Ngoài ra, khách hàng ít có khả năng rời bỏ khi trải nghiệm của họ được điều chỉnh theo nhu cầu cá nhân của họ. Học sâu có thể tạo ra loại trải nghiệm khách hàng này mà không làm tăng đáng kể chi phí nhân lực.

Để tăng ROI cho dự án của bạn, mục tiêu của bạn là đặt KPI rõ ràng được đặt ra và có thể theo dõi theo thời gian, ví dụ: (1) số lượng dự án được giao mỗi tháng, (2) thời gian từ khi bắt đầu từ nguyên mẫu đến sản xuất và (3) tỷ lệ các dự án được triển khai để sản xuất so với các yêu cầu dự án từ khách hàng.


Tập trung vào chất lượng và số lượng dữ liệu

Điều rất quan trọng là đầu tư vào việc xử lý trước dữ liệu của bạn trước khi đưa chúng vào mô hình học sâu. Dữ liệu trong thế giới thực nói chung là chưa hoàn thiện (thiếu giá trị thuộc tính, thiếu một số thuộc tính quan tâm hoặc chỉ chứa dữ liệu tổng hợp), ồn ào (chứa lỗi hoặc ngoại lệ) và mâu thuẫnt (có sự khác biệt về mã hoặc tên). Một vài thực hành tiền xử lý tốt bao gồm làm sạch (điền vào các giá trị còn thiếu, làm mịn dữ liệu ồn ào, xác định hoặc loại bỏ các giá trị ngoại lệ và giải quyết vấn đề inc
nhất quán), hội nhập (sử dụng nhiều cơ sở dữ liệu, khối dữ liệu hoặc tệp), chuyển đổi (chuẩn hóa và tổng hợp), giảm (giảm thể tích nhưng tạo ra kết quả phân tích giống hoặc tương tự), và rời rạc hóa (thay thế các thuộc tính số bằng các thuộc tính danh nghĩa).

Về mặt số lượng, khi triển khai mô hình học sâu của bạn trong một ứng dụng trong thế giới thực, bạn nên liên tục cung cấp thêm dữ liệu cho mô hình để tiếp tục cải thiện hiệu suất của mô hình. Nhưng không dễ để thu thập dữ liệu được chú thích tốt, vì quá trình này có thể tốn nhiều thời gian và tiền bạc. Việc thuê người thu thập dữ liệu thô theo cách thủ công và dán nhãn cho chúng hoàn toàn không hiệu quả.

Một gợi ý cho phép bạn tiết kiệm cả thời gian và tiền bạc là bạn có thể đào tạo mô hình học sâu của mình trên bộ dữ liệu nguồn mở quy mô lớn, sau đó tinh chỉnh nó trên dữ liệu của riêng bạn. Ví dụ, các Mở tập dữ liệu hình ảnh từ Google có gần 16 triệu hình ảnh được dán nhãn bằng các hộp giới hạn từ 600 danh mục. Mô hình của bạn được đào tạo về dữ liệu này có thể đã đủ để phát hiện các đối tượng, vì vậy bây giờ bạn chỉ cần phân loại các đối tượng trong các hộp.

Cách tiếp cận ở trên hoạt động nếu trường hợp sử dụng tương tự như loại nhiệm vụ mà các dự án nguồn mở lớn phục vụ. Trong nhiều tình huống trong thế giới thực, nó yêu cầu độ chính xác gần như 100% (ví dụ: phát hiện gian lận, xe tự lái), điều không thể thực hiện được chỉ với các bộ dữ liệu nguồn mở. Để giải quyết vấn đề này, bạn có thể lấy thêm dữ liệu bằng cách tận dụng tăng dữ liệu, thực hiện các thay đổi nhỏ đối với dữ liệu hiện có để tạo dữ liệu được sửa đổi tổng hợp. Bằng cách thực hiện tăng cường, bạn thực sự có thể ngăn mạng thần kinh của mình học các mẫu không liên quan và tăng hiệu suất tổng thể của nó. Một số kỹ thuật tăng phổ biến cho dữ liệu hình ảnh bao gồm lật hình ảnh theo chiều ngang và chiều dọc, xoay hình ảnh theo một số độ, chia tỷ lệ hình ảnh ra bên ngoài hoặc bên trong theo một số tỷ lệ, cắt xén hình ảnh gốc, dịch hình ảnh theo một số hướng và thêm nhiễu Gaussian vào hình ảnh của bạn. Bài viết NanoNets này cung cấp một đánh giá chi tiết về một số cách tiếp cận này, cũng như những cách tiếp cận nâng cao hơn, chẳng hạn như các mô hình tổng quát.


Giải quyết chú thích dữ liệu

Như bạn đã thấy tầm quan trọng của việc tăng cường dữ liệu, một thành phần thường bị bỏ qua trong việc xây dựng ngăn xếp dữ liệu mạnh là quá trình chú thích dữ liệu, cần phải mạnh mẽ cho mục đích đó. Chú thích là quá trình thêm thông tin theo ngữ cảnh hoặc nhãn vào hình ảnh, đóng vai trò là ví dụ đào tạo cho các thuật toán để tìm hiểu cách tự động xác định các tính năng khác nhau. Tùy thuộc vào tập dữ liệu của bạn, các chú thích có thể được tạo nội bộ hoặc thuê ngoài cho các nhà cung cấp dịch vụ bên thứ ba.

Bạn có thể dùng thử các nền tảng của bên thứ ba cung cấp dịch vụ chú thích hình ảnh. Tất cả những gì bạn phải làm là cung cấp cho họ mô tả về loại dữ liệu và chú thích mà bạn cần. Một số nền tảng nổi tiếng là Bối cảnh, Hình TámQuy mô. Các giải pháp của họ giúp các ngành khác nhau như xe tự lái, máy bay không người lái, người máy, AR/VR, bán lẻ, v.v. xử lý các tác vụ ghi nhãn dữ liệu và chú thích dữ liệu khác nhau.

Phần trước đã tiết lộ một vài dịch vụ chú thích hình ảnh của bên thứ ba, vì vậy ở đây tôi sẽ xem xét các phương pháp hay nhất để thực hiện chú thích nguồn, hay còn gọi là xây dựng cơ sở hạ tầng chú thích của bạn:

  • Điều quan trọng là phải đầu tư vào đào tạo và giáo dục chính thức và được tiêu chuẩn hóa để giúp nâng cao chất lượng và tính nhất quán giữa các bộ dữ liệu và người chú thích khác nhau. Bỏ qua bước này có thể dẫn đến sự mơ hồ và do đó, rất nhiều dữ liệu cần được chú thích lại sau này, đặc biệt đối với dữ liệu yêu cầu một loại chuyên môn cụ thể hoặc có xu hướng bao gồm bất kỳ tính chủ quan nào.
  • Điều quan trọng nữa là xây dựng một quy trình kiểm soát chất lượng, quy trình này đảm bảo rằng đầu ra của chú thích được người khác xác thực để mang lại dữ liệu có chất lượng tốt hơn. Quá trình này được thực hiện tuần tự, sau quá trình chú thích ban đầu, trong đó dữ liệu được gửi ngẫu nhiên qua để kiểm soát chất lượng.
  • Cuối cùng, điều quan trọng là phải kết hợp các phân tích để quản lý quy trình chú thích theo cách dựa trên dữ liệu, đặc biệt là do tính chất hoạt động của nó. Dữ liệu này có thể được sử dụng để quản lý quy trình và đo lường hiệu quả hoạt động của nhóm đối với các mục tiêu mà người chú thích đang hoạt động hiệu quả hoặc kém hiệu quả.

Bây giờ bạn đã xây dựng cơ sở hạ tầng chú thích, làm cách nào để bạn cho phép trình chú thích xuất dữ liệu hiệu quả hơn?

  • Trong giai đoạn đầu của việc chú thích các mô hình của bạn, bạn nên sử dụng các phương pháp truyền thống hơn (kỹ thuật thị giác máy tính cổ điển) để làm cơ sở cho các chú thích của mình. Những cách tiếp cận này có thể giảm đáng kể thời gian chú thích và cải thiện hiệu suất tổng thể.
  • Giao diện người dùng chú thích là rất quan trọng. Giao diện đơn giản, được cân nhắc kỹ lưỡng sẽ giúp ích rất nhiều trong việc thúc đẩy các chú thích nhất quán và chất lượng cao từ người dùng của bạn.
  • Cuối cùng, việc tạo dữ liệu tổng hợp cũng có thể giúp tối đa hóa đầu ra của một chú thích, vì nó sẽ tạo thành một chú thích cho từng tập dữ liệu được tạo tương ứng.

Nhìn chung, khả năng tạo tập dữ liệu rõ ràng, có chú thích trên quy mô lớn hoàn toàn là yếu tố thúc đẩy giá trị cốt lõi cho doanh nghiệp của bạn.


tập hợp đội

Các nhóm học sâu ngày nay bao gồm những người có bộ kỹ năng khác nhau. Có rất nhiều vai trò khác nhau cần thiết khi bạn bắt đầu xây dựng các giải pháp học sâu ở cấp độ sản xuất. Việc triển khai machine learning đòi hỏi sự phối hợp rất phức tạp giữa nhiều nhóm và chỉ những Người quản lý sản phẩm giỏi nhất mới có thể thực hiện được. Dưới đây là các cá nhân/nhóm khác nhau cần có để đưa ML đến tay người dùng:

  1. Nhà khoa học dữ liệu người khám phá và cố gắng hiểu các mối tương quan trong dữ liệu thu thập được. Người này hiểu rõ cách thức hoạt động của số liệu thống kê và học sâu trong khi vẫn duy trì khả năng lập trình tốt.
  2. Kỹ sư học sâu người chuyển đổi các mô hình học sâu do nhà khoa học dữ liệu tạo ra để sản xuất. Người này xuất sắc trong việc viết mã có thể bảo trì và hiểu rõ về cách thức hoạt động của deep learning.
  3. Kỹ sư dữ liệu người chịu trách nhiệm thu thập dữ liệu và cung cấp dữ liệu đó cho những người còn lại trong nhóm. Người này biết cách lập kế hoạch cho các đường dẫn dữ liệu có thể bảo trì và quản lý cách kiểm tra dữ liệu.
  4. Chú thích dữ liệu người dán nhãn và chú thích dữ liệu đào tạo.
  5. nhà thiết kế người thiết kế trải nghiệm người dùng và tương tác.
  6. Đảm bảo chất lượng Kỹ sư người kiểm tra các thuật toán và kiểm tra các trường hợp lỗi. Người này phải thành thạo các phương pháp hay nhất trong quá trình phát triển dựa trên thử nghiệm.
  7. hoạt động quản lý người tích hợp deep learning vào quy trình kinh doanh. Người này hiểu các quy trình nội bộ/phức tạp của tổ chức nơi dự đoán giá rẻ là có giá trị, do đó có thể hưởng lợi từ việc học sâu.
  8. Quản lý phân phối (thường là từ bộ phận Bán hàng/Tiếp thị), người truyền đạt cho khách hàng giá trị của deep learning. Người này phải cung cấp kiến ​​thức về miền cụ thể.

Viết mã sẵn sàng sản xuất

Vì rất nhiều nhà khoa học dữ liệu chịu trách nhiệm xây dựng các mô hình học sâu không
Nếu bạn có nền tảng về công nghệ phần mềm, chất lượng của mã đó có thể thay đổi rất nhiều, gây ra các vấn đề về khả năng tái sản xuất và khả năng bảo trì sau này. Do đó, cách thực hành tốt nhất trong khía cạnh này là viết mã sẵn sàng sản xuất, những mã được nhiều người khác đọc và thực thi, thay vì chỉ người viết mã đó. Cụ thể, mã sẵn sàng sản xuất phải (1) có thể tái sản xuất, (2) theo mô-đun và (3) được ghi chép đầy đủ. Đây là những thách thức mà thế giới công nghệ phần mềm đã giải quyết, vì vậy, hãy đi sâu vào một số phương pháp có thể mang lại cho bạn tác động tích cực ngay lập tức đến chất lượng dự án học sâu của bạn.

Để làm cho mã của bạn có thể tái sản xuất, bạn chắc chắn nên kiểm soát phiên bản cơ sở mã của bạn với “git” và cố gắng đẩy mã cam kết thường xuyên. Điều quan trọng là phải phiên bản bộ dữ liệu của bạn để các mô hình của bạn cũng được đào tạo để bạn có thể theo dõi hiệu suất của các mô hình khi nó thay đổi theo dữ liệu mà bạn đào tạo. Bạn cũng nên sử dụng một Môi trường ảo chẳng hạn như “virtualenv” hoặc “conda”, lấy tệp cấu hình chứa danh sách các gói được sử dụng trong mã. Bạn có thể phân phối tệp này trong nhóm của mình thông qua kiểm soát phiên bản để đảm bảo rằng các đồng nghiệp của bạn đang làm việc trong cùng một môi trường. Cuối cùng, bạn nên sử dụng một IDE thích hợp như PyCharm hoặc Visual Studio Code khi lập trình, thay vì Jupyter Notebooks. Sổ ghi chép rất phù hợp cho việc tạo nguyên mẫu ban đầu, nhưng không tốt cho quy trình làm việc có thể tái sản xuất.

Để làm cho mã của bạn theo mô-đun, bạn cần phải có một khung đường ống xử lý quy trình công việc kỹ thuật dữ liệu và mô hình hóa. Một số lựa chọn tốt là LuigiLuồng khí Apache, cho phép bạn xây dựng quy trình công việc dưới dạng một loạt các nút trong biểu đồ, đồng thời cung cấp cho bạn khả năng quản lý phụ thuộc và thực thi quy trình công việc. Bạn sẽ muốn viết kiểm tra đơn vị cho cơ sở mã của bạn để đảm bảo mọi thứ hoạt động như mong đợi, điều này rất quan trọng trong deep learning khi bạn xử lý các thuật toán hộp đen. Cuối cùng, bạn nên xem xét thêm tích hợp liên tục vào kho lưu trữ của bạn, có thể được sử dụng để chạy thử nghiệm đơn vị hoặc quy trình sau mỗi lần xác nhận hoặc hợp nhất, đảm bảo rằng không có thay đổi nào đối với cơ sở mã làm hỏng nó.

Để giữ cho mã của bạn được ghi chép đầy đủ, bạn sẽ muốn tổ chức mã của mình theo một cấu trúc tiêu chuẩn để giúp đồng nghiệp của bạn dễ dàng hiểu được cơ sở mã của bạn. Mẫu từ Cắt cookie Là sở thích của tôi. Sau đó, bạn nên chọn một quy ước phong cách mã hóa (Chẳng hạn như PEP8) và thực thi nó bằng một kẻ nói dối cam kết trước (chẳng hạn như yapf). Nếu bạn không muốn tự viết tài liệu, hãy sử dụng Người khó hiểu để tạo tài liệu cho dự án của bạn.


Theo dõi thử nghiệm mô hình

Hầu hết các công ty ngày nay chỉ có thể lưu trữ một cách có hệ thống phiên bản mã, thường thông qua hệ thống kiểm soát phiên bản như Git. Đối với mỗi thử nghiệm học sâu, tổ chức của bạn nên có một cách tiếp cận có hệ thống để lưu trữ những điều sau:

  • Mã đào tạo: Bạn có thể chỉ cần sử dụng kiểm soát phiên bản phát triển phần mềm thông thường, chẳng hạn như Git để lưu trữ phiên bản mã chính xác được sử dụng để chạy một thử nghiệm cụ thể.
  • Thông số mô hình: Lưu trữ các tham số và có thể xem các giá trị của chúng cho một mô hình cụ thể theo thời gian sẽ giúp bạn hiểu rõ hơn và có trực giác về cách không gian tham số ảnh hưởng đến mô hình của bạn. Điều này rất quan trọng khi phát triển nhóm của bạn vì nhân viên mới sẽ có thể thấy cách một mô hình cụ thể đã được đào tạo trong quá khứ.
  • Bộ dữ liệu: Phiên bản và lưu trữ các bộ dữ liệu là rất quan trọng đối với mục đích tái sản xuất và tuân thủ. Khi khả năng giải thích ngày càng trở nên khó khăn hơn khi xử lý học sâu, một cách tốt để bắt đầu hiểu các mô hình là xem xét dữ liệu huấn luyện. Phiên bản tập dữ liệu tốt sẽ giúp bạn khi đối mặt với các luật về quyền riêng tư như GDPR hoặc các truy vấn pháp lý có thể có trong tương lai như xu hướng mô hình.
  • Phần cứng: Nếu bạn sử dụng phần cứng đám mây mạnh hơn, thì điều quan trọng là phải dễ dàng hiển thị số liệu thống kê sử dụng phần cứng. Có thể dễ dàng xem mức sử dụng GPU và mức sử dụng bộ nhớ của máy mà không cần phải chạy kiểm tra và giám sát theo cách thủ công. Điều này sẽ tối ưu hóa việc sử dụng máy móc và giúp gỡ lỗi tắc nghẽn.
  • môi trường: Quản lý gói là khó nhưng hoàn toàn bắt buộc để làm cho mã dễ chạy. Các công cụ dựa trên vùng chứa như Docker cho phép bạn nhanh chóng tăng tốc độ cộng tác xung quanh các dự án.
  • Chi phí: Chi phí thử nghiệm rất quan trọng trong việc đánh giá và lập ngân sách phát triển máy học.
  • Ngươi mâu: Phiên bản mô hình có nghĩa là một cách tốt để lưu trữ kết quả đầu ra của mã của bạn.
  • Nhật ký: Nhật ký thời gian thực hiện đào tạo rất cần thiết để gỡ lỗi các trường hợp sử dụng nhưng chúng cũng có thể cung cấp thông tin quan trọng để theo dõi các chỉ số chính của bạn như độ chính xác hoặc tốc độ đào tạo và thời gian ước tính để hoàn thành.
  • Kết quả: Việc xem hiệu suất và các kết quả chính của bất kỳ thử nghiệm đào tạo nào mà bạn đã thực hiện là chuyện nhỏ.

Theo hệ thống, ý tôi là một cách tiếp cận mà bạn thực sự có thể lấy một mô hình trong quá trình sản xuất và xem xét phiên bản mã được sử dụng để tạo ra mô hình đó. Điều này nên được thực hiện cho mọi thử nghiệm đơn lẻ, bất kể chúng có đang được sản xuất hay không.


Cơ sở hạ tầng đám mây tại chỗ v/s

đám mây cơ sở hạ tầng bao gồm các nhà cung cấp truyền thống như AWS, GCP, Microsoft Azure; cũng như nhà cung cấp dành riêng cho ML như Paperspace và FloydHub. On-Premise cơ sở hạ tầng bao gồm các máy chủ deep learning dựng sẵn như máy trạm Nvidia và Lambda Labs; cũng như các máy trạm học sâu được xây dựng từ đầu (xem các tài nguyên như điều nàyđiều này).

  • Những lợi ích chính của việc chọn tùy chọn đám mây bao gồm rào cản gia nhập tài chính thấp, hỗ trợ sẵn có từ các nhà cung cấp và khả năng mở rộng quy mô cùng với cụm máy tính có kích thước khác nhau.
  • Mặt khác, việc đầu tư vào các hệ thống tại chỗ cho phép bạn lặp lại và thử các thử nghiệm khác nhau trong nhiều thời gian và nhiều dự án nhất mà phần cứng có thể xử lý mà không tính đến chi phí.

Cuối cùng, việc lựa chọn giữa hai tùy chọn này thực sự phụ thuộc vào trường hợp sử dụng hiện tại và loại dữ liệu liên quan. Rất có thể, tổ chức của bạn sẽ cần chuyển từ môi trường này sang môi trường khác tại các điểm khác nhau trong quy trình làm việc của dự án từ thử nghiệm ban đầu sang triển khai quy mô lớn.

Khi bạn mới bắt đầu, một nhà cung cấp đám mây, đặc biệt là nhà cung cấp dành riêng cho ML, sẽ rất hợp lý. Với khoản đầu tư ban đầu nhỏ, cả về đô la và thời gian, bạn có thể được đào tạo mô hình đầu tiên của mình trên GPU. Tuy nhiên, khi nhóm của bạn phát triển và số lượng mô hình của bạn tăng lên, tiết kiệm chi phí từ việc triển khai tại chỗ có thể đạt gần gấp 10 lần so với các đám mây công cộng lớn. Thêm vào đó là tính linh hoạt gia tăng trong những gì bạn có thể xây dựng và bảo mật dữ liệu tốt hơn, rõ ràng là tại chỗ
Các giải pháp ise là lựa chọn phù hợp để bạn học sâu trên quy mô lớn.


Kích hoạt đào tạo phân tán

Một trong những lý do chính khiến mức độ phổ biến của deep learning tăng đột biến có liên quan đến sức mạnh tính toán khổng lồ. Học sâu yêu cầu đào tạo các mạng lưới thần kinh với một số lượng lớn các tham số trên một lượng dữ liệu khổng lồ. Phân phối máy tính, do đó, là một công cụ hoàn hảo để tận dụng tối đa phần cứng hiện đại. Nếu bạn không quen thuộc với điện toán phân tán, thì đó là một cách để lập trình phần mềm sử dụng một số thành phần riêng biệt được kết nối qua mạng.

Việc đào tạo mạng nơ-ron phân tán có thể được tiếp cận theo 2 cách: (1) song song dữ liệu và (2) song song mô hình.

  • Song song dữ liệu cố gắng chia đều tập dữ liệu cho các nút của hệ thống, trong đó mỗi nút có một bản sao của mạng thần kinh cùng với các trọng số cục bộ của nó. Mỗi nút hoạt động trên một tập con duy nhất của tập dữ liệu và cập nhật tập trọng số cục bộ của nó. Các trọng số cục bộ này được chia sẻ trên toàn cụm để tính toán một tập hợp trọng số toàn cầu mới thông qua thuật toán tích lũy. Các trọng số toàn cầu này sau đó được phân phối cho tất cả các nút và quá trình xử lý lô dữ liệu tiếp theo sẽ diễn ra tiếp theo.
  • Mô hình song song cố gắng phân phối đào tạo bằng cách chia kiến ​​trúc của mô hình thành các nút riêng biệt. Nó được áp dụng khi kiến ​​trúc mô hình quá lớn để phù hợp với một máy duy nhất và mô hình có một số phần có thể được song song hóa. Nói chung, hầu hết các mạng có thể phù hợp với 2 GPU, điều này giới hạn khả năng mở rộng có thể đạt được.

Trên thực tế, tính song song dữ liệu phổ biến hơn và thường được sử dụng trong các tổ chức lớn để thực hiện các thuật toán học sâu ở cấp độ sản xuất. Dưới đây là một số khung tốt cho phép bạn thực hiện song song dữ liệu ở quy mô lớn:

  • MX Net – Một deep learning phân tán nhẹ, di động và linh hoạt dành cho Python, R, Julia, Go, Javascript, v.v.
  • học sâu4j – Một nền tảng deep learning phân tán cho Java, Clojure, Scala.
  • Bộ công cụ học máy phân tán (DMTK) – Khung học máy phân tán (do Microsoft tạo) cho phép bạn thực hiện mô hình hóa chủ đề, nhúng từ và cây tăng cường độ dốc.
  • Voi – Một phần mở rộng của Keras, cho phép bạn chạy các mô hình deep learning phân tán trên quy mô lớn với Spark.
  • Horovod – Khung đào tạo phân tán cho TensorFlow (được tạo bởi Uber).

Triển khai các mô hình trong tự nhiên

Các dự án học sâu không nên diễn ra trong chân không; do đó, điều quan trọng là thực sự tích hợp mô hình vào hoạt động của công ty. Quay trở lại phần 1, mục tiêu cuối cùng của một dự án học sâu là cung cấp thông tin chi tiết về doanh nghiệp. Điều này có nghĩa là mô hình sẽ cần được đưa vào sản xuất và không bị kẹt trong giai đoạn tạo mẫu hoặc hộp cát.

Một trong những thách thức lớn nhất bị đánh giá thấp trong quá trình phát triển máy học là việc triển khai các mô hình được đào tạo trong sản xuất theo cách có thể mở rộng. Một trong những công cụ tốt nhất có thể giải quyết vấn đề này là phu bến tàu, một nền tảng chứa đóng gói một ứng dụng và tất cả các phần phụ thuộc của nó vào một vùng chứa. Docker được sử dụng khi bạn có nhiều dịch vụ hoạt động độc lập và đóng vai trò là nhà cung cấp dữ liệu cho ứng dụng web. Tùy thuộc vào tải, các phiên bản có thể được tách ra theo yêu cầu trên cơ sở các quy tắc được thiết lập.

Động cơ Kubernetes là một nơi tuyệt vời khác để chạy khối lượng công việc của bạn trên quy mô lớn. Trước khi có thể sử dụng Kubernetes, bạn cần phải chứa các ứng dụng của mình. Bạn có thể chạy hầu hết các ứng dụng trong bộ chứa Docker mà không gặp quá nhiều rắc rối. Tuy nhiên, việc vận hành hiệu quả các thùng chứa đó trong quá trình sản xuất và hợp lý hóa quy trình xây dựng lại là một câu chuyện khác. Dưới đây là các thực hành vững chắc, theo Google Cloud, để giúp bạn xây dựng vùng chứa một cách hiệu quả:

  • Đóng gói một ứng dụng trên mỗi vùng chứa: Khó gỡ lỗi hơn khi có nhiều ứng dụng chạy bên trong một vùng chứa.
  • Tối ưu hóa cho bộ đệm xây dựng Docker: Docker có thể lưu trữ các lớp hình ảnh của bạn để tăng tốc các bản dựng sau này. Đây là một tính năng rất hữu ích, nhưng nó giới thiệu một số hành vi mà bạn cần tính đến khi viết Dockerfiles của mình. Ví dụ: bạn nên thêm mã nguồn của ứng dụng vào Dockerfile càng muộn càng tốt để hình ảnh cơ sở và các phần phụ thuộc của ứng dụng được lưu vào bộ nhớ đệm và không được xây dựng lại trên mọi bản dựng.
  • Loại bỏ các công cụ không cần thiết: Điều này giúp bạn giảm bề mặt đính kèm của hệ thống máy chủ.
  • Xây dựng hình ảnh nhỏ nhất có thể: Điều này làm giảm thời gian tải xuống, thời gian khởi động nguội và mức sử dụng đĩa. Bạn có thể sử dụng một số chiến lược để đạt được điều đó: bắt đầu với một hình ảnh cơ sở tối thiểu, tận dụng các lớp chung giữa các hình ảnh và tận dụng tính năng xây dựng nhiều giai đoạn của Docker.
  • Cân nhắc xem có nên sử dụng hình ảnh công khai hay không: Sử dụng hình ảnh công khai có thể là một cách tuyệt vời để bắt đầu làm việc với một phần mềm cụ thể. Tuy nhiên, việc sử dụng chúng trong sản xuất có thể đi kèm với một loạt thách thức, đặc biệt là trong môi trường có nhiều ràng buộc. Ví dụ, bạn có thể cần kiểm soát những gì bên trong chúng hoặc bạn có thể không muốn phụ thuộc vào kho lưu trữ bên ngoài. Mặt khác, việc xây dựng hình ảnh của riêng bạn cho mọi phần mềm bạn sử dụng không phải chuyện nhỏ, đặc biệt vì bạn cần cập nhật các bản cập nhật bảo mật của phần mềm ngược dòng. Cân nhắc cẩn thận ưu và nhược điểm của từng trường hợp sử dụng cụ thể của bạn và đưa ra quyết định sáng suốt.

Nhìn chung, các vùng chứa rất tuyệt khi sử dụng để đảm bảo rằng các phân tích và mô hình của bạn có thể tái tạo trên các môi trường khác nhau. Mặc dù các vùng chứa rất hữu ích để giữ sạch các phần phụ thuộc trên một máy duy nhất, nhưng lợi ích chính là chúng cho phép các nhà khoa học dữ liệu viết các điểm cuối mô hình mà không phải lo lắng về cách vùng chứa sẽ được lưu trữ. Việc tách biệt các mối quan tâm này giúp việc hợp tác với các nhóm kỹ thuật dễ dàng hơn để triển khai các mô hình vào sản xuất. Ngoài ra, bằng cách sử dụng Docker và/hoặc Kubernetes, các nhà khoa học dữ liệu cũng có thể sở hữu việc triển khai các mô hình vào sản xuất.


Tất nhiên, có một cách tốt hơn, đơn giản hơn và trực quan hơn nhiều để thực hiện các tác vụ OCR.


Học sâu với Nanonet

Sản phẩm API Nanonets cho phép bạn xây dựng các mô hình OCR một cách dễ dàng.

Bạn có thể tải lên dữ liệu của mình, chú thích dữ liệu, thiết lập mô hình để đào tạo và chờ nhận dự đoán thông qua giao diện người dùng dựa trên trình duyệt mà không cần viết một dòng mã nào, lo lắng về GPU hoặc tìm kiến ​​trúc phù hợp cho mô hình học sâu của mình. Bạn cũng có thể lấy các phản hồi JSON của từng dự đoán để tích hợp nó với các hệ thống của riêng bạn và xây dựng các ứng dụng hỗ trợ máy học dựa trên các thuật toán hiện đại và
một cơ sở hạ tầng mạnh mẽ.

Sử dụng GUI: https://app.nanonets.com/

Đây là cách bạn cũng có thể sử dụng API OCR của Nanonets bằng cách làm theo các bước dưới đây:

Bước 1: Sao chép Repo, Cài đặt phụ thuộc

git clone https://github.com/NanoNets/nanonets-ocr-sample-python.git
cd nanonets-ocr-sample-python
sudo pip install requests tqdm

Bước 2: Nhận Khóa API miễn phí của bạn
Nhận Khóa API miễn phí của bạn từ http://app.nanonets.com/#/keys

biển số-phát hiện-gif

Bước 3: Đặt khóa API làm Biến môi trường

export NANONETS_API_KEY=YOUR_API_KEY_GOES_HERE

Bước 4: Tạo mô hình mới

python ./code/create-model.py

Lưu ý: Điều này tạo ra MODEL_ID mà bạn cần cho bước tiếp theo

Bước 5: Thêm Id mẫu làm biến môi trường

export NANONETS_MODEL_ID=YOUR_MODEL_ID

Lưu ý: bạn sẽ nhận được YOU_MODEL_ID từ bước trước

Bước 6: Tải lên dữ liệu đào tạo
Dữ liệu đào tạo được tìm thấy trong images (tệp hình ảnh) và annotations (chú thích cho các tập tin hình ảnh)

python ./code/upload-training.py

Bước 7: Mô hình tàu hỏa
Khi Hình ảnh đã được tải lên, hãy bắt đầu đào tạo Mô hình

python ./code/train-model.py

Bước 8: Lấy trạng thái mẫu
Mô hình mất ~ 2 giờ để đào tạo. Bạn sẽ nhận được email khi mô hình được đào tạo. Trong khi đó, bạn kiểm tra trạng thái của mô hình

python ./code/model-state.py

Bước 9: Đưa ra dự đoán
Một khi mô hình được đào tạo. Bạn có thể đưa ra dự đoán bằng mô hình

python ./code/prediction.py ./images/151.jpg


Nanonets và con người trong vòng lặp

‌‌Màn hình 'Trung bình' hỗ trợ quá trình chỉnh sửa và nhập và giảm gần 90% khối lượng công việc của người đánh giá thủ công và giảm 50% chi phí cho tổ chức.

Các tính năng bao gồm

  1. Theo dõi dự đoán là chính xác
  2. Theo dõi những cái nào sai
  3. Sửa lỗi cho những cái không chính xác
  4. Xóa những cái sai
  5. Điền vào các dự đoán còn thiếu
  6. Lọc ảnh với phạm vi ngày
  7. Nhận số lượng hình ảnh được kiểm duyệt so với những hình ảnh không được kiểm duyệt

Tất cả các trường được cấu trúc thành một GUI dễ sử dụng cho phép người dùng tận dụng công nghệ OCR và hỗ trợ làm cho nó tốt hơn khi họ đi, mà không phải nhập bất kỳ mã nào hoặc hiểu cách thức hoạt động của công nghệ.


Kết luận

Bằng cách quên bất kỳ phương pháp nào trong số 10 phương pháp này, bạn có nguy cơ khiến các bên liên quan khó chịu vì quan điểm tiêu cực về hoạt động của dự án học sâu. Hơn nữa, bạn cũng có thể gặp rủi ro khi đánh giá kết quả của một nỗ lực không trọn vẹn và chắc chắn sẽ thất bại ngay từ đầu, do đó lãng phí rất nhiều thời gian và tiền bạc. Việc tuân thủ các phương pháp này sẽ cho phép tổ chức của bạn nhanh chóng đưa bằng chứng về khái niệm deep learning vào sản xuất, đồng thời tiết kiệm được nhiều thời gian và tiền bạc hơn.

Nguồn: https://nanonets.com/blog/10-best-practices-deep-learning/

tại chỗ_img

Tin tức mới nhất

tại chỗ_img

Trò chuyện trực tiếp với chúng tôi (chat)

Chào bạn! Làm thế nào để tôi giúp bạn?