- LM Studio là ứng dụng máy tính để tải và chạy mô hình mở trên máy của bạn, có giao diện trò chuyện, tìm mô hình từ Hugging Face, và máy chủ cục bộ kiểu OpenAI.
- Tài liệu nói khi đã có mô hình trên máy, trò chuyện, hỏi tài liệu và chạy máy chủ cục bộ đều không cần mạng, và những gì bạn nhập không rời máy. Chỉ tìm và tải mô hình mới cần mạng.
- Cấu hình: tài liệu khuyên từ 16 GB RAM; máy Windows x64 cần CPU hỗ trợ AVX2; Mac cần chip Apple Silicon và macOS 13.4 trở lên.
- Trang Pricing ngày 11/11/2026 ghi gói Free 0 USD để chạy mô hình trên máy; các gói trả phí là để dùng thêm mô hình chạy trên đám mây, khi đó dữ liệu rời máy.
Bài dùng Python thuần (urllib có sẵn) để gọi máy chủ cục bộ. Nguồn là các trang About, System Requirements, Offline Operation, OpenAI Compatibility trong tài liệu LM Studio, cùng trang Pricing và App Terms of Use, đọc ngày 11/11/2026.
LM Studio làm được gì
Trang giới thiệu trong tài liệu mô tả LM Studio là ứng dụng máy tính để phát triển và thử nghiệm mô hình ngôn ngữ ngay trên máy, gồm năm phần chính: ứng dụng chạy mô hình cục bộ, giao diện trò chuyện quen thuộc, tìm và tải mô hình qua Hugging Face, máy chủ cục bộ nhận yêu cầu kiểu OpenAI, và công cụ quản lý mô hình cùng cấu hình. LM Studio có bản cho macOS, Windows và Linux. Bên dưới, nó chạy mô hình bằng llama.cpp ở định dạng GGUF, và trên Mac chip Apple còn dùng được MLX.
So với cách chạy bằng dòng lệnh như Ollama mà bài chạy AI trên máy cá nhân đã trình bày, điểm mạnh của LM Studio là giao diện: tìm mô hình, xem dung lượng, chỉnh tham số, lưu chỉ dẫn hệ thống thành mẫu dùng lại, tất cả bằng chuột. Ứng dụng cũng có công cụ dòng lệnh lms để tải mô hình, nạp mô hình và bật máy chủ khi cần tự động hóa. Tài liệu mô tả tính năng lưu mẫu thiết lập: chỉ dẫn hệ thống và các tham số sinh câu trả lời được lưu thành một mẫu có tên để dùng lại ở nhiều cuộc trò chuyện, tiện khi bạn có một trợ giảng riêng cho từng môn.
Máy cần cấu hình gì
Trang System Requirements ghi: trên Mac, cần chip Apple Silicon và macOS 13.4 trở lên, muốn dùng mô hình MLX thì cần macOS 14.0; khuyên từ 16 GB RAM. Trên Windows, máy x64 cần CPU có tập lệnh AVX2, và tài liệu cũng khuyên ít nhất 16 GB RAM vì mô hình có thể chiếm nhiều bộ nhớ. Linux hỗ trợ máy x64.
Trang giới thiệu cũng ghi LM Studio hỗ trợ cả máy Windows chạy chip ARM64, nên một số máy tính mỏng nhẹ đời mới dùng được. Nếu không chắc máy mình đạt yêu cầu, hãy cài thử và nạp một mô hình nhỏ trước khi tải những tệp hàng chục gigabyte.
Mô hình càng lớn càng cần nhiều bộ nhớ. Nạp mô hình nghĩa là cấp phát bộ nhớ đủ chứa trọng số và các tham số đi kèm. Với máy học sinh, sinh viên thường gặp, hãy bắt đầu bằng mô hình nhỏ, bản lượng tử hóa, rồi tăng dần nếu máy còn chịu được. Cách ước bộ nhớ và chọn mức lượng tử hóa có trong bài về chạy AI trên máy cá nhân.
Phần nào không cần mạng
Trang Offline Operation nói LM Studio nhìn chung không cần mạng để hoạt động. Khi mô hình đã nằm trên máy, trò chuyện chạy hoàn toàn tại máy và tài liệu ghi rõ những gì bạn nhập không rời thiết bị. Khi kéo một tài liệu vào để hỏi đáp, tài liệu đó nằm lại trên máy và mọi xử lý diễn ra tại chỗ. Máy chủ cục bộ nhận yêu cầu kiểu OpenAI nhưng chỉ phục vụ trong máy hoặc mạng nội bộ.
Những việc cần mạng gồm: tìm mô hình trong mục khám phá, vì ứng dụng gửi yêu cầu tới Hugging Face; tải mô hình mới; tải thêm bộ máy chạy; và cập nhật ứng dụng. Có một lưu ý quan trọng từ trang Pricing: ngoài gói Free 0 USD để chạy mô hình trên máy, LM Studio có các gói trả phí (ngày 11/11/2026 là 20 USD và 100 USD mỗi tháng) để dùng thêm mô hình chạy trên đám mây đặt ở Mỹ. Khi bạn chọn mô hình đám mây, yêu cầu rời máy; lời hứa "không rời thiết bị" chỉ đúng với mô hình chạy cục bộ.
Máy chủ cục bộ và ví dụ Python
Trang OpenAI Compatibility liệt kê các địa chỉ máy chủ cục bộ hỗ trợ: lấy danh sách mô hình, Chat Completions, embeddings và completions. Mặc định máy chủ nghe ở cổng 1234. Tài liệu còn mô tả cách ép câu trả lời theo khuôn JSON bằng tham số response_format kiểu json_schema; kết quả trả về dạng chuỗi trong trường nội dung của câu trả lời, và bạn tự đổi sang JSON. Đây là cùng ý tưởng với bài AI trả về JSON, chỉ khác là mô hình chạy trên máy bạn.
Chương trình mẫu xếp góp ý của học sinh vào bốn nhãn khen, chê, góp ý, hỏi bằng một mô hình chạy trong LM Studio. Hàm danh_sach_mo_hinh hỏi máy chủ có những mô hình nào. Hàm xep_nhan gửi câu cần xếp kèm khuôn JSON chỉ cho phép bốn nhãn, rồi tự soát lại câu trả lời. Phần chạy thử dùng một hàm mở giả thay cho máy chủ, nên chạy được trên máy chưa cài LM Studio.
"""Gọi mô hình chạy trong LM Studio qua máy chủ cục bộ kiểu OpenAI (mặc định http://localhost:1234/v1).
Theo tài liệu LM Studio (đọc 11/11/2026): bật máy chủ bằng `lms server start`; các địa chỉ hỗ trợ gồm GET /v1/models,
POST /v1/chat/completions, POST /v1/embeddings; ép câu trả lời theo khuôn JSON bằng response_format kiểu json_schema,
kết quả nằm ở choices[0].message.content dạng chuỗi, cần tự đổi sang JSON.
- danh_sach_mo_hinh: các mô hình máy chủ báo (tùy chế độ nạp khi cần, có thể là mô hình đã tải hoặc đang nạp).
- xep_nhan: xếp một góp ý vào khen/chê/góp ý/hỏi, câu trả lời theo khuôn JSON, rồi soát nhãn.
Chạy thử dùng hàm mở giả, không cần LM Studio; chạy với --that để gọi máy chủ thật trên máy bạn.
"""
import io
import json
import sys
import urllib.error
import urllib.request
GOC = "http://localhost:1234/v1"
NHAN = ["khen", "chê", "góp ý", "hỏi"]
KHUON = {"type": "json_schema", "json_schema": {"name": "xep_nhan", "strict": True, "schema": {
"type": "object", "properties": {"nhan": {"type": "string", "enum": NHAN}}, "required": ["nhan"]}}}
def _goi(duong, than=None, mo=urllib.request.urlopen):
yc = urllib.request.Request(GOC + duong, data=json.dumps(than).encode() if than else None,
headers={"Content-Type": "application/json"}, method="POST" if than else "GET")
with mo(yc, timeout=120) as r:
return json.load(r)
def danh_sach_mo_hinh(mo=urllib.request.urlopen):
return [m["id"] for m in _goi("/models", mo=mo)["data"]]
def xep_nhan(mo_hinh, cau, mo=urllib.request.urlopen):
than = {"model": mo_hinh, "response_format": KHUON, "max_tokens": 50, "messages": [
{"role": "system", "content": f"Xếp góp ý của học sinh vào đúng một nhãn trong: {', '.join(NHAN)}."},
{"role": "user", "content": cau}]}
noi_dung = _goi("/chat/completions", than, mo=mo)["choices"][0]["message"]["content"]
try:
nhan = json.loads(noi_dung)["nhan"]
except (json.JSONDecodeError, KeyError, TypeError):
return None, f"không đọc được JSON: {noi_dung[:60]!r}"
return (nhan, "ok") if nhan in NHAN else (None, f"nhãn lạ: {nhan}")
class _TraLoi(io.BytesIO):
def __enter__(self):
return self
def __exit__(self, *a):
return False
def mo_gia_tao(tra_loi_chat):
"""Hàm mở giả: trả danh sách mô hình hoặc câu trả lời chat cố định, ghi lại yêu cầu."""
da_gui = []
def mo(yc, timeout):
da_gui.append(yc)
if yc.full_url.endswith("/models"):
d = {"data": [{"id": "vi-du/mo-hinh-nho-gguf"}]}
else:
d = {"choices": [{"message": {"content": tra_loi_chat}}]}
return _TraLoi(json.dumps(d).encode())
return mo, da_gui
def chay_thu():
dong = []
for tl in ['{"nhan": "góp ý"}', '{"nhan": "trung lập"}', 'Đây là góp ý.']:
mo, da_gui = mo_gia_tao(tl)
ten = danh_sach_mo_hinh(mo)[0]
dong.append(f"{ten} trả {tl!r} -> {xep_nhan(ten, 'Thầy gửi slide trước buổi học được không ạ?', mo)}")
than = json.loads(da_gui[-1].data)
dong.append(f"Gửi tới {da_gui[-1].full_url}, response_format={than['response_format']['type']}, enum={than['response_format']['json_schema']['schema']['properties']['nhan']['enum']}")
print("\n".join(dong))
return dong
if __name__ == "__main__":
if "--that" in sys.argv:
try:
ds = danh_sach_mo_hinh()
except urllib.error.URLError:
sys.exit("Chưa bật máy chủ LM Studio: mở ứng dụng và bật máy chủ, hoặc chạy `lms server start`")
print("Mô hình:", ds)
print(xep_nhan(ds[0], "Thầy gửi slide trước buổi học được không ạ?"))
else:
chay_thu()
Ba câu trả lời giả lập cho thấy vì sao vẫn phải soát dù đã gửi khuôn JSON: câu trả lời đúng khuôn được nhận nhãn góp ý; câu trả lời có nhãn "trung lập" ngoài danh sách bị loại; câu trả lời là văn xuôi không phải JSON cũng bị loại. Mô hình nhỏ chạy trên máy đôi khi không theo khuôn chặt như mô hình lớn trên đám mây, nên bước soát là cần thiết. Khi chạy với tùy chọn --that mà chưa bật máy chủ, chương trình nhắc bật máy chủ trong ứng dụng hoặc bằng lệnh lms server start. Tài liệu còn mô tả chế độ nạp khi cần: nếu bật, danh sách mô hình gồm mọi mô hình đã tải và mô hình được nạp tự động khi có yêu cầu; nếu tắt, phải nạp trước.
Bản quyền mô hình và điều khoản
Tài liệu LM Studio lưu ý các mô hình được phát hành theo nhiều giấy phép khác nhau, với mức độ "mở" khác nhau. Trước khi dùng một mô hình cho đồ án hay sản phẩm, đọc giấy phép trên trang mô hình ở Hugging Face, như bài Hugging Face là gì hướng dẫn. Bản thân ứng dụng có điều khoản riêng: trang App Terms of Use cấp quyền dùng phần mềm cho mục đích cá nhân và mục đích nội bộ của doanh nghiệp. Nếu định dùng trong công ty, đọc kỹ điều khoản này.
Khi nào không nên dùng
Nếu máy chỉ có 8 GB RAM, trải nghiệm thường chậm và chỉ chạy được mô hình rất nhỏ; dùng dịch vụ đám mây sẽ cho câu trả lời tốt hơn. Nếu cần chất lượng cao nhất cho bài khó, mô hình mở chạy trên máy thường kém mô hình lớn của các hãng. Và đừng mở máy chủ cục bộ ra mạng bên ngoài khi chưa hiểu rõ ai có thể gọi vào.
- Tải mô hình quá lớn so với RAM rồi thấy máy treo.
- Nghĩ rằng mọi thứ đều chạy tại máy khi đang chọn mô hình đám mây.
- Dùng mô hình cho sản phẩm mà chưa đọc giấy phép của mô hình.
- Tin câu trả lời theo khuôn JSON mà không tự soát lại.
- Mở máy chủ cục bộ ra mạng ngoài mà không có lớp bảo vệ.
Câu hỏi thường gặp
LM Studio có mất tiền không?
Trang Pricing ngày 11/11/2026 ghi gói Free 0 USD để chạy mô hình trên máy; gói trả phí là cho mô hình đám mây.
Không có GPU có chạy được không?
Được, nhưng chậm hơn; mô hình nhỏ chạy bằng CPU vẫn dùng được.
LM Studio khác Ollama thế nào?
Cùng chạy mô hình trên máy; LM Studio có giao diện đầy đủ, Ollama thiên về dòng lệnh.
Code viết cho OpenAI có dùng được với LM Studio không?
Thường được, đổi địa chỉ gốc sang máy chủ cục bộ, theo trang OpenAI Compatibility.
Học tiếp
- Chọn mô hình và ước bộ nhớ: chạy AI trên máy cá nhân.
- Tìm mô hình và đọc giấy phép: Hugging Face là gì.
- Ép câu trả lời theo khuôn: AI trả về JSON.
Nếu bạn muốn học Python và AI bài bản cùng giảng viên, tham khảo khóa học AI của Big-O Coding.
Khóa AI – Introduction to Machine Learning: nền tảng Máy học từ thuật toán cơ bản đến Neural Networks và LLM, học bằng Python. Học thử buổi 1 miễn phí.


