Là một sinh viên thuộc khoa Công nghệ phần mềm, em muốn mình được tiếp xúc với tất cả các loại, các cách, các hướng đi của việc phát triển phần mềm, đồng thời cảm thấy các mục tiêu và gi
Trang 1KHOA CÔNG NGHỆ PHẦN MỀM
Báo Cáo Thực Tập
Full Stack Developer
Công ty thực tập: Công ty TNHH CodeLink
Người phụ trách: Nguyễn Trần Phong – Technical Leader
Thực tập sinh: Dương Bình Trọng
Tp Hồ Chí Minh, tháng 06 năm 2022
Trang 2ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
KHOA CÔNG NGHỆ PHẦN MỀM
Báo Cáo Thực Tập
Full Stack Developer
Công ty thực tập: Công ty TNHH CodeLink
Người phụ trách: Nguyễn Trần Phong – Technical Leader
Thực tập sinh: Dương Bình Trọng
Tp Hồ Chí Minh, tháng 06 năm 2022
Trang 3Lời Mở Đầu
Ngày nay, ngành công nghiệp phần mềm đã và đang là một trong những ngành nghề có sức phát triển vô cùng mạnh mẽ, chiến tỉ trọng lớn trong nền kinh tế toàn cầu
và không hề có dấu hiệu chậm lại Nhu cầu thị trường cho một sản phẩm phần mềm hiện nay là cao hơn bao giờ hết Đứng trước đà phát triển này, cùng với nhu cầu vô cùng lớn, đã có nhiều công ty ra đời nhằm đáp ứng thị trường
Một trong những công ty đó là CodeLink Đây là một công ty đa quốc gia với
văn phòng tại Thành phố Hồ Chí Minh, và Toronto (Canada) Công ty được thành lập
với châm ngôn Desgin Build Scale, luôn đưa chất lượng phần mềm và nhân tố con
người chất lượng cao lên hàng đầu
Là một sinh viên thuộc khoa Công nghệ phần mềm, em muốn mình được tiếp xúc với tất cả các loại, các cách, các hướng đi của việc phát triển phần mềm, đồng thời
cảm thấy các mục tiêu và giá trị của CodeLink rất phù hợp với định hướng của bản thân, nên em đã quyết định chọn CodeLink là nơi bắt đầu thực tập, mài dũa thêm những
kiến thức và kinh nghiệm thực tế trong những bước chập chững đầu tiên của sự nghiệp
Trang 4Lời Cảm Ơn
Trân trọng gửi lời cảm ơn đến Công ty CodeLink đã tạo điều kiện cho em có cơ hội được thực tập tại công ty
Em đã được học rất nhiều thứ từ sự chỉ dẫn nhiệt tình của các anh, chị trong công
ty Em không những học được những kỹ thuật, kiến thức trong các dự án thực tế, mà còn tích góp được cho bản thân những kinh nghiệm khi làm một nhân viên trong công
ty, cách giao tiếp, làm việc nhóm trong các dự án chung Chân thành cảm ơn các anh chị, đặc biệt là anh Phong, đã giúp đỡ, hướng dẫn cũng như theo sát để góp ý em trong suốt quá trình thực tập
Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điều kiện em làm bài báo cáo này
Dương Bình Trọng
Tp Hồ Chí Minh, ngày 13 tháng 06 năm 2022
Trang 5Nhận Xét Của Khoa
Trang 6
MỤC LỤC
GIỚI THIỆU CÔNG TY THỰC TẬP 7
Giới thiệu về công ty CodeLink 7
Một số dự án của công ty 7
Văn hoá công ty 8
NỘI DUNG THỰC TẬP 9
Tổng quan kế hoạch thực tập 9
Tuần 1 - Làm quen với công ty, setup công cụ, máy móc, tự học Python 9
Tuần 2 - Tìm hiểu về AI/ML, tham gia vào team HAL 10
Tuần 3 - Viết thư viện Python hỗ trợ tiền xử lí dữ liệu văn bản cho mô hình Text-To-Speech (ViCleaner) 10
Tuần 4 - Hoàn thiện và viết unit test cho thư viện ViCleaner 10
Tuần 5 - Làm quen với mô hình học máy hiện tại của team, học cách điều chỉnh để huấn luyện mô hình 11
Tuần 6 - Tìm hiểu thực hành sử dụng một số dịch vụ của Google Cloud Platform 11
Tuần 7 - Xây dựng Text-To-Speech API 11
Tuần 8 - Tìm hiểu và triển khai các phương pháp giảm thời gian phản hồi của API 12
GIỚI THIỆU VỀ DỰ ÁN 13
TÀI LIỆU THAM KHẢO 14
TỔNG KẾT 15
Trang 7GIỚI THIỆU CÔNG TY THỰC TẬP Giới thiệu về công ty CodeLink
www.codelink.io
CodeLink là công ty phần mềm chuyên về phát triển sản phẩm cho các công ty
startup Công ty sử dụng những quy trình phát triển mới nhất như là Agile, Extreme Programming kết hợp Code Review, Pair Programming, Test Driven Development
(TDD) để đảm bảo chất lượng cho đội ngũ nhân viên và sản phẩm làm ra CodeLink
sử dụng Rails, NodeJS, React, ReactNative và Flutter cho ứng dụng trên web và mobile
Khách hàng của CodeLink đến từ Hong Kong, Úc, Mỹ, Canada và Việt Nam
Các kỹ sư sẽ làm việc trực tiếp với những CEO, CTO Yêu cầu công việc khá cao nhưng các bạn nhân viên sẽ phát triển rất nhanh từ những dự án này
CodeLink muốn xây dựng một môi trường phát triển phần mềm chuyên nghiệp
Các bạn kỹ sư sẽ được đào tạo và học hỏi những công nghệ mới nhất từ những thành viên khác
Một số dự án của công ty
Trang 8Văn hoá công ty
Trang 9NỘI DUNG THỰC TẬP
Đợt thực tập trong 2 tháng nhằm mục đích giúp sinh viên thực tập được đào tạo
về kĩ năng lập trình với vị trí Full Stack Developer, đồng thời rèn luyện những kĩ năng
mềm như làm việc nhóm, thuyết trình, giao tiếp Tại công ty, sinh viên có cơ hội được học tập, khám phá và làm việc trong một môi trường làm việc chuyên nghiệp
Tổng quan kế hoạch thực tập
Kéo dài trong 8 tuần từ ngày 15/11/2021 đến ngày 14/01/2022
Nhận xét của người hướng dẫn
1 Làm quen với công ty, setup công cụ,
máy móc, tự học Python
Anh Phong, chị Khang, chị Min và anh Tĩnh
2 Tìm hiểu về AI/ML, tham gia vào team
HAL
Anh Nguyễn Trần Phong
3 Viết thư viện Python hỗ trợ tiền xử lí dữ
liệu văn bản cho mô hình
Text-To-Speech (ViCleaner)
Anh Nguyễn Trần Phong
4 Hoàn thiện và viết unit test cho thư viện
ViCleaner
Anh Nguyễn Trần Phong
5 Làm quen với mô hình học máy hiện tại
của team, học cách điều chỉnh để huấn
luyện mô hình
Anh Nguyễn Trần Phong
6 Tìm hiểu thực hành sử dụng một số
dịch vụ của Google Cloud Platform
(GCP)
Anh Nguyễn Trần Phong
7 Xây dựng Text-To-Speech API Anh Nguyễn Trần Phong
8 Tìm hiểu và triển khai các phương pháp
giảm thời gian phản hồi của API
Anh Nguyễn Trần Phong
Tuần 1 - Làm quen với công ty, setup công cụ, máy móc, tự học Python Nội dung chi tiết
• Được nghe anh Daniel - Co-founder giới thiệu về công ty, quá trình thành lập và phát triển, cách công ty tổ chức và quản lý công việc hàng ngày, cũng như
• Thực tập sinh setup máy móc làm việc, các phần mềm lập trình, các công cụ giao tiếp (Slack, Gmail ), công cụ quản lý dự án (Github, Jira )
• Sau đó thực tập sinh tự học về ngôn ngữ lập trình Python để chuẩn bị tham gia vào dự án ở tuần tiếp theo
Trang 10Kết quả
• Hiểu thêm về công ty CodeLink, quá trình thành lập và phát triển
• Có thêm kỹ năng về sử dụng Slack, Email trong công việc, làm việc nhóm, giao tiếp tốt hơn
• Có thêm hiểu biết về ngôn ngữ lập trình Python
Tuần 2 - Tìm hiểu về AI/ML, tham gia vào team HAL
Nội dung chi tiết
• Được anh Phong (người phụ trách/hướng dẫn) giới thiệu tổng quát về dự án hiện tại mà team đang nghiên cứu và triển khai
• Team HAL đang phụ trách những dự án liên quan đến AI/ML tập trung vào các vấn đề xoay quanh Xử lý Ngôn ngữ tự nhiên (NLP)
• Tự học các kiến thức cơ bản nhất về AI/ML
• Tìm hiểu về các công cụ, phần mềm đang được sử dụng trong dự án
Kết quả
• Hiểu rõ về team cũng như dự án mà mình được phân vào: xây dựng mô hình chuyển văn bản thành giọng nói (Text-To-Speech)
• Có thêm được những kiến thức cơ bản nhất về AI/ML
Tuần 3 - Viết thư viện Python hỗ trợ tiền xử lí dữ liệu văn bản cho mô hình Text-To-Speech (ViCleaner)
Nội dung chi tiết
• Sau khi có được những kiến thức về Python, AI/ML cũng như về dự án hiện tại của team, thực tập sinh nhận task đầu tiên: xây dựng thư viện Python (package)
hỗ trợ tiền xử lí dữ liệu văn bản
Ví dụ: “Ngày 13/6” -> “Ngày mười ba tháng sáu”
• Phương pháp được lựa chọn là rule-based approach sử dụng regex
Kết quả
• Khởi tạo được ViCleaner – thư viện hỗ trợ tiền xử lí dữ liệu văn bản nằm trong source code của project hiện tại
Tuần 4 - Hoàn thiện và viết unit test cho thư viện ViCleaner
Nội dung chi tiết
• Tìm hiểu về thư viện unittest của Python
• Di chuyển code ViCleaner ra một repo Github riêng, tái cấu trúc lại mã nguồn cho dễ đọc, trong sáng hơn
• Viết unit test cho từng module trong thư viện
Trang 11Kết quả
• Hoàn thiện thư viện ViCleaner
• Biết cách viết unit test
Tuần 5 - Làm quen với mô hình học máy hiện tại của team, học cách điều chỉnh để huấn luyện mô hình
Nội dung chi tiết
• Làm quen với một số mô hình máy học cho việc chuyển văn bản thành giọng nói (Text-To-Speech) mà team đang nghiên cứu và triển khai như: FastPtich, WaveGlow, Squeeze
• Học cách điều chỉnh các thông số để huấn luyện ra mô hình cho kết quả tốt hơn
Kết quả
• Hiểu thêm về một số mô hình máy học
• Có cơ hội sử dụng Vertex-AI của GCP để huấn luyện mô hình
Tuần 6 - Tìm hiểu thực hành sử dụng một số dịch vụ của Google Cloud Platform
Nội dung chi tiết
• Tìm hiểu về một số dịch vụ của Google Cloud Platform: Cloud Run, Cloud Function, Cloud Build, Storage…
• Thực hành deploy một project đơn giản lên Cloud Run và Cloud Function, setup CI/CD sử dụng Cloud Build
Kết quả
• Có kiến thức và kinh nghiệm thực chiến về Google Cloud Platform và một số dịch vụ liên quan
Tuần 7 - Xây dựng Text-To-Speech API
Nội dung chi tiết
• Tiến hành xây dựng API cho những mô hình đã huấn luyện sử dụng Flask (Python) và Cloud Run (GCP)
• Xây dựng website sử dụng API đó
Kết quả
• Xây dựng thành công Text-To-Speech API của công ty
Trang 12Tuần 8 - Tìm hiểu và triển khai các phương pháp giảm thời gian phản hồi của API
Nội dung chi tiết
• API gặp vấn đề về thời gian phản hồi chưa nhanh như kì vọng với các đoạn văn bản dài bởi vì thời gian chuyển từ văn bản sang giọng nói của mô hình còn chậm
• Các hướng giải quyết:
o Nghiên cứu thêm trên mô hình hiện tại nhằm giảm thời gian inference
o Vertical API Scale
o Horizontal API Scale
• Quyết định áp dụng Horizontal API Scale
Kết quả
• Giảm được thời gian phản hồi của API từ 50-60%
Trang 13GIỚI THIỆU VỀ DỰ ÁN Tổng quan
Dự án ban đầu được triển khai như là một sân chơi để các nhân viên trong công
ty (team) có một sân chơi để thoả thích tìm hiểu, học hỏi thêm về AI/ML Trước đó,
team đã tiến hành tìm hiểu, vọc vành các mảng khác nhau liên quan đến AI/ML và quyết
định sẽ tập trung vào các bài toán liên quan đến văn bản và giọng nói tiếng Việt
Thực hiện
Trước khi em vào thực tập, team đã nghiên cứu và triển khai thành công API
chuyển giọng nói thành văn bản Trong quá trình thực tập, em đã được tham gia vào
quá trình phát triển API chuyển văn bản thành giọng nói với sự giúp đỡ của anh Phong
– Technical Leader của công ty
Kết quả
Xây dựng thành công API và được demo/triển khai tại đường link:
https://ai.codelink.io/text-to-speech
Trang 14TÀI LIỆU THAM KHẢO
[1] https://www.python.org/
[2] https://cloud.google.com/
[3] https://fastpitch.github.io/
[4] Cùng một số tài liệu nội bộ của dự án
Trang 15TỔNG KẾT
Qua 2 tháng thực tập tại công ty, em đã được cống hiến công sức của mình vào việc xây dựng một Text-To-Speech API cùng với website demo Em may mắn được tham gia từ những bước đầu tiên nhất như tiền xử lí dữ liệu, huấn luyện mô hình cho đến việc triển khai API để sử dụng mô hình đó
Chân thành cảm ơn cơ hội thực tập tại công ty CodeLink và đặc biệt là sự giúp
đỡ rất nhiệt tình từ anh Phong đã giúp em hoàn thành tốt đợt thực tập Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điều kiện giúp em hoàn thành bài báo cáo này