Courses
Sự trỗi dậy của các mô hình ngôn ngữ lớn (LLM) là một xu hướng định hình trong lĩnh vực Xử lý Ngôn ngữ Tự nhiên (NLP), dẫn đến việc chúng được ứng dụng rộng rãi trong nhiều lĩnh vực. Tuy nhiên, bước tiến này thường mang tính độc quyền, khi hầu hết LLM do các tổ chức giàu tài nguyên phát triển vẫn không thể tiếp cận công khai.
Tính độc quyền này đặt ra một câu hỏi quan trọng: Điều gì sẽ xảy ra nếu có cách thức dân chủ hoá quyền truy cập vào những mô hình ngôn ngữ mạnh mẽ này? Đó là lúc BLOOM xuất hiện.
Bài viết này là bản tổng quan đầy đủ về BLOOM bằng cách trước hết cung cấp thêm chi tiết về nguồn gốc của nó. Sau đó, bài viết trình bày các thông số kỹ thuật của BLOOM và cách sử dụng trước khi nêu bật các hạn chế và cân nhắc đạo đức.
BLOOM là gì?
BigScience Large Open-science Open-access Multilingual Language Model (viết tắt là BLOOM) thể hiện một bước tiến đáng kể trong việc dân chủ hoá công nghệ mô hình ngôn ngữ.
Được phát triển hợp tác bởi hơn 1200 người tham gia từ 39 quốc gia, trong đó có một số lượng đáng kể từ Hoa Kỳ, BLOOM là sản phẩm của nỗ lực toàn cầu. Dự án được BigScience điều phối phối hợp cùng Hugging Face và cộng đồng NLP Pháp, vượt qua ranh giới địa lý và thể chế.
Đây là mã nguồn mở và là mô hình transformer chỉ decoder với 176 tỷ tham số, được huấn luyện trên tập dữ liệu ROOTS, bao gồm hàng trăm nguồn ở 59 ngôn ngữ: 46 ngôn ngữ nói và 13 ngôn ngữ lập trình.
Dưới đây là biểu đồ hình quạt về phân bố các ngôn ngữ huấn luyện.

Phân bố các ngôn ngữ huấn luyện (nguồn)
Mô hình đạt hiệu năng ấn tượng trên nhiều bộ tiêu chuẩn đánh giá, và đạt kết quả tốt hơn sau khi vi hiệu chỉnh theo gợi ý đa nhiệm.
Dự án đạt đỉnh bằng một đợt huấn luyện kéo dài 117 ngày (11 tháng 3 - 6 tháng 7) trên siêu máy tính Jean Zay ở Paris, được hỗ trợ bởi khoản cấp phát tính toán lớn từ các cơ quan nghiên cứu Pháp CNRS và GENCI.
BLOOM không chỉ là một kỳ tích công nghệ mà còn là biểu tượng của hợp tác quốc tế và sức mạnh của nỗ lực khoa học tập thể.
Kiến trúc mô hình BLOOM
Giờ hãy mô tả kiến trúc của BLOOM chi tiết hơn, bao gồm nhiều thành phần.

Kiến trúc Bloom (nguồn)
Kiến trúc của mô hình BLOOM, như trình bày trong bài báo, bao gồm một số điểm đáng chú ý:
- Phương pháp thiết kế: Nhóm tập trung vào các họ mô hình có khả năng mở rộng với hỗ trợ trong các công cụ và mã nguồn công khai, đồng thời thực hiện các thí nghiệm loại bỏ (ablation) trên các mô hình nhỏ hơn để tối ưu hoá thành phần và siêu tham số. Khả năng khái quát hoá zero-shot là thước đo chính để đánh giá các quyết định kiến trúc.
- Kiến trúc và mục tiêu tiền huấn luyện: BLOOM dựa trên kiến trúc Transformer, cụ thể là mô hình chỉ decoder nhân quả. Cách tiếp cận này được xác nhận là hiệu quả nhất cho khả năng khái quát hoá zero-shot so với các kiến trúc encoder-decoder và các biến thể chỉ decoder khác.
- Chi tiết mô hình hoá:
- ALiBi Positional Embeddings: ALiBi được chọn thay cho cách nhúng vị trí truyền thống, vì nó giảm trực tiếp điểm attention dựa trên khoảng cách giữa key và query. Điều này giúp quá trình huấn luyện trơn tru hơn và hiệu năng tốt hơn.
- Embedding LayerNorm: Thêm một lớp chuẩn hoá ngay sau lớp nhúng, cải thiện độ ổn định khi huấn luyện. Quyết định này một phần bị ảnh hưởng bởi việc sử dụng bfloat16 trong giai đoạn huấn luyện cuối, vốn ổn định hơn float16.
Những thành phần này phản ánh sự cân bằng giữa đổi mới và kỹ thuật đã được kiểm chứng để tối ưu hiệu năng và độ ổn định của mô hình.
Bên cạnh các thành phần kiến trúc của BLOOM, hãy hiểu thêm hai thành phần liên quan: tiền xử lý dữ liệu và bộ dữ liệu theo gợi ý.
- Tiền xử lý dữ liệu: Bao gồm các bước then chốt như loại trùng lặp và thay thế thông tin nhạy cảm, đặc biệt với các nguồn có rủi ro về quyền riêng tư cao hơn.
- Bộ dữ liệu theo gợi ý: BLOOM sử dụng vi hiệu chỉnh đa nhiệm theo gợi ý, cho thấy khả năng khái quát hoá tác vụ zero-shot mạnh mẽ.
Cách sử dụng BLOOM
Trong ví dụ này, chúng ta sẽ dùng BLOOM để tạo một câu chuyện sáng tạo. Mã nguồn được cung cấp nhằm thiết lập môi trường, chuẩn bị mô hình và sinh văn bản dựa trên một prompt cho trước. Mã nguồn tương ứng có trên GitHub, và chịu ảnh hưởng nhiều từ hướng dẫn của amrrs.
Cấu hình không gian làm việc
Mô hình BLOOM tiêu tốn nhiều tài nguyên, do đó cấu hình đúng không gian làm việc là rất quan trọng, các bước chính được mô tả dưới đây.
Trước hết, thư viện transformer được dùng để cung cấp giao diện làm việc với mô hình BLOOM và các mô hình dựa trên transformer nói chung.
!pip install transformers -q
Sử dụng nvidia-smi, chúng ta kiểm tra thuộc tính của GPU sẵn có để đảm bảo có đủ tài nguyên tính toán để chạy mô hình
!nvidia-smi

Chúng ta nhập các module cần thiết từ transformers và torch. torch được dùng để đặt kiểu tensor mặc định nhằm tận dụng tăng tốc GPU.
Tiếp đó, vì sử dụng GPU, thư viện torch được thiết lập bằng hàm set_default_tensor_type để đảm bảo dùng GPU.
from transformers import AutoModelForCausalLM, AutoTokenizer, set_seed
import torch
torch.set_default_tensor_type(torch.cuda.FloatTensor)
Sử dụng mô hình BLOOM
Mô hình mục tiêu được dùng là BLOOM 7 tỷ tham số, có thể truy cập từ kho của BigScience trên Hubbing Face dưới bigscience/bloom-1b7, tương ứng với định danh duy nhất của mô hình.
model_ID = "bigscience/bloom-1b7"
Tiếp theo, chúng ta tải mô hình BLOOM và bộ tokenizer đã tiền huấn luyện từ Hugging Face, và đặt seed để tái lập bằng hàm set_seed với bất kỳ số nào. Giá trị con số không quan trọng, nhưng cần dùng giá trị không phải số thực.
Để tìm hiểu thêm về tiềm năng chưa khai thác của các Mô hình Ngôn ngữ Lớn với LangChain, một framework Python mã nguồn mở để xây dựng ứng dụng AI tiên tiến, hướng dẫn Cách xây dựng ứng dụng LLM với LangChain của chúng tôi là tài liệu phù hợp.
Hơn nữa, nếu bạn là kỹ sư dữ liệu và quan tâm đến việc dùng LangChain cho các ứng dụng dữ liệu, bài viết Giới thiệu về LangChain cho Kỹ thuật Dữ liệu & Ứng dụng Dữ liệu cung cấp tổng quan về những gì bạn có thể làm với LangChain, bao gồm các vấn đề LangChain giải quyết và ví dụ ca sử dụng dữ liệu.
model = AutoModelForCausalLM.from_pretrained(model_ID, use_cache=True)
tokenizer = AutoTokenizer.from_pretrained(model_ID)
set_seed(2024)
Giờ chúng ta có thể định nghĩa tiêu đề câu chuyện sẽ tạo, cùng với prompt.
story_title = 'An Unexpected Journey Through Time'
prompt = f'This is a creative story about {story_title}.\n'
Cuối cùng, chúng ta mã hoá prompt và ánh xạ tới thiết bị mô hình phù hợp trước khi sinh kết quả và giải mã.
input_ids = tokenizer(prompt, return_tensors="pt").to(0)
sample = model.generate(**input_ids,
max_length=200, top_k=1,
temperature=0, repetition_penalty=2.0)
generated_story = tokenizer.decode(sample[0], skip_special_tokens=True)
Kết quả cuối cùng được định dạng bằng module textwrap, để đảm bảo tối đa 80 ký tự mỗi dòng cho khả năng đọc tốt hơn.
import textwrap
wrapper = textwrap.TextWrapper(width=80)
formated_story = wrapper.fill(text=generated_story)
print(formated_story)
Kết quả cuối cùng như dưới đây:

Câu chuyện được tạo bằng mô hình BLOOM
Chỉ với vài dòng mã, chúng ta đã có thể tạo nội dung có ý nghĩa bằng mô hình BLOOM.
Nếu bạn muốn nắm vững quy trình huấn luyện các mô hình ngôn ngữ lớn bằng PyTorch, từ thiết lập ban đầu đến triển khai cuối cùng, hướng dẫn Cách huấn luyện một LLM với PyTorch cung cấp lộ trình đầy đủ để đạt mục tiêu đó.
Mục đích sử dụng và các trường hợp ngoài phạm vi
Giống như mọi bước tiến công nghệ, BLOOM đi kèm tập hợp các ứng dụng phù hợp và không phù hợp. Phần này đi sâu vào các trường hợp nên và không nên sử dụng, nêu bật nơi năng lực của nó được tận dụng tốt nhất và nơi cần thận trọng. Hiểu rõ các ranh giới này là điều quan trọng để khai thác BLOOM một cách có trách nhiệm và hiệu quả.
Mục đích sử dụng của BLOOM
BLOOM là công cụ linh hoạt được thiết kế để mở rộng ranh giới xử lý và tạo sinh ngôn ngữ. Các mục đích sử dụng của nó trải rộng nhiều lĩnh vực, mỗi lĩnh vực tận dụng năng lực ngôn ngữ phong phú của mô hình.
- Tạo nội dung đa ngôn ngữ: Với khả năng trong 59 ngôn ngữ, BLOOM xuất sắc trong việc tạo nội dung đa dạng và bao trùm. Năng lực này đặc biệt giá trị trong truyền thông toàn cầu, giáo dục và truyền thông đại chúng, nơi tính bao trùm ngôn ngữ là then chốt.
- Lập trình và phát triển phần mềm: Việc được huấn luyện trên các ngôn ngữ lập trình giúp BLOOM trở thành tài sản trong phát triển phần mềm. Nó có thể hỗ trợ các nhiệm vụ như sinh mã, gỡ lỗi và đóng vai trò công cụ học tập cho lập trình viên mới.
- Nghiên cứu và học thuật: Trong giới học thuật, BLOOM là nguồn lực mạnh mẽ cho phân tích ngôn ngữ học và nghiên cứu AI, cung cấp hiểu biết về mẫu ngôn ngữ, hành vi AI, và hơn thế nữa.
Các trường hợp ngoài phạm vi của BLOOM
Hiểu các hạn chế của BLOOM là điều cốt yếu để đảm bảo ứng dụng mang tính đạo đức và thực tiễn. Một số trường hợp sử dụng nằm ngoài phạm vi dự định của BLOOM, chủ yếu do cân nhắc đạo đức hoặc ràng buộc kỹ thuật.
- Xử lý dữ liệu nhạy cảm: BLOOM không được thiết kế để xử lý dữ liệu cá nhân nhạy cảm hoặc thông tin mật. Nguy cơ vi phạm quyền riêng tư hoặc lạm dụng dữ liệu như vậy khiến nó không phù hợp cho các mục đích này.
- Ra quyết định rủi ro cao: sử dụng BLOOM trong bối cảnh đòi hỏi độ chính xác then chốt, như chẩn đoán y khoa hoặc quyết định pháp lý, là không khuyến nghị. Những hạn chế của mô hình, như hầu hết các mô hình ngôn ngữ lớn, có thể dẫn đến kết quả không chính xác hoặc gây hiểu lầm trong các lĩnh vực nhạy cảm này.
- Thay thế tương tác con người: Không nên coi BLOOM là sự thay thế cho tương tác con người, đặc biệt ở các lĩnh vực đòi hỏi trí tuệ cảm xúc như tư vấn, ngoại giao hoặc dạy học cá nhân hoá. Mô hình thiếu sự thấu hiểu tinh tế và đồng cảm mà tương tác con người mang lại.
Người dùng trực tiếp và gián tiếp
BLOOM, với tư cách là một Mô hình Ngôn ngữ Lớn (LLM) tiên tiến, mang lại nhiều lợi ích cho nhiều nhóm người dùng. Năng lực của nó không chỉ ảnh hưởng trực tiếp đến một số chuyên gia và lĩnh vực mà còn có tác động rộng hơn, gián tiếp đến nhiều bên liên quan.
Phần khám phá người dùng của BLOOM này nhằm nêu bật cách các nhóm khác nhau tận dụng và chịu ảnh hưởng bởi công cụ đổi mới này.
Bằng cách hiểu người dùng trực tiếp và gián tiếp của BLOOM, chúng ta có thể đánh giá ảnh hưởng rộng lớn của mô hình và những cách đa dạng mà nó đóng góp vào việc thúc đẩy công nghệ và xã hội.
Người dùng trực tiếp của BLOOM
- Nhà phát triển và nhà khoa học dữ liệu: Các chuyên gia trong phát triển phần mềm và khoa học dữ liệu là người dùng chính. Họ sử dụng BLOOM cho các tác vụ như hỗ trợ viết mã, gỡ lỗi và phân tích dữ liệu.
- Nhà nghiên cứu và học giả: Nhóm này gồm nhà ngôn ngữ học, nhà nghiên cứu AI và học giả sử dụng BLOOM để nghiên cứu ngôn ngữ, phân tích hành vi AI và thúc đẩy nghiên cứu NLP.
- Người sáng tạo nội dung và biên dịch viên: Nhà văn, nhà báo và biên dịch viên sử dụng BLOOM để tạo và dịch nội dung qua các ngôn ngữ khác nhau, nâng cao năng suất và tầm với.
Người dùng gián tiếp của BLOOM
- Doanh nghiệp và tổ chức: Các công ty thuộc nhiều lĩnh vực hưởng lợi gián tiếp từ BLOOM thông qua dịch vụ AI nâng cao, tương tác khách hàng cải thiện và xử lý dữ liệu hiệu quả.
- Các cơ sở giáo dục: Học sinh và nhà giáo dục hưởng lợi gián tiếp nhờ công cụ và tài nguyên giáo dục tích hợp khả năng xử lý ngôn ngữ của BLOOM cho học tập và giảng dạy.
- Công chúng nói chung: Cộng đồng rộng lớn là đối tượng thụ hưởng gián tiếp từ BLOOM thông qua trải nghiệm công nghệ được cải thiện, tiếp cận nội dung đa ngôn ngữ và ứng dụng phần mềm nâng cao.
Cân nhắc đạo đức và hạn chế
Việc triển khai BLOOM, như mọi Mô hình Ngôn ngữ Lớn (LLM), mang theo nhiều cân nhắc đạo đức và hạn chế. Những khía cạnh này rất quan trọng để sử dụng có trách nhiệm và dự đoán tác động rộng hơn của công nghệ. Phần này đề cập đến các hệ quả đạo đức, rủi ro và hạn chế vốn có khi sử dụng BLOOM.
Cân nhắc đạo đức
- Thiên lệch dữ liệu và công bằng: Một trong những lo ngại đạo đức chính là khả năng BLOOM duy trì hoặc khuếch đại thiên lệch có trong dữ liệu huấn luyện. Điều này có thể ảnh hưởng đến tính công bằng và trung lập của đầu ra, dẫn đến thách thức đạo đức trong các bối cảnh cần xử lý không thiên lệch.
- Quan ngại về quyền riêng tư: Dù BLOOM không được thiết kế rõ ràng để xử lý thông tin cá nhân nhạy cảm, phạm vi rộng lớn của dữ liệu huấn luyện có thể vô tình bao gồm thông tin như vậy. Có rủi ro vi phạm quyền riêng tư nếu BLOOM sinh đầu ra dựa trên hoặc tiết lộ dữ liệu nhạy cảm.
Rủi ro liên quan đến việc sử dụng
- Thông tin sai lệch và thao túng: Năng lực tiên tiến của BLOOM có thể bị lạm dụng để tạo thông tin gây hiểu lầm hoặc nội dung thao túng, đặt ra rủi ro đáng kể trong các lĩnh vực như truyền thông, chính trị và dư luận.
- Phụ thuộc và suy giảm kỹ năng: Quá phụ thuộc vào BLOOM cho các nhiệm vụ như tạo nội dung hoặc dịch thuật có thể dẫn đến suy giảm các kỹ năng này ở con người, ảnh hưởng đến tính sáng tạo và năng lực ngôn ngữ.
Hạn chế của BLOOM
- Hiểu biết ngữ cảnh: Dù tinh vi, BLOOM có thể thiếu hiểu biết sâu về ngữ cảnh và văn hoá cần thiết cho một số nhiệm vụ, dẫn đến sai sót hoặc đầu ra không phù hợp trong các tình huống tinh tế.
- Tính tiến hoá của ngôn ngữ: Việc BLOOM được huấn luyện trên một tập dữ liệu tĩnh có nghĩa là nó có thể không theo kịp sự phát triển của ngôn ngữ, bao gồm tiếng lóng mới, thuật ngữ mới hoặc tham chiếu văn hoá.
Tác động thực tiễn và tranh cãi
Việc phát triển và phát hành BLOOM mang lại những hệ quả đáng kể trong thế giới thực, cả về tác động và những tranh cãi đặt ra. Phần này thảo luận các khía cạnh đó, dựa trên những hiểu biết từ bài báo nghiên cứu về BLOOM.
Tác động thực tiễn của BLOOM
- Dân chủ hoá công nghệ AI: BLOOM đại diện cho một bước tiến tới dân chủ hoá công nghệ AI. Được phát triển bởi BigScience, một nỗ lực hợp tác của hơn 1200 người từ 38 quốc gia, BLOOM là mô hình truy cập mở được huấn luyện trên tập hợp đa dạng bao phủ 59 ngôn ngữ. Mức độ tham gia rộng rãi và khả năng tiếp cận này đánh dấu sự chuyển dịch khỏi tính độc quyền thường thấy trong phát triển mô hình ngôn ngữ lớn.
- Đa dạng và bao trùm: Cam kết của dự án đối với đa dạng về ngôn ngữ, địa lý và khoa học là điều đáng chú ý. Tập ROOTS dùng để huấn luyện BLOOM trải rộng nhiều ngôn ngữ và ngôn ngữ lập trình, phản ánh nhấn mạnh vào tính bao trùm và đại diện trong phát triển AI
Tranh cãi và thách thức
- Quan ngại xã hội và đạo đức: Việc phát triển BLOOM thừa nhận các hạn chế xã hội và thách thức đạo đức trong phát triển mô hình ngôn ngữ lớn. Workshop BigScience đã áp dụng Hiến chương Đạo đức để định hướng dự án, nhấn mạnh tính bao trùm, đa dạng, mở, khả năng tái lập và trách nhiệm. Những nguyên tắc này được tích hợp vào nhiều khía cạnh của dự án, từ quản trị tập dữ liệu đến đánh giá mô hình.
- Quan ngại về môi trường và tài nguyên: Việc phát triển các mô hình ngôn ngữ lớn như BLOOM làm dấy lên lo ngại môi trường do nhu cầu tài nguyên tính toán lớn. Huấn luyện các mô hình này, vốn thường chỉ các tổ chức nhiều nguồn lực mới kham nổi, có hệ quả về tiêu thụ năng lượng và dấu chân carbon
BLOOM còn phù hợp ngày nay không?
Trong thế giới Trí tuệ Nhân tạo (AI) phát triển nhanh chóng, mức độ phù hợp của các Mô hình Ngôn ngữ Lớn (LLM) như BLOOM là chủ đề được thảo luận liên tục.
Được phát triển bởi một đội ngũ đông đảo các nhà nghiên cứu quốc tế, BLOOM là một bước nhảy vọt quan trọng trong xử lý ngôn ngữ. Tuy nhiên, bối cảnh AI liên tục tiến hoá, với các mô hình mới xuất hiện và dịch chuyển trọng tâm.
Hãy cùng xem BLOOM liệu còn giữ vững vị thế trong lĩnh vực cạnh tranh này hay không.
- Dịch chuyển trọng tâm: Ban đầu là đột phá lớn, nay BLOOM phần nào lu mờ trước các mô hình mới. Khác với AI hội thoại như ChatGPT, BLOOM được điều chỉnh cho nhiệm vụ hoàn thiện nội dung hơn là giao tiếp tương tác.
- Ràng buộc phần cứng: Yêu cầu phần cứng cao của BLOOM hạn chế khả năng tiếp cận so với các LLM thân thiện hơn như GPT-3.5 và GPT-4, vốn dễ tích hợp vào nhiều ứng dụng hơn.
- Cạnh tranh gia tăng: Sự xuất hiện của các mô hình như LLaMA và các công cụ như Alpaca đã dân chủ hoá quyền truy cập LLM, mang lại năng lực với yêu cầu tài nguyên giảm, nhờ đó mở rộng sức hấp dẫn và mức sử dụng.
- Khả năng đa ngôn ngữ: Điểm khác biệt của BLOOM là được huấn luyện sâu rộng trên nhiều ngôn ngữ, trở thành nguồn lực giá trị cho dịch thuật và tạo nội dung đa ngôn ngữ.
Kết luận
Bài viết này đã cung cấp cái nhìn tổng quan về dự án BLOOM, một đóng góp quan trọng cho lĩnh vực Mô hình Ngôn ngữ Lớn đang phát triển.
Chúng ta đã khám phá quá trình phát triển của BLOOM, làm nổi bật các thông số kỹ thuật và sự hợp tác đằng sau việc tạo ra nó. Bài viết cũng đóng vai trò là hướng dẫn truy cập và sử dụng BLOOM hiệu quả, nhấn mạnh các mục đích sử dụng phù hợp và các hạn chế.
Ngoài ra, bài viết đề cập đến các hệ quả đạo đức và tác động thực tiễn của dự án BLOOM AI, phản ánh mức độ đón nhận và sự phù hợp của nó trong bối cảnh AI hiện nay. Dù bạn tham gia trực tiếp vào AI hay là người đam mê, phần khám phá về BLOOM này mang đến những góc nhìn thiết yếu để định hướng trong thế giới phức tạp của các mô hình ngôn ngữ lớn.
Với những ai muốn đào sâu hơn vào các mô hình ngôn ngữ tiên tiến, khoá học bổ sung Khái niệm về Mô hình Ngôn ngữ Lớn (LLM) của chúng tôi cung cấp lộ trình khám phá toàn bộ tiềm năng của LLM, bao gồm ứng dụng, phương pháp huấn luyện, cân nhắc đạo đức và nghiên cứu mới nhất.
Nhà khoa học dữ liệu đa tài, yêu thích chia sẻ kiến thức và đóng góp cho cộng đồng, Zoumana là người sáng tạo nội dung trên YouTube và là cây bút công nghệ hàng đầu trên Medium. Anh yêu thích thuyết trình, lập trình và giảng dạy. Zoumana có hai bằng thạc sĩ: một về khoa học máy tính chuyên sâu Học máy tại Paris, Pháp, và một về Khoa học dữ liệu tại Texas Tech University, Hoa Kỳ. Anh bắt đầu sự nghiệp với vai trò Nhà phát triển phần mềm tại Groupe OPEN ở Pháp, sau đó chuyển sang IBM làm Tư vấn Học máy, nơi anh phát triển các giải pháp AI đầu-cuối cho các công ty bảo hiểm. Zoumana gia nhập Axionable, startup Trí tuệ nhân tạo Bền vững đầu tiên có trụ sở tại Paris và Montreal. Tại đây, anh làm Nhà khoa học dữ liệu và triển khai các sản phẩm AI, chủ yếu là các bài toán NLP, cho khách hàng tại Pháp, Montreal, Singapore và Thụy Sĩ. Ngoài ra, 5% thời gian của anh được dành cho Nghiên cứu và Phát triển. Hiện tại, anh làm việc với vai trò Nhà khoa học dữ liệu cao cấp tại IFC - Nhóm Ngân hàng Thế giới.
