字节跳动三面拿offer:网络+IO+redis+JVM+GC+红黑树+数据结构

本文分享了字节跳动后端开发面试的详细过程,涵盖了HashMap扩容、Linux共享内存、TCP连接、Java GC机制、并发容器等核心技术问题,以及Redis数据结构和MySQL事务原理等。通过三轮面试,讨论了Java基础、并发编程、数据库和缓存等多个方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

5G的到来证明了互联网行业发展一如既往的快,作为一名开发人员(Java岗)梦想自然是互联网行业的大厂,这次有幸获得面试字节跳动的机会,为此我也做出了准备在面试前一个月就开始做准备了,也很荣幸的拿到了字节跳动的offer,这里分享一份字节跳动三面过程!

字节一面

  1. hashmap,怎么扩容,怎么处理数据冲突?怎么高效率的实现数据迁移?
  2. Linux的共享内存如何实现,大概说了一下。
  3. socket网络编程,说一下TCP的三次握手和四次挥手
  4. 同步IO和异步IO的区别?
  5. Java GC机制?GC Roots有哪些?
  6. 红黑树讲一下,五个特性,插入删除操作,时间复杂度?
  7. 快排的时间复杂度,最坏情况呢,最好情况呢,堆排序的时间复杂度呢,建堆的复杂度是多少

字节二面

  1. 自我介绍,主要讲讲做了什么和擅长什么
  2. 设计模式了解哪些?
  3. AtomicInteger怎么实现原子修改的?
  4. ConcurrentHashMap 在Java7和Java8中的区别?为什么Java8并发效率更好?什么情况下用HashMap,什么情况用ConcurrentHashMap?
  5. redis数据结构?
  6. redis数据淘汰机制?

字节三面

  1. mysql实现事务的原理(MVCC)
  2. MySQL数据主从同步是如何实现的?
  3. MySQL索引的实现,innodb的索引,b+树索引是怎么实现的,为什么用b+树做索引节点,一个节点存了多少数据,怎么规定大小,与磁盘页对应。
  4. 如果Redis有1亿个key,使用keys命令是否会影响线上服务?
  5. Redis的持久化方式,aod和rdb,具体怎么实现,追加日志和备份文件,底层实现原理的话知道么?
  6. 遇到最大困难是什么?怎么克服?
  7. 未来的规划是什么?
  8. 你想问我什么?

以上就字节跳动后端研发面试题,以下该面试题的部分参考答案。

金三银四跳槽季,小弟为各位大哥准备了几份面试宝典:

  • 一份是技术干货《Java核心知识点整理》
  • 一份是面试真题《1000道互联网Java工程师面试题》
  • 面试宝典《互联网Java工程师面试题大全》

Java核心知识点整理

1000道互联网Java工程师面试题

互联网大厂面试宝典

<think>好的,用户想在Mac上使用LlamaFactory训练机器学习模型。首先,我需要回忆一下之前提供的引用内容。引用[1]提到使用Llama-Factory训练LoRA模型,比如增强GLM-4-9B-Chat模型的脑筋急转弯能力,并提到了环境准备。引用[2]和[3]涉及LLaMA2的训练和配置,虽然用户询问的是LlamaFactory,但可能步骤类似。引用[4]是关于Ollama导入模型的文档,可能与模型部署相关。 首先,用户的环境是Mac,需要考虑系统兼容性。需要指导用户安装必要的依赖,比如Python、PyTorch,可能还需要CUDA支持,但Mac可能使用MPS加速。然后,克隆LlamaFactory仓库,安装依赖库,如requirements.txt。接着是数据集的准备和处理,需要下载数据集并进行tokenize预处理,这可能比较耗时。之后修改配置文件,选择适合的模型参数,可能涉及调整batch size或学习率以适应Mac的硬件限制。开始训练时要指定正确的参数,比如模型路径、数据集路径和LoRA配置。训练完成后,进行模型推理测试,确保模型正确运行。最后,导出模型以便后续使用,可能参考Ollama的导入方法。 需要提醒用户注意Mac的硬件限制,比如内存和显存,可能需要调整配置参数避免内存溢出。同时,引用中提到的示例是增强GLM-4模型的脑筋急转弯能力,用户的应用场景可能不同,需根据需求调整数据集和训练参数。另外,用户可能需要查看LlamaFactory的官方文档,确保步骤正确,特别是Mac特有的设置,比如使用MPS后端替代CUDA。最后,生成相关问题时要覆盖环境准备、配置调整、性能优化和应用场景等方面。</think>### 在 Mac 上使用 LlamaFactory 训练模型的步骤 #### 1. **环境准备** - **安装 Python 和 PyTorch** Mac 推荐通过 `conda` 或 `pyenv` 管理 Python 环境,安装 Python 3.8+ 版本。 使用以下命令安装 PyTorch(Mac 需选择 MPS 加速支持版本): ```bash pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu ``` - **克隆 LlamaFactory 仓库** 从 GitHub 克隆仓库并安装依赖: ```bash git clone https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory pip install -r requirements.txt ``` 引用[1]提到环境需依赖 Python 和 PyTorch,Mac 本地训练时注意选择 CPU/MPS 模式[^1]。 --- #### 2. **数据集处理** - **下载数据集** 选择适合任务的数据集(如 JSON/CSV 格式),例如对话数据集或特定领域文本。 - **Tokenize 预处理** 使用模型对应的 tokenizer 处理数据(需与模型匹配),例如: ```python from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("THUDM/glm-4b-ft") tokenized_data = tokenizer(dataset_text, padding=True, truncation=True) ``` 引用[2]强调数据集预处理可能耗时较长,建议先验证数据格式[^2]。 --- #### 3. **配置训练参数** - **修改配置文件** 在 `train_args.yaml` 中设置: ```yaml model_name_or_path: "THUDM/glm-4-9B-Chat" # 替换为你的模型路径 dataset_path: "./data/train.json" output_dir: "./output" lora_rank: 8 # LoRA 参数 per_device_train_batch_size: 2 # Mac 需调小 batch_size 避免内存不足 ``` 引用[3]提到配置需适配设备性能,Mac 需特别注意显存限制[^3]。 --- #### 4. **启动训练** - **执行训练命令** 使用以下命令启动 LoRA 微调: ```bash python src/train.py --config train_args.yaml ``` 若显存不足,可添加 `--use_cpu` 强制使用 CPU 训练: ```bash python src/train.py --config train_args.yaml --use_cpu ``` --- #### 5. **模型导出与测试** - **导出适配 Ollama 的格式** 训练完成后,将模型转换为 GGUF 格式: ```bash python scripts/convert_to_gguf.py --model_dir ./output --output_file model.gguf ``` 参考引用[4],通过 Ollama 导入模型进行部署[^4]。 --- ### 关键注意事项 1. **硬件限制** Mac 的 M1/M2 芯片可使用 `mps` 加速,但大模型(如 GLM-4-9B)需降低 `batch_size` 或使用量化(如 4-bit 训练)。 2. **模型兼容性** LlamaFactory 目前主要支持 LLaMA、GLM 等架构,需确认模型与框架的匹配性[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值