Bài viết được sự cho phép của tác giả Tống Xuân Hoài
Vấn đề
Các mô hình ngôn ngữ lớn (LLM) là các mô hình học sâu rất lớn, được đào tạo trước dựa trên một lượng dữ liệu khổng lồ. Các mô hình ngôn ngữ lớn vô cùng linh hoạt. Một mô hình có thể thực hiện các tác vụ hoàn toàn khác nhau, ví dụ như trả lời câu hỏi, tóm tắt tài liệu, dịch ngôn ngữ và hoàn thành câu. Một trong những LLM rất phổ biến là của ChatGPT.
Nhờ có API của ChatGPT mà có thể tích hợp nó vào trong ứng dụng của mình, tạo ra nhiều tính năng thông minh và đột phá. Ví dụ như làm công cụ dịch văn bản, làm chatbot, hoặc tạo ra các nghiệp vụ xử lý logic bằng ngôn ngữ tự nhiên.
Tuy nhiên các cuộc gọi API đến ChatGPT là mất tiền. Cần phải trả một số tiền tương ứng với lượng ký tự đầu vào và đầu ra. Nếu nhập vào quá nhiều ký tự hoặc ChatGPT phản hồi quá nhiều chữ, chúng ta phải trả số tiền luỹ tiến.
Trước đây tôi đã có một bài viết nói về cách sử dụng miễn phí gpt4 thông qua Github Copilot, đồng thời cảnh báo bạn đọc rằng đây là một thủ thuật cho nên có thể gây ảnh hưởng đến tài khoản Copilot. Tôi đã sử dụng cách này trong một thời gian dài cho đến khi bị Github gửi email nhắc nhở thì buộc phải ngưng sử dụng.
Sau đó, tôi đi tìm một giải pháp khác nhằm thay thế được API của ChatGPT nhưng đều thất bại, vì đa số các dịch vụ LLM miễn phí chỉ cho tương tác qua giao diện web. Cũng có một số thư viện nguồn mở trên Github giới thiệu là cho phép sử dụng miễn phí gpt API nhưng có vẻ nó vẫn chưa hoạt động ổn định.
Thực tế, có nhiều gã công nghệ đã “nguồn mở” các mô hình ngôn ngữ lớn của họ. Tiêu biểu như Gemma của Google, Llama của Facebook hay mô hình Mistral cũng rất nổi tiếng. Có nhiều bài viết của các bên cho ra nhiều nghiên cứu và so sánh hiệu năng giữa các mô hình này, chúng đều có kết quả tương đối tốt ở một khía cạnh nào đó (gọi là tốt vì nó không bằng với nhiều mô hình yêu cầu chúng ta cần trả tiền như gpt4). Bạn đọc có thể tham khảo thêm tại Comparison of Models: Quality, Performance & Price Analysis.
Một điểm bất lợi nữa là mỗi một mô hình có cách cài đặt và sử dụng khác nhau. Hầu hết các mô hình đều ở dạng cung cấp hay triển khai các API rất thô. Tưởng tưởng như nếu khởi chạy, chỉ có thể tương tác với nó qua dòng lệnh. Nếu may mắn hơn, bạn sẽ tìm được các thư viện viết bằng ngôn ngữ lập trình quen thuộc hơn như Python, Go, JavaScript…
Như vậy, các mô hình ngôn ngữ có vẻ đang bị phân mảnh và buộc chúng ta phải triển khai lại API nếu muốn tương tác với chúng thuận lợi hơn.
Tưởng mọi chuyện không có tiến triển gì thêm thì thật tình cờ, tôi biết đến một công cụ có tên là Ollama. Ollama giúp cài đặt và sử dụng các mô hình ngôn ngữ mở miễn phí chỉ với 1 dòng lệnh. Ollama hiện đang hỗ trợ cả MacOS, Window và Linux.
Để cài đặt Ollama, sử dụng lệnh:
curl -fsSL https://ollama.com/install.sh | sh
Chờ một lúc để quá trình cài đặt hoàn tất. Bây giờ bạn muốn sử dụng mô hình Gemma của Google đúng không? Hãy gõ tiếp một lệnh:
ollama run gemma:7b
Gemma có 2 mô hình 2 tỉ tham số (2B Parameters) và 7 tỉ tham số (7B Parameters). Lệnh trên cài đặt mô hình 7B. Để xem đầy đủ danh sách Ollama hỗ trợ, bạn đọc tham khảo Ollama library. Lưu ý rằng mô hình càng lớn thì đòi hỏi khả năng xử lý cũng như dung lượng RAM lớn.
Sau khi tải xong mô hình, bạn sẽ thấy dấu nhắc lệnh nhập văn bản, hãy thử gõ vào bất kỳ điều gì.
Đó chính là Gemma phản hồi. Giờ đây bạn đã có thể sử dụng được mô hình này ngay trong máy tính của mình.
Bạn có thể thoát ra bằng cách dùng lệnh /bye
. Ollama vẫn chạy ngầm trong máy. Để xem mô hình ngôn ngữ nào đang được chạy, dùng lệnh ollama ps
. Để xem tất cả mô hình đã tải về, dùng lệnh ollama ls
. Để chạy một mô hình ngôn ngữ, dùng lệnh ollama run <tên_mô_hình>
.
Chưa hết, bạn còn có thể gọi Rest API để tương tác với các mô hình ngôn ngữ một cách đơn giản.
Ví dụ tạo cuộc trò chuyện với các role tương tự như ChatGPT.
curl http://localhost:11434/api/chat -d '{
"model": "llama3",
"messages": [
{ "role": "user", "content": "why is the sky blue?" }
]
}'
Điều thú vị là Ollama có một lớp để tương thích với API của ChatGPT. Mặc dù chưa tương thích hết nhưng tính năng cơ bản nhất là Chat Completions đã được hỗ trợ. Hãy nhìn vào cuộc gọi API này, bạn có thấy nó quen thuộc?
curl http://localhost:11434/v1/chat/completions
-H "Content-Type: application/json"
-d '{
"model": "gemma:7b",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
http://localhost:11434
là địa chỉ cục bộ mà Ollama tạo ra để tương tác với API.
Việc làm AI lương thưởng hấp dẫn, mới nhất dành cho bạn!
Bạn còn nhớ NextChat chứ? Hãy tích hợp API mới này vào NextChat để quản lý các cuộc hội thoại.
Tại ô “OpenAI Endpoint” nhập http://localhost:11434
, OpenAI API Key là ollama
, Custom Models nhập tên mô hình ngôn ngữ hiện tại đang chạy, ví dụ gemma:7b
nếu đang sử dụng Gemma 7B của Google. Model thì chọn tên tương ứng với Custom Models đã chọn ở trên.
Hãy thử API mới ngay nào.
Tổng kết
Ollama là một công cụ giúp chúng ta dễ dàng cài đặt và sử dụng các mô hình ngôn ngữ lớn. Ollama hỗ trợ rất nhiều mô hình mở miễn phí phổ biến và điều tuyệt vời là nó cung cấp API tương thích với ChatGPT, từ đó trở thành công cụ tuyệt vời để thay thế ChatGPT làm những công việc đơn giản thường ngày.
Bài viết gốc được đăng tải tại 2coffee.dev
Xem thêm:
- Prompt Engineering: Ngôn ngữ của AI và tác động của nó đối với thị trường việc làm
- ChatGPT liệu có làm lập trình viên mất việc? – Phần 1
- ChatGPT và những người bạn (Phần 1)
Tìm kiếm việc làm IT mới nhất tại TopDev!